1 điểm bởi GN⁺ 2 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Chiến dịch REF6598 phát tán RAT PHANTOMPULSE thông qua kho lưu trữ chia sẻ của Obsidian
  • Mục tiêu là những người làm trong lĩnh vực tài chính và tiền mã hóa trên Windows·macOS, bị dụ dỗ qua LinkedIn và Telegram
  • Việc lây nhiễm bắt đầu khi người dùng tự kích hoạt đồng bộ plugin cộng đồng từ kho lưu trữ chia sẻ
  • Các plugin Shell CommandsHider độc hại chạy script, sau đó PHANTOMPULL nạp RAT
  • PHANTOMPULSE kiểm tra địa chỉ C2 qua giao dịch Ethereum, khiến việc chặn trở nên khó khăn hơn

Chuỗi tấn công

  • Truy cập ban đầu và thực thi

    • Chiến dịch REF6598 lạm dụng ứng dụng ghi chú Obsidian để phát tán trojan truy cập từ xa (RAT) chưa từng được ghi nhận trước đây là PHANTOMPULSE
    • Kẻ tấn công giả làm người có liên quan đến quỹ đầu tư mạo hiểm, tiếp cận mục tiêu trên các nền tảng kết nối nghề nghiệp rồi chuyển cuộc trò chuyện sang nhóm Telegram riêng tư
    • Với danh nghĩa hợp tác, chúng dụ nạn nhân tham gia một vault Obsidian dùng chung được lưu trữ trên đám mây
    • Bước truy cập ban đầu này tương ứng với MITRE ATT&CK T1566.002 Spearphishing Link
    • Việc lây nhiễm bắt đầu khi nạn nhân chủ động bật tính năng đồng bộ “Installed community plugins” trong Obsidian
    • Vault chia sẻ chứa các phiên bản độc hại của plugin Obsidian hợp lệ là Shell CommandsHider, và việc bật plugin cộng đồng sẽ dẫn tới thực thi mã
    • Plugin Shell Commands đã bị chỉnh sửa sẽ chạy script độc hại
    • Giai đoạn dụ người dùng thao tác để chạy tệp độc hại tương ứng với T1204.002 Malicious File
  • Các bước lây nhiễm trên Windows và macOS

    • Trên Windows, plugin độc hại chạy script PowerShell, và script này thả trình nạp PHANTOMPULL
    • Trên macOS, quy trình tương tự diễn ra qua AppleScript
    • Sau đó PHANTOMPULL giải mã và thực thi payload cuối cùng là RAT PHANTOMPULSE
    • PHANTOMPULSE thực thi payload cuối trực tiếp trong bộ nhớ để né phát hiện dựa trên tệp, điều này liên quan tới T1055 Process Injection

Chức năng của PHANTOMPULSE và cách thức C2

  • Sau khi được kích hoạt, PHANTOMPULSE có thể ghi lại phím gõ, chụp màn hình, lấy cắp tệp và chạy lệnh tùy ý
  • Liên lạc C2 được thiết lập theo cách tương ứng với T1102.002 Bidirectional Communication
  • PHANTOMPULSE truy vấn các giao dịch Ethereum mới nhất của một địa chỉ ví được mã hóa cứng
  • Địa chỉ IP của máy chủ C2 được nhúng trong dữ liệu giao dịch đó, và mã độc dùng thông tin này để xác định máy chủ nhận lệnh
  • Cách làm này tạo ra cơ chế xác định địa chỉ C2 phi tập trung và khó kiểm duyệt, khiến việc vô hiệu hóa hạ tầng đe dọa trở nên khó khăn

Tác động

  • Nếu lây nhiễm thành công, kẻ tấn công có thể giành toàn quyền truy cập vào hệ thống của nạn nhân
  • Người làm trong lĩnh vực tài chính và tiền mã hóa có thể bị đánh cắp dữ liệu doanh nghiệp nhạy cảm, tài sản trí tuệ, chiến lược giao dịch, khóa ví tiền mã hóa và thông tin đăng nhập sàn giao dịch
  • Kiến trúc nhắm tới cả Windows lẫn macOS làm mở rộng phạm vi nạn nhân tiềm năng
  • Việc dùng C2 dựa trên blockchain cho thấy mức độ tinh vi cao và khiến việc gây gián đoạn hạ tầng đe dọa khó hơn

