Download as pdf or txt
Download as pdf or txt
You are on page 1of 45

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN I

BÀI TẬP LỚN


MÔN HỌC: KỸ THUẬT THEO DÕI & GIÁM SÁT MẠNG

CHỦ ĐỀ: “SNORT – PHÁT HIỆN XÂM NHẬP”

Giảng viên : ThS.HOÀNG MẠNH THẮNG

Nhóm : 12

Thành viên nhóm : NGUYỄN MẠNH TÂM – B17DCAT159

TRẦN ĐỨC NHÂN – B17DCAT136

NGUYỄN VĂN KỲ – B17DCAT108

NGUYỄN VĂN QUANG – B17DCAT148

HOÀNG ĐĂNG KHÔI – B17DCAT107

Hà Nội, năm 2021


MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT ................................................................................................ 4

DANH MỤC HÌNH ẢNH .............................................................................................................. 5

CHƯƠNG I: TÌM HIỂU VỀ IDS ................................................................................................... 7

1.1. Hệ thống IDS ................................................................................................................ 7

1.2. Chức năng của IDS ....................................................................................................... 8

1.2.1. Giám sát................................................................................................................. 8

1.2.2. Phân Tích............................................................................................................... 8

1.2.3. Bảo vệ và cảnh báo................................................................................................ 8

1.3. Quy trình hoạt động của IDS ........................................................................................ 8

1.3.1. Quy trình ............................................................................................................... 8

1.3.2. Phân loại IDS ........................................................................................................ 9

1.4. Mô hình chung ............................................................................................................ 12

1.4.1. Mô hình ............................................................................................................... 12

1.4.2. Cơ chế hoạt động................................................................................................. 13

1.4.3. Phát hiện bất thường............................................................................................ 13

1.4.4. Phát hiện xâm nhập lạm dụng ............................................................................. 14

CHƯƠNG II: GIỚI THIỆU SNORT ............................................................................................ 16

2.1. Tổng quan về Snort..................................................................................................... 16

2.2. Các chế độ hoạt động của Snort. ................................................................................ 17

2.2.1. Sniffer mode (chế độ đánh hơi) ........................................................................... 17

2.2.2. Packet logger mode (chế độ ghi log gói tin) ....................................................... 17

2.2.3. NIDS mode (Network Intrusion Detection System Mode) ................................. 18

2.3. Các thành phần của Snort. .......................................................................................... 19

2.3.1. Packet Decoder. ................................................................................................... 20

2.3.2. Preprocessor ........................................................................................................ 20


2.3.3. Detection Engine ................................................................................................. 21

2.3.4. Logging and Alert System ......................................................................................... 22

2.3.5. Ouput ................................................................................................................... 22

2.4. Rule............................................................................................................................. 22

2.4.1. Tổng quan về Rule ..................................................................................................... 22

2.4.2. Cấu trúc của Rule ...................................................................................................... 23

CHƯƠNG III: CÀI ĐẶT VÀ THỬ NGHIỆM ............................................................................. 28

3.1. Cài đặt và cấu hình ............................................................................................................ 28

3.2. Demo và thử nghiệm .................................................................................................. 31

3.2.1. Chuẩn bị .............................................................................................................. 31

3.2.2. Tấn công ICMP FLOOD ..................................................................................... 33

3.2.3. Tấn công SYN FLOOD....................................................................................... 37

3.2.4. Tấn công XSS...................................................................................................... 41


DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt Từ viết đầy đủ
CSDL Cơ sở dữ liệu
DOS Disk Operating System
HIDS Host-Based Intrusion Detection System
HTTP Hypertext Transfer Protocol
IDP Intrusion Detection Systems
IP Internet Protocol
IPS Intrusion Prevention System
NIDS Network intrusion detection system
OS Operating System
XSS Cross Site Scripting
DANH MỤC HÌNH ẢNH
Hình 1: Các hệ thống phát hiện tấn công xâm nhập ....................................................................... 7
Hình 2: Ví trí của NIDS trong hệ thống........................................................................................ 10
Hình 3: Ví trí của HIDS trong hệ thống........................................................................................ 11
Hình 4: Mô hình của hệ thống IDS ............................................................................................... 12
Hình 5: Các vị trí điển hình để cài đặt Snort................................................................................. 17
Hình 6: file snort.conf ................................................................................................................... 18
Hình 7: Thành phần của Snort ...................................................................................................... 19
Hình 8: Thành phần của Snort ...................................................................................................... 20
Hình 9: Thành phần của Snort ...................................................................................................... 23
Hình 10: Thành phần của một rule ............................................................................................... 23
Hình 11: Thành phần của một rule ............................................................................................... 24
Hình 12: Thành phần của một rule ............................................................................................... 25
Hình 13: Thành phần của một rule ............................................................................................... 26
Hình 14: Thành phần của một rule ............................................................................................... 27
Hình 15: Đổi địa chỉ IP ................................................................................................................. 28
Hình 16: Thiết lập đường dẫn đến thư mục chứa các tập rule ...................................................... 28
Hình 17: Thiết lập đường dẫn đến thư mục chứa các tập rule ...................................................... 29
Hình 18: Thiết lập đường dẫn đến thư mục dynamicpreprocessor với dynamicengine ............... 29
Hình 19: Thiết lập đường dẫn đến thư mục dynamicpreprocessor với dynamicengine ............... 29
Hình 20: Thiết lập đường dẫn đến thư mục dynamicpreprocessor với dynamicengine ............... 30
Hình 21: Xác định interface number của máy chạy Snort ............................................................ 30
Hình 22: Chạy Snort ở chế độ IDS thành công............................................................................. 31
Hình 23: Config Snort ................................................................................................................... 32
Hình 24: Máy chủ Apache nạn nhân............................................................................................. 32
Hình 25: Cài rule cho IDS IMCP Flood ....................................................................................... 33
Hình 26: Chạy snort với rule cho ICMP ....................................................................................... 35
Hình 27: Thực hiện tấn công máy nạn nhân ................................................................................. 35
Hình 28: Snort xuất cảnh báo ICMP Flood .................................................................................. 36
Hình 29: Thông số Snort ............................................................................................................... 37
Hình 30: Rule cho cảnh báo SYN Flood ...................................................................................... 38
Hình 31: Tấn công ở mức service nạn nhân vẫn hoạt động .......................................................... 39
Hình 32: Tấn công làm ngừng service của nạn nhân .................................................................... 40
Hình 33: Kết quả thu được của snort phát hiện SYN Flood ......................................................... 40
Hình 34. Luật trong rules XSS-injection ...................................................................................... 41
Hình 35. Snort được khởi chạy với rules mới ............................................................................... 41
Hình 36. IP của máy cài snort ....................................................................................................... 42
Hình 37. Khởi chạy DVWA trên máy ubuntu .............................................................................. 43
Hình 38. Kết quả sau khi tấn công XSS trên máy Ubuntu ........................................................... 44
Hình 39. Thông báo trên máy snort .............................................................................................. 45
CHƯƠNG I: TÌM HIỂU VỀ IDS
1.1. Hệ thống IDS
IDS (Intrucsion Deletion System) là hệ thống giám sát lưu lượng mạng (có
thể là một phần cứng hoặc phần mềm), có khả năng nhận biết các hoạt động khả
nghi hay nhưng hành động xâm nhập trái phép trên hệ thống mạng trong tiến trình
tấn công (FootPrinting, Scanning, Sniffer, …), cung cấp thông tin và đưa ra cảnh
báo cho hệ thống và nhà quản trị.

Hệ thống IDS sẽ thu thập thông tin từ rất nhiều nguồn trong hệ thống được
bảo vệ sau đó tiến hành phân tích những thông tin đó theo các cách khác nhau để
phát hiện những xâm nhập trái phép và đưa ra những cảnh báo phù hợp.

Các hệ thống IDS có thể được đặt trước hoặc sau tường lửa, tùy theo mục
đích sử dụng.

Hình 1: Các hệ thống phát hiện tấn công xâm nhập


1.2. Chức năng của IDS
1.2.1. Giám sát
Giám sát dữ liệu mạng và ác hoạt động khả nghi trong mạng, giám sát các
thiết bị và dịch vụ mạng, giám sát các tài nguyên của hệ thống.

Hệ thống giám sát lưu lượng hỗ trợ cho người quản trị mạng giám sát lưu
lượng trao đổi giữa các thiết bị mạng. Nó hoạt động thời gian thực và thể hiện lưu
lượng của các giao tiếp mạng (các giao tiếp của Router, Switch, Server, …), hoạt
động của CPU, RAM một cách trực quan thông qua những đồ thị, … Ðiều này
giúp người quản trị mạng có những phân tích tình trạng hoạt động của các thiết bị
mạng trong hệ thống một cách trực quan nhất.

1.2.2. Phân Tích


Phân tích các gói tin mà firewall cho phép đi qua, tìm kiếm các dấu hiệu tấn
công từ các dấu hiệu đã biết hoặc thông qua phân tích các sự kiện bất thường, từ đó
ngăn chặn các cuộc tấn công trước khi nó có thể gây ra hậu quả xấu với hệ thống
mạng.

1.2.3. Bảo vệ và cảnh báo


Báo cáo về tình trạng mạng cho nhà quản trị. Hệ thống báo động là một
trong những thành phần quan trọng trong hệ thống giám sát mạng. Hệ thống báo
động giúp người quản trị mạng nắm bắt được trạng thái hoạt động của hệ thống
mạng.

Cảnh báo cũng có thể được lưu vào file (log file) hoặc vào cơ sở dữ liệu để
nhà quản trị mạng có thể xem lại. Cảnh báo có thể, hiện trên màn hình, khi đăng
nhập hoặc bằng email, tin nhắn điện thoại và bằng nhiều cách khác.

1.3. Quy trình hoạt động của IDS


1.3.1. Quy trình
Bước 1: một host tạo ra gói tin mạng.
Bước 2: các cảm biến trong mạng đọc gói tin trong khoảng thời gian trước khi nó
được gửi ra khỏi mạng cục bộ

Bước 3: chương trình phát hiện nằm trong bộ cảm biến kiểm tra xem các gói tin
nào có dấu hiệu vi phạm hay không.

