반응형
I. 잠재적 취약점 식별, 퍼징의 개념
- 컴퓨터 프로그램에 랜덤하게 데이터를 입력하여 충돌, 코드 검증의 실패, 잠재적인 메모리 누수 등의 오류를 체크하는 기법
II. 퍼징의 절차 및 단계별 활동
가. 퍼징의 절차
![]() |
- 퍼징은 퍼징 테스트로도 표현하며 주로 소프트웨어나 컴퓨터 시스템들의 보안 문제를 테스트하기 위해 사용
나. 퍼징의 단계별 활동
단계 | 활동 | 설명 |
분석 | 대상 프로그램 분석 | - 프로그램 실행에 필요한 권한이나 네트워크 사용 여부 등을 분석 |
입력 값 분석 | - 공격에 활용할 수 있는 데이터를 식별 - 파일, 레지스트리, 네트워크 패킷, 환경 변수 등 |
|
생성 및 실행 | 퍼즈 데이터 생성 | - 앞 단계의 분석 결과를 활용하여 실제 테스트 데이터 생성 - 데이터 생성 규칙 및 랜덤 데이터 이용 |
프로그램 실행 | - 퍼즈 데이터를 이용하여 프로그램 실행 - 프로그램 종료 시점 판단 |
|
예외처리 | 예외 모니터링 | - 다양한 예외 상황에 대한 모니터링 - 프로세스 종료, 접근 위반 모니터링 등 |
예외 분석 | - 예외 모니터링 정보를 분석하여 해당 예외가 익스플로잇 가능 여부 판단 |
- 익스플로잇은 취약점 공격으로 보안 취약점이나 설계상 결함을 이용해 공격자의 의도된 동작을 수행하도록 하는 공격 행위
III. 퍼징의 유형
유형 | 설명 |
블랙박스 퍼징 | - 대상 소프트웨어에 대한 사전 지식 없이 퍼징 진행 - 주로 랜덤 데이터를 이용, 프로세스 모니터링 - 퍼징이 신속하게 진행되지만 코드 커버리지가 낮은 단점 존재 |
화이트박스 퍼징 | - 이미 소스코드를 가지고 있는 상태에서 대상 소프트웨어를 완전히 파악 후 입력되는 값 형태를 분석하여 퍼징 진행 - 상세 분석에 따라 데이터 생성 (랜덤 또는 데이터 생성 규칙 활용) - 소스코드가 필요하며 상세한 분석이 필요하므로 신속한 적용이 어려운 단점 존재 |
그레이박스 퍼징 | - 소스코드는 가지고 있지 않으나 대상 소프트웨어를 어느정도 파악하여 바이너리에 입력되는 입력값의 형태를 알고 있을 때 사용 - 입력값의 형태 분석 후 이 형태에 맞게 데이터 생성 - 블랙박스 퍼징에 비해 코드 커버리지가 높으나 상세한 분석에 따른 시간과 노력 필요 |
IV. 퍼징의 활용 사례
사례 | 설명 |
마이크로 소프트 SDL ( Security Development Lifecycle) |
- 일반적인 개발주기 7단계 중 verification 단계에서 동적 분석과 더불어 Fuzzing Test 수행 |
Cisco CSDL (Cisco Secure Development Lifecycle) |
- Secure Software 개발을 위해 Cisco에서 만든 개발 주기 모형 - Validate 단계에서 Fuzzing Test 수행 |
- Fuzzing Test는 의도적으로 비정상적이고 변형된 랜덤 데이터를 애플리케이션에 보내 프로그램의 Failure를 유도하는 동적 분석의 특수한 형태
반응형
'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글
TTAK.KO-10.0292/R2 기준, 정보시스템 하드웨어 규모산정 (1) | 2024.01.01 |
---|---|
경계값 분석 (Boundary Value Analysis) (0) | 2022.12.23 |
시스템 운영 및 유지보수 감리 (0) | 2022.12.22 |
정보시스템 운영·유지보수 감리 (0) | 2022.10.20 |
COCOMO II의 Post Architecture (0) | 2022.07.14 |
QC7 도구 (0) | 2022.07.13 |
시스템 엔지니어링(체계공학) 기반 기술검토회의 (0) | 2022.06.05 |
PMBOK Guide 7th Edition (0) | 2022.04.02 |
댓글