1P by princox 2시간전 | ★ favorite | 댓글과 토론

제목은 약간 변경했습니다. 정확한 영문 제목은 '마법에서 멀웨어로: OpenClaw의 에이전트 스킬이 공격 표면이 되는 방법' 정도가 됩니다.

26년 2월 2일 글이고, 읽어보는 것이 좋아보여 공유드립니다.

마법에서 멀웨어로: OpenClaw의 에이전트 스킬이 공격 표면이 되는 방법

들어가며: 에이전트의 강력함이 곧 위험이 되는 이유

며칠 전, 저는 OpenClaw가 왜 미래로 가는 포털처럼 느껴지는지, 그리고 그 미래가 왜 매우 구체적인 방식으로 두려운지에 대한 글을 게시했습니다.

요약하면 이렇습니다. OpenClaw와 같은 에이전트 게이트웨이는 여러분의 파일, 도구, 브라우저, 터미널, 그리고 여러분의 사고방식과 작업 내용을 담은 장기 "메모리" 파일에 실제로 접근할 수 있기 때문에 강력합니다. 바로 이 조합이 현대 인포스틸러(정보 탈취 악성코드)가 노리는 것과 정확히 일치합니다.

이 글은 그 불편한, "그리고 결국 일어났다"라는 후속 이야기입니다.

에이전트가 설치된 후에 위험할 수 있다는 것만이 문제가 아닙니다. 에이전트의 기능과 스킬 레지스트리를 배포하는 생태계 자체가 이미 공격 표면이 되었습니다.


⚠️ 경고: 회사 기기에서 OpenClaw를 사용하지 마세요

OpenClaw를 실험하고 있다면, 회사 기기에서는 절대 하지 마세요. 이건 확고합니다.

첫 번째 글에서 저는 OpenClaw를 일종의 파우스트적 거래라고 설명했습니다. OpenClaw가 매력적인 이유는 바로 여러분의 로컬 머신, 앱, 브라우저 세션, 파일, 그리고 장기 메모리에 실제로 접근할 수 있기 때문입니다. 하지만 그 동일한 접근 권한은, 기업 자격증명을 보유하거나 프로덕션 시스템에 접근할 수 있는 머신에서 안전하게 실행할 방법이 아직 없다는 것을 의미합니다.

이미 업무용 기기에서 OpenClaw를 실행했다면, 이를 잠재적 보안 사고로 간주하고 즉시 보안 팀에 연락하세요. 증상이 나타날 때까지 기다리지 마세요. 해당 머신에서의 작업을 중단하고 조직의 사고 대응 절차를 따르세요.


스킬은 그저 마크다운 파일일 뿐, 바로 그게 문제입니다

OpenClaw 생태계에서 "스킬"이란 대개 마크다운 파일입니다. 에이전트에게 전문적인 작업 수행 방법을 알려주는 한 페이지 분량의 지침서죠. 실제로 이 마크다운에는 링크, 복사-붙여넣기 명령어, 도구 호출 레시피 등이 포함될 수 있습니다.

인간과 에이전트가 실제로 문서를 소비하는 방식을 떠올리기 전까지는 무해해 보입니다:

  • "여기 사전 요구사항이 있습니다."
  • "이 명령어를 실행하세요."
  • "핵심 의존성을 설치하세요."
  • "이것을 터미널에 붙여넣으세요."

에이전트 생태계에서 마크다운은 단순한 "콘텐츠"가 아닙니다. 마크다운은 설치 프로그램입니다.


위험한 오해: "MCP가 스킬을 안전하게 만든다"

일부 사람들은 MCP(Model Context Protocol) 계층이 이를 더 안전하게 만든다고 가정합니다. 도구가 구조화된 인터페이스를 통해 노출되고, 호스트와 서버 구현에 따라 명시적인 사용자 동의 및 인가 제어가 가능하기 때문입니다.

하지만 스킬은 MCP를 전혀 사용할 필요가 없습니다.

에이전트 스킬 사양은 마크다운 본문에 어떤 제한도 두지 않으며, 스킬에는 "에이전트가 작업을 수행하는 데 도움이 되는" 모든 지침을 포함할 수 있습니다. 여기에는 터미널 복사-붙여넣기 명령어도 포함됩니다. 그리고 스킬은 마크다운과 함께 스크립트를 번들로 묶을 수 있어, MCP 도구 경계 바깥에서 실행이 일어날 수 있습니다.

따라서 여러분의 보안 모델이 "MCP가 도구 호출을 통제할 것이다"라면, 소셜 엔지니어링, 직접적인 셸 지침, 또는 번들된 코드를 통해 MCP를 우회하는 악성 스킬에 여전히 당할 수 있습니다. MCP는 안전한 시스템의 일부가 될 수 있지만, 그 자체로 안전 보장은 아닙니다.

마찬가지로 중요한 것은, 이것이 OpenClaw만의 문제가 아니라는 점입니다. "스킬"은 많은 에이전트가 개방형 Agent Skills 형식을 채택하면서 점점 이식 가능해지고 있습니다. 이 형식에서 스킬은 SKILL.md 파일을 중심으로 메타데이터와 자유 형식 지침이 포함된 폴더이며, 스크립트 및 기타 리소스도 번들할 수 있습니다. OpenAI 문서에서도 동일한 기본 구조(SKILL.md 파일 + 선택적 스크립트 및 에셋)를 설명합니다. 이는 악성 "스킬"이 단지 OpenClaw 문제가 아니라, 동일한 표준을 지원하는 모든 에이전트 생태계에 전파될 수 있는 배포 메커니즘이라는 것을 의미합니다.


발견한 것: 가장 많이 다운로드된 스킬이 멀웨어 전달 수단이었습니다

ClawHub(명백한 이유로 링크하지 않겠습니다)를 둘러보던 중, 당시 가장 많이 다운로드된 스킬이 "Twitter" 스킬인 것을 발견했습니다. 평범해 보였습니다. 설명, 의도된 용도, 개요 등 아무 생각 없이 설치할 만한 것이었습니다.

하지만 이 스킬이 가장 먼저 한 일은 "openclaw-core"라는 "필수 의존성"을 소개하고 플랫폼별 설치 단계를 제공하는 것이었습니다. 이 단계에는 일반적인 문서 링크처럼 보이는 편리한 링크("here", "this link")가 포함되어 있었습니다.

하지만 그것들은 정상적인 링크가 아니었습니다.

두 링크 모두 악성 인프라로 연결되었습니다. 전형적인 단계적 전달 방식이었습니다:

  1. 스킬의 개요가 사전 요구사항을 설치하라고 안내합니다.
  2. 링크는 에이전트가 명령어를 실행하도록 설계된 스테이징 페이지로 연결됩니다.
  3. 해당 명령어는 난독화된 페이로드를 디코딩하고 실행합니다.
  4. 페이로드는 2단계 스크립트를 가져옵니다.
  5. 스크립트가 바이너리를 다운로드하고 실행합니다. 여기에는 macOS의 내장 안티멀웨어 시스템인 Gatekeeper가 스캔하지 못하도록 macOS 격리 속성을 제거하는 과정도 포함됩니다.

정확한 명령어나 URL은 의도적으로 여기에 붙여넣지 않겠습니다. 메커니즘은 안타깝게도 단순하며, 이를 반복하는 것은 방어자보다 공격자에게 더 도움이 됩니다. 핵심은 이것이 "의심스러운 링크"가 아니었다는 것입니다. 설치 지침으로 위장한 완전한 실행 체인이었습니다.


확인됨: 정보 탈취형 멀웨어

저는 최종 바이너리를 안전하게 다운로드하여 VirusTotal에 제출했습니다.

결과는 모호하지 않았습니다. macOS 정보 탈취형 멀웨어로 판정되었습니다.

이것은 단순히 "컴퓨터를 감염시키는" 멀웨어가 아닙니다. 해당 기기의 모든 가치 있는 것을 약탈합니다:

  • 브라우저 세션 및 쿠키
  • 저장된 자격증명 및 자동완성 데이터
  • 개발자 토큰 및 API 키
  • SSH 키
  • 클라우드 자격증명
  • 계정 탈취로 전환할 수 있는 모든 것

에이전트 스킬을 설치하는 유형의 사람이라면, 바로 여러분의 머신이 훔칠 가치가 있는 대상입니다.


이것은 단발성 사건이 아니었습니다. 조직적인 캠페인이었습니다

이 내용을 내부에서 공유한 후, 더 광범위한 보도가 나오면서 규모가 드러났습니다. 수백 개의 OpenClaw 스킬이 ClickFix 방식의 지침을 통해 macOS 멀웨어를 배포하는 데 관여한 것으로 보고되었습니다.

이 세부사항이 중요한 이유는, 이것이 실제로 무엇인지를 확인해주기 때문입니다.

일회성 악성 업로드가 아닙니다.

의도적인 전략입니다: "스킬"을 배포 채널로, "사전 요구사항"을 소셜 엔지니어링 포장지로 사용하는 것입니다.


'도움이 되는 것'이 에이전트 세계에서 '적대적인 것'이 될 때

우리는 패키지 매니저와 오픈소스 레지스트리가 공급망 공격 벡터가 될 수 있다는 것을 수년간 학습해왔습니다.

에이전트 스킬 레지스트리는 그 다음 장입니다. 다만 "패키지"가 곧 문서라는 점이 다릅니다.

