루키즈 28기 최종프로젝트 때 진행한 멘토링 내용을 정리하였습니다.
최종프로젝트 주제는 모의해킹이며, 멘토링은 총 5번 진행됩니다.
멘토링 일지를 기준으로 프로젝트 진행상황을 정리하였습니다.
프로젝트의 구체적인 주제는 멘토링 전에 확정지었습니다.
팀 내의 브레인스토밍을 통해, '의료 서비스 기반 모의해킹 시나리오' 로 결정되었습니다.
첫 번째 멘토링은 프로젝트 및 문서 관리, 기술 동향을 중심으로 진행되었습니다.
1. 프로젝트 문서화
- 주제 선정 이유, 개발 스택 등 요소들을 한 눈에 볼 수 있는 고수준 정리 문서를 작성해야 함.
- 리더는 전체적인 방향성을 정리하고 문서를 관리하는 데에 충분한 시간을 투자해야 함.
2. 인프라 구조
2-1. 전통적인 3-Tier 구조
- 구조: Web - WAS - DB
- WAS는 특정 언어(Java 등)를 해석/연산하는 역할 (Tomcat 등)
- HTML/CSS 등 정적 컨텐츠는 Web에서 처리하며, JSP 등 동적 연산은 WAS에서 처리
- WEB Server를 따로 두는 이유
- 트래픽 분리: 연산 비용 절감
- 정적 컨텐츠 처리: 사이즈가 큰 컨텐트를 WAS가 모두 부담하기엔 비효율적
2-2. 클라우드 환경 3-Tier
- 과거: Web은 DMZ, WAS/DB는 내부망에 위치
- 현재(AWS 등): EC2, RDS, ALB 등 서비스 단위로 구성
- WAS로 직접 접근하도록 구성하지 않는 대신, ALB를 앞단에 두어 보안성 강화 및 자체적인 가상 내부망 구성
- 권장 구성: ALB-EC2-RDS
- 망 분리 전략: 서비스는 외부, 내부망은 직원용으로 분리. 클라우드 상의 고객 정보는 내부망에서만 접근 가능하도록 구성
3. 보안 취약점 및 공격 시나리오
3-1. 클라우드 및 Web 공격
- IMDSv2: 보안을 위해 v2만 활성화
- IDOR: 챗봇이 RDS 접근 권한이 있는 경우, 챗봇을 통해 타인 진료 기록 조회 등의 시나리오 가능
- 공격의 유효성: 관리자 권한 획득 후 SQLi를 수행하는 것보다, 비인가자가 공격하는 것이 더 논리적
- 분류: 서버 공격과 클라이언트 공격(피싱 등)을 명확히 구분하여 문서화
3-2. 프로젝트 시나리오 구성
- 10명 기준 시나리오 3~4개 적정 (5개 이상은 발표시간 부족)
- 구성 예시
1. 클라이언트 공격 (피싱 등)
2. 단말기/모바일 공격
3. 해커의 적극적 공격 (WebShell 등)
4. 클라우드 인프라 공격 (Metadata 등)
- 부수적 요소: 로그 삭제 등
3-3. 모바일 보안
- 일반적인 Web API는 Burp로 분석이 가능하지만, App Server간 암호화 통신이 적용되면 패킷 난독화 가능
- Native에서 복호화가 이루어지므로, Frida를 사용하여 후킹
웹, 모바일, 인프라 3개의 역할을 나누어 다음 멘토링 전까지 최소 70% 정도 서비스 구현을 하기로 했습니다.
댓글