정보보안/버그헌팅

[버그헌팅] 취약점 리스크 산정화 방법

록스타★ 2024. 6. 10. 16:01
반응형

취약점 리스크 정량화 산정 방법
- 특정 취약점이 정보시스템이나 네트워크에 어느 정도의 위험을 초래할 수 있는지를 수치화하는 과정

취약점 리스크 정량화에 고려되는 요소들
- 공격 복잡성
- 공격 범위
- 취약점 유형
- 영향 범위

보안 팀에서 보다 명확하게 조치해야할 취약점에 대한 우선순위를 정하고 관리할 수 있도록 도움

취약점 리스크 정량화 모델
CVSS (Common Vulnerability Scoring System)
- 각 취약점의 공격 복잡성, 공격 범위, 영향 범위 등
- 가장 많이 사용

DREAD (Damage, Reproducibility, Exploitability, Affected Users, Discoverability)
- MS사에서 만들었고 각 취약점이 얼마나 해로운지, 재현 가능한지, 이용 가능한지, 많은 사용자가 영향을 받는지, 발견되기 쉬운지 등

OWASP Risk Rating Methodology 

CVSS v3.1Metrics
공격 벡터 (Attack Vector, AV)
- network, adjacent, Local, Physical

공격 난이도/복잡도 (Attack Complexity, AC)
- Low, High

요구되는 권한 (Privileges Required, PR)
- None, Low, High

유저 상호작용 (User Interaction, UI)
- None, Required

영향 범위 (Scope, S)
- Unchanged, Changed

기밀성 (Confidentiality, C)
- None, Low, High

무결성 (Integrity, I)
- None, Low, High

가용성 (Availability, A)
- None, Low, High


모의해킹 VS 버그헌팅
모의해킹 (Penetration Testing) vs 버그헌팅(Bug Hunting)

In-depth Reconnaissance
- 자산 및 기능을 쉽게 시각화하기 위해 웹 어플리케이션을 자동/수동 탐색 해야함
- 엔드포인트 디렉터리 퍼징 시 일반 목록 대신 상황에 맞게 조정된 wordlist를 사용
- 공격 대상의 영역을 포함한 흥미로운 정보를 얻기 위해 웹 뿐만 아니라 모바일 앱, 브라우저 확장 프로그램, 데스트톱 앱 등을 디컴파일하는 등 범위를 확장해야 함
- 특히 자바스크립트 파일은 숨겨진 파라미터, 하드코딩된 크리덴셜 정보, 만료된 도메인 노출 등 많은 힌트를 남김

수동적 보안 테스트 매우 중요 (Manual Security Testing)
- 자동화에 대한 집착은 버그헌토러서 심층적이고 창의적인 수동 테스트를 방해할 수 있음
- 수동적 보안 테스트 관점에서 봤을 때 기능 기반 버그헌팅과 취약 클라스 기반 버그헌팅으로 나눌 수 있음
- 집중적인 수동 테스트를 위해서는 어플리케이션 내부 동작에 대한 깊은 이해가 필요
- 유료 플랜 가입, SSO 구성 분석, 테스트에 필요한 하드웨어 장치 주문, 공식 문서 읽기 등은 더 성공적인 버그헌팅을 위한 준비물이 될 수 있음

Automation (자동화 보안 테스트는 수동적 버그 헌팅의 준비물)
- 자동화는 수동적 보안 테스트를 대체해서는 안됨
- 효율적인 자동화는 실용적인 정보를 제공하고, false positive를 최소화
- 대부분의 버그헌팅 자동화는 쉽게 찾을 수 있는 취약점만을 잡아내기 때문에 이는 duplicate를 초래
- Nuclei는 뛰어난 오픈 소스 도구이지만, 공개된 템플릿을 단독으로 버그 헌팅에서 사용하는 것은 효과적인 방법 아님, 특정 도구에 과도하게 의존하면 복잡한 보안 문제를 놓칠 수 있음 (다양한 도구와 접근법 필요)


보안 영향 (Security Impact)
- 취약점으로 어떤 악성 행위를 수행할 수 있는지를 증명 (No impact, No bug)
- 대부분의 기업들이 CVSS점수를 이용하기 때문에 창의적인 아이디어와 실행 계획을 수립해 시나리오를 설계해야함
- 추후 발견된 취약점과의 체이닝을 위해 낮은 impact의 취약점을 저장해놓음

프로그램 규칙 준수
- 위험한 명령 실행
- 내부 네트워크 피벗팅
- 타인의 데이터 접근

 

 

결론

취약점 별로 레벨이 나뉘며, 위험도가 높은 취약점을 알게될 시 상금도 대부분 높다.

버그헌팅이 무조건 좋고 모의해킹이 무조건 좋지 안 좋은 게 아니라 버그헌팅과 모의해킹 각자의 장점들이 있다고 생각한다.

 

반응형