Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
FARO — FARO - 문서 민감도 탐지기 | Kitploit
도구/GitHubGitHub/gradiant/faro
Static AnalysisVulnerability AnalysisConfiguration AuditingData ExfiltrationInformation GatheringSecret DetectionMachine LearningLearning & Education
GitHubgradiant/faro

FARO

FARO - 문서 민감도 탐지기

저장소 보기
108204년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

FARO (문서 민감도 탐지기)

FARO 로고

목차

  • 이게 뭐죠?
  • 구성 요소
  • Docker로 FARO 실행하기
  • 호스트 머신에서 FARO 실행하기
    • 전제 조건
    • 가상 환경
    • 의존성
    • NER 모델
    • FARO Spider
    • 단일 파일 탐지
  • 기술적 세부 사항
    • FARO 엔터티 탐지기
    • 설정
    • 지원되는 입력 파일 형식
    • 기법
    • 테스트
    • Git-LFS 설치
    • FARO 탐지 추가 인수
    • 알려진 문제
  • 기여자

이게 뭐죠?

FARO는 조직 내 문서에서 민감한 정보를 탐지하는 도구입니다. 복잡한 데이터 보호 도구를 구성하는 데 많은 시간과 비용을 들일 수 없지만 조직 내 민감 문서를 추적하려는 중소기업 및 개인을 대상으로 합니다.

FARO는 문서에서 민감도 지표(예: 문서 ID, 금액, 개인 이메일)를 추출하고, 문서 내 지표의 빈도와 유형을 사용하여 문서에 민감도 점수(낮음에서 높음)를 부여합니다.

현재 이 도구의 모든 기능은 스페인어로 작성된 문서를 대상으로 하지만, 더 많은 언어를 지원하도록 쉽게 업그레이드할 수 있습니다.

이 도구는 TEGRA R&D Cybersecurity Center에서 개발했습니다.

구성 요소는?

프로젝트에는 다음 폴더가 포함되어 있습니다:

  • faro/: FARO의 주요 기능이 있는 모듈입니다.
  • config/: YAML 구성 파일이 위치합니다. 언어별로 하나의 yaml 파일(감지되지 않은 언어에 기본 기능을 제공하는 nolanguage.yaml 파일 포함)과 모든 언어에 공통된 구성 파일 config/commons.yaml이 있습니다.
  • models/: FARO 모델을 배치하는 폴더입니다.
  • faro_detection.py: 단일 파일에 대해 독립 실행 모드로 FARO를 실행하는 런처입니다.
  • faro_spider.sh: 일괄 처리를 위한 스크립트입니다.
  • docker_build_faro.sh: Linux 및 Mac OS에서 FARO Docker 이미지를 빌드하기 위한 스크립트입니다.
  • docker_build_faro.bat: Windows에서 FARO Docker 이미지를 빌드하기 위한 스크립트입니다.
  • docker_run_faro.sh: Linux 및 Mac OS에서 FARO 컨테이너를 실행하기 위한 스크립트입니다.
  • docker_run_faro.bat: Windows에서 FARO 컨테이너를 실행하기 위한 스크립트입니다.
  • CHANGELOG: FARO 변경 로그입니다.

Docker로 FARO 실행하기

FARO는 Docker를 사용하여 독립 실행형 컨테이너로 실행할 수 있습니다. 이미지를 직접 빌드하거나 Docker Hub 저장소에서 가져올 수 있습니다.

Docker Hub에서 FARO 이미지 가져오기

시스템에 Docker가 설치되어 실행 중인 경우 다음 명령을 실행하여 Docker Hub에서 최신 FARO 이미지를 가져옵니다.

docker pull gradiant/faro

Docker 이미지를 실행하려면 docker_run_faro.sh (Linux/Mac OS) 또는 docker_run_faro.bat (Windows) 스크립트를 사용하십시오. 프로젝트 루트 또는 최신 릴리스에서 찾을 수 있습니다.

FARO 이미지 빌드하기

시스템에 Docker가 설치되어 실행 중인 경우 다음을 수행하여 FARO 이미지를 빌드합니다.

Linux 및 Mac OS

./docker_build_faro.sh

Windows

docker_build_faro.bat

FARO 컨테이너 실행하기

