본문 바로가기

Dev13

AFL fuzzer : dictionaries AFL fuzzer에 대해서 조금씩 더 알아나가 보자. 블로그에서 파편화된 지식들로 배우다 보니, 스스로 깊이가 부족한 것 같아서 돌고 돌아 다시 공식 문서다. 두번째 읽으니까 다시 보이는 것이 있어서 정리해둔다. 저번 AFL fuzzer 포스팅에서는 간단한 동작 원리를 살펴보았는데, 타겟 프로그램에 무수히 많은 mutated inputs을 테스팅해봄으로써 취약점을 찾아내는 것이 fuzzing 이다. 하지만 생각해보면, 우리가 사용하는 유명한 프로그램은 독자적인 포맷, 확장자를 제공한다. 예를 들어, PNG, JPEG, PDF, PPTX 등이 있을 것이다. 이러한 확장자들을 살펴보면, 저마다 magic number 혹은 file signature 라는 것이 있는데, PNG 같은 경우, file signa.. 2024. 1. 25.
AFL fuzzer (American Fuzzy Lop) 분석 AFL fuzzer는 사실상 표준인 fuzzer로 fuzzing과 관련된 많은 논문에서 일종의 baseline으로 다루어진다. 가장 기본이 되는 fuzzer인 만큼 후에 참고용으로 공부한 것을 기록해둔다. afl-fuzz 요약 아래 코드는 개인적으로 afl-fuzz.c 의 실행 흐름을 분석하고, 간략하게 pseudo code 형태로 짜본 것이다. 현재 가장 빈번하게 다루어지는 퍼징의 기본적인 형태는 다음과 같다. 1. Queue 에 initial seed, 즉 input 을 넣는다. 2. 반복문에 진입한다. 3. Queue 에서 entry 하나를 가져온다. 4. 이 entry 의 특성을 고려하여, 얼마만큼 fuzzing 시킬 지 결정한다. 5. mutate 6. 만약, mutate 된 testcase가 .. 2024. 1. 21.
체크 포인트 그렇다 할 제목이 떠오르지 않아서 한참 고민하다가 체크 포인트라는 제목을 달아봤다. 한번쯤은 내 주행을 점검할 필요가 있다고 생각해서 오랜만에 블로그 포스팅을 쓴다. 자동자 경주하니까 어렸을 적 되게 재밌게 봤던 영화 카가 생각났다. 영화에서 보면 경주 도중에 차들이 타이어를 갈려고 잠시 들어오는 지점이 있는데, 이를 피트 스톱(pit stop) 이라고 한다. 피트 스톱에 들어가려면 일단 속도도 줄여야 하고 여러모로 기록에 안 좋은 점이 많은 것 같지만, 마모된 타이어를 새 타이어로 교체해서 오히려 더 좋은 퍼포먼스를 내기도 한다. 방학은 약간 피트 스톱같다. 방학 중에도 물론 달리고 있다. 계속해서 머물러 있을 수는 없지만, 잠깐 점검을 하는 시간은 필요하다. 알고리즘에 관한 이야기 최근에 1학기에 시.. 2023. 7. 24.
3/18(토) 모처럼 여유로운 토요일을 맞아 생각 정리도 할 겸 블로그에 글을 쓰기로 했다. 최근에 정말 많은 일이 있었다. 우선, 2월에 전역을 하고 복학을 한 지 어느덧 2주가 넘었다. 시간이 참 빠른 것 같다. 알고리즘에 대한 이야기 Sogang ICPC Team 에서 알고리즘 기초 스터디 강의자로 학회 활동을 다시 이어나가게 되었다. 무언가 새로운 도전을 하고 싶다는 생각이 크게 들어서 자원했다. 사실 내 알고리즘 지식은 군입대와 동시에 거의 전부 소멸됐었는데, 복무 중 가끔 여유가 생겼을 때마다 조금씩 문제를 풀었고, 말출을 나왔을 때는 다시 알고리즘을 본격적으로 공부하기 시작했다. 다시 배운다는 생각으로 차근차근 풀고 있다. 기초 스터디 강의자로 활동하면서, 초급 스터디를 수강하고 있다. 상반기 작은 목표가.. 2023. 3. 18.