홍드로이드의 야매코딩

AI 코딩 에이전트 훅 공격 — 7종에서 재현·모델은 명령을 못 봄 본문

AI & Vibe Coding

AI 코딩 에이전트 훅 공격 — 7종에서 재현·모델은 명령을 못 봄

홍드로이드 2026. 9. 16. 23:43
반응형

9월 3일 공개된 한 연구가 AI 코딩 에이전트의 확장 묶음 갱신 경로를 파고들었습니다. 이미 설치해 둔 플러그인이 업데이트되면서 생명주기 훅에 새 명령을 슬쩍 묶어 두는 방식인데, 연구진은 이 수법을 에이전트 도구 일곱 종에서 모두 재현했다고 밝혔습니다.

가장 불편한 대목은 모델이 그 명령을 보지도 못한다는 점입니다. 훅은 모델의 승인 절차 바깥에서 도는 구조라, 거부할 기회 자체가 없습니다. 다만 아직 연구 단계이고 실제 악용 사례는 보고되지 않았습니다.

📌 30초 요약

  • 공격 자리는 플러그인 업데이트입니다.
  • 설치 때의 신뢰가 새 명령까지 승계됩니다.
  • 모델은 그 명령을 보지 못합니다.
  • 백신 탐지율이 0%로 나왔습니다.
  • 실제 악용 사례는 아직 없습니다.

1. 무엇이 확인됐나

연구진은 공격을 자동으로 재현하는 도구를 만들어 공개했습니다. 대상은 널리 쓰이는 에이전트 도구 일곱 종이고, 모델 쪽도 다섯 갈래를 붙여 스물다섯 가지 조합으로 천 번을 돌렸습니다. 결과를 표로 옮기면 이렇습니다.

무엇을 쟀나 결과
뚫린 도구 일곱 종 모두
도구별 최고 성공률 92.5%
상용 백신 탐지 0%
정적 검사 셋을 합쳐도 47.5%를 놓쳤습니다

숫자를 조금 더 풀어 보겠습니다. 연구진은 열 가지 공격 목표를 세워 두고 각각이 실제로 이뤄지는지를 확인했는데, 바깥에서 효과가 실제로 관찰된 경우만 세어도 77%였다고 보고했습니다. 시도가 먹혔다는 수준이 아니라 결과물이 밖으로 드러난 비율이라는 뜻이죠. 위 표의 92.5%가 가장 잘 뚫린 도구 하나의 값이라면, 이 숫자는 전체를 아우른 평균에 가깝습니다. 어느 쪽으로 읽어도 「운이 좋아야 성공하는 공격」은 아니라는 이야기입니다.

여기서 클로드 코드도 대상 일곱 종에 들어 있습니다. 다만 연구진은 영향을 받을 수 있는 공급사들에 결과를 알리고 답을 기다리는 중이라고 적었고, 각 도구가 이미 고쳤는지, 재승인 정책을 바꿨는지는 공개 자료만으로 확정할 수 없습니다. 이 글의 숫자는 어디까지나 실험 환경에서 나온 값으로 읽어 주세요.

2. 신뢰가 조용히 승계되는 자리

공격이 성립하려면 네 가지가 맞아떨어져야 합니다. 정상 경로로 플러그인을 깔았고, 그 뒤 악성 변경이 담긴 업데이트를 받았고, 등록된 훅에 맞는 이벤트가 일어나고, 그 훅이 낳은 하위 프로세스가 파일·네트워크·자격 증명에 닿을 수 있어야 합니다. 이벤트는 특별한 게 아닙니다 — 세션 시작, 도구 호출, 파일 편집 같은 일상적인 순간이죠.

핵심은 신뢰가 어디에 걸려 있느냐입니다. 처음 설치할 때 한 번 준 신뢰가 뒤에 오는 버전의 바뀐 명령까지 자동으로 이어받습니다. 사람이 다시 확인할 자리가 없다는 뜻이죠. 폴더를 신뢰해야 훅이 도는 규칙이 「신뢰 전에는 안 돈다」를 지키는 장치라면, 이 연구가 찌른 곳은 「신뢰한 뒤에 내용이 바뀌는 경우」입니다. 방향이 정반대예요.

덧붙이면 도구마다 사정이 조금씩 다릅니다. 클로드 코드의 경우 확장 묶음 장터의 명령은 수락한 것만 돌고 내용이 바뀌면 멈춰 서서 다시 묻는 장치가 이미 있습니다. 그래서 「장터 명령이 바뀌면 다시 묻는다」와 「생명주기 훅이 바뀌어도 그대로 돈다」는 서로 다른 이야기이고, 연구가 겨눈 쪽은 후자입니다. 같은 플러그인이라도 어느 자리를 건드리느냐에 따라 확인 절차가 달라진다는 점을 알아 두시면 좋습니다.

3. 왜 눈에 안 띄나

