유료 프롬프트
SECURITY
스킬
Claude Code 보안 점검 스킬 — "보안점검해줘" (app-security-audit)
이온디
2026.10.15
31
0
평점
0.0
리뷰 0개
사용 방법
본문을 복사해 AI 도구에서 실행하세요
-
STEP 1
아래 본문에서 역할, 목적, 입력값, 출력 형식을 확인합니다.
-
STEP 2
ChatGPT, Claude, Gemini, Codex의 대화창이나 프로젝트 지침에 붙여넣습니다.
-
STEP 3
예시 입력값을 내 업무 정보로 바꾼 뒤 실행하고 결과를 검토합니다.
스킬 파일 제공
구매하시면 app-security-audit 폴더가 담긴 압축 파일을 받으실 수 있습니다. ~/.claude/skills/에 폴더째 두고 scripts/selftest.py 로 설치를 확인한 뒤 "보안점검해줘"라고 말하면 됩니다.

파일 업로드가 있고, 개인정보를 다루고, 사용자가 준 URL 을 서버가 가져오는 앱을 배포하기 직전에는 늘 같은 질문이 남습니다. "보안은 어디까지 봐야 하지?" 이 스킬은 실제 서비스를 만들고 운영하면서 찾아서 고친 취약점과 방어 규칙을 점검 절차와 도구, 복사해 쓰는 방어 코드로 정리한 것입니다. Claude Code 에게 "보안점검해줘"라고 말하면 정적 스캔, 설정 점검, 운영 주소 읽기 전용 점검, 업로드·SSRF 시험까지 순서대로 진행하고 보고서를 씁니다.
왜 필요한가
체크리스트만 있으면 "했다고 생각한 것"과 "실제로 된 것"이 어긋납니다. 이 스킬의 항목은 전부 재현하고, 고치고, 방어를 껐을 때 시험이 실패하는지까지 확인한 것입니다. 실제 사례에서 나온 유형입니다.
| 증상 | 원인 | 수정 |
|---|---|---|
외부 사이트 연동에 http://127.0.0.1:포트 를 넣었더니 서버가 그대로 가져옴 | 사용자 URL 로 나가는 HTTP 호출에 내부 주소 검사가 없음(SSRF) | DNS 를 직접 풀어 검사하고 검증한 IP 로 연결, 리디렉션은 단계마다 재검사 |
문서 안의  가 서버 파일을 결과물에 복사 | 문서에서 추출한 경로를 그대로 신뢰 | 저장소 루트 안 경로와 http(s) 만 허용 |
연·월 칸에 <img onerror=…> 가 그대로 출력 | 서버 렌더러의 문자열 보간 한 곳에서 이스케이프 누락 | 이스케이프 모듈 단일화 + 모든 보간 전수 점검 |
| 문서 제목으로 다운로드 저장 이름이 바뀜 | Content-Disposition 에 제목을 그대로 넣음 | 제어문자 제거 + ASCII 대체명 + filename* 퍼센트 인코딩 |
| 업로드 검수가 8글자짜리 스크립트 한 줄을 통과시킴 | "남은 글자 8자 이하면 기본 틀" 판정의 경계 결함 | 남은 글자에 호출·대입 기호가 있으면 기본 틀이 아님 + 경계값 회귀 시험 |
| XML 폭탄 시험이 방어 없이도 "통과" | 시험이 스스로 던진 예외를 삼키고, 파서가 읽지 않는 파일을 공격함 | 방어를 끄는 대조 실험으로 시험의 품질을 검증 |
무엇을 하나
- 정적 스캔 — 47개 규칙으로 저장소(JS/TS·Python·PHP)에서 주입 싱크, SSRF 후보, 위험한 역직렬화, 하드코딩된 비밀값, git 에 추적되는
.env를 찾아 파일·줄과 함께 보고. 비밀값은 출력에서 가립니다. - 운영 주소 읽기 전용 점검 — GET·HEAD·OPTIONS 만 보냅니다. 민감 경로 50개, 경로 우회 6개, 비로그인 API 접근, 보안 헤더, CSP, 쿠키 속성, 오류 페이지 정보 노출을 확인합니다. SPA 가 모든 경로에 200 을 돌려주는 환경은 "존재하지 않는 경로"로 기준을 먼저 재서 걸러냅니다.
- 업로드 방어 시험 — 무해한 가짜 악성 샘플 68개(정상 13, 악성 49, 정책에 따라 6)를 만들어 업로드 엔드포인트에 올리고, 차단돼야 하는데 통과한 것과 정상인데 차단된 것(오탐)을 나눠 보고합니다.
- SSRF 시험 — 루프백, 사설 대역, 클라우드 메타데이터, 숫자 표기 IP, IPv4 매핑 IPv6, DNS 이름이 루프백으로 풀리는 주소, 위험한 스킴 등 28개를 URL 입력 엔드포인트에 시험합니다.
- 방어 이식 — SSRF 차단, HTML 이스케이프, 안전 URL, nonce 기반 CSP, 업로드 파일 검수기, systemd·nginx 설정 예를 프로젝트에 맞게 옮기는 절차와 코드를 제공합니다.
핵심 원칙
- 사용자 데이터는 일반 웹 경로로 접근되면 안 된다 — 웹서버는 프록시만, 저장은 웹 루트 밖 + 권한 700 + 암호화, 내려줄 때는 항상 인증·소유 확인 후.
- 업로드한 문서는 실행하지 않는다 — 오피스·뷰어 프로그램으로 열지 않고 파서로 읽어 텍스트·구조만 뽑습니다. 파서는 격리 실행(네트워크 끔, 메모리·시간 제한).
- 시험은 방어를 끄면 실패해야 의미가 있다 — 자기 자신을 속이는 시험을 가려내는 방법을 따로 정리했습니다.
실측
| 확인한 것 | 결과 |
|---|---|
| 보안 수정 전 코드에 정적 스캔 | 실제로 고쳤던 문제 유형 7개를 모두 탐지(주입 싱크, SSRF 후보, 리디렉션 자동 추적, 문서 변환 프로그램 호출, XML 라이브러리·방어 의존성 누락, CSP 인라인 허용, 위험 렌더 지점) |
| 운영 중인 서비스에 읽기 전용 점검 | 요청 79건으로 민감 경로 50개·경로 우회 6개 모두 차단 확인, 아직 배포 전이던 CSP 문제 1건을 정확히 지적 |
| 업로드 검수기 템플릿 × 가짜 악성 샘플 68개 | 악성 49개 전부 차단, 정상 13개 전부 통과(오탐 0). 독립 교차 시험에서 방어 결함 1건과 시험 기대값 오류 2건이 드러나 각각 가려서 고침 |
자체 시험 selftest.py | 일부러 취약하게 만든 로컬 서버·가짜 저장소 대상으로 29개 확인 통과(기본 26개, 선택 의존성이 있으면 29개) |
구성
| 파일 | 역할 |
|---|---|
SKILL.md | 점검·적용 절차, 지킬 것(허가된 대상만, 읽기 전용 기본) |
references/CHECKLIST.md | 항목 ID 가 붙은 57개 점검 항목(확인 명령·통과 기준) |
references/01~10 | 원칙, 데이터 비노출, SSRF, XSS·CSP, 업로드 검수, 문서 파서, 인증·CSRF, 배포 하드닝, 시험 방법, 실제 사례 15건 |
scripts/ | 정적 스캔, 운영 점검, 샘플 생성, 업로드·SSRF 시험, 자체 시험(표준 라이브러리만 사용) |
templates/python | SSRF 방어, HTML 이스케이프, 안전 URL, 업로드 파일 검수기(이미지·PDF·OOXML·OLE/HWP·CSV·zip) |
templates/ts · templates/deploy | 안전 URL, nonce CSP 미들웨어 / 하드닝한 systemd 유닛, nginx 프록시 전용 설정, 보고서 양식 |
설치
구매 후 전체 프롬프트 확인 가능
유료 프롬프트의 전문과 복사용 프롬프트는 구매자에게만 제공됩니다. 공개 본문에서는 구성, 활용 범위, 업데이트 내역만 확인할 수 있습니다.
요구 사항과 주의
- Python 3.9 이상. 스크립트는 표준 라이브러리만 씁니다. 선택:
httpx,bun,git, 업로드 검수기용pillow pypdf defusedxml olefile oletools. - 본인 소유·허가된 프로젝트와 도메인에서만 쓰세요. 운영 주소 점검은 읽기 전용이고, 업로드·SSRF 시험은 로컬·스테이징에서만 실행하도록 막아 두었습니다.
- 스캔 결과는 후보 목록입니다. 코드를 읽어 진짜인지 판정하는 단계가 절차에 들어 있습니다.
- 전문 모의해킹이나 인증을 대체하지 않습니다. 방어 코드는 출발점이며 프로젝트에 맞게 고쳐 쓰고 시험해야 합니다.
리뷰
별점과 함께 남기는 사용 후기
아직 리뷰가 없습니다
리뷰를 작성하려면 로그인하세요.
첫 리뷰를 남겨보세요.