Bước 4: khi giao diện lệnh điều khiển nhận được cảnh báo nó sẽ gửi thông báo cho
một người hoặc một nhóm đã được chỉ định từ trước.

Bước 5: phản hồi được khởi tạo theo quy định ứng với xâm nhập này

Bước 6: cảnh báo được lưu lại để tham khảo trong tương lai.

Bước 7: một báo cáo chi tiết của các sự cố được tạo ra

Bước 8: cánh báo được so sánh với các dữ liệu khác để xác định xem đây có phải
cuộc tấn côn hay không

1.3.2. Phân loại IDS


Network-based IDS (NIDS): một NIDS kiểm tra các luồng dữ liệu trong
mạng và giám sát nhiều máy trạm, NIDS truy nhập vào luồng thông tin trên mạng
bằng cách kết nối vào các Hub, Switch để bắt các gói tin, phân tích nội dung gói
tin và từ đó đưa ra các cảnh báo.
Hình 2: Ví trí của NIDS trong hệ thống

1.3.3. Ưu điểm, Nhược Điểm của NIDS


 Ưu điểm
 Quản lý được cả một network segment (gồm nhiều host)
 Cài đặt và bảo trì đơn giản, không ảnh hưởng đến mạng
 Tránh DOS ảnh hưởng tới một host nào đó
 Có khả năng xác định lỗi ở tang Network
 Nhược điểm
 Có thể sảy ra trường hợp báo động giả
 không thể phân tích dữ liệu được mã hóa (VD: SSH, SSL, …)
 NIDS đòi hỏi phải được cập nhật các singture mới nhất để thực sự an
toàn
 Có độ trễ giữa thời điểm bị tấn công và thời điểm phát hiện báo động
 Hạn chế lớn nhất là giới hạn băng thông
Host-based IDS (HIDS): một HIDS sẽ kiểm tra lưu thông mạng đang được
chuyển đến máy trạm, bảo vệ máy trạm thông qua việc ngăn chặn các gói tin nghi
ngờ là độc hại. Có khả năng kiểm tra hoạt động đăng nhập vào máy trạm, tìm kiếm
cái hoạt động không bình thường như dò tìm mật khẩu, leo thang đặc quyền, truy
cập trái phép CSDL, … Có hiệu quả cao trong việc phát hiện người dùng truy cập
sai tài nguyên trên hệ thống, nếu người dùng cố thực hiện những hành vi không
hợp pháp thì HIDS sẽ phát hiện và tập hợp thông tin thích hợp nhất và nhanh nhất.

Hình 3: Ví trí của HIDS trong hệ thống

1.3.4. Ưu điểm, Nhược Điểm của HIDS


 Ưu điểm
 Có khả năng xác định user liên quan đến event
 Có khả năng phát hiện tấn công diễn ra trên một máy, NIDS thì không
 Có thể phân tích dữ liệu mã hóa
 Cung cấp các thông tin về host trong lúc cuộc tấn công diễn ra trên host
này.
 Nhược Điểm
 Thông tin từ HIDS là không đáng tin cậy ngay khi sự tấn công vào host này
thành công.
 Khi OS bị sập do tấn công, đồng thời HIDS cũng sập
 HIDS phải được thiết lâp trên từng host cần giám sát
 HIDS không có khả năng phát hiện các cuộc dò quét mạng (Nmap, Netcap,
…)
 HIDS cần tài nguyên trên host để hoạt động.
 HIDS có thể không hiệu quả khi bị DOS

1.4. Mô hình chung


1.4.1. Mô hình
Cấu trúc hệ thống IDS phụ thuộc vào kiểu phương pháp được sử dụng để phát

Cấu trúc hệ thống của IDS phụ thuộc vào kiểu phương pháp được sử dụng để
phát hiện xâm nhập, các cơ chế xử lý khác nhau được sử dụng đối với một IDS. Mô
hình cấu trúc chung cho các hệ IDS:

Hình 4: Mô hình của hệ thống IDS

 Các cảm biến (sensor): làm nhiệm vụ phát hiện các sự kiện có khả năng đe
dọa an ninh của hệ thống mạng, có chức năng tiếp nhận và rà quét nội dung
các gói tin trong mạng, so sánh nội dung với các mẫu có sẵn và phát hiện ra
các dấu hiệu tấn công
 Giao diệm (console): là bộ phận làm nhiệm vụ tương tác với người quản trị,
nhận lệnh điều khiển hoạt động Sensor, Engine và đưa ra thông báo về cuộc
tấn công.
 Khối xử lý (engine): có nhiệm vụ ghi lại tất cả các báo cáo về các sự kiện
được phát hiện bởi các Sensor vào một cơ sở dữ liệu và sử dụng một hệ
thống luật đã được định nghĩa để phân tích, sau đó đưa ra các cảnh báo trên
các sự kiện an ninh nhận được cho hệ thống hoặc người quản trị.

1.4.2. Cơ chế hoạt động


Cơ chế hoạt động gồm hai cơ chế

 Phát hiện xâm nhập dựa trên các bất thường (Anomaly instrusion
detection).
 Phát hiện xâm nhập dựa trên chữ ký hoặc phát hiện sự lạm dụng
(Signature-based / misuse instrusion detection)

1.4.3. Phát hiện bất thường


Phương pháp này dựa trên giả thiết: các hành vi xâm nhập thường có quan
hệ chặt chẽ với các hành vi bất thường

Quá trình xây dựng gồm hai giai đoạn:

 Xây dựng hồ sơ của chế độ làm việc bình thường. Cần giám sát đối tượng
trong điều kiện bình thường trong một khoảng thời gian đủ dài để thu
thập dữ liệu huấn luyện
 Giám sát hành vi hiện tại của hệ thống và cảnh báo nếu có khác biệt rõ
nét giữa hành vi hiện tại và hồ sơ của đối tượng
 Ưu điểm
 Phát hiện các cuộc tấn công biết trước.
 Phát hiện các cuộc tấn công nội gián hoặc đánh cắp tài khoản dễ dàng.
 Hệ thống dựa trên các cấu hình tùy chỉnh, nên rất khó để kẻ tấn công biết
chắc chắn hoạt động nào đặt cảnh báo và không đặt cảnh báo
 Phát hiện xâm nhập thông qua học máy
 Nhược điểm
 Phương pháp phát hiện bất thường yêu cầu tập dữ liệu huấn luyện lớn
 Phát hiện bất thường tạo ra một số lượng lớn về cảnh báo sai đối với các
hành vi chưa được dự đoán của người dung hay của mạng
 Tỷ lệ cảnh báo sai tương đối cao so với phương pháp dựa trên lam dụng.

Các phương pháp phát hiện bất thường

 Xác xuất thống kê.


 Máy trạng thái hữu hạn (Finite state machine)
 Mạng nơron (neural network).
 Kĩ thuật khai phá dữ liệu (data mining).

1.4.4. Phát hiện xâm nhập lạm dụng


Bằng cách so sánh dấu hiệu các đối tượng đang quan sát với các dấu hiệu
các hình thức xâm nhập đã biết trước.

Hệ thống phát hiện xâm nhập lạm dụng xác định sự xâm nhập bằng cách liên
kết hợp giữa các sự kiện thu thập được với các mẫu hoặc dấu hiệu các cuộc tấn
công.

 Ưu điểm
 Có khả năng phát hiện tấn công, xâm nhập một cách hiệu quả
 Tốc độ cao, yêu cầu tài nguyên tính toán tương đối thấp
 Nhược Điểm
 Không có khả năng phát hiện tấn công, xâm nhập mới, do chữ ký của
chúng chưa có trong cơ sở dữ liệu các chữ ký
 Đòi hỏi nhiều công thức xây dựng và cập nhật cớ sở dữ liệu chữ ký/dấu
hiệu tấn công, xâm nhập
CHƯƠNG II: GIỚI THIỆU SNORT
2.1. Tổng quan về Snort
Snort là một hệ thống IDS/IPS thuộc dạng NIDS. Snort được Martin Roesch
nghiên cứu và phát triển từ năm 1998. Từ năm 2013 cho đến nay, công ty nổi tiếng
về mạng là Cisco đã mua lại Snort và tiếp tục phát triển nghiên cứu. Snort là một
công cụ có mã nguồn mờ, hoàn toàn miễn phí và có thể tải và cài đặt ở trên hầu hết
các hệ điều hành phổ biến hiện này: Linux/Unix, Ubuntu, MacOS, Window, …
Kiến trúc thiết kế của Snort được xây dựng theo kiểu module, tức là người dùng
hoàn toàn có thể thêm cho hệ thống Snort của mình bằng việc cài đặt hoặc viết
thêm mới các module. Số lượng rule của Snort hiện tại đã lên tới hàng nghìn rule
và luôn luôn được thêm hay cập nhật hằng tháng bởi Snort sở hữu cộng đồng user
đông đảo.

Tùy thuộc vào cấu trúc mạng, mà chúng ta sẽ xác định đặt các hệ thống IDS
như Snort. Vị trị đặt cũng phụ thuộc vào các việc chúng ta muốn phát hiện các hoạt
động xâm nhập nào.

