NHỮNG KẺ TẤN CÔNG RANSOMWARE GIỚI THIỆU SÁT THỦ EDR MỚI VÀO KHO VŨ KHÍ CỦA CHÚNG

Sophos phát hiện ra các tác nhân đe dọa đằng sau ransomware RansomHub sử dụng EDRKillShifter trong các cuộc tấn công

Viết bởi Andreas Klopsch

August 14, 2024

Các nhà phân tích của Sophos gần đây đã phát hiện ra một tiện ích diệt EDR mới đang được một nhóm tội phạm triển khai, những kẻ đang cố gắng tấn công một tổ chức bằng phần mềm tống tiền có tên là RansomHub. Mặc dù cuộc tấn công bằng phần mềm tống tiền cuối cùng đã không thành công, nhưng quá trình phân tích hậu quả của cuộc tấn công đã tiết lộ sự tồn tại của một công cụ mới được thiết kế để chấm dứt phần mềm bảo vệ điểm cuối. Chúng tôi gọi công cụ này là EDRKillShifter. 

Từ năm 2022, chúng tôi đã chứng kiến ​​sự gia tăng về mức độ tinh vi của phần mềm độc hại được thiết kế để vô hiệu hóa các hệ thống EDR trên hệ thống bị nhiễm, vì khách hàng ngày càng sử dụng công cụ EDR để bảo vệ các điểm cuối. Sophos trước đây đã công bố nghiên cứu về AuKill , một công cụ tiêu diệt EDR mà Sophos X-Ops phát hiện ra vào năm ngoái đang được bán thương mại trong các thị trường tội phạm. 

Trong sự cố vào tháng 5, những kẻ tấn công – chúng tôi ước tính với mức độ tin cậy vừa phải rằng công cụ này đang được nhiều kẻ tấn công sử dụng – đã cố gắng sử dụng EDRKillShifter để chấm dứt bảo vệ của Sophos trên máy tính mục tiêu, nhưng công cụ đã thất bại. Sau đó, chúng cố gắng chạy tệp thực thi ransomware trên máy mà chúng kiểm soát, nhưng cũng thất bại khi tính năng CryptoGuard của tác nhân điểm cuối được kích hoạt. 

EDRKillShifter hoạt động như thế nào 

Công cụ EDRKillShifter là một chương trình thực thi “loader” – một cơ chế phân phối cho trình điều khiển hợp lệ dễ bị lạm dụng (còn được gọi là công cụ “mang trình điều khiển dễ bị tấn công của riêng bạn” hoặc BYOVD). Tùy thuộc vào yêu cầu của tác nhân đe dọa, nó có thể phân phối nhiều loại tải trọng trình điều khiển khác nhau. 

Có ba bước trong quá trình thực thi của trình tải này. Kẻ tấn công phải thực thi EDRKillShifter bằng dòng lệnh bao gồm chuỗi mật khẩu. Khi chạy với mật khẩu đúng, tệp thực thi sẽ giải mã một tài nguyên nhúng có tên là BIN và thực thi nó trong bộ nhớ. 

Mã BIN giải nén và thực thi payload cuối cùng. Payload cuối cùng này, được viết bằng ngôn ngữ lập trình Go, sẽ loại bỏ và khai thác một trong nhiều trình điều khiển hợp pháp, dễ bị tấn công khác nhau để giành được các đặc quyền đủ để gỡ bỏ bảo vệ của công cụ EDR. 

Tổng quan cấp cao về quy trình thực hiện bộ tải

Lột bỏ lớp đầu tiên 

Phân tích hời hợt cho thấy tất cả các mẫu đều chia sẻ cùng một dữ liệu phiên bản. Tên tệp gốc là Loader.exe và tên sản phẩm của nó là ARK-Game. (Một số thành viên của nhóm nghiên cứu suy đoán rằng tác nhân đe dọa cố gắng ngụy trang tải trọng cuối cùng thành một trò chơi máy tính phổ biến có tên là ARK: Survival Evolved.)  

Thuộc tính ngôn ngữ của tệp nhị phân là tiếng Nga, cho biết tác giả phần mềm độc hại đã biên dịch tệp thực thi trên máy tính có cài đặt bản địa hóa tiếng Nga. 

Thông tin phiên bản của EDRKillShifter như được hiển thị trong CFF Explorer

Tất cả các mẫu đều yêu cầu mật khẩu 64 ký tự duy nhất được truyền đến dòng lệnh. Nếu mật khẩu sai (hoặc không được cung cấp), lệnh sẽ không thực thi. 

Việc thực thi sẽ không thành công nếu người dùng không cung cấp đúng mật khẩu vào bảng điều khiển khi chương trình thực thi

Khi được thực thi, EDRKillShifter tải một tài nguyên được mã hóa có tên BIN, được nhúng bên trong chính nó, vào bộ nhớ. Nó cũng sao chép dữ liệu đó vào một tệp mới có tên Config.ini và ghi tệp đó vào cùng một vị trí hệ thống tệp nơi tệp nhị phân được thực thi.  

Sau đó, mã tải sẽ phân bổ một trang bộ nhớ mới bằng VirtualAlloc và ghi nội dung được mã hóa vào trang mới được phân bổ. Sau đó, phần mềm độc hại xóa tệp config.ini và tiến hành giải mã tập hợp các tải trọng tiếp theo – trình điều khiển có thể lạm dụng và tệp nhị phân Go. Trình tải sử dụng hàm băm SHA256 của mật khẩu đầu vào làm khóa giải mã của các tải trọng lớp thứ hai. 

Mã giả của chương trình giải mã lớp thứ hai của phần mềm độc hại EDRKillShifter

Nếu phần mềm độc hại giải mã thành công dữ liệu lớp thứ hai, nó sẽ tạo một luồng mới và bắt đầu thực thi trong luồng đó. 

Tải EDR killer cuối cùng vào bộ nhớ 

Giai đoạn thứ hai được che giấu thông qua việc sử dụng kỹ thuật mã tự sửa đổi. Trong thời gian chạy, lớp thứ hai thay đổi các lệnh của chính nó. Vì các lệnh thực thi thực tế chỉ được tiết lộ trong quá trình thực thi, nên cần có thêm công cụ hoặc mô phỏng để phân tích.  

Hình bên dưới minh họa thêm về kỹ thuật này. Phần đầu tiên cho thấy sự khởi đầu của lớp mã tự sửa đổi. Tất cả các lệnh sau lệnh gọi đầu tiên trong quá trình tháo rời đều vô nghĩa tại thời điểm này. Nếu chúng ta xem lại cùng một khối lệnh sau khi thực hiện lệnh gọi đầu tiên, chúng ta sẽ thấy một tập lệnh khác. Lệnh gọi đầu tiên sửa đổi tập lệnh tiếp theo, sau đó sửa đổi tập lệnh tiếp theo, v.v.  

EDRKillShifter sử dụng mã tự sửa đổi để thay đổi mọi lệnh tiếp theo

Mục đích duy nhất của lớp giải mã cuối cùng là tải dữ liệu cuối cùng vào bộ nhớ một cách động và thực thi nó. 

Phân tích tải trọng cuối cùng 

Tất cả các mẫu chúng tôi phân tích đều thực thi một biến thể EDR killer khác nhau trong bộ nhớ. Tất cả chúng đều được viết bằng Go và được làm tối nghĩa (có thể thông qua việc sử dụng một công cụ nguồn mở có tên gobfuscate ) . Các trình làm tối nghĩa là các công cụ được thiết kế để cản trở kỹ thuật đảo ngược. Có thể có những lý do chính đáng để các kỹ sư phần mềm làm tối nghĩa phần mềm, chẳng hạn như để ngăn chặn đối thủ cạnh tranh đánh cắp tài sản trí tuệ. Tuy nhiên, tác giả phần mềm độc hại cũng sử dụng các trình làm tối nghĩa để khiến các nhà nghiên cứu bảo mật khó phân tích phần mềm độc hại hơn. 

Hầu hết các kỹ sư đảo ngược đều dựa vào dữ liệu được che giấu này khi phân tích phần mềm độc hại được viết bằng Go, nhưng trong trường hợp này, dữ liệu chính này bị che giấu trong mã đã biên dịch. Một số thông tin này bao gồm: 

  • Chuỗi được mã hóa. Chúng sẽ được giải mã trong thời gian chạy. 
  • Thông tin phiên bản Go đã mất. Rất nhiều công cụ kỹ thuật đảo ngược nguồn mở dựa vào thông tin phiên bản Go này để xây dựng lại các cấu trúc trong quá trình phân tách. 
  • Thông tin gói hữu ích hoặc đường dẫn gói sẽ được mã hóa hoặc loại bỏ khỏi phần mềm độc hại cuối cùng. 

Tuy nhiên, chúng tôi có thể trích xuất thông tin có giá trị bằng cách sử dụng công cụ GoReSym từ Mandiant. 

Điểm tương đồng giữa các tải trọng cuối cùng 

Tất cả các trình diệt EDR chưa giải nén đều nhúng trình điều khiển dễ bị tấn công vào phần .data. Hành vi của chúng rất đơn giản, giống như các trình diệt EDR khác mà chúng tôi đã phân tích[ 1 ][ 2 ][ 3 ]. Điểm khác biệt lớn duy nhất giữa hai biến thể mà chúng tôi đã xem xét là trình điều khiển dễ bị tấn công được tải và khai thác. 

Khi thực hiện, cả hai biến thể đều có được các đặc quyền cần thiết để tải trình điều khiển và thả tệp sys có thể khai thác vào thư mục \AppData\Local\Temp. Phần mềm độc hại tạo ra một tên tệp ngẫu nhiên cho trình điều khiển mỗi khi chạy. 

Nhật ký Process Monitor cho thấy phần mềm độc hại thả trình điều khiển có thể lạm dụng vào thư mục TEMP

