◎ 퍼저? 퍼징을 수행하는 도구

 

◎ 퍼징? 소프트웨어 보안 테스트 기법으로, 프로그램에 무작위 데이터를 입력하여 오류를 분석하고 취약점을 파악

- 인터페이스나 프로그램에 일부러 부적절한 데이터나 랜덤 데이터를 주입시켜 시스템 마비를 유발하는 것. 이 과정에서 메모리 유출이나 문서로 기록되지 않은 반응들, 디버그 절차, 코드 입력실패 등이 발생할 수 있는데 이걸 잡아내는 게 목적이다.

 

◎ 특징

1. 입력값의 무작위성 ; 랜덤 숫자, 랜덤 텍스트, 키보드 및 마우스 이벤트 등

2. 단순 신뢰기준 ; Crash, Hang 시 실패로 간주하며 그 외는 통과시킴

3. 자동화 ; 자동화된 툴(Fuzzer)을 통한 무한 반복 테스트 가능

 

◎ 장단점

장점 : 알려지지 않은 취약점을 사전에 탐지할 수 있다 / Zero-Day 공격에 대응할 수 있다

단점 : 무작위성에 의존한다 / 단순한 결함 탐지 위주로 심각한 취약점을 찾아내긴 어렵다.

 

◎ 테스트 분야

- 웹 브라우저, 응용 프로그램, 네트워크 프로토콜, 파일 포맷, 메모리, 커널 등

 

◎ 방법

1) 퍼저 실행

2) 영향력의 범위와 시스템 마비 현상 확인

(한 프로그램에서 취약점을 찾고 싶다면 대상 바이너리와 시드파일 즉, 이미지 파일들이 필요)

3) 왜 그런 현상들이 발생했는지 조사

4) cmin 프로세서 시작

5) 1~4의 과정 반복

 

◎ 퍼징을 위한 input data를 어떻게 정하는지에 따라 두 가지 방식으로 나뉨

1. Mutation

- Mutation (Dumb Fuzzers) : 변이 기반 퍼징

- 주어진 입력 값을 마구잡이로 이리저리 바꿔가면서 새로운 입력 값을 만들어 냄

(데이터의 특정 영역의 값들을 임의로 바꿔치기(replacing)하거나 추가(appending))

- 데이터 형식이나 구조에 대한 명확한 이해가 어려울 때 사용한다.

- Mutation 기법 중 하나인 Bit Flipping은 특정 비트를 일정한 주기 또는 무작위로 바꿔버리는 것

 

2. Generation

- Generation (Intelligent Fuzzers) : 파일의 포맷(형식)이나 프로토콜(규약)을 이해하고 그것에 맞추어 적절한 input을 생상하는 방식

- 밑바닥부터 철저히 구현해야 함

- 대표적인 Smart 퍼저는 Peach Fuzzer 이다.

 

◎ 관련 기사 : https://www.boannews.com/media/view.asp?idx=75607

- 요약 : 보안 전문가들이 흔히 사용되는 윈도우용 퍼징 프레임워크 윈AFL(WinAFL) 50일 동안 사용하여 어도비 리더(Abode Reader) 프로그램에서 53개의 새로운 취약점들을 찾아냈다.

퍼징은 귀찮은 방법이라 보안 전문가들이 대게 기피하는 방법이지만 인공지능을 탑재한 자동화 기술을 접목시키면 효과적인 취약점 발굴 방법이 될 수 있다.

 

퍼저의 구성요소

1. TestCase Generator : 타켓 프로그램에 삽입할 입력을 만듬

2. Logger : 퍼징을 돌리는 중에 버그 분석에 필요한 정보를 기록

3. Worker : 주어진 입력으로 예기치 않은 동작을 인식

4. Server/Master : 1,2,3을 컨트롤하고 상호작용 관리

출처 https://rninche01.tistory.com/entry/Fuzzing-%EA%B3%B5%EB%B6%80

 

◎ 퍼징 구현 예시 : https://blog.naver.com/stop2y/221108894553

'Study' 카테고리의 다른 글

WEB/WAS 취약점 진단 참고 - WebtoB  (1) 2023.10.27
커버로스(Kerberos)  (0) 2023.08.29
Windows Powershell(2)  (0) 2022.08.05
Windows Powershell  (0) 2022.08.04

+ Recent posts