Chỉ dấu phát hiện

  • Tiến trình

    • Obsidian.exe
    • Cần giám sát xem Obsidian có sinh ra các tiến trình con như powershell.exe, cmd.exe, osascript hay không
  • Mẫu dòng lệnh

    • powershell -ExecutionPolicy Bypass
    • Việc PowerShell được khởi chạy từ ứng dụng không điển hình như Obsidian là tín hiệu đáng ngờ
  • Lưu lượng mạng

    • Cần theo dõi các kết nối đi tới node hoặc gateway blockchain Ethereum từ những tiến trình không được dự kiến
    • Những kết nối như vậy có thể là hành vi PHANTOMPULSE đang xác định địa chỉ C2
  • Đường dẫn tệp

    • [Vault]/.obsidian/plugins/
    • Cần kiểm tra việc tạo mới hoặc chỉnh sửa tệp trong thư mục plugin Obsidian ngoài marketplace plugin chính thức

Phát hiện và ứng phó

  • Giám sát tiến trình: Cần có quy tắc EDR để phát hiện và cảnh báo khi tiến trình Obsidian chạy các trình thông dịch dòng lệnh như powershell.exe, cmd.exe, bash, osascript
  • Đào tạo người dùng: Người dùng trong các ngành rủi ro cao cần nhận thức được nguy cơ từ kỹ thuật social engineering và việc lạm dụng các tính năng công cụ cộng tác như vault chia sẻ và plugin
  • Kiểm soát ứng dụng: Khi có thể, nên dùng chính sách kiểm soát ứng dụng để hạn chế cài đặt và chạy các plugin cộng đồng chưa được phê duyệt trong những ứng dụng như Obsidian
  • Giám sát mạng: Cần theo dõi các truy vấn DNS bất thường liên quan đến dịch vụ blockchain hoặc kết nối IP trực tiếp từ các endpoint mà hoạt động này là không mong đợi

Biện pháp giảm thiểu

  • Xác minh plugin cộng đồng: Cần đặc biệt thận trọng khi bật plugin do bên thứ ba hoặc cộng đồng phát triển trong mọi ứng dụng, chỉ cài từ marketplace chính thức đáng tin cậy và xem xét quyền hạn của plugin
  • Tắt đồng bộ tự động với vault không đáng tin cậy: Không nên bật đồng bộ plugin khi kết nối với vault Obsidian từ nguồn không rõ ràng hoặc không đáng tin
  • Nguyên tắc đặc quyền tối thiểu: Các ứng dụng như Obsidian nên chạy bằng quyền người dùng tiêu chuẩn thay vì quyền quản trị để hạn chế tác động khi bị xâm phạm
  • Bảo mật đầu cuối: Triển khai EDR và giải pháp antivirus mới nhất để phát hiện và chặn việc thực thi script đáng ngờ cũng như kỹ thuật tiêm tiến trình

Ánh xạ giảm thiểu theo MITRE ATT&CK

  • User Training
    • Huấn luyện người dùng nhận biết các chiến thuật social engineering và nghi ngờ những lời mời hợp tác không được yêu cầu là biện pháp phòng thủ chính trước vector tấn công này
  • Execution Prevention
    • Dùng kiểm soát ứng dụng để ngăn các ứng dụng như Obsidian chạy script như PowerShell có thể cắt đứt chuỗi tấn công
    • Ánh xạ D3FEND: D3-EAL
  • Software Configuration
    • Cấu hình ứng dụng để vô hiệu hóa cài đặt plugin bên thứ ba hoặc yêu cầu phê duyệt nghiêm ngặt sẽ giúp giảm bề mặt tấn công
    • Ánh xạ D3FEND: D3-ACH

Tài liệu tham khảo

