Project Overview
- title : c2z(CVE to ZERO): 제로데이/원데이 취약점 기반 침해 시뮬레이션 및 침해 기법 연구
- 이택우 (lead), 정민욱, 조영운, 윤서원, 최민재
2. 개요 (Executive Summary)
목표 Goals
- 0-day 취약점 발견
- 1-day 취약점 분석 및 0-day 취약점으로 우회 가능성 검토
- 오픈소스 프로젝트 분석 후 유효한 취약점 제보, KVE 번호 획득
- s2n을 활용하여 0-day, 1-day 웹 해킹 취약점 분석
- 0-day 취약점을 발견하지 못했거나 진척이 없을 경우
- 1-day 취약점 패치 미적용 자동 식별 도구 작성
s2n기능 추가 (1-day 취약점 패치 적용 여부를 확인하는 기능 적용)
- 공격 테스트 자동화 , 취약점 분석 및 문서화, 취약점 환경 구현
- 취약점 구현을 위한 재현 환경 자동화 구현
- 툴 숙련도 및 개발 능력 향상
- 실무 도구들을 활용하여 취약점 수동 진단
- 개인정보 유출 가능성(ISMS-P 기반 / 추가 목표)
- 1-day 취약점 패치 미적용 자동 식별 도구 작성
성과
취약점 발견 (성공 / 실패 케이스)
- 0-day 취약점 발견했을 경우
- 오픈소스 프로젝트에 취약점 제보
KVE번호 발급
- 0-day 취약점을 발견 실패
- 초기 계획 설계서, 취약점 조사 보고서, 결과 보고서 : 문서
- 과정에서 학습
- 1-day 취약점 분석 보고서
개발 관점
- 오픈소스 프로젝트 기여 (
s2n) - 취약점 분석과 공격 시나리오 설계에 따른 스크립트 개발
- 재현환경 구축 자동화 코드
학습 관점
보안:
- 공격 유형, 기법 및 시나리오 설계
- 방어 대책 및 예방법
개발:
- 파이썬
- 리눅스 (nmap)
- 쉘 스크립트
- docker / k8s / 오픈스택
- REST / GraphQL API
3. 수행 계획 (Execution Plan)
역할 분담
각 팀원의 역할과 책임
- Sprint 1
- 설계팀
- 개발팀
- Sprint 2
- 레드팀
- 블루팀
주요 단계
공동 목표를 스프린트 1, 2 목표로 나누어 진행합니다.
- 2주 단위 스프린트로 나누어 프로젝트 진행
- 각 스프린트의 목표를 정한 뒤 회고
Sprint 1:
목표: 취약점 조사 및 취약점 스캔 기능 + 재현환경 개발
- 제로데이, 원데이 등등 공격 시나리오 최대한 수집.
- 설계팀
-
제로데이/원데이 취약점 타겟 산정 후 리스트 산출
- 공격 기법
- 대상 유형
-
공격 기법 시나리오 분석
- 핵티비스트 그룹 공격 방식 수집 및 분석 진행
- 공급망 공격(npm/…) 패키지 취약점 조사 후 가능성 있는 것으로 선정
- 해당 취약점 발생 원인 코드, 패치 전/후 코드 비교
- 선정된 1-day 취약점 조사 후 보고서 작성
- 1-day 취약점 우회 방법 조사
선정된 npm 패키지 분석 후 보고서 작성 (코드가 어떤 역할을 하는지, 취약한 코드 or 방어 코드 확인)
- 핵티비스트 그룹 공격 방식 수집 및 분석 진행
-
cve / kve 기반 타겟 취약점 분석 보고서 작성
-
공격 시나리오 작성
-
공격 스크립트 개발
-
isms-p, 개인 정보 관련 취약성 조사s2n개인정보 유출 모듈 설계
-
- 개발팀
- 모의/재현 환경 설계 및 구축
- Linux OS 별로 자동화 환경 구축 작성
- 도커 컨테이너 활용 코드 짜기
s2n활용을 위한 코드 분석 및 개선- 필요시 침해 사고 분석팀에서 작성한 내용 바탕으로 스캐너 기능 개발
- 모의/재현 환경 설계 및 구축
Sprint 2:
- 팀 전원:
- 설계 보고서 - 중간 보고서 - 결과 보고서
- 각 팀 내부에서 문서화 진행한 뒤 스프린트 끝날 때마다 결산
- 각자 맡았던 파트에 대해 PPT 자료 작성 후 취합
목표: 모의해킹 시뮬레이션 + 보고서 작성
- 레드팀 :
- 스프린트 1에서 작성한 모의환경에 공격 시나리오 수행 (취약점을 찾았다는 가정)
- 취약점을 찾지 못한 경우: 최신 공격 - ai (llm) , npm (최신 공격), 보안 이슈 → 그 취약점 공격 시나리오 구성해서 그걸로 스프린트 1에서 작성한 모의환경
- 1-day 취약점 우회 방법 탐색
- 스프린트 1에서 작성한 모의환경에 공격 시나리오 수행 (취약점을 찾았다는 가정)
- 블루팀:
- 스프린트 1에서 작성한 모의환경에서 레드팀의 방어 스크립트 개발
- 시큐어 코딩 연습
- 개인정보 유출 여부 분석하는 모듈 개발
- 스프린트 1에서 작성한 모의환경에서 레드팀의 방어 스크립트 개발
사용 기술 및 도구
사용 예정인 기술, 툴, 프레임워크 등
- 기술 스텍
- Linux
- Python
- Docker
- Shell
- Kubernetes
- 사용 도구
S2N- Nmap
- Burp Suite
- SQLmap
- Fiddler
- Metasploit
- TruffleHog (+ OpenDLP)
성과물
예상되는 프로젝트의 최종 결과물과 산출물을 설명
코드, 문서, 발표자료
- 코드 - 깃헙 레포에 공개로 올릴 수 있는 결과물
s2nPR 링크 및 작업 코드- 모의해킹 재현환경 자동 구축 스크립트
- 오픈 소스로 만들 수도 있습니다.
- 보고서/설계서
- 취약점 가정
- 공격 시나리오 설계서 (최대한 다양하게)
- 공격 수행
- 발견 or 미발견 보고서
- 발표자료
- 포트폴리오로 활용할 프로젝트 소개 문서 (pdf)
참고 문헌 및 자료
자세한 문서 링크 또는 도서 목록을 기입
- REST API endpoints for security advisories - GitHub Docs
- GitHub Advisory Database
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy/base-uri
- https://www.linkedin.com/posts/%EC%A7%80%EC%83%81-%ED%99%A9-271b76a7_securityalert-supplychainattack-npmsecurity-ugcPost-7399953672425725952-tpJd?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAFSi6CoBgLuUCY7lg_-WMdmzIsTGsWHBZL4