그리고 이것이 공격 경로를 더욱 매끄럽게 만듭니다:

  • 사람들은 마크다운 파일이 위험할 것이라고 예상하지 않습니다.
  • 사람들은 설치 단계를 빠르게 따르도록 훈련되어 있습니다.
  • 사람들은 "가장 많이 다운로드됨"을 정당성의 대리 지표로 신뢰합니다.
  • 에이전트 생태계에서는 지침을 읽는 것과 실행하는 것의 경계가 무너집니다.

에이전트가 셸 명령어를 직접 실행할 수 없더라도, 여전히 위험한 일을 할 수 있습니다. 위험한 행동을 정상적인 것으로 만들 수 있습니다.

악성 사전 요구사항을 "표준 설치 단계"로 자신 있게 요약할 수 있습니다. 원라이너(한 줄 명령어)를 붙여넣도록 유도할 수 있습니다. 망설임을 줄일 수 있습니다.

그리고 만약 여러분의 에이전트가 로컬 명령어를 실행할 수 있다면, 악성 스킬은 "나쁜 콘텐츠"가 아닙니다. 친절한 문서로 포장된 원격 코드 실행입니다.


지금 당장 해야 할 일

OpenClaw 또는 스킬 레지스트리를 사용 중이라면

회사 기기에서 이를 실행하지 마세요. 안전한 방법이 없습니다. 이미 했거나, 스킬에서 "설치" 명령어를 실행했다면, 즉시 보안 팀에 연락하고 잠재적 침해로 처리하세요.

  • 해당 기기에서 민감한 작업을 중단하세요.
  • 세션과 시크릿을 먼저 교체하세요: 브라우저 세션, 개발자 토큰, SSH 키, 클라우드 콘솔 세션.
  • 최근 로그인 기록을 검토하세요: 이메일, 소스 컨트롤, 클라우드, CI/CD, 관리자 콘솔.

그래도 실험하고 싶다면, 기업 접근 권한이 없고 저장된 자격증명이 없는 격리된 머신을 사용하세요.

스킬 레지스트리를 운영한다면

여러분은 앱스토어를 운영하는 것입니다. 악용될 것이라고 가정하세요.

  • 원라이너 설치 명령어, 인코딩된 페이로드, 격리 제거, 암호로 보호된 아카이브를 스캔하세요.
  • 출처 확인과 게시자 평판 시스템을 추가하세요.
  • 외부 링크와 설치 단계에 경고와 마찰을 넣으세요.
  • 상위 랭크 스킬을 검토하고 악성 스킬을 빠르게 제거하세요.

여기서 마크다운은 실행 가능한 의도입니다.

에이전트 프레임워크를 만든다면

스킬이 무기화될 것이라고 가정하세요.

  • 셸 실행을 기본적으로 차단(default-deny)하세요.
  • 브라우저, 키체인, 자격증명 저장소에 대한 접근을 샌드박스 처리하세요.
  • 권한을 구체적이고, 시간 제한이 있으며, 철회 가능하게 만드세요.
  • 원격 코드 및 명령어 실행에 마찰을 추가하세요.
  • 출처와 행위를 종단 간 로깅하세요.

미래를 위한 설계: 에이전트에게 필요한 신뢰 계층

이것은 제가 이전 글에서 했던 주장의 가장 명확한 증거입니다. OpenClaw가 강력한 이유는 의도와 실행 사이의 거리를 무너뜨리기 때문입니다. 그것이 바로 마법입니다. 하지만 동시에 상당한 위험도 수반합니다. 기능이 스킬로 배포되고 문서를 통해 설치될 때, 레지스트리는 공급망이 되고, 가장 쉬운 설치 경로가 공격자가 가장 선호하는 경로가 됩니다.

해답은 에이전트 구축을 멈추는 것이 아닙니다. 해답은 에이전트 주위에 빠져 있는 신뢰 계층을 구축하는 것입니다. 스킬에는 출처 증명이 필요합니다. 실행에는 중재가 필요합니다. 권한은 구체적이고, 철회 가능하며, 지속적으로 적용되어야 합니다. 한 번 부여하고 잊혀져서는 안 됩니다. 에이전트가 우리를 대신해 행동한다면, 자격증명과 민감한 행위는 마침 실행되는 아무 코드나 "가져갈" 수 있어서는 안 됩니다. 이들은 중개되고, 관리되며, 실시간으로 감사되어야 합니다.

이것이 바로 우리에게 그 다음 계층이 필요한 이유입니다. "스킬"이 공급망이 되는 세상에서, 유일하게 안전한 미래는 모든 에이전트가 자체 아이덴티티를 갖고, 지금 당장 필요한 최소한의 권한만을 보유하며, 그 접근이 시간 제한적이고, 철회 가능하며, 추적 가능한 미래입니다.