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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PIIHunter — PostgreSQL 데이터베이스와 Jira 이슈에서 정규식, NER/ML, 선택적 자체 호스팅 LLM 탐지를 사용하여 PII를 스캔하며, 마스킹된 보고서와 감사 로깅을 제공합니다. | Kitploit
도구/GitHubGitHub/owasp/piihunter
Defensive ToolsVulnerability AnalysisData ExfiltrationInformation GatheringPrivacySecret DetectionAI SecurityDatabase SecurityLog Analysis
GitHubowasp/piihunter

PIIHunter

PostgreSQL 데이터베이스와 Jira 이슈에서 정규식, NER/ML, 선택적 자체 호스팅 LLM 탐지를 사용하여 PII를 스캔하며, 마스킹된 보고서와 감사 로깅을 제공합니다.

6020시간 26분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

AI PII 스캐너

PostgreSQL 데이터베이스와 Jira 프로젝트에서 개인 식별 정보(PII)를 탐지하기 위한 내부 보안 도구

Python 3.8+ License: MIT

개요

AI PII 스캐너는 애플리케이션 보안 및 개인정보 보호 팀이 PII를 탐지하고 목록화할 수 있도록 설계된 포괄적인 보안 중심 도구입니다. 두 가지 스캔 대상을 지원합니다:

  • PostgreSQL 데이터베이스 — 애플리케이션 스키마 전반에 걸친 컬럼 수준 PII 탐지
  • Jira — 실시간 또는 예약 스캔을 통한 이슈 및 댓글의 우발적 PII 노출 탐지

탐지는 3계층 파이프라인을 사용합니다:

  • 정규식 기반 탐지 — 이메일, 전화번호, SSN, 신용카드 등을 위한 결정적 패턴
  • NER/ML 탐지 — 개체 인식(이름, 위치, 날짜)을 위한 Microsoft Presidio 또는 spaCy
  • 선택적 LLM 분류 — 모호한 자유 텍스트 분석을 위한 자체 호스팅 모델

주요 기능

  • 다층 PII 탐지 — 정규식, ML, 선택적 LLM을 결합한 포괄적 커버리지
  • Jira 통합 — 폴링 또는 실시간 웹훅을 통한 신규 이슈 및 댓글 스캔
  • 스마트 예외 필터 — 예상되는 콘텐츠 억제: @mentions 및 회사 이메일 주소
  • 타임스탬프 보고서 — Jira 스캔 결과는 실행 시마다 날짜가 지정된 JSON 또는 CSV 파일로 자동 저장
  • 보안 우선 설계 — 읽기 전용 데이터베이스 접근, 외부 API 호출 없음, 최소한의 PII 보존
  • 지능형 샘플링 — 성능 영향을 최소화하기 위해 대표 데이터 샘플 분석
  • 포괄적 감사 추적 — 구성, 타임스탬프, 모델 버전과 함께 모든 스캔 기록
  • 개인정보 보호 로깅 — 모든 로그 및 저장된 샘플에서 자동 PII 마스킹

보안 및 개인정보 보호

중요: 이 도구는 안전하고 통제된 환경 내에서 내부 사용 전용으로 설계되었습니다.

보안 제어구현
데이터 유출 방지서드파티 API 호출 없음; LLM 엔드포인트는 자체 호스팅이어야 함
최소 권한 접근애플리케이션 데이터에 대한 쓰기 권한이 없는 읽기 전용 데이터베이스 역할
PII 최소화탐지 결과는 메타데이터와 철저히 마스킹된 샘플만 저장
감사 추적모든 스캔을 누가/무엇을/언제/어떻게 세부 정보와 함께 기록
보안 로깅자동 PII 필드 마스킹이 적용된 구조화된 로그
전송 암호화모든 데이터베이스 연결에 SSL/TLS 필수
웹훅 검증수신 Jira 이벤트에 대한 HMAC-SHA256 서명 검증

목차

  • 설치 — 데이터베이스 스키마 스캔
  • 설치 — Jira 스캔
  • 구성
  • 사용법 — 데이터베이스 스캐닝
  • 사용법 — Jira 통합
  • 아키텍처
  • 탐지 방법
  • 데이터베이스 스키마
  • 예제
  • 문제 해결
  • 고급 주제
  • 기여

