- 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 Commands và Hider độ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 Commands và Hider, 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 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
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
“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
“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
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?
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ễ
Đơ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
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ổ
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í
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ự