Vi-rút này được cài đặt trong BIOS của PC của bạn và phá vỡ tính bảo mật của Windows | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Vi-rút này được cài đặt trong BIOS của PC của bạn và phá vỡ tính bảo mật của Windows

pepePE

Rìu Chiến Vàng
VIP User


Mặc dù chúng tôi luôn khuyên bạn nên cài đặt một chương trình chống vi-rút tốt trên máy tính của mình, chương trình này liên tục bảo vệ chúng tôi khỏi mọi loại mối đe dọa, nhưng có một số loại phần mềm độc hại nằm ngoài tầm kiểm soát của các chương trình bảo mật này. Và, khi chúng tôi bị nhiễm một trong số chúng, chúng tôi có thể gặp vấn đề nghiêm trọng đối với bảo mật của mình. Đây là những gì xảy ra với BlackLotus, chúng ta có thể coi đây là vi rút bootkit đầu tiên dành cho UEFI đã được phát hiện trên mạng.

Khi nói về vi rút hoặc phần mềm độc hại, chúng ta thường nghĩ đến các chương trình độc hại nhỏ chạy trên Windows và tìm cách chiếm quyền kiểm soát PC từ hệ thống Microsoft. Phần mềm độc hại này rất dễ phát hiện bằng cách sử dụng phần mềm chống vi-rút và tương đối dễ xóa. Tuy nhiên, một máy tính có các phần mềm khác chạy ngay cả bên dưới Windows, cho phép phần mềm độc hại kiểm soát hoàn toàn tất cả các chức năng của hệ thống và khiến nó gần như không thể xóa được. Ví dụ, chúng ta đang nói về bootkit và vi-rút UEFI.



BlackLotus có thể là virus nguy hiểm nhất
Những mối đe dọa này đã là một huyền thoại trong một thời gian dài và là mục tiêu của tất cả các loại tin tặc. Và thật không may, chúng đã trở thành sự thật. Công ty bảo mật ESET đã phát hiện các bản sao đầu tiên của BlackLotus, một bộ khởi động UEFI có khả năng tự tải vào bộ nhớ trước chính Windows và hơn nữa, nó bỏ qua tất cả các biện pháp Khởi động an toàn.

Khởi động an toàn là một tính năng bảo mật mà Windows có, cho phép hệ điều hành giám sát toàn bộ quá trình khởi động để đảm bảo rằng không có mã nào được tải mà không có chữ ký hợp lệ. Mặc dù tính năng này được thiết kế để ngăn bộ công cụ khởi động tự kiểm soát và cho phép tin tặc tải mã độc hại của riêng chúng lên, một số lỗ hổng trong Khởi động an toàn này đã được báo cáo trong một thời gian. Và cuối cùng, họ đã gây nguy hiểm cho người dùng.

Như hãng bảo mật này đã xác minh được, BlackLotus có khả năng được tải đầy đủ trên hệ thống Windows 10 hoặc Windows 11 đã kích hoạt Secure Boot, phá vỡ hoàn toàn khả năng bảo mật của hệ điều hành Microsoft. Mã của bạn thậm chí có thể có nhiều đặc quyền hơn so với phần mềm chống vi-rút hoặc bất kỳ chức năng nào khác, vì vậy nó không thể làm được gì.

Để lây nhiễm vào máy tính, phần mềm độc hại tải xuống và chạy trên Windows, sử dụng lỗ hổng bảo mật đã biết để tự cài đặt trong BIOS. Hơn nữa, nó có khả năng vô hiệu hóa các biện pháp bảo mật hệ thống bổ sung như BitLocker, Windows Defender và HVCI, khiến Windows gần như trần trụi trước tin tặc. Ngoài ra, nó cài đặt một trình điều khiển trong Kernel để bảo vệ chính nó và một trình tải xuống HTTP để có thể tải xuống các bản cập nhật và các mô-đun khác thông qua các lệnh từ xa.

Làm thế nào để tránh nó
Như chúng ta đã thấy, đây là phần mềm độc hại rất phức tạp và khó phát hiện cũng như giảm thiểu. Các chuyên gia bảo mật khuyên rằng cách tốt nhất để bảo vệ chúng ta khỏi nó là đảm bảo rằng máy tính của chúng ta luôn được cập nhật. Và cập nhật cả hệ thống và BIOS/UEFI thông qua các phương tiện chính thức để tránh kết thúc việc cài đặt trình điều khiển dễ bị tổn thương gây nguy hiểm cho bảo mật của chúng tôi.

Ý thức chung luôn là một trong những đồng minh tốt nhất. Ngoài ra, nếu chúng ta nghi ngờ, chúng ta nên mở các tệp và thư mục trong môi trường an toàn, chẳng hạn như Windows Sandbox, để giảm nguy cơ lây nhiễm.

Văn bản được dịch bằng Google Dịch.
Tôi cảm thấy sự bất tiện của những từ bị dịch sai
Nguồn
 

thuyanbui

Rìu Chiến Vàng Chấm
Những điều mà các chuyên gia khuyên dùng như: cập nhật cả hệ thống và BIOS/UEFI thông qua các phương tiện chính thức để tránh kết thúc việc cài đặt trình điều khiển dễ bị tổn thương gây nguy hiểm cho bảo mật... thì các hacker họ cũng từng nghĩ ra và tìm cách "nhúng" chúng vào các update chính thống...

Cuối cùng chúng ta chỉ có cẩn thận và mong cả sự may mắn hay nói cách khác là hên xui. :p
 
Sửa lần cuối:

naroto

Chỉ cần nhấn like khi muốn cảm ơn!
Thành viên BQT
Những điều mà các chuyên gia khuyên dùng như: cập nhật cả hệ thống và BIOS/UEFI thông qua các phương tiện chính thức để tránh kết thúc việc cài đặt trình điều khiển dễ bị tổn thương gây nguy hiểm cho bảo mật... thì các hacker họ cũng từng nghĩ ra và tìm cách "nhúng" chúng vào các update chính thống...

Cuối cùng chúng ta chỉ có cẩn thận và mong cả sự may mắn hay nói cách khác là hên xui. :p
Thế thì không update bios/uefi là một lựa chọn sáng suốt rồi Bác nhỉ.
 

Darias

Rìu Chiến


Mặc dù chúng tôi luôn khuyên bạn nên cài đặt một chương trình chống vi-rút tốt trên máy tính của mình, chương trình này liên tục bảo vệ chúng tôi khỏi mọi loại mối đe dọa, nhưng có một số loại phần mềm độc hại nằm ngoài tầm kiểm soát của các chương trình bảo mật này. Và, khi chúng tôi bị nhiễm một trong số chúng, chúng tôi có thể gặp vấn đề nghiêm trọng đối với bảo mật của mình. Đây là những gì xảy ra với BlackLotus, chúng ta có thể coi đây là vi rút bootkit đầu tiên dành cho UEFI đã được phát hiện trên mạng.

Khi nói về vi rút hoặc phần mềm độc hại, chúng ta thường nghĩ đến các chương trình độc hại nhỏ chạy trên Windows và tìm cách chiếm quyền kiểm soát PC từ hệ thống Microsoft. Phần mềm độc hại này rất dễ phát hiện bằng cách sử dụng phần mềm chống vi-rút và tương đối dễ xóa. Tuy nhiên, một máy tính có các phần mềm khác chạy ngay cả bên dưới Windows, cho phép phần mềm độc hại kiểm soát hoàn toàn tất cả các chức năng của hệ thống và khiến nó gần như không thể xóa được. Ví dụ, chúng ta đang nói về bootkit và vi-rút UEFI.



BlackLotus có thể là virus nguy hiểm nhất
Những mối đe dọa này đã là một huyền thoại trong một thời gian dài và là mục tiêu của tất cả các loại tin tặc. Và thật không may, chúng đã trở thành sự thật. Công ty bảo mật ESET đã phát hiện các bản sao đầu tiên của BlackLotus, một bộ khởi động UEFI có khả năng tự tải vào bộ nhớ trước chính Windows và hơn nữa, nó bỏ qua tất cả các biện pháp Khởi động an toàn.

Khởi động an toàn là một tính năng bảo mật mà Windows có, cho phép hệ điều hành giám sát toàn bộ quá trình khởi động để đảm bảo rằng không có mã nào được tải mà không có chữ ký hợp lệ. Mặc dù tính năng này được thiết kế để ngăn bộ công cụ khởi động tự kiểm soát và cho phép tin tặc tải mã độc hại của riêng chúng lên, một số lỗ hổng trong Khởi động an toàn này đã được báo cáo trong một thời gian. Và cuối cùng, họ đã gây nguy hiểm cho người dùng.

Như hãng bảo mật này đã xác minh được, BlackLotus có khả năng được tải đầy đủ trên hệ thống Windows 10 hoặc Windows 11 đã kích hoạt Secure Boot, phá vỡ hoàn toàn khả năng bảo mật của hệ điều hành Microsoft. Mã của bạn thậm chí có thể có nhiều đặc quyền hơn so với phần mềm chống vi-rút hoặc bất kỳ chức năng nào khác, vì vậy nó không thể làm được gì.

Để lây nhiễm vào máy tính, phần mềm độc hại tải xuống và chạy trên Windows, sử dụng lỗ hổng bảo mật đã biết để tự cài đặt trong BIOS. Hơn nữa, nó có khả năng vô hiệu hóa các biện pháp bảo mật hệ thống bổ sung như BitLocker, Windows Defender và HVCI, khiến Windows gần như trần trụi trước tin tặc. Ngoài ra, nó cài đặt một trình điều khiển trong Kernel để bảo vệ chính nó và một trình tải xuống HTTP để có thể tải xuống các bản cập nhật và các mô-đun khác thông qua các lệnh từ xa.

Làm thế nào để tránh nó
Như chúng ta đã thấy, đây là phần mềm độc hại rất phức tạp và khó phát hiện cũng như giảm thiểu. Các chuyên gia bảo mật khuyên rằng cách tốt nhất để bảo vệ chúng ta khỏi nó là đảm bảo rằng máy tính của chúng ta luôn được cập nhật. Và cập nhật cả hệ thống và BIOS/UEFI thông qua các phương tiện chính thức để tránh kết thúc việc cài đặt trình điều khiển dễ bị tổn thương gây nguy hiểm cho bảo mật của chúng tôi.

Ý thức chung luôn là một trong những đồng minh tốt nhất. Ngoài ra, nếu chúng ta nghi ngờ, chúng ta nên mở các tệp và thư mục trong môi trường an toàn, chẳng hạn như Windows Sandbox, để giảm nguy cơ lây nhiễm.

Văn bản được dịch bằng Google Dịch.
Tôi cảm thấy sự bất tiện của những từ bị dịch sai
Nguồn
Nguồn gốc: https://www.welivesecurity.com/2023/03/01/blacklotus-uefi-bootkit-myth-confirmed/
Cập nhật ngày 01/03/2023
Công cụ dịch thuật: Mate
Số lượng lỗ hổng UEFI được phát hiện trong những năm gần đây và những thất bại trong việc vá chúng hoặc thu hồi các tệp nhị phân dễ bị tổn thương trong một khoảng thời gian hợp lý đã không được chú ý bởi các tác nhân đe dọa. Do đó, bootkit UEFI đầu tiên được biết đến công khai bỏ qua tính năng bảo mật nền tảng thiết yếu - UEFI Secure Boot - giờ đã trở thành hiện thực. Trong blogpost này, chúng tôi trình bày phân tích công khai đầu tiên về bootkit UEFI này, có khả năng chạy trên các hệ thống Windows 11 cập nhật đầy đủ với UEFI Secure Boot được bật. Chức năng của bootkit và các tính năng riêng lẻ của nó khiến chúng tôi tin rằng chúng tôi đang xử lý một bootkit được gọi là BlackLotus, bootkit UEFI đang được bán trên các diễn đàn hack với giá 5,000 đô la kể từ ít nhất là tháng 2022 năm XNUMX.

UEFI bootkit là mối đe dọa rất mạnh mẽ, có toàn quyền kiểm soát quá trình khởi động hệ điều hành và do đó có khả năng vô hiệu hóa các cơ chế bảo mật hệ điều hành khác nhau và triển khai tải trọng chế độ hạt nhân hoặc chế độ người dùng của riêng chúng trong giai đoạn khởi động HĐH đầu tiên. Điều này cho phép họ hoạt động rất lén lút và có đặc quyền cao. Cho đến nay, chỉ một số ít được phát hiện trong tự nhiên và được mô tả công khai (ví dụ: nhiều mẫu EFI độc hại mà chúng tôi đã phát hiện vào năm 2020 hoặc các bootkit UEFI đầy đủ tính năng như khám phá của chúng tôi vào năm ngoái - bộ bootkit ESPecter - hoặc bootkit FinSpy được phát hiện bởi các nhà nghiên cứu từ Kaspersky).

Bookit UEFI có thể mất tính tàng hình khi so sánh với cấy ghép firmware - chẳng hạn như LoJax; cấy ghép phần sụn UEFI hoang dã đầu tiên, được nhóm của chúng tôi phát hiện vào năm 2018 - vì bootkit nằm trên phân vùng đĩa FAT32 dễ tiếp cận. Tuy nhiên, chạy như một bộ nạp khởi động mang lại cho chúng khả năng gần giống như cấy ghép phần sụn, nhưng không cần phải vượt qua các biện pháp phòng thủ flash SPI đa cấp, chẳng hạn như các bit bảo vệ BWE, BLE và PRx hoặc các biện pháp bảo vệ được cung cấp bởi phần cứng (như Intel Boot Guard). Chắc chắn, UEFI Secure Boot cản trở các bootkit UEFI, nhưng có một số lượng không đáng kể các lỗ hổng đã biết cho phép bỏ qua cơ chế bảo mật thiết yếu này. Và điều tồi tệ nhất của điều này là một số trong số chúng vẫn có thể dễ dàng khai thác trên các hệ thống cập nhật ngay cả tại thời điểm viết bài này - bao gồm cả hệ thống được khai thác bởi BlackLotus.

Cuộc điều tra của chúng tôi bắt đầu với một vài lượt truy cập vào thành phần chế độ người dùng BlackLotus - trình tải xuống HTTP - trong phép đo từ xa của chúng tôi vào cuối năm 2022. Sau khi đánh giá ban đầu, các mẫu mã được tìm thấy trong các mẫu đã đưa chúng tôi đến khám phá ra sáu trình cài đặt BlackLotus (cả trên VirusTotal và trong phép đo từ xa của riêng chúng tôi). Điều này cho phép chúng tôi khám phá toàn bộ chuỗi thực thi và nhận ra rằng những gì chúng tôi đang xử lý ở đây không chỉ là phần mềm độc hại thông thường.

Sau đây là những điểm chính về BlackLotus và dòng thời gian tóm tắt chuỗi sự kiện liên quan đến nó:

  • Nó có khả năng chạy trên các hệ thống Windows 11 mới nhất, được vá đầy đủ với Khởi động an toàn UEFI được bật.
  • Nó khai thác một lỗ hổng hơn một năm tuổi (CVE-2022-21894) để vượt qua UEFI Secure Boot và thiết lập sự bền bỉ cho bootkit. Đây là lần đầu tiên được biết đến công khai, lạm dụng hoang dã đối với lỗ hổng này.
  • Mặc dù lỗ hổng đã được khắc phục trong bản cập nhật tháng 2022 năm XNUMX của Microsoft, việc khai thác nó vẫn có thể xảy ra vì các tệp nhị phân được ký hợp lệ, bị ảnh hưởng vẫn chưa được thêm vào danh sách thu hồi UEFI. BlackLotus tận dụng lợi thế này, đưa các bản sao hợp pháp - nhưng dễ bị tổn thương - nhị phân của riêng mình vào hệ thống để khai thác lỗ hổng bảo mật.
  • Nó có khả năng vô hiệu hóa các cơ chế bảo mật hệ điều hành như BitLocker, HVCI và Windows Defender.
  • Sau khi cài đặt, mục tiêu chính của bootkit là triển khai trình điều khiển hạt nhân (trong số những thứ khác, bảo vệ bootkit khỏi bị xóa) và trình tải xuống HTTP chịu trách nhiệm giao tiếp với C&C và có khả năng tải thêm tải trọng chế độ người dùng hoặc chế độ hạt nhân.
  • BlackLotus đã được quảng cáo và bán trên các diễn đàn ngầm ít nhất là từ ngày 6 tháng XNUMXthứ, 2022. Trong blogpost này, chúng tôi đưa ra bằng chứng cho thấy bootkit là có thật và quảng cáo không chỉ đơn thuần là lừa đảo.
  • Điều thú vị là một số trình cài đặt BlackLotus mà chúng tôi đã phân tích không tiến hành cài đặt bootkit nếu máy chủ bị xâm nhập sử dụng một trong các ngôn ngữ sau:
    • Tiếng Rumani (Moldova), ro-MD
    • Tiếng Nga (Moldova), ru-MD
    • Tiếng Nga (Nga), ru-RU
    • Tiếng Ukraina (Ukraina), uk-UA
    • Tiếng Belarus (Belarus), be-BY
    • Tiếng Armenia (Armenia), hy-AM
    • Tiếng Kazakhstan (Kazakhstan), kk-KZ
Dòng thời gian của các sự kiện riêng lẻ liên quan đến BlackLotus được hiển thị trong Hình 1.


Hình 1. Dòng thời gian của các sự kiện lớn liên quan đến BlackLotus UEFI bootkit
Như đã đề cập, bootkit đã được bán trên các diễn đàn ngầm kể từ ít nhất là ngày 6 tháng XNUMXthứ, 2022. Tại thời điểm này, chúng tôi vẫn chưa thể xác định, từ phép đo từ xa của mình, kênh phân phối chính xác được sử dụng để triển khai bootkit cho nạn nhân. Số lượng mẫu BlackLotus thấp mà chúng tôi có thể thu được, cả từ các nguồn công khai và phép đo từ xa của chúng tôi, khiến chúng tôi tin rằng chưa có nhiều tác nhân đe dọa bắt đầu sử dụng nó. Nhưng cho đến khi việc thu hồi các bộ nạp khởi động dễ bị tấn công mà BlackLotus phụ thuộc vào xảy ra, chúng tôi lo ngại rằng mọi thứ sẽ thay đổi nhanh chóng nếu bộ bootkit này lọt vào tay các nhóm phần mềm tội phạm nổi tiếng, dựa trên khả năng triển khai dễ dàng của bootkit và các nhóm phần mềm tội phạm để phát tán phần mềm độc hại bằng cách sử dụng mạng botnet của họ.

Đây có thực sự là BlackLotus?​

Có một số bài viết hoặc bài đăng tóm tắt thông tin về BlackLotus (ở đây, ở đâyở đây và nhiều hơn nữa...), tất cả đều dựa trên thông tin được cung cấp bởi nhà phát triển bootkit trên các diễn đàn hack ngầm. Cho đến nay, không ai xác nhận hoặc bác bỏ những tuyên bố này.

Dưới đây là tóm tắt của chúng tôi về các tuyên bố từ các ấn phẩm có sẵn so với những gì chúng tôi đã phát hiện ra trong khi thiết kế ngược các mẫu bootkit:

  • Quảng cáo của BlackLotus trên các diễn đàn hack tuyên bố rằng nó có tính năng tích hợp bỏ qua Secure Boot. Việc thêm các trình điều khiển dễ bị tấn công vào danh sách thu hồi UEFI hiện là không thể, vì lỗ hổng này ảnh hưởng đến hàng trăm bộ nạp khởi động vẫn được sử dụng cho đến ngày nay. ✅
    • Đúng: Nó khai thác CVE-2022-21894 để phá vỡ Secure Boot và đạt được sự bền bỉ trên các hệ thống hỗ trợ UEFI-Secure-Boot. Các trình điều khiển dễ bị tổn thương mà nó sử dụng vẫn chưa bị thu hồi trong dbx mới nhất, tại thời điểm viết bài.
  • Quảng cáo của BlackLotus trên các diễn đàn hack tuyên bố rằng bootkit có tính năng bảo vệ Ring0 / Kernel tích hợp chống lại việc loại bỏ. ✅
    • Đúng: Trình điều khiển hạt nhân của nó bảo vệ các tay cầm thuộc về các tệp của nó trên EFI System Partition (ESP) chống đóng. Là một lớp bảo vệ bổ sung, các tay cầm này được theo dõi liên tục và màn hình xanh chết chóc (BSOD) được kích hoạt nếu bất kỳ tay cầm nào trong số này được đóng lại, như được mô tả trong phần Bảo vệ tệp bootkit trên phần loại bỏ ESP khỏi.
  • Quảng cáo của BlackLotus trên các diễn đàn hack tuyên bố rằng nó đi kèm với các tính năng chống máy ảo (chống VM), chống gỡ lỗi và xáo trộn mã để chặn các nỗ lực phân tích phần mềm độc hại. ✅
    • Đúng: Nó chứa các kỹ thuật chống VM, chống gỡ lỗi và xáo trộn khác nhau để làm cho việc sao chép hoặc phân tích trở nên khó khăn hơn. Tuy nhiên, chúng tôi chắc chắn không nói về bất kỳ kỹ thuật chống phân tích đột phá hoặc tiên tiến nào ở đây, vì chúng có thể dễ dàng vượt qua mà không tốn nhiều công sức.
  • Quảng cáo của BlackLotus trên các diễn đàn hack tuyên bố rằng mục đích của nó là hoạt động như một trình tải xuống HTTP. ✅
    • Đúng: Thành phần cuối cùng của nó hoạt động như một trình tải xuống HTTP, như được mô tả trong phần trình tải xuống HTTP
  • Quảng cáo của BlackLotus trên các diễn đàn hack tuyên bố rằng trình tải xuống HTTP chạy dưới tài khoản HỆ THỐNG trong một quy trình hợp pháp. ✅
    • Đúng: Trình tải xuống HTTP của nó chạy trong ngữ cảnh quy trình winlogon.exe.
  • Quảng cáo của BlackLotus trên các diễn đàn hack tuyên bố đây là một bootkit nhỏ với kích thước trên đĩa chỉ 80 kB. ✅
    • Đúng: Các mẫu chúng tôi có thể thu được thực sự là khoảng 80 kB.
  • Quảng cáo của BlackLotus trên các diễn đàn hack tuyên bố rằng nó có thể vô hiệu hóa các biện pháp bảo vệ bảo mật Windows tích hợp như HVCI, Bitlocker, Windows Defender và bỏ qua Kiểm soát tài khoản người dùng (UAC). ✅
Dựa trên những sự thật này, chúng tôi tin tưởng với sự tự tin cao rằng bootkit mà chúng tôi phát hiện ra trong tự nhiên là bootkit UEFI BlackLotus.

Tổng quan về tấn công​

Một sơ đồ đơn giản hóa của chuỗi thỏa hiệp BlackLotus được thể hiện trong Hình 2. Nó bao gồm ba phần chính:

  1. Nó bắt đầu với việc thực thi trình cài đặt (bước 1 trong Hình 2), chịu trách nhiệm triển khai các tệp của bootkit vào phân vùng Hệ thống EFI, vô hiệu hóa HVCI và BitLocker, sau đó khởi động lại máy.
  2. Sau lần khởi động lại đầu tiên, việc khai thác CVE-2022-21894 và đăng ký Khóa chủ sở hữu máy (MOK) của kẻ tấn công xảy ra, để đạt được sự bền bỉ ngay cả trên các hệ thống có bật Khởi động an toàn UEFI. Sau đó, máy được khởi động lại (bước 2–4 trong Hình 2) một lần nữa.
  3. Trong tất cả các lần khởi động tiếp theo, bootkit UEFI tự ký được thực thi và triển khai cả trình điều khiển hạt nhân và tải trọng chế độ người dùng, trình tải xuống HTTP. Cùng với nhau, các thành phần này có thể tải xuống và thực thi các thành phần trình điều khiển và chế độ người dùng bổ sung từ máy chủ C&C và bảo vệ bootkit khỏi bị xóa (các bước 5–9 trong Hình 2).

Hình 2. Tổng quan về thực thi đơn giản hóa BlackLotus

Hiện vật thú vị​

Mặc dù chúng tôi tin rằng đây là bootkit UEFI của BlackLotus, nhưng chúng tôi không tìm thấy bất kỳ tham chiếu nào đến tên này trong các mẫu mà chúng tôi đã phân tích. Thay vào đó, mã có đầy đủ các tham chiếu đến bộ anime Higurashi When They Cry, ví dụ như trong các tên thành phần riêng lẻ, chẳng hạn như higurashi_installer_uac_module.dll và higurashi_kernel.sys, và cả trong chứng chỉ tự ký được sử dụng để ký nhị phân bootkit (thể hiện trong Hình 3).


Hình 3. Chứng chỉ tự ký được sử dụng bởi bộ bootkit BlackLotus
Ngoài ra, mã giải mã nhưng không bao giờ sử dụng các chuỗi khác nhau có chứa thông điệp từ tác giả BlackLotus (như trong Hình 4 - lưu ý, hasherezade là một nhà nghiên cứu nổi tiếng và là tác giả của các công cụ phân tích phần mềm độc hại khác nhau), hoặc chỉ một số trích dẫn ngẫu nhiên từ các bài hát, trò chơi hoặc loạt phim khác nhau.


Hình 4. Ví dụ về tin nhắn do tác giả BlackLotus để lại trong mã

Quá trình cài đặt​

Chúng tôi bắt đầu với việc phân tích các trình cài đặt BlackLotus. Bootkit dường như được phân phối dưới dạng trình cài đặt có hai phiên bản - ngoại tuyến và trực tuyến. Sự khác biệt giữa hai điều này là ở cách chúng có được các tệp nhị phân Windows hợp pháp (nhưng dễ bị tấn công), sau này được sử dụng để bỏ qua Secure Boot.

Mục tiêu của trình cài đặt rất rõ ràng - nó chịu trách nhiệm vô hiệu hóa các tính năng bảo mật của Windows như mã hóa đĩa BitLocker và HVCI, đồng thời triển khai nhiều tệp, bao gồm cả bộ công cụ khởi động độc hại, cho ESP. Sau khi hoàn tất, nó sẽ khởi động lại máy bị xâm nhập để cho phép các tệp bị rơi thực hiện công việc của chúng - để đảm bảo bootkit UEFI tự ký sẽ được thực thi âm thầm trên mọi lần khởi động hệ thống, bất kể trạng thái bảo vệ UEFI Secure Boot.

Bước 0 - Khởi tạo và độ cao (tiềm năng)​

Khi trình cài đặt được thực thi, nó sẽ kiểm tra xem nó có đủ đặc quyền hay không (ít nhất là yêu cầu quản trị viên) để triển khai các tệp còn lại cho ESP và thực hiện các hành động khác yêu cầu quy trình nâng cao - như tắt HVCI hoặc tắt BitLocker. Nếu không đúng như vậy, nó sẽ cố gắng nâng cao bằng cách thực thi lại trình cài đặt bằng cách sử dụng phương pháp bỏ qua UAC được mô tả chi tiết tại đây: Bỏ qua UAC thông qua trợ lý tương thích chương trình.

Với các đặc quyền cần thiết, nó tiếp tục, kiểm tra trạng thái Khởi động an toàn UEFI bằng cách đọc giá trị của biến UEFI SecureBoot bằng chức năng API Windows có sẵn và xác định phiên bản Windows bằng cách truy cập trực tiếp vào các trường cấu trúc KUSER_SHARED_DATA NtMajorVersion và NtMinorVersion trong bộ nhớ. Nó làm như vậy để quyết định xem có cần thiết phải bỏ qua UEFI Secure Boot để triển khai bootkit trên hệ thống của nạn nhân hay không (vì hỗ trợ Khởi động an toàn lần đầu tiên được thêm vào trong Windows 8 và có thể không được bật trên bất kỳ máy nhất định nào).

Trước khi tiến hành các bước tiếp theo, nó đổi tên nhị phân Windows Boot Manager (bootmgfw.efi) hợp pháp nằm trong thư mục ESP: \ EFI \ Microsoft \ Boot \ thành winload.efi. Bản sao lưu bootmgfw.efi được đổi tên này sau đó được bootkit sử dụng để khởi chạy HĐH hoặc để khôi phục chuỗi khởi động ban đầu nếu nhận lệnh "gỡ cài đặt" từ máy chủ C&C - nhiều hơn trong phần giao tiếp C&C.

Bước 1 – Triển khai tệp​

Nếu UEFI Secure Boot được bật, trình cài đặt sẽ tiến hành thả nhiều tệp vào các thư mục ESP: / EFI / Microsoft / Boot / và ESP: / system32 /. Trong khi cái trước là một thư mục tiêu chuẩn được sử dụng bởi Windows, cái sau là một thư mục tùy chỉnh được tạo bởi trình cài đặt.

Một danh sách các tệp được trình cài đặt thả ra với lời giải thích ngắn gọn về vai trò của từng tệp trong chuỗi thực thi được cung cấp trong Bảng 1. Chúng tôi sẽ giải thích chi tiết cách thức hoạt động của chuỗi thực thi sau; bây giờ chỉ cần lưu ý rằng một số tệp hợp pháp do Microsoft ký sẽ bị loại bỏ cùng với các tệp độc hại.

Bảng 1. Các tệp được triển khai bởi trình cài đặt BlackLotus trên các hệ thống có bật UEFI Secure Boot

Thư mụcFilenameMô tả:__________
ESP:\EFI\Microsoft\Khởi độnggrubx64.efiBlackLotus bootkit, ứng dụng UEFI tự ký độc hại.
bootload.efiNhị phân shim hợp pháp do Microsoft ký (tên tạm thời, sau đó thay thế bootmgfw.efi sau khi khai thác CVE-2022-21894).
khởi độngmgfw.efiHệ nhị phân Windows Boot Manager hợp pháp, nhưng dễ bị tổn thương (CVE-2022-21894), được nhúng trong trình cài đặt hoặc tải xuống trực tiếp từ Microsoft Symbol Store.
BCDKho dữ liệu cấu hình khởi động (BCD) tùy chỉnh của kẻ tấn công được sử dụng trong chuỗi khai thác CVE-2022-21894.
BCDR ·Sao lưu kho BCD ban đầu của nạn nhân.
ESP:\system32hvloader.efiHệ nhị phân Windows Hypervisor Loader hợp pháp, nhưng dễ bị tổn thương (CVE-2022-21894), được nhúng bên trong trình cài đặt hoặc được tải xuống trực tiếp từ Microsoft Symbol Store.
khởi động.efiHệ nhị phân Windows Boot Manager hợp pháp, nhưng dễ bị tổn thương (CVE-2022-21894), được nhúng bên trong trình cài đặt hoặc tải xuống trực tiếp từ Microsoft Symbol Store.
mcupdate_AuthenticAMD.dllNhị phân PE gốc tự ký độc hại. Tệp này được thực thi bởi hvloader.efi sau khi khai thác CVE-2022-21894 thành công (trên các hệ thống sử dụng CPU AMD).
mcupdate_GenuineIntel.dllNhị phân PE gốc tự ký độc hại. Tệp này được thực thi bởi hvloader.efi sau khi khai thác thành công CVE-2022-21894 (trên các hệ thống sử dụng CPU Intel).
BCDBCD tùy chỉnh của kẻ tấn công được sử dụng trong chuỗi khai thác CVE-2022-21894.
Trong trường hợp khi nạn nhân đang chạy phiên bản Windows không hỗ trợ UEFI Secure Boot hoặc trong trường hợp khi nó bị vô hiệu hóa, việc triển khai khá đơn giản. Điều duy nhất cần thiết để triển khai bootkit độc hại là thay thế nhị phân Windows Boot Manager (bootmgfw.efi) hiện có trong thư mục ESP:\EFI\Microsoft\Boot\, bằng ứng dụng UEFI độc hại tự ký của kẻ tấn công. Vì UEFI Secure Boot bị vô hiệu hóa (và do đó không có xác minh tính toàn vẹn nào được thực hiện trong quá trình khởi động), việc khai thác là không cần thiết và phần sụn UEFI chỉ đơn giản là thực thi trình quản lý khởi động độc hại mà không gây ra bất kỳ vi phạm bảo mật nào.

Bước 2 - Vô hiệu hóa tính toàn vẹn mã được bảo vệ bởi Hypervisor (HVCI)​

Để có thể chạy mã hạt nhân không dấu tùy chỉnh sau này, trình cài đặt phải đảm bảo rằng HVCI bị tắt trên hệ thống. Một trong những đồng nghiệp ESET của chúng tôi đã viết một bài đăng trên blog rất nhiều thông tin về chủ đề này vào năm 2022 (Trình điều khiển hạt nhân đã ký – Cổng kết nối không được bảo vệ vào lõi của Windows):

Bảo mật dựa trên ảo hóa (VBS) cung cấp một số tính năng bảo vệ với tính năng nổi bật nhất là Tính toàn vẹn mã được bảo vệ bởi Hypervisor (HVCI), cũng là một tính năng độc lập. HVCI thực thi tính toàn vẹn của mã trong hạt nhân và chỉ cho phép thực thi mã đã ký. Nó ngăn chặn hiệu quả các trình điều khiển dễ bị tấn công bị lạm dụng để thực thi mã hạt nhân chưa được ký hoặc tải các trình điều khiển độc hại (bất kể phương pháp khai thác được sử dụng) và có vẻ như phần mềm độc hại lạm dụng các trình điều khiển dễ bị tấn công để tải mã độc là một trong những động lực chính đằng sau việc Microsoft triển khai tính năng này.

Như trong Hình 5, để tắt tính năng này, trình cài đặt đặt đặt giá trị đăng ký Đã bật trong khóa đăng ký HypervisorEnforcedCodeIntegrity thành số không.


Hình 5. Hex-Rays đã dịch ngược mã của chức năng cài đặt BlackLotus chịu trách nhiệm vô hiệu hóa HVCI

Bước 3 - Vô hiệu hóa BitLocker​

Tính năng tiếp theo bị trình cài đặt vô hiệu hóa là Mã hóa ổ đĩa BitLocker. Lý do cho điều này là BitLocker có thể được sử dụng kết hợp với Mô-đun nền tảng đáng tin cậy (TPM) để đảm bảo rằng các tệp và cấu hình khởi động khác nhau, bao gồm cả Khởi động an toàn, không bị giả mạo kể từ khi mã hóa ổ đĩa BitLocker được định cấu hình trên hệ thống. Xem xét rằng trình cài đặt sửa đổi chuỗi khởi động Windows trên một máy bị xâm phạm, việc giữ BitLocker bật cho các hệ thống có hỗ trợ TPM sẽ dẫn đến màn hình khôi phục BitLocker ở lần khởi động tiếp theo và sẽ cho nạn nhân biết rằng hệ thống đã bị xâm phạm.

Để tắt tính năng bảo vệ này, trình cài đặt BlackLotus:

  • đi qua tất cả các ổ đĩa trong không gian tên WMI Root\CIMV2\Security\MicrosoftVolumeEncryption và kiểm tra trạng thái bảo vệ của chúng bằng cách gọi phương thức GetProtectionStatus của lớp WMI Win32_EncryptableVolume
  • đối với những người được bảo vệ bởi BitLocker, nó gọi phương thức DisableKeyProtectors với tham số DisableCount được đặt thành XNUMX, có nghĩa là bảo vệ sẽ bị tạm ngưng cho đến khi nó được bật thủ công
Với các biện pháp bảo vệ cần thiết bị vô hiệu hóa và tất cả các tệp được triển khai, trình cài đặt sẽ tự đăng ký sẽ bị xóa trong quá trình khởi động lại hệ thống tiếp theo và khởi động lại máy để tiến hành khai thác CVE-2022-21894.

Bỏ qua Khởi động an toàn và thiết lập sự bền bỉ​

Trong phần này, chúng ta sẽ xem xét kỹ hơn cách BlackLotus đạt được sự bền bỉ trên các hệ thống có bật Khởi động an toàn UEFI. Vì chuỗi thực thi mà chúng tôi sắp mô tả khá phức tạp, trước tiên chúng tôi sẽ giải thích các nguyên tắc cơ bản và sau đó đào sâu hơn vào các chi tiết kỹ thuật.

Tóm lại, quá trình này bao gồm hai bước chính:

  1. Khai thác CVE-2022-21894 để bỏ qua tính năng Khởi động an toàn và cài đặt bootkit. Điều này cho phép thực thi mã tùy ý trong giai đoạn khởi động sớm, nơi nền tảng vẫn thuộc sở hữu của phần sụn và các chức năng Dịch vụ khởi động UEFI vẫn có sẵn. Điều này cho phép những kẻ tấn công làm nhiều việc mà chúng không thể làm trên máy có bật UEFI Secure Boot mà không có quyền truy cập vật lý vào nó, chẳng hạn như sửa đổi các biến NVRAM chỉ dành cho Boot-services. Và đây chính là điều mà những kẻ tấn công lợi dụng để thiết lập sự kiên trì cho bootkit trong bước tiếp theo. Thông tin thêm về khai thác có thể được tìm thấy trong phần Khai thác CVE-2022-21894.
  2. Thiết lập sự bền bỉ bằng cách ghi MOK của riêng mình vào biến NVRAM chỉ dành cho MokList, Boot-services. Bằng cách này, nó có thể sử dụng một miếng chêm hợp pháp do Microsoft ký để tải bootkit UEFI tự ký (được ký bởi khóa riêng thuộc về khóa được ghi vào MokList) UEFI bootkit thay vì khai thác lỗ hổng trên mỗi lần khởi động. Thông tin thêm về điều này trong phần Bootkit persistence.
Để làm cho việc phân tích chi tiết trong hai phần tiếp theo dễ dàng hơn, chúng ta sẽ làm theo các bước được hiển thị trong sơ đồ thực thi, Hình 6.


Hình 6. Bỏ qua Secure Boot và thiết lập sự bền bỉ bằng MOK

Khai thác CVE-2022-21894​

Để vượt qua Secure Boot, BlackLotus sử dụng dùi cui thả (CVE-2022-21894): Tính năng bảo mật khởi động an toàn Bỏ qua lỗ hổng bảo mật. Mặc dù có tác động lớn đến bảo mật hệ thống, lỗ hổng này không nhận được nhiều sự chú ý của công chúng như nó xứng đáng. Mặc dù lỗ hổng đã được khắc phục trong bản cập nhật tháng 2022 năm XNUMX của Microsoft, việc khai thác nó vẫn có thể xảy ra vì các tệp nhị phân bị ảnh hưởng vẫn chưa được thêm vào danh sách thu hồi UEFI. Do đó, những kẻ tấn công có thể mang các bản sao nhị phân dễ bị tấn công của riêng chúng vào máy của nạn nhân để khai thác lỗ hổng này và bỏ qua Khởi động an toàn trên các hệ thống UEFI cập nhật.

Hơn nữa, khai thác Proof of Concept (PoC) cho lỗ hổng này đã được công bố công khai kể từ tháng 2022 năm XNUMX. Xem xét ngày gửi BlackLotus VirusTotal đầu tiên (xem Hình 1), nhà phát triển phần mềm độc hại có thể vừa điều chỉnh PoC có sẵn theo nhu cầu của họ mà không cần hiểu sâu về cách khai thác này hoạt động.

Hãy bắt đầu với phần giới thiệu ngắn gọn về lỗ hổng bảo mật, chủ yếu là tóm tắt các điểm chính từ bài viết được xuất bản cùng với PoC trên GitHub:

  • Các ứng dụng khởi động Windows bị ảnh hưởng (chẳng hạn như bootmgr.efi, hvloader.efi, winload.efi...) cho phép xóa chính sách Khởi động an toàn được tuần tự hóa khỏi bộ nhớ - trước khi nó được ứng dụng tải - bằng cách sử dụng tùy chọn khởi động truncatememory BCD.
  • Điều này cho phép kẻ tấn công sử dụng các tùy chọn BCD nguy hiểm khác như bootdebug, testlogging hoặc nointegritychecks, do đó phá vỡ Secure Boot.
  • Có nhiều cách khác nhau để khai thác lỗ hổng này - ba trong số chúng được xuất bản trong kho lưu trữ PoC.
  • Ví dụ, một trong những PoC cho thấy cách nó có thể được khai thác để làm cho tải hvloader.efi hợp pháp thành một tùy ý, tự ký mcupdate_<nền tảng>.dll nhị phân (trong đó <nền tảng> có thể là GenuineIntel hoặc AuthenticAMD, dựa trên CPU của máy.).
Bây giờ, chúng ta tiếp tục mô tả cách BlackLotus khai thác lỗ hổng này (các con số trong danh sách dưới đây mô tả các bước tương ứng trong Hình 6):

  1. Sau khi trình cài đặt khởi động lại máy, phần sụn UEFI tiến hành tải tùy chọn khởi động đầu tiên. Đối với các hệ thống Windows, tùy chọn khởi động đầu tiên theo mặc định là bootmgfw.efi nằm trong thư mục ESP: / EFI / Microsoft / Boot trên ESP. Lần này, thay vì thực thi bootmgfw.efi của nạn nhân ban đầu (trước đây đã được trình cài đặt đổi tên thành winload.efi), phần sụn thực thi phần mềm dễ bị tấn công - được triển khai bởi trình cài đặt.
  2. Sau khi bootmgfw.efi được thực thi, nó sẽ tải các tùy chọn khởi động BCD, được trình cài đặt sửa đổi trước đó. Hình 7 cho thấy sự so sánh giữa BCD hợp pháp và BCD đã sửa đổi.
  3. Như bạn có thể thấy trong Hình 7 (đường dẫn được gạch chân bằng màu xanh lá cây), Trình quản lý khởi động Windows hợp pháp thường sẽ tải bộ tải hệ điều hành Windows (\ WINDOWS \ system32 \ winload.efi) làm ứng dụng khởi động mặc định. Nhưng lần này, với BCD đã được sửa đổi, nó tiếp tục tải ESP: \ system32 \ bootmgr.efi dễ bị tấn công, với phần tử BCD avoidlowmemory được đặt thành giá trị 0x10000000 và phần tử BCD tùy chỉnh: 22000023 trỏ đến BCD của những kẻ tấn công khác được lưu trữ trong ESP: \ system32 \ bcd. Giải thích về việc sử dụng các yếu tố này có thể được tìm thấy trong PoC đã xuất bản:
Kẻ tấn công cần đảm bảo Chính sách khởi động an toàn được tuần tự hóa được phân bổ phía trên một địa chỉ vật lý đã biết.
[...]
Phần tử avoidlowmemory có thể được sử dụng để đảm bảo tất cả các phân bổ của bộ nhớ vật lý nằm trên một địa chỉ vật lý được chỉ định.
• Kể từ Windows 10, phần tử này không được phép nếu VBS được bật, nhưng vì nó được sử dụng trong quá trình khởi tạo ứng dụng khởi động, trước khi chính sách Khởi động an toàn tuần tự hóa được đọc từ bộ nhớ, tải bootmgr và chỉ định đường dẫn BCD tùy chỉnh (sử dụng phần tử bcdfilepath hay còn gọi là tùy chỉnh: 22000023) có thể được sử dụng để bỏ qua điều này.



Hình 7. Cửa hàng BCD hợp pháp (BEFORE) so với cửa hàng được sử dụng bởi trình cài đặt BlackLotus (AFTER)
  1. Trong bước tiếp theo, ESP: \ system32 \ bootmgr.efi được thực thi tải BCD bổ sung nằm trong ESP: \ system32 \ bcd. Nội dung phân tích cú pháp của BCD bổ sung này được thể hiện trong Hình 8.

Hình 8. BCD thứ hai bị bỏ bởi trình cài đặt BlackLotus - được sử dụng để khai thác CVE-2022-21894
  1. Do các tùy chọn được tải từ tệp BCD được hiển thị trong Hình 8, bootmgr.efi tiếp tục tải một Ứng dụng Khởi động Windows dễ bị tấn công khác do trình cài đặt triển khai - ESP: \ system32 \ hvloader.efi - là Trình tải Hypervisor của Windows. Quan trọng hơn, các tùy chọn BCD bổ sung được chỉ định trong cùng một tệp BCD (xem Hình 8):
    1. truncatememory với giá trị được đặt thành 0x10000000
    2. nointegritychecks được đặt thành Có
    3. và testsigning, cũng được đặt thành Có
Và đây là nơi điều kỳ diệu xảy ra. Vì chính sách Khởi động an toàn tuần tự hóa nên được tải trong các địa chỉ vật lý ở trên 0x10000000 (vì avoidlowmemory được sử dụng trong các bước trước), việc chỉ định phần tử truncatememory sẽ loại bỏ nó một cách hiệu quả - do đó, phá vỡ Khởi động an toàn và cho phép sử dụng các tùy chọn BCD nguy hiểm như nointegritychecks hoặc testsigning. Bằng cách sử dụng các tùy chọn này, những kẻ tấn công có thể làm cho hvloader.efi thực thi mã tự ký của riêng chúng.

  1. Để làm điều này, thủ thuật tương tự như được mô tả trong PoC được sử dụng: trong quá trình thực thi, hvloader.efi hợp pháp tải và thực thi mcupdate_{GenuineIntel | AuthenticAMD}.dll nhị phân gốc từ thư mục <device>:\<SystemRoot>\system32\. Nhận xét Hex-Rays đã dịch ngược mã của hàm từ hvloader.efi chịu trách nhiệm tải mcupdate * .dll nhị phân này được hiển thị trong Hình 9. Lưu ý rằng hvloader.efi thường sẽ tải tệp nhị phân mcupdate*.dll hợp pháp này từ <OS_partition>: \ Windows \ system32, nhưng lần này mcupdate * .dll tự ký của kẻ tấn công độc hại được thực thi từ thư mục ESP tùy chỉnh được tạo trước đó bởi trình cài đặt (ESP: \ system32). Nó được gây ra bởi thiết bị tùy chọn BCD và systemroot được sử dụng trong BCD từ Hình 8 chỉ định thiết bị hiện tại là khởi động - có nghĩa là ESP - và cũng chỉ định SystemRoot là thư mục gốc (\) trên thiết bị này.

Hình 9. Hex-Rays dịch ngược chức năng BtLoadUpdateDll từ hvloader.efi hợp pháp, chịu trách nhiệm tải mcupdate_*.dll
  1. Bây giờ, khi mcupdate * .dll tự ký của những kẻ tấn công được tải và thực thi, nó tiếp tục thực thi thành phần cuối cùng trong chuỗi này - một MokInstaller nhúng (Ứng dụng UEFI) - xem Hình 10 để biết chi tiết về cách nó được thực hiện.

Hình 10. Hex-Rays đã dịch ngược mã của mcupdate tự ký độc hại*.dll nhị phân

Bootkit bền bỉ​

Giờ đây, MokInstaller có thể tiến hành thiết lập sự bền bỉ bằng cách đăng ký MOK của kẻ tấn công vào biến NVRAM và thiết lập tệp nhị phân shim hợp pháp do Microsoft ký làm bộ nạp khởi động mặc định. Trước khi tiến hành chi tiết, một lý thuyết nhỏ về miếng chêm và MOK.

