신뢰 탈취: ClawHub 취약점을 이용해 공격자가 순위를 조작하여 1위 스킬을 차지할 수 있습니다.

Silverfort 연구원들은 공격자들이 플랫폼의 순위 시스템을 악용함으로써 악성 기술을 사용하여 전 세계 수천 대의 기기에서 코드를 실행할 수 있다는 것을 보여줍니다.
Silverfort 영상
ClawHub 취약점 특집 이미지 (3)

TL; DR

SilverfortOpenClaw의 보안 연구팀은 ClawHub에서 공격자가 자신의 스킬을 ClawHub에서 1위 스킬로 위장할 수 있는 심각한 취약점을 발견했습니다. 공격자는 이렇게 하여 합법적이고 신뢰할 수 있는 스킬처럼 보이는 곳에 악성 코드를 삽입하고, 대규모 공급망 공격의 기반을 마련할 수 있습니다. 결과적으로 수많은 사용자와 OpenClaw 에이전트가 손상된 스킬을 다운로드하고, 잠재적으로 관리자 권한으로 악성 코드를 실행할 수 있습니다. 저희의 개념 증명(POC)에서 해당 스킬은 해당 카테고리에서 다운로드 1위를 차지했으며, 그 결과 수많은 사용자가 피해를 입었습니다. 3,900회의 스킬 실행 이내 6 일 동안 전 세계 50개 이상의 도시에 지사를 두고 있으며, 여러 상장 기업도 포함되어 있습니다.  

이 문제는 2026년 3월 16일에 ClawHub 팀에 책임감 있게 보고되었으며, 이후 성공적으로 해결되었습니다. 

이러한 공격 연쇄의 위험을 줄이기 위해 우리 팀은 개발했습니다. 클로넷: OpenClaw용 보안 플러그인으로, 에이전트의 LLM을 사용하여 설치 중에 악성 패턴을 검사하고, 사용자에게 알리고 의심스러운 설치를 차단합니다.

ClawHub란 무엇인가요?

ClawHub는 OpenClaw의 공개 스킬 레지스트리로, 누구나 스킬 패키지를 게시하여 다른 사용자가 설치할 수 있도록 합니다. 예를 들어, 스킬을 통해 OpenClaw 에이전트가 Google 캘린더와 통합되거나 최적화된 웹 검색을 수행할 수 있습니다. ClawHub는 OpenClaw 에이전트 생태계의 npm과 같은 역할을 합니다. ClawHub 플랫폼은 빠르게 성장하고 있으며, 이미 많은 스킬이 엄청난 다운로드 수를 기록하고 있습니다. (OpenClaw에 대한 기본 정보를 원하시면 여기를 클릭하세요.) 더 자세한 내용은 여기에서 읽어보실 수 있습니다.).  

ClawHub의 인기가 높아짐에 따라 공격자들에게도 매력적인 플랫폼이 되고 있습니다. 사용자들이 활발하게 탐색하고 설치하는 마켓플레이스에 스킬을 게시할 수 있다는 점은 공격자들에게 훌륭한 공급망 기회를 제공합니다. 

전형적인 공격 경로는 악성 스킬을 배포하고 사용자들이 설치하기를 기다리는 것입니다. 하지만 겉보기에 무해해 보이는 스킬에 악성 코드를 삽입하는 것만으로는 충분하지 않습니다. 광범위한 설치를 위해서는 해당 스킬이 신뢰할 만해 보여야 합니다. ClawHub에서는 npm이나 VS Code Marketplace와 같은 많은 공개 레지스트리와 마찬가지로, 인기가 높을수록 신뢰도가 높아집니다. 

사용자는 "사회적 증거"가 있는 스킬을 다운로드할 가능성이 더 높습니다.

ClawHub 코드는 거의 전적으로 바이브 코딩이러한 접근 방식에는 장점이 있지만, 심각한 보안 문제를 야기할 수도 있습니다. ClawHub의 다운로드 동작 구현을 분석한 결과, 다운로드 기반 신뢰 신호를 확장 가능한 공격 사슬로 변환할 수 있는 취약점을 발견했습니다. 

ClawHub에서 스킬 찾기

