Skip to main content

6부·24장 ClawHavoc 사례 분석

보안 사고는 늘 비슷한 말을 남긴다. "설마 그걸 믿었겠어?" 그런데 실제 사고를 뜯어보면, 사람들은 대개 바보라서 당한 게 아니다. 너무 자연스러운 흐름 속에서 당한다. ClawHavoc도 그랬다. 공식 마켓플레이스에서, 그럴듯한 이름의 스킬을 설치했고, 문서에 적힌 준비 단계를 따라 했을 뿐인데, 어느 순간 에이전트가 아니라 내 맥북과 계정과 지갑이 털려 있었다.

이 사건이 무서운 이유는 단순히 악성 스킬 숫자가 많아서가 아니다. OpenClaw 생태계에서 실제로 어떤 사고가 가능한지, 그리고 왜 "설치 편의성"이 순식간에 "공격 편의성"으로 뒤집히는지를 아주 선명하게 보여줬기 때문이다.

6부·24장 ClawHavoc 사례 분석

숫자부터 정리하자: 341, 824, 1,184

ClawHavoc를 찾아보면 숫자가 제각각이라 헷갈린다. 누군가는 341개라고 하고, 다른 글은 824개, 또 어떤 자료는 1,184개라고 말한다. 이건 서로 모순이라기보다, 조사 시점과 집계 범위가 달라서 생긴 차이다.

초기 대규모 감사에서는 ClawHub에 등록된 2,857개 스킬 중 341개가 악성으로 확인됐다. 이 가운데 335개는 거의 같은 전술을 반복한 단일 캠페인으로 묶였고, 연구진은 여기에 ClawHavoc라는 이름을 붙였다.1 이후 스캔 범위가 넓어지고 마켓이 더 커지면서 확인된 악성 스킬 수는 824개까지 늘어났다. 이 시점에는 전체 목록의 약 20%가 오염된 것으로 보고됐다.2 더 나아가 다른 후속 분석에서는 1,184개의 악성 스킬이 확인되었다고 정리한다. 즉, ClawHavoc는 "며칠 반짝 나타난 사건"이 아니라, 빠르게 증식한 공급망 공격이었다는 뜻이다.3

숫자가 커질수록 더 중요한 사실도 함께 드러난다. 사고의 본질은 몇 개가 잡혔느냐가 아니라, 그 많은 스킬이 왜 그렇게 쉽게 올라가고 설치되었느냐에 있다.

악성 스킬은 어떻게 공식 마켓에 숨어들었나

공격자는 정면승부를 하지 않았다. 이름부터 익숙하게 만들었다. youtube-summarize-pro, solana-wallet-tracker, gmail-manager 비슷한 이름들, 혹은 clawhubb, clawhubcli 같은 타이포스쿼팅 이름들이 쏟아졌다.12 바쁘게 일하는 사용자는 여기서 첫 번째로 걸려든다. 이름이 익숙하고 설명이 매끈하면, 사람은 이미 마음속으로 "검증 완료" 도장을 찍는다.

문제는 SKILL.md가 생각보다 너무 그럴듯했다는 점이다. 기능 설명도 있고, 설치 방법도 있고, 버전 히스토리도 있고, 마치 성실한 오픈소스 유지보수자가 올린 것처럼 보였다.3 하지만 진짜 페이로드는 코드보다 문서에 숨어 있었다.

많은 악성 스킬은 "Prerequisites"라는 사전 준비 단계에 함정을 심었다. 겉으로는 "이 스킬을 쓰려면 보조 유틸리티를 먼저 설치해야 한다"고 안내한다. Windows 사용자는 암호가 걸린 ZIP 파일을 받아 실행하라고 하고, macOS 사용자는 코드 스니펫 사이트에 올라온 설치 스크립트를 터미널에 붙여 넣으라고 유도했다.1 이 패턴이 무서운 이유는, OpenClaw가 직접 악성코드를 실행한 것처럼 보이지 않기 때문이다. 마지막 버튼을 누른 건 사용자 자신이다.

이 방식은 오래된 사회공학 기법인 ClickFix의 변형이다. "문제가 생겼으니 이걸 고치려면 이 명령을 실행하세요." 개발자와 인디해커에게 이 문장은 너무 익숙하다. 우리는 늘 뭔가를 고치며 살고, 터미널에 뭔가를 붙여 넣는 데 심리적 저항이 낮다. 공격자는 바로 그 습관을 파고들었다.3