shim là bộ nạp khởi động UEFI giai đoạn đầu tiên được phát triển bởi các nhà phát triển Linux để làm cho các bản phân phối Linux khác nhau hoạt động với UEFI Secure Boot. Đây là một ứng dụng đơn giản và mục đích của nó là tải, xác minh và thực thi một ứng dụng khác - trong trường hợp hệ thống Linux, nó thường là bộ nạp khởi động GRUB. Nó hoạt động theo cách mà Microsoft chỉ ký một miếng chêm và miếng chêm sẽ lo phần còn lại - nó có thể xác minh tính toàn vẹn của bộ nạp khởi động giai đoạn hai bằng cách sử dụng các khóa từ biến db UEFI, đồng thời nhúng danh sách các khóa hoặc băm "được phép" hoặc "thu hồi" của riêng mình để đảm bảo rằng các thành phần được cả hai - nền tảng và nhà phát triển shim tin cậy (ví dụ: Canonical, RedHat, v.v.) - được phép thực thi. Ngoài các danh sách này, shim cũng cho phép sử dụng cơ sở dữ liệu khóa bên ngoài do người dùng quản lý, được gọi là danh sách MOK. Hình 11 minh họa độc đáo cách hoạt động của UEFI Secure Boot với MOK.

Cơ sở dữ liệu MOK này được lưu trữ trong một biến NVRAM chỉ khởi động có tên MokList. Nếu không khai thác lỗ hổng như được mô tả ở trên, cần có quyền truy cập vật lý để sửa đổi nó trên hệ thống có bật UEFI Secure Boot (nó chỉ khả dụng trong khi khởi động, trước khi bộ tải hệ điều hành gọi chức năng UEFI Boot Services ExitBootServices). Tuy nhiên, bằng cách khai thác lỗ hổng này, kẻ tấn công có thể bỏ qua UEFI Secure Boot và thực thi mã tự ký của riêng họ trước khi một cuộc gọi đến ExitBootServices, vì vậy họ có thể dễ dàng đăng ký khóa của riêng mình (bằng cách sửa đổi biến MokList NVRAM) để làm cho shim thực thi bất kỳ ứng dụng nào - được ký bởi khóa đã đăng ký đó - mà không gây ra vi phạm bảo mật.


Hình 11. Tổng quan về quy trình khởi động MOK (nguồn hình ảnh)
  1. Tiếp tục mô tả dòng chảy từ Hình 6 - bước 8... Ứng dụng UEFI MokInstaller tiếp tục thiết lập sự bền bỉ cho bootkit UEFI BlackLotus và bao gồm các dấu vết khai thác bằng cách:
    1. Khôi phục kho BCD ban đầu của nạn nhân từ bản sao lưu do trình cài đặt tạo và thay thế efi bằng miếng chêm hợp pháp do Microsoft ký, trước đó đã được trình cài đặt thả xuống ESP: \ system32 \ bootload.efi.
    2. Tạo một biến MokList NVRAM chứa chứng chỉ khóa công khai tự ký của kẻ tấn công. Lưu ý rằng biến này được định dạng theo cách tương tự như bất kỳ biến cơ sở dữ liệu chữ ký UEFI nào khác (chẳng hạn như db hoặc dbx) và nó có thể bao gồm các danh sách chữ ký loại EFI_SIGNATURE_LIST bằng không hoặc nhiều hơn - như được định nghĩa trong Đặc tả UEFI.
    3. Xóa tất cả các tệp liên quan đến việc khai thác khỏi thư mục ESP: \ system32 \ của kẻ tấn công.
  2. Cuối cùng, nó khởi động lại máy để làm cho miếng chêm đã triển khai thực thi bootkit tự ký được trình cài đặt thả xuống \EFI\Microsoft\Boot\grubx64.efi (grubx64.efi thường là bộ nạp khởi động giai đoạn hai mặc định được thực thi bởi một miếng chêm trên các hệ thống x86-64).
Mã thực hiện các hành động được mô tả trong hai bước cuối cùng được hiển thị trong Hình 12.


Hình 12. Mã đã dịch ngược Hex-Rays - Ứng dụng UEFI MokInstaller thiết lập sự bền bỉ cho bootkit BlackLotus

Bộ bootkit UEFI BlackLotus​

Sau khi sự bền bỉ được cấu hình, bootkit BlackLotus sẽ được thực thi trên mỗi lần khởi động hệ thống. Mục tiêu của bootkit là triển khai trình điều khiển hạt nhân và thành phần chế độ người dùng cuối cùng - trình tải xuống HTTP. Trong quá trình thực thi, nó cố gắng vô hiệu hóa các tính năng bảo mật bổ sung của Windows - Bảo mật dựa trên ảo hóa (VBS) và Windows Defender - để nâng cao cơ hội triển khai thành công và hoạt động lén lút. Trước khi chuyển đến chi tiết về cách thực hiện, hãy tóm tắt những điều cơ bản về trình điều khiển hạt nhân và trình tải xuống HTTP:

  • Trình điều khiển hạt nhân chịu trách nhiệm cho
    • Triển khai thành phần tiếp theo của chuỗi – một trình tải xuống HTTP.
    • Giữ cho bộ tải sống sót trong trường hợp chấm dứt.
    • Bảo vệ các tệp bootkit không bị xóa khỏi ESP.
    • Thực thi các tải trọng hạt nhân bổ sung, nếu có hướng dẫn bởi trình tải xuống HTTP.
    • Gỡ cài đặt bootkit, nếu có hướng dẫn bởi trình tải xuống HTTP.
  • Trình tải xuống HTTP chịu trách nhiệm:
    • Giao tiếp với C&C của nó.
    • Thực hiện các lệnh nhận được từ C&C.
    • Tải xuống và thực thi các trọng tải nhận được từ C&C (hỗ trợ cả tải trọng hạt nhân và tải trọng chế độ người dùng).
Luồng thực thi đầy đủ (được đơn giản hóa), từ trình cài đặt đến trình tải xuống HTTP, được hiển thị trong Hình 13. Chúng tôi mô tả các bước riêng lẻ này chi tiết hơn trong phần tiếp theo.


Hình 13. Sơ đồ cho thấy quá trình thực thi bộ bootkit BlackLotus UEFI

Quy trình thực thi BlackLotus​

Các bước thực hiện như sau (các bước này được hiển thị trong Hình 13):

  1. Bước đầu tiên, phần sụn UEFI thực thi tùy chọn khởi động Windows mặc định, là tệp thường được lưu trữ trong \ EFI \ Microsoft \ Boot \ bootmgfw.efi. Như chúng tôi đã mô tả trước đó (phần bền bỉ Bootkit, 8 .a), tệp nhị phân MokInstaller đã thay thế tệp này bằng một miếng chêm được ký hợp pháp.
  2. Khi miếng chêm được thực thi, nó sẽ đọc biến MokList NVRAM và sử dụng chứng chỉ được lưu trữ trước đó bên trong bởi những kẻ tấn công để xác minh bộ nạp khởi động giai đoạn hai - bootkit BlackLotus UEFI tự ký nằm trong \ EFI \ Microsoft \ Boot \ grubx64.efi.
  3. Khi được xác minh, miếng chêm sẽ thực hiện bootkit.
  4. Bootkit bắt đầu bằng việc tạo biến VbsPolicyDisable NVRAM chỉ dành cho Boot. Như được mô tả ở đây, biến này được đánh giá bởi bộ tải hệ điều hành Windows trong quá trình khởi động và nếu được xác định, các tính năng VBS cốt lõi, chẳng hạn như HVCI và Credential Guard sẽ không được khởi tạo.
  5. Trong các bước sau (5. a–e), bootkit tiếp tục với một mẫu phổ biến được sử dụng bởi uefi bootkits. Nó chặn việc thực thi các thành phần có trong luồng khởi động Windows điển hình, chẳng hạn như Trình quản lý khởi động Windows, trình tải hệ điều hành Windows và nhân hệ điều hành Windows, đồng thời móc một số chức năng của chúng vào bộ nhớ. Như một phần thưởng, nó cũng cố gắng vô hiệu hóa Windows Defender bằng cách vá một số trình điều khiển của nó. Tất cả điều này để đạt được việc thực thi tải trọng của nó trong giai đoạn đầu của quá trình khởi động hệ điều hành và để tránh bị phát hiện. Các chức năng sau đây được nối hoặc vá:
    1. ImgArchStartBootỨng dụng trong bootmgfw.efi hoặc bootmgr.efi :
      Chức năng này thường được móc bởi các bootkit để nắm bắt thời điểm khi bộ tải hệ điều hành Windows (winload.efi) được tải trong bộ nhớ nhưng vẫn chưa được thực thi - đó là thời điểm thích hợp để thực hiện vá lỗi trong bộ nhớ nhiều hơn.
    2. BlImgAllocateImageBuffer trong winload.efi:
      Được sử dụng để phân bổ bộ đệm bộ nhớ bổ sung cho trình điều khiển hạt nhân độc hại.
    3. OslArchTransferToKernel trong winload.efi:
      Được nối để nắm bắt khoảnh khắc khi nhân hệ điều hành và một số trình điều khiển hệ thống đã được tải trong bộ nhớ, nhưng vẫn chưa được thực thi - đó là thời điểm hoàn hảo để thực hiện vá lỗi trong bộ nhớ nhiều hơn. Các trình điều khiển được đề cập dưới đây được vá trong móc này. Mã từ hook này chịu trách nhiệm tìm trình điều khiển thích hợp trong bộ nhớ được hiển thị trong Hình 14.
    4. WdBoot.sys và WdFilter.sys:
      BlackLotus vá điểm vào của WdBoot.sys và WdFilter.sys - trình điều khiển ELAM của Bộ bảo vệ Windows và trình điều khiển bộ lọc hệ thống tệp Windows Defender, tương ứng - để quay lại ngay lập tức.
    5. đĩa.sys:
      Bộ bootkit móc điểm vào của trình điều khiển .sys đĩa để thực thi trình điều khiển nhân BlackLotus trong giai đoạn đầu khởi tạo hệ thống.

Hình 14. Hex-Rays đã dịch ngược mã của móc OslArchTransferToKernel – vá trình điều khiển Windows Defender và tìm kiếm đĩa.sys điểm vào
  1. Tiếp theo, khi nhân HĐH thực thi điểm vào của trình điều khiển .sys đĩa, hook đã cài đặt sẽ nhảy đến điểm nhập trình điều khiển hạt nhân độc hại. Mã độc lần lượt khôi phục đĩa gốc.sys để cho phép hệ thống hoạt động bình thường và đợi cho đến khi quá trình winlogon.exe bắt đầu.
  2. Khi trình điều khiển độc hại phát hiện ra rằng quá trình winlogon.exe đã bắt đầu, nó sẽ đưa và thực thi thành phần chế độ người dùng cuối cùng - trình tải xuống HTTP - vào đó.

Trình điều khiển hạt nhân​

Trình điều khiển hạt nhân chịu trách nhiệm cho bốn nhiệm vụ chính:

  • Đưa trình tải xuống HTTP vào winlogon.exe và đưa nó vào trong trường hợp luồng chấm dứt.
  • Bảo vệ các tệp bootkit được triển khai trên ESP không bị xóa.
  • Giải giáp chế độ người dùng Windows Defender xử lý MsMpEngine.exe.
  • Giao tiếp với trình tải xuống HTTP và nếu cần, thực hiện bất kỳ lệnh nào.
Hãy xem xét từng cái một.

Sự kiên trì của trình tải xuống HTTP​

