1P by GN⁺ 12시간전 | ★ favorite | 댓글 1개
  • 금융·암호화폐 업계 종사자를 겨냥해 Obsidian 노트 앱의 공유 볼트 기능을 무기화하고, 기존에 문서화되지 않은 신종 원격 접근 트로이목마(RAT)를 배포하는 고도로 표적화된 캠페인 발견
  • 공격자는 LinkedIn과 Telegram에서 벤처 캐피털리스트로 위장해 신뢰를 쌓은 뒤, 악성 Obsidian 공유 볼트로 피해자를 유인
  • 피해자가 커뮤니티 플러그인 동기화를 수동 승인하면 악성 코드가 실행되며, Windows에서는 PowerShell, macOS에서는 AppleScript를 통해 PHANTOMPULL 로더가 드롭됨
  • PHANTOMPULSE RAT은 C2 서버 주소를 Ethereum 블록체인 트랜잭션 데이터에서 동적으로 추출해, 기존 테이크다운 방식에 높은 내성 확보
  • Windows와 macOS를 모두 지원하는 크로스 플랫폼 공격으로, 키 입력 캡처·스크린샷·파일 유출·임의 명령 실행 등 포괄적 원격 제어 가능

위협 개요

  • REF6598로 지정된 이 공격은 다단계 소셜 엔지니어링 캠페인
  • 위협 행위자가 전문 네트워킹 사이트에서 벤처 캐피털리스트로 위장해 타겟에 접근한 뒤, 비공개 Telegram 그룹으로 대화를 이동
  • 주요 미끼는 클라우드 호스팅된 Obsidian 공유 볼트를 통한 협업 초대
  • 피해자가 공유 볼트를 열면, "Installed community plugins" 동기화 기능을 활성화하도록 유도
    • 이 승인은 수동으로 이루어져야 하며, 이것이 감염의 핵심 트리거
    • 활성화 시 공유 볼트에 포함된 합법 플러그인의 악성 변조 버전('Shell Commands', 'Hider')이 실행됨

기술 분석

  • 공격 체인은 Windows와 macOS에서 약간 다르지만 동일한 원리를 따름
  • 초기 접근 (T1566.002): LinkedIn/Telegram에서 소셜 엔지니어링을 통해 악성 Obsidian 공유 볼트를 열도록 유도
  • 실행 (T1204.002): 사용자가 Obsidian 내에서 커뮤니티 플러그인을 활성화하도록 조작, 변조된 'Shell Commands' 플러그인을 통해 악성 스크립트 실행
  • 스테이징: Windows에서는 PowerShell 스크립트가 실행되어 PHANTOMPULL이라는 로더를 드롭, macOS에서는 AppleScript를 통해 유사한 프로세스 진행
  • 페이로드 전달: PHANTOMPULL 로더가 최종 페이로드인 PHANTOMPULSE RAT을 메모리에 직접 로딩하여 파일 기반 탐지를 회피 (T1055 프로세스 인젝션)
  • C2 통신 (T1102.002): PHANTOMPULSE는 하드코딩된 지갑 주소의 최신 트랜잭션을 Ethereum 블록체인에서 조회하여 C2 서버 IP 주소를 추출
    • 트랜잭션 데이터에 IP 주소가 내장되어 있어 탈중앙화되고 검열 저항적인 C2 통신 구현
  • 활성화된 PHANTOMPULSE는 키 입력 캡처, 스크린샷 촬영, 파일 유출, 임의 명령 실행 가능

영향 평가

  • 성공적 침해 시 공격자가 피해자 시스템에 완전한 접근 권한 획득
  • 금융·암호화폐 업계 종사자의 경우 민감한 기업 데이터, 지적 재산, 트레이딩 전략, 암호화폐 지갑 키 및 거래소 인증 정보 탈취 위험
  • 크로스 플랫폼 특성으로 잠재적 피해 범위 확대
  • 블록체인 기반 C2는 높은 수준의 정교함을 보여주며, 위협 인프라 차단이 매우 어려움

