Chiến dịch social engineering lạm dụng plugin Obsidian phát tán trojan mới
(cyber.netsecops.io)- Đã phát hiện một chiến dịch nhắm mục tiêu ở mức độ cao, nhằm vào những người làm trong lĩnh vực tài chính và tiền mã hóa, vũ khí hóa tính năng shared vault của ứng dụng ghi chú Obsidian để phát tán một trojan truy cập từ xa (RAT) mới chưa từng được ghi nhận trước đó
- Kẻ tấn công giả mạo nhà đầu tư mạo hiểm trên LinkedIn và Telegram để xây dựng lòng tin, sau đó dụ nạn nhân vào một shared vault Obsidian độc hại
- Khi nạn nhân tự tay chấp thuận đồng bộ community plugins, mã độc sẽ được thực thi; trên Windows, loader PHANTOMPULL được thả xuống qua PowerShell, còn trên macOS là qua AppleScript
- RAT PHANTOMPULSE trích xuất động địa chỉ máy chủ C2 từ dữ liệu giao dịch trên blockchain Ethereum, giúp nó có khả năng chống lại các phương thức takedown truyền thống ở mức cao
- Đây là một cuộc tấn công đa nền tảng hỗ trợ cả Windows và macOS, cho phép điều khiển từ xa toàn diện như ghi lại thao tác bàn phím, chụp ảnh màn hình, đánh cắp tệp và thực thi lệnh tùy ý
Tổng quan mối đe dọa
- Cuộc tấn công này, được định danh là REF6598, là một chiến dịch social engineering nhiều giai đoạn
- Tác nhân đe dọa tiếp cận mục tiêu trên các nền tảng networking nghề nghiệp bằng cách giả làm nhà đầu tư mạo hiểm, rồi chuyển cuộc trò chuyện sang nhóm Telegram riêng tư
- Mồi nhử chính là lời mời cộng tác thông qua Obsidian shared vault được lưu trữ trên đám mây
- Khi nạn nhân mở shared vault, họ bị dẫn dụ kích hoạt tính năng đồng bộ "Installed community plugins"
- Việc chấp thuận này phải được thực hiện thủ công, và đây là tác nhân kích hoạt lây nhiễm then chốt
- Khi được bật, các phiên bản đã bị chỉnh sửa độc hại của những plugin hợp pháp có trong shared vault (
Shell Commands,Hider) sẽ được chạy
Phân tích kỹ thuật
- Chuỗi tấn công trên Windows và macOS có khác biệt nhỏ nhưng tuân theo cùng một nguyên lý
- Truy cập ban đầu (T1566.002): Dùng social engineering trên LinkedIn/Telegram để dụ nạn nhân mở một Obsidian shared vault độc hại
- Thực thi (T1204.002): Thao túng người dùng kích hoạt community plugins trong Obsidian, rồi thực thi script độc hại qua plugin
Shell Commandsđã bị chỉnh sửa - Staging: Trên Windows, script PowerShell được chạy để thả một loader tên là PHANTOMPULL; trên macOS, quá trình tương tự diễn ra qua AppleScript
- Phân phối payload: Loader PHANTOMPULL nạp trực tiếp RAT PHANTOMPULSE vào bộ nhớ làm payload cuối cùng để né tránh cơ chế phát hiện dựa trên tệp (T1055 process injection)
- Giao tiếp C2 (T1102.002): PHANTOMPULSE truy vấn blockchain Ethereum để lấy giao dịch mới nhất của một địa chỉ ví được hardcode, từ đó trích xuất địa chỉ IP của máy chủ C2
- Địa chỉ IP được nhúng trong dữ liệu giao dịch, giúp triển khai kênh liên lạc C2 phi tập trung và chống kiểm duyệt
- Sau khi được kích hoạt, PHANTOMPULSE có thể ghi lại thao tác bàn phím, chụp ảnh màn hình, đánh cắp tệp và thực thi lệnh tùy ý
Đánh giá tác động
- Nếu xâm nhập thành công, kẻ tấn công sẽ giành được quyền truy cập hoàn toàn vào hệ thống của nạn nhân
- Với người làm trong ngành tài chính và tiền mã hóa, nguy cơ bao gồm rò rỉ 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 xác thực sàn giao dịch
- Tính chất đa nền tảng làm mở rộng phạm vi thiệt hại tiềm tàng
- C2 dựa trên blockchain cho thấy mức độ tinh vi cao và khiến việc vô hiệu hóa hạ tầng đe dọa trở nên rất khó khăn
Chỉ dấu quan sát an ninh mạng phục vụ phát hiện
- Giám sát tiến trình: Theo dõi xem
Obsidian.execó tạo ra các tiến trình con nhưpowershell.exe,cmd.exe,osascripthay không - Mẫu dòng lệnh:
powershell -ExecutionPolicy Bypass— phát hiện hoạt động PowerShell đáng ngờ được khởi chạy từ ứng dụng không điển hình như Obsidian - Lưu lượng mạng: Giám sát các kết nối outbound từ tiến trình không mong đợi tới node hoặc gateway blockchain Ethereum (có thể là nỗ lực của PHANTOMPULSE nhằm xác nhận địa chỉ C2)
- Đường dẫn tệp: Theo dõi việc tạo mới hoặc chỉnh sửa tệp trong thư mục
[Vault]/.obsidian/plugins/, đặc biệt là các thay đổi diễn ra ngoài marketplace plugin chính thức
Phát hiện và ứng phó
- Phân tích tiến trình (D3-PA): Triển khai quy tắc EDR để phát hiện và cảnh báo khi tiến trình Obsidian tạo ra trình thông dịch dòng lệnh (
powershell.exe,cmd.exe,bash,osascript) — đây là hành vi rất bất thường - Đào tạo người dùng: Huấn luyện nhân sự trong các ngành rủi ro cao về nguy cơ social engineering và chiến thuật lạm dụng shared vault và tính năng plugin
- Kiểm soát ứng dụng (D3-EAL): Nếu có thể, áp dụng chính sách kiểm soát ứng dụng để hạn chế cài đặt và thực thi community plugins chưa được phê duyệt trong các ứng dụng như Obsidian
- Giám sát mạng (D3-NTA): Theo dõi xem 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 có xuất hiện trên những endpoint vốn không được kỳ vọng hay không
Biện pháp giảm thiểu
- Xác minh community plugins: Cần hết sức thận trọng khi bật plugin do bên thứ ba hoặc cộng đồng phát triển trong bất kỳ ứng dụng nào; chỉ cài plugin đáng tin cậy từ marketplace chính thức và phải rà soát quyền hạn
- Tắt đồng bộ tự động với vault không đáng tin: Khi kết nối tới Obsidian vault từ nguồn lạ hoặc không đáng tin, không kích hoạt đồng bộ plugin
- Nguyên tắc đặc quyền tối thiểu: Chạy các ứng dụng như Obsidian bằng tài khoản người dùng tiêu chuẩn thay vì quyền quản trị viên để giới hạn tác động nếu bị xâm nhập
- Bảo mật endpoint: Triển khai các giải pháp EDR và antivirus mới nhất để phát hiện, ngăn chặn việc thực thi script đáng ngờ và kỹ thuật process injection
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ự