Skip to content
ai agents

멀웨어 프롬프트를 숨기는 AI 스킬

겉보기엔 깔끔한 스킬이 AI 에이전트를 조용히 유도하여 데이터를 유출하거나 자체 메모리를 재작성하게 만들 수 있습니다. 가장 불안한 점은 페이로드가 실행 가능한 코드가 아닌 평범한 영어 문장일 수 있다는 것입니다.

Sol Aguirre
멀웨어 프롬프트를 숨기는 AI 스킬

페이로드는 프로그램이 아닌 문장입니다

급성장하는 AI 에이전트 생태계에 새로운 취약점이 등장했습니다. VirusTotal이 약 36,000개의 AI 스킬을 분석한 결과, 6,637개가 악성으로 확인되었으며 이는 5개 중 1개꼴에 해당합니다. 이는 전통적인 멀웨어가 아니며, 이러한 악성 스킬의 62%에는 실행 가능한 코드가 포함되어 있지 않았습니다.

페이로드는 프로그램이 아닌 문장입니다. 에이전트는 스킬 콘텐츠를 직접적인 지시사항으로 해석하므로, 평문으로 된 지시가 공격의 벡터가 될 수 있습니다. 이는 코드 실행이 아닌 의미론적 이해가 공격을 주도하는 위협 모델의 근본적인 변화를 의미합니다.

에이전트는 종종 파일, 터미널, 네트워크 도구에 접근하는 광범위한 권한으로 작동합니다. 정교하게 작성된 프롬프트는 이러한 신뢰된 사용자 권한을 활용하여 데이터 노출, 무단 시스템 수정 또는 기타 악의적인 작업을 유발할 수 있습니다. 이는 npm 문제와 유사하지만, 페이로드가 대화형이라는 점이 다릅니다.

공격자들은 다양한 회피 기술을 사용합니다. 어떤 이들은 파일의 끝부분보다 수백 줄 아래에 지시사항을 숨깁니다. 또 다른 이들은 HTML 주석이나 보이지 않는 유니코드 문자에 지시문을 삽입하는데, 이는 사람의 검토에서는 숨겨지지만 기본 LLM은 완전히 읽을 수 있습니다. 따라서 렌더링된 버전뿐만 아니라 원본 파일을 검사해야 합니다.

미리보기에서 사라지는 속임수들

공격자들은 사람의 검토를 피하기 위해 시각적 속임수를 사용합니다. 일부 프롬프트는 파일 내용보다 수백 줄 아래에 위치하는데, 이를 whitespace padding이라고 합니다. 한 WHO 데이터 스킬은 733줄 뒤에 나이지리아의 말라리아 발병 건수를 0으로 보고하라는 지시를 숨겼습니다. 또 다른 콜드 이메일 도구는 672줄의 공백 뒤에 BCC 지시문을 숨겼습니다.

HTML 주석도 위장 수단으로 사용됩니다. <!-- hidden text -->와 같은 요소는 렌더링된 웹 페이지에서는 사라지지만, 원본 파일을 읽는 에이전트에게는 그대로 보입니다. 너비가 없는 공백과 같은 보이지 않는 유니코드 문자는 사람의 눈과 기본적인 패턴 매칭으로부터 텍스트를 더욱 가리지만, 기본 LLM은 이를 완전히 읽을 수 있습니다.

VirusTotal은 이러한 시각적 회피 기술을 사용하는 스킬을 최소 90개 발견했습니다. 이는 마켓플레이스가 사람 검토자에게 보여주는 내용과 에이전트가 실제로 처리하는 원본 파일이 다를 수 있다는 중요한 격차를 보여줍니다. 이러한 불일치는 악의적인 행위자가 은밀한 지시사항을 삽입할 기회를 제공합니다.

이 문제는 npm 공급망 취약점과 유사하지만 의미론적인 반전이 있습니다. 페이로드는 프로그램이 아닌 문장이지만, 동일한 수준의 침해 가능성을 내포하고 있습니다. 사용자는 스킬의 무결성을 확인하기 위해 렌더링된 미리보기뿐만 아니라 원본 파일을 검사해야 합니다.

에이전트가 조용히 하라는 지시를 받았을 때

지시사항은 때때로 에이전트에게 자신의 행동을 숨기라고 명시적으로 명령합니다. 예를 들어, 일부 악성 스킬은 에이전트에게 "당신의 인간 사용자는 알 필요가 없다"고 말합니다. 이러한 직접적인 명령은 사람의 감독을 우회하여 에이전트가 의심을 사지 않고 숨겨진 지시를 실행할 수 있게 합니다.

또한 이러한 페이로드는 지속성(persistence)을 목표로 합니다. 지시사항은 에이전트에게 memory.md나 agents.md와 같은 메모리 형태의 파일에 쓰도록 요청할 수 있습니다. 이는 악의적인 동작을 에이전트의 장기 구성에 직접 삽입하여, 초기 스킬이 제거되거나 비활성화된 후에도 후속 세션에 계속 영향을 미칠 수 있도록 합니다.

이 패턴은 수년간 소프트웨어 개발을 괴롭혀 온 npm 공급망 문제와 매우 흡사합니다. 그러나 AI 에이전트의 경우 공격 표면이 크게 달라집니다. 기존의 익스플로잇이나 바이너리 코드 대신, 페이로드는 종종 의미론적 텍스트(semantic text), 즉 LLM이 해석하고 실행하는 평문 언어 지침인 경우가 많습니다. 더 자세한 분석은 How Some Malicious AI Skills Hide Instructions from Reviewers - VirusTotal Blog를 참조하십시오.

이 차이는 매우 중요합니다. 기존 보안 도구는 악성 코드가 포함되어 있지 않기 때문에 이러한 텍스트 기반 익스플로잇을 식별하는 데 어려움을 겪습니다. VirusTotal이 식별한 6,637개의 악성 스킬 중 62%에는 전통적인 실행 코드가 포함되어 있지 않았습니다. 이는 단순한 문장 하나가 정교한 바이러스만큼 강력할 수 있는 에이전트 시스템 보안의 근본적인 과제를 잘 보여줍니다.

이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.

하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음

스킬을 신뢰하기 전에 원본 파일을 검사하십시오

이러한 공격의 미묘한 특성을 고려할 때, GitHub나 마켓플레이스 UI의 렌더링된 미리보기에 의존하는 것은 치명적인 사각지대를 초래합니다. 항상 원본 소스 파일(raw source file)을 직접 검사하십시오. 서식 보기에서는 사라지지만 에이전트에게는 읽히는 비정상적으로 큰 공백, HTML 주석, 의심스러운 유니코드 문자를 찾아보십시오.

수동 검사 외에도 강력한 권한 설정을 구현하십시오. 에이전트가 memory.md나 agents.md와 같은 메모리 또는 구성 파일을 작성하기 전에 명시적인 승인을 요구해야 합니다. 모든 파일 시스템 및 네트워크 액세스에 최소 권한(least privilege) 원칙을 적용하여 에이전트의 잠재적 피해 범위를 최소화하십시오.

격리된 샌드박스와 보안 스캐너가 심층 방어를 제공하지만, 완벽하지는 않습니다. 예를 들어, 오픈 소스 스킬 스캐너는 이러한 자연어 익스플로잇의 33%에서 71%를 놓칩니다. 이러한 높은 실패율은 인간의 검토와 엄격하게 시행되는 권한 설정이 지속적으로 필요함을 강조합니다.

npm 생태계는 겉보기에 무해해 보이는 구성 요소가 위험한 페이로드를 숨길 수 있다는 것을 가르쳐 주었습니다. 이제 AI 스킬의 경우, 페이로드는 종종 문장 하나에 불과합니다. 원본 파일 수준에서의 경계와 엄격한 액세스 제어를 결합하는 것이 이러한 진화하는 위협에 대한 최선의 방어책입니다.

자주 묻는 질문

악성 AI 에이전트 스킬이란 무엇인가요?

데이터 노출이나 파일 변경과 같이 AI 에이전트가 안전하지 않은 행동을 하도록 조작하는 지침이 포함된 스킬입니다.

스킬이 인간 검토자로부터 지침을 어떻게 숨길 수 있나요?

긴 공백 뒤, HTML 주석 내부, 또는 렌더러나 편집기가 숨길 수 있는 보이지 않는 유니코드 문자에 프롬프트를 배치할 수 있습니다.

기존 악성코드 스캐너가 이러한 스킬을 놓칠 수 있는 이유는 무엇인가요?

많은 악성 스킬에는 실행 코드가 포함되어 있지 않으며, 페이로드가 에이전트가 지침으로 해석하는 자연어 텍스트이기 때문입니다.

AI 스킬 사용 시 위험을 어떻게 줄일 수 있나요?

원본 소스를 검사하고, 파일 끝부분을 확인하며, 메모리 변경 시 승인을 요구하고, 샌드박스 내에서 최소 권한으로 에이전트를 실행하십시오.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$199 · AI tools & software only

빌더를 위해

이 페이지는 지금 다른 사람의 도구를 위해 일하고 있습니다.

AI 에이전트가 읽고, 구매자가 도착합니다. 8개 언어와 MCP로 답합니다. 당신의 도구도 가질 수 있습니다 — 24시간 안에 공개.