본문으로 건너뛰기

코딩 에이전트가 무기가 될 때

고급
What you'll learn
  • 자동 승인 모드가 만들어내는 새로운 신뢰 경계를 이해한다 — 그리고 왜 모델이 아니라 그 경계가 표적인지 안다
  • "Friendly Fire" 공격을 추적한다: 검사하라고 요청받은 멀웨어를 실제로 실행해버리는 보안 스캔
  • 완전 에이전트형 랜섬웨어(JADEPUFFER)가 실제로 무엇을 처음부터 끝까지 자동화했는지 살펴본다
  • 둘 다 막아내는 운영상의 방어책을 적용한다 — 그중 어느 것도 "더 똑똑한 모델을 쓰라"가 아니다

2026년, 프롬프트 인젝션의 추상적 위험은 더 이상 추상적이지 않게 되었다. 공개적으로 문서화된 두 사건 — 하나는 개념 증명, 하나는 실제 침입 — 은 정반대 방향에서 같은 것을 보여주었다. AI 에이전트가 무엇을 실행해도 안전한지를 스스로 판단할 때, 그 판단이 곧 표적이 된다는 것이다. 이 페이지는 두 사건을 모두 짚은 다음, 일반화할 수 있는 방어책을 제시한다.

핵심 변화: 새로운 신뢰 경계

전통적인 코딩 도구는 위험한 무언가를 실행하기 전에 당신에게 묻는다. 자동 승인 / 자율 모드의 에이전트는 자기 자신에게 묻는다 — "안전"하다고 판단한 명령이면 무엇이든 스스로 승인한다. 그 판단이 새로운 공격 표면이다. 공격자는 더 이상 악성 코드가 괜찮다고 사람을 설득할 필요가 없다. 오직 모델을 설득하기만 하면 된다. 그리고 리포지토리를 읽는 모델은 README와 빌드 산출물을 자신을 조종하려는 적대적 상대가 아니라 평범한 입력으로 취급한다.

그 단 하나의 설계 선택 — 누가 예/아니오를 쥐고 있는가 — 이 아래 이야기의 전부다.

사건 1 — "Friendly Fire": 스캐너가 멀웨어를 실행한다

연구자 AI Now Institute의 Boyan Milanov와 Heidy Khlaaf는, 이 도구들이 팔리는 바로 그 작업을 탈취하는 개념 증명을 발표했다. 바로 신뢰할 수 없는 서드파티 코드에 문제가 없는지 검사하는 일이다. 위협을 잡아내는 대신, 에이전트가 전달 수단 자체가 된다.

Guided walkthrough1 of 4
  1. 신뢰할 수 없는 오픈소스 라이브러리가 컴파일된 빌드 산출물(예: Go 오브젝트 파일)로 위장한 숨겨진 바이너리를, 무해해 보이는 소스 옆에 함께 배포한다. 눈에 보이는 소스 중 명백히 악의적인 것은 아무것도 없다.

여기서 대부분의 사람들을 놀라게 하는 세 가지가 있다.

  • 보안 검토 그 자체가 익스플로잇이다. 안전하다고 느낄수록("일단 스캔부터 하는 거니까") 오히려 더 직접적으로 에이전트에게 방아쇠를 쥐어주는 셈이다.
  • 벤더와 모델을 가리지 않는다. 하나의 페이로드, 여러 도구 — 그들이 어떤 코드를 공유해서가 아니라 자동 승인 패턴을 공유하기 때문이다.
  • 악성 부분은 당신이 실제로 읽어볼 소스가 아니라 빌드 산출물 안에 숨어 있다. 눈에 보이는 .py/.go 파일을 검토해도 드러나지 않는다.

보도에서 영향을 받은 것으로 언급된 도구는, 당시 최신 프런티어 모델 위에서 자기 명령을 스스로 승인하는 모드로 실행되던 Claude Code와 OpenAI Codex였다. 정확한 CLI/모델 버전은 유동적이다 — 어떤 버전 문자열이 아니라 그 패턴을 지속되는 교훈으로 삼으라.

:::warning "그냥 에이전트에게 검토하라고 시켜라"에 대한 반론 서드파티 코드 검토는 에이전트도 "속을 수 있다"고 언급한다. Friendly Fire는 그 각주를 실제로 작동하는 익스플로잇으로 만든 것이다 — 검토자와 피해자가 같은 프로세스다. :::

