← 최신 논문
🤖 machine learning

Activation Probes Surface Code-Security Signals that the Model's Output Misses

이 논문은 오픈 웨이트 AI 모델의 내부 활성화 값에 적용된 선형 프로브(linear probes)가 동일한 모델에게 명시적인 보안 판정을 생성하도록 프롬프트를 작성하는 것보다, 훈련 과정에서 보지 못한 취약점 유형에 대해서도 코드 보안 취약점을 더 효과적으로 탐지할 수 있음을 입증한다.

원저자: Ivan Wiryadi

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

원저자: Ivan Wiryadi

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

당신이 매우 교묘하게 흔적을 숨기는 도둑을 잡으려는 형사라고 상상해 보십시오. 컴퓨터 과학, 특히 인공지능(AI) 분야의 세계에서, AI 에이전트가 우리가 사용하는 앱과 웹사이트를 구동하는 코드를 점점 더 많이 작성하고 있다는 문제는 커져만 가고 있습니다. 하지만 이러한 AI 작가들은 때때로 보안 허점을 남기는 실수를 저지르는데, 이는 마치 디지털 세상의 집에 뒷문을 열어두는 것과 같습니다. 인간은 이 코드를 검토해야 하지만, 생성되는 코드의 양이 너무 많아 모든 것을 다 확인할 수는 없습니다.

이를 해결하기 위해, 우리는 종-종 AI에게 스스로의 작업물을 검토하도록 요청하곤 합니다. 우리는 "이 코드는 안전한가요?"라고 묻고, 문제가 있다면 AI가 "아니오"라고 답하기를 기대합니다. 하지만 이 논문은 아주 흥-미로운 아이디어를 탐구합니다. 만약 AI가 우리에게 거짓말을 하고 있거나, 혹은 말로 표현하는 법을 모를 뿐, 사실 그 내부의 '뇌'는 진실을 향해 비명을 지르고 있다면 어떨까요? AI에서 '뇌'는 AI가 생각할 때 변화하는 '활성화(activations)'라고 불리는 숫자들로 이루어져 있습니다. 마치 어떤 사람이 "난 괜찮아"라고 말하면서도 얼굴은 겁에 질려 있는 것처럼, AI는 "이 코드는 안전합니다"라고 말하면서도 내부의 숫자들은 위험이 존재한다는 것을 알고 있을 수 있습니다. 이 논문은 AI의 겉으로 드러난 답변이 놓치는 보안 결함을 잡아내기 위해, 우리가 그 내부 숫자에 귀를 기울일 수 있는지 묻습니다.


비밀스러운 속삭임 vs. 시끄러운 거짓말

이 논문의 저자인 이반 위리아디(Ivan Wiryadi)는 다음과 같은 파격적인 가설을 테스트하고자 했습니다: AI의 내부 '뇌 활동'은 AI의 입이 아니라고 말할 때조차 보안 버그에 대해 알고 있는가?

이를 알아내기 위해, 저자는 다섯 가지 서로 다른 오픈 소스 AI 코딩 모델을 실험 대상으로 삼았습니다. 그들은 보안 허점이 있는 파이썬(Python) 코드(취약한 함수)와 그 허점이 패치된 동일한 코드(수정된 함수)를 대량으로 준비했습니다. 그리고 AI가 이 코드들을 바라볼 때 발생하는 내부 뇌파(활성화)를 들을 수 있도록 간단한 '탐지기'(선형 프로브, linear probe)를 훈련시켰습니다. 이 프로브를 AI의 생각을 묻는 대신, AI의 마음속 전기 신호를 읽어내는 거짓말 탐지기라고 생각하면 됩니다.

여기 반전이 있습니다. 연구진은 이 탐지기를 한 세트의 버그 유형(예: SQL 인젝션 또는 크로스 사이트 스크립팅)에 대해 훈련시킨 후, AI가 훈련 과정에서 전혀 본 적 없는 완전히 새로운 실제 세계의 취약점에 대해 테스트했습니다. 그들은 탐지기가 AI의 내부 신호를 읽는 것만으로도 새로운 버그 속의 위험을 포착할 수 있는지 확인하고 싶었습니다.