예를 들어 OpenClaw 에이전트가 Google 캘린더에서 회의 일정을 예약하는 데 도움을 주는 스킬을 설치한다고 가정해 보겠습니다. 이를 위해 웹 인터페이스 또는 CLI를 통해 ClawHub에 접속하여 해당 스킬 패키지를 검색합니다. 검색 결과가 나오면 가장 먼저 스킬의 다운로드 횟수를 확인할 수 있습니다. 다운로드 횟수가 많을수록 검색 결과 상단에 표시됩니다. 

ClawHub 검색을 기반으로 관련 스킬의 다운로드 횟수를 확인하세요.

각 스킬 패키지에는 다음이 포함됩니다. SKILL.MD 이 파일은 에이전트에게 스킬의 목적, 필요한 종속성, 그리고 언제 어떻게 사용해야 하는지를 알려줍니다. 일부 스킬에는 에이전트가 특정 상황에서 실행할 수 있는 스크립트가 포함될 수 있습니다.

Google 캘린더 스킬용 SKILL.md 파일

연구 속으로 뛰어들기

다운로드 API 자세히 살펴보기

ClawHub 코드는 공개되어 있습니다(다행히도). 조사 과정에서 ClawHub가 스킬 다운로드 API를 제공한다는 사실을 발견했습니다. downloadZip 간단히 말해, 다운로드 횟수가 집계되기 전에 요청은 여러 유효성 검사를 거쳐야 합니다. 

  • 속도 제한동일한 IP 주소 또는 사용자로부터 너무 많은 요청이 발생하면 차단됩니다.
  • 중복 제거: 속도 제한을 초과하더라도 동일한 IP 주소 또는 사용자가 동일한 시간대에 동일한 스킬을 다시 사용하는 경우에는 횟수가 다시 계산되지 않습니다. 

언뜻 보기에는 견고한 방어 설계처럼 보이지만, 구현 방식을 좀 더 자세히 살펴보면 그렇지 않다는 것을 알 수 있습니다.

프런트엔드 API 엔드포인트 우회

ClawHub는 사용합니다 볼록한 백엔드 프레임워크로 ClawHub를 사용했습니다. ClawHub 소스 코드를 살펴보니 공개적으로 접근 가능한 흥미로운 엔드포인트 두 가지가 있었습니다. 

  • Convex 사이트 URL: 프런트엔드 HTTP API를 제공합니다. 스킬 다운로드, 사용자 목록 보기, 스킬 검색 등의 기능은 모두 이 API 뒤에서 처리됩니다. 
  • Convex 배포 URL 이건 좀 다릅니다. 이건 직접적으로 말을 걸죠. 볼록 백엔드 RPC 레이어—HTTP 액션 미들웨어도 없고, 사용자 지정 요청 처리도 없습니다. 백엔드에 대한 함수 호출만 직접 수행합니다. 

Convex 라이브러리를 자세히 살펴보겠습니다.

Convex는 타입이 지정된 RPC(원격 프로시저 호출) 모델을 기반으로 구축된 백엔드 프레임워크입니다. RPC 모델에서는 REST 또는 GraphQL 엔드포인트에 HTTP 요청을 보내는 대신 클라이언트에서 백엔드 함수를 직접 호출합니다. 정의하는 모든 함수는 자동으로 등록되어 호출 가능하며, 각 함수를 자체 엔드포인트로 생각할 수 있습니다. 

Convex는 공개 호출 가능 함수와 비공개 호출 가능 함수를 명확하게 구분합니다. 

  • 내부 기능: internalQuery / internalMutation / internalAction 
    설계상 비공개입니다. 다른 서버 측 Convex 함수에서만 호출할 수 있으며 외부에서는 완전히 보이지 않습니다. 
  • 공공 기능query / mutation / action 
    Convex 배포 URL을 통해 노출되어 함수 이름을 알거나 추측하는 사람이라면 누구나 호출할 수 있습니다. Convex 문서에 따르면 함수가 public으로 정의된 경우 누구나 다음과 같은 HTTP 요청을 통해 호출할 수 있습니다. 

이러한 기능들은 당연히 사용되어야 합니다. 대단히 신중하게 접근해야 합니다. 클라이언트 입력을 검증하고 함수 사용 권한을 확인한 후에야 백엔드 데이터베이스를 변경할 수 있습니다. 

취약한 기능을 발견하다