Trình điều khiển hạt nhân chịu trách nhiệm triển khai trình tải xuống HTTP. Khi trình điều khiển khởi động, nó đợi cho đến khi quá trình có tên winlogon.exe bắt đầu, trước khi thực hiện bất kỳ hành động nào khác. Khi quá trình đã bắt đầu, trình điều khiển giải mã nhị phân trình tải xuống HTTP, đưa nó vào không gian địa chỉ của winlogon.exe và thực thi nó trong một luồng mới. Sau đó, trình điều khiển tiếp tục kiểm tra định kỳ xem luồng có còn chạy hay không và lặp lại việc tiêm nếu cần. Trình tải xuống HTTP sẽ không được triển khai nếu trình điều khiển phát hiện trình gỡ lỗi hạt nhân.

Bảo vệ các tệp bootkit trên ESP khỏi bị xóa​

Để bảo vệ các tệp của bootkit nằm trên ESP, trình điều khiển hạt nhân sử dụng một thủ thuật đơn giản. Nó mở tất cả các tệp mà nó muốn bảo vệ, sao chép và lưu các tay cầm của chúng và sử dụng chức năng hạt nhân ObSetHandleAttributes chỉ định cờ ProtectFromClose bên trong tham số HandleFlags (OBJECT_HANDLE_FLAG_INFORMATION) thành 1 - do đó bảo vệ các xử lý khỏi bị đóng bởi bất kỳ quy trình nào khác. Điều này sẽ ngăn chặn mọi nỗ lực xóa hoặc sửa đổi các tệp được bảo vệ. Các tệp sau được bảo vệ:

  • ESP:\EFI\Microsoft\Boot\winload.efi
  • ESP:\EFI\Microsoft\Boot\bootmgfw.efi
  • ESP:\EFI\Microsoft\Boot\grubx64.efi
Nếu người dùng cố gắng xóa các tệp được bảo vệ này, điều gì đó giống như những gì được hiển thị trong Hình 15 sẽ xảy ra.


Hình 15. Một nỗ lực để xóa các tập tin được bảo vệ bởi trình điều khiển BlackLotus
Là một lớp bảo vệ khác, trong trường hợp người dùng hoặc phần mềm bảo mật có thể bỏ đặt cờ bảo vệ và đóng tay cầm, trình điều khiển hạt nhân liên tục theo dõi chúng và gây ra BSOD bằng cách gọi chức năng KeBugCheck (INVALID_KERNEL_HANDLE) nếu bất kỳ tay cầm nào không tồn tại nữa.

Giải giáp quy trình Windows Defender chính​

Trình điều khiển hạt nhân cũng cố gắng giải giáp quy trình Windows Defender chính – MsMpEng.exe. Nó làm như vậy bằng cách loại bỏ tất cả các đặc quyền mã thông báo của quy trình bằng cách đặt thuộc tính SE_PRIVILEGE_REMOVED cho từng đặc quyền mã thông báo. Do đó, quy trình Defender sẽ không thể thực hiện công việc của mình - chẳng hạn như quét tệp - đúng cách. Tuy nhiên, vì chức năng này được triển khai kém, nó có thể không hiệu quả bằng cách khởi động lại quy trình MsMpEng.exe.

Giao tiếp với trình tải xuống HTTP​

Trình điều khiển hạt nhân có khả năng giao tiếp với trình tải xuống HTTP bằng cách sử dụng Sự kiện và Phần có tên. Tên của các đối tượng được đặt tên được sử dụng được tạo dựa trên địa chỉ MAC của bộ điều hợp mạng (ethernet) của nạn nhân. Nếu giá trị của octet thấp hơn 16, thì 16 được thêm vào nó. Định dạng của tên đối tượng được tạo có thể khác nhau trong các mẫu khác nhau. Ví dụ: trong một trong các mẫu mà chúng tôi đã phân tích, đối với địa chỉ MAC 00-1c-0b-cd-ef-34, các tên được tạo sẽ là:

  • \BaseNamedObjects\101c1b: cho phần được đặt tên (chỉ có ba octet đầu tiên của MAC được sử dụng)
  • \BaseNamedObjects\Z 01c1b: cho sự kiện đã đặt tên – giống như đối với Phần, nhưng chữ số đầu tiên của địa chỉ MAC được thay thế bằng Z
Trong trường hợp trình tải xuống HTTP muốn chuyển một số lệnh cho trình điều khiển hạt nhân, nó chỉ cần tạo một phần được đặt tên, viết lệnh với dữ liệu liên quan bên trong và đợi trình điều khiển xử lý lệnh bằng cách tạo một sự kiện được đặt tên và đợi cho đến khi trình điều khiển kích hoạt (hoặc báo hiệu) nó.

Trình điều khiển hỗ trợ các lệnh tự giải thích sau:

  • Cài đặt trình điều khiển hạt nhân
  • Gỡ cài đặt BlackLotus
Một người đọc cẩn thận có thể nhận thấy điểm yếu của BlackLotus ở đây - mặc dù bootkit bảo vệ các thành phần của nó chống lại việc loại bỏ, trình điều khiển hạt nhân có thể bị lừa để gỡ cài đặt hoàn toàn bootkit bằng cách tạo các đối tượng được đặt tên ở trên và gửi lệnh gỡ cài đặt đến nó.

Trình tải xuống HTTP​

Thành phần cuối cùng chịu trách nhiệm giao tiếp với máy chủ C&C và thực thi bất kỳ lệnh C&C nào nhận được từ nó. Tất cả các trọng tải mà chúng tôi có thể khám phá đều chứa ba lệnh. Các lệnh này rất đơn giản và như tên phần cho thấy, nó chủ yếu là về việc tải xuống và thực hiện các tải trọng bổ sung bằng các kỹ thuật khác nhau.

Truyền thông C&C​

Để giao tiếp với C&C, bộ tải HTTP sử dụng giao thức HTTPS. Tất cả thông tin cần thiết cho giao tiếp được nhúng trực tiếp vào tệp nhị phân của trình tải xuống - bao gồm các miền C&C và đường dẫn tài nguyên HTTP được sử dụng. Khoảng thời gian mặc định để giao tiếp với máy chủ C&C được đặt thành một phút, nhưng có thể được thay đổi dựa trên dữ liệu từ C&C. Mỗi phiên giao tiếp với một C&C bắt đầu bằng việc gửi một thông báo HTTP POST đèn hiệu đến nó. Trong các mẫu chúng tôi đã phân tích, các đường dẫn tài nguyên HTTP sau đây có thể được chỉ định trong tiêu đề HTTP POST:

  • /network/API/hpb_gate[.] thô
  • /API/hpb_gate[.] thô
  • /cổng[.] thô
  • /hpb_gate[.] thô
Dữ liệu tin nhắn đèn hiệu được thêm vào bằng chuỗi checkin =, chứa thông tin cơ bản về máy bị xâm nhập - bao gồm mã định danh máy tùy chỉnh (được gọi là HWID), trạng thái Khởi động an toàn UEFI, thông tin phần cứng khác nhau và giá trị dường như là số bản dựng BlackLotus. HWID được tạo từ địa chỉ MAC của máy (ethernet) và số sê-ri ổ đĩa hệ thống. Định dạng của tin nhắn trước khi mã hóa như trong Hình 16


1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"HWID":"%s",
"Session":"%lu",
"Owner":"%s",
"IP":"%s",
"OS":"%s",
"Edition":"%s",
"CPU":"%s",
"GPU":"%s",
"RAM":"%lu",
"Integrity":"%lu",
"SecureBoot":"%i",
"Build":"%lu"
}


Hình 16. Định dạng của tin nhắn đèn hiệu

Trước khi gửi tin nhắn đến C&C, dữ liệu trước tiên được mã hóa bằng khóa RSA được nhúng, sau đó được mã hóa base64 an toàn cho URL. Trong quá trình phân tích, chúng tôi đã tìm thấy hai khóa RSA khác nhau đang được sử dụng trong các mẫu. Một ví dụ về yêu cầu đèn hiệu HTTP như vậy được hiển thị trong Hình 17.


Hình 17. Ví dụ về thông báo HTTP POST đèn hiệu (được tạo bởi một mẫu từ VirusTotal - mẫu có IP cục bộ thay vì địa chỉ C&C thực)
Dữ liệu nhận được từ C&C dưới dạng phản hồi cho thông báo đèn hiệu sẽ bắt đầu bằng giá trị ma thuật hai byte HP; nếu không, phản hồi sẽ không được xử lý thêm. Nếu giá trị ma thuật là chính xác, dữ liệu theo giá trị ma thuật sẽ được giải mã bằng AES 256 bit ở chế độ CBC với chuỗi HWID đã đề cập ở trên được sử dụng làm khóa.

Sau khi giải mã, thư tương tự như đèn hiệu, chuỗi định dạng JSON và chỉ định mã định danh lệnh (được gọi là Type) và các tham số bổ sung khác nhau như:

  • Khoảng thời gian giao tiếp C&C
  • Phương pháp thực hiện để sử dụng
  • Tên tệp tải trọng
  • Loại tải trọng dựa trên phần mở rộng tệp (.sys, .exe hoặc .dll được hỗ trợ)
  • Mã thông báo xác thực được cho là được sử dụng để yêu cầu tải xuống dữ liệu tải xuống dữ liệu tải trọng
  • Khóa AES được sử dụng để giải mã dữ liệu tải trọng
Tất cả các lệnh được hỗ trợ và mô tả của chúng được liệt kê trong Bảng 2.

Bảng 2. Lệnh C&C

Loại lệnhMô tả lệnh
1Tải xuống và thực thi trình điều khiển hạt nhân, DLL hoặc tệp thực thi thông thường
2Tải xuống tải trọng, gỡ cài đặt bootkit và thực thi tải trọng - có thể được sử dụng để cập nhật bootkit
3Gỡ cài đặt bootkit và thoát
Trong các lệnh này, C&C có thể chỉ định, liệu trọng tải trước tiên nên được thả vào đĩa trước khi thực thi hay được thực thi trực tiếp trong bộ nhớ. Trong các trường hợp liên quan đến việc thả tệp vào đĩa, thư mục ProgramData trên ổ đĩa HĐH được sử dụng làm thư mục đích và tên tệp và phần mở rộng được chỉ định bởi máy chủ C&C. Trong trường hợp thực thi các tệp trực tiếp trong bộ nhớ, svchost.exe được sử dụng làm mục tiêu tiêm. Khi C&C gửi lệnh yêu cầu hợp tác trình điều khiển hạt nhân hoặc người vận hành muốn thực thi mã ở chế độ kernel, cơ chế được mô tả trong phần Giao tiếp với trình tải xuống HTTP sẽ được sử dụng.

Thủ thuật chống phân tích​

Để làm cho việc phát hiện và phân tích phần mềm độc hại này trở nên khó khăn hơn, tác giả của nó đã cố gắng hạn chế khả năng hiển thị các thành phần lạ của tệp tiêu chuẩn, chẳng hạn như chuỗi văn bản, nhập hoặc dữ liệu nhúng không được mã hóa khác ở mức tối thiểu. Dưới đây là tóm tắt các kỹ thuật được sử dụng.

  • Mã hóa chuỗi và dữ liệu
    • Tất cả các chuỗi được sử dụng trong các mẫu được mã hóa bằng mật mã đơn giản.
    • Tất cả các tệp nhúng được mã hóa bằng AES 256 bit ở chế độ CBC.
    • Khóa mã hóa cho các tệp riêng lẻ có thể khác nhau giữa các mẫu.
    • Ngoài mã hóa AES, một số tệp cũng được nén bằng LZMS.
  • Độ phân giải API chỉ trong thời gian chạy
    • Trong tất cả các mẫu (nếu có), các API Windows luôn được giải quyết riêng trong thời gian chạy và hàm băm thay vì tên hàm được sử dụng để tìm địa chỉ hàm API mong muốn trong bộ nhớ.
    • Trong một số trường hợp, một lệnh gọi lệnh syscall trực tiếp được sử dụng để gọi chức năng hệ thống mong muốn.
  • Truyền thông mạng
    • Giao tiếp bằng HTTPS.
    • Tất cả các tin nhắn được gửi đến C&C bằng trình tải xuống HTTP đều được mã hóa bằng khóa công khai RSA được nhúng.
    • Tất cả các tin nhắn được gửi từ C&C đến trình tải xuống HTTP đều được mã hóa bằng khóa có nguồn gốc từ môi trường máy của nạn nhân hoặc sử dụng khóa AES do C&C cung cấp.
  • Thủ thuật chống gỡ lỗi và chống VM - nếu được sử dụng, thường được đặt ngay tại đầu điểm nhập. Chỉ các thủ thuật phát hiện hộp cát hoặc trình gỡ lỗi thông thường mới được sử dụng.

