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

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