BẢN CẬP NHẬT CÔNG CỤ TẤN CÔNG LÀM SUY YẾU MÁY TÍNH WINDOWS

Một mã độc EDR mà Sophos X-Ops theo dõi trong ba năm vẫn tiếp tục tấn công các tổ chức bị các băng đảng ransomware nhắm tới.

Được viết bởi Andreas Klopsch

Ngày 27 tháng 8 năm 2024

Vào năm 2022 và 2023, Sophos X-Ops đã công bố nghiên cứu về một bộ công cụ phá hoại chức năng của phần mềm bảo vệ điểm cuối đang được phát triển và sử dụng kết hợp với một số băng nhóm ransomware lớn. Mandiant trước đây đã đặt tên cho công cụ này là Poortry và ứng dụng tải của nó là Stonestop.

Những người tạo ra công cụ Poortry đã xoay xở để có được các trình điều khiển cấp hạt nhân tùy chỉnh, được xây dựng có mục đích thông qua quy trình ký xác nhận của Microsoft. Sau khi chúng tôi công bố nghiên cứu của mình — và Microsoft đã đóng lỗ hổng cho phép các trình điều khiển này được ký — những người tạo ra công cụ không chỉ dừng lại. Họ đã tiếp tục thêm các tính năng và chức năng vào trình điều khiển Poortry, trong một nỗ lực liên tục nhằm tránh bị phát hiện và tìm ra những cách mới để vô hiệu hóa phần mềm bảo vệ điểm cuối và EDR.

Để giải thích về các tính năng mới trong Poortry, chúng ta hãy cùng xem xét cách trình điều khiển tương tác với hệ điều hành và cách các nhà phát triển của công cụ diệt EDR này đã phát triển công cụ của họ theo thời gian.

Trình điều khiển Windows có thể phá hoại khả năng bảo vệ như thế nào

Hầu hết các phần mềm diệt EDR đều dựa vào trình điều khiển thiết bị được tải vào nhân hệ điều hành, cho phép chúng truy cập vào các loại chức năng cấp thấp để có thể hủy kết nối và chấm dứt nhiều loại phần mềm bảo vệ khác nhau.

Trong Windows, hỗ trợ nhiều thiết bị ngoại vi và thành phần được kết nối, trình điều khiển chế độ hạt nhân được cấp quyền rộng rãi cho các loại chức năng cấp thấp này. Trong những trường hợp bình thường, các trình điều khiển này không tương tác với phần mềm hoặc phần cứng từ các công ty hoặc nhà sản xuất khác, nhưng không có sự thực thi nào đối với hành vi này. Do đó, nếu trình điều khiển hợp lệ đã ký không xác thực đúng các quy trình tương tác với nó, những kẻ giết EDR có thể khai thác một số tính năng của nó để loại bỏ các biện pháp bảo vệ.

Microsoft đã phát triển nhiều cách khác nhau để hệ điều hành của họ có thể kiểm soát việc trình điều khiển có được tải hay không, chẳng hạn như cơ chế Thực thi chữ ký trình điều khiển: Trình điều khiển phải được nhà xuất bản phần mềm mà Microsoft tin cậy ký kỹ thuật số trước khi có thể tải.

Các nhà phát triển phần mềm diệt virus EDR khai thác lỗ hổng trong mô hình tin cậy này: Họ có thể sử dụng trình điều khiển dễ bị lạm dụng đã từng được một công ty phần mềm hợp pháp phát hành; Họ cũng có thể ký trình điều khiển của riêng họ bằng chứng chỉ ký mã hợp pháp (và có nhiều cách để lấy được chứng chỉ bị đánh cắp hoặc bị rò rỉ).

Nhìn chung, có ba cách mà các nhà phát triển phần mềm EDR lạm dụng chữ ký mã:

Lạm dụng chứng chỉ bị rò rỉ

Đây là cách đơn giản nhất để xử lý vấn đề: Tìm chứng chỉ ký mã bị rò rỉ, bị đánh cắp hoặc bị xâm phạm từ một công ty hợp pháp và sử dụng chứng chỉ đó để ký trình điều khiển của bạn (hoặc lừa Cơ quan cấp chứng chỉ gốc cấp chứng chỉ cho bạn).

Đối với tất cả các phiên bản Windows ra mắt sau Windows 10 phiên bản 1607, Microsoft đã yêu cầu tất cả các nhà phát triển bên thứ ba của trình điều khiển chế độ hạt nhân phải gửi trình điều khiển của họ đến cổng thông tin dành cho nhà phát triển của Microsoft để được Microsoft ký chéo. Tuy nhiên, các trình điều khiển đã ký chéo không được Microsoft ký vẫn được phép tải nếu đáp ứng một trong những điều sau:

  • Máy tính đã được nâng cấp từ phiên bản Windows trước đó lên Windows 10, phiên bản 1607
  • Khởi động an toàn đã bị tắt trong BIOS hệ thống
  • Trình điều khiển đã được ký bằng chứng chỉ thực thể cuối được cấp trước ngày 29 tháng 7 năm 2015 liên kết với CA được ký chéo được hỗ trợ

Mặc dù bản cập nhật đã giảm thiểu nguy cơ từ các trình điều khiển được ký chéo bằng chứng chỉ bị đánh cắp, nhưng lỗ hổng thứ ba lại tạo ra cho phép kẻ tấn công sử dụng phương pháp thứ hai.

Làm giả dấu thời gian chữ ký

Để duy trì khả năng tương thích với các trình điều khiển cũ hơn, Windows tải các trình điều khiển được ký bằng “chứng chỉ thực thể cuối được cấp trước ngày 29 tháng 7 năm 2015 liên kết với CA được ký chéo được hỗ trợ”.

Khi ký trình điều khiển hạt nhân, Microsoft cung cấp cho nhà xuất bản phần mềm một công cụ có tên là signtool.exe . Ngoài việc ký tệp được cung cấp, signtool cũng kiểm tra để đảm bảo rằng chứng chỉ được cung cấp vẫn còn hiệu lực. Một cách để đảm bảo điều này là sử dụng hàm

Thông qua một loạt các hook vào các lệnh gọi API cấp thấp này bên trong hệ điều hành, kẻ tấn công có thể thay đổi quy trình ký và bỏ qua các kiểm tra này để ký trình điều khiển hạt nhân của riêng chúng. Một trong những hàm được hook trong kỹ thuật này là GetLocalTime để trả về dấu thời gian giả mạo để vượt qua các kiểm tra trong signtool.exe.

Bỏ qua việc xác nhận chữ ký của Microsoft

Phương pháp cuối cùng là thông qua quy trình ký xác nhận của Microsoft và lấy trình điều khiển hạt nhân được Microsoft ký trực tiếp. Đây có lẽ là phương pháp khó thực hiện nhất, nhưng cũng cung cấp chữ ký chứng chỉ WHQL mạnh do chính Microsoft cấp – gần như là chén thánh của chữ ký số.

Để lạm dụng phương pháp này, kẻ tấn công cần:

  • Giấy chứng nhận EV hợp lệ
  • Truy cập vào cổng thông tin dành cho nhà phát triển của Microsoft

Nếu đáp ứng được các yêu cầu này, họ có thể chuẩn bị một tệp CAB, trong đó có thông tin về tài xế, ký bằng chứng nhận EV và gửi lên bảng điều khiển.

Sau khi gửi, trình điều khiển trải qua một số lần kiểm tra để đảm bảo trình điều khiển không độc hại. Nếu trình điều khiển vượt qua các bài kiểm tra này, nó sẽ mang chữ ký “Microsoft Windows Hardware Compatibility Publisher”.

Một trong những trình điều khiển đã ký WHQL từ các cuộc tấn công năm 2022-2023

Poortry & Stonestop: Mối đe dọa đáng kể từ năm 2022