사건 2 — JADEPUFFER: 운전대에 사람이 없는 랜섬웨어

Friendly Fire가 실험실 결과라면, JADEPUFFER(Sysdig Threat Research Team이 문서화)는 현장 사례다. Sysdig가 최초의 문서화된 처음부터 끝까지의 에이전트형 랜섬웨어로 평가한 것 — 전체 갈취 작전을 몰고 다니면서 스스로의 의도를 실시간으로 서술한 LLM 에이전트다.

Guided walkthrough1 of 4
  1. 공격자는 알려진 CVE를 통해 인터넷에 노출된 Langflow 인스턴스에 도달했다 — AI의 마법이 아니라 전형적인 노출된 서비스를 통한 발판 확보다.

Sysdig가 끌어낸 전략적 시사점은 불편한 것이다. 랜섬웨어를 운영하는 데 필요한 기술 하한선이 대략 에이전트 하나를 돌리는 비용 수준으로 떨어졌다. 그 에이전트가 탈취한 API 자격 증명(LLMjacking) 위에서 돌아간다면, 공격자의 연산 비용은 0에 가까워진다. 예전에는 "숙련된 운영자가 필요하다"였던 장벽이 무너지고 있다.

하나의 문제의 두 끝

Friendly FireJADEPUFFER
유형개념 증명실제 침입
에이전트의 역할무기가 된 피해자 자신의 도구공격자의 운영자
진입당신이 검토를 요청한 악성 리포지토리노출된 서비스(CVE)
작동하는 이유자동 승인 신뢰 경계자율성 + 상시 자격 증명
지속되는 교훈모델이 실행에 대한 최종 "예"를 쥐게 하지 마라최소 권한 + 재사용 가능한 자격 증명 배제로 피해 반경을 제한하라

서로 다른 공격자, 같은 뿌리: 자율성 + 능력 + 신뢰할 수 없는 입력에 대한 접근을 가진 에이전트. 이것이 볼륨을 최대로 올린 탈취 삼각형이다 — 한 변을 끊으면 피해를 억제할 수 있다.

실제로 일반화되는 방어책

이 중 어느 것도 "속지 않는 모델이 나올 때까지 기다려라"가 아니다. 모델은 속을 수 있다고 전제하고, 속은 에이전트가 할 수 있는 일의 범위를 묶어두라.

Guided walkthrough1 of 5
  1. 당신이 작성하지 않은 코드를 에이전트가 다룰 때, 실제 접근 권한이 있는 머신에서 자동 승인/YOLO 모드를 돌리지 마라. 사람의 '예'는 Friendly Fire가 제거하는 경계다 — 그런 경우엔 그것을 다시 넣어라.

구체적인 출발점 — 에이전트가 설득당해 시도하더라도 자격 증명을 조용히 읽어내지 못하게 하는 거부 규칙:

권한 거부 규칙 (예시 — 당신의 환경에 맞게 조정하라)

"permissions": {
"deny": [
  "Read(./.env)",
  "Read(./.env.*)",
  "Read(./**/*.pem)",
  "Read(./**/id_rsa*)",
  "Bash(curl:*)",
  "Bash(rm -rf:*)"
]
}

무인 실행 전체 체크리스트는 자율 실행 강화하기를, 능력 범위 지정은 에이전트 및 도구 보안을 참고하라.

간직할 멘탈 모델

빠른 회상
Enter 또는 스페이스 키를 눌러 카드를 뒤집습니다. 좌우 화살표 키로 카드를 이동할 수 있습니다.용어가 표시되었습니다.
1 / 5

스스로 점검하기

0/4
  1. Friendly Fire 공격에서, 무엇이 에이전트로 하여금 악성 페이로드를 실행하도록 설득하는가?
  2. 같은 공격이 두 벤더의 도구에서 수정 없이 통했다는 점이 왜 중요한가?
  3. JADEPUFFER 방식의 자율 침입에서 피해 반경을 가장 크게 줄이는 것은?
  4. 낯선 오픈소스 리포지토리를 에이전트에게 검토시키려 한다. 가장 안전한 조치는?

출처 및 추가 읽을거리

AILmanac의 관련 문서