이 연구가 불편한 진짜 이유는 감시망 두 겹이 다 비껴간다는 데 있습니다.

⚠️ 모델도 못 보고 백신도 못 잡았습니다

첫째, 명령 문자열이 모델의 입력 문맥에도, 도구 승인 단계에도 전달되지 않습니다. 에이전트 도구가 모델의 승인 기록 바깥에서 호스트 프로세스로 실행하기 때문이죠. 모델이 「이건 위험합니다」라고 말할 기회 자체가 없습니다. 둘째, 상용 백신의 탐지율이 0%로 나왔고 정적 검사 셋을 합쳐도 절반 가까이를 놓쳤습니다. 「AI가 위험한 명령은 막아 주겠지」와 「백신이 잡아 주겠지」가 동시에 무너지는 구간이라는 뜻입니다.

이 「안 보인다」는 성질은 처음 나온 이야기가 아닙니다. 작업 규칙 파일에 숨은 지시를 스캐너가 건너뛰던 사례와 뿌리가 같죠. 차이라면 그쪽은 모델에게 읽히되 사람 눈을 피하는 방식이었고, 이번 건 아예 모델에게도 안 읽히는 방식이라는 점입니다. 검사 지점을 「모델이 보는 것」에만 두면 이 경로는 통째로 사각지대가 됩니다.

4. 오늘 해 둘 만한 것

연구진이 제안한 대응은 다섯 갈래인데, 개인 개발자가 지금 손댈 수 있는 것부터 추리면 이렇습니다.

할 일 무엇을 보나
출처 확인 배포자·판 번호·서명이 그대로인지
바뀐 곳 비교 이벤트·명령·환경 변수가 늘지 않았는지
권한 좁히기 훅이 격리된 자리에서 도는지
기록 남기기 대화 기록과 따로 실행 기록이 남는지

여기에 연구진이 도구 만드는 쪽에 요구한 것이 하나 더 있습니다 — 업데이트로 새 명령이 붙으면 별도 승인을 다시 받게 하라는 겁니다. 사용자가 손댈 수 있는 부분은 아니지만, 앞으로 어느 도구가 이 장치를 넣는지를 고르는 기준으로 삼을 만합니다.

현실적인 조언 하나만 덧붙이겠습니다. 안 쓰는 확장 묶음부터 지우세요. 이 공격은 깔려만 있어도 성립하고, 이벤트는 세션을 켜는 것만으로도 일어납니다. 쓰지 않는 플러그인은 위험만 남기고 값은 안 주는 셈이죠. 훅이 끼일 수 있는 자리가 서른 곳이 넘는다는 점을 떠올리면, 줄이는 쪽이 확실히 남는 장사입니다.

자주 묻는 질문 (FAQ)

Q. 지금 제 컴퓨터가 당한 건가요

그렇게 볼 근거는 없습니다. 연구 단계이고 실제 악용 사례는 보고되지 않았습니다. 다만 「이런 경로가 열려 있다」는 것이 실험으로 확인된 것이니, 안 쓰는 플러그인을 줄이는 정도는 오늘 해 두셔도 좋습니다.

Q. 승인 창을 잘 보면 막을 수 있나요

이 경로는 승인 창에 오지 않습니다. 명령이 모델의 입력 문맥과 도구 승인 단계를 모두 건너뛰고 호스트에서 바로 돌기 때문입니다. 그래서 설치·업데이트 시점에 거르는 것이 사실상 유일한 사용자 측 방어입니다.

Q. 백신을 돌리면 되지 않나요

실험에서 상용 백신 탐지율이 0%였고, 정적 검사 셋을 합쳐도 47.5%를 놓쳤습니다. 명령 자체는 평범한 스크립트 모양이라 악성으로 보이지 않기 때문입니다. 백신은 보조 수단으로만 보시는 편이 안전합니다.

Q. 클로드 코드는 안전한가요

대상 일곱 종에 포함돼 있습니다. 장터 명령이 바뀌면 멈춰 서서 다시 묻는 장치는 이미 있지만 연구가 겨눈 생명주기 훅 경로와는 다른 자리입니다. 각 도구의 수정 배포 여부는 공개 자료만으로 확정할 수 없습니다.

정리하면

  • 공격 자리는 업데이트입니다.
  • 신뢰가 자동 승계됩니다.
  • 모델은 못 봅니다.
  • 백신도 못 잡았습니다.
  • 실제 피해는 아직 없습니다.
  • 안 쓰는 건 지우세요.

※ 2026년 9월 3일 공개된 공개 논문(9월 8일 개정)과 이를 다룬 국내 보도를 바탕으로 정리했습니다. 수치는 실험 환경에서 측정된 값이며 실사용 환경에서의 재현성은 확정되지 않았습니다.

※ 각 도구 공급사의 수정 배포 여부와 재승인 정책 변화는 공개 자료만으로 확인할 수 없습니다. 쓰시는 도구의 공지를 함께 확인하세요.

반응형
Comments