AMOS 인포스틸러는 무엇을 훔쳤나

macOS 경로에서는 난독화된 셸 스크립트가 외부 서버에서 2차 페이로드를 내려받고, 최종적으로 Atomic macOS Stealer, 흔히 AMOS라고 불리는 인포스틸러를 실행하도록 설계돼 있었다.1 이 악성코드는 화려하게 파괴하지 않는다. 대신 조용히, 그리고 돈 되는 것만 잘 훔친다.

AMOS가 노린 대상은 아주 현실적이었다. 브라우저에 저장된 쿠키와 비밀번호, macOS 키체인, 텔레그램 세션, SSH 키, 문서 폴더, 그리고 60개가 넘는 암호화폐 지갑 데이터가 주요 표적이었다.1 OpenClaw를 쓰는 사람에게는 여기서 한 가지가 더 붙는다. 에이전트가 접근 가능한 API 키와 설정 파일이다. 다시 말해, 공격자는 내 노트북만 턴 게 아니라, 내 에이전트가 일하던 모든 SaaS 문도 함께 열어젖힐 수 있었다.

Windows 쪽도 덜 무섭지 않았다. 비밀번호가 걸린 ZIP 파일은 자동 분석을 피하기 좋은 포장지였고, 내부에는 키로깅과 자격 증명 탈취를 수행하는 트로이 목마가 들어 있었다.1 멀웨어가 굳이 화려할 필요는 없다. 입력한 키를 기록하고, 저장된 토큰을 읽고, 브라우저 세션만 빼내도 이미 충분히 큰돈이 된다.

여기서 운영자가 배워야 할 교훈은 단순하다. "공식 마켓에서 받은 스킬"과 "내가 직접 인터넷에서 받은 실행 파일"은 보안적으로 거의 같은 급이라는 사실이다.

더 소름 끼치는 변종: 실제로 동작하는 스킬 안의 백도어

ClawHavoc가 전부 가짜 스킬만 뿌린 것은 아니다. 일부는 정말로 기능이 작동했다. 예를 들어 Polymarket 데이터를 조회하는 것처럼 보이는 스킬은 실제 API 호출도 수행했다. 그런데 그 정상 로직 사이에 몰래 역방향 셸을 여는 코드가 숨겨져 있었다.1

이런 유형이 무서운 이유는, 사용자가 "어? 잘 되네?"라고 생각하는 순간 경계심이 풀리기 때문이다. 기능 테스트를 통과했다고 안전하다고 느끼는 것이다. 하지만 공격자 입장에서는 바로 그게 최고의 위장술이다. 100줄 중 99줄이 정상 동작이면, 마지막 1줄의 악성 호출은 눈에서 미끄러져 나간다.

일부 스킬은 더 노골적이었다. 홈 디렉터리의 환경 설정 파일을 읽어 외부 웹훅 서비스로 전송했다.3 무슨 대단한 취약점이 필요한 게 아니다. 파일 읽기 권한과 외부 전송 권한만 있으면 끝난다. 이 장면은 23장에서 본 구조적 위험이 얼마나 현실적인지 보여준다. 공격자는 에이전트의 마법을 해킹한 게 아니라, 에이전트가 원래 갖고 있던 권한을 자기 일에 썼을 뿐이다.

왜 방어선이 그렇게 쉽게 무너졌나

사후 분석은 꽤 냉정했다. 당시 ClawHub에는 게시자 검증이 없었고, 스킬 서명도 없었으며, 설치 전에 선언해야 하는 세부 권한 매니페스트도 사실상 없었다. 더 큰 문제는 스킬이 기본적으로 에이전트의 전체 권한을 상속받는 구조였다는 점이다.2 웹 검색 스킬이든, 셸 명령을 실행할 수 있는 스킬이든, 경계가 흐릿했다.

이 말은 결국 이런 뜻이다. "기능 추가" 버튼이 사실상 "에이전트 권한 위임" 버튼이었던 셈이다.

