Skip to content

ryuyunseong/AuditForge

Repository files navigation

AuditForge

라이선스: MIT

AuditForge는 사용자가 보유한 보안 진단 결과를 표준화된 마크다운과 HTML 보고서 초안으로 변환하는 파이썬 명령줄 도구입니다. CSV/JSON 입력을 정규화하고, 심각도별로 진단 항목을 구성하며, 보고서에 포함된 주요 민감값을 마스킹합니다.

이 프로젝트는 대상 시스템을 스캔하거나 공격하지 않습니다. 사용자가 제공한 진단 결과만 로컬에서 처리하며, 생성된 보고서는 공유 전에 사람이 최종 검토하는 것을 전제로 합니다.

포트폴리오 빠른 보기

채용 검토 시에는 다음 순서로 확인할 수 있습니다.

  1. 현대오토에버 신입 채용 제출용 프로젝트 요약
  2. 가상 포트폴리오 입력 데이터
  3. 한글 마크다운 예시 보고서
  4. 한글 HTML 예시 보고서
  5. v0.2.0 기술 릴리스 노트(영문)

주요 구현 역량은 입력 데이터 파싱, 심각도 정규화, 민감정보 마스킹, HTML 특수문자 안전 처리, 한글·영문 보고서 출력, 단위 테스트, 깃허브 기반 변경 및 릴리스 관리입니다.

빠른 실행

저장소를 내려받은 뒤 패키지를 개발 모드로 설치합니다.

python -m pip install -e .

가상 포트폴리오 입력으로 한글 마크다운 보고서를 생성합니다.

auditforge convert examples\portfolio_demo_findings.csv `
  --out examples\portfolio_demo_report.md `
  --language ko

한글 HTML 보고서를 생성합니다.

auditforge convert examples\portfolio_demo_findings.csv `
  --out examples\portfolio_demo_report.html `
  --language ko

패키지를 설치하지 않은 경우에는 PYTHONPATH를 지정해 실행할 수 있습니다.

$env:PYTHONPATH = "src"
python -m auditforge convert examples\portfolio_demo_findings.csv `
  --out examples\portfolio_demo_report.md `
  --language ko

주요 기능

  • CSV 및 JSON 형식의 진단 결과 입력
  • Critical, High, Medium, Low, Info 심각도 정규화
  • 심각도별 마크다운 및 HTML 보고서 생성
  • --language en|ko를 통한 영문·한글 보고서 선택
  • 이메일, 전화번호, 주민등록번호 형식, Bearer 토큰, API 키, 비밀번호 유사 값, 쿠키 값 마스킹
  • HTML 보고서에서 사용자 입력값 특수문자 처리
  • 실제 고객정보가 없는 가상 입력 데이터와 생성 결과 제공

사용 방법

기본 출력 언어는 영문입니다. --out 파일의 확장자가 .html 또는 .htm이면 HTML 형식을 자동으로 선택하고, 그 외에는 마크다운으로 생성합니다.

auditforge convert examples/sample_findings.csv --out examples/sample_report.md
auditforge convert examples/sample_web_findings.csv --out examples/sample_web_report.html

출력 형식과 언어를 명시할 수도 있습니다.

auditforge convert examples/sample_findings.csv --out report.out --format html --language ko

입력 형식

CSV와 JSON 입력에는 다음 필드가 필요합니다. 파서 호환성을 위해 필드명과 심각도 값은 영문으로 입력합니다.

필드 설명
title 진단 항목 제목
severity Critical, High, Medium, Low, Info 중 하나
affected_asset 영향을 받는 호스트, URL, 애플리케이션 또는 시스템
evidence 보고서 초안에 포함할 진단 증적
impact 업무 또는 기술적 영향
recommendation 조치 권고 내용

JSON은 진단 항목 객체의 배열 또는 findings 배열을 가진 객체 형식을 지원합니다.

출력 및 안전 처리

생성된 보고서에는 다음 내용이 포함됩니다.

  • 심각도별 진단 항목 수 요약
  • 치명, 높음, 중간, 낮음, 정보 순서의 진단 항목
  • 마스킹된 증적
  • 각 항목의 영향과 조치 권고

HTML 출력은 민감값을 먼저 마스킹한 뒤 사용자 입력 문자열을 HTML 특수문자로 변환합니다. 따라서 예시 증적에 스크립트 형태의 문자열이 포함되어도 활성 HTML로 렌더링되지 않습니다.

예시 파일

examples/에는 모두 가상 데이터만 포함되어 있습니다.

웹 진단 예시는 SQL 삽입, 크로스 사이트 스크립팅, 보안 헤더 누락, 디렉터리 목록 노출, 취약한 TLS 구성처럼 일반적인 진단 항목을 가상으로 구성합니다.

검증

단위 테스트를 실행합니다.

python -m unittest discover -s tests

파이썬 소스와 테스트의 문법을 확인합니다.

python -m compileall src tests

테스트는 CSV/JSON 파싱, 심각도 정규화, 민감값 마스킹, 보고서 그룹화, HTML 특수문자 처리, 한글 보고서 출력을 검증합니다.

보안 유의사항

  • 생성된 보고서는 외부 공유 전에 반드시 직접 검토해야 합니다.
  • 예시, 테스트, 이슈, 풀 리퀘스트에 실제 고객정보를 포함하지 않습니다.
  • 공개 이슈에 사설 URL, 인증정보, 쿠키, 토큰, 공격 결과 또는 고객 증적을 게시하지 않습니다.
  • 마스킹은 알려진 형식을 줄이기 위한 보조 기능이며 사람의 검토를 대체하지 않습니다.
  • AuditForge는 스캔, 공격, 대상 탐색 기능을 수행하지 않습니다.

개발 및 기여

기여 방법은 CONTRIBUTING.md, 보안 문제 제보 범위는 SECURITY.md, 버전별 변경 내용은 CHANGELOG.md에서 확인할 수 있습니다.

향후 계획

  • 사용자 정의 보고서 템플릿
  • Burp Suite 내보내기 결과 가져오기
  • 웹 및 인프라 진단 항목 예시 묶음
  • 로컬 웹 화면
  • DOCX 보고서 출력 검토

About

보안 진단 결과를 민감정보 마스킹과 함께 마크다운·HTML 보고서로 변환하는 파이썬 CLI

Topics

Resources

License

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages