AI 코딩 보안: 프롬프트 인젝션이 프로젝트 파일 속에 숨어 있습니다
당신의 AI 코딩 어시스턴트는 저장소의 모든 파일을 읽습니다. README, 설정 파일, 그리고 규칙(rules) 파일까지 읽습니다. AI는 이 파일들을 바탕으로 코드를 작성하는 방식을 결정합니다.
새로운 보안 위협이 바로 이 동작을 악용합니다. 연구원들은 28개의 서로 다른 AI 코딩 도구에서 취약점을 발견했습니다. 이 공격은 복잡한 해킹이 아닙니다. 저장소에 있는 단순한 텍스트 파일 하나로 이루어집니다.
공격 방식:
오픈 소스 프로젝트를 클론합니다. 겉보기에는 정상적입니다. AI 에디터로 프로젝트를 열고 새로운 기능을 요청합니다. 설정 파일에 숨겨진 유니코드 문자는 보이지 않습니다. 이 문자들은 사용자에게는 지침을 숨기지만, AI에게는 다른 일을 하도록 명령합니다.
숨겨진 지침은 AI에게 당신의 AWS 자격 증명을 외부 서버로 전송하도록 명령합니다. AI는 이것을 정당한 프로젝트 지침으로 생각하고 명령을 실행합니다. 당신의 비밀 정보가 유출됩니다.
막기 어려운 이유:
- 숨겨진 문자: 사용자는 일반 텍스트를 보지만, AI는 보이지 않는 유니코드 문자를 통해 악성 명령을 읽습니다.
- 모든 파일이 진입점: README나 라이브러리의 주석이 페이로드를 담고 있을 수 있습니다.
- 높은 권한: AI 에이전트는 종종 사용자의 권한으로 실행됩니다. 이들은 당신의 SSH 키와 API 토큰을 읽을 수 있습니다.
- 도구 호출(Tool calls): AI는 명령을 실행하기 위해 도구 호출을 사용합니다. 이 공격은 안전 학습을 우회하기 위해 이러한 호출을 목표로 합니다.
워크플로우를 방어하는 방법:
- 파일 내용 정화(Sanitize): AI가 읽기 전에 숨겨진 문자와 일반적인 인젝션 패턴을 제거합니다.
- 샌드박스 사용: 네트워크 액세스가 없고 읽기 전용 파일 시스템을 가진 컨테이너에서 AI 에이전트를 실행합니다.
- 엄격한 정책 설정: 허용된 명령의 화이트리스트를 만듭니다. 데이터를 이동하거나 파일을 삭제하는 모든 명령에는 사람의 승인을 요구합니다.
코딩 세션을 시작하기 전에 빠른 스캔을 수행할 수 있습니다. 파일에서 "ignore all previous" 또는 "curl", "exfil"과 같은 의심스러운 용어가 있는지 확인하세요.
AI 코딩 도구는 생산적이지만, 디스크의 파일이 안전하다고 가정합니다. 하지만 실제로는 그렇지 않습니다. 모든 파일을 신뢰할 수 없는 입력값으로 취급하십시오.
당신의 AI 워크플로우에서는 프롬프트 인젝션 위험을 어떻게 관리하고 계신가요?
Source: https://dev.to/tyson_cung/ai-coding-security-prompt-injection-is-hiding-in-your-project-files-4be9
