“Friendly Fire” 보안 연구에 따르면, AI 에이전트는 README 파일에 악성 명령을 슬쩍 끼워 넣는 것만으로도 속을 수 있으며, 에이전트는 기반 코드를 전혀 확인하지 않고도 그 명령을 따르게 됩니다. 동일한 결함이 감독되지 않는 생성 단계 동안 “auto-approve(자동 승인)” 플래그에 의존하는 개인 블로그 자동화 파이프라인에서도 나타나, 숨겨진 공격 표면을 노출했습니다.

Friendly Fire 연구가 드러낸 숨겨진 공격 벡터

Friendly Fire 논문의 연구진은 최소한의 조작으로 강력한 효과를 내는 익스플로잇을 시연했습니다. 공격자가 AI가 정상적인 워크플로의 일부로 읽는 문서 파일에 명령어를 삽입하는 방식입니다. 에이전트는 해당 파일의 내용을 신뢰하기 때문에, 숨겨진 명령을 마치 정당한 지침인 것처럼 실행합니다. 이 공격은 AI 모델 자체를 해킹할 필요가 없으며, 사람이 지켜보지 않는 동안 모델이 처리하는 데이터에 영향을 주기만 하면 됩니다.

이 연구의 핵심 기여는 페이로드의 참신함이 아니라, AI에게 추가 확인 없이 읽는 모든 것에 대해 행동하도록 지시하는 설정인 “auto-approve” 모드가 외부 데이터 소스와 암묵적인 신뢰 관계를 형성한다는 사실을 밝혀낸 데 있습니다. 그 신뢰가 맹목적일 때, 파이프라인은 임의 코드 실행을 위한 통로가 됩니다.

관리되지 않는 블로그 파이프라인이 무너진 과정

연구 저자는 동일한 논리를 개인 블로그 자동화 시스템에 적용해 보았습니다. 워크플로는 다음 세 단계로 구성됩니다.

  1. Generation stretch (생성 단계) – AI가 인간의 감독 없이 기사를 작성합니다.
  2. QA gate (품질 검증 단계) – 자동화된 품질 점수 체크를 통해 결과물을 평가합니다.
  3. Telegram button (텔레그램 버튼) – 사람이 버튼을 눌러야 게시물이 발행됩니다.

생성 단계 동안 저자는 모든 입력을 승인된 것으로 간주하도록 AI에 지시하는 dangerously-skip-permissions라는 플래그를 활성화했습니다. 이 플래그는 본질적으로 Friendly Fire 논문에서 지적된 “auto-approve” 모드를 그대로 재현한 것입니다.

이후 실시된 감사에서 광범위한 허점이 발견되었습니다. 만약 공격자가 해당 시간 동안 AI가 읽는 파일 중 하나에 영향을 미칠 수 있다면, 전체 파이프라인을 조종할 수 있게 됩니다. 저자의 시스템은 설정 스크립트가 의도치 않게 다른 스크립트의 설정을 덮어쓰는 바람에 6번 중 5번이나 소리 없이 실패했습니다. 종료 코드(exit code)나 QA 점수에 대한 로깅이 없었기 때문에, 이 문제는 발견되기 전까지 3일 동안 지속되었습니다.

이 사건은 안전이 AI의 출력을 신뢰하는 데서 오는 것이 아니라, 생성 단계를 둘러싼 세 가지 명시적인 체크포인트에서 온다는 것을 증명합니다.

안전이 실제로 존재하는 곳

이 연구와 블로그 자동화 실패 사례는 하나의 지점으로 수렴합니다. 보호 조치는 반드시 생성 프로세스 외부에 있어야 합니다. AI가 auto-approve 상태로 작동할 때는 어떤 행동이든 하도록 유도될 수 있습니다. 오직 주변의 제어 장치만이 원치 않는 동작을 감지하고 차단할 수 있습니다.

주요 관찰 사항:

  • 최종 단계에서의 인간 승인은 실시간 감독을 하기에는 너무 빠르고 너무 많은 중간 단계가 아닌, 최종 결과물을 검토하기 때문에 효과적입니다.
  • 품질 임계값을 생성 후 발행 전에 적용하면, 조작되었을 가능성이 있는 신뢰도가 낮은 출력을 잡아낼 수 있습니다.
  • 모든 종료 코드, QA 점수, 설정 변경 사항에 대한 포괄적인 로깅은 문제가 연쇄적으로 발생하기 전에 소리 없는 실패를 가시화합니다.

auto-approve 에이전트를 운영하는 이들을 위한 교훈

  1. 모든 것을 기록하라 – 종료 코드, QA 점수, 설정 파일의 모든 변경 사항을 캡처하십시오. 보이지 않는 것은 고칠 수 없습니다.
  2. 엄격한 품질 게이트를 적용하라 – 파이프라인이 다음 단계로 진행하기 위해 반드시 충족해야 하는 타협 불가능한 임계값을 설정하십시오.
  3. 인간의 승인은 마지막 단계로 남겨두라 – AI가 생성하는 동안 지켜보려고 하는 것은 비현실적입니다. 모든 확인을 마친 후 버튼을 한 번 누르는 것이 훨씬 더 신뢰할 수 있습니다.
  4. 설정 파일을 보호하라 – 설정을 재작성할 수 있는 다른 도구로부터 설정 파일을 격리하고, 쓰기 권한에 대해 정기적으로 감사하십시오.

요약

관리되지 않는 AI 에이전트의 안전성은 그 주변의 빈틈을 얼마나 잘 메우느냐에 달려 있습니다. “auto-approve” 플래그는 편의성을 조용한 백도어로 바꿉니다. 철저한 로깅, 엄격한 품질 게이트, 그리고 최종적인 인간의 승인이 파이프라인이 공격 벡터로 변하는 것을 막는 실질적인 방어책입니다.