제목: AI 코딩 어시스턴트 세션이 공급망 공격으로 변질되다

Mandiant의 최신 사례 연구에 따르면, 탈취된 AI 코딩 어시스턴트 세션을 통해 공격자가 소프트웨어 기업의 코드베이스에 오염된 패키지를 주입하여 100개의 내부 저장소를 침해하고, GitHub OAuth 토큰을 탈취하며, 소스 코드와 비밀 정보를 유출했습니다. 이번 침해 사고는 개발자가 AI가 생성한 제안을 안전한 코드로 간주해서는 안 된다는 사실을 증명합니다.

어떤 일이 일어났는가

실시간 개발 세션 중에 공격자가 팀의 에디터에 내장된 AI 어시스턴트의 제어권을 장악했습니다. 침해된 어시스턴트는 이후 악성 패키지를 제안했습니다. 개발자는 해당 도구를 신뢰하여 추가적인 확인 없이 제안을 수락했습니다.

오염된 패키지는 워크스테이션에 저장된 GitHub OAuth 토큰을 수집하는 정보 탈취 도구(infostealer)를 설치했습니다. 공격자는 이 토큰을 사용하여 100개의 내부 저장소로 스스로를 복제하는 “Shai-Hulud” 웜을 배포했습니다. 악성 코드가 해당 회사의 자체 네임스페이스를 사용했기 때문에, 나중에 동일한 패키지를 가져온(pull) 다른 개발자들도 감염되었습니다.

이것이 중요한 이유

AI 코딩 어시스턴트는 프로젝트 파일을 읽고, 설치 명령어를 생성하며, 의존성 매니페스트를 편집하고, 심지어 터미널 명령어를 실행할 수도 있습니다. 이러한 광범위한 접근 권한은 AI 어시스턴트를 공급망 공격의 매력적인 경로로 만듭니다. 개발자가 낯선 사람의 조언보다 AI의 제안을 더 신뢰할 때, 공격자의 작업은 더 쉬워집니다. 어시스턴트가 합법적인 것처럼 보이는 악성 코드를 조용히 삽입할 수 있기 때문입니다.

공급망 공격을 통해 공격자는 피해자가 피해를 입을 때까지 알아차리지 못하는 사이에 조직의 코드베이스를 통해 측면 이동(lateral movement)을 수행하고, 자격 증명을 탈취하며, 독점 자산을 유출할 수 있습니다.

공격 진행 과정

  1. 세션 탈취 – 공격자가 진행 중인 AI 어시스턴트 세션을 장악했습니다.
  2. 오염된 권장 사항 – 침해된 어시스턴트가 악성 패키지를 제안하도록 강제되었습니다.
  3. 개발자의 수락 – AI의 권장 사항을 믿고 개발자가 패키지를 추가하고 생성된 설치 명령어를 실행했습니다.
  4. 페이로드 실행 – 패키지가 로컬 GitHub OAuth 토큰 및 기타 비밀 정보를 읽는 정보 탈취 도구를 설치했습니다.
  5. 웜 확산 – 탈취한 토큰을 사용하여 공격자가 Shai-Hulud 웜을 배포했으며, 이는 100개의 내부 저장소로 확산되었습니다.
  6. 데이터 유출 – 소스 코드, 내부 라이브러리 및 비밀 키가 공격자의 인프라로 유출되었습니다.

개발자가 지금 할 수 있는 일

모든 AI 제안을 신뢰할 수 없는 코드로 취급하십시오. 모든 서드파티 의존성에 사용하는 것과 동일한 검증 단계를 적용하십시오.

  • 패키지 검증

    • 공식 문서 및 버전 기록 확인.
    • 게시자의 신원 및 평판 확인.
    • 소스 저장소 및 최근 커밋 검토.
    • 예상치 못한 연결이 있는지 전체 의존성 트리 조사.
    • 숨겨진 명령어가 있는지 설치 스크립트 정밀 조사.
  • 자격 증명 관리 강화

    • 각 토큰에 가능한 최소한의 권한만 부여.
    • 수명이 긴 토큰보다 짧은 수명의 토큰 선호.
    • 운영 환경의 비밀 정보를 로컬 개발 환경에 두지 않음.
    • 에디터 확장 프로그램이 불필요한 자격 증명에 접근하지 못하도록 제한.
  • 침해 의심 시 대응

    • 영향을 받은 환경을 즉시 격리하십시오. node_modules나 유사한 디렉토리를 삭제하는 것만으로는 불충분합니다.
    • 모든 GitHub, npm, PyPI 및 클라우드 자격 증명을 교체(rotate)하십시오.
    • 예상치 못한 커밋이나 풀 리퀘스트(pull-request) 병합이 있는지 저장소 활동을 감사하십시오.
    • 이상 징후가 있는지 CI/CD 로그와 Git-hook 스크립트를 검토하십시오.

향후 전망

AI 어시스턴트는 많은 개발자에게 생산성 향상을 가져다주겠지만, 그 강력한 기능에는 신뢰라는 비용이 따릅니다. 조직은 외부 라이브러리에 대해 수행하는 것과 마찬가지로, AI가 생성한 코드를 기존 보안 검토 파이프라인에 포함시켜야 합니다. 자동화된 정책 검사, 서명된 AI 어시스턴트 출력물, 런타임 샌드박싱 등을 통해 조용한 침해 위험을 줄일 수 있습니다.

Mandiant의 사례는 AI 어시스턴트가 한 번 침해되면 공격자가 소프트웨어 공급망으로 직접 연결되는 통로를 확보하게 된다는 점을 명확히 보여줍니다. AI 제안을 '무조건적인 통과권'이 아닌 '위협 모델의 일부'로 취급하는 것이 코드베이스를 안전하게 유지하는 데 필수적일 것입니다.

핵심 요약: AI가 생성한 권장 사항은 다른 서드파티 코드보다 더 신뢰할 수 있는 것이 아닙니다. 이를 엄격하게 검증, 제한 및 모니터링하십시오. 그렇지 않으면 유용한 어시스턴트를 대규모 공급망 침해의 통로로 만드는 위험을 초래할 수 있습니다.