모의해킹이란
목차
1. 모의해킹
2. 해킹 분야
3. 웹 해킹
3-1. 목표
3-2. 공격 절차
3-3. 웹 해킹 공격의 종류
3-4. 웹 어플리케이션 보안 취약점 중요도
4. 진단 종류
5. 모의해킹과 웹 취약점 진단 차이
1. 모의해킹
모의라는 뜻은 시뮬레이션이라고도 흔히 말합니다.
모의해킹은 블랙 해커의 해킹 공격을 미리 예방하고자 고객사의 동의하에 공격자 시점에서 해킹해서 취약점을 찾는 일을 합니다.
블랙해커의 시점이 되는 것이지 실제로 상대방의 시스템을 파괴하거나 하지는 않습니다.
2. 해킹 분야
해킹에도 여러 분야가 존재합니다.
시스템 해킹
리버싱 (리버스 엔지니어링)
웹 해킹
암호학
포렌식
네트워크 해킹
클라우드
3. 웹 해킹 (Web Hacking)
웹 사이트의 취약점을 이용해서 공격하는 기술을 의미합니다.
웹 해킹은 웹 어플리케이션 해킹(Web Application Hacking)이라고도 불립니다.
상대방의 정보를 무단으로 탈취하거나 파괴, 상대의 서비스를 방해하는 행위, 허가되지 않은 행위를 하는 것 등을 웹 해킹이라 부릅니다.
3-1. 목표
웹 사이트를 이용해서 상대방에게 공격을 하는 것이 목표입니다.
웹 사이트를 이용해서 공격하는 것이기 때문에 해당 웹 서버만 공격하는 것이 아니라 해당 웹 사이트를 이용하는 사용자도 공격하고 해당 웹 사이트를 만드는 개발자를 공격하는 등 목표 대상은 여럿 존재합니다.
제일 최근에 기억에 남았던 것은 개발자를 공격하는 것이었습니다.
라이브러리를 이용해서 개발자를 공격하는 공격이 제일 기억이 남았습니다.
3-2. 공격 절차
- 공격 대상 지정
- 정보 수집
- 취약점 분석
- 공격
- 결과 도출
사실 공격 절차는 의미가 없습니다.
대략 이런 게 있다라고 생각하면 되지만 실제 블랙해커가 이런 식으로 비슷하게 할 수도 있지만 다른 것보다 정보 수집이 가장 중요합니다.
3-3. 웹 해킹 공격의 종류
SQL Injection
임의의 SQL 질의문을 삽입해서 실행하는 공격 기법입니다.
Command Injection
웹 요청에 임의의 시스템 명령어를 삽입해서 전송하고, 웹 서버에서 해당 명령어를 실행하는 공격
기법입니다.
XPath Injection
XML 구조에 XPath 쿼리를 삽입하거나 XPath를 조작하여 XML의 내용을 노출하는 공격 기법입니다.
XXE Injection (XEML eXternal Entity)
XML의 Entity를 이용해서 의도하지 않은 데이터를 가져오는 공격 기법입니다.
XXE Injection (XEML eXternal Entity)
XML의 Entity를 이용해서 의도하지 않은 데이터를 가져오는 공격 기법입니다.
XSS (Cross Site Scripting)
클라이언트 측 코드를 삽입하는 공격입니다.
CSRF (Cross Site Request Forgery)
피해자가 의도와 다르게, 자신도 모르게 서버로 임의의 요청을 하게 만드는 공격 기법입니다.
파일 업로드 취약점 (Web Shell)
악성코드를 삽입한 파일 업로드해서 시스템을 장악하는 공격 기법입니다.
파일 다운로드 취약점
경로를 조작해서 사용자의 의도와 다르게 다른 파일을 다운받는 공격 기법입니다.
파라미터 변조 취약점 (Parameter Tampering)
사용자 입력값을 변조해 약용하는 공격 기법입니다.
IDOR (Insecure Direct Object Reference)
페이지 접근 통제 취약점을 이용한 공격 기법입니다.
IL (Information Leakage)
정보 노출 취약점입니다.
WAS 취약점
WAS의 취약점이 발견되어 해당 WAS를 공격하는 공격 기법입니다.
프레임워크 취약점
프레임워크도 WAS와 마찬가지로 프레임워크에 취약점이 발견되면 그 취약점을 이용하는 공격 기법입니다.
3-4. 웹 어플리케이션 보안 취약점 중요도
저는 OWASP에서 선정한 보안상 영향을 크게 줄 수 있는 10가지를 주로 확인합니다.
OWASP Top 10을 통해서 확인하실 수 있습니다.
OWASP Top 10은 매년 업데이트되는 것이 아니라 3~4년 주기로 업데이트됩니다.
아래 목록은 2021년 기준입니다.
A01 - Broken Access Control (접근 권한 취약점)
A02 - Cryptographic Failures (암호화 오류)
A03 - Injection (인젝션)
A04 - Insecure Design (설계 미스 {Miss})
A05 - Security Misconfiguration (보안 설정 오류)A06 - Vulnerable and Outdated Components (취약 및 오래된 컴포넌트나 라이브러리)A07 - Identification and Authentication Failures (식별 및 인증 오류)A08 - Software and Data Integrity Failures (소프트웨어 및 데이터 무결성 오류)A09 - Security Logging and Monitoring Failures (보안 로깅 및 모니터링 부재)A10 - Sever - Side Request Forgery (서버 측 요청 변조)
4. 진단 종류
웹 모의해킹 진단
웹 취약점 진단 (체크리스트로 진행해서 유/무의 판별만 합니다.)
소스코드 진단
모바일 앱 진단
APT 모의훈련
C/S 진단
IoT 진단
5. 모의해킹과 웹 취약점 진단의 차이
취약점 진단은 취약점 진단 체크리스트를 가지고 해당 취약점만 있는지 없는지 유 / 무 판단만 내리는 일을 합니다.
모의해킹은 웹 취약점 진단에 없는 취약점을 찾는 경우도 있고 해당 취약점으로 어떠한 공격이 가능한지 보고서에 작성합니다.
취약점 진단
장점 : 빠르게 진단하고 여러 기능별로 꼼곰하게 살펴볼 수 있습니다.
단점 : 모의해킹도 고객사가 위험성을 잘 모르는 경우가 있는데 취약점 진단은 어떠한 공격이 가능한지, 결과를 보고서 작성을 안하기에 자세하게 설명을 못 합니다.
모의해킹
장점 : 취약점 개수를 중요하지 않고, 취약점을 이용해 공격을 했냐 안했냐를 판단합니다. 어떠한 공격이 가능한지, 결과를 보고서를 작성해서 고객사를 설득하기 좋습니다.
단점 : 취약점 진단에 비해 느리고, 모든 기능별로 찾아보지 않습니다.
6. 모의해킹 시나리오 종류
시나리오 기반 모의해킹
진단대상을 받아서 모의해킹하는 것을 시나리오 기반 모의해킹이라 합니다.
블랙박스 모의해킹
대상도 모르고 계정도 모르는 아무것도 모르는 상태에서 진행하는 모의해킹을 블랙박스 모의해킹이라 합니다.
고객사에서 미션을 받는 경우도 있습니다.
시나리오 기반 모의해킹보다 기간이 더 깁니다.