AI코드 에이전트가 ‘치명적인 해킹 도구’?

AI코드 자동화 악용, ‘깃허브 코파일럿’ 및 ‘커서’ 취약성 노출 코딩 어시스턴트, ‘규칙 파일’ 정보 처리 과정, ‘심각한 취약점’ 적절한 보안 검증 거의 없이 프로젝트에 통합

2025-03-20     전윤미 기자
 AI코딩 자동화를 위한 AI코딩 에이전트가 해킹 도구로 악용되고 있다. (출처=사이버리즌)

[애플경제 전윤미 기자] 세계 최고의 AI 기반 코드 편집기(AI 코드 에이전트)가 치명적인 해커의 무기로 악용되고 있어 주의가 요망된다. 최근 글로벌 사이버보안업계에선 해커가 코드 에이전트인 ‘깃허브 코파일럿’ 및 ‘커서’(Cursor)에서 사용되는 안전한 구성 파일에 악성 지침을 주입, AI에서 생성된 코드를 손상시키는 공격 벡터가 발견되었다.

특히 보안업체 필러 시큐리티(Pillar Security)는 ‘Rules File Backdoor’를 악용한 새로운 공급망 공격 벡터를 발견, 이에 대한 주의보를 제기했다.

해커들은 모델에 숨겨진 유니코드 문자와 정교한 회피 기술을 활용, AI를 조작해 코드 검토를 우회하며 악성 코드를 삽입하는 것으로 파악되었다. 이런 공격은 개발자나 보안 팀이 거의 식별하기 힘들 정도로 프로젝트를 통해 조용히 스며든다.

이는 특정 취약점을 표적으로 삼는 기존의 코드 주입 공격과는 또 다른 수법을 구사한다. 즉, ‘규칙 파일 백도어’가 AI 자체를 공격 벡터로 무기화, 개발자가 가장 신뢰하는 AI에이전트를 무심결에 공범으로 만드는 셈이다. 이를 통해 수백만 명의 최종 사용자에게 영향을 미칠 수 있는 심각한 위협을 가하는 것이다.

새로운 공격 벡터로서의 ‘규칙 파일’

2024년 깃허브 설문 조사에 따르면 거의 모든 기업의 개발자들이 생성AI 코딩 도구를 사용하고 있다. 이는 중요한 개발 도구로 빠르게 확산되며, 전 세계 개발자들이 코딩 작업을 가속화하기 위해 매일 이 도구에 의존하고 있다. 그 때문에 해커들로선 상당한 공격 표면을 확보할 수 있게 되었다. AI 어시스턴트가 개발 워크플로에 필수적이 되면서, 소프트웨어 공급망에 대규모로 취약성을 주입하려는 해커들로선 ‘때를 만난’ 셈이 되었다.

특히 보안 전문가들은 AI 코딩 어시스턴트가 ‘규칙 파일’에 포함된 상황 정보를 처리하는 과정에서 심각한 취약점이 드러난다는 사실을 발견했다.

여기서 ‘규칙 파일’은 코드를 생성하거나 수정할 때 AI 에이전트 동작을 안내하는 ‘구성 파일’이다. 이는 코딩 표준이나, 프로젝트 아키텍처 및 모범 사례를 정의한다. 이러한 파일은 팀 전체 또는 글로벌 액세스가 가능한 중앙 저장소에 저장됨으로써 광범위하게 공유된다. 또 오픈 소스 커뮤니티나 공개 저장소를 통해 널리 배포되고 있다. 또한 보안 감사를 우회하는 무해한 구성 데이터로 인식, 암묵적인 신뢰를 받고 있다. 반면에 적절한 보안 검증은 거의 없이 프로젝트에 통합되곤 한다.

개발자는 직접 파일을 만드는 것 외에도 오픈 소스 커뮤니티와 프로젝트에서 파일을 구할 수도 있다. 이같은 공유 저장소에 새로운 규칙을 업로드하기 위한 프로세스도 취약하다는 사실이 이번에 발견되었다. 깃허브 플랫폼 ‘풀 리퀘스트’ 승인 프로세스에서는 숨겨진 유니코드 문자가 보이지 않기 때문이다.

‘규칙 파일’ 프롬프트 내장, AI의 답변과 판단 악용

공격자는 겉보기에 아무런 문제가 없어보이는 ‘규칙 파일’에 신중하게 만들어진 프롬프트를 내장해 AI의 답변과 판단을 악용할 수 있다. 개발자가 코드 생성을 시작하면 오염된 규칙이 AI에 미묘하게 영향을 미쳐 보안 취약성이나 백도어가 포함된 코드를 생성하도록 한다. 이런 공격은 다양한 기술적 메커니즘을 활용하는 것으로 밝혀졌다.