downloads.ts 파일 안에는 increment라는 함수가 있습니다. 정상적인 다운로드 흐름은 엄격하게 보호되는 경로를 거칩니다. 내부 돌연변이 속도 제한, 중복 제거 및 권한 확인을 시행하는 기능입니다. 이 함수는 그 모든 과정을 완전히 건너뜁니다.

인증 없음. 속도 제한 없음. 중복 제거 없음. 어떠한 권한 확인도 없음. 

그것은 분명히 ~을 의도한 것이었다 내부 기능 하지만 다음과 같이 정의되었습니다. 공개 mutation 대신 internalMutation단 하나의 실수로 인해 해당 엔드포인트가 배포 URL에서 호출 가능한 RPC 엔드포인트로 노출되어 전 세계에 공개됩니다. 

공격자는 유효한 skillId를 사용하여 단 한 번의 curl 요청으로 downloads:increment를 호출할 수 있으며, 이로써 다운로드 흐름의 모든 보호 조치를 우회할 수 있습니다. 어떤 스킬이든 다운로드 횟수를 무제한으로 부풀리는 것!  

이것은 다음과 같습니다.

배포 ID와 스킬 ID를 얻는 것은 매우 간단합니다. 둘 다 클라이언트의 네트워크 트래픽에 노출되어 있으며 ClawHub 서버의 응답을 검사하여 확인할 수 있기 때문입니다. 

공격 연쇄 형성

1단계: 악의적인 스킬 제작

공격은 완전히 합법적으로 보이는 스킬을 제작하고 공개하는 것으로 시작됩니다. 이 시연을 위해 우리는 다음과 같은 스킬을 만들었습니다. Outlook 그래프 통합 스킬 - OpenClaw 에이전트가 회의 일정을 잡고, 사용자의 이메일을 관리하는 등의 작업을 수행할 수 있도록 하는 유틸리티입니다. 

스킬 생성

해당 스킬 스크립트 내에는 간단한 데이터 유출 페이로드가 숨겨져 있습니다. OpenClaw에서 이 스킬을 실행하면 클라이언트의 사용자 이름과 FQDN(완전 정규화 도메인 이름)을 수집하여 저희가 관리하는 서버로 전송합니다. 본 연구의 목적상, 페이로드는 의도적으로 영향력이 적고 파괴적이지 않도록 설계되었습니다. 

악성 페이로드는 겉보기에는 정상적인 "send_telemetry" 함수 내부에 숨겨져 있었기 때문에 해당 스킬은 악성으로 식별되지 않았습니다. 

물론, 진짜 공격자 이렇게 하면 페이로드가 훨씬 더 정교해질 수 있습니다. 환경 변수, 로컬 파일 경로, 메모리에 저장된 토큰 또는 스킬 실행 컨텍스트 내에서 접근 가능한 모든 것을 수집할 수 있습니다.

2단계: 다운로드 횟수 부풀리기

공급망 관점에서 이 공격이 특히 흥미로운 이유는 바로 이 부분 때문입니다. 이미 ClawHub에 악성 스킬이 있지만, 다운로드 횟수가 0회인 스킬은 누구에게도 도달하지 못할 것입니다. 아무도 사용해 본 적 없는 스킬을 누가 설치하고 싶겠습니까? 우리는 스킬이 신뢰할 만해 보이도록 만들어야 했습니다. 

그래서 우리는 바로 그런 일을 할 수 있는 간단한 도구를 만들었습니다. 코드베이스에서 발견한 취약한 함수를 이용해 통계 데이터베이스에 통계 이벤트 삽입 요청을 대량으로 전송하여 악성 스킬의 다운로드 횟수를 늘릴 수 있었습니다. 다운로드 횟수는 얼마나 될까요? 원하는 만큼 늘릴 수 있습니다! 속도 제한도 없고, 유효성 검사도 없고, 그 어떤 것도 우리를 막지 못합니다.

악성 스킬에 대해 20,000만 건 이상의 다운로드를 요청함

몇 분 만에 우리 스킬의 다운로드 횟수가 크게 증가했습니다.해당 카테고리에서 해당 스킬을 검색 결과 최상위에 올릴 만큼 충분합니다.

랭킹 시스템을 조작하여 스킬 부문에서 1위를 차지했습니다.