탐지용 사이버 관찰 지표

  • 프로세스 모니터링: Obsidian.exepowershell.exe, cmd.exe, osascript 등 자식 프로세스를 생성하는지 감시
  • 명령줄 패턴: powershell -ExecutionPolicy Bypass — Obsidian 같은 비표준 애플리케이션에서 시작된 의심스러운 PowerShell 실행 탐지
  • 네트워크 트래픽: 예상치 못한 프로세스에서 Ethereum 블록체인 노드 또는 게이트웨이로의 아웃바운드 연결 감시 (PHANTOMPULSE의 C2 주소 확인 시도 가능성)
  • 파일 경로: [Vault]/.obsidian/plugins/ 디렉터리 내 파일 생성 또는 수정 감시, 특히 공식 플러그인 마켓플레이스 외부에서의 변경

탐지 및 대응

  • 프로세스 분석 (D3-PA): Obsidian 프로세스가 명령줄 인터프리터(powershell.exe, cmd.exe, bash, osascript)를 생성할 때 탐지·알림하는 EDR 규칙 구현 — 이는 매우 이례적인 동작
  • 사용자 교육: 고위험 산업 종사자에게 소셜 엔지니어링의 위험성과 공유 볼트·플러그인 기능 악용 전술에 대해 교육
  • 애플리케이션 제어 (D3-EAL): 가능한 경우 Obsidian 같은 애플리케이션에서 승인되지 않은 커뮤니티 플러그인의 설치·실행을 제한하는 애플리케이션 제어 정책 적용
  • 네트워크 모니터링 (D3-NTA): 블록체인 서비스 관련 비정상 DNS 쿼리 또는 직접 IP 연결이 예상되지 않는 엔드포인트에서 발생하는지 감시

완화 조치

  • 커뮤니티 플러그인 검증: 모든 애플리케이션에서 서드파티 또는 커뮤니티 개발 플러그인 활성화 시 극도의 주의 필요, 공식 마켓플레이스의 신뢰할 수 있는 플러그인만 설치하고 권한을 반드시 검토
  • 신뢰할 수 없는 볼트의 자동 동기화 비활성화: 알 수 없거나 신뢰할 수 없는 소스의 Obsidian 볼트에 연결할 때 플러그인 동기화를 활성화하지 말 것
  • 최소 권한 원칙: Obsidian 같은 애플리케이션을 관리자 권한이 아닌 표준 사용자로 실행하여 침해 시 영향 범위 제한
  • 엔드포인트 보안: 최신 EDR 및 안티바이러스 솔루션을 배포하여 의심스러운 스크립트 실행과 프로세스 인젝션 기법 탐지·차단