FARO 컨테이너를 실행하기 위해 프로젝트 루트에 몇 가지 스크립트가 제공됩니다. 편의를 위해 해당 스크립트를 다른 곳에 복사하여 사용할 수 있습니다. 현재 디렉터리 아래에 "output" 폴더가 생성됩니다.

Linux 및 Mac OS

./docker_run_faro.sh <파일이 있는 폴더>

Windows

docker_run_faro.bat <파일이 있는 폴더>

Tika에 tesseract 통합을 통해 OCR 지원을 추가했습니다. OCR 프로세스의 일부 사용자 정의는 env 파일을 사용하여 조정할 수 있으며, 해당 경로를 스크립트의 두 번째 인수로 제공해야 합니다. 템플릿으로 사용할 주석 처리된 예제가 여기에 제공되어 있습니다.

./docker_run_faro.sh <파일이 있는 폴더> <env 파일 경로>

예:

./docker_run_faro.sh ../data docker_faro_env_example.list

결과

FARO는 현재 폴더 안에 "output" 폴더를 만들고 실행 결과를 두 개의 파일에 저장합니다:

  • output/scan.$CURRENT_TIME.csv: 문서에 부여된 점수와 각 파일의 지표 빈도를 포함하는 CSV 파일입니다.
filepath,score,person_position_organization,monetary_quantity,signature,personal_email,mobile_phone_number,financial_data,document_id,custom_words,meta:content-type,meta:author,meta:pages,meta:lang,meta:date,meta:filesize,meta:num_words,meta:num_chars,meta:ocr
/Users/test/code/FARO_datasets/quick_test_data/Factura_NRU_0_1_001.pdf,high,0,0,0,0,0,0,1,4,application/pdf,Powered By Crystal,1,es,,85739,219,1185,False
/Users/test/code/FARO_datasets/quick_test_data/Factura_Plancha.pdf,high,0,6,0,0,0,0,2,8,application/pdf,Python PDF Library - http://pybrary.net/pyPdf/,1,es,,77171,259,1524,True
/Users/test/code/FARO_datasets/quick_test_data/20190912-FS2019.pdf,high,0,3,0,0,0,0,1,2,application/pdf,FPDF 1.6,1,es,2019-09-12T20:08:19Z,1545,62,648,False
  • output/scan.$CURRENT_TIME.entity: 파일에서 추출된 지표(세분화) 목록이 포함된 JSON입니다. 예:
{"filepath": "/Users/test/code/FARO_datasets/quick_test_data/Factura_NRU_0_1_001.pdf", "entities": {"custom_words": {"facturar": 3, "total": 1}, "prob_currency": {"12,0021": 1, "12,00": 1, "9,92": 1, "3,9921": 1, "3,99": 1, "3,30": 1, "15,99": 1, "13,21": 1, "1.106.166": 1, "1,00": 1, "99,00": 1}, "document_id": {"89821284M": 1}}, "datetime": "2019-12-11 14:19:17"}
{"filepath": "/Users/test/code/FARO_datasets/quick_test_data/Factura_Plancha.pdf", "entities": {"document_id": {"H82547761": 1, "21809943D": 2}, "custom_words": {"factura": 2, "facturar": 2, "total": 2, "importe": 2}, "monetary_quantity": {"156,20": 4, "2,84": 2, "0,00": 2, "159,04": 2, "32,80": 4, "191,84": 2}, "prob_currency": {"1,00": 6, "189,00": 2}}, "datetime": "2019-12-11 14:19:27"}
{"filepath": "/Users/test/code/FARO_datasets/quick_test_data/20190912-FS2019.pdf", "entities": {"document_id": {"C-01107564": 1}, "custom_words": {"factura": 1, "total": 1}, "monetary_quantity": {"3,06": 1, "0,64": 1, "3,70": 1}}, "datetime": "2019-12-11 14:19:33"}

호스트 머신에서 FARO 실행하기

참고: LINUX 및 MAC OS X만 지원

전제 조건

이 모드는 올바르게 작동하기 위해 일부 운영 체제와 라이브러리가 필요합니다.

  • Linux 또는 Mac OS
  • Java 1.7 이상
  • virtualenv (필수는 아니지만 권장)
  • GNU parallel (스파이더 스크립트 속도 향상을 위해. 도구에 대한 자세한 정보는 여기에서 확인 가능)
  • git lfs 설치