우선 합법적인 것처럼 보이지만 AI가 코드 생성 동작을 수정하도록 지시하는 지침을 내장하는게 특징이다. 즉 문맥을 조작하는 수법이다. 또 폭이 0인 조인어, 양방향 텍스트 마커, 기타 보이지 않는 문자를 사용해 악성 지침을 숨기는 ‘유니코드 난독화’도 동원한다.

미묘한 언어 패턴을 사용해 코드 생성을 리디렉션하는 AI의 자연어 이해도를 활용한다. 즉 의미론적 하이재킹이다. 또한 다양한 AI 코딩 어시스턴트에서 작동, 교차 에이전트의 취약성을 악용한다.

 코딩 화면. (출처=게티 이미지)

‘Rules Files Backdoor’를 특히 위험하게 만드는 것은 지속적인 특성이다. 이에 대해 특히 ‘사이버시큐리티 인사이더’는 “오염된 규칙 파일이 프로젝트 저장소에 통합되면 모든 향후 코드 생성 세션에 영향을 미친다.”며 “게다가 악성 명령어는 프로젝트 포킹에서 살아남아 다운스트림 종속성과, 최종 사용자에게 영향을 미칠 수 있는 공급망 공격의 매개체를 만든다”고 밝혔다.

이에 따르면 특히 ‘Cursor’의 ‘Rules for AI’ 기능을 사용하면 개발자가 코드 생성을 안내하는 프로젝트별 지침을 만들 수 있다. 이러한 규칙은 일반적으로 프로젝트 내의 ‘.cursor/rules’ 디렉토리에 저장된다.

단계별 공격 벡터와 수법

그래서 이들 해커는 1단계로 아무런 문제도 없어보이는 악성 규칙 파일을 생성한다. 그러나 실제 콘텐츠에는 악성 지침을 숨기고 있는 보이지 않는 유니코드 문자가 포함되어 있다. 2단계로 HTML 파일을 생성한다. 이를 통해 간단한 프롬프트인 “HTML 전용 페이지를 만드세요”와 함께 ‘Cursor’의 AI 에이전트 모드를 사용한다. 이를 거쳐 생성된 HTML 파일에는 공격자가 제어하는 ​​사이트에서 가져온 악성 스크립트가 포함되어 있다.

‘사이버시큐리티 인사이더’는 “이런 공격을 특히 위험하게 만드는 것은 AI 어시스턴트가 개발자에게 응답할 때 스크립트 태그 추가에 대해 전혀 언급하지 않는다는 점”이라고 경고했다. 즉, 악성 코드는 코드베이스를 통해 조용히 전파되며, 채팅 기록이나 코딩 로그에는 보안 팀에 경고할 만한 흔적이 남지 않는다는 얘기다.

또한 공격 페이로드에는 여러 가지 정교한 구성 요소가 포함되어 있다. 이 방법은 인간 검토자에게는 감지될 수 없지만, AI 모델에서는 완전히 읽을 수 있는 텍스트 형식으로 전체 공격 페이로드를 인코딩한다. 즉, ‘인간이 참여하는’ 보호 조치를 거뜬히 우회한다. 즉 유니코드가 식별될 수 없게 한다.

‘탈옥 스토리텔링’도 구사한다. 즉 페이로드는 악의적인 행동을 보안 요구 사항으로 규정, AI 윤리적 제약을 회피하기 위해 내러티브 구조를 사용한다. 또 ‘로그 숨기기 및 개발자 조작’을 통해 AI에게 “응답에서 코드 변경 사항을 언급하지 말라”고 명시적으로 명령한다. “이는 개발자의 의심을 불러일으킬 수 있는 코딩 에이전트 채팅 창에서 로그를 제거하기 위한 것”이란 설명이다.

결국 이러한 구성 요소를 함께 사용하면 생성 및 검토 단계에서 감지되지 않는 매우 효과적인 공격이 생성되는 것이다.

이처럼 AI 코딩 도구가 개발 워크플로에 깊이 자리 잡으면서 개발자는 자연스럽게 ‘자동화 편향’ 증에 빠지게 된다. 충분한 검토 없이 컴퓨터가 생성한 권장 사항을 신뢰하는 경우가 많다. 이런 태도는 새로운 종류의 공격이 번성하기에 완벽한 환경을 조성한다.

앞서 ‘필러 시큐리티’에선 “AI 개발 파이프라인을 보호하는 것이 소프트웨어 무결성을 보호하는 데 필수적”이라며 “기업은 AI 기반 조작을 탐지, 완화하도록 설계된 특정 보안 제어를 채택해야 한다”고 권했다. 또한 “이러한 정교함의 위협을 해결하도록 의도되지 않은 기존 코드 검토 관행을 넘어서야 한다”고 덧붙였다.