← 최신 논문
💻 컴퓨터 과학

One Successful Run Is Not an Exploit: Replaying LLM-Written Exploit Scripts with the Model Out of the Loop

이 논문은 생성된 익스플로잇 스크립트가 모델 없이 재실행될 때는 매우 안정적인 반면, 실제 불안정성은 스크립트 자체가 아니라 생성 과정에 존재함을 보여줌으로써 LLM 기반 공격 보안 벤치마크에서의 단일 실행 성공이 종종 오해의 소지가 있음을 입증하며, 정확한 평가를 위해 모델 성능과 결과물 신뢰성의 분리가 필요함을 역설한다.

원저자: Wensheng Huang

게시일 2026-11-06
📖 4 분 읽기☕ 가벼운 읽기

원저자: Wensheng Huang

원본 논문은 CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. ✨ 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

컴퓨터 보안의 세계에는 방어 체계를 구축하려는 이들과 그것을 깨뜨리려는 이들 사이의 끊임없는 경주가 존재합니다. 컴퓨터 시스템에 '취약점'이라 불리는 숨겨진 약점이 있을 때, 숙련된 공격자는 이를 악용하여 무단 접근 권한을 얻기 위해 작은 코드 조각을 작성할 수 있습니다. 오늘날 연구자들은 이러한 코드 조각을 자동으로 작성하기 위해 인공지능을 사용하고 있습니다. 흔히 '에이전트'라고 불리는 이 AI 시스템들은 도전 과제와 일련의 규칙을 부여받으며, 테스트 시스템을 성공적으로 뚫는 스크립트를 생성하려고 시도합니다. 만약 그 스크립트가 단 한 번이라도 작동한다면, 이 분야에서 성공을 측정하는 표준적인 방식은 그것을 하나의 승리로 간주하는 것입니다. AI가 스크プト를 한 번이라도 작동하게 만들 수 있다면, 그것이 시스템을 뚫는 신뢰할 수 있는 방법을 찾아낸 것이라는 가정이 전제되어 왔습니다. 하지만 이 가정은 중요한 질문 하나를 남깁니다. 만약 그와 똑같은 스크립트를 가져가서 새로운 시스템에서 다시 실행한다면, 두 번째에도 작동할 것인가?

한 연구자는 이러한 스크립트들을 테스트하는 방식을 바꿈으로써 이 질문에 답하고자 했습니다. AI에게 다시 시도하고 또 시도하게 하여 AI의 사고 능력을 테스트하는 대신, 그는 스크립트 자체를 테스트하기로 결정했습니다. 그는 AI가 이미 생성해낸 승리한 스크립트들을 가져와서, AI의 참여 없이 대상 시스템의 깨끗하고 새로운 복사본들에 반복해서 실행했습니다. 이 접근 방식은 문을 한 번 여는 데 성공한 열쇠를 가져가서, 그 열쇠가 여전히 맞는지 확인하기 위해 십여 개의 동일한 새 문들에 시도해보는 것과 같습니다. 연구자는 그 열쇠가 진정으로 좋은 것인지, 아니면 단지 첫 번째 문의 특정한 일시적 상태 덕분에 작동했던 것인지를 알고 싶었습니다.

이 연구는 단순한 로그인 결함부터 사용자 입력이 위험하게 처리되는 더 복잡한 문제에 이르기까지 14가지의 서로 다른 보안 과제를 포함했습니다. AI는 이 과제들을 해결하도록 요청받았고, 196번의 서로 다른 시도에서 작동하는 스크립트를 생성하는 데 성공했습니다. 연구자는 이 196개의 스크립트 각각을 가져와서 새로운 시스템에서 각각 10번씩 실행하여, 총 1,960번의 테스트 실행을 수행했습니다. 결과는 매우 명확했습니다. 1,950번의 실행에서 스크립트는 처음과 똑같이 작동했습니다. 이는 대다수의 경우, 일단 AI가 해결책을 찾으면 그 해결책은 재사용 가능한 안정적이고 신뢰할 수 있는 코드 조각이라는 것을 의미합니다. 스크립트는 운이나 찰나의 성공에 의존하지 않았습니다; 그것은 일관되게 작동하는 견고한 도구였습니다.