Poortry (đôi khi còn được gọi là BurntCigar) là trình điều khiển hạt nhân độc hại được sử dụng kết hợp với trình tải có tên Stonestop của Mandiant, người đầu tiên báo cáo về sự tồn tại của công cụ này. Trình điều khiển bỏ qua Driver Signature Enforcement bằng cách sử dụng bất kỳ kỹ thuật nào trong ba kỹ thuật được mô tả ở trên. Cả hai đều bị che giấu rất nhiều bởi các trình đóng gói thương mại hoặc mã nguồn mở, chẳng hạn như VMProtect, Themida hoặc ASMGuard.

Từ cuối năm 2022 đến giữa năm 2023, các biến thể Poortry mang chứng chỉ Microsoft WHQL. Tuy nhiên, do sự hợp tác giữa Sophos X-Ops và Microsoft, hầu hết các mẫu chứng thực đã ký này đã được tìm thấy và Microsoft đã hủy kích hoạt các tài khoản bị lạm dụng để ký các trình điều khiển đó.

Những người tạo ra Poortry không hề nản lòng; Thay vào đó, họ chuyển sang sử dụng phương pháp Giả mạo dấu thời gian chữ ký hoặc lấy một chứng chỉ bị rò rỉ hợp lệ.

Trong năm qua, chúng tôi đã có thể liên kết việc sử dụng Poortry với các cuộc tấn công liên quan đến ít nhất năm nhóm ransomware lớn:

  • CUBA
  • Mèo đen
  • Medusa
  • KhóaBit
  • Tiền chuộc

Từ năm 2023, chúng tôi đã quan sát thấy những kẻ tấn công liên tục sử dụng Poortry trong các cuộc tấn công. Một đặc điểm mà chúng tôi quan sát được trong nghiên cứu trước đó là những người tạo ra Poortry thường xuyên thay đổi trình đóng gói của họ, tạo ra một khối lượng các biến thể được sửa đổi đôi chút dựa trên bản gốc. Trong nghiên cứu của mình, chúng tôi đã tìm thấy nhiều biến thể được ký hiệu WHQL khác nhau, được đóng gói với các trình đóng gói thương mại hoặc phi thương mại khác nhau.

Vì địa điểm đó không mở cửa nên những người sáng tạo ra Poortry hiện triển khai các trình điều khiển được ký bằng nhiều chứng chỉ không phải của Microsoft.

Hình bên dưới minh họa dòng thời gian về tên người ký hiệu được quan sát thấy được trình điều khiển tải trọng của Poortry sử dụng trong khoảng thời gian 15 tháng.

Điều đáng nói là đôi khi chúng tôi thực hiện các quan sát của mình trong quá trình ứng phó sự cố, và đôi khi thu thập dưới dạng dữ liệu từ xa. Một điều chúng tôi có thể chắc chắn là tổng số lượng và loại chứng chỉ lớn hơn những gì chúng tôi có thể xác định chỉ bằng quan sát.

Chơi roulette chứng chỉ

Sophos, theo thời gian, đã quan sát thấy một tác nhân đe dọa triển khai các biến thể của Poortry trên các máy khác nhau trong một khu vực duy nhất trong một cuộc tấn công. Các biến thể này chứa cùng một tải trọng, nhưng được ký bằng một chứng chỉ khác với trình điều khiển đầu tiên được sử dụng trong cuộc tấn công. Vào tháng 8 năm 2023, trong một cuộc điều tra của Sophos X-Ops, chúng tôi phát hiện ra rằng những kẻ tấn công đã có được quyền truy cập ban đầu thông qua một công cụ truy cập từ xa có tên là SplashTop. Ngay khi những kẻ tấn công vào mạng, chúng đã triển khai Poortry và Stonestop. Nhưng tên người ký, “bopsoft”, đã được biết đến là một chứng chỉ bị đánh cắp và đã bị chặn bằng một quy tắc hành vi.

Trong vòng 30 giây sau lần thử cuối cùng sử dụng mã có chữ ký của “Bopsoft”, những kẻ tấn công đã tải một trình điều khiển Poortry khác, lần này được ký bởi “Evangel Technology (HK) Limited”. Máy chủ đã nhanh chóng bị cô lập và cuộc tấn công đã bị ngăn chặn.

Chuyển đổi từ EDR killer sang EDR wiper

