본문 바로가기

분류 전체보기18

[논문 리뷰] Evaluating Fuzz Testing Fuzz Testing 을 어떻게 평가해야 믿을 만한 결과를 도출할 수 있을지? 에 대해 다루는 논문이다. 이번 포스팅에서는 논문을 섹션 바이 섹션으로 분석하기보다도 결론 정도를 간단히 정리해보고자 한다. 어떻게 fuzzer를 evaluate 해야 하는지에 대한 어느정도의 방향성 말이다. 앞으로 내가 읽을 많은 Fuzzer 관련 논문들의 evaluation 섹션을 좀 더 비판적으로 읽을 수 있을 수 있는 시각을 제공해주었다는 점에서 인상 깊었던 논문이다. 이 논문은 현재까지 많은 Fuzzing 관련 논문들이 사용한 evaluation 기법들이 실제로는 틀린 결과로 이어질 수 있다는 점을 지적하면서, 어떠한 방법으로 Fuzzer를 평가해야 좀 더 신뢰 가능한 결과로 이어질 수 있는지 그 methodolog.. 2024. 2. 9.
[논문 리뷰] Angora : Efficient Fuzzing by Principled Search 두 번째 논문은 Angora : Efficient Fuzzing by Principled Search 이다. 고민할 거리도 많았고, 직접 손으로 그려보기도 하면서 읽은 논문이었던만큼 흥미로웠다. Angora도 찾아보니까 토끼의 한 종류인 것 같다. 논문에서 AFL 이랑 비교하는 부분이 많이 나오는데, 제목도 혹시 노린건가 싶다 (?) Angora : "The main goal of Angora is to increase branch coverage by solving path constraints without symbolic execution." Angora는 mutation-based fuzzer이다. Angora의 가장 큰 목적은 위에 논문에서 발췌한 문장에서 나와있듯, path constraint.. 2024. 2. 7.
[논문 리뷰] All You Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution / Part 2. Forward Symbolic Execution 저번에 이어서 오늘은 All You Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution 의 두번째 파트인 Forward Symbolic Execution에 대한 정리이다. 줄여서 FSE로 쓰도록 하겠다. FSE는 프로그램의 실행 흐름에 대해 논리식을 만들어가면서, 여러 종류의 입력에 대한 프로그램의 행동들을 추론할 수 있게 해준다. 가장 naive 한 형태의 fuzzing이 아래 예시에서 어떻게 동작할 지 생각해보자. x가 32 bit integer 라고 가정한다면, if 분기문의 조건인 x-5 == 14를 만족할 확률은 2의 32승분의 1로 매우 작다. 이를 매번 랜덤한 입력을 바꾸어 가면서, 해당 분기를 tru.. 2024. 2. 5.
[논문 리뷰] All You Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution / Part 1. Dynamic Taint Analysis 오늘은 보안 탑티어 학회들 중 하나인 S&P에 등재된 All You Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution 논문에 대해 리뷰해보도록 하겠다. 이 논문은 SoK 논문인데, SoK 란 Systemization of Knowledge의 약자로 기존에 소개된 기술을 보다 체계적으로 정리하는 논문 형식이라고 보면 된다. 해당 논문은 크게 두 개의 주제로 나누어져 있는데, 첫번째 파트는 Dynamic Taint Analysis에 대해서이고, 두번째 파트는 Forward Symbolic Execution에 대해서이다. 동적 분석 기법, Dynamic Analysis는 프로그램을 실행하면서 취약점을 분석하는 것이라고.. 2024. 2. 1.