CHƯƠNG 1: TỔNG QUAN VỀ MÃ ĐỘC VÀ CÁC PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC HIỆN NAY 1. Định nghĩa mã độc và phân loại mã độc 1. Định nghĩa mã độc (malware). Hiện nay có nhiều định nghĩa khác nhau về mã độc, nhưng đều có ý nghĩa chung là: Mã độc là “một chương trình (program) được chèn một cách bí mật vào hệ thống với mục đích làm tổn hại đến tính bí mật, tính toàn vẹn hoặc tính sẵn sàng của hệ thống”.
Định nghĩa này xác định không chỉ những thể loại mà thường được nói đến nhiều như: virus, worm, Trojan, spyware …là mã độc, mà cả những công cụ dùng để tấn công hệ thống cũng đều là mã độc như: backdoor, rootkit, keylogger … 1. Phân loại mã độc Mã độc được phân thành các loại như sau: 1. Virus Virus là một loại mã độc hại mà có khả năng tự nhận bản và lây nhiễm chính nó vào các tập tin trên máy tính. Như vậy, virus không tồn tại độc lập thành một tập tin mà luôn bám vào một tập tin khác để thực thi và lây lan.
Worm Worm là mã độc có hành vi giống virus là có thể tự nhân bản và tự lây nhiễm trong hệ thống, tuy nhiên khác với virus, worm có thể tồn tại độc lập thành một tập tin trước khi lây nhiễm vào hệ thống. Tùy theo phương thức lây nhiễm vào hệ thống mà có thể phân loại worm: - Network Service Worm: là loại worm sử dụng các lỗ hổng bảo mật của mạng, của hệ điều hành hoặc của ứng dụng để lây nhiễm vào hệ thống. - Mass Mailing Worm: là loại worm sử dụng phương thức lây lan qua email. Khi worm lây nhiễm vào hệ thống thì nó tìm trong danh sách địa chỉ mail và gửi mail đến các địa chỉ đó để tiếp tục quá trình lây nhiễm.
Với phương thức lây nhiễm này, worm có thể lây lan rất nhanh trên hệ thống mạng. TIEU LUAN MOI download : skknchat@gmail. Trojan Horse Trojan horse là loại mã độc được đặt theo câu chuyện “Ngựa thành Troa”. Trojan horse không có hành vi tự nhân bản mà nó xuất hiện trong hệ thống như một chương trình lành tính, qua đó có thể đánh lừa được người sử dụng.
Tuy nhiên Trojan horse có những hành vi gây hại ngầm mà người dùng không dễ dàng nhận biết được. Malicious Mobile Code Malicious mobile code là một dạng mã phần mềm có thể được gửi từ xa vào để chạy trên một hệ thống mà không cần đến lời gọi thực hiện của người dùng trên hệ thống đó. Cách tốt nhất để chống lại malicious mobile code là luôn cập nhật hệ thống và tất cả các chương trình phụ. Spyware Spyware là phần mềm được cài đặt trên hệ thống nhằm mục đích thu thập thông tin trên hệ thống đó và truyền đến địa chỉ của kẻ tấn công.
Các thông tin quan trọng mà spyware thu thập có thể là: tài khoản và mật khẩu của người sử dụng, địa chỉ email, tài khoản ngân hàng… 1. Logic Bomb Là phần mềm cài đặt trên hệ thống và chỉ thực hiện hành vi gây hại khi có những điều kiện nhất định đáp ứng. Chẳng hạn như: logic bomb thực hiện xóa mọi dữ liệu trên hệ thống vào một thời điểm đã được cài đặt nhất định. Cấu trúc logic bomb thường được phân làm hai phần: - Payload: là đoạn mã thực hiện các hành vi gây hại.
- Trigger: là đoạn mã kiểm tra những điều kiện nhất định, nếu điều kiện này đúng thì sẽ kích hoạt đoạn mã payload. Logic Bomb là một loại mã độc rất nguy hiểm vì nó không thể hiện hành vi gây hại ngay khi thâm nhập vào hệ thống. Vì vậy, người dùng thường không nhận ra khi Logic Bomb đã thâm nhập thành công vào hệ thống. Tracking Cookie Tracking Cookie là sử dụng cookie để theo dõi một số hành động duyệt web của người sử dụng một cách bất hợp pháp.
Cookie là một tập tin dữ liệu TIEU LUAN MOI download : skknchat@gmail.com 13 dùng để lưu dữ thông tin về việc sử dụng một trang web nào đó. Tuy nhiên tính năng này bị lạm dụng để theo dõi và thu thập thông tin về người dùng. Attacker Tool Attacker Tool là những bộ công cụ tấn công được sử dụng để đẩy bí mật các phần mềm độc hại vào hệ thống mà không được phép của người dùng. Attacker Tool được chia thành nhiều loại khác nhau: - Backdoor: là công cụ được cài đặt trên hệ thống sau khi bị xâm nhập bất hợp pháp nhằm giúp kẻ tấn công quay lại xâm nhập vào hệ thống mà không cần phải qua các kiểm soát an ninh trên hệ thống.
- Zoombie: là công cụ được cài đặt trên hệ thống sau khi bị xâm nhập bất hợp pháp và chờ đợi lệnh từ kẻ tấn công. Các nhiệm vụ phổ biến nhất cho zombie là gửi thư rác và thực hiện tấn công từ chối dịch vụ quy mô lớn. - Keylogger: là công cụ được cài đặt trên hệ thống nhằm thu thập các thông tin sự kiện gõ bàn phím của người sử dụng. Rootkits Rootkit thường được hiểu là một là công cụ được cài đặt trên hệ thống nhằm thay đổi các hoạt động bình thường của hệ thống nhằm mục đích nhất định.
Chẳng hạn như thay đổi hoạt động của các hàm hệ thống (API), sửa đổi tập tin hệ thống. Rootkit thường được sử dụng để ẩn dấu các hành vi của các mã độc khác như backdoor, keylogger…và làm cho người sử dụng không dễ dàng nhận biết được sự tồn tại của các phần mềm độc hại này trên hệ thống. Rootkit được phân làm những loại sau đây: - Rootkit tần ứng dụng (Application layer rootkit) Rootkit tầng ứng dụng là rootkit hoạt động ở tầng cao của hệ điều hành (tầng ứng dụng). Mục tiêu của loại rootkit này có thể là các tập tin, registry, hoặc là các ứng dụng cụ thể trên hệ thống.
Hành động phổ biến mà loại rootkit này thường hay thực hiện là xóa các tập tin nhật ký hệ thống và ẩn các tập tin mà người dùng không dễ dàng phát hiện ra. Tuy nhiên, nhược điểm của loại rootkit này là dễ bị phát hiện bằng các kỹ thuật tìm kiếm thông tin ở tầng dưới của hệ thống. TIEU LUAN MOI download : skknchat@gmail.com 14 - Rootkit tầng thư viện (Library layer rootkit) Là loại rootkit can thiệp trực tiếp vào các thư viện trong hệ thống. Chẳng hạn như các hàm được sử dụng trong các tập tin thư viện liên kết động (Dynamic Link Library - DLL) trong hệ thống.
Loại rootkit này can thiệp và làm thay đổi giá trị trả về của các hàm trong thư viện. Qua đó, rootkit có thể ẩn các tập tin mã độc để người dùng không nhận ra sự xuất hiện của mã độc trong hệ thống. Loại rootkit này cũng có thể phát hiện được bằng cách thực thi các ứng dụng từ các thiết bị lưu trữ ngoài mã không sử dụng các thư viện đã bị sửa đổi. Qua đó có thể phát hiện sự tồn tại của rootkit trong hệ thống.
- Rootkit tầng nhân hệ thống (Kernel-layer rootkit) Đây là loại rootkit có hành vi can thiệp trực tiếp vào nhân của hệ điều hành. Loại rootkit này làm thay đổi các cấu trúc trong hệ thống hoặc làm thay đổi giá trị trả về của các hàm trong nhân của hệ điều hành. Qua đó, rootkit có thể ẩn các tập tin độc hại hoặc ẩn sự hoạt động trong hệ thống… Loại rootkit này khó phát hiện hơn rất nhiều so với hai loại rootkit trên. - Rootkit tầng phần cứng (Hardware-layer rootkit) Đây là loại rootkit khó phát hiện nhất.
Loại rootkit này được cài đặt trong phần cứng của các thiết bị để thu thập thông tin hoặc thực hiện nhiều hành vi độc hại khác. Loại rootkit này không thể phát hiện được bằng các chương trình phần mềm bình thường mà phải sử dụng rất nhiều các công cụ khác nhau để có thể phát hiện. Con đường lây nhiễm của mã độc Mã độc có nhiều con đường lây nhiễm khác nhau và có thể phát tán rất nhanh. Sau đây là một số con đường chủ yếu mà hệ thống bình thường có thể bị lây nhiễm mã độc.
Lây nhiễm qua thiết bị ngoại vi Malware phát tán qua SB và các thiết bị lưu trữ ngoài theo một số cơ chế sau: - Cơ chế Autorun (tự chạy) : Cơ chế này chỉ xuất hiện với những loại mã độc trên hệ điều hành Windows XP trở về trước. Với cách phát tán này mã độc sẽ tạo ra một tập tin TIEU LUAN MOI download : skknchat@gmail.com 15 với tên là “autorun. Bên trong tập tin “autorun.inf” sẽ có một đường dẫn đến mã độc thực sự. Khi người sử dụng kết nối thiết bị lưu trữ ngoài với máy tính, mã độc lợi dụng thói quen sơ hở của người sử dụng để xâm nhập.
Mã độc sau khi được thực thi tiến hành các hành vi gây hại và tiến hành phát tán bằng nhiều đường, lây lan ra toàn máy tính này cũng như các máy tính liên kết trong mạng. - Cơ chế giả biểu tượng Mã độc máy tính muốn hoạt động được đòi hỏi phải có sự tương thích với môi trường hệ điều hành và những điều kiện cụ thể (trong trường hợp trên thì cơ chế Autorun đã thực thi mã độc). Còn trường hợp phổ biến thứ hai, một mã độc giả dạng làm một thư mục hay tập tin quen thuộc. Bằng cách này mã độc có thể đánh lừa người sử dụng và chờ đợi người sử dụng vô tình kích hoạt mã độc.
Lây nhiễm từ kết nối mạng Do nhu cầu công việc mà các máy tính hiện nay đều kết nối với nhau thông qua một hệ thống mạng và đây cũng là con đường mà mã độc tiến hành phát tán và lây nhiễm từ hệ thống này sang hệ thống khác. Thông thường mã độc sẽ tiến hành tấn công từ bên ngoài qua các lỗ hổng bảo mật để tiến hành lây nhiễm. Chẳng hạn như mã độc “Conficker” lợi dụng lỗ hổng “MS-08-067” để tiến hành lây nhiễm từ hệ thống này sang hệ thống khác, nếu các hệ thống không cập nhật bản vá cho lỗ hổng này. Ngoài ra, với sự phát triển rộng rãi của mạng Internet trên thế giới hiện nay mà các phương thức lây nhiễm các loại mã độc qua Internet trở thành phương thức chính của mã độc ngày nay.
Lây nhiễm qua thư điện tử Đây là một con đường lây nhiễm rất phổ biến của mã độc. Phương thức này đã xuất hiện từ lâu nhưng hiện nay vẫn là một phương thức lây nhiễm của mã độc. Khi đã lây nhiễm vào máy nạn nhân, mã độc có thể tự tìm ra danh sách các địa chỉ thư điện tử sẵn có trong máy và nó tự động gửi đi hàng loạt cho những địa chỉ tìm thấy.