1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Phát hiện và xử lý botnet

61 736 11

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 61
Dung lượng 1,97 MB

Nội dung

Các chuyên gia an ninh cần phải phát triển các phương pháp giảm nhẹ đối với các mối đe dọa nguy hiểm này để làm cho Internet là một nơi an toàn hơn cho người sử dụng, nếu không họ có ngu

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

-

ĐỖ MẠNH VIỆT

PHÁT HIỆN VÀ XỬ LÝ BOTNET

Chuyên ngành: Truyền thông và mạng máy tính

LUẬN VĂN THẠC SĨ KỸ THUẬT

KỸ THUẬT MÁY TÍNH

GIẢNG VIÊN HƯỚNG DẪN

PGS.TS NGUYỄN LINH GIANG

Hà Nội – Năm 2016

Trang 2

LỜI CAM ĐOAN

Tôi Đỗ Mạnh Việt cam kết luận văn thạc sỹ này là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của PGS.TS Nguyễn Linh Giang

Các kết quả nêu trong luận văn là trung thực, không phải là sao chép của bất kỳ công trình nào khác

Hà Nội, ngày 09 tháng 11 năm 2016

Tác giả luận văn

Đỗ Mạnh Việt

Trang 3

LỜI CẢM ƠN

Lời đầu tiên tôi xin gửi lời cám ơn và lòng biết ơn sâu sắc đến PGS.TS Nguyễn Linh Giang người đã giúp tôi chọn đề tài, định hình hướng nghiên cứu, tận tình hướng dẫn và chỉ bảo tôi trong suốt quá trình thực hiện luận văn tốt nghiệp Tôi xin gửi lời cám ơn chân thành đến các thầy, cô giáo trong trường Viện Công nghệ thông tin và Truyền thông – Đại học Bách Khoa Hà Nội Các thầy, cô giáo đã dạy bảo và truyền đạt cho tôi rất nhiều kiến thức, giúp tôi có được một nền tảng kiến thức vững chắc và một định hướng nghiên cứu chuyên sâu sau hai năm học tập Thạc sĩ tại trường Đại học Bách Khoa Hà Nội

Cuối cùng, tôi muốn gửi lời cám ơn sâu sắc nhất đến gia đình và bạn bè, đặc biệt là vợ và con gái – những người thân yêu luôn kịp thời động viên và giúp đỡ tôi vượt qua những khó khăn trong học tập cũng như trong cuộc sống

Hà Nội, ngày 09 tháng 11 năm 2016 Tác giả luận văn

Đỗ Mạnh Việt

Trang 4

MỤC LỤC

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 5

DANH MỤC CÁC BẢNG 6

MỞ ĐẦU 7

1 Đặt vấn đề 7

2 Nhiệm vụ của luận văn 7

3 Cấu trúc luận văn 8

CHƯƠNG 1: TỔNG QUAN VỀ BOTNET 9

1.1 Tổng quan về Botnet 9

1.2 Đặc trưng của Botnet 10

1.2.1 Lây nhiễm (Infection) 11

1.2.2 Hành vi tấn công (Attacking Behaviour) 12

1.2.3 Kiểm soát và điều khiển (Command and Control) 15

1.2.4 Cơ chế tập hợp (Rallying Mechanisms) 19

1.2.5 Giao thức giao tiếp (Communication Protocols) 20

1.2.6 Kỹ thuật tránh bị phát hiện (Evasion Techniques) 20

CHƯƠNG 2: KỸ THUẬT PHÁT HIỆN VÀ CƠ CHẾ PHÒNG VỆ BOTNET 23

2.1 Phát hiện Bot 24

2.1.1 Phát hiện chủ động 24

2.1.2 Phát hiện bị động 26

2.2 Phát hiện C&C server 28

2.2.1 Phát hiện chủ động 28

Trang 5

2.2.2 Phát hiện bị động 29

2.3 Phát hiện botmaster 31

2.3.1 Phát hiện chủ động 32

2.3.2 Phát hiện bị động 32

2.4 Phòng ngừa 34

2.4.1 Biện pháp dựa trên kỹ thuật 34

2.4.2 Biện pháp không dựa trên kỹ thuật 36

2.5 Khắc phục hậu quả 37

2.5.1 Phục hồi 37

2.5.2 Phục hồi dựa trên phản công 39

CHƯƠNG 3: CÀI ĐẶT VÀ THỬ NGHIỆM SNORT IDS ĐỂ PHÁT HIỆN BOTNET 41

3.1 Snort IDS 41

3.2 Xây dựng tập luật để phát hiện Botnet 43

3.3 Thử nghiệm và đánh giá 49

3.3.1 Bonesi 49

3.3.2 Cài đặt Snort 50

3.3.3 Mô phỏng, kết quả và nhận xét 52

KẾT LUẬN 58

TÀI LIỆU THAM KHẢO 60

Trang 6

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

DDOS Distributed Denial of Service C&C Server Command & Control Server HTTP HyperText Transfer Protocol IRC Internet Relay Chat

IDS Intrusion Detection System HIDS Host Based IDS

NIDS Network Base IDS P2P Peer-to-Peer MTFC Malware Capture Facility Project

Trang 7

DANH MỤC CÁC BẢNG

Bảng 1: Một số ví dụ về các luật phát hiện Botnet 48

Bảng 2: Cấu hình hệ thống 50

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1: Cấu trúc tiêu biểu của một Botnet 10

Hình 2: Cấu trúc Botnet hình sao 16

Hình 3: Cấu trúc Botnet multi server 17

Hình 4: Example Hieratical C&C botnet structure 18

Hình 5: P2P C&C botnet structure 19

Hình 6: Cấu trúc một luật trong Snort IDS 43

Hình 7: Cấu trúc phần tiêu đề của luật 44

Hình 8: Ví dụ về một luật trong snort IDS 45

Hình 9: Tùy chỉnh các thông số trong Bonesi 50

Hình 10: Tiến hành tấn công UDP bằng Botnesi 53

Hình 11: Các gói tin tấn công được gửi đến server 54

Hình 12: Các gói tin tấn công được ghi lại bởi phần mêm Wireshark 55

Hình 13: Snort đưa ra cảnh báo khi phát hiện gói tin tấn công UDP floot 56

Trang 8

MỞ ĐẦU

1 Đặt vấn đề

Với việc Internet ngày càng phát triển nhanh chóng, công nghệ thông tin được ứng dụng vào mọi mặt của đời sống, kinh tế, chính trị, xã hội Song song với quá trình phát triển đó thì những mối đe dọa cũng xuất hiện ngày càng nhiều, nổi bật là mối đe dọa về Botnet Các mạng Botnet được sinh ra một cách bí mật và tiềm ẩn trong đó những nguy cơ lớn đối với an ninh mạng Trong những năm gần đây, hiểm họa Botnet ngày càng trở nên nguy hiểm hơn với rất nhiều các công cụ và hình thức tấn công mới Khai thác, phát tán mã độc, phát tán thư rác số lượng lớn, tấn công từ chối dịch vụ website của các tổ chức, thu thập thông tin cá nhân về người dùng là những hành vi nguy hiểm thường thấy của Botnet đã gây ra những thiệt hại không nhỏ về đời sống kinh tế, xã hội Các nạn nhân của Botnet không ngừng gia tăng và

số lượng ngày càng lớn Các chuyên gia an ninh cần phải phát triển các phương pháp giảm nhẹ đối với các mối đe dọa nguy hiểm này để làm cho Internet là một nơi

an toàn hơn cho người sử dụng, nếu không họ có nguy cơ bị mất dữ liệu nhạy cảm của họ, hoặc thậm chí tiền bạc mà không hề hay biết và cải thiện an ninh của công

ty cơ sở hạ tầng để bảo vệ doanh nghiệp của họ

Thông qua việc nghiên cứu các phương pháp và kỹ thuật để phát hiện và xử lý Botnet, các tổ chức an ninh mạng đã tìm thấy và gỡ bỏ nhiều Botnet trên Internet Tuy nhiên, trong thập kỷ qua Botnet liên tục thay đổi, cải tiến cơ sở hạ tầng của nó

để ngày các trở nên nguy hiểm, phức tạp và tinh vi khiến cho việc phát hiện ngày càng trở nên khó khăn nếu chỉ sử dụng bởi các kỹ thuật phát hiện đã được để xuất

Vì vậy việc nghiên cứu các phương pháp phát hiện và xử lý Botnet mới luôn là một lĩnh vực nghiên cứu cấp thiết và ý nghĩa

2 Nhiệm vụ của luận văn

Trang 9

Mục tiêu tổng thế của luận văn là tìm hiểu về các phương pháp và kỹ thuật phát hiện và ngăn chặn Botnet Xây dựng tập luật cho Snort-IDS để phát hiện Botnet, tạo một hệ thống phát hiện Botnet nhanh chóng và mạnh mẽ Để đáp ứng được mục tiêu này, bốn mục tiêu chính sau cần phải được đáp ứng:

- Nghiên cứu về cấu trúc và các đặc trưng của Botnet, hiện trạng của Botnet

và các mối đe dọa liên quan

- Nghiên cứu và phân loại các phương pháp phát hiện Botnet

- Xây dựng một tập luật cho Snort-IDS để phát hiện được các dạng Botnet đã biết Tiến hành thử nghiệm và đánh giá hiệu quả của IDS này

- Nghiên cứu về các phương pháp phòng thủ để chống lại Botnet hiện nay

3 Cấu trúc luận văn

Luận văn này gồm 3 chương chính Được mô tả chi tiết dưới đây

Chương 1: Tổng quan về Botnet

Trong chương này, tôi sẽ trình bày từ định nghĩa về Botnet cho đến chi tiết các đặc trưng của Botnet để cho chúng ta một cái nhìn tổng quan về Botnet

Chương 2: Các kỹ thuật phát hiện và cơ chế phòng vệ Botnet

Trong chương này, tôi sẽ tìm hiểu các phương pháp và kỹ thuật phát hiện Botnet hiện có dựa trên một cách phân loại hợp lý và khoa học Trình bày các cơ chế và khuyến nghị giúp phòng thủ chống lại Botnet

Chương 3: Cài đặt và thử nghiệm snort IDS để phát hiện Botnet

Trong chương này tôi sẽ xây dựng một tập luật cho snort IDS và tiến hành thử nghiệm với phần mềm giả lập tấn công để đánh giá

Kết Luận

Kết luận của luận văn và các hướng nghiên cứu trong tương lai

Trang 10

CHƯƠNG 1: TỔNG QUAN VỀ BOTNET

1.1 Tổng quan về Botnet

Trước khi chúng ta thảo luận về Botnet, chúng ta sẽ phải định nghĩa về bot Một cách đơn giản nhất, một bot là một đoạn mã máy tính thực hiện một công việc hay nhiệm vụ nào đó một cách tự động hay Bot mạng là ứng dụng phần mềm tự động thực thi các nhiệm vụ trên mạng Internet Thông thường Bot thực hiện các nhiệm vụ đơn giản được lập trình sẵn và có cấu trúc lặp đi lặp lại với tốc độ cao

Bot được phát hiện đầu tiên trong hệ thống mạng Internet Relay Chat (IRC) (Holz, 2005) Oikarinen và Reed đã sáng tạo ra mạng IRC năm 1993 theo chuẩn RFC 1459 IRC là một dạng truyền dữ liệu thời gian thực trên Internet, cho phép một nhóm người có thể trò chuyện, liên lạc với nhau thông qua một kênh (channel), IRC cũng hỗ trợ các cuộc trò chuyện riêng tư giữa hai máy khách và truyền tải trực tiếp dữ liệu Do có thể sử dụng các máy chủ IRC công cộng như một phương tiện liên lạc và thực hiện các nhiệm vụ đơn giản, mạng IRC nhanh chóng được người dùng Internet yêu thích và sử dụng rộng rãi Các bot đầu tiên đã được sử dụng như một phương tiện để bảo vệ kênh IRC chống lại các hình thức tấn công từ chối dịch

vụ (DoS)

Theo Provos & Holz (2007) một Botnet được định nghĩa là một “mạng gồm rất nhiều máy tính bị xâm nhập và có thể bị kẻ tấn công điều khiển từ xa” “Máy tính bị xâm nhập” là máy tính bị lây nhiễm phần mềm độc hại (Bot) Như vây một Botnet

là một tập hợp các máy tính bị tổn thương (bot) tiếp nhận và giải lệnh từ một máy chủ (C&C server) phục vụ như một cơ chế tự động thực hiện các lệnh từ một bộ điều khiển của con người (các botmaster) (Hình.1) Để tránh bị phát hiện, các botmaster có thể tùy chọn sử dụng một số máy proxy, gọi là stepping-stones, giữa

Trang 11

các máy chủ C&C và chính nó Mục tiêu cuối cùng của một Botnet là để thực hiện các hoạt động độc hại hoặc các cuộc tấn công được điều khiển từ xa Như vậy, Botnet là tập hợp các bot được sử dụng với mục đích xấu Botmaster là một người hoặc một nhóm người điều khiển Botnet

Hình 1: Cấu trúc tiêu biểu của một Botnet

1.2 Đặc trƣng của Botnet

Để hiểu đầy đủ về Botnet và giải thích một cách hệ thống các tính năng khác nhau liên quan đến hành vi của Botnet Tôi xin giải thích vòng đời của một Botnet điển hình Từ khía cạnh của một bot, quá trình lây nhiễm bắt đầu bằng việc thực hiện của cài đặt các đoạn mã độc (bot binary) trên máy tính nạn nhân Bot binary được vận chuyển đến các máy tính nạn nhân thông qua một cơ chế lan truyền Bước tiếp theo là các bot này liên lạc với máy chủ C&C và công bố sự hiện diện của nó Điều này được gọi là cơ chế call-home hoặc rallying Rallying đánh dấu sự thành lập một kênh giao tiếp với C&C, thông qua đó các bot gửi thông tin và nhận các lệnh từ C&C Dựa trên cách C&C giao tiếp diễn ra, các Botnet tạo thành một topo mạng Các bot mới được hình thành sau đó chờ đợi cho mệnh lệnh để phục vụ các mục đích thực tế của các botnet, và tùy chọn lây nhiễm cho các máy tính khác thông qua các cơ chế lan truyền Một vấn đề quan trọng trong tất cả các hoạt động Botnet

là tránh bị phát hiện (evasion) Các cơ chế khác nhau được sử dụng để đảm bảo

Trang 12

rằng bot binary, máy chủ C&C và botmaster có thể tránh bị phát hiện Tóm lại, các đăc trưng chính của Botnet được định nghĩa bởi Trend Micro và Jose Nazario [1] như sau:

- Infection: Cách mà Botnet có thể lây nhiễm tới một máy tính

- Attacking Behaviour: Các hoạt động của một Botnet trên một máy tính bị lây nhiễm

- Command and Control (C&C): Cách mà mạng Botnet được kiểm soát

- Rallying Mechanisms: Cách để các bot tìm được các máy chủ bot của mình

- Communication Protocols: Loại giao thức được sử dụng

- Evasion Techniques: Phương pháp được sử dụng để tránh bị phát hiện

1.2.1 Lây nhiễm (Infection)

Botnet sử dụng một loạt các phương pháp tiếp cận khác nhau để lây nhiễm lên các máy tính Các thành phần lây nhiễm của một Botnet thường được nhắc đến như là một worm bởi vì cơ chế lây nhiễm của nó dựa trên khả năng sao chép chính mình sang các máy tính khác Jose Nazario đã phân loại thành bốn phương pháp lây nhiễm sau

Email

Các email được gửi đính kèm các file chứa mã nguồn độc hại Nếu người sử dụng mở những email này ra thì các máy tính sẽ bị lây nhiễm Trong quá khứ, hình thức này tương đối dễ dàng để phát hiện vì phần lớn các email đến từ những địa chỉ không biết hoặc không tin cậy Tuy nhiên ngày nay các các kỹ thuật ngày càng tinh

vi khi các email được giả mạo là gửi từ các công ty hay tổ chức uy tín như các ngân hàng hoặc những người quen Thường thì khi một máy bị nhiễm thì danh sách địa chỉ liên hệ của người dùng sẽ bị đọc và các email độc hại này sẽ được gửi đến tất cả

Trang 13

các địa chỉ đó dưới danh nghĩa của người sử dụng để mở rộng khả năng lây nhiễm.

Website

Các trang web thường được thiết lập để giả mạo các website nổi tiếng như Youtube hoặc một trang web đáng tín cậy nào đó bị tấn công và chèn vào đó các mã độc Có hai kiểu tấn công chính là tấn công phía client và tải về Trong hình thức tấn công ở phía client, khi một người dùng truy cập vào một website, các mã độc hại được khởi động để cố gắng lợi dụng một số lỗ hổng về bảo mật của các trình duyệt để có thể truy cập vào máy tính của người sử dụng Nếu lỗ hồng này được lợi dụng thành công, máy tính của người dùng sẽ bị lây nhiễm và trở thành một bot Trang web sẽ sử dụng đồng thời một vài lỗ hổng bởi vì sự thành công sẽ phụ thuộc vào trạng thái cập nhật của phần mềm cũng như các plugin của bên thứ ba Dạng tấn công dựa trên khai thác tải về là khi truy cập vào một website, người dùng sẽ được nhắc nhở để tải về một tập tin Nếu người dùng chấp nhận tải về, máy tính sẽ thực hiện tập tin này và bị lây nhiễm

1.2.2 Hành vi tấn công (Attacking Behaviour)

Mạng Botnet được sử dụng bởi những người tạo ra nó theo rất nhiều mục đích khác nhau Dưới đây là một số hoạt động chính của các mạng Botnet:

- Spam & Phishing email

Trang 14

- DDoS (Distributed Denial of Service) Attacks

Spam & Phising email

Ước tính có khoảng 107 tỷ tin nhắn rác trong năm 2009, trong đó chiếm 87.7% là email rác 89.5 tỷ (83%) của những email rác được gửi bởi Botnet Spam

là một vấn đề lớn không chỉ vì nó gây phiền toái cho người sử dụng mà cũng bởi vì những hành vi lừa đảo để lấy trộm cá thông tin bí mật như tên người dùng, mật khẩu và thông tin thẻ tín dụng Mặc dù hầu hết các thư rác bị chặn hoặc bị loại bỏ bởi người sử dụng, nếu chỉ cần 0,0001% số người sử dụng đáp ứng các email đó thì cũng đã rất nguy hiểm

DDoS

Tấn công từ chối dịch vụ phân tán (Distributed Denial of Service - DDoS) được thực hiện bởi Botnet là một vấn đề rất nguy hiểm trong thực tế bởi vì chúng rất khó để chống lại Tấn công DDoS xảy ra khi một máy chủ bị tràn ngập các lưu lượng của người dùng trên tất cả các băng thông khiến cho các lưu lượng hợp lệ không thể kết nối được với máy chủ Các dạng tấn công DDoS truyền thống có thể

dễ dàng ngăn chặn bằng cách sử dụng tường lửa để chặn địa chỉ IP của các kẻ tấn công, tuy nhiên như với dạng tấn công click fraud, các lưu lượng đến từ rất nhiều nguồn Chúng thường được lan truyền rộng rãi trên Internet và khó bị ngăn chặn dù

đã xác định được đó là các lưu lượng độc hại Trong một số trường hợp các chủ sở

Trang 15

hữu các trang web có thể bị các tổ chức tấn công để đòi tiền chuộc hoặc phải trả tiền

có giá trị

Click Fraud

Gian lận click là cách sử dụng mạng Botnet để các máy bot sẽ ghé thăm một trang web và giả mạo hành động đó được thực hiện bởi một người sử dụng thông thường và nhấp chuột vào các quảng cáo được hiển thị trên website đó để tạo ra lợi nhuận cho chủ sở hữu các website đó một cách trái phép Hình thức tấn công này gây thiệt hại lớn cho các công ty quảng cáo trực tuyến, những người trả tiền dựa trên việc click vào quảng cáo của người dùng Thât khó để phát hiện được hình thức tấn công này bởi vì, mỗi lần nhấp chuột được thực hiện từ một địa chỉ IP khác nhau với sự phấn bố rộng rãi của Botnet trên Internet

Warez

Warez là khi một bot sẽ chụp lại số serial và giấy phép hoạt động của các phần mềm bản quyền được cài đặt trên máy bị lây nhiễm Tùy thuộc vào loại phần mềm được cài đặt, máy chủ bot net có thể bán các số serial để thu lợi bất chính

Malware

Botnet phát tán các phần mềm độc hại để tăng số lượng máy tính bị lây

Trang 16

nhiễm Có rất nhiều phương pháp được sử dụng để lây nhiễm trong đó email là phương pháp được phổ biến nhất Tuy nhiên gần đây mạng xã hội như facebook, twitter và các phần mềm nhắn tin được lợi dụng để phát tán các phần mềm độc hại Các thông điệp chứa các URL đến các trang web độc hại Nếu người dùng truy cập các trang web này, máy tính của họ có thể bị tổn hại

Retail

Hiện nay, các mạng Botnet khi được phát triển đến một mức đủ lớn dẽ được bán hoặc cho thuê lại Những người mua sẽ nhận được quyền kiểm soát một phần hoặc toàn

bộ mạng botnet để thực hiện các hoạt động tấn công đã được trình bày ở trên

1.2.3 Kiểm soát và điều khiển (Command and Control)

Kiểm soát và điều khiển (C&C) là phương pháp được sử dụng để giao tiếp giữa các bot và các máy chủ bot Đó cũng là cách các bot được kiểm soát Tất cả các bot trong mạng giao tiếp với máy chủ tổng thể bằng cách gửi dữ liệu như thông tin thu thập được ví dụ mật khẩu và cũng có thể nhận lệnh từ máy chủ Có bốn loại cấu trúc liên kết C&C chính được sử dụng bởi Botnet

Star

Topo sao được dựa trên một cấu trúc tập trung C&C như trong Hình 2 Tất cả các chương trình giao tiếp với cùng một máy chủ Topo này đơn giản để thiết lập và duy trì tuy nhiên nó có một điểm yếu lớn Đó là nếu máy chủ C&C không hoạt động bởi bất cứ lý do gì, chẳng hạn như gặp sự cố về phần cứng hoặc phần mềm hoặc bị tắt máy hoặc bởi vì nó bị chặn bởi chính quyền thì mạng Botnet sẽ bị vô hiệu hóa Các chương trình vẫn chạy ẩn trên máy tính bị lây nhiễm tuy nhiên chúng sẽ không thể nhận được lệnh và gửi dữ liệu đến các máy chủ bot khiến cho mạng Botnet trở lên vô dụng

Trang 17

Hình 2: Cấu trúc Botnet hình sao

Multi Server

Multi-Server topo được xây dựng trên cấu trúc của topo hình sao nhưng trong trường hợp này sẽ có hai hoặc nhiều máy chủ giao tiếp với các bot như Hình 3 Các máy chủ cũng liên lạc với nhau để quản lý các bot Cấu trúc này khắc phục được một phần điểm yếu của cấu trúc topo hình sao bởi vì nếu một máy chủ không

sẵn sàng, các máy chủ còn lại vẫn có thể kiểm soát được các bot trong mạng Botnet

Trang 18

Hình 3: Cấu trúc Botnet multi server

Hierarchical

Topo phân cấp sử dụng một cấu trúc phân cấp dưới dạng các đại lý bot sẽ phân phối lệnh cho toàn bộ các bot thuộc phân cấp con của nó trong mạng Botnet, như thể hiện trong Hình 4 Ưu điểm của việc này là một bot không biết vị trí và số lượng của các bot trong mạng Botnet Tuy nhiên, có hạn chế là do máy chủ C&C không có tiếp xúc trực tiếp với tất cả các bot nên có thể có độ trễ trong quá trình

truyền lệnh

Trang 19

Hình 4: Example Hieratical C&C botnet structure

Random:

Topo ngẫu nhiên không có cấu trúc tập trung, các bot nhận thức tất cả các bot khác trong các Botnet và giao tiếp trực tiếp thay vì đi qua một máy chủ, như trong Hình 5 Một ví dụ của cấu trúc này là peer-to-peer (p2p) Các lệnh trong một cấu trúc p2p được giới thiệu với một bot trong Botnet và sau đó được phổ biến đến tất

cả các bot khác Ưu điểm của cấu trúc này là nó là rất khó để ngăn chặn vì không có máy chủ C&C tập trung nhưng điểm yếu độ trễ cao trong quá trình truyền nhận các lệnh và địa chỉ IP của toàn bộ Botnet có thể bị phát hiện

Trang 20

Hình 5: P2P C&C botnet structure

1.2.4 Cơ chế tập hợp (Rallying Mechanisms)

Các cơ chế tập hợp định nghĩa cách các bot có thể xác định vị trí máy chủ C&C Có ba phương pháp chính sau:

Hard coded IP addresses của các máy chủ C&C được nhúng trong các

chương trình bot Đây là cơ chế tập hợp rất dễ bị phát hiện và ngăn chặn bằng cách

sử dụng các tường lửa, bởi vậy các mạng botnet hiện nay không sử dụng phương pháp này

Dynamic DNS domain name, một máy chủ bot mua một số tên miền và các

bot sử dụng một tên miền để có được địa chỉ IP của một máy chủ C&C Điều này giúp phương pháp này được sử dụng rộng rãi bởi vì người nắm quyền có thể tắt các máy chủ botnet C&C Với phương pháp này các máy chủ bot có thể dễ dàng được thiết lập và cập nhật DNS để trỏ đến máy chủ mới

Trang 21

Distributed DNS service được sử dụng khi một máy chủ bot chạy máy chủ

DNS của họ để giải quyết các địa chỉ IP của các máy chủ C&C Bot có địa chỉ IP của DNS được thiết lập cứng trong chương trình code Phương pháp này là khó khăn nhất để phát hiện

1.2.5 Giao thức giao tiếp (Communication Protocols)

Các giao thức được sử dụng để giao tiếp của một mạng botnet mô tả cách các bot và các máy chủ C&C giao tiếp với nhau Tùy thuộc vào giao thức được sử dụng

sẽ xác định được cách bố trí và định dạng của các phương thức giao tiếp đó Nó được sử dụng để truyền dữ liệu đánh cắp được tới máy chủ C&C và nhận các mệnh lệnh từ máy chủ bot Giao thức thường được sử dụng để giao tiếp trên Internet là IRC (Internet Relay Chat) Các bot sẽ tham gia vào một máy chủ cá nhân IRC Secure socket layer (SSL) có thể sử dụng trên IRC để mã hóa dữ liệu và các câu lệnh để tránh bị phát hiện Ngày nay có rất nhiều bot sử dụng giao thức Hyper Text Transfer Protocol (HTTP) bởi vì hiện nay có rất nhiều tưởng lửa đặc biệt là trong các mạng công ty đã ngăn chặn phần lớn các lưu lượng liên lạc với C&C thông qua giao thức IRC Trong khi tất cả các mạng đều cho phép giao thức HTTP bởi vì giao thức này được sử dụng để truy cập vào WWW Một số Botnet mới nhất cũng đã thông qua giao thức p2p sử dụng một cấu trúc topo ngẫu nhiên mà không có một máy chủ để liên lạc Vì vậy nó khiến mạng Botnet trở nên rất khó phát hiện và thậm chí khó có thể loại bỏ Mạng Botnet Spybot và Agobot là những ví dụ điển hình của mạng Botnet sử dụng giao thức p2p

1.2.6 Kỹ thuật tránh bị phát hiện (Evasion Techniques)

Với sự gia tăng nhận thức về các mạng Botnet thì các máy chủ Botnet phải sửa đổi các kỹ thuật của mình để tránh bị phát hiện Một số kỹ thuật thường được sử

Trang 22

dụng là:

- Encrypted traffic

- Domain flux

- Rootkits

Encrypted traffic - Như đã nêu trước đó, sử dụng các kênh bí mật trong

giao thức IRC giao tiếp với các máy chủ C&C để nhận lệnh và kiểm soát Đây là hình thức giao tiếp có thể nhìn thấy trong bản ghi và khá dễ dàng để phát hiện sử dụng một hệ thống phát hiện xâm nhập Chương trình mới hơn sử dụng các giao thức khác như http và một số sử dụng giao thức an toàn hơn như Hypertext Transfer Protocol Secure (HTTPS) Http là một giao thức tốt để sử dụng vì nó thường rất phổ biến trên mạng mà làm cho nó khó khăn để lọc cho giao thông bot Ngoài ra việc sử dụng HTTPS mã hóa các lệnh làm cho nó khó khăn để phát hiện hoặc giám sát

Domain Flux - là một phương pháp được sử dụng bởi nhiều Botnet để tránh

bị phát hiện, chúng làm điều này bằng cách thay đổi các điểm tiếp xúc Nó tạo ra một danh sách các tên miền bằng Domain Generation Algorithms (DGA) mà nó sẽ liên lạc tùy thuộc vào thời gian Điều này là rất hiệu quả vì nó làm cho nó rất khó khăn để loại bỏ hay ngăn chặn các máy chủ C&C vì các máy chủ thay đổi tên miền một cách thường xuyên

Rootkit – Ngày nay người sử dụng và các nhà sản xuất ngày càng có ý thức

hơn về vấn đề bảo mật bằng cách cài đặt sẵn các phần mềm chống virus Tuy nhiên, các biện pháp chống virus được cài đặt sẵn thường chỉ là phiên bản dùng thử và sẽ trở lên vô hiệu nếu không được mua bởi người sử dụng Các máy chủ Bot sử dụng phần mềm được gọi là rootkit để che giấu một thực tế rằng một máy tính đã bị xâm nhập Rootkits, như mebroot [1], có thể tránh bị phát hiện bởi các phần mềm chống

Trang 23

virus bằng cách sử dụng nhiều kỹ thuật như sửa đổi bản ghi khởi động, để khi các máy tính khởi động, nó làm cho bản thân các chương trình bot này được khởi chạy trước khi chương trình antivirus tiến hành quét hệ thống Rootkit không phải là một chương trình độc hại Tuy nhiên, khi kết hợp với một loại virus hoặc bot, chúng sẽ rất hiệu quả trong việc tránh bị phát hiện Các torpig [1] Botnet sử dụng mebroot để truyền bá, lây nhiễm và chạy ngầm trên máy tính của người dùng

Trang 24

CHƯƠNG 2: KỸ THUẬT PHÁT HIỆN VÀ CƠ CHẾ PHÒNG VỆ

có thể được sử dụng kết hợp với nhau Ví dụ, phát hiện C&C có thể được diễn ra bởi phát hiện bot và ngược lại

Ngoài ra phương pháp phát hiện Botnet có thể được phân loại như chủ động và

bị động Trong phát hiện chủ động, cách tiếp cận là tham gia vào các hoạt động của Botnet bằng cách mạo nhận như một thành phần của mạng Botnet này thay vì thụ động quan sát các hoạt động của nó Ngược lại, phương pháp phát hiện thụ động phát hiện các Botnet thông qua việc âm thầm quan sát và phân tích các hoạt động Botnet Việc phân loại cơ chế phát hiện Botnet thành 'chủ động‟ và 'thụ động' là cách tiếp cận có tầm quan trọng thiết thực cho bất kỳ nhà nghiên cứu hoặc quản trị mạng nào Các kỹ thuật phát hiện chủ động nêu lên một số vấn đề về pháp lý và đạo đức, và khả năng nó có thể hoặc không thể được thực hiện sẽ khác nhau giữa các tổ

Trang 25

chức Vì lý do này, các chính sách về an toàn mạng thường cấm các hoạt động can thiệp lên luồng gói tin được gửi đi trong mạng Hơn nữa, phương pháp phát hiện chủ động có thể gây nguy hiểm cho sự an toàn của các máy chủ mà họ tìm cách bảo

vệ Nếu phát hiện chủ động được phát hiện bởi các botmaster, sẽ tạo cơ hội để những kẻ đó có thể trực tiếp tấn công vào máy chủ bằng các kỹ thuật khác thay vì

sử dụng Botnet Một vấn đề khác liên quan đến kỹ thuật phát hiện thụ động là việc

tính riêng tư của người dùng có thể bị xâm phạm

2.1 Phát hiện Bot

Phát hiện bot có thể được thực hiện có hoặc không có liên quan đến các biến thể khác của bot (bot family) Người sử dụng và quản trị mạng thường không quan tâm đến thông tin về bot family Mối quan tâm chính của họ là để bảo vệ hệ thống mạng của mình khỏi bị xâm nhập Trong khi các nhà nghiên cứu an ninh đặc biệt quan tâm đến việc xác định bot family Bởi mối quan tâm của họ là mức độ phổ biến của các Botnet khác nhau, phân bố địa lý của nó, và đặc điểm chung của Botnet Việc phát hiện bot giúp chỉ ra lỗ hổng của một máy chủ hoặc mạng bị nhiễm Botnet Từ

đó có thể đưa ra các chiến lược khắc phục hậu quả nhằm phục hồi từ việc lây nhiễm

và phòng ngừa để tránh bị lây nhiễm trong tương lai

2.1.1 Phát hiện chủ động

Phát hiện bot một cách chủ động liên quan đến việc tham gia vào các hoạt động Botnet Điều này thường liên quan đến việc mạo danh là một thành phần của Botnet

Có hai phương pháp phát hiện chủ động chính là phát hiện xâm nhập (Infiltration)

và phát hiện bằng máy chủ C&C Hijack

Infiltration: Trong phát hiện xâm nhập một máy tính phòng thủ giả dạng một

bot thực tế và thăm dò các máy chủ C&C hoặc các bot khác trong trường hợp của

Trang 26

một mạng Botnet có cấu trúc p2p và dựa trên đó để đạt được thông tin chi tiết về các bot khác Nappa et al [2] đề xuất một cuộc tấn công replay trên một Botnet dựa trên phần mềm Skype Kỹ thuật này có thể có hiệu quả cho các mạng Botnet p2p khác nữa Các máy tính phòng thủ dần dần giành được thông tin về các chương trình khác bằng cách liên tục phát đi tin nhắn giả để tuyên bố chính nó như là một bot mới và sau đó có được một danh sách các bot mới

C&C server Hijack: Các Bot có thể được phát hiện bởi C&C server Hijack

Như đã biết các bot báo cáo và nhận lệnh từ các máy chủ C&C Việc chiếm được quyền kiểm soát của máy chủ C&C sẽ tiết lộ tất cả các bot có liên hệ với nó Điều này có thể đạt được bằng cách khai thác cơ chế Botnet raylling Một máy tính phòng thủ có thể sử dụng thông tin này để chiếm quyền điều khiển máy chủ Cách tiếp cận này cũng thúc đẩy sự hiểu biết về topo mạng của Botnet Các Botnet có cấu trúc tập trung sẽ thuận lợi cho việc sử dụng kỹ thuật C&C server Hijack Trong Botnet phân cấp, các máy chủ C&C chỉ có thông tin về bot kết nối trực tiếp với nó

Để có được thêm thông tin, một số kỹ thuật khác cần phải được sử dụng, chẳng hạn như crawl hoạt động của botnet p2p Việc chiếm giữ các máy chủ C&C có thể thực hiện trên hai phương diện là vật lý hoặc ảo Trong chiếm quyền vật lý, các cơ quan thực thi pháp luật sẽ thu giữ các máy tinh được dùng làm máy chủ C&C trong thực

tế Tuy nhiên, vẫn có thể chiếm quyền các máy chủ C&C mà không cần có sự tham gia của cơ quan pháp luật Với sự giúp đỡ của các nhà cung cấp dịch vụ, các nhà nghiên cứu đã đạt được quyền truy cập vào một số máy chủ C&C được sử dụng bởi phần mềm Pushdo/ Cutwail Botnet

Trong chiếm quyền ảo, họ chiếm quyền các máy chủ C&C bằng cách chuyển hướng các giao tiếp với máy chủ C&C sang một máy chủ dưới sự kiểm soát của họ

Trang 27

Kỹ thuật này đã được sử dụng bởi các nhà nghiên cứu để chiếm quyền điều khiển Botnet sử dụng cơ chế tập hợp dựa trên tên miền Nhờ phương pháp DNS sinkholing, lưu lượng được gửi bởi các bot đến một tên miền đã biết của một Botnet được chuyển tiếp đến máy chủ do các nhà nghiên cứu kiểm soát Các tên miền của máy chủ C&C thu được bằng cách phân tích các hành vi Botnet trên máy tính

2.1.2 Phát hiện bị động

Phương pháp phát hiện thụ động phát hiện các Botnet bằng việc quan sát và phân tích các hoạt động của Botnet Phương pháp phát hiện thụ động có hai kỹ thuật chính là cú pháp (Syntactic) và ngữ nghĩa (Semantic)

Syntactic: Việc xác định Botnet dựa trên cú pháp hoặc cách tiếp cận dựa trên

dấu hiệu được thực hiện bằng cách so sánh với các mẫu Botnet đã xác định thu được từ tập dữ liệu mẫu Rishi là một cách tiếp cận dựa trên cú pháp để phát hiện bots IRC Nó xây dựng biểu thức chính quy như là một dấu hiệu để xác định bot Snort có một cơ sở dữ liệu dấu hiệu đa dạng và được sử dụng bởi BotHunter cùng với các thành phần phát hiện dựa trên dấu hiệu bất thường khác để đưa ra các cảnh báo Phát hiện dựa trên dấu hiệu có thể bị giảm hiệu quả nếu các Botnet sử dụng các

cơ chế tránh phát hiện mạnh như mã hóa Ngoài ra các mối đe dọa mới mà chưa có dấu hiệu nào đã biết sẽ hoàn toàn không bị phát hiện Do đó, phương pháp này nên được bổ sung bằng phương pháp phát hiện dựa trên hành vi

Semantic: Phương pháp phát hiện ngữ nghĩa sử dụng bối cảnh của sự kiện và

thông tin giao thức để phát hiện hành vi nguy hiểm Quá trình phát hiện bot đòi hỏi phải phân tích cẩn thận và được dựa trên độ lệch từ những hành vi thông thường với hành vi của một bot

Correlation: Ý tưởng ở đây là phân cụm các máy chủ thực hiện các hành vi

Trang 28

thông thường Kỹ thuật tương quan thực hiện trên dữ liệu sơ cấp và thứ cấp Dữ liệu

sơ cấp là tất cả các hoạt động nhằm duy trì hoạt động của Botnet Dữ liệu thứ cấp là các hành vi độc hại của bot

- Vertical: Tương quan dọc liên quan đến hoạt động của một bot và so sánh nó với các mô hình hành vi của bot Mô hình lấy nhiễm là 1 quá trình gồm 5 bước: quét

hệ thống, khai thác lỗ hổng, tải về mã độc, sử dụng tập hợp hội thoại của các bot và tấn công lây nhiễm BotTracer sử dụng kỹ thuật máy ảo đề phát hiện Botnet dựa trên

ba trạng thái trong vòng đời Botnet là tự động khởi động, thiết lập kết nối với máy chủ C&C và tấn công

- Horizontal: Tương quan ngang phát hiện bot bằng cách quan sát các hoạt động thông thường của máy tính và các hoạt động giao tiếp giữa bot và máy chủ

Behavioral Analysis: là một lớp khác của kỹ thuật phát hiện dựa trên ngữ

nghĩa Phân tích Botnet bằng cách quan sát độ lệch của hành vi giữa một mô hình thông thường với các hành vi của một Botnet đã biết Phân tích hành vi có thể được chia thành 2 nhóm là Host-based hoặc Network-based

- Host-based tìm kiếm dấu hiệu của hành vi bot giống như trên một máy chủ BotSwat phát hiện máy nhiễm Botnet bằng cách xác định hành vi phản hồi lệnh Nó theo dõi các chương trình có sử dụng dữ liệu nhận được từ các nguồn không đáng tin cậy (dữ liệu bị nhiễm độc) và xem xét khả năng có phải là dữ liệu khởi động bot

từ xa hay không Nó liên quan đến một tập hợp các cuộc gọi hệ thống với các hoạt động bot, được gọi là „gate functions' Máy sẽ bị nghi ngờ là nhiễm Botnet, nếu dữ liệu bị nhiễm độc được thông qua như là đối số tới „gate functions‟

- Network-based sử dụng thông tin từ lưu lượng mạng và các dịch vụ để phát hiện bot Nó thường đòi hỏi phải phân loại lưu lượng vào các ứng dụng mạng và tìm

Trang 29

kiếm các hành vi giống như bot trong lưu lượng mạng của các ứng dụng Phát hiện dựa trên payload sẽ không hiệu quả nếu các lưu lượng mạng được mã hóa và liên quan đến vấn đề riêng tư của người dùng Lu et al sử dụng phương pháp kiểm tra dấu hiệu payload để phân loại lưu lượng và phát hiện ra rằng 40% lưu lượng mạng không thể được phân loại thành các ứng dụng cụ thể Một số phương pháp tập trung vào việc phát hiện các Botnet dựa trên IRC và do đó đòi hỏi phân chia lưu lượng mạng thành 2 thành phần IRC và không phải IRC

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ơ

Trang 30

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

Ngày đăng: 16/07/2017, 17:26

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Alan Shaikh, “Botnet Analysis and Detection System”, International Journal of Network Security, November 2010 Sách, tạp chí
Tiêu đề: Botnet Analysis and Detection System
2. Riccardo Bortolameotti, “C&C Botnet Detection over SSL”, University of Twente - EIT ICT Labs masterschool, 2013 Sách, tạp chí
Tiêu đề: C&C Botnet Detection over SSL
3. Youksamay Chanthakoummane, Saiyan Saiyod, Nunnapus Benjamas, and Nattawat Khamphakdee, “Evaluation Snort-IDS Rules for Botnets Detection”, National Conference on Information Technology: NCIT, 2014 Sách, tạp chí
Tiêu đề: Evaluation Snort-IDS Rules for Botnets Detection
4. Franỗois Bộgin, “BYOB: Build Your Own Botnet”, SANS Institute InfoSec Reading Room, 27th July 2011 Sách, tạp chí
Tiêu đề: BYOB: Build Your Own Botnet
5. Sheharbano Khattak, Naurin Rasheed Ramay, Kamran Riaz Khan, Affan A. Syed, and Syed Ali Khayam, “A Taxonomy of Botnet Behavior, Detection and Defense”, IEEE Communications Surveys & Tutorials, 02 October 2013 Sách, tạp chí
Tiêu đề: A Taxonomy of Botnet Behavior, Detection and Defense
6. Saiyan Saiyod, Youksamay Chanthakoummane, Nunnapus Benjamas, Nattawat Khamphakdee and Jirayus Chaichawananit, “Improving Intrusion Detection on Snort Rules for Botnet Detection”, Convergence Security, Vol. 1, 19–40., 29 May 2016 Sách, tạp chí
Tiêu đề: Improving Intrusion Detection on Snort Rules for Botnet Detection
9. Saiyan Saiyod, Youksamay Chanthakoummane Nunnapus Benjamas, Nattawat Khamphakdee and Jirayus Chaichawananit1,” Improving Intrusion Detection on Snort Rules for Botnet Detection”, Publication 29 May 2016 Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w