Giảm thiểu và khắc phục​

  • Trước hết, tất nhiên, giữ cho hệ thống của bạn và sản phẩm bảo mật của nó được cập nhật là điều bắt buộc - để nâng cao khả năng mối đe dọa sẽ bị ngăn chặn ngay từ đầu, trước khi nó có thể đạt được sự bền bỉ trước hệ điều hành.
  • Sau đó, bước quan trọng cần được thực hiện để ngăn chặn việc sử dụng các tệp nhị phân UEFI dễ bị tấn công đã biết để bỏ qua UEFI Secure Boot là việc thu hồi chúng trong cơ sở dữ liệu thu hồi UEFI (dbx) - trên hệ thống Windows, các bản cập nhật dbx nên được phân phối bằng Windows Updates.
  • Vấn đề là việc thu hồi các tệp nhị phân Windows UEFI được sử dụng rộng rãi có thể dẫn đến việc làm cho hàng nghìn hệ thống lỗi thời, hình ảnh khôi phục hoặc bản sao lưu không thể khởi động được - và do đó, việc thu hồi thường mất quá nhiều thời gian.
  • Lưu ý rằng việc thu hồi các ứng dụng Windows được sử dụng bởi BlackLotus sẽ ngăn chặn việc cài đặt bootkit, nhưng vì trình cài đặt sẽ thay thế bộ nạp khởi động của nạn nhân bằng bộ tải bị thu hồi, nó có thể khiến hệ thống không thể khởi động được. Để khôi phục trong trường hợp này, cài đặt lại hệ điều hành hoặc chỉ khôi phục ESP sẽ giải quyết vấn đề.
  • Nếu việc thu hồi xảy ra sau khi sự kiên trì của BlackLotus được thiết lập, bootkit sẽ vẫn hoạt động, vì nó sử dụng miếng chêm hợp pháp với khóa MOK tùy chỉnh để duy trì sự bền bỉ. Trong trường hợp này, giải pháp giảm thiểu an toàn nhất sẽ là cài đặt lại Windows và xóa khóa MOK đã đăng ký của kẻ tấn công bằng cách sử dụng tiện ích mokutil (cần có sự hiện diện vật lý để thực hiện thao tác này do tương tác người dùng cần thiết với Trình quản lý MOK trong quá trình khởi động).

Bài học rút ra​

Nhiều lỗ hổng nghiêm trọng ảnh hưởng đến bảo mật của hệ thống UEFI đã được phát hiện trong vài năm qua. Thật không may, do sự phức tạp của toàn bộ hệ sinh thái UEFI và các vấn đề liên quan đến chuỗi cung ứng, nhiều lỗ hổng trong số này đã khiến nhiều hệ thống dễ bị tổn thương thậm chí một thời gian dài sau khi các lỗ hổng đã được khắc phục - hoặc ít nhất là sau khi chúng tôi được thông báo rằng chúng đã được sửa. Để có hình ảnh đẹp hơn, đây là một số ví dụ về lỗi vá hoặc thu hồi cho phép UEFI Secure Boot bỏ qua chỉ từ năm ngoái:

  • Trước hết, tất nhiên, CVE-2022-21894 – lỗ hổng bị khai thác bởi BlackLotus. Một năm kể từ khi lỗ hổng được khắc phục, các tệp nhị phân UEFI dễ bị tấn công vẫn không bị thu hồi, cho phép các mối đe dọa như BlackLotus lén lút hoạt động trên các hệ thống có bật UEFI Secure Boot, do đó mang lại cho nạn nhân cảm giác an toàn sai lầm.
  • Đầu năm 2022, chúng tôi đã tiết lộ một số lỗ hổng UEFI cho phép, trong số những thứ khác, vô hiệu hóa UEFI Secure Boot. Nhiều thiết bị bị ảnh hưởng không được OEM hỗ trợ nữa, do đó không được sửa chữa (mặc dù các thiết bị này không quá cũ - như 3-5 năm tại thời điểm tiết lộ lỗ hổng bảo mật). Đọc thêm trong blogpost của chúng tôi: Khi "an toàn" hoàn toàn không an toàn: Các lỗ hổng UEFI tác động cao được phát hiện trong máy tính xách tay tiêu dùng Lenovo
  • Cuối năm 2022, chúng tôi đã phát hiện ra một số lỗ hổng UEFI khác, việc khai thác của chúng cũng sẽ cho phép kẻ tấn công vô hiệu hóa UEFI Secure Boot rất dễ dàng. Như đã chỉ ra bởi các nhà nghiên cứu đồng nghiệp từ Binarly, một số thiết bị được liệt kê trong tư vấn đã không được vá hoặc không được vá chính xác, thậm chí vài tháng sau khi tư vấn - khiến các thiết bị dễ bị tấn công. Không cần phải nói, tương tự như trường hợp trước, một số thiết bị sẽ dễ bị tấn công mãi mãi, vì chúng đã đến ngày Kết thúc Hỗ trợ.
Chỉ còn là vấn đề thời gian trước khi ai đó tận dụng những lỗi này và tạo ra một bootkit UEFI có khả năng hoạt động trên các hệ thống có bật UEFI Secure Boot. Như chúng tôi đã đề xuất vào năm ngoái trong bài thuyết trình RSA của mình, tất cả những điều này làm cho việc chuyển sang ESP trở nên khả thi hơn đối với những kẻ tấn công và là một con đường khả thi cho các mối đe dọa UEFI - sự tồn tại của BlackLotus đã xác nhận điều này.



ESET Research cung cấp các báo cáo thông tin APT riêng và nguồn cấp dữ liệu. Đối với bất kỳ câu hỏi nào về dịch vụ này, hãy truy cập trang ESET Threat Intelligence.


IOC​

Tập tin​

SHA-1 ·FilenameDetectionMô tả:__________
05846D5B1D37EE2D716140DE4F4F984CF1E631D1N/AWin64/BlackLotus.ATrình cài đặt BlackLotus.
A5A530A91100ED5F07A5D74698B15C646DD44E16N/AWin64/BlackLotus.ATrình cài đặt BlackLotus.
D82539BFC2CC7CB504BE74AC74DF696B13DB486AN/AWin64/BlackLotus.ATrình cài đặt BlackLotus.
16B12CEA54360AA42E1120E82C1E9BC0371CB635N/AWin64/BlackLotus.ATrình cài đặt BlackLotus.
DAE7E7C4EEC2AC0DC7963C44A5A4F47D930C5508N/AWin64/BlackLotus.ATrình cài đặt BlackLotus.
45701A83DEC1DC71A48268C9D6D205F31D9E7FFBN/AWin64/BlackLotus.ATrình cài đặt BlackLotus.
2CE056AE323B0380B0E87225EA0AE087A33CD316N/AEFI/ĐenLotus.BBộ bootkit UEFI BlackLotus.
5A0074203ABD5DEB464BA0A79E14B7541A033216N/AEFI/ĐenLotus.BBộ bootkit UEFI BlackLotus.
5DC9CBD75ABD830E83641A0265BFFDDD2F602815N/AEFI/ĐenLotus.BBộ bootkit UEFI BlackLotus.
97AEC21042DF47D39AC212761729C6BE484D064DN/AEFI/ĐenLotus.BBộ bootkit UEFI BlackLotus.
ADCEEC18FF009BED635D168E0B116E72096F18D2N/AEFI/ĐenLotus.BBộ bootkit UEFI BlackLotus.
DBC064F757C69EC43517EFF496146B43CBA949D1N/AEFI/ĐenLotus.BBộ bootkit UEFI BlackLotus.
06AF3016ACCDB3DFE1C23657BF1BF91C13BAA757N/AWin64/BlackLotus.BTrình tải xuống BlackLotus HTTP.
0C0E78BF97116E781DDE0E00A1CD0C29E68D623DN/AWin64/BlackLotus.BTrình tải xuống BlackLotus HTTP.
6D8CEE28DA8BCF25A4D232FEB0810452ACADA11DN/AWin64/BlackLotus.BTrình tải xuống BlackLotus HTTP.
74FF58FCE8F19083D16DF0109DC91D78C94342FAN/AWin64/BlackLotus.BTrình tải xuống BlackLotus HTTP.
ACC74217CBE3F2E727A826B34BDE482DCAE15BE6N/AWin64/BlackLotus.BTrình tải xuống BlackLotus HTTP.
111C4998F3264617A7A9D9BF662D4B1577445B20N/AWin64/BlackLotus.BTrình tải xuống BlackLotus HTTP.
17FA047C1F979B180644906FE9265F21AF5B0509N/AWin64/BlackLotus.CTrình điều khiển hạt nhân BlackLotus.
1F3799FED3CF43254FE30DCDFDB8DC02D82E662BN/AWin64/BlackLotus.CTrình điều khiển hạt nhân BlackLotus.
4B882748FAF2C6C360884C6812DD5BCBCE75EBFFN/AWin64/BlackLotus.CTrình điều khiển hạt nhân BlackLotus.
91F832F46E4C38ECC9335460D46F6F71352CFFEDN/AWin64/BlackLotus.CTrình điều khiển hạt nhân BlackLotus.
994DC79255AEB662A672A1814280DE73D405617AN/AWin64/BlackLotus.CTrình điều khiển hạt nhân BlackLotus.
FFF4F28287677CAABC60C8AB36786C370226588DN/AWin64/BlackLotus.CTrình điều khiển hạt nhân BlackLotus.
71559C3E2F3950D4EE016F24CA54DA17D28B9D82N/AẢnh: EFI/BlackLotus.CKho dữ liệu cấu hình khởi động BlackLotus (BCD) do trình cài đặt BlackLotus bỏ qua.
D6D3F3151B188A9DA62DEB95EA1D1ABEFF257914N/AẢnh: EFI/BlackLotus.CKho dữ liệu cấu hình khởi động BlackLotus (BCD) do trình cài đặt BlackLotus bỏ qua.
547FAA2D64B85BF883955B723B07635C0A09326BN/AEFI/BlackLotus.ABlackLotus CVE-2022-21894 khai thác tải trọng.
D1BBAA3D408E944C70B3815471EED7FA9AEE6425N/AEFI/BlackLotus.ABlackLotus CVE-2022-21894 khai thác tải trọng.
0E6DD7110C38464ECAA55EE4E2FA303ADA0EDEFBN/AEFI/BlackLotus.ATải trọng khai thác BlackLotus CVE-2022-21894 - Ứng dụng MokInstaller EFI.
D6BB89D8734B3E49725362DAE9A868AE681E8BD6N/AEFI/BlackLotus.ATải trọng khai thác BlackLotus CVE-2022-21894 - Ứng dụng MokInstaller EFI.
164BB587109CFB20824303AD1609A65ABB36C3E9N/AWin64/BlackLotus.DBlackLotus cài đặt mô-đun bỏ qua UAC.

Giấy chứng nhận​

Số sê-ri570B5D22B723B4A442CC6EEEBC2580E8
Dấu vân tayC8E6BF8B6FDA161BBFA5470BCC262B1BDC92A359
Chủ đề CNKhi họ khóc CA
Chủ đề ON/A
Môn học LN/A
Chủ đề SN/A
Môn học CN/A
Có giá trị từ2022-08-13 17:48:44
Có giá trị để2032-08-13 17:58:44

Mạng lưới​

