Phân biệt vai trò của Packer, Crypter, và Protector trong các phần mềm độc hại

RESEARCH CREW
21:41 15/06/2020

 

Trong bài viết này, chúng tôi sẽ cố gắng giải thích các thuật ngữ về Packer (Trình đóng gói), crypter (Trình mã hóa) và Protector (Trình bảo vệ) trong ngữ cảnh chúng được sử dụng trong phần mềm độc hại như thế nào. Hãy nhớ rằng không có định nghĩa nào cho các thuật ngữ này được xem là khuôn mẫu bất di bất dịch. Tất cả chúng đều có sự chồng chéo và có những ngoại lệ nhất định đối với các quy tắc được định nghĩa. Nhưng đây là phân loại phổ biến được người viết chấp nhận sử dụng.

Điểm chung của 3 thuật ngữ nằm ở mục tiêu sử dụng

Payload, thực tế vốn là đoạn mã độc hại mà kẻ phá hoại muốn chạy trên các máy tính nạn nhân. Thành phần này sẽ được những kẻ tạo ra mã độc ưu tiên bảo vệ chống lại kỹ thuật dịch ngược và phát hiện (bằng các phần mềm bảo mật khác nhau). Điều này được thực hiện bằng cách thêm vào các đoạn mã dường như vô hại, chỉ nhằm mục đích che giấu sự tồn tại của mã độc. Về cơ bản, mục tiêu chung của Packer, Crypter và Protector là che giấu payload khỏi sự phát hiện của nạn nhân và từ các nhà nghiên cứu bảo mật bằng cách phân tích tập tin.

Trình đóng gói (Packer)

Loại này thường được hiểu là thuật ngữ viết tắt của các trình đóng gói runtime (runtime packer), có khả năng tự giải nén. Cụ thể, chương trình sẽ thực hiện giải nén tự động trong bộ nhớ khi tập tin được đóng gói của tập tin ban đầu được thực thi. Kỹ thuật này đôi khi còn được gọi là kỹ thuật nén thực thi (executable compression). Kiểu nén này được tạo ra để làm cho kích thước các tệp nhỏ hơn. Vì vậy, người dùng sẽ không cần phải giải nén thủ công trước khi chúng có thể được thực thi. Nhưng với kích thước hiện tại của các tập tin dữ liệu đa phương tiện và tốc độ internet, nhu cầu về các tệp nhỏ hơn không còn đóng vai trò quá quan trọng nữa. Do đó, ngày nay khi bạn thấy một số trình đóng gói (Packer) được sử dụng trong các chương trình phần mềm, thì hầu như việc sử dụng Packer là để thực hiện mục đích xấu. Về bản chất, vai trò của Packer là để làm cho kỹ thuật dịch ngược trở nên khó khăn hơn, cùng với lợi thế gia tăng cho các tác giả phần mềm độc hại khi các manh mối, dấu vết liên quan tới payload hay mã độc tồn tại có kích thước nhỏ hơn trên máy bị nhiễm.

Trình mã hóa (Crypter)

Kỹ thuật cơ bản nhất đối với Crypter thường được gọi là kỹ thuật rối mã (obfuscation). Phương pháp rối mã cũng được sử dụng thường xuyên trong các mã lệnh script, như javascript và vbscript. Nhưng để bỏ qua hoặc khử nhiễu (de-obfuscation) hầu hết các phương pháp này không phải là một điều bất khả thi. Các phương pháp phức tạp hơn của Crypter sử dụng các giải thuật mã hóa thực sự.

Hầu hết các loại Crypter không chỉ mã hóa tệp tin, mà phần mềm crypter còn cung cấp cho người dùng nhiều tùy chọn khác để làm cho các công cụ bảo mật khó phát hiện nhất có thể. Điều này cũng đúng đối với một số Packer. Tóm lại, khả năng không bị phát hiện bởi bất kỳ chương trình bảo mật nào là một trong những ưu tiên hàng đầu cho các tác giả viết ra các phần mềm độc hại. 

Trình bảo vệ (Protector)

Trong bối cảnh này, một trình bảo vệ (Protector) là một đoạn chương trình nhằm ngăn chặn sự giả mạo (tampering) và kỹ thuật dịch ngược trên phần mềm/mã độc mà nó hoạt động. Các phương thức được sử dụng trong Protector có thể bao gồm cả kỹ thuật đóng gói (Packer) và mã hóa (Crypter). Sự kết hợp đó cộng với một số tính năng được thêm vào giúp cho các Protector bảo vệ các đoạn mã payload của phần mềm, mã độc. Vì vậy, một nhà nghiên cứu, phân tích mã độc sẽ phải đối mặt với các lớp bảo vệ xung quanh payload, làm cho kỹ thuật dịch ngược trở nên khó khăn.

Một cách tiếp cận hoàn toàn khác, cũng nằm trong phạm vi của những Protector, đó là ảo hóa mã (code virtualization), sử dụng một tập lệnh ảo tùy chỉnh và khác nhau mỗi khi bạn sử dụng nó để bảo vệ ứng dụng của mình. Những Protector kiểu này cũng được sử dụng ở các phiên bản thương mại có trả phí trong ngành công nghiệp game chống các hành vi vi phạm bản quyền. Nhưng bản thân kỹ thuật này cũng đã xâm nhập vào các công đoạn tạo ra phần mềm độc hại của nhiều kẻ phá hoại, cụ thể hơn là được áp dụng trong ransomware (mã độc tống tiền). Phương pháp này cho phép ransomware hoạt động mà không cần giao tiếp với một máy chủ C & C  để sử dụng khóa mã hóa cho hành động mã hóa dữ liệu đòi tiền chuộc. Kỹ thuật bảo vệ này hiệu quả đến mức khóa mã hóa có thể được mã hóa cứng (hardcoded) vào ransomware. Một ví dụ là ransomware Locky Bart sử dụng WProtect, một dự án ảo hóa mã nguồn mở để bảo vệ các khóa mã hóa của mình.

Theo Pieter Arntz (Malwarebytes Labs

TIN LIÊN QUAN
Federated Learning (FL): Khái niệm Các mô hình ML/DL truyền thống thường yêu cầu dữ liệu gốc của người dùng được gửi lên một server trung tâm để train tập trung, điều này gây ảnh hưởng đến quyền riêng tư (privacy). Do đó, các mô hình hiện nay thường sử...
Chào các bạn yêu thích nghiên cứu và công nghệ thông tin! Sau sự thành công của WannaResearch Episode 06, chúng tôi xin trân trọng thông báo về sự trở lại của chuỗi sự kiện nghiên cứu uy tín với Episode 07: "Audio Deepfake Detection." Buổi seminar này sẽ mang...
💨 SẮP TỚI CNSC CÓ GÌ? 🔥 KHOÁ HỌC LẬP TRÌNH PYTHON đã có mặt tại CNSC !!! 💼 Và đặc biệt hơn những ưu đãi vô cùng hấp dẫn cho “người nhà” các bạn SINH VIÊN UIT, các bạn đã sẵn sàng sắm ngay chứng chỉ này cho mình...