← 메인으로

📄 전자금융 보안 모의해킹 · SSI Injection

Target: 고객센터 게시판 렌더링
평가기준: 위험도 4 WEB-SER SSI Injection(018)
💡 쉽게 말하면
손님이 쓴 글에 마법 주문이 들어 있으면 서버가 그대로 명령을 따릅니다. 주문 기능을 꺼두고 글자는 그냥 글자로만 보여줘야 합니다.
🔓 공격 시뮬레이션 (Red Team)
🛡️ 대응 방안 (Blue Team)
게시글 입력🔒 Secured Channel
사용자 입력이 SSI(Server Side Includes) 지시자로 그대로 평가되면, <!--#exec--> 같은 지시자로 서버 명령 실행이나 내부 파일 노출이 발생합니다.
⚡ SSI 지시자 주입
입력에 #exec / #include 지시자 삽입
OFF
🖥️ 금융 시스템 처리 로그
[SYSTEM] Core Banking Channel ready.
[INFO] 거래 요청 대기 중...
⚖️ 컴플라이언스 위반 분석
공격 실행 후 분석 결과가 표시됩니다.
[심각] 전자금융 보안 기준 위반 감지
  • 금융보안원 평가기준 WEB-SER SSI Injection(018) (위험도 4)
  • 서버 측 지시자 평가에 의한 명령 실행 위반
  • 전자금융감독규정 제15조(해킹 등 방지대책) 미흡
🛡️ 대응 코드/설정 실습

템플릿에서 SSI 처리를 비활성화하고, 사용자 입력을 이스케이프/검증해야 합니다. 아래 코드를 보완하세요.

📚 금융보안원 평가기준 / 조치 가이드

1. 점검 항목

인젝션 > SSI Injection

2. 위험 분석

  • 사용자 입력이 서버 SSI 지시자로 평가되어 명령 실행·파일 노출

3. 조치 방법

  • SSI 비활성화(Options -Includes)
  • 입력 이스케이프/검증
🏗️ 현대 금융 IT 환경에서의 변형
레거시 잔존컨테이너 설정CSP

어디가 달라졌나

SSI 는 거의 쓰이지 않지만 레거시 설정으로 살아 있는 경우가 있습니다. 문제는 아무도 쓰지 않는 기능이 켜져 있다는 점입니다 — 사용하지 않으니 점검에서도 빠지고, 공격자만 그 경로를 찾습니다.

현대 스택에서의 조치

  • SSI 를 끕니다(Options -Includes, nginx ssi off;). 쓰지 않는 기능을 켜 둘 이유가 없습니다.
  • 동적 포함이 필요하면 템플릿 엔진·엣지 함수로 대체하고, 사용자 입력은 렌더링 대상이 아니라 데이터로 전달합니다.
  • 사용자 생성 콘텐츠는 저장 시 정제 + 출력 시 이스케이프를 모두 적용합니다.
놓치기 쉬운 곳 — 사내 베이스 이미지에 예전 설정이 남아 전 서비스로 퍼지는 구조입니다. 한 서비스에서 발견되면 같은 이미지를 쓰는 전체를 점검해야 합니다.