IPMiềnNhà cung cấp dịch vụ lưu trữLần đầu tiên nhìn thấyChi tiết
N/Axrepositoryx[.] TênN/A2022‑10‑17BlackLotus C&C. https://xrepositoryx[.] tên/mạng/API/hpb_gate.php
N/AMyRepositoryX[.] .comN/A2022‑10‑16BlackLotus C&C.
https://myrepositoryx[.] com/network/API/hpb_gate.php
104.21.22[.] 185erdjknfweklsgwfmewfgref[.] .comTập đoàn Cloudflare2022‑10‑06BlackLotus C&C.
https://erdjknfweklsgwfmewfgref[.] com/API/hpb_gate.php
164.90.172[.] 211Harrysucksdick[.] .comKỹ thuật sốOcean, LLC2022‑10‑09BlackLotus C&C.
https://harrysucksdick[.] com/API/hpb_gate.php
185.145.245[.] 123Heikickgn[.] .com
Frasirishiproc[.] .com
SIA VEESP2022‑10‑12BlackLotus C&C.
https://heikickgn[.] com/API/hpb_gate.php
https://frassirishiproc[.] com/API/hpb_gate.php
185.150.24[.] 114kho lưu trữ của tôi[.] TênTrung tâm Dữ liệu SkyLink BV2022‑10‑14BlackLotus C&C.
kho lưu trữ của tôi[.] tên/mạng/API/hpb_gate.php
190.147.189[.] 122Egscorp[.] mạngTelmex Colombia Sa2022‑08‑24BlackLotus C&C.
https://egscorp[.] net/API/hpb_gate.php

Kỹ thuật MITRE ATT&CK​

Bảng này được xây dựng bằng cách sử dụng phiên bản 12 của khung MITRE ATT&CK.

TacticIDTênMô tả:__________
Tài nguyên DevelpmentT1587.002 ·Phát triển khả năng: Chứng chỉ ký mãMột số mẫu BlackLotus được ký bằng chứng chỉ tự ký.
T1588.005 ·Có được khả năng: Khai thácBlackLotus đã sử dụng khai thác được biết đến công khai để vượt qua UEFI Secure Boot.
Thực hiệnT1203 ·Khai thác để thực hiện khách hàngTrình cài đặt BlackLotus có thể khai thác CVE-2022-21894 để đạt được thực thi mã tùy ý trên các hệ thống có bật UEFI Secure Boot.
T1559 ·Giao tiếp giữa các quy trìnhTrình tải xuống BlackLotus HTTP sử dụng phần được đặt tên để chuyển các lệnh đến thành phần chế độ kernel.
T1106 ·API gốcTrình tải xuống BlackLotus HTTP sử dụng các API Windows gốc khác nhau để đạt được thực thi mã trên máy bị xâm phạm.
T1129 ·Mô-đun chia sẻTrình tải xuống BlackLotus HTTP có thể tải và thực thi các DLL nhận được từ máy chủ C&C.
PersistenceT1542.003 ·Khởi động trước hệ điều hành: BootkitBlackLotus bootkit được triển khai trên EFI System Partition và được thực thi trong quá trình khởi động.
Đặc quyền leo thangT1548.002 ·Cơ chế kiểm soát độ cao lạm dụng: Bỏ qua kiểm soát tài khoản người dùngTrình cài đặt BlackLotus cố gắng leo thang đặc quyền bằng cách bỏ qua Kiểm soát tài khoản người dùng.
T1134.002 ·Thao tác access token: Create Process with TokenTrình tải xuống BlackLotus HTTP có thể sử dụng WTSQueryUserToken và CreateProcessAsUserW để thực thi tải trọng đã tải xuống trong một quy trình mới với các đặc quyền hệ thống cục bộ.
Trốn tránh quốc phòngT1622 ·Trình gỡ lỗi trốn tránhCác thành phần của BlackLotus sử dụng các kỹ thuật khác nhau để phát hiện xem trình gỡ lỗi chế độ hạt nhân hay chế độ người dùng đang chạy trên nạn nhân.
T1574 ·Hijack Execution FlowBlackLotus bootkit chiếm quyền điều khiển các thành phần khác nhau có trong giai đoạn đầu quá trình khởi động Windows (Trình quản lý khởi động Windows, trình tải hệ điều hành Windows, nhân Windows và trình điều khiển cụ thể) để tránh bị phát hiện bằng cách hủy kích hoạt các tính năng bảo mật khác nhau của Windows (VBS, Windows Defender) và lén lút thực thi các thành phần chế độ hạt nhân và chế độ người dùng của nó
T1562 ·Làm suy yếu khả năng phòng thủCác thành phần BlackLotus có thể vô hiệu hóa BitLocker và Windows Defender để tránh bị phát hiện.
T1070.004 ·Loại bỏ chỉ báo: Xóa tệpTrình cài đặt BlackLotus sẽ tự xóa sau khi triển khai thành công các tệp vào phân vùng Hệ thống EFI. Cũng sau khi khai thác thành công CVE-2022-21894, BlackLotus loại bỏ dấu vết khai thác bằng cách xóa tất cả các tệp có trong chuỗi khai thác khỏi EFI System Partition.
T1070.009 ·Loại bỏ chỉ số: Sự kiên trì rõ ràngBlackLotus có thể tự gỡ cài đặt bằng cách xóa tất cả các tệp bootkit khỏi ESP và khôi phục Windows Boot Manager của nạn nhân ban đầu.
T1036.005 ·Masquerading: Khớp với tên hoặc vị trí hợp phápBlackLotus cố gắng ẩn các tệp tin của mình được triển khai trên ESP bằng cách sử dụng tên tệp tin hợp pháp, chẳng hạn như grubx64.efi (nếu UEFI Secure Boot được bật trên máy bị xâm phạm) hoặc bootmgfw.efi (nếu UEFI Secure Boot bị vô hiệu hóa trên máy bị xâm phạm).
T1112 ·Sửa đổi RegistryTrình cài đặt BlackLotus sửa đổi sổ đăng ký Windows để vô hiệu hóa tính năng bảo mật HVCI của Windows.
T1027 ·Tệp hoặc thông tin bị xáo trộnHầu hết tất cả các chuỗi nhúng trong các thành phần BlackLotus đều được mã hóa bằng mật mã kết hợp tùy chỉnh và chỉ được giải mã khi cần thiết.
T1027.007 ·Thông tin hoặc tệp bị xáo trộn: Độ phân giải API độngCác thành phần BlackLotus sử dụng độ phân giải API động trong khi sử dụng hàm băm của tên API thay vì tên.
T1027.009 ·Thông tin hoặc tệp bị xáo trộn: Tải trọng được nhúngHầu hết tất cả các tệp được nhúng trong các thành phần BlackLotus đều được mã hóa bằng AES.
T1542.003 ·Khởi động trước hệ điều hành: BootkitBlackLotus bootkit được triển khai trên EFI System Partition và được thực thi trong giai đoạn khởi động hệ điều hành đầu tiên, và do đó có khả năng kiểm soát quá trình khởi động hệ điều hành và tránh bị phát hiện.
T1055.012 ·Process Injection: Thư viện liên kết động InjectionBlackLotus HTTP downloader có thể tiêm một DLL vào một quá trình svchost.exe mới được tạo bằng cách sử dụng quá trình rỗng.
T1055.002 ·Quá trình tiêm: Portable Executable InjectionTrình điều khiển BlackLotus đưa tệp thực thi di động trình tải xuống HTTP vào quy trình .exe winlogon.
T1014 ·Bộ rootkitTrình điều khiển hạt nhân BlackLotus bảo vệ các tệp bootkit trên ESP khỏi bị xóa.
T1497.001 ·Ảo hóa / Sandbox Evaion: Kiểm tra hệ thốngBlackLotus sử dụng các kiểm tra hệ thống khác nhau bao gồm kiểm tra các giá trị đăng ký dành riêng cho hộp cát, để phát hiện và tránh môi trường ảo hóa và phân tích.
Khám pháT1622 ·Trình gỡ lỗi trốn tránhCác thành phần của BlackLotus sử dụng các kỹ thuật khác nhau để phát hiện xem trình gỡ lỗi chế độ hạt nhân hay chế độ người dùng đang chạy trên nạn nhân.
T1082 ·Khám phá thông tin hệ thốngBlackLotus thu thập thông tin hệ thống (IP, GPU, CPU, bộ nhớ, phiên bản hệ điều hành) trên một máy chủ bị xâm nhập.
T1614 ·Khám phá vị trí hệ thốngBlackLotus có thể thoát nếu một trong các ngôn ngữ hệ thống sau được xác định trên máy chủ bị xâm nhập: ro-MD, ru-MD, ru-RU, uk-UA, be-BY, hy-AM, kk-KZ.
T1016 ·Khám phá cấu hình mạng hệ thốngTrình tải xuống BlackLotus HTTP có thể xác định IP công cộng của một máy chủ bị xâm phạm bằng cách yêu cầu api.ipify [.] dịch vụ tổ chức.
T1016.001 ·Khám phá cấu hình mạng hệ thống: Khám phá kết nối InternetTrình tải xuống BlackLotus HTTP kiểm tra kết nối internet bằng cách truy vấn www.msftncsi của Microsoft [.] com/ncsi[.] .txt
T1497.001 ·Ảo hóa / Sandbox Evaion: Kiểm tra hệ thốngBlackLotus sử dụng các kiểm tra hệ thống khác nhau bao gồm kiểm tra các giá trị đăng ký dành riêng cho hộp cát, để phát hiện và tránh môi trường ảo hóa và phân tích.
Chỉ huy và điều khiểnT1071.001 ·Giao thức lớp ứng dụng: Giao thức webBlackLotus sử dụng HTTPS để giao tiếp với C&C của mình.
T1132.001 ·Mã hóa dữ liệu: Mã hóa tiêu chuẩnBlackLotus mã hóa dữ liệu được mã hóa trong giao tiếp C&C với base64 an toàn với URL64.
T1573.001 ·Kênh được mã hóa: Mật mã đối xứngBlackLotus sử dụng AES 256-bit ở chế độ CBC để giải mã các tin nhắn nhận được từ C&C.
T1573.002 ·Kênh được mã hóa: Mật mã không đối xứngBlackLotus sử dụng khóa công khai RSA nhúng để mã hóa các tin nhắn được gửi đến C&C.



Martin Smolár
1/03/2023 - 11:30 sáng
 

Nguyentu

Búa Gỗ
Sau khi dùng gg dịch có thể kiểm tra lại 1 chút ko, ng up bài quá cẩu thả đi, đọc khó chịu thật sự
 

kinhvaf

Rìu Bạc
Nguồn gốc: https://www.welivesecurity.com/2023/03/01/blacklotus-uefi-bootkit-myth-confirmed/
Cập nhật ngày 01/03/2023
Công cụ dịch thuật: Mate
Cảm ơn bác, dịch và biên soạn lại rất chi tiết {EMO_028}
 

Fusin

Rìu Sắt
Chịu thôi, đến trình phát triển virus như vậy thì đề phòng cách nào cũng khó thoát. Vậy nên cách đề phòng tốt nhất vẫn là truyền thống nhất, trong máy tính không có gì cả.
 

thuyanbui

Rìu Chiến Vàng Chấm
Thế thì không update bios/uefi là một lựa chọn sáng suốt rồi Bác nhỉ.
Hahahaha, nhưng đã là dân vọc vặc mà không update nghĩ cũng kỳ ha bạn. Nói thế thôi chứ nếu nhà sản xuất có bản vá hay nâng cấp là up thôi, nhất là bios cần luôn ở tình trạng tốt nhất để đủ điều kiện thưởng thức Win new hay các tiện ích khác chứ.
 
T

terrifypole

Cảm ơn bạn đã thông cảm, Google mắc nhiều lỗi khi dịch từ tiếng Tây Ban Nha sang tiếng Việt. Chúc một ngày tốt lành {hug}
me gusta mucho tu forma de hablar, btw I use archhh.
 
Sửa lần cuối bởi điều hành viên:


Top