Sau khi phần mềm độc hại tạo một dịch vụ mới cho trình điều khiển, khởi động dịch vụ và tải trình điều khiển, nó sẽ đi vào một vòng lặp vô tận liên tục liệt kê các quy trình đang chạy, chấm dứt các quy trình nếu tên của chúng xuất hiện trong danh sách mục tiêu được mã hóa cứng. Hành vi này phù hợp với cả hai biến thể. 

Cũng đáng lưu ý rằng cả hai biến thể đều khai thác các trình điều khiển hợp lệ (mặc dù dễ bị tấn công), sử dụng các khai thác bằng chứng khái niệm có sẵn trên Github. Chúng tôi nghi ngờ rằng các tác nhân đe dọa đã sao chép một phần của các bằng chứng khái niệm này, sửa đổi chúng và chuyển mã sang ngôn ngữ Go. Đây là xu hướng phổ biến mà chúng tôi cũng đã quan sát thấy ở các trình diệt EDR khác, chẳng hạn như Terminator .  

Cùng một bộ nạp, tải trọng cuối cùng khác nhau 

Mẫu với SHA256 451f5aa55eb207e73c5ca53d249b95911d3fad6fe32eee78c58947761336cc60 lạm dụng trình điều khiển dễ bị tấn công cũng đã được nhìn thấy bị lạm dụng trong các cuộc tấn công và tự gọi mình là RentDrv2. Bằng chứng khái niệm để khai thác trình điều khiển này có sẵn trên Github .  

Biến thể này cũng có thể nhận thêm đối số dòng lệnh “–list”, cho phép kẻ tấn công truyền thêm danh sách tên quy trình làm mục tiêu. 

Biến thể đầu tiên cũng có thể chấp nhận các đối số dòng lệnh bổ sung làm đầu vào, bao gồm danh sách tùy chỉnh các quy trình cần nhắm mục tiêu

Ngược lại, biến thể với SHA256 d0f9eae1776a98c77a6c6d66a3fd32cee7ee6148a7276bc899c1a1376865d9b0 lại lợi dụng một trình điều khiển dễ bị tấn công được biết đến có tên là ThreatFireMonitor, một thành phần của một gói giám sát hệ thống đã lỗi thời. Một bằng chứng về khái niệm cho trình điều khiển cụ thể này cũng có sẵn trên Github .

Ánh xạ EDRKillShifter vào bối cảnh mối đe dọa lớn hơn 

Tải trọng cuối cùng được nhúng vào trình tải thay đổi theo từng sự cố (và có lẽ là từ người tạo ra nó). Nếu chúng ta thử ánh xạ EDRKillShifter vào bối cảnh mối đe dọa lớn hơn, thì cũng có khả năng trình tải và tải trọng cuối cùng được phát triển bởi các tác nhân đe dọa riêng biệt. 

Bán trình tải hoặc trình che giấu là một hoạt động kinh doanh béo bở trên dark net. Sophos X-Ops nghi ngờ rằng mục đích duy nhất của trình tải là triển khai tải trọng BYOVD cuối cùng và tải trọng này có thể đã được mua trên dark net. Sau đó, các tải trọng EDR killer cuối cùng chỉ được phân phối bởi chính trình tải, bao gồm lớp 1 và 2 mà chúng tôi đã mô tả trong phân tích ở trên. 

Ví dụ về quảng cáo công cụ che giấu được bán trên diễn đàn tội phạm dark net

Điều đáng lưu ý là chúng tôi không thể xác nhận giả thuyết này vào thời điểm này. 

Biện pháp giảm thiểu và tư vấn

Sophos hiện phát hiện EDRKillShifter là Troj/KillAV-KG . Hơn nữa, các quy tắc bảo vệ hành vi bảo vệ chống lại việc trốn tránh phòng thủ và leo thang đặc quyền chặn các cuộc gọi hệ thống này đi qua. Các doanh nghiệp và cá nhân cũng có thể thực hiện các bước bổ sung để bảo vệ máy của họ khỏi việc trình điều khiển lạm dụng: 

  • Sophos X-Ops khuyến cáo bạn nên kiểm tra xem sản phẩm bảo mật điểm cuối của bạn có triển khai và kích hoạt bảo vệ chống giả mạo hay không. Tính năng này cung cấp một lớp mạnh mẽ chống lại loại tấn công như vậy. Nếu bạn sử dụng sản phẩm Sophos nhưng hiện tại không bật bảo vệ chống giả mạo Sophos, hãy bật ngay hôm nay. 
  • Thực hành vệ sinh mạnh mẽ cho các vai trò bảo mật Windows. Cuộc tấn công này chỉ có thể xảy ra nếu kẻ tấn công leo thang các đặc quyền mà chúng kiểm soát hoặc nếu chúng có thể có được quyền quản trị viên. Việc tách biệt giữa các đặc quyền của người dùng và quản trị viên có thể giúp ngăn chặn kẻ tấn công dễ dàng tải trình điều khiển. 
  • Luôn cập nhật hệ thống của bạn. Từ năm ngoái, Microsoft đã bắt đầu đưa ra các bản cập nhật hủy chứng nhận các trình điều khiển đã ký được biết là đã bị lạm dụng trong quá khứ.