3단계: 착륙하는 모습 관찰하기

다운로드 급증 이후, 사용자들은 해당 기능을 발견하고 설치하기 시작했습니다. 그 결과: 약 3,900회의 스킬 실행 이내 6 일 동안 전 세계 50개 이상의 도시에 지사를 두고 있으며, 여러 상장 기업도 포함되어 있습니다. 

우리의 악성 스킬이 전 세계에 설치된 곳

이러한 모든 실행은 사용자의 도메인 이름과 사용자 이름을 포함하는 HTTP 요청을 당사 서버로 전송하는 것을 트리거했으며, 이는 정상적인 스킬 실행의 일부였습니다. 

이는 이러한 공격 연쇄가 얼마나 강력할 수 있는지를 보여줍니다. 해당 스킬은 OpenClaw 에이전트를 운영하는 최고 권한 사용자를 대신하여 실행됩니다. 이 경우 사용자 이름과 도메인만 수집했지만, 실제 공격자는 이를 악용하여 훨씬 더 악의적인 행위를 수행할 수 있습니다.

OpenClaw도 같은 함정에 빠졌다.

만약 인간 사용자조차 다운로드 함정에 빠질 수 있다면, OpenClaw 에이전트에 결정을 위임하면 어떤 일이 벌어질까요?

OpenClaw는 인간보다 더 나은 결정을 내릴 수 없을지도 모릅니다.

주어진 요구사항에 가장 적합한 스킬을 찾으라는 요청을 받으면, 에이전트는 ClawHub CLI를 통해 ClawHub 검색을 수행하고 스킬 이름, 슬러그, 요약 및 점수를 기준으로 결과에서 스킬을 선택합니다. 어떤 스킬을 설치할지에 대한 최종 결정은 LLM에서 내리지만, 코드베이스에 따르면 해당 결정에 영향을 미치는 스킬 점수는 콘텐츠 의미론과 다운로드 횟수의 영향을 받습니다. 

그래서 저희는 OpenClaw 에이전트에게 이메일과 캘린더 작업을 관리하는 스킬을 선택하도록 요청했고, 예상대로 저희가 공개한 악성 스킬을 선택했습니다. 에이전트는 설명에서 해당 스킬이 가장 높은 점수(높은 다운로드 횟수)를 받았기 때문에 선택했다고 밝혔습니다. 

Molty에게 어떤 스킬을 설치해야 하는지 물어봤더니, Molty가 우리가 만든 악성 스킬을 추천하는 것을 확인했습니다.

악성 스킬로부터 OpenClaw 에이전트를 보호하는 방법

OpenClaw는 자율적인 스킬 설치 및 실행을 지원하므로, 설치하는 스킬이 안전하고 신뢰할 수 있는지 확인하는 것이 필수적입니다. 이는 이미 여러 차례 확인된 바 있습니다. 

위험을 줄이기 위해 당사 제품을 설치하시기를 권장합니다. OpenClaw용 ClawNet 보안 플러그인ClawNet은 OpenClaw 에이전트 루프를 사용하여 스킬 설치와 관련된 도구 호출을 가로챕니다. 스킬이 설치되기 전에 ClawNet은 에이전트의 LLM(로컬 라이프 매니저)에게 스킬 내용을 검토하고 잠재적으로 악의적인 패턴을 표시하도록 요청합니다. 그런 다음 결과를 사용자에게 전달하고 설치를 차단할지 허용할지 결정합니다. 

우리가 이것을 시행하기로 한 선택 플러그인 오히려 기술 이는 보안상의 결정입니다. LLM은 잘못된 추론이나 모델이 의도된 스킬 처리 흐름을 일관되게 따르지 못하는 등의 이유로 스킬을 건너뛰거나 무시할 수 있습니다. 반면 플러그인은 OpenClaw 에이전트 루프에 직접 통합되어 런타임 수준에서 스킬 설치 시도를 가로채므로 LLM의 동작과 관계없이 검사가 실행되도록 합니다. 

이것에서 무엇을 배울 수 있습니까?

바이브 코딩은 보안 전략이 아닙니다.

