필요 역량
Creative Thinking, Logical Thinking, Fact-Based Thinking
Modeling Skill, Reaearch Skill, Problem-Solving Skill
Documentation Skill, Communication Skill, Presentation Skill
꾸준한 자기계발
구조화 능력
추진력
커뮤니케이션 능력
모의해킹, 왜?
- 법적 리스크 감소
- 취약점 검사(Pentration Test: Pentest)
- 보안 자격 취득
환경
- Black-Box testing: 아무것도 모르는 채로 해킹
- Gray-Box testing: 조금 아는채로 해킹
- White-Box testing: 모든 소스를 알고있는 상태에서 해킹
취약점 분석 vs 취약점 진단 vs 모의 해킹 vs 고도화 모의해킹 vs 침투 모의해킹
- 취약점 분석: 이미 알려진 취약점 발생 여부 또는 새로운 취약점을 확인하기 위한 분석의 과정
- 취약점 진단: 보안상 이슈가 될 수 있는 여러 항목들에 대하여 진단하는 것(체크 리스트, 스크립트, 가이드에 기반)
범위 | 특징 | |
---|---|---|
모의해킹 | 취약점 | 발생 확인(가능성 증명), 취약점 증명 |
고도화 모의해킹 | 취약점 익스플로잇 | 파급력 증명 |
침투 모의해킹 | 침투 확인(내->내/외->내) | APT진단 & 연계 |
금융보안 실무
- Red Teaming
- Pentest
- Security Review
- Bug Bounty
- Privacy
- Security Operation
- Security Solution Development
- ...
Red Team | Blue Team |
---|---|
1-day, 0-day exploit analysis | 취약점 공격 탐지 패턴 연구 |
exploit code 작성 | 모니터링 시스템 검토 |
공격도구개발(Remote Shell, Back Door) | 내부 인프라 내부 설정 확인 |
내부 오픈소스, 프레임워크 취약점 파악 | 보안 장비 운영, 룰 업데이트 |
보안시스템 무력화, 우회 | 침입 로그 분석 |
앱 취약점 분석 방법 - Android
- linux 커널
- HAL (Hardware Abstraction Layer)
- Android Runtime
- ART
- Dalvik
- Native C/C++ 라이브러리
- Java API Framework
- System App
System및 Data Directory APK는 zip아카이브 프로그램 resource
- 일반 리눅스는 /usr/bin
- Android의 경우 /system/bin shell명령어
- Linux Embeded: BusyBox
- Android: ToolBox
APK
- google app store에서 app설치
- adb를 통해 app download
- 개발자 모드로 전환 필요 App bindary 분석
- Decompile: Dex2Jar, JD-GUI, jdx
- Disassembly: smali / baksmali Native Library 분석
- C/C++로 작성된 so파일을 ida, ghidra등으로 분석 Resources 분석
- AndroidManifest.xml
- Config file
- Database file
- ...
동적분석
- Rooting
- Emulator
- App install
- Information gathering
- Hooking
앱 취약점 분석 방법 - iOS
IPA(iOS App Store Package)
- iOS App은 IPA 아카이브로 배포
- IPA 파일은 앱을 실행하는 데 필요한 모든 코드의 리소스가 포함된 ZIP압축 아카이브
- IPA 파일은 build-in directory structure를 가짐
- /Payloads: 모든 어플리케이션 데이터 포함
- /Payloads/Application.app: 어플리케이션 데이터 자체(ARM 컴파일 코드) 및 관련 정적 리소스
- ...
모의해킹
- 웹사이트 기능 분석
- 가이트 가입 및 고객으로 서비스 이용
- 전자 급융, HTTPS 등 확인
- 개인정보 보관 여부 확인
- 사이트에 전반적으로 익숙해지는 시간
- 보안 솔루션 작동 여부 확인
- 플랫폼 확인
- 웹사이트 언어(Java/Rails/Django…)
- 프론트엔드 프레임워크 사용 유무
- 템플릿 사용 유무
- 웹서버 플랫폼 확인
- 기본 체크리스트 기반 점검
- XSS, CSRF, ...
- SQL Injection
- 정보 누출: 오류/개인정보 등 확인
- 인증 및 인가: 인증 우회 시도
- TLS 항목: 취약한 알고리즘 허용
- 각종 우회 기법 시도
- XSS
- SQL Injection
- XXE
- 취약점 평가 조치방안 작성
- 취약점의 적정성 평가
- 위험도 산정
- 조치방법 작성 - 중요!!
- 리포트 작성
- 정량적인 통계 산출
- 총평 & 조치 가이드 작성
- 대부분 반자동화