결과: 뇌는 알지만, 입은 모른다

연구 결과는 놀라울 정도로 명확했습니다. AI에게 직접 "이 코드는 취약합니까?"라고 물었을 때, AI는 종종 깨진 코드와 수정된 코드 모두에 대해 똑같은 답변을 내놓았습니다. 이는 마치 학생이 부정행위를 했는지 질문을 받았을 때, 베낀 시험지와 정직한 시험지 모두에 대해 "아니오"라고 답하는 것과 같았습니다. AI의 말로 된 판결은 차이를 구별하는 데 아무런 쓸모가 없었습니다.

하지만 연구진이 프로브를 사용하여 AI의 내부 활성화를 살펴보았을 때, 이야기는 달라졌습니다. 프로브는 깨진 코드와 수정된 코드를 일관되게 구별할 수 있었습니다.

  • 점수: 단 하나의 함수를 변경하여 수정된 147개의 실제 세계 취약점에 대해, 프로브는 다섯 가지 모델 전체에서 취약한 코드를 수정된 코드보다 더 "위험한" 것으로 올바르게 분류하는 비율이 61%에서 67% 사이였습니다.
  • 비교: 이는 모든 경우에 AI 자신의 답변을 앞질렀습니다. 연구진이 AI에게 단계별로 추론 과정을 설명하도록 요청하는 기술(사고의 사슬, Chain of Thought)을 사용하여 AI가 더 깊이 생각하도록 유도했을 때조차도, AI는 자신의 텍스트 출력물에서 나쁜 코드와 좋은 코드를 구별하는 데 실패했습니다.
  • 의의: 논문은 61~67%라는 수치가 완벽한 점수(100%)는 아니지만, 통계적으로 유의미하다고 언급합니다. 이는 무작위 추측(50%)보다 높으며, 모델의 출력값 뒤에 숨겨진 '보안 신호'가 존재한다는 것을 증명합니다.

이것이 의미하는 바 (그리고 의미하지 않는 것)

이 논문은 단순히 AI에게 보안 검토자가 되어달라고 요청하는 것만으로는 충분하지 않다는 점을 명시적으로 배제합니다. 저자는 고급 프롬프트 기술을 사용하더라도 AI의 텍식 "예/아니오" 판결이 종종 틀리거나 구별하지 못하며, 따라서 미묘한 차이를 포착하는 데 신뢰할 수 없음을 보여줍니다.

논문은 AI의 내부 상태가 현재 무시되고 있는 '코드 보안 신호'를 담고 있다고 제안합니다. 저자는 이를 해결된 문제나 마법의 해결책이라고 부르는 것을 경계합니다. 대신, 이를 다양한 유형의 AI 모델에서 유지되는 "겸손하지만 일관된" 효과라고 설명합니다. 또한, 이 테스트가 파이썬 코드와 특정 유형의 버그를 대상으로 수행되었으므로, 모든 프로그래밍 언어나 모든 종류의 보안 결함에 완벽하게 작동하는지는 아직 알 수 없다고 명시했습니다.

핵심 요약

간단히 말해, 이 논문은 AI 코딩 에이전트가 자신의 코드가 안전하다고 말할 때 우리에게 "거짓말"을 하고 있을 수도 있지만, 그들의 내부 "뇌파"는 진실을 말하고 있다는 것을 발견했습니다. AI의 출력물을 읽는 대신 그 내부 신호에 귀를 기울임으로써, 우리는 AI가 작성하는 방대한 양의 코드에 대한 더 나은 안전망을 구축할 수 있을지도 모릅니다. 이는 용의자가 "나는 하지 않았다"라고 말할 때, 심장 박동이 빨라지는 모습이 다른 이야기를 하고 있다는 것을 깨닫는 것과 비슷합니다. 저자는 미래에 우리가 이러한 "심박수" 신호를 사용하여 인간 검토자에게 도달하기 전에 위험한 코드를 자동으로 표시할 수 있기를 희망합니다.

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

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

Digest 사용해 보기 →