Vào tháng 7 năm 2024, khi tham gia vào một sự cố mà kẻ thù cố gắng triển khai ransomware RansomHub, Sophos CryptoGuard đã ngăn chặn nỗ lực mã hóa dữ liệu khi các nhà phân tích đóng các điểm truy cập của kẻ tấn công. Một phân tích sau sự cố cho thấy hai tệp thực thi bổ sung đã được thả vào nhiều máy trước cuộc tấn công ransomware cuối cùng:

<d>\Users\<u>\desktop\c7iy3d.exe

<d>\Users\<u>\appdata\local\temp\usnnr.sys

Thông qua sự kết hợp của phân tích tĩnh và động, chúng tôi xác định các tệp là Poortry và Stonestop. Trong số những điểm khác biệt mà chúng tôi quan sát được giữa phiên bản trước và phiên bản này, Poortry hiện cũng có thể xóa hoàn toàn các thành phần EDR quan trọng, thay vì chỉ chấm dứt các quy trình của chúng.

Trend Micro đã báo cáo vào năm 2023 rằng Poortry đã phát triển khả năng xóa tệp khỏi ổ đĩa, nhưng đây là lần đầu tiên chúng tôi quan sát thấy tính năng này được sử dụng trong một cuộc tấn công.

Nhìn kỹ hơn vào các biến thể mới nhất

Cả tệp thực thi Stonestop và trình điều khiển Poortry đều được đóng gói và làm tối nghĩa. Trình tải này được làm tối nghĩa bởi trình đóng gói nguồn đóng có tên là ASMGuard, có trên Github.

Trình điều khiển được ký bằng chứng chỉ mang tên người ký “FEI XIAO.” Sophos X-Ops rất tự tin rằng dấu thời gian chữ ký đã được làm giả để ký trình điều khiển. Đáng chú ý, nó cố gắng ngụy trang bằng cách sử dụng cùng thông tin trong bảng thuộc tính của nó như một trình điều khiển (idmtdi.sys) cho một phần mềm có sẵn trên thị trường, Internet Download Manager của Tonec Inc. Nhưng đó không phải là trình điều khiển của gói phần mềm này – những kẻ tấn công chỉ sao chép thông tin từ nó.

Phiếu thuộc tính trình điều khiển PoorTry có ngày hiệu lực trước khi nó được tạo ra hơn một thập kỷ

Để giải thích rõ hơn, chúng tôi chia luồng thực hiện thành ba giai đoạn riêng biệt.

Giai đoạn khởi tạo

Trong các sự cố mà chúng tôi theo dõi, tác nhân đe dọa thả Poortry và Stonestop cùng nhau vào cùng một thư mục. Khi thực thi, Stonestop sẽ kiểm tra trình điều khiển tương ứng trong thư mục hiện tại.

Thông báo lỗi hiển thị khi trình tải không kết nối được với trình điều khiển hạt nhân.

Tên tệp và tên thiết bị của trình điều khiển đều được mã hóa cứng vào trình tải. Khi bắt đầu, trình tải sẽ lấy xử lý của trình điều khiển hạt nhân độc hại và bắt đầu bắt tay bằng cách gửi chuỗi được mã hóa cứng đến trình điều khiển thông qua lệnh gọi API DeviceIoControl .

Nhìn chung, giao tiếp giữa các thành phần diễn ra thông qua API DeviceIoControl này. Mỗi tính năng do thành phần chế độ hạt nhân cung cấp được kích hoạt bằng cách gửi một mã IOCTL khác nhau. Các biến thể trước đó giao tiếp thông qua trình xử lý IRP_MJ_DEVICE_CONTROL. Biến thể hiện tại sử dụng trình xử lý IRP_MJ_MAXIMUM_FUNCTION để nhận các gói yêu cầu I/O.

Điều đáng nói là các ánh xạ từ mã IOCTL sang tính năng đã thay đổi kể từ lần phân tích cuối cùng của chúng tôi. Ví dụ, lệnh để hủy một quy trình cụ thể theo ID quy trình được kích hoạt bằng cách gửi gói yêu cầu I/O có mã 0x222094. Mẫu mới nhất ánh xạ mã IOCTL 0x222144 sang cùng chức năng.

Kể từ báo cáo năm 2023 của Trend Micro, các nhà phát triển của Poortry đã tăng số lượng mã IOCTL có thể nhận được từ 10 lên 22. Chúng tôi vẫn đang tiếp tục phân tích tất cả các tính năng khả dụng.

Giống như các phiên bản trước, bắt tay được khởi tạo bằng cách gửi một chuỗi được mã hóa cứng đến trình điều khiển. Khi giá trị bắt tay được chấp nhận, nó sẽ đặt một cờ trong nhị phân cho phép các chức năng của trình điều khiển độc hại.

Giai đoạn suy yếu

Giai đoạn thứ hai tập trung vào việc vô hiệu hóa các sản phẩm EDR thông qua một loạt các kỹ thuật khác nhau, chẳng hạn như xóa hoặc sửa đổi các chương trình thông báo của hạt nhân.

Trình điều khiển bảo mật sử dụng một số tính năng khác nhau do HĐH Windows cung cấp để đăng ký lệnh gọi lại khi các sự kiện cụ thể trên hệ thống Windows xảy ra. Một ví dụ là hàm PsSetCreateProcessNotifyRoutine , hàm này thêm một trình điều khiển cung cấp lệnh gọi lại khi một quy trình mới được tạo.

Việc loại bỏ các thói quen gọi lại này thường là bước quan trọng để khiến các sản phẩm EDR trở nên vô dụng. Vào năm 2022, chúng tôi cũng đã viết về một trường hợp tương tự khi ransomware BlackByte lạm dụng trình điều khiển dễ bị tấn công hợp lệ để loại bỏ các thói quen thông báo hạt nhân quan trọng.

Trong giai đoạn thứ hai, chúng tôi quan sát thấy tổng cộng bảy mã IOCTL riêng biệt được gửi đến thành phần chế độ hạt nhân. Chỉ có chức năng được ánh xạ tới 0x222400 được thực thi. Các tính năng khác đã thoát sớm do các cờ cụ thể được đặt trong nhị phân. Chúng tôi nghi ngờ rằng các chức năng không được kích hoạt là thử nghiệm, chỉ được kích hoạt trên các loại hệ thống cụ thể hoặc chỉ bị vô hiệu hóa.

Mã IOCTL và hành vi được ánh xạ của chúng như sau:

0x2220C0 (Disabled)

Khi nhận được, Poortry sẽ nhập một chương trình khởi tạo bổ sung, lấy địa chỉ của nhiều cấu trúc và chức năng quan trọng khác nhau.

0x222100 (Disabled)

Khi nhận được, Poortry cố gắng vô hiệu hóa hoặc kích hoạt lệnh gọi lại kernel thông qua việc sửa đổi cờ PspNotifyEnableMask. Đây là một thủ thuật phổ biến được rootkit sử dụng để kích hoạt hoặc vô hiệu hóa lệnh gọi lại kernel, như được giải thích trong bài viết này .

0x222104 (Disabled)

Khi nhận được mã IOCTL này, Poortry sẽ sửa đổi các lệnh gọi lại kernel của các kiểu đối tượng PsProcess, PsThread và ExDesktopObj. Đây là các cấu trúc dữ liệu chế độ kernel biểu diễn các đối tượng cụ thể trong kernel Windows. Tự giải thích, kiểu đối tượng PsProcess biểu diễn một đối tượng quy trình. Các kiểu đối tượng này cũng chứa một biến trỏ đến các lệnh gọi lại đã đăng ký cho đối tượng tương ứng.

Vì tính năng này đã bị vô hiệu hóa, chúng tôi không chắc đối thủ có thể nhắm đến việc sửa đổi các danh sách gọi lại này như thế nào. Một kịch bản có thể xảy ra là vô hiệu hóa chúng hoàn toàn bằng cách đặt các lệnh gọi lại thành một hàm tùy chỉnh không có bất kỳ chức năng nào, chỉ cần trả về ngay lập tức,

0x222108 (Disabled)

Khi nhận được, Poortry sửa đổi biến CmpCallbackCount để bật hoặc tắt lệnh gọi lại kernel registry. Biến này được sử dụng để đếm số lệnh gọi lại đã đăng ký. Chúng tôi nghi ngờ rằng nếu giá trị này được vá thành 0, các lệnh gọi lại sẽ trở nên vô dụng.

0x22210C (Disabled)

Khi nhận được, Poortry cố gắng xóa trình điều khiển fltMgr.sys khỏi thiết bị \\FileSystem\\FastFat và \\FileSystem\\Ntfs bằng cách sử dụng hàm DeviceIoDetachDevice. Hàm này thường được các trình điều khiển hợp lệ sử dụng để dọn dẹp trong quá trình tắt máy. Tuy nhiên, rootkit có thể sử dụng hàm này để ngăn các trình điều khiển mục tiêu nhận bất kỳ yêu cầu I/O nào nữa.

fltMgr.sys là trình quản lý bộ lọc trên Windows. Trình điều khiển này được sử dụng để mở rộng hoặc sửa đổi chức năng của các chức năng hiện có trên hệ thống Windows. Trình điều khiển này cũng thường được các sản phẩm EDR sử dụng.

Chúng tôi nghi ngờ rằng việc tách nó ra thông qua việc sử dụng IoDetachDevice sẽ khiến các bộ lọc được cài đặt trở nên vô dụng trên hệ thống mục tiêu.

0x2221C0 (Disabled)

Khi nhận được, Poortry nhập các chương trình con để lấy địa chỉ của các trình xử lý hàm chính của ClassPnp.sys và ntfs.sys, chẳng hạn như NtfsFsdClose hoặc NtfsFsdRead của ntfs.sys. Do đó, chúng tôi nghi ngờ rằng chương trình con này có thể được sử dụng như một chương trình con khởi tạo bổ sung để lấy các địa chỉ hàm quan trọng được các tính năng khác sử dụng.

0x222400 (Enabled)

Khi nhận được, Poortry vô hiệu hóa các lệnh gọi lại kernel đã cài đặt thông qua một loạt các kỹ thuật khác nhau. Thành phần chế độ người dùng bao gồm tên của trình điều khiển mục tiêu khi gói yêu cầu I/O được gửi.

Các lệnh gọi lại kernel được cài đặt thông qua PsSetLoadImageNotifyRoutine, PsSetCreateThreadNotifyRoutine và PsSetCreateProcessNotifyRoutine đã được vá. Ở phần mở đầu của hàm gọi lại, Poortry sửa đổi lệnh đầu tiên để trả về số không ngay lập tức khi được nhập.

Cho đến nay, chúng tôi đã xác định được các kỹ thuật sau đây để vô hiệu hóa các lệnh gọi lại hạt nhân và trình điều khiển bảo mật:

  • Cấu trúc bên trong được sử dụng bởi các hàm tương ứng PsSetLoadImageNotifyRoutine, PsSetCreateThreadNotifyRoutine và PsSetCreateProcessNotifyRoutine được lặp lại. Nếu lệnh gọi lại thuộc về trình điều khiển bảo mật được gắn thẻ, Do đó, hàm gọi lại đã đăng ký sẽ thoát ngay lập tức mà không thực hiện bất kỳ hoạt động nào theo ý định của nó.
  • Nhân Windows triển khai các cấu trúc dữ liệu quan trọng như PsProcess, PsThread và ExDesktopObject đại diện cho các thành phần cơ bản của hệ điều hành Windows. Các cấu trúc này chứa một biến có tên là CallbackList quản lý tất cả các lệnh gọi lại liên quan đến đối tượng cụ thể. Poortry lặp lại danh sách này và nếu lệnh gọi lại thuộc về trình điều khiển bảo mật được gắn thẻ, thì hàm gọi lại đã đăng ký sẽ thoát ngay lập tức mà không thực hiện bất kỳ hoạt động nào theo ý định của nó.
  • Một danh sách liên kết nội bộ được sử dụng bởi CmRegisterCallback và CmUnregisterCallback được lặp lại. Danh sách liên kết này chứa các điểm hàm đến các lệnh gọi lại đối tượng và sổ đăng ký đã đăng ký. Nếu lệnh gọi lại thuộc về trình điều khiển bảo mật được gắn thẻ, phần mở đầu của hàm sẽ được vá.
  • Poortry sử dụng hàm xuất FltEnumerateFilters từ fltMgr.sys để lặp qua các bộ lọc được áp dụng. Nếu bộ lọc thuộc về trình điều khiển bảo mật được gắn thẻ, phần mở đầu của hàm sẽ được vá.
  • Mặc dù chúng tôi không thể kích hoạt trực tiếp chức năng này, chúng tôi đã tìm thấy bằng chứng cho thấy Poortry có thể lạm dụng chức năng IoDetachDevice để tách đối tượng thiết bị khỏi ngăn xếp thiết bị của hệ thống. Trái ngược với chức năng được cung cấp bởi mã IOCTL 0x22210C, nó ít né tránh hơn và chỉ tách thiết bị nếu tên thiết bị khớp với tên đầu vào được gửi qua DeviceIoControl.

