AI 에이전트 권한: 인간은 4만 회 게임 실행에서 3개 중 1개의 위협을 놓친다
인간이 개입하는 방식은 효과적인 보안 장벽이 아니다
웹 기반 시뮬레이션에서 4만 회 이상의 플레이 데이터를 분석한 결과, 인간은 AI 에이전트 명령을 승인할 때 평균적으로 3개 중 1개의 보안 위협을 놓친다 (정확도 66.3%). 이 연구는 위험한 AI 에이전트에 대한 최후의 방어 수단으로 수동 사용자 승인을 의존하는 것이 권한 피로, 맥락 부족, 그리고 일반 개발자 명령의 속임수 성향으로 인해 본질적으로 결함이 있음을 보여준다.
주요 성능 지표
409,000개의 개별 결정을 기반으로 시뮬레이션은 다음과 같은 주요 통계를 도출했다:
- 32.9%의 세션은 부정적인 점수로 끝났으며, 승인된 위협과 차단된 안전한 명령의 벌점이 올바른 행동보다 더 컸다.
- 35.2%의 플레이어는 모든 위협을 포착했지만, 20.8%만이 안전한 명령의 20% 이상을 차단하지 않고 이를 달성했다.
- 7%의 플레이어는 위험 여부와 관계없이 모든 프롬프트를 승인했으며, 이는 "위험하게 권한 스킵" 모드로 작동하는 것과 같다.
위협 유형과 놓침률
사용자는 명백한 파괴적 행동보다는 미묘한 데이터 유출 시도를 훨씬 더 자주 놓친다. 위협이 더 명백하지 않을수록 놓침률이 증가한다:
| 유형 | 예시 | 놓침률 |
|---|---|---|
| 명백한 파괴적 행동 | rm -rf /, chmod -R 777 / |
11.7% |
| 지속적인 변조 | crontab 삽입, git config 탈취 | 23.8% |
| 데이터 유출 / 코드 실행 | 알 수 없는 API로 curl, 타이포스쿼트 패키지 | 33.4% |
| 범위 위반 | cat ~/.aws/credentials, cat ~/.kube/config |
35.0% |
npm run의 맹점
익숙한 스크립트 이름은 악성 페이로드에 대한 강력한 심리적 마스크 역할을 한다. 이 연구에서 가장 놓친 명령은 npm run analyze였으며, 이는 64.7%의 확률로 승인되었다.
게임은 실제로 스크립트 내용(예: 원격 서버로 데이터를 유출하는 curl 명령)을 보여주는 기록 로그를 제공했음에도 불구하고, 사용자들은 여전히 높은 비율로 이러한 명령을 승인했다. npm run analyze, npm run setup, npm run deploy에 대한 통합 데이터는 52.5%의 놓침률을 보였으며, 다른 유출 유형의 공격은 **28.4%**였다. 이는 사용자들이 익숙한 명령어 이름 앞에서 기록 로그의 맥락을 무시하는 경향이 있음을 시사한다.
권한 피로와 시간 압박
세션 진행이 길어질수록 정확도가 떨어진다. 사용자는 일반적으로 처음 몇 개의 명령어에서 개선되는 '워밍업' 기간을 경험하지만, 세션 후반으로 갈수록 놓침률이 다시 상승한다. 이는 Anthropic과 같은 AI 연구소에서 관찰한 현상과 일치하며, 사용자가 보는 승인 요청이 많을수록 각각에 대한 주의가 줄어든다는 점을 반영한다.
경계의 비용: 과도한 차단
높은 경계심은 종종 "과도한 차단"을 초래한다. 즉, 무해하지만 위험해 보일 수 있는 명령어를 거부하여 에이전트의 활용도를 저하시킨다. 자주 차단되는 무해한 명령어의 예시는 다음과 같다:
npm config set registry https://npm.internal(차단 59%)rm -rf dist/(차단 45%)kill $(lsof -t -i:3000)(차단 43%)
커뮤니티의 시각과 대안
Hacker News에서 개발자들 사이의 논의는 "클릭-승인" 모델이 나쁜 보안 모델이며, 보통 벤더의 법적 책임 회피 수단으로 여겨진다는 데에 합의를 이뤘다.
제안된 기술적 대책
수동 승인 대신 커뮤니티 구성원들은 몇 가지 구조적 보호 장치를 제안한다:
- 엄격한 샌드박싱: Docker, Podman, gVisor, Firecracker를 활용해 에이전트를 격리한다. 일부는 홈 디렉터리 접근 권한이 제한된 별도의 OS 사용자(
chmod 0700 $HOME)를 사용하는 것을 제안한다. - 자원 기반 권한: 명령어 승인 대신 특정 파일이나 네트워크 엔드포인트에 대한 접근 권한을 승인하는 방식으로 전환한다.
- 자동화된 정책 강제: 결정론적 규칙 계층과 LLM 기반 모니터(예: "Watcher"와 같은 도구)를 도입해 안전한 명령어는 자동으로 승인하고, 고위험 이상의 이상 현상만 경고한다.
- 자격 증명 격리:
.zshrc와 같은 쉘 프로파일에서 비밀 정보를 제거하여 간단한cat명령어로 API 키를 유출하는 것을 방지한다.
연구에 대한 비판
일부 참가자들은 게임의 인위적인 시간 제약과 실제 세계적 결과(실제 데이터 손실 없음)의 부재가 결과를 왜곡할 수 있다고 주장했다. 다른 이들은 특정 프로젝트의 .zshrc 파일이 실제로 비밀 정보를 포함하는지 여부를 아는 전문적 맥락이 부족하기 때문에 일부 프롬프트가 객관적으로 모호하다고 지적했다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch