보안약점 점검 (개발보안 가이드)
check_egovframe_secure_coding행정안전부·KISA 「소프트웨어 개발보안 가이드」(2021) 구현단계 보안약점 중 정적 패턴으로 오탐을 통제할 수 있는 항목을 소스에서 찾습니다 — SQL 삽입(MyBatis ${…}·iBATIS $…$·JDBC 문자열 연결), 크로스사이트 스크립트(요청 값·EL param/header/cookie 무이스케이프 출력, <c:out escapeXml="false">), 경로 조작, 신뢰되지 않는 URL 자동접속, 운영체제…
Instructions
행정안전부·KISA 「소프트웨어 개발보안 가이드」(2021) 구현단계 보안약점 중 정적 패턴으로 오탐을 통제할 수 있는 항목을 소스에서 찾습니다 — SQL 삽입(MyBatis ${…}·iBATIS $…$·JDBC 문자열 연결), 크로스사이트 스크립트(요청 값·EL param/header/cookie 무이스케이프 출력, <c:out escapeXml="false">), 경로 조작, 신뢰되지 않는 URL 자동접속, 운영체제 명령어, XML 외부개체, 취약한 해시·암호, 보안 문맥의 부적절한 난수, 코드·설정의 하드코드된 중요정보, HttpOnly·Secure 없는 쿠키, printStackTrace, 빈 catch, 역직렬화, 남은 디버그 출력. 규칙은 catalog/secure-coding-rules.json 데이터이고 주석은 무시합니다. 항목마다 파일·라인·CWE·등급·조치와 출처(공통컴포넌트 원본·수정본·매니페스트 없음·프로젝트 코드·테스트)를 냅니다. 예외는 .egovframe-secure-ignore.json(사유·검토자 필수), baselinePath(이전 JSON 결과·SARIF)와 비교해 새 항목 표시, format=sarif 또는 sarifPath 로 SARIF 2.1.0(GitHub code scanning 등). 패턴 기반 진단 보조이며 공인 진단을 대체하지 않습니다.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Markdown 상세 항목 수 | |
| paths | No | 프로젝트 상대 경로 접두어로 좁히기(예: src/main/java/egovframework/example) | |
| rules | No | 점검할 규칙 id(기본 전체) | |
| format | No | 응답 형식(sarif 는 SARIF 2.1.0 JSON 본문) | markdown |
| overwrite | No | sarifPath 가 있으면 덮어쓰기 | |
| sarifPath | No | SARIF 2.1.0 을 쓸 프로젝트 상대 경로(예: egovframe-secure.sarif) | |
| projectDir | Yes | 프로젝트 디렉터리(절대경로 권장) — 읽기만 함 | |
| maxFindings | No | 응답에 담을 최대 항목 수(SARIF 파일에는 전부) | |
| baselinePath | No | 이전 결과(format=json 출력 또는 SARIF, 프로젝트 상대 경로) — 새로 생긴 항목만 표시 | |
| includeTests | No | src/test 도 점검(등급은 낮음으로) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| sarif | No | ||
| byRule | Yes | ||
| summary | Yes | ||
| baseline | No | ||
| byOrigin | Yes | ||
| byTarget | Yes | ||
| findings | Yes | ||
| truncated | Yes | ||
| disclaimer | Yes | ||
| projectDir | Yes | ||
| filesScanned | Yes | ||
| rulesVersion | Yes | ||
| suppressions | Yes |