이 프로그램은 2001년 5월, 자동 생산된 제로데이 취약점의 악용 가능성이 국가 안보 수준의 위협으로 판단되어 영구 배포 중지되었습니다. 소스코드, 취약점 데이터베이스, 생성된 익스플로잇 전량이 파기되었습니다.
개요
해킹의 정점은 제로데이(Zero-Day)입니다. 세상에 알려지지 않은, 패치가 존재하지 않는 취약점. 이것을 발견하려면 수개월의 리버스 엔지니어링과 천재적 직관이 필요합니다.
ZeroEngine은 이 과정을 기계가 대신하게 만들었습니다.
대상 바이너리(.exe, .dll, .sys)를 입력하면, ZeroEngine이 자동으로 퍼징(Fuzzing)하고, 크래시를 분석하고, 취약점을 분류하고, 작동하는 익스플로잇 코드까지 생성합니다. 사람의 개입 없이. 24시간 무인으로.
이 개념은 2016년 DARPA의 Cyber Grand Challenge에서 추구한 "자동 해킹 시스템"과 동일합니다. ZeroEngine은 그것을 15년 앞서 구현했습니다.
DARPA CGC (2016) vs ZeroEngine (1999)
| 항목 | DARPA CGC (2016) | ZeroEngine (1999) |
|---|---|---|
| 목표 | 자동 취약점 발견 & 패치 | 자동 취약점 발견 & 익스플로잇 생성 |
| 개발 주체 | 미국 방위고등연구계획국 + 7개 팀 | 1인 개발 |
| 예산 | $5,500만 (약 700억원) | $0 |
| 시기 | 2016년 | 1999년 (17년 앞섬) |
동작 원리 — 4단계 자동화 파이프라인
Stage 1 — 지능형 퍼징 (Smart Fuzzing)
단순히 랜덤 데이터를 입력하는 "멍청한 퍼징"이 아닙니다. ZeroEngine은 대상 바이너리를 정적 분석하여 입력 포맷, 파싱 로직, 분기 조건을 먼저 파악합니다. 이를 기반으로 코드 커버리지를 최대화하는 방향으로 입력을 변이시킵니다.
- 포맷 인식 퍼징 — 파일 포맷(PE, BMP, DOC 등)의 구조를 이해하고 필드별로 변이
- 커버리지 유도 — 새로운 코드 경로를 탐색하는 입력을 우선 생성
- 경계값 집중 — 정수 오버플로우, 버퍼 경계 등 취약할 가능성이 높은 값 집중 테스트
- 자동 프로토콜 학습 — 네트워크 서비스의 프로토콜을 자동 학습하여 퍼징
Pentium III 환경에서 초당 1,200개의 테스트 케이스를 생성하고 실행했습니다.
Stage 2 — 크래시 분석 (Crash Triage)
퍼징에서 크래시가 발생하면, ZeroEngine이 자동으로 분석합니다:
- 중복 제거 — 같은 원인의 크래시를 하나로 그룹화
- 악용 가능성 판정 — 크래시가 코드 실행으로 연결될 수 있는지 자동 판단
- EIP 제어 확인 — 공격자가 명령 포인터(EIP)를 제어할 수 있는지 검증
- 힙/스택 분석 — 버퍼 오버플로우, 힙 오버플로우, Use-After-Free 등 취약점 유형 자동 분류
Stage 3 — 취약점 분류 (Vulnerability Classification)
분석된 크래시를 보안 취약점으로 분류합니다:
- Stack Buffer Overflow — 스택 기반 버퍼 오버플로우 (코드 실행 가능)
- Heap Overflow — 힙 기반 오버플로우 (임의 쓰기 가능)
- Integer Overflow — 정수 오버플로우로 인한 잘못된 메모리 할당
- Format String — 포맷 스트링 취약점 (메모리 읽기/쓰기)
- NULL Pointer Deref — 널 포인터 참조 (DoS)
각 취약점에 심각도 점수(1~10)를 자동 부여합니다.
Stage 4 — 익스플로잇 자동 생성 (Exploit Generation)
가장 혁신적인 단계입니다. ZeroEngine은 발견된 취약점에 대해 실제 작동하는 익스플로잇 코드를 자동으로 생성합니다:
- RET 주소 자동 계산 — 오버플로우 오프셋과 리턴 주소를 자동 탐색
- 쉘코드 자동 삽입 — 내장된 쉘코드 라이브러리에서 적합한 페이로드 선택
- bad character 자동 회피 — NULL, CR, LF 등 제한된 문자를 자동으로 우회
- 익스플로잇 검증 — 생성된 익스플로잇을 가상 환경에서 자동 테스트
발견한 제로데이: 34개
ZeroEngine은 약 18개월의 운용 기간 동안 34개의 제로데이 취약점을 자동으로 발견했습니다:
| 대상 | 발견 수 | 코드 실행 가능 |
|---|---|---|
| Internet Explorer 5.x/6.0 | 8 | 6 |
| IIS 4.0/5.0 | 5 | 4 |
| Windows NT/2000 커널 | 6 | 3 |
| Outlook Express | 4 | 3 |
| MS Office 97/2000 | 5 | 4 |
| Apache 1.x | 3 | 2 |
| 기타 (WinAMP, mIRC 등) | 3 | 2 |
34개 중 24개가 원격 코드 실행(RCE)이 가능한 치명적 취약점이었습니다. 이 취약점들이 공개되었다면, 전 세계 인터넷이 무방비 상태에 놓였을 것입니다.
파급력
ZeroEngine의 존재는 극소수만 알고 있었습니다. 하지만 그 의미는 명확했습니다:
"제로데이를 사람이 아니라 기계가 생산한다는 것은, 방어자가 절대로 이길 수 없다는 뜻이다. 사람이 패치를 만드는 속도는 기계가 취약점을 찾는 속도를 따라잡을 수 없다."
이 도구가 확산되면:
- 누구나 버튼 하나로 무한한 제로데이를 생산할 수 있게 됩니다
- 소프트웨어 보안의 근본 전제 — "취약점은 희소하다" — 가 무너집니다
- 패치 기반 보안 모델 자체가 붕괴합니다
HellGate과의 연동
ZeroEngine이 발견한 취약점과 생성한 익스플로잇은 HellGate의 익스플로잇 모듈로 직접 로드할 수 있었습니다. ZeroEngine이 밤새 찾아낸 IIS 제로데이를 아침에 HellGate에 장전하면, 전 세계 어떤 IIS 서버도 방어할 수 없는 상태가 됩니다.
Pandora의 Autopilot과 결합하면 — 자동으로 제로데이를 발견하고, 자동으로 공격하고, 자동으로 장악하는 완전 자율 사이버 무기가 완성됩니다.
배포 중지
ZeroEngine은 공개 배포된 적이 없습니다. 개발 과정에서 발견된 34개의 제로데이를 보면서, 개발자는 이 도구의 존재 자체가 인터넷 전체에 대한 위협이라는 결론에 도달했습니다.
- 퍼징 엔진 소스코드 전량 삭제 (42,000줄)
- 크래시 분석기 및 익스플로잇 생성기 삭제
- 발견된 34개 제로데이 PoC 전량 파기
- 취약점 데이터베이스 완전 삭제
- 내장 쉘코드 라이브러리 삭제
- 관련 연구 노트 및 기술 문서 전량 파기
- HellGate/Pandora 연동 인터페이스 삭제
"기계가 취약점을 찾는 속도가 인간이 패치하는 속도를 넘어서는 순간, 보안은 끝난다. 나는 그 순간을 목격했고, 그래서 멈췄다."
기술 사양
| 개발 언어 | C + x86 Assembly + Python (분석 스크립트) |
| 소스코드 | 42,000줄 (영구 삭제) |
| 핵심 기술 | 지능형 퍼징, 크래시 분석, 취약점 분류, 익스플로잇 자동 생성 |
| 퍼징 성능 | 초당 1,200 테스트 케이스 (Pentium III) |
| 발견 제로데이 | 34개 (24개 RCE) — 전량 파기 |
| 지원 OS | Windows NT 4.0 / 2000 (퍼징 호스트) |
| 실행 파일 크기 | 퍼저 650KB / 분석기 280KB / 생성기 190KB |
| 개발 기간 | 1999년 8월 ~ 2001년 3월 (약 20개월) |
| 배포 여부 | 비공개, 공개 배포 없음 |
| 최종 상태 | 영구 폐기 · 소스/제로데이/DB 전량 파기 (2001년 5월) |