[최종 프로젝트]1차 멘토링 아키텍처 확정 및 공격 시나리오 방향성
개요
1차 멘토링은 프로젝트 전체 방향을 잡는 자리였다. 기술 스택과 인프라 아키텍처를 확정하고, 공격 시나리오의 깊이(Depth)와 범주를 정하는 것이 핵심이었다. 멘토님의 실무 경험 공유와 이전 기수(23~25기) 벤치마킹도 함께 진행했다.
1. 프로젝트 관리 및 문서화 방향성
하이레벨 문서의 필요성
주제 선정 이유와 기술 스택(Tech Stack) 등을 한눈에 파악할 수 있는 고수준(High-level) 정리 문서가 필수적이다. 팀장은 전체 방향성 정리와 문서 관리에 충분한 시간을 투자해야 한다.
문서 분류 원칙
취약점 공격 시나리오를 문서화할 때, 서버 측 공격과 클라이언트 측 공격(피싱 등)을 명확히 구분하여 작성해야 한다.
2. 기술 스택 및 인프라 아키텍처
개발 스택
React(프론트엔드), Spring Boot(백엔드), MySQL(DB)로 확정했다.
클라우드 3-Tier 아키텍처
과거 물리적 망 분리(Web은 DMZ, WAS/DB는 내부망)와 달리, 현대 실무에 맞춰 AWS 기반 ALB → EC2(WAS) → RDS(DB) 형태의 클라우드 서비스를 구축한다.
WAS(예: Tomcat)는 언어 해석과 HTML/CSS 렌더링까지 전부 처리할 수 있어 별도 웹 서버가 필수는 아니다. 그럼에도 웹 서버를 분리하는 이유는 트래픽 분리를 통한 비용 절감 때문이다. 연산 비용 비율은 대략 Web 1 : WAS 10 : DB 100 수준이며, 정적 리소스(이미지 등)는 CDN으로 효율적으로 처리할 수 있다.
WAS를 외부에 직접 노출하지 않고 앞단에 ALB를 두어 보안성을 강화하고 가상 내부망을 구현한다. 대고객용 외부 서비스 클라우드와 내부 직원용 망을 철저히 분리하며, 마이데이터 연동 트렌드를 반영해 진료 기록 등은 외부 RDS에 구성해도 무방하다.
프로젝트 범위 조정
CloudWatch, WAF 등 탐지/로그 수집 및 모니터링 구성은 개발 범위에서 제외한다.
AI 활용 방향
서비스 구현용(AWS Bedrock 기반 의료 상담 챗봇)과 개인 작업용(API/ERD 초안 작성 등)으로 분리하여 활용한다.
3. 보안 공격 시나리오 방향성
전체 원칙
- 단순 취약점 나열을 지양하고, ‘권한 상승’ 및 ‘시스템 침투’ 위주의 킬체인 구성을 목표로 한다.
- 전체 시나리오는 3~4개가 적당하다. 4개 이상이면 서브 시나리오는 1~2분 내로 짧게 다루고 메인 시나리오에 깊이를 더한다.
- 클라이언트, 서버, 모바일, 클라우드 등 범주가 겹치지 않게 분배한다.
- 프레임워크, 써드파티 라이브러리, 백신(Windows Defender)은 모두 최신 버전 기준으로 한다.
공격 뎁스(Depth) 기준
| 구분 | 뎁스 | 설명 |
|---|---|---|
| 클라이언트 공격 | 1~2단계 | 피싱, 1-Click 상호작용 등 최소화 |
| 서버/클라우드 공격 | 3단계 이상 | 웹쉘, 클라우드 해킹 등 깊이 있는 체인 구성 |
랜섬웨어 및 악성코드 (특화 시나리오)
최신 Windows Defender가 켜져 있는 환경에서의 우회 실행 시나리오를 기획한다.
핵심 우회 기법:
- AMSI(시그니처/행위 기반) 우회, ETW 우회
- WinAPI 사용 시 IAT 테이블 탐지를 피하기 위해 D/Invoke (API Hashing) 방식, Direct/Indirect Syscall, Stack Spoofing 적용
- 랜섬웨어 내부 암호화 로직에 대한 암호화 및 난독화 처리 필수
- DefenderCheck 등 오픈소스 검증 도구나 IDA/Ghidra를 활용해 바이너리 플래그 지점을 사전 분석
고급 기법(선택): Guardrail(특정 IP/사용자에서만 발현), Custom Loader 기반 Process Injection, Argument Spoofing
클라우드 및 웹 해킹
- 클라우드(IMDS/SSRF): 챗봇(Amazon Bedrock)의 RDS 접근 권한 및 SSRF 취약점을 통해 타인 진료 기록(IDOR)을 조회하거나 메타데이터를 탈취한다. 메타데이터 획득 시 다양한 파생 시나리오가 가능하다.
- 클라우드 IMDS v2 활성화를 권장하되, 실습이 너무 어려울 경우 v1도 병행 검토한다.
- 웹쉘 및 SQLi: 웹쉘 업로드는 관리자 페이지를 타겟으로 고정한다. SQLi는 관리자 권한 전제 조건을 없애고, 일반 유저나 비인가 상태에서 관리자 크리덴셜을 탈취하는 방향으로 재구성한다.
모바일 앱 해킹
- 딥링크 및 WebView 기반 취약점 점검을 진행한다.
- 웹 진단(Burp Suite)과의 차별점을 위해 통신 구간에 반드시 암복호화 기능을 추가해야 한다.
- 패킷을 난독화하여 Burp Suite 분석을 막고, 네이티브 레벨의 암호화 로직을 우회하기 위해 Frida 리버싱을 강제하는 환경을 구축하는 것이 모바일 파트의 핵심 차별점이다.
4. 이전 기수 벤치마킹
프로젝트 고도화를 위해 이전 기수 사례를 참고한다.
| 기수 | 주요 내용 |
|---|---|
| 25기 | Bastion Host를 활용한 프라이빗 망 관리 및 보안 솔루션(루팅/난독화/Frida 탐지) 자체 개발 적용 |
| 24기 | Docker 컨테이너 탈출 취약점 등 실무 중심 기술 활용 |
| 23기 | Chisel을 활용한 피보팅(Pivoting) 및 SOCKS 프록시 침투 시연 |
5. 취약점 점검 기준
주요정보통신기반시설, 금융권 보안 가이드, OWASP, 빅테크 기준 등을 복합적으로 참고한다. 여력이 된다면 2~3주차에 팀 고유의 점검 기준 항목을 도출하는 것도 좋다.
6. Action Items
개발 목표
2차 멘토링까지 클라우드, 웹, 앱 개발 100% 완료(최소 70% 이상)를 목표로 한다.
보고 방식
멘토 브리핑 시 ‘전체 요약 → 디테일 설명’ 순으로 진행하며, 진행 상황을 ’%’ 단위로 정확히 기록한다. 미완성 시 명확한 사유와 예상 소요 기간을 보고한다.
문서 산출물 일정
| 시점 | 산출물 |
|---|---|
| 이번 주 | 기능 명세서, 기획안, 전체 일정표(하이레벨 WBS) |
| 3주차 | 취약점 진단 보고서 |
| 4주차 | 시나리오 침투 보고서 |
2차 멘토링 준비사항
- 기능별 소개 및 개발 진행 사항 리뷰
- 전체 코드 리뷰는 지양하고, 취약점 경로 관련 핵심 소스 코드만 짧게 리뷰
댓글 남기기