구글 빅 슬립

https://googleprojectzero.blogspot.com/2024/10/from-naptime-to-big-sleep.html **빅 슬립**(영어: Google Big Sleep)은 구글 프로젝트 제로와 구글 딥마인드가 공동으로 개발하고 있는 인공지능 에이전트 시스템이다.accessdate=2024-11-06 이 시스템은 Google Gemini와 같은 대규모 언어 모델의 역량을 활용하여, 실제 널리 사용되는 복잡한 소프트웨어에서 이전에 알려지지 않은 컴퓨터 보안 취약점을 자동으로 탐지하고 분석하는 것을 목표로 한다.accessdate=2024-11-06 빅 슬립은 널리 사용되는 오픈 소스 데이터베이스 엔진인 SQLite에서 이전에 발견되지 않았던 실제 악용 가능한 메모리 보안 결함을 발견한 첫 공개 사례로 큰 주목을 받았다.
# 개발 배경 및 역사
빅 슬립 프로젝트는 2023년 중반 구글 프로젝트 제로가 시작한 프로젝트 냅타임에서 비롯되었다. 냅타임은 LLM을 활용한 보안 취약점 연구, 특히 변이 분석을 자동화하기 위한 초기 프레임워크였다. 이름은 "AI 에이전트가 대신 일하는 동안 인간 연구원들이 낮잠을 잘 수 있게 한다"는 농담에서 유래했다. 냅타임이 메타의 CyberSecEval2 벤치마크 등에서 기존 최고 수준의 성능을 뛰어넘는 성과를 보이자, 이 연구는 구글 딥마인드와의 공식적인 협업으로 확장되었으며, 이것이 빅 슬립 프로젝트로 발전하게 되었다. 빅 슬립은 벤치마크를 넘어 SQLite와 같이 실제 널리 사용되고 이미 집중적인 테스트를 거친 소프트웨어를 대상으로 한층 더 복잡한 취약점 발견을 목표로 설정했다.
# 핵심 기술 및 방법론
빅 슬립은 무작위 입력을 생성하는 기존의 퍼징 방식과는 근본적으로 다른 접근 방식을 취한다. 이 시스템은 인간 보안 연구원의 사고 과정을 모방하는 AI 에이전트로서 작동하며, 특히 변이 분석이라는 핵심 전략을 사용한다.accessdate=2024-11-06 변이 분석은 완전히 새로운 종류의 버그를 처음부터 찾는 것이 아니라, 이미 발견되어 패치된 취약점을 기반으로 해당 코드베이스에 존재할 수 있는 유사하지만 수정되지 않은 변종 버그를 찾는 기법이다. 이러한 접근 방식은 "이전에 이런 버그가 있었으니, 비슷한 다른 버그가 있을 것이다"라는 구체적이고 잘 정립된 가설에서 출발하기 때문에 탐색의 모호성이 크게 줄어들고 LLM에 더 적합한 것으로 평가된다. 빅 슬립의 에이전트는 이 변이 분석을 수행하기 위해 여러 도구를 자율적으로 사용한다. 먼저 특정 코드 변경점을 분석하여 잠재적 문제 영역에 대한 가설을 세운 뒤, 디버거나 코드 브라우저 같은 도구를 활용해 스스로 테스트 케이스(예: SQL 쿼리)를 작성하고 실행하여 프로그램의 반응을 살핀다. 만약 초기 테스트가 실패하면(예: 필요한 모듈 부재), 에이전트는 오류 메시지를 분석하여 문제를 진단하고 generate_series와 같은 대안을 찾는 등 스스로 전략을 수정한다. 최종적으로 프로그램 충돌을 유발하는 데 성공하면, 그 원인을 분석하여 정확한 근본 원인이 담긴 보고서를 생성한다.
# 주요 성과