가상 환경

별도의 가상 환경을 사용하는 것이 좋습니다. virtualenv로 가상 환경을 생성하려면:

virtualenv -p `which python3` <환경 이름>

터미널에서 가상 환경을 활성화하려면 다음을 입력하십시오:

source <환경 이름>/bin/activate

의존성

시스템을 실행하는 가장 쉬운 방법은 다음과 같이 의존성을 설치하는 것입니다:

pip install -r requirements.txt

의존성 목록은 다음과 같습니다:

  • 최소한 스페인어 언어 모델이 포함된 SpaCy
  • numpy
  • scipy
  • sklearn
  • gensim
  • sklearn-crfsuite
  • fuzzywuzzy
  • tika
  • gensim
  • pyyaml
  • pandas

다음은 테스트에 사용되는 의존성입니다:

  • mox
  • unittest-xml-reporting

NER 모델

FARO는 작동을 위해 여러 ML 모델에 의존합니다.

detection:
    nlp_model : es_core_news_sm
    crf_ner_list: models/crf_professions_v1.joblib
    personal_email_detection: models/email_detector.joblib
    target_list: models/legal.txt
    crf_ner_classic: models/crf_classic_step1.joblib,models/crf_classic_step2.joblib,models/crf_classic_step3.joblib,models/crf_classic_step4.joblib,models/crf_classic_step5.joblib
    corp_mail_list: models/corp_mail_list.txt

저장소에서는 모델 크기 때문에 Git LFS를 통해 모델을 관리하고 있습니다. git-lfs가 설치되어 있으면 저장소를 처음 클론할 때 자동으로 모델이 다운로드되어야 합니다.

모델을 수동으로 다운로드하려면 프로젝트 루트에서 다음 명령을 실행하십시오.

git lfs pull

config/es.yml 파일 내의 아래 표시된 경로가 모델을 가리키는지 확인하십시오.

FARO spider

스파이더는 폴더 내의 문서를 재귀적으로 분석하고 결과를 파일에 저장하는 스크립트입니다.

./faro_spider.sh <파일이 있는 폴더>

OCR 추가 후 FARO 실행을 위해 환경 변수를 통해 사용자 정의할 수 있는 몇 가지 구성이 있습니다:

  • FARO_DISABLE_OCR: 이 변수가 설정되면 (값에 관계없이) FARO는 문서에 OCR을 실행하지 않습니다.
  • FARO_REQUESTS_TIMEOUT: Tika 서버가 응답하지 않을 경우 FARO가 타임아웃될 때까지의 시간(초) (기본값: 60)
  • FARO_PDF_OCR_RATIO: 혼합 PDF 문서(텍스트 및 이미지)에서 OCR을 강제하는 데 사용되는 바이트당 문자 수 (기본값: 150 bytes/char)

로깅 구성도 환경 변수를 통해 설정할 수 있습니다:

  • FARO_LOG_LEVEL: FARO 로깅 수준 (기본값: INFO)
  • FARO_LOG_FILE: FARO 로깅 파일 (기본값: None). Docker 사용 시 호스트 시스템에 지속되도록 output 폴더 내에 설정해야 합니다.

단일 파일 탐지

faro_detection.py 스크립트를 사용하여 단일 파일에 대해 FARO 탐지를 실행할 수 있습니다:

./faro_detection.py -i <파일 경로>

다음 두 개의 출력 파일이 생성됩니다: <파일 경로>.entity 및 <파일 경로>.score.

a) <파일 경로>.entity: 유형별로 정렬되고 출현 횟수가 포함된 엔터티 목록의 JSON (엔터티 탐지기 모듈의 출력):

{"LOC": {"Pontevedra": 1}, "MONEY": {"1.000 euros": 2}, "PER": {"Betty Corti\u00f1as": 1, "Eva Expósito": 1, "Belén Portela": 1, "Marta Rivadulla": 1, "Miguel Rivas": 1}, "PROF": {"el tutor": 1}, "ORG": {"Centro de Recursos Educativos": 1}}

b) <파일 경로>.score: 엔터티 유형과 해당 유형이 텍스트에 나타난 횟수가 포함된 JSON입니다. 이 JSON에는 "score" 속성에 민감도 점수("low", "medium", "high")도 포함되어 있습니다.

도구 다운로드