- Nếu chúng ta muốn phát hiện các hoạt động xâm nhập từ bên ngoài và ta chỉ
có 1 bộ định tuyến  đặt IDS ở trong Router hoặc FireWall.
- Nếu chúng ta có nhiều đường dẫn đến Internet  Đặt IDS tại mỗi điểm vào.
- Vừa phát hiện cả ở bên trong và bên ngoài  Đặt IDS tại mọi phân đoạn
(network segment.

Lưu ý: Việc đặt nhiều IDS, sẽ tốn nhiều chi phí cũng như bảo trì. Cho nên, tùy
thuộc vào mục đích, chính sách của công ty mà quyết định số lượng cũng như vị trí
đặt các IDS.
Hình 5: Các vị trí điển hình để cài đặt Snort

2.2. Các chế độ hoạt động của Snort.


2.2.1. Sniffer mode (chế độ đánh hơi)
Đây là chế độ cơ bản nhất của mọi hệ thống NIDS. Khi ở trong chế độ này,
Snort sẽ phát hiện và hiển thị header của các gói tin: TCP, ICMP, UDP, IP, … Ra
màn hình. Chúng ta sử dụng lệnh: snort -v.

Hiển thị thêm cả dữ liệu của người dùng: snort -vd.

Hiển thị thêm cả header của lớp data link thì sử dụng tập lệnh: snort -vde.

2.2.2. Packet logger mode (chế độ ghi log gói tin)


Đây là chế độ làm việc mà Snort sẽ thực hiện ghi log lại các gói tin đã phát
hiện được rồi sau đó lưu trữ lại trong kho lưu trữ log của Snort hoặc một ví trí lưu
trữ khác mà người dùng cấu hình chỉ định. Việc ghi log lại sẽ giúp cho chúng ta
thực hiện theo dõi và truy vết sau này. Snort sẽ tự động ghi lại log và lưu lại trong
thư mục log (mặc định) khi chúng ta sử dụng lệnh sau: snort -dev -l/snort/log.

Ngoài sử dụng file text, chúng ta cũng có thể ghi log dưới dạng file nhị phân
bằng cách sử dụng cờ b. Khi ghi file log ở chế độ nhị phân có thể tăng tốc độ bắt
gói tin của Snort nhanh hơn):
snort -b –l /snort/log/***.log (*** là tên file log).

Sử dụng câu lệnh sau để thự hiện đọc lại file log đã được lưu:

snort -r /snort/log/***.log (*** là tên file log)

2.2.3. NIDS mode (Network Intrusion Detection System Mode)


Ở chế độ này, Snort không ghi lại từng gói tin đã bắt được như Sniffer
mode. Thay vào đó Snort áp dụng các quy tắc trên tất cả các gói được bắt. Nếu một
gói không khớp với bất kỳ quy tắc nào, gói tin đó sẽ bị loại bỏ (drop) và sẽ không
thực hiện ghi lại log của gói này. Khi sử dụng chế độ này trong Snort, chúng ta sẽ
phải tùy chỉnh các cấu hình trong file snort.conf. file này nằm trong folder etc của
Snort. File conf này sẽ chứa các các thông tin cấu hình về rule hoặc reference của
Snort.

Hình 6: file snort.conf


2.3. Các thành phần của Snort.
Bên trong Snort sẽ bao gồm module sau:

 Packet Decoder (giải mã gói tin)


 Preprocessors (tiền xử lý)
 Detection Engine (công cụ phát hiện)
 Logging and Alerting System (ghi log và cảnh báo)
 Output Module (lưu trữ dữ liệu).

Hình 7: Thành phần của Snort

Các gói tin từ Internet khi đi vào trong hệ thống của chúng ta sẽ phải đi qua
hệ thống Snort. Đầu tin các gói tin sẽ gặp module Packet Decoder (giải mã gói tin).
Tiếp theo các gói tin sẽ được tiền xử lý tại module Preprocessors (tiền xử lý). Sau
khi xử lý xong, gói tin sẽ gặp module Detection Engine (công cụ phát hiện), tùy
thuộc vào cấu hình cũng như các tập rule của chúng ta mà module này sẽ quyết
định gói tin sẽ được đi vào sâu hơn hoặc bị loại bỏ (drop). Nếu gói tin được lưu
thông tiếp thì tại module Logging and Alerting System (ghi log và cảnh báo) sẽ
thực hiện show ra các cảnh báo và ghi log về các gói tin này. Khi các cảnh báo
được xác định, module cuối cùng Output Module (lưu trữ dữ liệu) sẽ thực hiện lưu
trữ lại các cảnh báo này.

2.3.1. Packet Decoder.


Trước khi sử dụng Snort, chúng ta nên cài đặt các thư viện pcap để bắt mọi
gói tin trên mạng lưu thông qua hệ thống.

Hình 8: Thành phần của Snort

2.3.2. Preprocessor
Mục tiêu của module này là xử lý qua dữ liệu trong các gói tin nhằm phục
vụ cho module Detection Engine (công cụ phát hiện). Các nhiệm vụ chính của
module này bao gồm

- Kết hợp lại các gói tin: Khi một lượng dữ liệu lớn được gửi đi, dữ liệu sẽ
không đóng gói toàn bộ vào một gói tin mà phải thực hiện việc phân mảnh,
chia gói tin ban đầu thành nhiều gói tin rồi mới gửi đi. Khi Snort nhận được
các gói tin này nó phải thực hiện việc ghép nối lại để có được dữ liệu nguyên
dạng ban đầu.

- Giải mã và chuẩn hóa giao thức: Một số module tiền xử lý của Snort phải
có nhiệm vụ giải mã và chỉnh sửa, sắp xếp lại các thông tin đầu vào nhằm
phục vụ mục đích đưa đến module detection Engine (công cụ phát hiện) phát
hiện có thể phát hiện được mà không bỏ sót. Hiện nay, Snort đã hỗ trợ việc
giải mã và chuẩn hóa cho các giao thức mạng thông dụng như: arp, rpc, http,
telnet.

- Phát hiện xâm nhập bất thường: Module tiền xử lý sẽ so sánh các gói tin
này với các plug -in (ví dự như RPC plug -in, HTTP plug-in, port scanning
plug -in, . . .). Các gói tin sẽ được kiểm tra hành vi xem có khớp với các
hành vi được nêu trong plug -in hay chưa, nếu đã khớp rồi, các gói tin này sẽ
được chuyển đến module phát hiện.

2.3.3. Detection Engine


Module này có nhiệm vụ phân tích các gói tin và dựa vào các dấu hiệu hay
các cấu hình trong rule được định nghĩa trước đó để so sánh với dữ liệu thu thập
được. Từ đó quyết định: gói tin sẽ bị loại bỏ, gói tin sẽ được đi tiếp, gói tin có dấu
hiệu xâm nhập hay không. Đây là module quan trọng xương sống của của hệ thống
IDS Snort.

Vì hệ thống của chúng ta sẽ nhận được rất nhiều thông tin trên lưu lượng
mạng sử dụng thông thường, chính điều này có thể ảnh hưởng đến hiệu năng hoạt
động của Snort. Ngoài ra, hiệu năng của Snort có thể bị ảnh hưởng bởi các tác
nhân khac như: số lượng các rule, tải trên mạng, sức mạnh của hệ thống đang cài
đặt Snort, …
2.3.4. Logging and Alert System
Đầu vào của module này chính là đầu ra của các gói tin trong module trước
nó. Tùy thuộc vào việc module Detection Engine có nhận dạng gói tin này là gói
tin xâm nhập hay không. Nếu là gói tin xâm nhập, module sẽ thực hiện việc ghi log
hoặc là đưa ra cảnh báo. Snor phân loại 3 định logging như sau:

- Decoded: Dạng này log sẽ được xử lý thô nhằm tiết kiệm thời gian và cho
phép thực hiện nhanh.
- Nhị phân tcpdump: log dạn này sẽ được xử lý tương tự như tcpdump và ghi
vào đĩa cũng khá là nhanh chóng. Ghi log dạng này thì thích hợp hơn với các
hệ thống đòi hỏi performance cao.
- Cây thư mục IP: với dạng này, log sẽ được sắp xếp hệ thống theo cấu trúc
cây thư mục IP. Việc sắp xếp thành cấu trúc cây sẽ giúp cho người đọc dễ
đọc và dễ hiểu hơn.

2.3.5. Ouput
Đây là module cuối cùng trong cấu trúc các thành phần của Snort. Mục tiêu
của module này là lưu trữ các dữ liệu cuối cùng khi các gói tin vào trong Snort.
Tùy thuộc vào mong muốn cũng như cấu hình của chúng ta. Module này sẽ thực
hiện các nhiệm vụ như: Ghi log và lưu log vào cơ sở dữ liệu tập trung, Ghi log
File, …

2.4. Rule
2.4.1. Tổng quan về Rule
Tập rule trong Snort khá là đơn giản để viết, đọc hiểu hay áp dụng. Tuy
nhiên những rule này lại tương đối mạnh mẽ, nó có thể phát hiện được hầu hết tất
cả các xâm nhập vào trong mạng của hệ thống của chúng ta. Sau khi so sáng các
gói tin đi vào với các quy tắc hay với các rule trong tập rule, Snort sẽ thực hiện một
số hành động sau đây:
 Log: Tuỳ theo dạng ghi log mà ta chọn thì các gói tin sẽ được ghi log theo
dạng đó.
 Alert: Sinh ra một cảnh báo tùy theo thông điệp (msg) mà ta muốn hiển thị
khi cảnh báo.
 Pass: Snort cho phép gói tin đó đi qua và đi vào trong mạng của hệ thống.

2.4.2. Cấu trúc của Rule


Tất cả các rule của Snort có cấu tạo đều gồm 2 phần: Header và Option:

 Header: chứa thông tin về hành động mà rule đó sẽ thực hiện khi phát hiện
ra có xâm nhập nằm trong gói tin và nó cũng chứa các tiêu chuẩn để áp dụng
rule với gói tin đó. Trình tự ưu tiên của các hành động trong Snort là:
activation  dynamic  alert  pass  log.
 Option: chứa môt thông điệp (msg) cảnh báo và các thông tin về các phần
của gói tin dùng để tạo nên cảnh báo. Option chứa các tiêu chuẩn phụ thêm
để đối sánh luật với gói tin.

Hình 9: Thành phần của Snort

Hình 10: Thành phần của một rule

Trong Snort tồn tại 4 Option chính:

 General rule options (các tùy chọn quy tắc chung)


Hình 11: Thành phần của một rule

 Payload detection rule options (các tùy chọn quy tắc phát hiện payload)
Hình 12: Thành phần của một rule

 Non payload detection rule options (các tùy chọn quy tắc phát hiện không
payload)
Hình 13: Thành phần của một rule

 Post-Detection rule options (tùy chọn quy tắc sau phát hiện)
Hình 14: Thành phần của một rule
CHƯƠNG III: CÀI ĐẶT VÀ THỬ NGHIỆM
3.1. Cài đặt và cấu hình
Để Snort có thể hoạt động như một hệ thống IDS/IPS, trước tiên ta phải cấu
hình file snort.conf trong thư mục Snort\etc\snort.conf sau khi download Snort từ
trang chủ như các bước cơ bản bên dưới đây:

 Thiết lập địa chỉ mạng của hệ thống mà ta cần bảo vệ cần bảo vệ(thay đổi
any thành địa chỉ IP hoặc dải địa chỉ của máy bảo vệ).

Hình 15: Đổi địa chỉ IP

 Thiết lập đường dẫn đến thư mục chứa các tập rule

Hình 16: Thiết lập đường dẫn đến thư mục chứa các tập rule

 Thiết lập đường dẫn đến thư mục chứa các file ghi log
Hình 17: Thiết lập đường dẫn đến thư mục chứa các tập rule

 Thiết lập đường dẫn tới các thư mục dynamicpreprocessor với
dynamicengine

Hình 18: Thiết lập đường dẫn đến thư mục dynamicpreprocessor với dynamicengine

 Comment những dòng sau khi chạy Snort ở chế độ IDS

Hình 19: Thiết lập đường dẫn đến thư mục dynamicpreprocessor với dynamicengine

 Xác định interface number của máy chạy Snort, sử dụng câu lệnh: snort -W
Hình 20: Thiết lập đường dẫn đến thư mục dynamicpreprocessor với dynamicengine

Hình 21: Xác định interface number của máy chạy Snort

 Chạy Snort ở chế độ IDS/IPS với câu lệnh:


snort -i 6 -c c:\Snort\etc\snort.conf -A console (6 là interface number mạng
của hệ thống chạy Snort)
Hình 22: Chạy Snort ở chế độ IDS thành công.

3.2. Demo và thử nghiệm


3.2.1. Chuẩn bị
 Máy ảo cài kali
o Ip: 192.168.0.109
o Cài đặt Snort
o Cài đặt và sử dụng công cụ slowhttptest dùng để tấn công DOS SYN
flood
o Sử dụng Hping3 tấn công DOS ICMP flood
o Config file snort.config
Hình 23: Config Snort

 Máy nạn nhân


o Ip: 192.168.0.104
o Cài đặt xampp, bật máy chủ server Apache

Hình 24: Máy chủ Apache nạn nhân

Do sử dụng máy ảo để làm nên ở nhóm em sẽ demo trên máy kali cài Snort
3.2.2. Tấn công ICMP FLOOD
Tại thời điểm Snort đã sẵn sàng để chạy. ngoại trừ, nó không có bất kỳ quy
tắc nào được tải. Bây giờ chúng tôi viết các quy tắc sẽ cho phép snort phát hiện
một cuộc tấn công DoS. Mở tệp local.rules trong trình soạn thảo văn bản dưới
dạng root bằng lệnh sau:

sudo gedit /etc/snort/rules/local.rules

Sau đó, chúng tôi nhập như sau:

alert icmp any any -> $HOME_NET any (msg:"ICMP flood"; sid:1000001;
rev:1; classtype: icmp-event; detection_filter:track by_dst, count 500, seconds
3;)

Hình 25: Cài rule cho IDS IMCP Flood

Đây là quy tắc của câu lệnh này

Rule Header

 alert: Hành động quy tắc. Snort sẽ tạo cảnh báo khi điều kiện đã đặt
được đáp ứng
 any: IP nguồn. Snort sẽ xem xét tất cả các nguồn.
 any: Cổng nguồn. Snort sẽ xem xét tất cả các cổng
 - >: Phương hướng. Từ nguồn đến đích
 $HOME_NET: IP đích. Chúng tôi đang sử dụng giá trị HOME_NET từ
tệp snort. conf
 any: Cảng đích. Snort sẽ xem xét tất cả các cổng trên mạng được bảo vệ

Rule Options

 msg:” ICMP flood”: Snort sẽ bao gồm thông báo này cùng với cảnh báo
 sid:1000001: ID quy tắc ngắn. Hãy nhớ rằng tất cả các số <1.000.000
đều được đặt trước, đây là lý do tại sao chúng tôi bắt đầu với 1000001
(bạn có thể sử dụng bất kỳ số nào, miễn là nó lớn hơn 1.000.000).
 rev:1: Số sửa đổi. Tùy chọn này cho phép duy trì quy tắc dễ dàng hơn
 classtype: icmp-event: Phân loại quy tắc dưới dạng “icmp-event”, một
trong các danh mục Snort được xác định trước. Tùy chọn này giúp tổ
chức quy tắc
 detection_filter: track by_dst: Snort theo dõi địa chỉ IP đích để phát
hiện.
 count 500: Nếu trong khoảng thời gian lấy mẫu, Snort phát hiện hơn 500
yêu cầu thì chúng tôi sẽ nhận được cảnh báo
 seconds 3: thời gian lấy mẫu được đặt thành 3 giây

Bây giờ, hãy bắt đầu Snort ở chế độ IDS và yêu cầu nó hiển thị cảnh báo cho bảng
điều khiển:

sudo snort -A console -c /etc/snort/snort.conf -i eth0


Hình 26: Chạy snort với rule cho ICMP

Ở đây chúng ta đang trỏ Snort đến tệp cấu hình mà nó sẽ sử dụng (-c) và chỉ
định giao diện (-i eth0). Tùy chọn bảng điều khiển -A in cảnh báo ra đầu ra tiêu
chuẩn. Chúng ta không thấy bất kỳ đầu ra nào khi chúng ta nhập lệnh vì Snort
không phát hiện thấy bất kỳ hoạt động nào được chỉ định trong quy tắc chúng tôi
đã viết. Chúng ta tạo ra một số hoạt động và xem liệu quy tắc của chúng tôi có
hoạt động hay không. Chúng ta khởi chạy máy ảo của chúng ta

Sau đó ta sử dụng công cụ Hping3 để tiến hành tấn công IMCP flood trên
máy nạn nhân bằng lệnh:

hping3 -1 --flood -a 192.168.0.109 192.168.0.104

Hình 27: Thực hiện tấn công máy nạn nhân


Thấy các cảnh báo được tạo cho mọi yêu cầu phản hồi ICMP vượt quá giá trị
đếm được chỉ định trong khoảng thời gian lấy mẫu với văn bản thông báo mà
chúng ta đã chỉ định trong tùy chọn tin nhắn.

Hình 28: Snort xuất cảnh báo ICMP Flood

Chúng tôi cũng có thể thấy địa chỉ IP nguồn của máy chủ chịu trách nhiệm
về hoạt động tạo cảnh báo.
Hình 29: Thông số Snort

3.2.3. Tấn công SYN FLOOD


Ta sửa rule trong file local.rules với luật mới:

alert tcp any any -> $HOME_NET 80 (flags: S; msg:"Possible DoS


Attack Type : SYN flood"; flow:stateless; sid:3; detection_filter:track
by_dst, count 20, seconds 10;)
Hình 30: Rule cho cảnh báo SYN Flood

Trong quy tắc này, chúng tôi đã thay đổi giao thức thành TCP và đặt số cổng
đích là 80. Cờ từ khóa kiểm tra xem có các bit cờ TCP cụ thể (trong trường hợp
này là cờ SYN) hay không. Khoảng thời gian lấy mẫu được đặt thành 10 giây.
Nếu trong khoảng thời gian này có hơn 20 yêu cầu được phát hiện thì chúng tôi sẽ
nhận được cảnh báo.

Chạy snort như bước ở trên. Ở đây ta sẽ sử dụng công cụ slowhttptest thực
hiện tấn công bằng lệnh:

- c là số lượng kết nối


- i là khoảng thời gian truyền giữa các dữ liệu
- r là kết nối mỗi giây
- x độ dài ngân nhiên gửi đi trên header hoặc body của request
- p thời gian chờ phản hồi HTTP trên kết nối thăm dò, sau đó máy chủ
được coi là không thể truy cập được

sudo slowhttptest -c 140 -H -g -o ./output_file -i 10 -r 200 -t GET -u


http://192.168.0.104/ -x 24 -p 2
Hình 31: Tấn công ở mức service nạn nhân vẫn hoạt động

Ở kết qua trên slowhttptest cho thấy serivce của server nạn nhận vẫn còn
hoạt động và vẫn truy cập được vào trang server nhưng nếu ta tăng số lượng kết
nối c lên 500 thì người dùng không thể truy cập bằng lệnh:

sudo slowhttptest -c 500 -H -g -o ./output_file -i 10 -r 200 -t GET -u


http://192.168.0.104/ -x 24 -p 2
Hình 32: Tấn công làm ngừng service của nạn nhân

Ta thu được kết quả tại bên màn console của snort thông báo tấn công SYN Flood

Hình 33: Kết quả thu được của snort phát hiện SYN Flood
Kết quả thu được của snort phát hiện SYN Flood.

3.2.4. Tấn công XSS

Ta sẽ thêm một file rules mới có tên là XSS-injection.rules trong folder fules
với các luật như sau:

Hình 34. Luật trong rules XSS-injection

Chạy lệnh snort để bắt đầu ở chế độ IDS:

“snort -c C:\Snort\etc\snort.conf -A console -i 6”

Hình 35. Snort được khởi chạy với rules mới


Ở đây chúng ta sẽ trỏ Snort đến tệp cấu hình mà nó sẽ sử dụng (-c) và chỉ
định giao diện (-i eth0). Tùy chọn bảng điều khiển -A in cảnh báo ra đầu ra tiêu
chuẩn. Chúng ta không thấy bất kỳ đầu ra nào khi chúng ta nhập lệnh vì Snort
không phát hiện thấy bất kỳ hoạt động nào được chỉ định trong quy tắc đã viết.
Thực hiện tấn công XSS vào trên webserver và quan sát màn hình cảnh báo để xem
luật có được thực hiện hay không.

Ở đây chúng ta sẽ thực hiện demo trên web DVWA được cài đặt trên máy
snort để giám sát. Vào xampp  bật Appache và Mysql. Mở cmd  gõ ipconfig
để xem ip máy snort

Hình 36. IP của máy cài snort

Ở máy ảo Ubuntu thực hiện vào trang DVWA trên máy snort và chọn XSS(
Reflected)
Hình 37. Khởi chạy DVWA trên máy ubuntu

Thực hiện nhập “?name=<script>alert("XSS");</script>” trên máy


Ubuntu ta sẽ có kết quả như sau:
Hình 38. Kết quả sau khi tấn công XSS trên máy Ubuntu

Và đây là các cảnh báo được snort đưa ra:


Hình 39. Thông báo trên máy snort

You might also like