사건 뒤에는 작성자 검증, 스킬 서명, 설치 시 권한 매니페스트, 사전 스캐닝 파이프라인 같은 대응이 도입됐다.24 하지만 이런 장치가 생겼다고 해서 문제가 완전히 사라지는 것은 아니다. 자동 스캔은 알려진 악성 패턴에는 강하지만, 문서 속 사회공학 문장이나 정상 코드 속 은닉 백도어까지 완벽하게 읽어내진 못한다.4

그래서 운영 원칙은 여전히 바뀌지 않는다. 마켓이 검토해주길 기대하지 말고, 내가 격리하고 내가 승인해야 한다.

CVE-2026-25253: 악성 스킬 없이도 가능한 1-Click RCE

ClawHavoc가 공급망 공격이었다면, CVE-2026-25253은 OpenClaw 자체의 설계 결함이 어떻게 원격 코드 실행으로 이어지는지 보여준 사건이다. 영향 버전은 v2026.1.29 미만이었고, 핵심 문제는 웹 인터페이스가 URL 파라미터를 지나치게 순진하게 믿었다는 데 있었다.56

겉으로만 보면 "localhost에 띄워뒀는데 뭐가 문제지?" 싶다. 하지만 실제 공격은 바로 그 안심을 이용했다. 공격자가 악성 링크를 보낸다. 사용자가 클릭한다. 그러면 브라우저 안에서 OpenClaw Control UI가 gatewayUrl 파라미터를 읽고, 검증 없이 공격자 쪽 WebSocket 주소로 연결을 시도한다. 이 연결 과정에서 인증 토큰이 함께 전송되면, 공격자는 그 토큰을 가로챌 수 있다.57

여기서 핵심은 브라우저가 다리 역할을 한다는 점이다. 많은 사용자는 "내 게이트웨이는 로컬호스트에만 열려 있으니까 외부에서 못 건드린다"고 생각한다. 하지만 WebSocket은 일반 HTTP 요청과 다른 구석이 있어서, 악성 웹페이지가 사용자의 브라우저를 이용해 로컬 서비스와 통신하게 만들 수 있다. SOCRadar는 이 점을 두고, 로컬 네트워크 보호 장치를 피해 가는 1-Click RCE 킬체인이라고 설명했다.7

조금 더 기술적으로 풀어보면 흐름은 이렇다. 먼저 공격자는 링크 클릭만으로 토큰을 새는 방향으로 UI를 유도한다. 다음으로 탈취한 토큰을 이용해 피해자의 OpenClaw 게이트웨이에 인증된 WebSocket 세션을 맺는다. 그리고 그 세션을 통해 승인 설정을 바꾸거나 명령 실행 요청을 보내면, 결국 피해자 권한으로 셸 명령을 실행할 수 있게 된다.78 방화벽이 localhost를 지키고 있어도, 사용자의 브라우저가 안에서 문을 열어준 셈이다.

이 취약점이 특히 끔찍했던 이유는 "한 번 클릭"이라는 사용자 행위가 너무 평범하다는 점이다. 이상한 ZIP 파일도 없다. 터미널에 수상한 명령을 붙여 넣을 필요도 없다. 그냥 링크를 눌렀을 뿐인데, 내 디지털 비서가 공격자의 비서로 직업을 바꿔버린다.

두 사건을 같이 보면 보이는 것

ClawHavoc와 CVE-2026-25253은 서로 다른 종류의 사고처럼 보이지만, 실제로는 같은 약점을 다른 방향에서 찌른 사례다.

첫째, 둘 다 "공식 경로"를 악용했다. 하나는 공식 스킬 마켓이었고, 다른 하나는 공식 웹 UI였다. 즉, 사용자가 원래 하던 정상 행동 안에서 공격이 일어났다.

둘째, 둘 다 사용자 권한을 빌렸다. ClawHavoc는 사용자가 직접 악성 준비 단계를 실행하게 만들었고, CVE는 사용자의 브라우저와 세션 토큰을 악용했다. 관리자 권한을 새로 뚫은 게 아니라, 이미 있는 신뢰를 가로챈 것이다.

셋째, 둘 다 결과가 "모델 오답"에 그치지 않았다. 파일 접근, 네트워크 호출, 토큰 탈취, 셸 실행으로 이어졌다. 결국 에이전트 시스템의 진짜 위험은 모델의 환각보다 권한의 현실성에 있다.

이 사건이 운영자에게 남긴 규칙

