Phân tích một malware thực
Qua phần một của loạt bài này, chúng ta đã chuẩn bị một số kiến thức và công cụ nền tảng cho hoạt động phân tích về sau. Trong phần 2 này, chúng ta sẽ được tiếp xúc với một chất liệu mới rất thú vị: phân tích malware thực.
Trong phần trước chúng ta kết thúc với câu hỏi liệu malware download về của bạn có được thể hiện với biểu tượng của winzip hay winrar không. Tại sao lại có câu hỏi này? Trước đây đã có trường hợp một học sinh sử dụng trojan để tấn công máy tính của giáo viên dạy mình. Cậu học sinh nguỵ trang trojan bằng một biểu tượng quen thuộc như winzip, và thầy giáo mắc bẫy của cậu. Thủ thuật khá đơn giản, chắc chắn không thể qua mặt được chuyên gia IT. Nhưng với những người không mấy am hiểu về bảo mật như hầu hết chúng ta thì việc mắc bẫy cũng không có gì đáng ngạc nhiên.
Thật hay giả?
Như đã nói ở trên, chúng ta không thể chắc chắn được liệu phần malware download về có thực sự là file winzip hay không. Có một cách kiểm tra là hãy kích đúp vào nó để mở ra với trình soạn thảo Hex như trong hình bên dưới.
Hình 1
Như bạn có thể thấy, malware thực tế được thể hiện bằng biểu tượng winzip, nhưng không phải theo lớp như trong winrar đã được cài trên ảnh VMware. Trước khi mở file trong trình soạn thảo Hex, bạn phải chú ý một số điểm quan trọng sau. Các định dạng file như winzip, winrar, hay thậm chí là định dạng PE đều có ký hiệu byte riêng. Chúng ta có thể nhận ra chúng theo mức byte và xem được dễ dàng qua trình soạn thảo Hex. Đó là lý do tại sao chúng ta phải mở file trong Hex. Trình soạn thảo cho phép bạn tìm kiếm chuỗi byte cụ thể trong bản thân file. Nó sẽ cho bạn biết liệu malware download về như trong hình minh hoạ ở trên có thực sự là file winzip hay không. Bạn không cần lo lắng liệu mình có vô tình khiến malware này phát huy tác dụng hiệu quả của nó ngay bây giờ. Đơn giản là vì trong trình soạn thảo Hex, bạn chỉ có thể xem được nội dụng mà không thể kích hoạt file thực thi.
Bit hay byte
Bạn có thể thấy ở hình bên dưới là file malware đã được mở trong trình soạn thảo Hex như lựa chọn. Phần cuối của màn hình có các ký tự “MZ”, thể hiện trong Hex là “4D 5A”. “MZ” là chuỗi mở của các byte tìm thấy theo định dạng tiêu đề PE. Nói cách khác, “MZ” nói với chúng ta rằng, file này là một file thực thi, không bị nén theo kiểu định dạng file winzip. Quá hay! Học về malware nên chắc hẳn các bạn cũng đoán được hầu hết các file đều là nguỵ trang. Nhưng nếu lúc này bạn không học về nó thì sao? Chắc hẳn ai cũng sẽ tò mò kích thử vào file để giải nén và xem nội dung bên trong nó có gì, tức là đã dẫn gọi malware vào hệ thống.
Hình 2
Một câu hỏi được đặt ra là không biết định dạng file winzip trông như thế nào ở mức byte. Câu hỏi hay và chúng ta sẽ kiểm tra xem liệu có chứng minh được sự khác nhau giữa chúng hay không. Khi định dạng PE có chuỗi byte mở của “MZ”, định dạng file winzip sẽ có ký hiệu byte mở của “PK”. Trên thông báo này, hãy xem xét định dạng file winzip hợp lệ.
Hình 3
Bạn có thể thấy, trên hình thực tế có hai ký tự “PK”, hay thể thể hiện dưới dạng byte là “50 4B”. Có thể chứng minh chắc chắn được rằng file malware là kiểu thực thi mà không phải là hiểu nén winzip nào cả. Bạn nên chú ý, các ký tự ASCII sẽ được thể hiện bởi hai ký tự số theo thứ tự alphabe như đã thấy trên trang soạn thảo Hex. Cụ thể, số “50” byte thể hiện ký tự “P” và “4B” thể hiện ký tự “K” theo mã ASCII. Đây là chi tiết rất quan trọng, có thể hiểu theo kiểu phân tích gói mặc dù trong phân tích gói chúng ta thường thấy đơn vị được thể hiện bằng bit chứ không phải là toàn bộ byte.
Định dạng file và những điểm quan trọng
Chắc hẳn ai cũng nóng lòng “bập” vào những điểm chính yếu nhất khi muốn tìm hiểu về một vấn đề nào đó. Nhưng kiên nhẫn xem xét các khái niệm và thông tin xung quanh, sau đó tiếp xúc với cái chính yếu của quá trình mới là cách học thông minh. Với reverse engineering cũng vậy. Thông tin ở đây là gì, là các định dạng file winzip đáng chú ý ở trên hay định dạng tiêu đề PE. Khi thực hiện thiết kế đối chiếu, bạn cần kiểm chứng xem định dạng của file download về là gì. Muốn thực hiện được điều đó, bạn cần hiểu thông tin về nó, về cách kiểm tra như thế nào. Đó là file mở trong trình soạn thảo hex như ở trên, và hơn nữa là thông tin bản sao của định dạng file cụ thể phải nắm ở trong tay.
Portable Executable (PE) - thực thi động, là kiểu định dạng tự nhiên của Microsoft Windows. Chi tiết về kiểu định dạng này rất thú vị và đáng xem. Để nâng cao và gọt giũa kiến thức bảo mật máy tính, bạn nên tăng cường tổng hợp các vấn đề liên quan. Học về định dạng file này sẽ giúp các bạn gắn kết và hiểu được một chương trình nằm trên bộ nhớ vật lý (như ổ cứng) được ánh xạ vào bộ nhớ logic (RAM) như thế nào. Điều đó còn thú vị hơn là đọc một bài báo thực về nó mà không có gì đọng lại được trong đầu.
Tóm lại
Trong bài này, chúng ta đã xem xét một phần malware download về. Nó được thể hiện như một file nén với biểu tượng winzip. Nhưng thực tế sau khi kiểm tra với trình soạn thảo Hex, thay vì nội dung nén của file Zip bề ngoài, bên trong file là kiểu định dạng PE của file chạy exe. Chúng ta còn tìm hiểu một số thông tin quan trọng về các định dạng file khác nhau theo thuật ngữ của chuỗi byte duy nhất. Thành phần này giúp bạn xác định một cách chắc chắn kiểu định dạng thực của file. Trong phần tiếp theo, chúng ta sẽ xem xét kiểu gói malware được dùng và mở gói nó. Như bạn có thể thấy, phần phân tích diễn ra khá nhanh. Đơn giản vì chúng ta chỉ thực hiện các bước đơn giản nhất về reverse engineering.