본문 바로가기
Mechanic: IT 인터넷/Mechanic , M-Trend

AI 코딩 도구 보안 위협 — 공격도 AI, 방어도 AI인 시대

by M-LOG : 엠로그 2026. 7. 15.
반응형

설정 파일 한 줄에 눈에 안 보이는 문자가 숨어 있다면, AI는 그걸 그대로 지시로 읽는다.

화면에는 아무것도 안 보인다. 제로폭 조이너, 양방향 텍스트 마커 — 사람 눈에는 존재하지 않는 유니코드 문자들이다. AI 코딩 에이전트는 그 자리에서 진짜 명령을 읽어낸다.

팀에 AI 하네스를 설계해온 입장에서 CLAUDE.md 같은 룰 파일은 AI를 우리 방식대로 길들이는 도구였다. 이번에 접한 뉴스들을 보면 그 룰 파일 자체가 공격 표면이 됐다. 공격도 AI를 쓰고, 방어도 AI를 쓰는 시대다.


룰 파일에 숨은 글자 — Rules File Backdoor

보안업체 Pillar Security가 2025년 3월 공개한 공격 기법이다. GitHub Copilot, Cursor 같은 AI 코드 에디터가 참조하는 "rules 파일"을 노린다.

원리는 이렇다. 표면적으로는 평범한 코딩 지침처럼 보인다. 그 뒤에 제로폭 조이너, 양방향 텍스트 마커 같은 눈에 안 보이는 문자로 숨겨진 지시가 따로 붙어 있다. 악성 행동을 "보안 요구사항"으로 포장해 AI가 의심 없이 따르게 만드는 방식이다. 거기에 더해 AI가 코드 변경 사실을 응답에서 언급하지 않도록 하는 지시까지 심어둔다.

한번 심어지면 끝나지 않는다. 프로젝트를 포크해도 룰 파일은 그대로 딸려간다. 이후 그 저장소에서 생성되는 모든 코드가 영향을 받는다. 코드 리뷰로는 잡히지 않는다. 리뷰어가 보는 건 코드지, 룰 파일 안에 숨은 유니코드가 아니니까.


이게 나랑 무슨 상관이냐 — npm 공급망 공격 최근 사고들

7월 11일, npm 패키지 Jscrambler가 뚫렸다. 공격자가 8.14.0 버전을 배포했고, 설치하면 Rust 기반 인포스틸러가 실행됐다. 탐지까지 6분 걸렸다.

이 악성코드가 노린 위치가 구체적이다. Claude Desktop, Cursor, Windsurf, VS Code, Zed — API 키와 MCP 서버 인증정보가 저장되는 설정 파일들. 여기에 AWS·Azure·GCP 클라우드 인증정보, 암호화폐 지갑, Bitwarden 비밀번호 금고, Discord·Slack·Telegram·Steam 세션까지 딸려 나갔다.

맥에서 Cursor랑 Claude를 매일 켜놓고 쓴다. 저 목록을 읽는데 남 얘기로 안 읽혔다.

6월 17일에는 Mastra-AI npm 생태계에서 141개 이상의 패키지가 침해당해 같은 계열의 인포스틸러가 뿌려졌다. 그 외에도 NPM 웜이 AI 코딩 에이전트와 IDE를 표적 삼아 악성 MCP 설정을 몰래 추가하고, 그 경로로 LLM API 키와 SSH 키를 훔치는 사례가 보고되고 있다.

한 곳이 뚫린 게 아니다. AI 코딩 도구의 설정 파일이라는 좌표를 정확히 찍고 들어오는 캠페인들이다.


국내도 예외가 아니다 — 트러스트폴

이스트시큐리티가 국내 Web3·DeFi 개발자를 겨냥한 악성 npm 패키지 캠페인을 포착했다. AI 개발도구가 읽는 프로젝트 지침 파일, AI 에이전트가 호출하는 외부 도구까지 공격 경로로 쓰였다.