Hacker News 의견들
  • Obsidian CEO임. 플러그인 보안에 대한 대형 업데이트가 곧 나오며, 이 스레드에서 나온 우려를 많이 해소할 수 있을 거라고 봄
    어려운 문제지만 작업 중임. 다만 제목은 오해를 부름. 이 글은 사용자가 Obsidian의 여러 안전 경고를 직접 거부해야 하는 사회공학 공격에 관한 것이고, 아는 한 개념증명 수준이며 실제 피해 보고는 보지 못했음

    • 몇 년 전부터 플러그인이 안전하지 않다고 말했음. Discord에서 플러그인이 전체 디스크 접근 권한을 가진다고 했다가 공격받았던 기억이 선명함. 너무 늦었음
    • 이제는 플러그인이 활성화돼 있어도 .obsidian 폴더를 vault 밖으로 옮기고, vault 내부의 해당 폴더를 기본적으로 무시하는 옵션이 생기나?
    • 얼마나 어려울지는 모르지만, Android 같은 권한 대화상자를 추가하면 큰 도움이 될 것 같음. Obsidian 플러그인의 99%는 전체 디스크 접근 권한도, 인터넷 접근 권한도 필요 없음
    • 클라이언트의 소스 코드 공개도 많은 우려를 해소해 줄 수 있음
    • “여러 안전 경고를 적극적으로 거부”한다는 게 팝업 같은 건가? 대부분의 사람은 그런 걸 별생각 없이 승인함
      플러그인/확장 기능은 기본적으로 실행이 조금 더 어렵게 되어야 한다고 봄. 플러그인을 쓰기 전 추가 장벽이 사용자 마찰을 만든다는 건 이해하지만, 샌드박스나 다른 제한 없이 검토되지 않은 임의 코드를 안전하게 실행하는 방법은 실제로 없다고 생각함
  • 이건 오해를 부르는 제목임. 마치 정상 플러그인이 탈취되어 악성코드를 배포한 또 다른 공급망 공격처럼 보이게 만듦
    실제로는 피해자가 동기화된 vault 협업에 초대되고, 그 vault 안에 RAT를 전달하는 비공식 플러그인이 미리 들어 있는 경우임. 완전히 다른 이야기임

    • 뭐가 오해를 부르나?
      “Novel Campaign Abuses Obsidian Note-Taking App to Target Finance and Crypto Professionals with PHANTOMPULSE RAT”라고 되어 있음. 새 공격이고, Obsidian을 악용하며, 특정 집단을 노리고, RAT가 vault에 들어 있다는 뜻이라 맞는 표현으로 보임
  • Obsidian을 정말 좋아하고 매일 쓰지만, 커뮤니티 플러그인은 권한 체계가 충분하지 않아 쓰지 않음
    언젠가 플러그인이 필요한 권한을 선언하고, 그게 사용자에게 표시되는 날을 기대함. Obsidian 팀이 이 문제에 진지하게 대응할 거라고 보고, 무엇을 내놓을지 기대함. 신뢰는 있지만, 처음부터 더 나은 권한 체계와 샌드박스 없이 설계됐다는 점은 놀랍다

    • Markdown 파일을 보려고 VS Code를 쓰는 게 지겨워져서 Obsidian을 쓰기 시작했음. 플러그인을 설치할 필요가 없어서 다행임. 보기엔 이 부분은 꽤 나쁜 설계로 보임
  • “피해자는 ‘Installed community plugins’ 동기화 기능을 켜라는 요청을 받는다”
    Obsidian에는 이런 공격을 막기 위한 보호 장치가 있고, 피해자는 그걸 무시하도록 설득당한 것임. 성공한 사회공학 사건일 뿐임. 이 공격은 Obsidian이나 플러그인 시스템의 취약점을 악용한 게 아니므로, 이런 제목 때문에 Obsidian이 끌려 내려가는 건 보기 싫음

    • 아니라고 봄. https://obsidian.md/help/plugin-security#Plugin+capabilities
      “기술적 한계 때문에 Obsidian은 플러그인을 특정 권한이나 접근 수준으로 안정적으로 제한할 수 없다. 따라서 플러그인은 Obsidian의 접근 수준을 상속한다.”
      커뮤니티 플러그인은 컴퓨터의 파일에 접근할 수 있고, 인터넷에 연결할 수 있고, 추가 프로그램도 설치할 수 있음. Obsidian에는 보호 장치가 전혀 없고, 플러그인 설치는 곧 컴퓨터에 대한 전체 접근 권한을 주는 것임. 이런 일은 시간문제였고, 2010년 무렵부터는 이런 플러그인 시스템을 출시한 것 자체가 변명의 여지 없이 부주의했다고 봄
    • Obsidian을 많이 쓰고 좋아하지만, 이 공개의 가치는 플러그인에 대한 인식을 퍼뜨리고 공격 경로를 보여주는 데 있다고 봄
      덜 숙련된 사용자는 “그냥 Markdown 파일 모음이잖아. 악성코드 걱정은 별로 안 해도 되겠지”라고 생각할 수 있음
  • 왜 거의 모든 플러그인 시스템은 이렇게 허술하게 설계되는 걸까? 제대로 된 격리/권한 기능을 제공하는 좋은 플러그인 개발 프레임워크가 없어서 일이 너무 많은 건지, 아니면 필요한 것을 널리 모르기 때문에 자기 시스템이 악용되고 나서야 배우는 건지 궁금함. 둘 다인가, 아니면 다른 이유가 있나?

    • 핵심에는 기능성과 보안의 절충이 있음. 사용자에게 강력한 능력을 주고 멋진 일을 하게 할 수도 있고, 의미 있는 능력을 대부분 제거하고 안전하게 만들 수도 있음. 보통 사람들은 보안보다 기능성을 선호함
      또 다른 문제는 보안이 어렵고, 범용 접근 권한을 주고 기본적인 가드만 추가하는 건 쉽다는 것임
    • 모든 플러그인이 필요로 할 보안 프레임워크와 구성 요소를 정의해야 하고, 그걸 설계·구현·검증·유지하는 데 시간이 듦
      그냥 그 부분을 건너뛰는 게 훨씬 쉬움. 즉 일이 너무 많은 게 맞고, 정확히는 이 작업이 많지만 올바른 일이라는 걸 이해하는 보안 중심 리더십이 필요함
    • 웹 스택과 제대로 된 인터페이스를 설계할 자원 부족 때문일 거라고 추측함. 이런 소프트웨어는 고수준 JS 프레임워크로 작성되므로 기본적으로 데이터 흐름 패턴이 좋지 않고, 의도적 설계보다 실제로 가능한 방식만 따라가는 경우가 많음
      의도적으로 설계하려면 추상화 계층을 내려가고 해당 프레임워크의 커스텀 포크를 유지해야 할 수 있음. 그래서 아마 앱이 쓰는 컨텍스트의 일부를 넘겨 라이브러리를 인스턴스화하듯 플러그인을 설계했을 것임. 결국 동작하는 가장 단순한 방식임. 공개된 해킹은 특정 “취약점”을 말하지 않지만, Obsidian 플러그인은 항상 신 모드이고, 공격자는 사람들을 속여 그걸 쓰게 한 것뿐임. 팝업 몇 개 뒤에 사실상 원격 코드 실행이 대기하고 있는데 최종적으로 사용자 탓을 하는 게 웃김. 개발자들이 부끄러워해야 함
    • Chrome 브라우저 플러그인조차 이와 비슷한 보안 문제가 있음. 수십억 달러와 많은 똑똑한 개발자가 투입되는데도 그렇다
      앱 안에 앱스토어를 만드는 것과 비슷함. Apple App Store는 누가 무엇을 게시할 수 있는지 매우 엄격하게 제한하고, 유료 장벽도 두는 방식으로 악성 앱을 줄임
    • 왜 플러그인 시스템이 곧바로 샌드박스를 의미해야 하나?
  • 사회공학이라 해도, 이런 일을 허용하는 플러그인 시스템 설계라면 이 플랫폼은 공유 도구로는 완전히 쓸 수 없음
    알아두면 좋지만, 내게는 “공유 Obsidian vault를 쓰려면 이 설정을 올바르게 유지해야 한다”가 아니라 “공유 Obsidian vault는 절대 받지 말고, 일반 텍스트 내보내기를 요구해야 한다”에 가까움

  • Obsidian을 처음 쓰기 시작했을 때 본 YouTube 영상들은 커뮤니티 플러그인 사용을 권장했음. 이런 경고가 있어도 아마 커뮤니티 플러그인을 켰을 것 같음
    처음에는 선의였던 플러그인 개발자가 나중에 악의적으로 바뀔 수도 있고, 사용자는 알 수 없음. 개발자이고 이런 위험을 알아도 커뮤니티 플러그인 옵션을 켰을 것 같으니, 내 위험 감수 성향이 높은 걸 수도 있음. 내가 소수이고 대부분의 사용자 행동이 아니길 바람

  • 이런 일이 약간 유행병처럼 번지고 있음. 모든 공격이나 익스플로잇, 특히 사회공학 공격에 Metal Gear식 이름이나 웹사이트가 필요한 건 아님

  • 내용을 읽어보면 문제는 Obsidian 스토어의 플러그인에서 시작된 게 아니라, 열도록 유도한 악성 vault에서 시작됨

  • Obsidian을 제한된 권한으로 실행함. 네트워크 접근 없음, 자체 디렉터리 밖 파일시스템 접근 없음
    플러그인/테마를 업데이트할 때만 네트워크 접근을 켬. 신뢰할 수 없는 코드를 실행할 수 있는 다른 애플리케이션도 같은 방식으로 실행함

    • 어떻게 샌드박스 처리하는지 공유해줄 수 있나?