1 bình luận

 
Ý kiến trên Hacker News
  • Tôi là CEO của Obsidian. Một bản cập nhật lớn về bảo mật plugin sẽ sớm ra mắt, và tôi nghĩ nó sẽ giải quyết được nhiều lo ngại được nêu trong chủ đề này
    Đây là vấn đề khó, nhưng chúng tôi đang xử lý. Tuy vậy, tiêu đề này gây hiểu nhầm. Bài viết nói về một cuộc tấn công social engineering trong đó người dùng phải tự tay từ chối nhiều cảnh báo an toàn của Obsidian, và theo những gì tôi biết thì mới chỉ ở mức proof-of-concept, chưa thấy báo cáo thiệt hại thực tế nào

    • Tôi đã nói từ vài năm trước rằng plugin không an toàn. Tôi vẫn nhớ rất rõ việc bị công kích trên Discord khi nói rằng plugin có quyền truy cập toàn bộ ổ đĩa. Quá muộn rồi
    • Vậy bây giờ dù plugin đang được bật, sẽ có tùy chọn chuyển thư mục .obsidian ra ngoài vault và mặc định bỏ qua thư mục đó bên trong vault chứ?
    • Tôi không biết sẽ khó đến mức nào, nhưng thêm hộp thoại quyền hạn kiểu Android có lẽ sẽ giúp ích rất nhiều. 99% plugin Obsidian không cần quyền truy cập toàn bộ ổ đĩa, cũng không cần truy cập Internet
    • Mã nguồn client được công khai cũng sẽ giúp giải tỏa nhiều lo ngại
    • “Chủ động từ chối nhiều cảnh báo an toàn” nghĩa là các popup kiểu đó à? Phần lớn mọi người gần như sẽ bấm chấp nhận mà không nghĩ ngợi gì
      Tôi nghĩ plugin/extension về cơ bản nên khó chạy hơn một chút. Tôi hiểu việc thêm rào cản trước khi dùng plugin sẽ tạo ma sát cho người dùng, nhưng tôi không nghĩ thực sự có cách nào để chạy mã tùy ý chưa được kiểm duyệt một cách an toàn nếu không có sandbox hay các giới hạn khác
  • Đây là một tiêu đề gây hiểu nhầm. Nó khiến người ta tưởng như đây là một vụ tấn công chuỗi cung ứng khác, nơi một plugin hợp lệ bị chiếm đoạt để phát tán malware
    Thực tế là nạn nhân được mời vào cộng tác trong một vault đã đồng bộ, và bên trong vault đó đã được cài sẵn một plugin không chính thức dùng để chuyển RAT. Đó là câu chuyện hoàn toàn khác

    • Gây hiểu nhầm ở chỗ nào?
      Nó viết là “Novel Campaign Abuses Obsidian Note-Taking App to Target Finance and Crypto Professionals with PHANTOMPULSE RAT”. Đây là một cuộc tấn công mới, có lạm dụng Obsidian, nhắm vào một nhóm đối tượng cụ thể, và RAT nằm trong vault, nên có vẻ là diễn đạt đúng mà
  • Tôi thực sự rất thích Obsidian và dùng nó hằng ngày, nhưng tôi không dùng plugin cộng đồng vì hệ thống quyền hạn chưa đủ tốt
    Tôi mong sẽ có ngày plugin phải khai báo các quyền mà nó cần, và điều đó được hiển thị cho người dùng. Tôi tin đội ngũ Obsidian sẽ nghiêm túc xử lý vấn đề này và cũng mong xem họ sẽ đưa ra gì. Tôi có niềm tin, nhưng việc nó được thiết kế ngay từ đầu mà không có mô hình quyền hạn và sandbox tốt hơn thì thật đáng ngạc nhiên

    • Tôi bắt đầu dùng Obsidian vì đã chán phải dùng VS Code chỉ để xem file Markdown. May là tôi không cần cài plugin. Nhìn vào thì phần này có vẻ là một thiết kế khá tệ
  • “Nạn nhân được yêu cầu bật tính năng đồng bộ ‘Installed community plugins’”
    Obsidian có sẵn biện pháp bảo vệ để ngăn kiểu tấn công này, và nạn nhân đã bị thuyết phục bỏ qua nó. Đây chỉ là một vụ social engineering thành công mà thôi. Cuộc tấn công này không khai thác lỗ hổng của Obsidian hay hệ thống plugin, nên tôi không thích việc tiêu đề kiểu này kéo Obsidian xuống

    • Tôi không nghĩ vậy. https://obsidian.md/help/plugin-security#Plugin+capabilities
      “Do các giới hạn kỹ thuật, Obsidian không thể giới hạn plugin một cách đáng tin cậy vào các quyền hay mức truy cập cụ thể. Vì vậy, plugin kế thừa mức truy cập của Obsidian.”
      Plugin cộng đồng có thể truy cập file trên máy tính, kết nối Internet và thậm chí cài thêm chương trình khác. Obsidian hoàn toàn không có biện pháp bảo vệ nào; cài plugin đồng nghĩa với việc trao quyền truy cập toàn bộ vào máy tính của bạn. Chuyện này chỉ là vấn đề thời gian, và theo tôi thì việc phát hành một hệ thống plugin như vậy từ khoảng năm 2010 trở đi đã là sự bất cẩn không thể bào chữa
    • Tôi dùng Obsidian rất nhiều và rất thích nó, nhưng tôi nghĩ giá trị của công bố này là giúp lan truyền nhận thức về plugin và cho thấy đường tấn công
      Người dùng ít kinh nghiệm hơn có thể nghĩ “Chỉ là một đống file Markdown thôi mà. Chắc chẳng cần lo malware đâu”
  • Tại sao gần như mọi hệ thống plugin đều được thiết kế lỏng lẻo như vậy? Tôi tự hỏi là do không có framework phát triển plugin tốt nào cung cấp khả năng cô lập/phân quyền đúng cách nên khối lượng công việc quá lớn, hay do người ta không biết rộng rãi điều gì là cần thiết nên chỉ đến khi hệ thống của mình bị lạm dụng mới học ra. Là cả hai, hay còn lý do nào khác?

    • Cốt lõi ở đây là đánh đổi giữa tính năng và bảo mật. Bạn có thể trao cho người dùng năng lực mạnh mẽ để làm những điều hay ho, hoặc có thể loại bỏ phần lớn năng lực đáng kể đó để làm cho nó an toàn. Đa số mọi người thường chuộng tính năng hơn bảo mật
      Một vấn đề nữa là bảo mật rất khó, còn việc cấp quyền truy cập kiểu tổng quát rồi thêm vài lớp chắn cơ bản thì lại dễ
    • Bạn phải định nghĩa framework bảo mật và các thành phần mà mọi plugin sẽ cần, rồi tốn thời gian để thiết kế, triển khai, kiểm chứng và duy trì nó
      Đơn giản là bỏ qua phần đó thì dễ hơn nhiều. Nói cách khác đúng là khối lượng việc quá lớn, và chính xác hơn là cần lãnh đạo đặt trọng tâm vào bảo mật để hiểu rằng đây là nhiều việc nhưng là việc đúng cần làm
    • Tôi đoán là do thiếu nguồn lực để thiết kế web stack và interface cho tử tế. Loại phần mềm này được viết bằng các JS framework cấp cao nên về bản chất thường có pattern luồng dữ liệu không tốt, và nhiều khi chỉ đi theo cách nào làm được trong thực tế thay vì thiết kế có chủ đích
      Nếu muốn thiết kế có chủ đích, có thể phải đi xuống các lớp trừu tượng thấp hơn và duy trì custom fork của framework đó. Vì vậy có lẽ họ đã thiết kế plugin theo kiểu truyền một phần context mà ứng dụng đang dùng vào, giống như khởi tạo một thư viện. Rốt cuộc đó là cách đơn giản nhất để mọi thứ chạy được. Vụ hack được công bố không nói tới một “lỗ hổng” cụ thể nào, mà plugin Obsidian vốn luôn ở god mode, kẻ tấn công chỉ đơn giản là lừa người ta dùng nó. Việc về cơ bản để remote code execution chờ sẵn phía sau vài popup rồi cuối cùng lại đổ lỗi cho người dùng thì thật nực cười. Các nhà phát triển nên thấy xấu hổ
    • Ngay cả plugin của trình duyệt Chrome cũng có các vấn đề bảo mật tương tự. Dù có hàng chục tỷ đô la và rất nhiều kỹ sư giỏi đổ vào vẫn vậy
      Nó gần giống như xây một app store bên trong ứng dụng. Apple App Store giảm bớt ứng dụng độc hại bằng cách hạn chế rất nghiêm ngặt ai được đăng gì và còn đặt thêm rào cản trả phí
    • Tại sao hệ thống plugin lại mặc nhiên phải đồng nghĩa với sandbox?
  • Dù là social engineering đi nữa, nếu thiết kế hệ thống plugin cho phép chuyện này thì nền tảng này hoàn toàn không thể dùng như một công cụ chia sẻ
    Biết điều này cũng tốt, nhưng với tôi nó gần với “nếu muốn dùng shared Obsidian vault thì phải giữ đúng thiết lập này” hơn là “đừng bao giờ nhận shared Obsidian vault, hãy yêu cầu xuất ra văn bản thuần

  • Khi mới bắt đầu dùng Obsidian, những video YouTube tôi xem đều khuyến khích dùng plugin cộng đồng. Dù có cảnh báo như vậy, có lẽ tôi vẫn sẽ bật plugin cộng đồng
    Một nhà phát triển plugin ban đầu có thiện chí nhưng về sau có thể trở nên độc hại, và người dùng thì không thể biết. Tôi là developer và dù biết các rủi ro này, có lẽ tôi vẫn sẽ bật tùy chọn plugin cộng đồng, nên có thể là do mức chấp nhận rủi ro của tôi khá cao. Hy vọng tôi thuộc số ít và đó không phải hành vi của đa số người dùng

  • Kiểu việc này đang lan ra như một thứ hơi mang tính dịch bệnh. Không phải mọi cuộc tấn công hay exploit, đặc biệt là tấn công social engineering, đều cần một cái tên kiểu Metal Gear hay một website riêng

  • Đọc nội dung thì vấn đề không bắt đầu từ plugin trong store của Obsidian, mà bắt đầu từ một vault độc hại được dụ mở ra

  • Tôi chạy Obsidian với quyền hạn bị giới hạn. Không có truy cập mạng, không có quyền truy cập filesystem ngoài thư mục riêng của nó
    Tôi chỉ bật truy cập mạng khi cập nhật plugin/theme. Tôi cũng chạy các ứng dụng khác có thể thực thi mã không đáng tin cậy theo cách tương tự

    • Bạn có thể chia sẻ cách bạn sandbox nó không?