AuditForge는 사용자가 보유한 보안 진단 결과를 표준화된 마크다운과 HTML 보고서 초안으로 변환하는 파이썬 명령줄 도구입니다. CSV/JSON 입력을 정규화하고, 심각도별로 진단 항목을 구성하며, 보고서에 포함된 주요 민감값을 마스킹합니다.
이 프로젝트는 대상 시스템을 스캔하거나 공격하지 않습니다. 사용자가 제공한 진단 결과만 로컬에서 처리하며, 생성된 보고서는 공유 전에 사람이 최종 검토하는 것을 전제로 합니다.
채용 검토 시에는 다음 순서로 확인할 수 있습니다.
주요 구현 역량은 입력 데이터 파싱, 심각도 정규화, 민감정보 마스킹, 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 koCSV와 JSON 입력에는 다음 필드가 필요합니다. 파서 호환성을 위해 필드명과 심각도 값은 영문으로 입력합니다.
| 필드 | 설명 |
|---|---|
title |
진단 항목 제목 |
severity |
Critical, High, Medium, Low, Info 중 하나 |
affected_asset |
영향을 받는 호스트, URL, 애플리케이션 또는 시스템 |
evidence |
보고서 초안에 포함할 진단 증적 |
impact |
업무 또는 기술적 영향 |
recommendation |
조치 권고 내용 |
JSON은 진단 항목 객체의 배열 또는 findings 배열을 가진 객체 형식을 지원합니다.
생성된 보고서에는 다음 내용이 포함됩니다.
- 심각도별 진단 항목 수 요약
- 치명, 높음, 중간, 낮음, 정보 순서의 진단 항목
- 마스킹된 증적
- 각 항목의 영향과 조치 권고
HTML 출력은 민감값을 먼저 마스킹한 뒤 사용자 입력 문자열을 HTML 특수문자로 변환합니다. 따라서 예시 증적에 스크립트 형태의 문자열이 포함되어도 활성 HTML로 렌더링되지 않습니다.
examples/에는 모두 가상 데이터만 포함되어 있습니다.
- 기본 CSV 입력
- 기본 JSON 입력
- 기본 마크다운 보고서
- 웹 진단 CSV 입력
- 웹 진단 마크다운 보고서
- 웹 진단 HTML 보고서
- 포트폴리오용 한글 CSV 입력
- 포트폴리오용 한글 마크다운 보고서
- 포트폴리오용 한글 HTML 보고서
- 한글·영문 보고서 문구 예시
웹 진단 예시는 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 보고서 출력 검토