보안업계가 "트러스트폴(TrustFall)"이라 이름 붙인 공격 방식은 더 직접적이다. Claude Code 같은 에이전트형 코딩 도구가 악성 저장소를 "신뢰"하도록 유도한다. 개발자가 "이 프로젝트를 신뢰하느냐" 확인창에 동의하는 순간, 저장소에 포함된 악성 MCP 서버가 사용자 권한으로 OS 프로세스로 실행된다.

CI/CD 파이프라인에서 Claude Code 같은 도구를 쓰는 조직이라면 위험 범위가 더 넓어진다. 빌드 프로세스가 환경변수·배포 키·서명 인증서·실행 계정 자격증명까지 읽는 구조라서다. 프로세스 단계별로 어떤 맥락을 주입할지 고민하던 그 단계 하나하나가, 뒤집어 보면 뚫렸을 때 새어나갈 수 있는 자격증명 목록이기도 하다.


공격도 AI, 방어도 AI — 군비경쟁이 된 보안

기존 패턴 기반 탐지는 이제 무력하다. AI 기반 공격은 실시간으로 행동을 바꾸고, 탐지를 피하려고 그때그때 새 악성코드를 생성한다. 새 취약점이 발견된 뒤 무기화되기까지 걸리는 시간이 "분" 단위로 줄었다는 분석도 나온다.

방어 쪽도 가만있지 않는다. AI 기반 위협 탐지, 자동 대응 에이전트를 배치하는 게 이제 표준이 됐다.

속도가 무기가 됐다.

2026년 보안 업계는 이 구도를 "AI 군비경쟁(arms race)"이라 부른다. 국내 분석에서도 공격자들이 탐지 회피에 집중하며 AI와 공급망 공격을 결합하는 추세가 지적된다. 속도로 밀어붙이는 쪽과, 속도로 막으려는 쪽. 둘 다 같은 도구를 쓰고 있다.


개발 관리자로서 지금 뭘 봐야 하나 — 룰 파일과 MCP 점검

리더 역할이 코드에서 맥락으로 옮겨갔다고 썼던 게 몇 달 전이다. 이제는 그 맥락, 그러니까 CLAUDE.md·룰 파일·MCP 설정 자체를 감사 대상으로 봐야 할 차례다.

팀 룰 문서에 눈에 안 보이는 문자가 없는지, 신규 MCP 서버를 붙일 때 "신뢰" 확인창을 습관적으로 넘기고 있진 않은지 — 다음에 팀 하네스 문서를 다시 열어볼 때 체크리스트에 넣어둘 항목이 늘었다.

방어도 AI로 하는 시대라지만, 확인창을 누르는 손가락은 아직 사람 것이다.


FAQ

Q. Rules File Backdoor가 정확히 뭔가요?
GitHub Copilot·Cursor 같은 AI 코드 에디터가 참조하는 rules 파일에 제로폭 문자 같은 눈에 안 보이는 유니코드로 악성 지시를 숨기는 공격 기법이다. AI가 그 숨은 지시를 읽고 실행하지만, 사람 눈에는 파일이 정상으로 보인다.

Q. Cursor·Claude Desktop 설정 파일이 왜 공격 대상이 되나요?
API 키, MCP 서버 인증정보 같은 민감한 값이 저장돼 있는 위치이기 때문이다. Jscrambler npm 패키지 침해 사고에서도 이 설정 파일들이 정확히 표적이 됐다.

Q. MCP 서버가 뭐길래 위험한가요?
AI 에이전트가 외부 도구·서비스를 호출할 때 쓰는 연결 규격이다. 신뢰하지 않은 저장소의 MCP 서버가 실행되면 사용자 권한으로 OS 프로세스가 돌아가기 때문에, "트러스트폴" 같은 공격에서 실질적인 침투 경로로 쓰인다.

Q. 팀에서 지금 당장 뭘 점검해야 하나요?
팀 룰 문서에 숨겨진 문자가 없는지 확인하고, 신규 MCP 서버·저장소를 신뢰 목록에 추가할 때 확인창을 습관적으로 넘기지 않는 것부터다. CI/CD에서 AI 코딩 도구가 읽을 수 있는 자격증명 범위를 다시 점검하는 것도 포함된다.


출처


반응형