5. Phương pháp nghiên cứu
1.5 Kỹ thuật được sử dụng để phát hiện hệthống phân tích mãđộc
Có rất nhiều các kỹ thuật khác nhau đã được sử dụng bởimã độc để phát hiện các môi trường phân tích malware tự động, chúng được tích hợp bên trong các mẫu mã độc đặc thù. Các loại mã độc này sử dụng nhiều phương pháp khác nhau để kiểm tra, xác định xem chúng có đang thực thi trong một môi trường có kiểm soát hay không, nếu có chúng thường không tiếp tục thực hiện hành vi độc hại khi phát hiện môi trường này. Phía bên dưới chúng ta sẽ trình bày một cái nhìn tổng quan về mã độc và các kỹ thuật chúng có thể sử dụng để phát hiện xem nó có được thực hiện trong một môi trường phân tích mã độc hay không. Để cho mọi thứ trở nên rõ ràng hơn, chúng ta sẽ đi vào chi tiết các kỹ thuật này.
Một khi các loại mã độc đã lây nhiễm vào hệ thống, chúng có thể chạy được ở chế độ user-mode hoặc kernel-mode, tùy thuộc vào các kỹ thuật khai thác khác nhau. Thông thường các loại mã độc sẽ chạy ở chế độ user-mode, nhưng cũng có rất nhiều kỹ thuật khác nhau giúp cho các loại mã độc có thể thực hiện ở chế độ kernel-mode. Dù mã độc thực hiện ở chế độ user-mode hoặc kernel-mode, chúng cũng có rất nhiều kỹ thuật có thể sử dụng để phát hiện nếu chúngđang được thực thi trong môi trường phân tích mã độc tự động. Các kỹ thuật đó được chia thành các loại sau:
• Phát hiện Debugger: debugger chủ yếu được sử dụng khi một các chuyên gia phân tích mã độc muốn tự kiểm tra một mẫu mã độc để hiểu biết một cách tường tận về nó. Các debuggerthì không thường xuyên được sử dụng trong phân tích mã độc tự động, nhưng các kỹ thuật khác nhau để phát hiện ra nó vẫn có thể có trong các loại mã độc để quá trình debug khó khăn hơn. ( Ví dụ như sẽ làm tốn thêm nhiều thời gian chạy hệ thống phân tích )
• Kỹ thuật Anti-disassembly: loại kỹ thuật này không liên quan trực tiếp đến môi trường phân tích mã độc tự động, nhưng khi các chuyên gia phân tích mã độc muốn tự mình xem xét các mẫu mã độc hại trong một debugger, mã độc có thể sử dụng các kỹ thuật khác nhau để gây nhầm lẫn trong quá trình phân tích hoặc làm cho các đoạn mã được biên dịch ra trở nên phức tạp hơn bình thường. Tuy nhiên việc này chỉ hữu ích khi phân tích các mẫu mã độc thủ công, nhưng không có tác dụng nhiều trong môi trường phân tích mã độc tự động.
• Phát hiện một môi trường Sandbox: sandbox là một môi trường riêng biệt từ hệ điều hành chính, nơi các loại mã độc có thể chạy mà không gây ra bất kỳ tác hại với phần còn lại của hệ thống. Mục đích chính của môi trường sandbox là để mô phỏng một số thành phần khác nhau của hệ thống, hoặc toàn bộ hệ thống để tách các hệ thống Guest từ hệ thống Host. Tùy thuộc vào các kỹ thuật ảo hóa, có nhiều loại khác nhau của Sandbox, sẽđược trình bày dưới đây.
• Virtualized Programs: Chromium Sandbox, Sandboxie
• Linux Containers: LXC, Docker
• Virtualized Environment: VirtualPC, VMware, VirtualBox, QEMU
Hình 9: Mô phỏng hệ thống hoạt động khi có và không có SandBox
Mỗi hệ thống phân tích mã độc tự động sử dụng các hệ thống phụ trợ khác nhau để chạy các loại mã độc trong môi trường có kiểm soát. Mã độc có thể được chạy trong các máy thật hoặc máy ảo. Lưu ý rằng việc sử dụng những máytính thật sẽ là một công cụ hoàn hảo cho việc thiết lập một phòng thí nghiệm phân tích phần mềm độc hại, khi đó sẽ làm cho các loại mã độc khá khó khăn cho trong việc xác định xem chúng có đang bị thực thi trong một môi trường có kiểm soát hay không. Khi xây dựng các phòng thí nghiệm phân tích mã độc, chúng ta có thể kết nối nhiều máy tính với nhau để tạo thành một mạng lưới phân thích mã độc, hoặccó thể được thực hiện đơn giản bằng cách chuyển đổi giữa máy ảo và máy vật lý, tùy thuộc vào loại máy được sử dụng.
Mỗi hệ thống tự động phân tích mã độc sử dụng một số loại môi trường ảo hóa để chạy các mẫu mã độc của họ, ví dụ như Qemu / KVM, VirtualBox, VMWare, ... Tùy theo các công nghệ ảo hóa đang được sử dụng, một mẫu mã độc có thể sử dụng
các kỹ thuật khác nhau để phát hiện rằng nó được phân tích và chấm dứt thực thi ngay lập tức. Vì vậy, các mẫu mã độc sẽ không phát hiện, vì nó không thực thi các hành vi gây hại.
Chúng ta đã thấy rằng các hệ thống tự động phân tích mã độc hại khác nhau sử dụng công nghệ ảo hóa khác nhau để thực thi các mẫumã độc. Qua tìm hiểu, có mộtsố loại sandbox có tùy chọn (option) cho phép lựa chọn chạy mẫu mã độc trên máy thật( ví dụ: Joe Sandbox ), và trong đó có các kỹ thuật để ngăn chặn việc các loại mã độc có thể phát hiện ra chúng có đang được thực thi trong một môi trường phân tích mã độc tự động hay không. Tuy nhiên, cũng còn có rất nhiều kỹ thuật khác để một loại mã độc có thể sử dụng để phát hiện ra nó được phân tích.
Đây thực sự là một cuộc chiến về công nghệ, các kỹ thuật phát hiện mới được tìm ra và được sử dụng bởi các mẫu mã độcmỗi ngày. Mặt khác, cũng có rất nhiều kỹ thuật chống phát hiện sử dụng để ngăn chặn các loại mã độc xác định nó đang được thực hiện trong một môi trường phân tích mã độc tự động. Khi một kỹ thuật phát hiện mới xuất hiện, thì thường một kỹ thuật chống phát hiện mới lại được tìm ra để làm cho kỹ thuật phát hiện trở nên vô dụng.