바이브 코딩은 빠른 개발을 가능하게 하지만, 체계적인 보안 관행을 대체할 수는 없습니다. AI는 놀라운 시스템을 만들어낼 수 있지만, 여전히 오류 발생 가능성이 있습니다. 사소한 구현상의 세부 사항이 중대한 보안 문제를 야기할 수 있으므로 개발 과정에서 인간의 감독은 여전히 ​​필수적입니다.

다운로드 횟수만으로는 신뢰를 판단할 수 없습니다.

다른 사람들이 믿는다는 이유만으로 무언가를 신뢰하고 싶은 유혹이 들 수 있지만, 인기가 곧 보안을 보장하는 것은 아닙니다. 다운로드 횟수는 코드의 무결성, 검토 과정 또는 안전한 동작과는 아무런 관련이 없습니다. 특히 자동화 시스템에서 이러한 신호를 의사 결정 입력값으로 사용할 경우, 조작의 위험 요소가 될 수 있습니다. 따라서 사용자/에이전트는 모든 스킬의 출처를 확인하고, 저희와 같은 전용 스킬 스캐너를 사용하는 것이 좋습니다. OpenClaw용 ClawNet 플러그인설치 전에 파일에 의심스러운 패턴이 포함되어 있지 않은지 확인하기 위해서입니다.

RPC 개발에는 명확한 보안 경계가 필요합니다.

REST API(라우트, 미들웨어 및 유효성 검사 계층이 일반적으로 설계상 분리됨)와 달리 RPC 기반 프레임워크는 다음과 같은 특징을 갖습니다. 볼록한 개발자가 백엔드 코드에서 직접 호출 가능한 함수를 노출할 수 있도록 합니다. 하지만 이로 인해 불충분한 권한 확인이나 입력 유효성 검사로 인한 위험이 증가할 수 있습니다. Convex의 모범 사례 이 점을 명확히 강조하며 다음과 같이 권고합니다. “모든 공공 시설에 대해 어떤 형태든 접근 제어 시스템을 사용하십시오.”RPC 아키텍처 자체가 기본적으로 안전하지 않은 것은 아니지만, 엄격한 접근 제어, 세심한 유효성 검사, 그리고 문서화된 모범 사례 준수가 필요합니다.

OpenClaw 에이전트가 보안 위험이 될 수 있습니다.

OpenClaw의 강점은 자율성, 즉 사람의 개입 없이 스킬을 검색, 평가 및 설치할 수 있는 능력에 있습니다. 그러나 이러한 자율성은 위험을 내포하기도 합니다. 엄격한 검증 및 검사 메커니즘이 없다면, 에이전트의 자율적인 의사 결정이 의도치 않게 공격 표면을 확장할 수 있습니다.

AI 에이전트는 그 자체로 고유한 정체성을 지닌다.

AI 에이전트는 고유한 정체성을 가지며, 동일한 수준의 정체성이 요구됩니다. 발견, 실시간 제어 및 자세 강화 기존의 인간 사용자와 비인간 신원을 모두 포함합니다. 모든 에이전트는 인간 소유자에게 매핑되어야 하며, 접근 정책을 정의하고 매핑해야 합니다. 결과적으로 에이전트는 명시적으로 허용된 작업만 수행할 수 있습니다. 고정된 권한이나 우회는 없습니다.

정보 공개 및 해결

해당 취약점은 영향 및 기술적 세부 정보와 함께 OpenClaw 보안 팀에 보고되었습니다. 팀은 신속하게 대응했으며, 전 과정에 걸쳐 적극적으로 협력하여 문제를 해결했습니다. 24시간 미만 그리고 해당 수정 사항을 프로덕션 환경에 배포했습니다(OpenClaw의 수석 개발자인 Peter Steinberger의 커밋 참조). 여기에서 확인하세요). 

우리는 신원 보안을 한층 더 강화하기로 했습니다.

무엇이 가능한지 알아보세요.

데모를 설정하여 확인하세요 Silverfort 실제 사용 중인 ID 보안 플랫폼입니다.

새로운 영웅 (1)

Silverfort Fabrix Security를 ​​인수합니다.

런타임 시 자율적인 ID 보안 제공

심층 컨텍스트와 AI의 속도를 활용하여 모든 사람, 기계 및 에이전트의 신원을 보호하도록 설계된 최초의 자율 런타임 액세스 제어 엔진을 개척했습니다.