Giai đoạn dọn dẹp

Sau khi bị vô hiệu hóa, phần mềm diệt EDR sẽ nhắm đến mục tiêu chấm dứt các quy trình liên quan đến bảo mật và khiến tác nhân EDR trở nên vô dụng bằng cách xóa các tệp quan trọng khỏi đĩa.

Đầu tiên, thành phần chế độ người dùng gửi nhiều yêu cầu I/O với mã IOCTL 0x222144 đến thành phần chế độ hạt nhân, bao gồm ID tiến trình của tiến trình cần kết thúc.

Bộ tải chứa danh sách các đường dẫn được mã hóa cứng trỏ đến vị trí cài đặt sản phẩm EDR. Nó lặp lại tất cả các thư mục con và tệp trong thư mục và xóa các tệp quan trọng đối với tác nhân EDR, chẳng hạn như tệp EXE hoặc tệp DLL bằng cách gửi yêu cầu IOCTL có mã 0x222180 đến trình điều khiển. Yêu cầu đã gửi bao gồm đường dẫn của tệp cần xóa.

Đáng chú ý, thành phần chế độ người dùng có thể hoạt động ở hai chế độ:

  • Xóa các tập tin theo loại
  • Xóa các tập tin theo tên

Chúng tôi nghi ngờ rằng tác giả đã thêm các chế độ hoạt động này để đảm bảo tính linh hoạt khi nhắm đến các mục tiêu khác nhau. Chúng tôi cũng tin rằng danh sách các đường dẫn được mã hóa cứng trỏ đến các thư mục cài đặt của các sản phẩm EDR thay đổi tùy thuộc vào mục tiêu.

Kết luận

Poortry và trình tải liên quan Stonestop đã trải qua một cải tiến tính năng nghiêm trọng trong 20 tháng kể từ khi Sophos và Microsoft công bố báo cáo chung về việc kẻ giết người EDR lạm dụng cơ chế ký WHQL. Công cụ từng tương đối đơn giản để gỡ bỏ các thành phần bảo vệ điểm cuối “gây rắc rối” đã trở thành, trong chính nó, một con dao đa năng của các khả năng độc hại lạm dụng nguồn cung cấp chứng chỉ ký mã bị đánh cắp hoặc sử dụng không đúng cách gần như vô hạn để vượt qua các biện pháp bảo vệ Xác minh chữ ký trình điều khiển.

Các nhà phát triển Poortry đã biến nó thành một đặc điểm khác biệt của công cụ của họ là nó có thể làm được nhiều hơn là chỉ gỡ bỏ trình điều khiển chống giả mạo EDR hoặc bảo vệ điểm cuối. Poortry đã phát triển thành thứ gì đó giống như một rootkit cũng có các điều khiển hữu hạn đối với một số lệnh gọi API khác nhau được sử dụng để kiểm soát chức năng hệ điều hành cấp thấp. Giờ đây, nó cũng có khả năng xóa sạch kẻ thù của mình – phần mềm bảo mật – ngay khỏi đĩa như một cách để dọn đường cho việc triển khai ransomware.