하지만 이 연구는 기존의 테스트 방식이 왜 불충분했는지를 설명해 주는 매혹적인 예외 사례를 발견했습니다. 196개의 스크립트 중 단 하나는 새로운 시스템에서 실행될 때마다 매번 실패했습니다. 그것은 문을 열 수 없는 '죽은' 스크립트였습니다. 그러나 연구자가 그 스크립트를 만들기 위해 AI가 거쳤던 전체 과정을(즉, 최종 스크립트를 실행하기 전 AI의 이전 시도들을 순서대로 재현하여) 다시 실행하자, 그 스크립트는 매번 완벽하게 작동했습니다. 그 이유는 미묘하고 숨겨져 있었습니다. 그 스크립트는 컴퓨터 시스템의 내부 상태, 구체적으로는 시스템의 프로그래밍 언어가 메모리에 유지하고 있는 클래스 목록에 의존하고 있었습니다. AI의 이전 시도들이 자신도 모르게 이 목록에 항목들을 추가했고, 이로 인해 항목들의 위치가 이동되었습니다. 최종 스크ک립트는 특정 위치에 있는 특정 항목들을 찾도록 하드코딩되어 있었습니다. 깨끗한 시스템에서는 그 위치가 비어 있거나 엉뚱한 것들을 담고 있었습니다. 하지만 이전 단계들이 실행된 후에는 목록이 늘어나고 이동하여, 스크립트가 기대하는 곳에 정확히 항목들을 배치하게 되었습니다. 성공은 최종 단계가 아니라 전체 여정에 달려 있었습니다.

이 발견은 AI의 사고 방식과 그 AI가 생성하는 코드의 동작 방식 사이의 주요한 차이점을 강조합니다. 연구자는 AI의 솔루션을 생성하는 능력이 상당히 불안정하다는 것을 발견했습니다. 많은 경우, AI는 첫 번째 시도에서 실패하고, 두 번째에 성공했다가, 다시 세 번째에는 실패하곤 했습니다. 만약 당신이 AI의 생성 과정만을 본다면 많은 불일치를 보게 될 것입니다. 하지만 일단 AI가 작동하는 스크립트를 작성해내면, 그 스크립트 자체는 거의 항상 안정적이었습니다. 불안정함은 도구가 만들어지는 과정에 있었지, 만들어진 도구에 있었던 것이 아닙니다. 이는 AI의 단 한 번의 성공적인 실행이 AI가 해결책을 찾는 데 일관되게 뛰어남을 증명하는 것은 아니지만, 그 AI가 찾아낸 특정 해결책이 보통 신뢰할 수 있다는 점은 증명한다는 것을 의미합니다.

연구자는 또한 컴퓨터 시스템이 공격받는 대상이 약간 다른 경우, 예를 들어 프로그래밍 언어의 더 최신 버전을 실행하는 경우에도 이 스크립트들이 작동할지 테스트했습니다. 그는 대상 시스템을 약간 업데이트된 버전의 소프트웨어로 재구축하고 스크립트를 다시 실행했습니다. 거의 대부분의 스크립트는 여전히 작동했지만, 기존 시스템에서 완벽하게 신뢰할 수 있었던 스크립트 하나가 새 시스템에서는 완전히 실패했습니다. 이는 환경의 아주 작은 변화조차도 완벽해 보였던 스크립트를 망가뜨릴 수 있음을 보여주었으며, 스크립트의 성공이 그것이 생성된 특정 조건에 묶여 있다는 생각을 더욱 강화했습니다.

이 연구의 핵심 요지는 우리가 보안 분야에서 AI의 성공을 판단하는 방식을 바꿔야 한다는 것입니다. 단 한 번의 성공은 스크립트를 익스플로잇(exploit)이라고 부르기에 충분하지 않습니다. AI가 진짜 취약점을 찾아냈는지 진정으로 알기 위해서는, 그 AI가 작성한 스크립트가 AI의 도움 없이 스스로 반복적으로 작동하는지를 검증해야 합니다. 이 연구는 AI의 생성 과정은 종종 불안정하고 예측 불가능하지만, AI가 만들어내는 스크립트는 대개 견고하고 믿을만하다는 것을 보여줍니다. 스크립트가 스스로 작동하는 데 실패했던 유일한 사례는, 그것이 AI의 이전 시도들이 남긴 숨겨진 상태에 의존했기 때문이었으며, 이는 단 한 번의 테스트 실행으로는 절대 드러나지 않을 세부 사항이었습니다. 연구자는 코드를 작성하는 행위와 코드를 실행하는 행위를 분리함으로써, 이 AI 시스템들이 실제로 무엇을 할 수 있는지에 대한 더 명확한 그림을 제시했으며, 이들이 만드는 도구가 그것을 만드는 과정보다 더 신뢰할 수 있다는 것을 보여주었습니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →