3. Cấu trúc luận văn
2.2. Phát hiện C&C server
Phát hiện C&C server là một khía cạnh quan trọng của phát hiện Botnet. Xác định C&C và phân tích hoạt động tiếp theo của nó có thể giúp đỡ trong việc tìm hiểu hành vi của Botnet. Thông tin này có thể được khai thác để xác định bot và các máy chủ C&C.
2.2.1. Phát hiện chủ động
Phát hiện C&C chủ động liên quan đến việc tham gia vào các hoạt động Botnet, ví dụ thao tác trực tiếp lên luồng gói tin được gửi đi trong mạng để suy luận thông tin về khả năng giao tiếp C&C. Phát hiện chủ động C&C thường sử dụng phương pháp xâm nhập (injection).
Injection: Phương pháp xâm nhập đòi hỏi phải đưa các gói tin vào luồng gói tin trong mạng đáng ngờ. Sự giống nhau giữa các phản hồi cho các gói tin xâm nhập với phản ứng của bot điển hình cho thấy luồng gói tin trong mạng này có thể là một phần của truyền thông C&C. Xâm nhiễm có thể được thực hiện bằng cách suy luận giao thức Botnet C&C, hoặc bằng một cách phát lại liên tục gói tin vào trong luồng gói tin trong mạng đáng ngờ. Phương pháp sau cùng này có thể phát hiện các Botnet sử dụng giao thức C&C chưa biết. Tuy nhiên nó sẽ thất bại nếu Botnet sử dụng cơ
29
chế bảo mật chống lại việc tấn công lặp lại bằng cách sử dụng timestamps hoặc sequence number. Trong khi việc phát hiện C&C dựa trên việc suy luận giao thức sẽ đòi hỏi kỹ thuật đảo ngược giao thức C&C Botnet. Phát hiện C&C dựa trên suy luận giao thức có thể được tự động hóa bởi các máy thăm dò với thông tin về giao thức của các Botnet đã biết. Sử dụng các giao thức này, các gói tin có thể xâm nhập vào các luồng gói tin nghi ngờ để so sánh các phản hồi với các phản hồi đối với các Botnet đã biết. BotProbe là một công cụ dựa trên kỹ thuật xâm nhập chủ động để xác định các giao tiếp C&C. Botprobe tận dụng hai khác biệt cơ bản giữa con người và bot. Không giống như con người, các bot sẽ phản hồi một cách nhất định với các câu lệnh khác nhau và không đáp lại với những câu lệnh mắc lỗi chính tả.
2.2.2. Phát hiện bị động
Phát hiện chủ động C&C được bổ sung bằng các kỹ thuật phát hiện thụ động. Phát hiện chủ động C&C thường nhận được các chỉ trích vì các hạn chế về chính sách và các hậu quả trong trường hợp báo động giả. Điều này giải thích sự phổ biến của phương pháp phát hiện thụ động C&C. Cơ chế phát hiện thụ động C&C có thể được phân loại như Syntactic và Semantic.
Syntatic: Phát hiện C&C dựa trên syntatic hoạt động bằng cách phát triển các mô hình dựa trên dấu hiệu của lưu lượng C&C. Các dấu hiệu thu được bằng cách quan sát các chuỗi thường xuyên xảy ra hoặc các trình tự mã thông báo trong lưu lượng độc hại. Phát triển dấu hiệu một cách thủ công là ít đáng tin cậy và tốn thời gian. Một phương pháp xây dựng các mô hình và dấu hiệu tự động đã được đề xuất gần đây.
Semantic: Hướng phát hiện C&C sử dụng một số phỏng đoán để liên kết hành vi nhất định với lưu lượng C&C. Nó có thể được chia thành 3 nhóm nhỏ sau dựa
30
trên thống kê, dựa trên sự tương quan và tiếp cận dựa trên hành vi.
Hướng tiếp cận dựa trên thống kê có thể được sử dụng để phát hiện các giao tiếp C&C. Các kỹ thuật nghiên đã được sử dụng rộng rãi để phân loại lưu lượng mạng. Đặc biệt là nghiên cứu có giám sát, đã được sử dụng để phát hiện C&C. Nó bao gồm việc xác định các đặc trưng, chẳng hạn như phạm vi độ dài gói tin, thời gian đến giữa các gói và khoảng thời gian luồng gói tin gửi đi trong mạng. Sử dụng các đặc trưng này, một bộ phân loại được liên kết với tập dữ liệu có liên quan. Sau đó, các luật được đưa vào các thuật toán học để phân loại lưu lượng mạng là thông thường hay là truyền thông C&C. Các thuật toán đã được sử dụng trước tiên để phân loại lưu lượng mạng của giao thức IRC và giao thức không phải IRC và sau đó xác định Botnet hay không phải là Botnet. Trong cách tiếp cận khác, các mô hình dựa trên đồ thị được sử dụng để đại diện cho các kết nối nguy hiểm với C&C. Mô hình đồ thị cho mỗi kết nối mạng dựa trên các cuộc gọi hệ thống dẫn đến kết nối này và các cuộc gọi hệ thống hoạt động trên dữ liệu được trả về. Kỹ thuật nghiên cứu sau đó được sử dụng để tự động tạo ra các mẫu đồ thị cho hoạt động C&C bằng cách liên kết các module phân loại trên một tập hợp các đồ thị có liên quan đến các C&C đã biết.
Ý tưởng chính đằng sau phương pháp dựa trên sự tương quan là mô hình truyền thông tương tự trong lưu lượng mạng có thể trỏ đến lưu lượng C&C. Điều này ngụ ý rằng mối tương quan phải được thực hiện tại một phần tử mạng ở tầng cao hơn, chẳng hạn như một bộ định tuyến, nơi mà lưu lượng mạng từ nhiều máy chủ là có thể nhìn thấy và có thể được phân tích. Strayer et al. sử dụng một phương pháp đầu tiên xác định như thế nào là một lưu lượng của Botnet và sau đó tìm thấy giao thông C&C bằng cách phân nhóm các luồng gói tin trong mạng với các đặc tính tương tự
31
như băng thông, thời gian gói tin, … thành một nhóm. Gu et al kết hợp phương pháp này với tương quan dựa trên hoạt động của máy chủ và thực hiện chéo các tương quan để phát hiện các Botnet.
Trong phương pháp phát hiện dựa trên hành vi, lưu lượng C&C được xác định bằng cách quan sát độ lệch từ lưu lượng bình thường hoặc tương tự của nó với thành lập mô hình hành vi của giao thông C&C. Trong phương pháp phát hiện dựa trên hành vi, phạm vi của phân tích thường được giới hạn máy chủ riêng lẻ (không so sánh được với hành vi của các máy chủ khác). Phân tích một luồng gói tin trong mạng từ các hành vi sử dụng mạng điển hình của một người sử dụng có thể giúp xác định một máy chủ C&C. Ví dụ, một kết nối thực hiện đến Nga vào lúc nửa đêm từ máy của người dùng mà người đó không sử dụng mạng vào buổi tối là đáng phải theo dõi.
2.3. Phát hiện botmaster
Hiện nay không có nhiều công trình công bố về các kỹ thuật phát hiện Botnet nhắm tới mục tiêu là botmaster. Việc botmaster bị phát hiện có thể gây ra hậu quả nghiêm trọng đối với một Botnet. Một mặt nó khiến các botmaster phải đối mặt với với các truy tố, bị phạt nặng hoặc bắt giữ. Mặt khác nó có thể dẫn đến sự tan rã của toàn bộ Botnet dựa trên thông tin được cung cấp bởi botmaster. Vì những lý do trên, botmaster là phần được bảo vệ nhất của một Botnet và do đó khó có thể phát hiện. Các botmaster chỉ giao tiếp với máy chủ C&C bằng chỉ một vài lệnh và được chuyển tiếp đến các chương trình, do đó tạo ra ít lưu lượng truy cập, và các lưu lượng truy cập này còn có thể được mã hóa. Chính vì vậy việc phát hiện botmaster là phức tạp bởi sự hiện diện của stepping-stones giữa botmaster và máy chủ C&C.
32
2.3.1. Phát hiện chủ động
Chủ động phát hiện botmaster liên quan đến việc lợi dung các hoạt động của Botnet. Có rất ít các cơ chế chủ động phát hiện các botmaster. Các cơ chế hay kỹ thuật phát hiện chủ động botmaster đều xoay quanh kỹ thuật đánh dấu (marking). Kỹ thuật marking đã được sử dụng rộng rãi để tìm ra các thủ phạm chịu nhiều trách nhiệm về hoạt động độc hại trên Internet.
Kỹ thuật chủ động phát hiện botmaster xoay quanh việc đánh dấu. Kỹ thuật đánh dấu đã được sử dụng rộng rãi để lần theo dấu vết tìm ra thủ phạm chịu trách nhiệm về hoạt động độc hại trên Internet. Có nhiều kiểu đánh dấu gói tin khác nhau như xác suất đánh dấu gói tin, sử dụng giao thức ICMP và xác định đánh dấu gói tin. Trong quá trình đánh dấu một số thông tin được đưa vào trong gói tin bởi máy tính nạn nhân hoặc bộ định tuyến trung gian để giúp xác định vị trí tấn công. Ramsbrock et al. [2] trình bày một cơ chế tìm ra botmaster bằng cách chèn watermark trong gói tin phản hồi lại các botmaster từ một bot giả mạo dưới sự kiểm soát của những nhà bảo mật.
2.3.2. Phát hiện bị động
Phát hiện thụ động của botmaster liên quan đến việc phân tích lưu lượng mạng và các dữ liệu khác mà không cần thao tác hay thay đổi hoạt động Botnet. Cơ chế thụ động để phát hiện botmaster liên quan đến logging và stepping-stone detection. Trong cơ chế logging, bộ định tuyển ghi lại tất cả các thông tin về các gói tin đi qua chúng. Thông tin này được sử dụng để xác minh có hay không gói tin bị nghi ngờ đã được chuyển tiếp bởi một bộ định tuyến cụ thể. Source Path Isolation Engine (SPIE) là một cơ chế tìm địa chỉ IP dựa trên bảng băm [2]. SPIE xác định các thông tin được ghi lại để tái tạo lại đường dẫn đến kẻ tấn công. Tuy nhiên cho đến nay, cơ
33
chế logging đã không được sử dụng để phát hiện botmaster, chủ yếu là vì các bộ định tuyến trên đường đi của một gói tin không thể quyết định hỗ trợ và lưu thêm các bản ghi.
Một cách khác để phát hiện botmaster là thông qua việc phát hiện stepping-stone. Các botmaster giấu danh tính của mình sau một hoặc nhiều stepping-stones. Việc phát hiện stepping-stones không trực tiếp phát hiện các botmaster, nhưng một số trường hợp nó có thể được sử dụng để xác định các botmaster. Có hai khó khăn chính trong việc phát hiện các kết nối stepping-stones. Các gói tin từ các botmaster có thể đến với máy chủ C&C với sự chậm trễ ngẫu nhiên giữa chúng. Việc chậm trễ có thể được gây ra bởi các yếu tố mạng hoặc các botmaster cố ý để làm cho tránh bị phát hiện. Các botmaster cũng có thể thêm các gói bổ sung, gọi là chaff, để gây nhầm lẫn hơn nữa cho quá trình phát hiện.
Hiện nay các cơ chế phòng vệ để chống lại Botnet chủ yếu là hai cơ chế phòng chống và phòng thủ. Các biện pháp phòng chống bao gồm các biện pháp chủ động tránh lây nhiễm Botnet. Trong khi các phương pháp phòng thủ là cách các hệ thống phản ứng tự nhiên trước việc lây nhiễm và quan tâm đến việc làm sạch hệ thống một khi chúng đã bị nhiễm mã độc. Cần có một cơ chế ngăn chặn và phòng thủ có thể giải quyết cốt lõi của vấn đề. Người dùng chỉ quan tâm đến việc loại bỏ được một bot ra khỏi hệ thống của mình. Nhưng việc đó lại không quá ảnh hưởng đến các Botnet, một bot bị loại bỏ thì các bot khác vẫn tồn tại và tiếp tục lây nhiễm đến các máy khác hoặc tái nhiễm với chính hệ thống vừa được loại bỏ mã độc. Vì vậy lý tưởng nhất là chúng ta phải có một phương pháp phòng thủ có thể vô hiệu toàn bộ Botnet hoặc ít nhất gây ra một tổn hại đáng kể đối với nó. Tôi sẽ tìm hiểu kỹ các cơ chế phòng vệ Botnet theo hai giai đoạn chính là phòng ngừa và xử lý khắc
34
phục hậu quả.
2.4 Phòng ngừa
Giai đoạn này đưa ra các biện pháp cho phép hệ thống máy chủ và hệ thống mạng có thể ngăn chặn Botnet và nâng cao khả năng chống lây nhiễm bot độc hại.