설치 — 데이터베이스 스키마 스캔

PostgreSQL 데이터베이스의 컬럼 전반에서 PII를 스캔하려는 경우 이 방법을 사용하세요.

1단계 — 기본 설치

# Clone the repository
cd PIIHunter

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Download spaCy NER model (~800MB)
python -m spacy download en_core_web_lg

2단계 — 읽기 전용 데이터베이스 역할 생성

PostgreSQL 슈퍼유저로 다음을 실행하세요:

CREATE ROLE pii_scanner_readonly WITH LOGIN PASSWORD 'your_secure_password';
GRANT CONNECT ON DATABASE your_database TO pii_scanner_readonly;
GRANT USAGE ON SCHEMA public, app_data TO pii_scanner_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public, app_data TO pii_scanner_readonly;

3단계 — 환경 구성

cp .env.example .env
# Fill in DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD

4단계 — 메타데이터 스키마 초기화

스캔 결과가 저장되는 security_pii 스키마를 생성합니다. 한 번만 실행하세요:

python -m pii_scanner.cli init-schema

5단계 — 첫 스캔 실행

# Preview candidate columns (no data read)
python -m pii_scanner.cli discover

# Run PII detection
python -m pii_scanner.cli scan --sample-size 1000

# View results
python -m pii_scanner.cli report

언제든지 연결 상태 확인

python -m pii_scanner.cli test-connection

설치 — Jira 스캔

Jira 이슈와 댓글에서 우발적인 PII 노출을 스캔하려면 이 방법을 사용하세요.

기본 설치(위의 1단계)가 먼저 필요합니다. Jira 스캔만 원한다면 데이터베이스 설정(2–4단계)은 필요하지 않습니다.

하위 섹션 A — REST API (폴링)

지난 N시간 동안의 활동을 요청 시 Jira에서 폴링합니다. 서버가 필요하지 않습니다.

1단계 — 기본 설치 (아직 하지 않았다면)

cd PIIHunter
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python -m spacy download en_core_web_lg

2단계 — Jira API 토큰 생성

  1. https://id.atlassian.com → Security → API tokens로 이동합니다
  2. Create API token을 클릭하고 이름을 지정한 뒤 토큰을 복사합니다

3단계 — 환경 구성

cp .env.example .env

.env를 편집하고 Jira 세부 정보를 입력하세요:

JIRA_URL=https://yourcompany.atlassian.net
[email protected]
JIRA_API_TOKEN=your_api_token_here

# Optional — leave empty to scan all projects
# JIRA_PROJECT_KEYS=ENG,OPS,SUPPORT

# Emails from these domains will NOT be flagged as PII
COMPANY_EMAIL_DOMAINS=yourcompany.com

4단계 — 연결 테스트

자격 증명을 확인하고, 접근 가능한 프로젝트를 나열하며, 최근 이슈의 샘플을 가져옵니다:

python -m pii_scanner.cli jira test

Expected output:

Testing connection to https://yourcompany.atlassian.net...

  Auth          ✓  logged in as Jane Smith ([email protected])
  Projects      ✓  3 accessible: ENG, OPS, SUPPORT
  Project ENG   ✓  accessible

  Recent issues (no time filter):
    ENG-101  Fix login timeout on mobile
    ENG-100  Update password policy

이것이 실패하면 API 토큰을 확인하고 JIRA_EMAIL이 토큰이 생성된 계정과 일치하는지 확인하세요.

5단계 — 스캔 실행

# Scan last 24 hours
python -m pii_scanner.cli jira scan

# Custom lookback window
python -m pii_scanner.cli jira scan --hours 48

하위 섹션 B — 웹훅 (실시간)

Jira 이벤트를 수신하고 도착하는 즉시 스캔하는 HTTP 서버를 시작합니다. 공개적으로 접근 가능한 엔드포인트가 필요합니다.

1단계 — 기본 설치 + REST API 설정 (하위 섹션 A의 1–4단계를 먼저 완료하세요)

