#2.Fuzzing Tool Type.
퍼징 도구는 각각 장,단점이 있으며 다양한 퍼징 도구와 파라미터로 시험하는 것이 바람직하다.
#Mutation Fuzzer.
가장 간단한 종류이며, 입력 값을 무작위로 설정한다는 점에서 기본적 퍼징 개념과 비슷.
즉 랜덤으로 데이터를 변형하기 위해 붙여진 것이고, 변형된 데이터는 소프트웨어와의 충돌을 위해
사용된다. 일반적으로 설정 가능한 2가지 파라미터가 O.
1.Mutation Segment.
변형 데이터 부분에 해당. 모든 데이터가 중요한 것은 아니기 때문에 파일의 특정 부분은 건너뛰는 것이 좋다.
상관없는 테스트를 줄이기 위해 사용하고, 잘 사용하면 확률을 끌어올릴 수 O.
Mutation Segment를 설정하는 2가지 형태.
모든 데이터를 변경.
장점 => 대부분의 취약점의 테스트가 가능하다는 것.
단점 => 테스트할 조합이 너무 많고 소프트웨어가 많은 용량을 잡아먹길래 비효율적.
부분적인 변경도 존재.
특정 데이터들에 대해서 규칙에 의해 다루어진다.
이 방식은 퍼징 프로세스가 대상의 관심 있는 특정 부분만을 테스트하게 할 수 O.
특정 부분은 경험을 통해 결정되지만 퍼징 범위가 제한적이기 때문에 데이터 형식이
특정 부분을 얼마나 정확하게 확인하는가에 따라 좌우된다.
2.Mutation Algorithm.
퍼징하는 동안 데이터를 변경하는 방법에는 3가지가 존재.
2-1 Randomization.
가장 쉽고 보편적인 방법. 무작위로 생성되는 패턴으로 일부를 교체하는 방식으로 데이터를 변경.
문제는 제한된 시간에 모든 가능한 조합을 테스트할 수 없기에 운이 따라야하며 시간도 오래 걸린다.
무작위와 세트 기반을 조합하면 대규모 랜덤 테스트를 하기 전에 취약점 테스트가 가능.
2-2 Set Based.
너무 큰 조합을 시도한다는 문제를 해결.
먼저 세트기반으로 하고 나서 무작위화로 할 수 O.
2-3 Rule Based.
무작위 기반 and 세트 기반의 균형을 추구하는 방식.
#Generation Fuzzer.
문법 기반 or 화이트박스 테스트라고 한다.
테스트할 대상의 내부작동을 이해해야 가능하다.
가장 주요한 포인트는 데이터 모델 작성이기 대부분 복잡하며 문서 or 규약이 있다고 해도
Fuzzing Model로 옮기려면 노력이 필요 O.
프로토콜 or 규약도 공개하지 않는 경우 리버스 엔지니어링을 해야 한다.
'#Fuzzer' 카테고리의 다른 글
#7.Vulnerabilities exploited using FOE. (0) | 2018.05.25 |
---|---|
#6.FOE Fuzzer Windows Additional Information. (0) | 2018.05.25 |
#5.FOE Fuzzer. (0) | 2018.05.25 |
#4.BFF Fuzzer Option. (0) | 2018.05.23 |
#1.Fuzzer. (0) | 2018.05.22 |