Code-Signed malware là gì và tránh malware này như thế nào?

Code signing là phương pháp sử dụng chữ ký số dựa trên chứng chỉ cho một phần mềm để hệ điều hành và người dùng xác định độ an toàn của nó. Chỉ có các phần mềm đúng mới có thể sử dụng chữ ký số tương ứng của nó.

Người dùng có thể tải, cài đặt an toàn phần mềm và các nhà phát triển bảo vệ danh tiếng sản phẩm của họ với Code signing. Tuy nhiên, hacker và các nhà phân phối phần mềm độc hại đang sử dụng hệ thống chính xác đó để mã độc có thể thông qua các bộ phần mềm diệt virus và các chương trình bảo mật khác. Vậy Code-signed malware là gì và nó hoạt động như thế nào?

Code Signed malware là gì?

Khi phần mềm được ký số, nghĩa là nó có chữ ký số chính thức. Certificate Authority cấp chứng chỉ cho một phần mềm để xác định phần mềm đó là hợp pháp và an toàn sử dụng.

Người dùng sẽ không phải lo lắng vì hệ điều hành sẽ kiểm tra chứng chỉ và xác minh chữ ký số đó. Ví dụ, Windows sử dụng chuỗi chứng chỉ (certificate chain) có chứa tất cả các chứng chỉ cần thiết để đảm bảo phần mềm hợp pháp.

Chuỗi chứng chỉ chứa tất cả các chứng chỉ cần thiết để chứng nhận đối tượng được xác định bởi chứng chỉ cuối. Thực tế, nó gồm chứng chỉ cuối, chứng chỉ CA trung gian và chứng chỉ CA gốc được tất cả các bên trong chuỗi tin cậy. Mỗi chứng chỉ CA trung gian trong chuỗi chứa một chứng chỉ do CA trên nó một bậc cấp. CA gốc phát hành chứng chỉ cho chính nó.

Khi hệ thống hoạt động, bạn có thể tin tưởng vào phần mềm, hệ thống Code signing và CA. Malware là phần mềm độc hại, không đáng tin cậy và không có quyền truy cập vào Certificate Authority hoặc Code signing.

Hacker đánh cắp chứng chỉ từ Certificate Authority

Phần mềm diệt virus biết malware là độc hại vì nó ảnh hưởng xấu đến hệ thống của bạn. Nó kích hoạt cảnh báo, người dùng báo cáo sự cố và phần mềm diệt virus có thể tạo chữ ký phần mềm độc hại để bảo vệ máy tính khác sử dụng cùng một công cụ diệt virus.

Tuy nhiên nếu các nhà tạo malware có thể ký mã độc sử dụng chữ kỹ số chính thức, thì quá trình trên sẽ không xảy ra. Thay vào đó, Code-singed malware có thể xâm nhập vào hệ thống bằng con đường chính thức bởi vì phần mềm diệt virus và hệ điều hành của bạn không phát hiện ra bất cứ điều gì nguy hiểm.

Theo nghiên cứu của Trend Micro, toàn bộ thị trường malware đang tập trung hỗ trợ phát triển và phân phối Code-signed malware. Các nhà khai thác malware có quyền truy cập vào các chứng chỉ hợp lệ sử dụng để ký mã độc. Bảng dưới đây cho thấy số lượng malware sử dụng Code signing để trốn tránh phần mềm diệt virus kể từ tháng 4/2018.

Bảng thống kê code-signed malware

Nghiên cứu của Trend Micro cũng cho thấy khoảng 66% malware có chữ ký số. Ngoài ra, có một số loại malware cụ thể có nhiều phiên bản chữ ký số như Trojan, dropper và ransomware.

Chứng chỉ số Code signing đến từ đâu?

Các nhà phân phối và phát triển phần mềm độc hại có hai cách để tạo code-signed malware. Họ ăn cắp chứng chỉ từ Certificate Authority bằng cách trực tiếp hoặc mua lại hoặc giả mạo một tổ chức hợp pháp và yêu cầu chứng chỉ từ CA.

Như các bạn có thể thấy, CA không phải là nơi duy nhất các hacker nhắm đến. Các nhà phân phối có quyền truy cập vào các chứng chỉ hợp pháp có thể bán chứng chỉ có chữ ký số tin cậy cho các nhà phát triển và phân phối malware.

Một nhóm nghiên cứu bảo mật của trường Masaryk University ở Cộng hòa Séc và Trung tâm Maryland Cybersecurity Center đã phát hiện ra 4 tổ chức bán chứng chỉ Microsoft Authenticode cho người mua ẩn danh. Khi nhà phát triển phần mềm độc hại có chứng chỉ Microsoft Authenticode, họ có thể ký bất kỳ phần mềm độc hại nào có thể thông qua lớp bảo vệ dựa trên chứng chỉ và Code signing.

Một số trường hợp khác, thay vì đánh cắp các chứng chỉ, hacker sẽ xâm nhập vào máy chủ xây dựng phần mềm. Khi phiên bản phần mềm mới được phát hành, nó sẽ có một chứng chỉ hợp pháp, hacker lợi dụng quá trình này để thêm mã độc vào.

Ví dụ về Code-signed malware

Vậy, Code-signed malware trông như thế nào? Dưới đây là ba ví dụ về loại malware này.

  • Stuxnet malware: Phần mềm độc hại này phá hủy chương trình hạt nhân Iran bằng cách sử dụng hai chứng chỉ đánh cắp và 4 lỗ hổng zero-day. Các chứng chỉ này được đánh cắp từ hai công ty JMicron và Realtek. Stuxnet sử dụng các chứng chỉ ăn cắp được để tránh yêu cầu giới thiệu mới của Windows mà tất cả các driver đều yêu cầu xác minh.
  • Asus server breach: Vào khoảng thời gian từ tháng 6 đến tháng 11/2018, các hacker đã xâm nhập vào một server Asus mà các công ty sử dụng để đẩy cập nhật phần mềm cho người dùng. Nghiên cứu tại Kaspersky Lab cho biết có khoảng 500 nghìn thiết bị Windows nhận cập nhật độc hại này trước khi bị phát hiện. Không cần ăn cắp chứng chỉ, các hacker này ký chứng chỉ số Asus hợp pháp cho phần mềm độc hại của họ trước khi server phần mềm phân phối cập nhật hệ thống.
  • Flame malware: Biến thể của phần mềm độc hại module Flame nhắm vào các quốc gia Trung Đông, sử dụng các chứng chỉ được ký một cách gian lận để tránh bị phát hiện. Các nhà phát triển Flame đã sử dụng một thuật toán mã hóa yếu để ký giả mạo các chứng chỉ số Code signing, làm cho nó xuất hiện như thể Microsoft đã ký chúng. Không giống như Stuxnet với mục đích phá hoại, Flame là một công cụ gián điệp, tìm kiếm các file PDF, AutoCAD, file văn bản và các loại tài liệu công nghiệp quan trọng khác.

Làm thế nào để tránh Code-signed malware?

Loại malware này sử dụng Code signing để tránh bị các phần mềm diệt virus và hệ thống phát hiện nên việc bảo vệ chống lại Code-signed malware là vô cùng khó khăn. Luôn cập nhật phần mềm diệt virus, hệ thống là điều cần thiết, tránh click vào các link không biết và cẩn thận kiểm tra link đến từ đâu trước khi follow nó. Tham khảo bài viết Những nguy cơ từ malware và cách phòng tránh.

Thứ Hai, 20/05/2019 13:59
4,54 👨 433
0 Bình luận
Sắp xếp theo
    ❖ Kiến thức cơ bản