이제 추상적인 경고를 운영 규칙으로 번역해보자.

  • 공식 마켓은 신뢰의 증거가 아니다. 공식이라는 말은 유통 경로를 뜻할 뿐, 안전 심사를 뜻하지 않는다.

  • SKILL.md는 설명서가 아니라 실행 전술 문서일 수 있다. 설치 전에 코드만 보지 말고 문서의 준비 단계, 외부 링크, 별도 다운로드 요구를 함께 봐야 한다.

  • localhost는 성벽이 아니다. 브라우저가 개입하는 순간 로컬 서비스도 공격 표면이 된다.

  • 기능 테스트 통과는 안전 확인이 아니다. 잘 동작하는 악성 스킬이 더 위험하다.

  • 감염 의심 시 "삭제"로 끝내면 안 된다. 토큰, API 키, 브라우저 세션, SSH 키까지 연쇄적으로 교체해야 한다.

이 다섯 줄을 머리에 넣어두면, 보안 뉴스의 공포가 조금은 실무 규칙으로 바뀐다.

감염이 의심될 때 가장 먼저 할 일

이런 사고를 겪고도 가장 많이 하는 실수가 있다. 수상한 스킬 하나를 삭제하고 안심하는 것이다. 하지만 인포스틸러와 토큰 탈취 사고는 이미 바깥으로 흘러나간 뒤가 진짜 시작이다.

우선 OpenClaw를 패치해야 한다. CVE-2026-25253은 v2026.1.29에서 수정되었으므로, 그보다 낮은 버전을 돌리고 있었다면 더 미룰 이유가 없다.56 다음으로는 설치한 스킬 목록을 전수 점검하고, 출처를 확인할 수 없는 스킬은 제거해야 한다. 그 뒤에는 자격 증명 회전이 따라와야 한다. LLM API 키, GitHub 토큰, 메신저 연동 토큰, 클라우드 키, SSH 키까지 범위를 넓게 잡는 편이 안전하다.4

운영체제 검사도 빼면 안 된다. macOS는 XProtect나 전용 안티멀웨어 도구로, Windows는 Microsoft Defender 전체 검사로 확인하는 것이 권고됐다.4 그리고 정말 중요한 마지막 단계는 "되짚어보기"다. 어떤 시점에 어떤 스킬을 설치했고, 그때 어떤 계정이 연결돼 있었는지 적어보면, 회전해야 할 자격 증명의 범위가 보인다.

사고 해부의 결론

ClawHavoc는 단순한 악성 플러그인 사건이 아니었다. 에이전트 생태계에서 문서, 코드, 설치 흐름, 브라우저, 토큰, 로컬 서비스가 어떻게 한 줄로 연결되는지를 보여준 교과서였다. 그리고 CVE-2026-25253은 그 줄이 악성 스킬 없이도 충분히 끊어질 수 있다는 사실을 증명했다.

결국 OpenClaw 운영에서 중요한 질문은 하나다. "이 기능이 편한가?"가 아니라 "이 편리함이 어떤 권한과 어떤 신뢰 경로 위에 서 있나?"라는 질문이다.

바로 다음 장에서는 이 질문에 대한 실전 답을 다룬다. 겁을 주는 데서 멈추지 않고, 개인 사용자가 지금 당장 적용할 수 있는 7단계 하드닝으로 넘어가 보자. 바닷가재를 계속 부려먹고 싶다면, 이제는 수조부터 튼튼하게 만들어야 한다.

참고

1ClawHavoc: 341 Malicious Clawed Skills Found by the Bot They Were Targeting

2ClawHavoc: 824 Malicious Skills Published to ClawHub

3ClawHavoc Campaign Analysis: How 1,184 Malicious Skills Passed ClawHub Review

4OpenClaw ClawHub Security: ClawHavoc Attack Analysis

5OpenClaw 1-Click RCE 취약점  SK쉴더스

6OpenClaw RCE 취약점 CVE-2026-25253 패치 완료  ZerodAI Security News  ZerodAI

7CVE-2026-25253: 1-Click RCE in OpenClaw Through Auth Token Exfiltration

8CVE-2026-25253 OpenClaw One-Click-RCE Analysis

책 목록

오픈클로 OpenClaw: 메신저 안에서 일하는 나만의 AI 에이전트

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기