2단계 — 웹훅 종속성 설치

pip install fastapi uvicorn

3단계 — .env에 webhook 설정 추가

# Secret used to verify requests genuinely come from Jira
JIRA_WEBHOOK_SECRET=your_webhook_secret
JIRA_WEBHOOK_PORT=8080

4단계 — 웹훅 서버 시작

python -m pii_scanner.cli jira webhook

# Custom port
python -m pii_scanner.cli jira webhook --port 9090

5단계 — Jira에 웹훅 등록

  1. Jira에서 Project Settings → Webhooks → Create webhook으로 이동합니다.
  2. URL을 http://yourserver:8080/webhook로 설정합니다.
  3. Events에서 다음을 선택합니다:
    • Issue → created
    • Comment → created
  4. secret을 .env의 JIRA_WEBHOOK_SECRET과 일치하도록 설정합니다.
  5. 저장합니다.

이제 Jira는 새로운 이슈와 댓글이 생성될 때마다 서버로 POST 요청을 보냅니다. 스캐너는 각 요청을 즉시 처리합니다.

사용 가능한 엔드포인트:

엔드포인트용도
POST /webhookJira 이벤트를 수신합니다
GET /health서버가 실행 중인지 확인합니다

프로덕션 참고 사항: uvicorn을 인터넷에 직접 노출하지 마십시오. 고급 주제의 프로덕션 웹훅 설정 섹션을 참조하십시오.


구성

모든 구성은 .env의 환경 변수를 통해 관리됩니다. 시작하려면 .env.example을 복사하십시오.

데이터베이스 연결

DB_HOST=localhost
DB_PORT=5432
DB_NAME=your_database
DB_USER=pii_scanner_readonly
DB_PASSWORD=your_secure_password
DB_SSLMODE=require

스캐닝 옵션

# Schemas to scan (comma-separated)
SCHEMAS_TO_SCAN=public,app_data,customer_data

# Schemas to exclude (comma-separated)
SCHEMAS_TO_EXCLUDE=pg_catalog,information_schema,pg_toast

# Rows to sample per column
SAMPLE_SIZE=1000

# Batch size for streaming
BATCH_SIZE=500

탐지 설정

# Minimum confidence threshold (0.0-1.0)
CONFIDENCE_THRESHOLD=0.5

# Enable/disable detection layers
ENABLE_REGEX_DETECTION=true
ENABLE_NER_DETECTION=true
ENABLE_LLM_DETECTION=false  # Only with self-hosted LLM

LLM 구성 (선택 사항)

자체 호스팅 엔드포인트에서만 사용하세요. 절대 공용 API를 가리키도록 설정하지 마세요.

LLM_ENDPOINT=http://your-internal-llm.company.local:8000/v1
LLM_API_KEY=your_private_key
LLM_MODEL=llama-2-7b

Jira 통합

# Jira connection
JIRA_URL=https://yourcompany.atlassian.net
[email protected]
JIRA_API_TOKEN=your_jira_api_token   # generate at id.atlassian.com

# Projects to watch — leave empty to scan ALL accessible projects
# JIRA_PROJECT_KEYS=ENG,OPS,SUPPORT

# Emails from these domains are NOT flagged as PII (your internal addresses)
COMPANY_EMAIL_DOMAINS=yourcompany.com,internal.yourcompany.com

# Webhook server settings (only needed for real-time mode)
# JIRA_WEBHOOK_SECRET=your_webhook_secret
JIRA_WEBHOOK_PORT=8080

로깅

LOG_LEVEL=INFO   # DEBUG, INFO, WARNING, ERROR
LOG_FORMAT=json  # json or console

사용법 — 데이터베이스 스캐닝

스키마 초기화

security_pii 메타데이터 스키마를 생성합니다. 최초 설정 시 한 번 실행하세요:

python -m pii_scanner.cli init-schema

컬럼 탐색

PII 가능성 순으로 정렬된 후보 컬럼을 미리 봅니다 — 데이터는 읽지 않습니다:

# Discover all columns
python -m pii_scanner.cli discover

# Specific schemas only
python -m pii_scanner.cli discover --schemas public,customer_data
도구 다운로드