02: 어떻게 취약점을 찾는가

Code Auditing

Fuzzing

취약점을 자동으로 찾는 도구 또는 테스팅.

자동화 또는 반자동화된 소프트웨어 테스트 기법으로서, 컴퓨터 프로그램에 유효한, 예상치 않은 또는 무작위 데이터를 입력하는 것이다. 이후 프로그램은 충돌이나 빌트인 코드 검증의 실패, 잠재적인 메모리 누수 발견등 같은 예외에 대한 감시가 이루어진다.

  1. 무작의 입력을 대입한다.
  2. Crash가 발생하는지 모니터링한다.
  3. Crash가 발생한 경우, 해당 입력값을 저장한다.
  4. 새로운 입력값을 생성한다.
  5. 1번으로 돌아간다.