Tải bản đầy đủ (.docx) (21 trang)

Các hệ thống phát hiện xâm nhập dựa trên dấu hiệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (501.76 KB, 21 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Viện Công nghệ thông tin và truyền thông

An Ninh Mạng
ĐỀ TÀI : Các hệ thống phát hiện xâm nhập dựa

trên dấu hiệu
Nhóm sinh viên thực hiện :
1. Nguyễn Đức Hậu

MSSV: 20124977

2. Hà Văn Cầu

MSSV: 20124970

3. Trần Quang Đạt

MSSV: 20124974

4. Nguyễn Trọng Anh

MSSV: 20121220

Giảng viên hướng dẫn : PGS.Nguyễn Linh Giang
Hà Nội, 11-2015


Mục Lục

I.


1.

TỔNG QUAN HỆ THỐNG IDS
Khái niệm về hệ thống phát hiện xâm nhập IDS


Hệ thống phát hiện xâm nhập – IDS (Intrusion Detection System) là một hệ
thống có nhiệm vụ giám sát các luồng dữ liệu (lưu lượng) đang lưu thông trên mạng, có khả
năng phát hiện những hành động khả nghi, những xâm nhập trái phép cũng như khai
thác bất hợp pháp nguồn tài nguyên của hệ thống mà từ đó có thể dẫn đến xâm hại
tính toàn ổn định,tòan vẹn và sẵn sàng của hệ thống.
IDS có thể phân biệt được những cuộc tấn công xuất phát từ bên ngoài hay từ
chính bên trong hệ thống bằng cách dựa vào một database dấu hiệu đặc biệt về những
cuộc tấn công (smurf attack, buffer overflow, packet sniffers….). Khi một hệ thống
IDS có khả năng ngăn chặn các cuộc tấn thì nó được gọi là hệ thống ngăn chặn xâm
nhập – IPS (Intrusion Prevention System).
Có rất nhiều công cụ IDS, trong đó Snort được sử dụng rất nhiều vì khả năng
tương thích có thể hỗ trợ cài đặt trên cả hai môi trường Window và Linux. Khi Snort
phát hiện những dấu hiệu của một cuộc tấn công, tùy thuộc vào cấu hình và những qui
tắc do người quản trị qui định (Snort Rule) mà Snort có thể đưa ra những hành động
khác nhau, như gửi cảnh báo đến người quản trị hay ghi log file,loại bỏ các gói tin
xâm nhập hệ thống….

2.

Chức năng của IDS

Hệ thống phát hiện xâm nhập cho phép các tổ chức bảo vệ hệ thống của họ khỏi những đe
dọa với việc gia tăng kết nối mạng và sự tin cậy của hệ thống thông tin. Những đe dọa đối
với an ninh mạng ngày càng trở nên cấp thiết đã đặt ra câu hỏi cho các nhà an ninh mạng

chuyên nghiệp có nên sử dụng hệ thống phát hiện xâm nhập trừ khi những đặc tính của hệ
thống phát hiện xâm nhập là hữu ích cho họ, bổ sung những điểm yếu của hệ thống khác…
IDS có được chấp nhận là một thành phần thêm vào cho mọi hệ thống an toàn hay không
vẫn là một câu hỏi của nhiều nhà quản trị hệ thống. Có nhiều tài liệu giới thiệu về những
chức năng mà IDS đã làm được những có thể đưa ra vài lý do tại sao nên sử dụng hệ thống
IDS:
• Bảo vệ tính toàn vẹn (integrity) của dữ liệu, bảo đảm sự nhất quán của dữ liệu trong hệ
thống. Các biện pháp đưa ra ngăn chặn được việc thay đổi bất hợp pháp hoặc phá hoại dữ
liệu.
• Bảo vệ tính bí mật, giữ cho thông tin không bị lộ ra ngoài. Bảo vệ tính khả dụng, tức là hệ
thống luôn sẵn sàng thực hiện yêu cầu truy nhập thông tin của người dùng hợp pháp.
• Bảo vệ tính riêng tư, tức là đảm bảo cho người sử dụng khai thác tài nguyên của hệ thống
theo đúng chức năng, nhiệm vụ đã được phân cấp, ngăn chặn được sự truy nhập thông tin
bất hợp pháp.
• Cung cấp thông tin về sự xâm nhập, đưa ra những chính sách đối phó, khôi phục, sửa
chữa…
Nói tóm lại ta có thể tóm tắt IDS như sau:
- Chức năng quan trọng nhất là: giám sát – cảnh báo – bảo vệ
Giám sát: lưu lượng mạng và các hoạt động khả nghi.
Cảnh báo: báo cáo về tình trạng mạng cho hệ thống và nhà quản trị.
Bảo vệ: Dùng những thiết lập mặc định và sự cấu hình từ nhà quản trị mà có những hành
động thiết thực chống lại kẻ xâm nhập và phá hoại.


3.

Kiến trúc của hệ thống phát hiện xâm nhập
Kiến trúc của một hệ thống IDS bao gồm các thành phần chính sau: Thành

phần thu thập gói tin (information collection), thành phần phân tích gói tin

(detection) và thành phần phản hồi (respotion). Trong ba thành phần này, thành
phần phân tích gói tin là quan trọng nhất và bộ cảm biến (sensor) đóng vai trò quan
quyết định nên cần được phân tích để hiểu rõ hơn về kiến trúc của một hệ thống
phát hiện xâm nhập

Bộ cảm biến được tích hợp với thành phần sưu tập dữ liệu. Bộ tạo sự kiện. Cách
sưu tập này được xác định bởi chính sách tạo sự kiện để định nghĩa chế độ lọc thông tin sự
kiện. Bộ tạo sự kiện (hệ điều hành, mạng, ứng dụng) cung cấp một số chính sách thích
hợp cho các sự kiện, có thể là một bản ghi các sự kiện của hệ thống hoặc các gói mạng. Số
chính sách này cùng với thông tin chính sách có thể được lưu trong hệ thống được bảo vệ
hoặc bên ngoài.
Vai trò của bộ cảm biến là dùng để lọc thông tin và loại bỏ dữ liệu không tương
thích đạt được từ các sự kiện liên quan với hệ thống bảo vệ, vì vậy có thể phát hiện
được các hành động nghi ngờ. Bộ phân tích sử dụng cơ sở dữ liệu chính sách phát hiện
cho mục này. Ngoài ra còn có các thành phần: dấu hiệu tấn công, profile hành vi thông
thường, các tham số cần thiết (ví dụ: các ngưỡng). Thêm vào đó, cơ sở dữ liệu giữ các
tham số cấu hình, gồm có các chế độ truyền thông với module đáp trả. Bộ cảm biến
cũng có cơ sở dữ liệu của riêng nó, gồm dữ liệu lưu về các xâm phạm phức tạp tiềm ẩn
(tạo ra từ nhiều hành động khác nhau).
IDS có thể được sắp đặt tập trung (ví dụ như được tích hợp vào trong tường lửa)
hoặc phân tán. Một IDS phân tán gồm nhiều IDS khác nhau trên một mạng lớn, tất cả
chúng truyền thông với nhau. Nhiều hệ thống tinh vi đi theo nguyên lý cấu trúc một tác


nhân, nơi các module nhỏ được tổ chức trên một host trong mạng được bảo vệ.

4.

Phân loại hệ thống phát hiện xâm nhập


Có hai loại cơ bản là: Network-based IDS và Host-based IDS.
4.1 Network-based IDS (NIDS)
NIDS là một hệ thống phát hiện xâm nhập bằng cách thu thập dữ liệu của các gói tin
lưu thông trên các phương tiện truyền dẫn như (cables, wireless) bằng cách sử dụng các
card giao tiếp.Khi một gói dữ liệu phù hợp với qui tắc của hệ thống, một cảnh báo được
tạo ra để thông báo đến nhà quản trị và các file log được lưu vào cơ sở dữ liệu.
a. Lợi thế của NIDS
- Quản lý được một phân đoạn mạng (network segment).
- Trong suốt với người sử dụng và kẻ tấn công.
- Cài đặt và bảo trì đơn giản, không làm ảnh hưởng đến mạng.
- Tránh được việc bị tấn công dịch vụ đến một host cụ thể.
- Có khả năng xác định được lỗi ở tầng network.
- Độc lập với hệ điều hành.
b. Hạn chế của NIDS
- Có thể xảy ra trường hợp báo động giả, tức là không có dấu hiệu bất thường mà IDS vẫn
báo.
- Không thể phân tích được các lưu lượng đã được mã hóa như SSH, IPSec, SSL…
- NIDS đòi hỏi phải luôn được cập nhật các dấu hiệu tấn công mới nhất để thực sự hoạt
động hiệu quả.
- Không thể cho biết việc mạng bị tấn công có thành công hay không, để người quản trị
tiến hành bảo trì hệ thống.
- Một trong những hạn chế là giới hạn băng thông. Những bộ thu thập dữ liệu phải thu thập
tất cả lưu lượng mạng, sắp xếp lại và phân tích chúng. Khi tốc độ mạng tăng lên thì khả
năng của bộ thu thập thông tin cũng vậy. Một giải pháp là phải đảm bảo cho mạng được
thiết kế chính xác.
Một cách mà hacker cố gắng che đậy cho hoạt động của họ khi gặp các hệ thống
IDS là phân mảnh dữ liệu gói tin. Mỗi giao thức có một kích cỡ gói dữ liệu có hạn, nếu dữ
liệu truyền qua mạng truyền qua mạng lớn hơn kích cỡ này thì dữ liệu bị phân mảnh.
Phân mảnh đơn giản là quá trình chia nhỏ dữ liệu. Thứ tự sắp xếp không thành vấn đề



miễn là không bị chồng chéo dữ liệu, bộ cảm biến phải tái hợp lại chúng.
Hacker cố gắng ngăn chặn phát hiện bằng cách gởi nhiều gói dữ liệu phân mảnh
chồng chéo. Một bộ cảm biến không phát hiện được các hoạt động xâm nhập nếu không
sắp xếp gói tin lại một cách chính xác.

4.2

Host-based IDS (HIDS)

HIDS là hệ thống phát hiện xâm nhập được cài đặt trên các máy tính (host).
HIDS cài đặt trên nhiều kiểu máy chủ khác nhau, trên máy trạm làm việc hoặc máy
notebook. HIDS cho phép thực hiện một cách linh hoạt trên các phân đoạn mạng
mà NIDS không thực hiện được. Lưu lượng đã gửi đến host được phân tích và
chuyển qua host nếu chúng không tiềm ẩn các mã nguy hiểm. HIDS cụ thể hơn với
các nền ứng dụng và phục vụ mạnh mẽ cho hệ điều hành. Nhiệm vụ chính của
HIDS là giám sát sự thay đổi trên hệ thống. HIDS bao gồm các thàng phần chính.
-

Các tiến trình

-

Các entry của register

-

Mức độ sử dụng CPU.

-


Kiểm tra tính toàn vẹn và truy cập trên file hệ thống.

-

Một vài thông số khác.


Các thông số này vượt qua một ngưỡng định trước hoặc thay đổi khả nghi trên hệ thống
sẽ gây ra cảnh báo.
a. Ưu điểm của HIDS
- Có khả năng xác định các user trong hệ thống liên quan đến sự kiện.
- HIDS có khả năng phát hiện các cuộc tấn công diễn ra trên một máy, NIDS không

có khả năng này.
Có khả năng phân tích các dữ liệu đã được mã hóa.
Cung cấp các thông tin về host trong lúc cuộc tấn công đang diễn ra trên
host.
b. Hạn chế của HIDS
- Thông tin từ HIDS sẽ không còn đáng tin cậy ngay sau khi cuộc tấn công vào
host này thành công.
- Khi hệ điều hành bị thỏa hiệp tức là HIDS cũng mất tác dụng.
- 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 việc thăm dò mạng (Nmap, Netcat…). ·
HIDS cần tài nguyên trên host để hoạt động.
- HIDS có thể không phát huy được hiệu quả khi bị tấn công từ chối dịch vụ
DoS.
- Đa số được phát triển trên hệ điều hành Window. Tuy nhiên cũng có một số
chạy trên Linux hoặc Unix.
-


Vì HIDS cần được cài đặt trên các máy chủ nên sẽ gây khó khăn cho nhà
quản trị khi phải nâng cấp phiên bản, bảo trì phần mềm và cấu hình. Gây mất nhiều
thời gian và phứt tạp. Thường hệ thống chỉ phân tích được những lưu lượng trên
máy chủ nhận được, còn các lưu lượng chống lại một nhóm máy chủ, hoặc các hành
động thăm dò như quét cổng thì chúng không phát huy được tác dụng. Nếu máy chủ
bị thỏa hiệp hacker có thể tắt được HIDS trên máy đó. Khi đó HIDS sẽ bị vô hiệu
hóa.
Do đó HIDS phải cung cấp đầy đủ khả năng cảnh báo. Trong môi trường hỗn tạp
điều này có thể trở thành vấn đề nếu HIDS phải tương thích với nhiều hệ điều hành. Do
đó, lựa chọn HIDS cũng là vấn đề quan trọng



II.Tổng quan về Snort
1. Giới thiệu về snort
Snort là một NIDS được Martin Roesh phát triển dưới mô hình mã nguồn mở. Tuy
Snort miễn phí nhưng nó lại có rất nhiều tính năng tuyệt vời mà không phải sản phẩm
thương mại nào cũng có thể có được. Với kiến trúc thiết kế theo kiểu module, người dùng
có thể tự tăng cường tính năng cho hệ thống Snort của mình bằng việc cài đặt hay viết
thêm mới các module. Cơ sở dữ liệu luật của Snort đã lên tới 2930 luật và được cập nhật
thường xuyên bởi một cộng đồng người sử dụng. Snort có thể chạy trên nhiều hệ thống
nền như Windows, Linux, OpenBSD, FreeBSD, NetBSD, Solaris, HP-UX, AIX, IRIX,
MacOS.
Bên cạnh việc có thể hoạt động như một ứng dụng thu bắt gói tin thông thường,
Snort còn có thể được cấu hình để chạy như một NIDS. Snort hỗ trợ khả năng hoạt động
trên các giao thức sau: Ethernet, 802.11,Token Ring, FDDI, Cisco HDLC, SLIP, PPP, và
PF của OpenBSD.
2.


-

Kiến trúc của Snort
Snort có 5 thành phần chính như sau:
Bộ giải mã gói tin - Packet Decoder
Các bộ tiền xử lý - PreProcessers
Máy phát hiện - Detection Engine
Hệ thống cảnh báo và ghi dấu - Logging and Alerting System
Môđun xuất - Output Modules
Sơ đồ sau biểu diễn quan hệ giữa các thành phần của Snort. Tại đó các gói dữ liệu

giao tiếp từ mạng Internet vào trong hệ thống được đi qua Packet decoder. Tại mỗi thành
phần các gói tin được xử lý rồi truyền kết quả cho thành phần kế tiếp trong hệ thống.
Output modul sẽ loại bỏ các gói tin, ghi log hay sinh ra cảnh báo.


 Snort có 4 chế độ hoạt động như sau:
- Sniffer mode: ở chế độ này snort sẽ lắng nghe và đọc các gói tin trên mạng sau đó
-

sẽ trình bày kết quả trên giao diện hiển thị.
Packet Logger mode: lưu trữ các gói tin trong các tập tin log.
Network instruction detect system (NIDS) : đây là chế dộ họat động mạnh mẽ và
được áp dụng nhiều nhất, khi họat động ở NIDS mode Snort sẽ phân tích các gói
tin luân chuyển trên mạng và so sánh với các thông tin được định nghĩa của người
dùng để từ đó có những hành động tương ứng như thông báo cho quản trị mạng
khi xảy ra tình huống quét lỗi do các hacker /attacker tiến hành hay cảnh báo

-


virus..
Inline mode: khi triển khai snort trên linux thì chúng ta có thể cấu hình snort để
phân tích các gói tin từ iptables thay vì libpcap do đó iptable có thể drop hoặc pass
các gói tin theo snort rule.


2.1Module giải mã gói tin
Snort chỉ sử dụng thư viện pcap để bắt mọi gói tin trên mạng lưu thông qua hệ thống.

Một gói tin sau khi được giải mã sẽ đưa tiếp vào module tiền xử lý.

2.2 Module tiền xử lý
Module này rất quan trọng đối với bất kỳ hệ thống nào để có thể chuẩn bị gói dữ liệu đưa
vào cho Module phát hiện phân tích. 3 nhiệm vụ chính:


Kết hợp lại các gói tin: Khi một dữ liệu lớn được gửi đi, thông tin sẽ không đóng
gói toàn bộ vào một gói tin mà thực hiện phân mảnh, chia 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 kết nối lại để có


gói tin ban đầu. Module tiền xử lý giúp Snort có thể hiểu được các phiên làm việc
khác nhau.


Giải mã và chuẩn hóa giao thức (decode/normalize): công việc phát hiện xâm
nhập dựa trên dấu hiệu nhận dạng nhiều khi thất bại khi kiểm tra các giao thức có
dữ liệu có thể được biểu diễn dưới nhiều dạng khác nhau. Ví dụ: một Web server
có thể nhận nhiều dạng URL: URL viết dưới dạng hexa/unicode hay URL chấp
nhận dấu / hay . Nếu Snort chỉ thực hiện đơn thuần việc so sánh dữ liệu với dấu

hiệu nhận dạng sẽ xảy ra tình trạng bỏ sót hành vi xâm nhập. Do vậy, 1 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.



Phát hiện các xâm nhập bất thường (nonrule/anormal): các plugin dạng này
thường để xử lý với các xâm nhập không thể hoặc rất khó phát hiện bằng các luật
thông thường. Phiển bản hiện tại của Snort có đi kèm 2 plugin giúp phát hiện xâm
nhập bất thường đó là portscan và bo (backoffice). Portscan dùng để đưa ra cảnh
báo khi kẻ tấn công thực hiện quét cổng để tìm lỗ hổng. Bo dùng để đưa ra cảnh
báo khi hệ thống nhiễm trojan backoffice.

2.3 Module phát hiện
Đây là module quan trọng nhất của Snort. Nó chịu trách nhiệm phát hiện các dấu hiệu
xâm nhập. Module phát hiện sử dụng các luật được định nghĩa trước để so sánh với dữ
liệu thu thập được, từ đó xác định xem có xâm nhập xảy ra hay không.
Một vấn đề quan trọng đối với module phát hiện và vấn đề thời gian xử lý gói tin: một
IDS thường nhận rất nhiều gói tin và bản thân nó cũng có rất nhiều luật xử lý. Khi lưu
lượng mạng quá lớn có thể xảy ra việc bỏ sót hoặc không phản hồi đúng lúc. Khả năng
xử lý của module phát hiện phụ thuộc vào nhiều yếu tố: số lượng các luật, tốc độ hệ
thống, băng thông mạng.Một module phát hiện có khả năng tách các phần của gói tin ra
và áp dụng luật lên từng phần của gói tin:


IP header



Header ở tầng transport: TCP, UDP




Header ở tầng application: DNS, HTTP, FTP …




Phần tải của gói tin

Do các luật trong Snort được đánh số thứ tự ưu tiên nên 1 gói tin khi bị phát hiện bởi
nhiều luật khác nhau, cảnh báo được đưa ra theo luật có mức ưu tiên cao nhất.

2.4 Môđun log và cảnh báo
Tùy thuộc vào việc môđun Phát hiện có nhận dạng đuợc xâm nhập hay không mà gói
tin có thể bị ghi log hoặc đưa ra cảnh báo. Các file log là các file text dữ liệu trong đó có
thể được ghi dưới nhiều định dạng khác nhau chẳng hạn tcpdump.

2.5 Môđun kết xuất thông tin
Môđun này có thể thực hiện các thao tác khác nhau tùy theo việc bạn muốn lưu kết
quả xuất ra như thế nào. Tùy theo việc cấu hình hệ thống mà nó có thể thực hiện các công
việc như là:
• Ghi log file
• Ghi syslog: syslog và một chuẩn lưu trữ các file log được sử dụng rất nhiều trên
các hệ thống Unix, Linux.
• Ghi cảnh báo vào cơ sở dữ liệu.


Tạo file log dạng xml: việc ghi log file dạng xml rất thuận tiện cho việc trao đổi và
chia sẻ dữ liệu.

• Cấu hình lại Router, firewall.
• Gửi các cảnh báo được gói trong gói tin sử dụng giao thức SNMP. Các gói tin
dạng SNMP này sẽ được gửi tới một SNMP server từ đó giúp cho việc quản lý các
cảnh báo và hệ thống IDS một cách tập trung và thuận tiện hơn.
• Gửi các thông điệp SMB (Server Message Block) tới các máy tính Windows.
Nếu không hài lòng với các cách xuất thông tin như trên, ta có thể viết các môđun kết
xuất thông tin riêng tuỳ theo mục đích sử dụng


3.Bộ luật của Snort
3.1 Cấu trúc luật của Snort
Tìm hiểu một ví dụ:
alert tcp 192.168.0.0/22 23 -> any any (content:”confidential”; msg: “Detected
confidential”)
Ta thấy cấu trúc có dạng sau:


Phần Header: chứa thông tin về hành động mà luật đó 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 tiểu chuẩn để áp dụng luật với gói tin đó.
Phần Option: chứa thông điệp 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. Phần Option chứa các tiêu chuẩn phụ thêm để đối sánh với gói tin.

3.2 Cấu trúc của phần Header:



Action: là phần quy định loại hành động nào được thực thi. Thông thường các
hành động rạo ra một cảnh báo hoặc log thông điệp hay kích hoạt một luật khác.




Protocol: giao thức cụ thể



Address: địa chỉ nguồn và địa chỉ đích



Port: xác định các cổng nguồn, cổng đích của một gói tin



Direction: phần này sẽ chỉ ra địa chỉ nguồn và địa chỉ đích

3.2.1 Action
Có 5 luật được định nghĩa:


Pass: cho phép Snort bỏ qua gói tin này



Log: dùng để log gói tin. Có thể log vào file hay vào CSDL



Alert: gửi thông điệp cảnh báo khi dấu hiệu xâm nhập được phát hiện




Activate: tạo ra cảnh báo và kích hoạt thêm các luật khác để kiểm tra thêm điều
kiện của gói tin



Dynamic: đây là luật được gọi bởi các luật khác có hành động là Activate


3.2.2 Protocol
Chỉ ra loại gói tin mà luật được áp dụng:


IP



ICMP



TCP



UDP

Nếu là IP thì Snort sẽ kiểm tra header của lớp liên kết để xác định loại gói tin. Nếu bất kỳ
giao thức nào khác, Snort sẽ sử dụng header IP để xác định loại giao thức


3.2.3 Address
Có 2 phần là địa chỉ đích và địa chỉ nguồn. Nó có thể là 1 IP đơn hoặc 1 dải mạng. Nếu là
“any” thì áp dụng cho tất cả địa chỉ trong mạng. Chú ý: nếu là một host thì có dạng: IPaddress/32. VD: 192.168.0.1/32
Snort cung cấp phương pháp để loại trừ địa chỉ IP bằng cách sử dụng dấu “!”. VD: alert
icmp ![192.168.0.0/22] any -> any any (msg: “Ping with TTL=100”; ttl: 100;)
Lưu ý: dấu “[]” chỉ cần dùng khi đằng trước có “!”

3.2.4 Port
Số port để áp dụng cho các luật. VD: telnet là 23, DNS là 53 … Port chỉ áp dụng cho 2
giao thức là TCP và UDP


Để sử dụng 1 dãy các port thì ta phân biệt bởi dấu “:”. VD: alert udp any 1024:8080 ->
any any (msg: “UDP port”;)

3.2.5 Direction
Chỉ ra đâu là nguồn, đâu là đích. Có thể là -> hay <- hoặc <>. Trường hợp <> là khi ta
muốn kiểm tra Client và Server.

3.3 Phần Option
Phần Option nằm ngay sau phần Header và được bao bọc trong dấu ngoặc đơn. Nếu có
nhiều option thì sẽ phân biệt nhau bởi dấu “;”. Một option gồm 2 phần: một từ khóa và
một tham số, 2 phần này sẽ phân cách nhau bằng dấu hai chấm.

3.3.1 Từ khóa ack:
Trong header TCP có chứa trường Acknowledgement Number với độ dài 32 bit. Trường
này chỉ ra số thứ tự tiếp theo gói tin TCP của bên gửi đang được chờ để nhận. Trường này
chỉ có ý nghĩa khi mà cờ ACK được thiết lập. Các công cụ như Nmap sử dụng đặc điểm
này để ping một máy. Ví dụ nó có thể gửi gói tin TCP tới cổng 80 với cờ ACK được bật
và số thứ tự là 0. Bởi vậy bên nhận thấy gói tin không hợp lệ sẽ gửi lại gói tin RST. Và

khi nhận được gói RST này, Nmap sẽ biết được IP này đang tồn tại hay không.
Để kiểm tra loại ping TCP này thì ta có thể dùng luật sau:
Alert tcp any any -> 192.168.0.0/22 any (flags: A; ack: 0; msg: “TCP ping detected”)

3.3.2 Từ khóa classtype
Các luật có thể được phân loại và gán cho 1 số chỉ độ ưu tiên nào đó để nhóm và phân
biệt chúng với nhau. Để hiểu rõ hơn về classtype thì ta cần hiểu được file
classification.config. Mỗi dòng trong file này đều có cấu trúc như sau:


Config classification: name, description, priority
Trong đó:


Name: tên dùng để phân loại, tên này sẽ được dùng với từ khóa classtype trong
các luật Snort



Description: mô tả



Priority: là 1 số chỉ độ ưu tiên mặc định của lớp này. Độ ưu tiên này có thể được
điều chỉnh trong từ khóa priority của phần Option trong Snort

VD:
Config classification: DoS, Denied of Service Attack, 2
Và luật
Alert udp any any -> 192.168.0.0/22 6838 (msg:”DoS”; content: “server”; classtype:

DoS; priority: 1;)
đã ghi đè lên giá trị priority mặc định của lớp đã định nghĩa

3.3.3 Từ khóa content
Một đặc tính quan trọng của Snort là có khả năng tìm 1 mẫu dữ liệu bên trong một gói
tin.
VD: alert tcp 192.168.0.0/22 any -> ![192.168.0.0/22] any (content: “GET”;
msg :”GET match”;)
Luật trên tìm mãu “GET” trong phần dữ liệu của tất cả gói tin TCP có nguồn mạng là
192.168.0.0/22 đi đến các địa chỉ đích không nằm trong dải mạng đó.


Tuy nhiên khi sử dụng từ khóa content cần nhớ rằng:
Đối chiếu nội dung cần phải xử lý rất lớn nên ta phải cân nhắc kỹ khi sử dụng nhiều luật
đối chiếu nội dung.
Các từ khóa được sử dụng cùng với content để bổ sung thêm các điều kiện là:


Offset: dùng để xác định vị trí bắt đầu tìm kiếm là offset tính từ đầu phần dữ liệu
của gói tin. VD: alert tcp 192.168.0.0/22 any -> any any (content: “HTTP”; offset:
4; msg: “HTTP matched”;)



Dept: dùng để xác định vị trí mà từ đó Snort sẽ dừng việc tìm kiếm. VD: alert tcp
192.168.0.0/22 any -> any any (content: “HTTP”; dept: 10; msg: “HTTP
matched”;)

3.3.4 Từ khóa dsize
Dùng để đối sánh theo chiều dài của phần dữ liệu. Rất nhiều cuộc tấn công sử dụng lỗi

tràn bộ đệm bằng cách gửi các gói tin có kích thước rất lớn.
VD: alert ip any any -> 192.168.0.0/22 any (dsize > 5000; msg: “Goi tin co kich thuoc
lon”;)

3.3.5 Từ khóa Flags
Từ khóa này dùng để phát hiện xem những bit cờ flag nào được bật trong phần TCP
header của gói tin. Mỗi cờ có thể được sử dụng như 1 tham số trong từ khóa flags.
Flag

Kí hiệu tham số dùng trong luật của Snort

FIN – Finish Flag

F

SYN – Sync Flag

S

RST – Reset Flag

R


Flag

Kí hiệu tham số dùng trong luật của Snort

PSH – Push Flag


P

ACK – Acknowledge Flag

A

URG – Urgent Flag

U

Reversed Bit 1

1

Reversed Bit 2

2

No Flag set

0

VD: luật sau đây sẽ phát hiện một hành động quét dùng gói tin SYN-FIN:
Alert tcp any any -> 192.168.0.0/22 any (flags: SF; msg: “SYNC-FIN flag detected”;)

3.3.6 Từ khóa fragbits
Phần IP header của gói tin chứa 3 bit dùng để chống phân mảnh và tổng hợp các gói tin
IP. Các bit đó là:



Reversed bit (RB) dùng để dành cho tương lai



Don’t Fragment Bit (DF): nếu bit này được thiết lập tức là gói tin không bị phân
mảnh



More Fragments Bit (MF): nếu được thiết lập thì các phần khác của gói tin vẫn
đang trên đường đi mà chưa tới đích. Nếu bit này không được thiết lập thì đây là
phần cuối cùng của gói tin.

VD: luật sau sẽ phát hiện xem bit DF trong gói tin ICMP có được bật hay không: alert
icmp any any -> 192.168.0.0/22 any (fragbits: D; msg: “Don’t Fragment bit set”;)




×