## SQLite 취약점 발견
빅 슬립의 가장 주목할 만한 초기 성과는 널리 사용되는 SQLite에서 이전에 알려지지 않았던 심각한 메모리 보안 결함을 발견한 것이다. 이는 AI 에이전트가 실제 소프트웨어에서 악용 가능한 메모리 안전성 문제를 발견한 최초의 공개 사례로 간주된다.accessdate=2024-11-06 발견 과정에서 에이전트는 초기 시드로 제공된 커밋과 직접적인 관련은 없지만, 코드베이스를 탐색하는 과정에서 느슨하게 연관된 문제를 발견했다. 초기 테스트가 `tcl` 모듈 부재로 실패하자, 에이전트는 `generate_series` 가상 테이블을 사용하도록 테스트를 수정했고, 특히 `ROWID`에 대한 제약 조건을 포함하는 쿼리(`SELECT * FROM generate_series(1,10,1) WHERE ROWID = 1;`)를 생성하여 숨겨진 결함을 찾아냈다. 이 결함은 스택 버퍼 언더플로우로 식별되었다. 원인은 `sqlite3_index_constraint` 구조체의 `iColumn` 필드가 `ROWID`를 참조할 때 예외적으로 특수한 센티넬 값으로 `-1`을 사용하는 엣지 케이스(edge-case)에서 비롯되었다. `seriesBestIndex` 함수는 이 `-1` 값을 적절히 처리하지 못했고, 이로 인해 `iCol`이 음수 값이 되어 스택에 할당된 배열의 시작 지점 이전 메모리 주소에 데이터를 쓰는 심각한 메모리 손상이 발생했다. 릴리스 빌드에서는 이 결함이 잠재적으로 악용 가능한 충돌(예: 제어 흐름 탈취)로 이어질 수 있었다. 이 취약점은 구글에 의해 즉시 SQLite 개발팀에 보고되었으며, 공식 릴리스에 포함되기 전에 패치되어 사용자들이 영향을 받지 않았다.
## 제로 데이 및 추가 발견
2025년 중반, 구글은 빅 슬립이 구글 위협 인텔리전스의 신호를 기반으로, 위협 행위자들만 알고 있던 SQLite의 또 다른 제로 데이 취약점(CVE-2025-6965)을 선제적으로 발견했다고 발표했다. 이는 AI 에이전트가 실제 공격에 임박한 위협을 사전에 차단한 첫 사례로 기록되었다.accessdate=2024-11-06accessdate=2024-11-06 이후 빅 슬립은 2025년 11월 애플의 웹킷 브라우저 엔진에서 5개의 심각한 취약점(CVE-2025-43429 ~ 43434)을 발견하는 등, FFmpeg, ImageMagick 등 다른 주요 오픈 소스 프로젝트에서도 다수의 취약점을 지속적으로 발견하고 있다.accessdate=2024-11-06
# 기존 방식과의 비교
이번 SQLite 버그 발견은 "왜 기존의 광범위한 퍼징 테스트(예: AFL)로 이 버그가 발견되지 않았는가?"라는 중요한 질문을 제기한다. 프로젝트 제로 팀의 분석에 따르면, 기존 퍼징 설정은 버그에 필요한 `generate_series` 확장이 활성화되지 않은 상태로 빌드되었거나, 설령 활성화되었더라도 무작위 입력만으로는 이 버그를 유발하는 데 필요한 정확한 SQL 구문(가상 테이블 사용 + `ROWID` 제약 조건)을 생성하기 매우 어려웠다. 실제로 연구팀이 해당 버그를 재현하기 위해 150 CPU 시간 동안 AFL 퍼징을 수행했으나 발견에 실패했다. 이는 AFL과 같은 전통적인 퍼저가 수년간의 테스트를 통해 자연적인 포화 지점에 도달했을 수 있음을 보여주며, 빅 슬립과 같은 AI 에이전트가 퍼징이 놓치기 쉬운 논리적 결함이나 복잡한 엣지 케이스 등 별개의 취약점 클래스를 발견하는 데 강점을 가질 수 있음을 시사한다.
# 의의 및 향후 전망
빅 슬립의 성과는 AI가 사이버 보안 분야에서 방어자에게 비대칭적인 우위를 제공할 수 있음을 시사한다. 이러한 기술은 전통적인 방식으로는 발견하기 어려운 취약점을 소프트웨어가 공식 출시되기 이전에 선제적으로 찾아낼 수 있다. 또한, AI 에이전트는 단순히 충돌을 유발하는 입력을 찾는 것을 넘어, 버그의 고품질 근본 원인 분석 리포트까지 생성할 수 있어, 개발자가 문제를 수정하는 데 드는 비용과 시간을 획기적으로 줄일 잠재력을 가지고 있다. 프로젝트 제로와 딥마인드는 이 기술이 "제로 데이를 어렵게 만든다"는 프로젝트 제로의 핵심 임무에 기여할 것으로 기대하며 연구를 지속할 계획이다.