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

Xây dựng hệ thống phát hiện và chống xâm nhập trái phép cho mạng cơ sở 1, dựa trên Suricata

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 (1.42 MB, 38 trang )

z

HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN
----------

BÀI TẬP LỚN

Đề tài: Xây dựng hệ thống phát hiện và chống
xâm nhập trái phép cho mạng cơ sở 1, dựa trên
Suricata
Lớp: L01
Sinh viên thực hiện:
Nguyễn Thị Nga
Phạm Thị Quỳnh
Phạm Bảo Yến
Giảng viên: Vũ Thị Vân

Hà Nội,5/201


NHẬN XÉT CỦA GIẢNG VIÊN

………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………


………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………

………………………………………………………………………………………………
………………………………………………………………………………………………

Page 2


LỜI MỞ ĐẦU
Hiện nay, mạng Internet đã và đang trở nên phổ biến hơn trên toàn thế
giới. Nó đem lại cho con người một cách tiếp cận thông tin hoàn toàn mới.
Đồng thời, ngoài những lợi ích to lớn của mình, mạng internet cũng ẩn chứa
nhiều mối nguy hiểm tiềm tàng như: Lây nhiễm virus, sâu mạng, trojan,
sniffer,….. . Với một hệ thống mạng máy tính, việc đảm bảo an toàn cho hệ
thống tránh khỏi các nguy cơ, hiểm họa đe dọa rất được chú trọng và đề cao.
Với một mô hình như mạng của Học Viện, việc đảm bảo đó cần áp dụng, kết
hợp nhiều biện pháp khác nhau. Trong bản báo các này, chúng em xin trình
bày về đề tài: “Xây dựng hệ thống phát hiện và chống xâm nhập trái phép
cho mạng cơ sở 1, dựa trên Suricata”.
Bản báo cáo có 3 phần:
Chương I. Hệ thống phát hiện và ngăn chặn xâm nhập: Chương này
giới thiệu một cách tổng quan về các khái niệm, chức năng, phân loại,… liên
quan đến hệ thống phát hiện và ngăn chặn xâm nhập.
Chương II. Tổng quan về Suricata: Chương này giới thiệu một cách
tổng quan về các khái niệm, chức năng, phân loại,… liên quan đến Suricata
Chương III. Xây dựng hệ thống phát hiện và chống xâm nhập trái
phép. Chương này triển khai xây dựng hệ thống phát hiện và chống xâm nhập
trái phép cho mạng cơ sở 1 dựa trên Suricata.
Mặc dù đã cố gắng nhưng do kiến thức và thời gian còn nhiều hạn chế
nên chắc chắn bản báo cáo còn nhiều thiếu sót, chúng em rất mong nhận được
những ý kiến đóng góp của thầy cô và các bạn sinh viên để chúng em có thể
tìm hiểu sâu hơn về vấn đề này.

Chúng em xin chân thành cảm ơn!

Page 3


MỤC LỤC

Page 4


DANH MỤC HÌNH ẢNH

Page 5


CHƯƠNG 1: HỆ THỐNG PHÁT HIỆN VÀ NGĂN CHẶN XÂM NHẬP
1.1.
Các khái niệm về hệ thống phát hiện và ngăn chặn xâm nhập
Phát hiện xâm nhập là tiến trình theo dõi các sự kiện xảy ra trên một hệ
thống máy tính hay hệ thống mạng, phân tích chúng để tìm ra các dấu hiệu
“xâm nhập trái phép”. Xâm nhập trái phép được định nghĩa là sự cố gắng tìm
mọi cách để xâm hại đến tính toàn vẹn, tính sẵn sàng, tính có thể tin cậy của
hệ thống, hay là sự cố gắng vượt qua các cơ chế an toàn của hệ thống máy
tính hay mạng đó. Việc xâm nhập có thể là xuất phát từ một kẻ tấn công nào
đó trên mạng Internet nhằm giành quyền truy cập hệ thống, hay cũng có thể là
một người dùng được phép trong hệ thống đó muốn chiếm đoạt các quyền
khác mà họ chưa được cấp phát. Như đã đề cập ở trên, hệ thống phát hiện
xâm nhập là hệ thống phần mềm hoặc phần cứng có khả năng tự động theo
dõi và phân tích để phát hiện ra các dấu hiệu xâm nhập.
Ngăn chặn xâm nhập là quá trình thực hiện phát hiện xâm nhập và cố

gắng để ngăn chặn các sự cố được phát hiện ra. Hệ thống phát hiện và ngăn
chặn xâm nhập IDPS chủ yếu tập trung vào việc phát hiện sự cố đã và đang
xảy ra, ghi lại thông tin về sự cố đó, cố gắng để ngăn chặn chúng, và lập báo
cáo với quản trị hệ thống mạng. Ngoài ra, các tổ chức sử dụng IDPS cho các
mục đích khác, chẳng hạn như xác định các vấn đề với chính sách an ninh,
ghi lại các mối đe dọa hiện tại và ngăn chặn các hành vi vi phạm chính sách
an ninh mạng. IDPS là thành phần bổ sung cần thiết cho hạn tầng an ninh
mạng của các tổ chức, công ty.
1.1.1. Chức năng của hệ thống phát hiện và ngăn chặn xâm nhập
Có nhiều loại công nghệ IDPS, sự khác biệt chủ yếu là do các loại sự
kiện mà chúng có thể phát hiện và các phương pháp mà chúng sử dụng để xác
định sự cố. Ngoài việc giám sát và phân tích các sự kiện để xác định hoạt
động không mong muốn, tất cả các loại công nghệ IDPS thường thực hiện các
chức năng sau:
- Ghi lại thông tin liên quan đến các sự kiện giám sát: Thông tin
thường được ghi lại và lưu ngay trên thiết bị và cũng có thể được
gửi đến hệ thống máy chủ giám sát an ninh tập trung (SIEM).

Page 6


Thông báo cho nhân viên quản trị các sự kiện an ninh quan
trọng: Các thông báo này được biết đến như một cảnh báo, thực
hiện thông qua một số phương pháp như: e-mail, trang web, tin
nhắn trên giao diện quản trị IDPS.
1.1.2. Các phương pháp phát hiện chung của IDPS
IDPS sử dụng nhiều phương pháp khác nhau để phát hiện các hành
động xâm nhập hệ thống trái phép. Những phương pháp cơ bản như: Phát
hiện dựa trên dấu hiệu, phát hiện dựa trên sự kiện bất thường. Thông thường
IDS sử dụng nhiều phương pháp phát hiện xâm nhập và đôi khi cũng sử dụng

phương pháp riêng lẻ hay kết hợp nhằm phát hiện chính xác các hành động
xâm nhập.
1.1.2.1.
Phương pháp phát hiện dựa trên dấu hiệu
Dấu hiệu là tập mẫu tương ứng với các đe dọa đã biết được thống kê
các đặc trưng và lưu lại trong cơ sở dữ liệu của hệ thống. Hệ thống sẽ thu thập
các thông tin liên quan và so sánh với các dấu hiệu tấn công được lưu trữ
trong cơ sở dữ liệu để xác định xem hành động đó có nguy hiểm hay không.
Ví dụ sau đây mô tả cách IDS phát hiện xâm nhập dựa vào dấu hiệu.
- Người dùng nào đó đang cố gắng truy cập vào máy chủ thông
qua tài khoản Administrator từ dịch vụ truy cập từ xa (Remote
Desktop) của Windows. Điều này vi phạm chính sách an toàn
của hệ thống.
- Một bức thư điện tử có chủ đề là “bảng lương” với tệp tin đính
kèm là bangluong.exe. Đây là một dấu hiệu của tệp mã độc.
- Luồng dữ liệu mạng có rất nhiều gói tin ICMP với kích thước
lớn.
-

Page 7


Hình 1.1: Mô tả phát hiện xâm nhập dựa trên dấu hiệu
Phát hiện dựa vào dấu hiệu là một kỹ thuật đơn giản vì nó chỉ so sánh
hành động hiện tại với danh sách dấu hiệu đã biết bằng cách so sánh các toán
tử. Kỹ thuật này ít được dùng trong mô hình mạng lớn hay các giao thức ứng
dụng bởi vì nó không thể theo dõi và hiểu được trạng thái của tất cả các thành
phần phức tạp trong hệ thống.
1.1.2.2.
Phương pháp phát hiện dựa trên sự bất thường của mạng

Phát hiện dựa vào sự bất thường là tiến trình so sánh các hành động
được xem là bình thường với các sự kiện quan sát được để xác định độ chênh
lệch dẫn tới sự bất thường. IDPS sử dụng phương pháp phát hiện dựa vào sự
bất thường có sẵn tập mẫu đã được trình bày các hành vi bình thường của các
đối tượng người dùng, máy tính, kết nối mạng hoặc ứng dụng. Tập mẫu này
được xây dựng bằng cách giám sát và thu về các đặc trưng các hành động cụ
thể trong khoảng thời gian trước đó. Hệ thống IDPS sau đó sử dụng phương
pháp thống kê để so sánh các đặc trưng của hành động hiện thời với các
ngưỡng liên quan trong tập mẫu đã được xây dựng. Tập mẫu này có thể xây
dựng cho nhiều thuộc tính của các hành vi khác nhau, ví dụ như số lượng thư
điện tử được gửi bởi người dùng, số lần đăng nhập thất bại vào máy tính trong

Page 8


khoảng thời gian nhất định, mức độ sử dụng của vi xử lý thông thường được
thống kê trong khoảng thời gian trước đó.
Thuận lợi chính của phương pháp phát hiện dựa vào sự bất thường là
chúng rất hiệu quả trong việc phát hiện các hiểm họa chưa biết trước đó. Ví
dụ như máy tính bị nhiễm loại mã độc mới và loại mã độc này tiêu thụ rất
nhiều tài nguyên của máy tính, gửi số lượng lớn thư điện tử, khởi tạo số lượng
lớn các kết nối mạng ra bên ngoài và thực hiện các hành vi khác, những hành
vi này có sự khác biệt rất nhiều so với các hành vi đã được định nghĩa trong
tập mẫu.
Tập mẫu vềngưỡng được tạo ra trong khoảng thời gian trước đó,
khoảng thời gian này cũng được gọi là thời gian huấn luyện. Tập mẫu cho
phát hiện sự bất thường có thể ở dạng tĩnh hoặc động. Khi đã được tạo ra, tập
mẫu tĩnh không thay đổi trong suốt quá trình hoạt động trừ trường hợp đặc
biệt IDPS trực tiếp tạo ra mẫu mới. Mẫu hoạt động được điều chỉnh liên tục
trong quá trình quan sát sự kiện. Bởi vì mạng và hệ thống thay đổi theo thời

gian nên việc đo lường các giá trị ngưỡng tương ứng của các hành vi bình
thường cũng thay đổi theo.
1.1.2.3.
Phương pháp phát hiện dựa trên phân tích trạng thái giao thức
Phân tích trạng thái giao thức là quá trình so sánh mẫu được xác định
trước về định nghĩa đã được chấp nhận chung của các giao thức hoạt động
thông thường với các sự kiện quan sát về trạng thái mỗi giao thức để xác định
độ lệch. Với phương pháp phát hiện dựa vào sự bất thường thì dựa vào máy
trạm hoặc hồ sơ cụ thể về mạng, đối với phân tích trạng thái giao thức dựa
vào hồ sơ phát triển của nhà cung cấp chỉ rõ giao thức cụ thể nên hoặc không
nên sử dụng. Từ “trạng thái” trong phân tích trạng thái nghĩa là IDPS có khả
năng hiểu và theo dõi trạng thái của các giao thức tầng mạng, vận chuyển,
ứng dụng đã có khái niệm về trạng thái.
Ví dụ, khi người dùng bắt đầu một phiên FTP, phiên này được khởi tạo
trong trạng thái không xác thực. Đối với người dùng không xác thực chỉ được
thực hiện một số lệch trong trạng thái này như là chỉ được quyền xem, cung
cấp tên đăng nhập và mật khẩu. Một phần quan trọng trong khả năng hiểu
trạng thái là ghép cặp giữa các yêu cầu và đáp ứng, vì thế khi mọi nỗ lực xác
thực FTP xuất hiện, IDPS có thể xác định nếu xác thực thành công thông qua
Page 9


mã trạng thái thì người dùng đó được phép thực hiện mọi dòng lệch thông qua
giao thức.
1.1.3. Phân loại công nghệ IDPS
1.1.3.1.
Hệ thống IDPS hoạt động dựa trên mạng (Network-based IDPS)
Phần lớn các IDPS thương mại là ở dạng Network-based. N-IDPS
thường bao gồm một tập hợp các cảm biến được đặt tại các điểm khác nhau
trong mạng.

Hệ thống NIDPS dựa trên mạng sử dụng bộ dò và bộ cảm biến cài đặt
trên toàn mạng. Những bộ dò này theo dõi trên mạng nhằm tìm kiếm những
lưu lượng trùng với những mô tả sơ lược được định nghĩa hay là những dấu
hiệu. Những bộ cảm biến thu nhận và phân tích lưu lượng trong thời gian
thực. Khi ghi nhận được một mẫu lưu lượng hay dấu hiệu, bộ cảm biến gửi tín
hiệu cảnh báo đến trạm quản trị và có thể được cấu hình nhằm tìm ra biện
pháp ngăn chặn những xâm nhập sâu hơn. N-IDPS là tập nhiều bộ cảm biến
được đặt ở toàn mạng để theo dõi những gói tin trong mạng so sánh với mẫu
đã được định nghĩa để phát hiện đó là tấn công hay không.

Hình 1.2: Mô hình Network IDPS
N-IDPS được đặt giữa kết nối hệ thống mạng bên trong và mạng bên
ngoài để giám sát toàn bộ lưu lượng vào ra. Có thể là một thiết bị phần cứng
riêng biệt được thiết lập sẵn hay phần mềm cài đặt trên máy tính. Chủ yếu
dùng để đo lưu lượng mạng được sử dụng. Tuy nhiên có thể xảy ra hiện tượng
nghẽn cổ chai khi lưu lượng mạng hoạt động ở mức cao.
Page 10


Hệ thống IDPS hoạt động dựa trên máy chủ (Host-IDPS)
H-IDPS sử dụng các chương trình phần mềm cài đặt trên một máy tính.
H-IDPS hoạt động thu thập thông tin từ bên trong một hệ thống máy tính cá
nhân như quan sát tất cả các hoạt động của hệ thống, các tập tin nhật ký và
những lưu lượng mạng thu thập được.
Bằng cách cài đặt một phần mềm trên tất cả các máy tính, IDPS dựa
trên máy chủ quan sát tất cả những hoạt động hệ thống, các tập tin log và
những lưu lượng mạng thu thập được. Hệ thống dựa trên máy chủ cũng theo
dõi hệ điều hành, những cuộc gọi hệ thống, thông tin nhật ký (audit log) và
những thông điệp báo lỗi trên hệ thống máy chủ. Trong khi những đầu dò của
mạng có thể phát hiện một cuộc tấn công, thì chỉ có hệ thống dựa trên máy

chủ mới có thể xác định xem cuộc tấn công có thành công hay không. Thêm
nữa là, hệ thống dựa trên máy chủ có thể ghi nhận những việc mà kẻ tấn công
đã làm trên máy chủ bị tấn công.
1.1.3.2.

Hình 1.3: Host-based IDS
Không phải tất cả các tấn công được thực hiện qua mạng. Bằng cách
giành quyền truy cập ở mức vật lý (physical access) vào một hệ thống máy
tính, kẻ xâm nhập có thể tấn công một hệ thống hay dữ liệu mà không cần
phải tạo bất cứ lưu lượng mạng (network traffic) nào cả. Hệ thống dựa trên
máy chủ có thể phát hiện các cuộc tấn công mà không đi qua đường công
Page 11


cộng hay mạng được theo dõi, hay thực hiện từ cổng điều khiển (console),
nhưng với một kẻ xâm nhập có hiểu biết, có kiến thức về hệIDPS thì hắn có
thể nhanh chóng tắt tất cả các phần mềm phát hiện khi đã có quyền truy cập
vật lý. Một ưu điểm khác của IDPS dựa trên máy chủ là nó có thể ngăn chặn
các kiểu tấn công dùng sự phân mảnh hoặc TTL. Vì một máy tính phải nhận
và tái hợp các phân mảnh khi xử lí lưu lượng trên IDS dựa trên host có thể
giám sát chuyện này.
HIDPS thường được cài đặt trên một máy tính nhất định. Thay vì giám
sát hoạt động của một phân vùng mạng. HIDPS chỉ giám sát các hoạt động
trên một máy tính. HIDPS thường được đặt trên các máy tính xung yếu của tổ
chức, và các máy chủ trong vùng DMZ – thường là mục tiêu bị tấn công đầu
tiên. Nhiệm vụ chính của HIDPS là giám sát các thay đổi trên hệ thống, bao
gồm:
- Các tiến trình
- Các entry của Registry
- Mức độ sử dụng CPU

- Kiểm tra tính toàn vẹn và truy cập trên hệ thống tệp tin
- Một vài thông số khác
Các thông số này khi vượt qua một ngưỡng định trước hoặc những thay
đổi khả nghi trên hệ thống tệp tin sẽ gây ra báo động.
1.1.3.3.
Hệ thống IDPS hoạt động trên mạng không dây (Wireless-IDPS)
Hệ thống này sẽ thực hiện giám sát và phân tích lưu lượng mạng không
dây bao gồm cả giao thức mạng để xác định các hành động nghi ngờ. Hệ
thống này không thể xác định các hành vi nghi ngờ trong ứng dụng hoặc giao
thức mạng lớp cao hơn (TCP, UDP) khi lưu lượng mạng truyền. Hệ thống này
được triển khai chung trong phạm vi không dây của tổ chức để giám sát
mạng, và cũng có thể được triển khai tại vị trí không xác thực mạng không
dây.
1.1.3.4.
Hệ thống phân tích hành vi mạng (NBA)
NBA kiểm tra lưu lượng mạng để xác định các mối đe dọa tạo ra các
luồng lưu lượng bất thường, chẳng hạn như tấn công từ chối dịch vụ (DDoS),
một số hình thức của phần mềm độc hại (sâu, backdoor), và vi phạm chính
sách (một hệ thống máy chủ cung cấp dịch vụ mạng tới hệ thống khác). Hệ
thống NBA thường được triển khai để giám sát các luồng lưu lượng mạng cục
Page 12


bộ của một tổ chức, và cũng được triển khai theo dõi luồng lưu lượng giữa
các mạng của tổ chức với mạng bên ngoài (ví dụ như Internet, mạng lưới các
đối tác kinh doanh).
1.1.4. Kiến trúc của hệ thống IDPS
Kiến trúc của hệ thống phát hiện và ngăn chặn xâm nhập được trình
bày như hình dưới:


Hình 1.4: Kiến trúc hệ thống IDPS
Kiến trúc của hệ thống IDPS bao gồm các thành phần chính: Thành
phần thu thập gói tin (information collection), thành phần phân tích gói tin
(dectection), thành phần phản ứng (respontion) nếu gói tin đó được phát hiện
là một tấn công của tin tặc. Trong ba thành phần này thì thành phần phân tích
gói tin là quan trọng nhất và ở thành phần này bộ cảm biến đóng vai trò quyết
định nên chúng ta sẽ đi vào phân tích bộ cảm biến để hiểu rõ hơn về kiến trúc
của hệ thống phát hiện xâm nhập là như thế nào.
Bộ phận phát hiện gói tin: Trong bộ phận phát hiện gói tin có một phần
quan trọng đó là bộ cảm biến.
Bộ cảm biến được tích hợp với thành phần sưu tập dữ liệu – một 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. Trong trường hợp nào đó, ví dụ khi luồng dữ liệu sự kiện được truyền
Page 13


tải trực tiếp đến bộ phân tích mà không có sự lưu dữ liệu nào được thực hiện.
Điều này cũng liên quan một chút nào đó đến các gói mạng.

Hình 1.5: Vai trò của bộ cảm biến
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 trong mục này. Ngoài ra còn có các thành
phần: dấu hiệu tấn công, hồ sơ 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ữa các tham số cấu hình, gồm

có các chế độ truyền thông với mô-đun đá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ư 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 đều 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 mô-đun nhỏ được tổ chức trên
một máy tính trong mạng được bảo vệ.
Vai trò của tác nhân là để kiểm tra và lọc tất cả các hành động bên trong
vùng được bảo vệ và phụ thuộc vào phương pháp được đưa ra – tạo phân tích
bước đầu và thậm trí đảm bảo cả hành động đáp trả. Mạng các bộ cảm biến
kết nối báo cáo đến máy chủ phân tích trung tâm là một trong những thành
phần quan trọng của IDS. HIDS có thể sử dụng nhiều công cụ phân tích tinh
vi hơn, đặc biệt được trang bị sự phát hiện các tấn công phân tán. Các vai trò
Page 14


khác của cảm biến liên quan đến khả năng lưu động và tính roaming của nó
trong các vị trí vật lý. Thêm vào đó, các cảm biến có thể đặc biệt dành cho
việc phát hiện dấu hiệu tấn công đã biết nào đó. Đây là một thành phần quyết
định khi nói đến trách nhiệm bảo vệ an toàn thông tin liên quan đến các kiểu
tấn công mới.
1.1.5. Một số IDPS trên thị trường
Các sản phẩm phát hiện và ngăn chặn xâm nhập hoặc chỉ phát hiện xâm
nhập trên thị trường hiện nay có cả sản phẩm miễn phí và sản phẩm thương
mại.
Với sản phẩm IDPS thương mại có nhiều tính năng được tích hợp có
khả năng phân tích sâu hơn các gói tin, luồng thông tin, hành vi xâm nhập.
Điển hình gồm có: CISCO PS 4240, NGIPS CISO, McAfee Network Threat
Behavior Analysis, IBM Proventia Network…

Với sản phẩm miễn phí có nhiều hạn chế về tính năng và được công bố
dưới dạng sản phẩm phần mềm. Sản phẩm nổi tiếng nhất được sử dụng rộng
rãi trong học tập cũng như thực tế là Snort. Được phát triển từ năm 1998 đến
nay Snort có bề dày lịch sử 18 năm. Snort là sản phẩm mã nguồn mở, với kiến
trúc thiết kế theo kiểu mô-đun người dùng có thể tự tăng cường tính năng cho
hệ thống Snort bằng việc cài đặt hay viết thêm mới các mô-đun.
Bản thân Snort chỉ là hệ thống phát hiện xâm nhập, để triển khai được
công nghệ ngăn chặn xâm nhập thì phải kết hợp cả tường lửa để ngăn chặn.
Ngoài sản phẩm Snort, những năm gần đây một sản phẩm phát hiện và
ngăn chặn xâm nhập với tính năng nổi trội hơn Snort là Suricata. Với Host
IDS miễn phí trên thị trường hiện tại còn có thêm OSSEC.

Page 15


CHƯƠNG II: TỔNG QUAN VỀ SURICATA
2.1.
Giới thiệu Suricata
Suricata là một hệ thống phát hiện và ngăn chặn xâm nhập dựa trên mã
nguồn mở. Nó được phát triển bởi Open Information Security Foundation
(OISF). Một phiên bản thử nghiệm được phát hành vào tháng 12 năm 2009,
bản chuẩn đầu tiên được phát hành tiếp theo vào tháng 7 năm 2010. Sản phẩm
này được phát triển không nhằm cạnh tranh hay thay thế các công cụ hiện có,
nhưng nó sẽ mang lại những ý tưởng và công nghệ mới trong lĩnh vực này.
Phiên bản mới nhất hiện nay là 4.0.4 được phát hành vào ngày 14/2/2018.
Suricata là một công cụ đa luồng, cung cấp tăng tốc độ và hiệu quả
trong việc phân tích lưu lượng mạng. Ngoài việc tăng hiệu quả phần cứng
(với phần cứng và giao diện mạng giới hạn), sản phẩm này được xây dựng để
tận dụng khả năng xử lý cao được cung cấp bởi chip CPU đa lõi mới nhất.
2.2.

Các tính năng nổi bật
Theo thông tin công bố trên website chính thức của Suricata thì hệ
thống phát hiện và ngăn chặn xâm nhập này có một số các tính năng nổi bật,
đó là: khả năng xử lý đa luồng; khả năng định danh giao thức; và định danh
tập tính bằng MD5 và trích xuất tập tin.
2.2.1. Đa luồng
Khả năng xử lý đa luồng (Multi threading) là một tính năng mới đối với
IDS, một hoặc nhiều luồng gói tin cùng được xử lý. Luồng sử dụng một hoặc
nhiều mô-đun thread để xử lý các công việc trên. Luồng có hàng đợi xử lý
đầu vào và hàng đợi xử lý đầu ra. Chúng được sử dụng để lấy gói tin từ luồng
khác hoặc từ một bộ nhớ chung. Một luồng có thể được đặt ở trong một nhân
của CPU. Mô-đun thread được lưu trữ trong kiến trúc Threadvars.

Page 16


Hình 2.1: Xử lý đa luồng trong Suricata
Suricata khi chạy trên thiết bị có thành phần phần cứng được thiết lập
sẵn nó sẽ cân bằng luồng lưu lượng tới các bộ vi xử lý để xử lý luồng dữ liệu.
Tính năng này cho phép tối ưu hóa phần cứng để đạt được tốc độc 10Gbps
thời gian thực mà không cần phải tác động vào tập luật.
Thể hiện trong tệp tin cấu hình của Suricata như sau:

Page 17


Đoạn mã trên là thông tin cấu hìnhvề sự phân công công việc xử lý dữ
liệu trên các CPU. Với ví dụ trên thì CPU thứ nhất (đánh số 0) thực hiện công
việc nhận, công việc giải mã gói tin thực hiện bởi CPU thứ nhất và thứ hai ở
chế độ cân bằng tải giữa hai CPU, công việc phân luồng gói tin cũng được

thực hiện bởi CPU thứ nhất và thứ hai. Công việc phát hiện tấn công được
thực hiện trên tất cả các CPU.
2.2.2. Định danh giao thức
Suricata có khả năng tự động nhận dạng các đặc trưng của các giao
thức phổ biến, từ đó giúp người viết luật phát hiện linh động hơn khi tạo ra
luật dựa trên lưu lượng của mạng hơn là đặc tính cổng của giao thức. Điều
này làm giảm sự phức tạp của các luật trong quá trình viết và gia tăng sự phát
hiện các dấu hiệu của mã độc và điều khiển lưu lượng dễ dàng hơn.
2.2.3. Định danh tệp tin, giá trị kiểm tra MD5, trích xuất tệp tin
Suricata có thể định danh hàng nghìn loại tệp tin trong quá trình truyền
qua mạng mà nó giám sát. Nếu muốn tìm hiểu sâu hơn một tệp tin nào
đóngười quản trị có thể đánh dấu nó để trích xuất xuống máy tính dưới dạng
siêu dữ liệu được miêu tả trong hoàn cảnh chặn bắt. Ngoài ra Suricata còn có
khả năng tính toán giá trị kiểm tra MD5 của tệp tin trong quá trình nó gián sát.
Tính năng này giúp hệ thống có thể kiểm tra tính toàn vẹn của tệp tin nào đó
bằng cách so sánh giá trị băm với danh sách bản băm MD5 cung cấp trước.
Page 18


Kiến trúc của Suricata
Mặc dù toàn bộ mã nguồn của Suricata được phát triển từ đầu, nhưng
những nhà phát triển Suricata đã không che giấu việc họ vay mượn kiến trúc
của Snort. Kiến trúc của nó gồm nhiều thành phần, mỗi thành phần có một
chức năng riêng.
Các thành phần chính là:
- Mô-đun giải mã gói tin
- Mô-đun tiền xử lý
- Mô-đun phát hiện
- Mô-đun phản ứng
2.3.


Hình 2.2: Kiến trúc Suricata
Khi Suricata hoạt động nó sẽ thực hiện lắng nghe và thu bắt tất cả các
gói tin vào di chuyển qua nó. Các gói tin sau khi bắt được đưa vào mô-đun
giải mã gói tin. Tiếp theo gói tin sẽ được đưa vào mô-đun tiền xử lý, rồi đưa
vào mô-đun phát hiện. Tại đây, tùy theo việc có phát hiện được xâm nhập hay
không mà gói tin có thể được lưu thông tiếp hay được đưa vào mô-đun bản
ghi và cảnh báo để xử lý. Khi các cảnh báo được xác định mô-đun kết xuất
thông tin sẽ thực hiện việc đưa cảnh báo theo đúng định dạng mong muốn.
Chi tiết về các mô-đun như sau:
2.3.1. Mô-đun giải mã gói tin(Packet Decoder)
Suricata sử dụng thư viện Pcap để bắt các gói tin lưu thông qua hệ
thống. Mỗi gói tin sau khi được giải mã sẽ được đưa tiếp vào mô-đun tiền xử
lý.
2.3.2. Mô-đun tiền xử lý (Preprocessors)
Page 19


Mô-đun tiền xử lý là một mô-đun rất quan trọng đối với bất kỳ một hệ
thống IDS/IPS nào để có thể chuẩn bị gói dữ liệu đưa vào cho mô-đun phát
hiện phân tích.
Ba nhiệm vụ chính của các mô-đun loại này là:
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, thông
tin 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 Suricata
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, từ đó mới thực hiện các công việc xử lý tiếp. Khi
một phiên làm việc của hệ thống diễn ra, sẽ có rất nhiều gói tin được trao đổi
trong phiên đó. Một gói tin riêng lẻ sẽ không có trạng thái và nếu công việc
phát hiện xâm nhập chỉ dựa hoàn toàn vào gói tin đó sẽ không đem lại hiệu

quả cao.
Mô-đun tiền xử lý theo luồng giúp Suricata có thể hiểu được các phiên
làm việc khác nhau (nói cách khác đem lại tính có trạng thái cho các gói tin)
từ đó giúp đạt được hiệu quả cao hơn trong việc phát hiện xâm nhập.
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 bị thất bại khi kiểm tra
các giao thức có dữ liệu có thể được thể hiện dưới nhiều dạng khác nhau. Ví
dụ: một máy chủ web có thể chấp nhận nhiều dạng URL như URL được viết
dưới dạng mã hexa/Unicode, URL chấp nhận cả dấu “ \ ” hay “ / ” hoặc nhiều
ký tự này liên tiếp cùng lúc.
Hoặc thực hiện việc mã hóa các chuỗi này dưới dạng khác. Nếu
Suricata 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ỏ xót các hành vi xâm nhập. Do vậy. mỗi mô-đun tiền xử
lý của Suricata 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 này để thông tin khi đưa đến mô-đun phát hiện có thể phát hiện
được mà không bỏ sót.
Phát hiện các xâm nhập bất thường (nonrule/anormal): các plugin tiền
xử lý dạng này thường dùng để đối phó với các xâm nhập không thể hoặc rất
khó phát hiện được bằng các luật thông thường hoặc các dấu hiệu bất thường
trong giao thức. Các mô-đun tiền xử lý dạng này có thể thực hiện việc phát

Page 20


hiện xâm nhập theo bất cứ cách nào mà ta nghĩ ra từ đó tăng cường thêm tính
năng cho Suricata.
Ví dụ: một plugin tiền xử lý có nhiệm vụ thống kê thông lượng mạng
tại thời điểm bình thường để rồi khi có một thông lượng mạng bất thường xảy
ra nó có thể tính toán, phát hiện và đưa ra cảnh báo (phát hiện xâm nhập theo
mô hình thống kê).

2.3.3. Mô-đun phát hiện (Detection engine)
Đây là mô-đun quan trọng nhất của Suricata. Nó chịu trách nhiệm phát
hiện các dấu hiệu xâm nhập. Mô-đun 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ó hành
vi tấn công hay không. Rồi tiếp theo mới có thể thực hiện một số công việc
như ghi log, tạo thông báo và kết xuất thông tin.
Một vấn đề quan trọng trong mô-đun phát hiện là vấn đề thời gian xử lý
các gói tin: một IDS thường nhận được rất nhiều gói tin và bản thân nó cũng
có rất nhiều các luật xử lý. Có thể mất những khoảng thời gian khác nhau cho
việc xử lý các gói tin khác nhau. Và khi thông 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 được đúng lúc. Khả năng xử lý của môđun phát hiện dựa trên một số yếu tố như: số lượng các luật, tốc độ của hệ
thống đang chạy, tải trên mạng. Một số thử nghiệm cho biết, phiên bản hiện
tại của Suricata khi được tối ưu hóa chạy trên hệ thống có nhiều bộ vi xử lý và
cấu hình máy tính tương đối mạnh thì có thể hoạt động tốt trên cả các mạng
cỡ Gigabit.
Một mô-đun phát hiện cũng có khả năng tách các phần của gói tin ra và
áp dụng các luật lên từng phần nào của gói tin đó. Các phần đó có thể là:
- IP header
- Header tầng giao vận: TCP, UDP
- Header tầng ứng dụng: DNS header, HTTP header, FTP header,

- Phần tải của gói tin (có thể áp dụng các luật lên các phần dữ liệu
được truyền đi của gói tin)
Một vấn đề nữa trong mô-đun phát hiện đó là việc xử lý thế nào khi
một gói tin bị phát hiện bởi nhiều luật. Do các luật trong Suricata được đánh
số thứ tự ưu tiên, nên một 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 sẽ là cảnh báo ứng với luật có mức ưu tiên cao nhất.
Page 21



2.3.4. Mô-đun log và cảnh báo (Alert generation)

Tùy thuộc vào việc mô-đun phát hiện có nhận dạng đượ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 tệp tin log là các
tệp dữ liệu trong đó có thể được ghi dưới nhiều định dạng khác nhau. Trong
Suricata hỗ trợ các định dạng log như sau:
- Eve.json
- Fast.log
- http.log
- Stats.log
- Unified2.elert
Ví dụ trong tệp tin cấu hình suricata.yaml:

Trên đây là thông tin cấu hình để Suricata trích suất các định dạng ghi
log. Với log định dạng fast thông tin được hiển thị dưới dạng văn bản, người
quản trị có thể đọc được. Log định dạng unified2 được sử dụng bởi chương
trình Barnyard2.
2.4.
Tập luật của Suricata
Do kiến trúc hoạt động của Suricata giống với Snort nên tập luật của nó
cũng hoàn toàn giống với Snort.
Cấu trúc luật gồm có định dạng sau:
Rule Header
Rule option
Tất cả các luật của Suricata về logic đều gồm 2 phần: phần Header và
phần Option.
- 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 các tiêu chuẩn để áp dụng luật với gói tin đó.
- Phần Option chứa một 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 luật với gói tin. Một luật có
Page 22


thể phát hiện được một hay nhiều hoạt động thăm dò hay tấn
công. Các luật thông minh có khả năng áp dụng cho nhiều dấu
nhiệu xâm nhập.
Cấu trúc chung của phần Header trong luật Suricata:
Action

Protocol

Address

Port

Direction

Address

Chi tiết các trường trong luật như sau:
- Action: Là phần quy định loại hoạt động nào được thực thi khi
các dấu hiệu của gói tin được nhận dạng chính xác bằng luật đó.
Thông thường, các hành động tạo ra một cảnh báo hoặc log
thông điệp hoặc kích hoạt một luật khác. Các hành động gồm:
Drop, Alert, Reject, Pass,…
- Protocol: là phần quy định việc áp dụng luật cho các gói tin chỉ
thuộc một giao thức cụ thể nào đó. Ví dụ như IP, TCP, UDP, …
- Address: Là phần địa chỉ nguồn và địa chỉ đích. Các địa chỉ có

thể là một máy đơn, nhiều máy hoặc của một mạng nào đó.
Trong hai phần địa chỉ trên thì một sẽ là địa chỉ nguồn, một sẽ là
địa chỉ đích và địa chỉ nào thuộc loại nào sẽ do phần Direction
“→” quy định.
- Port: Xác định các cổng nguồn và đích của một gói tin mà trên
đó luật được áp dụng.
- Direction: phần này sẽ chỉ ra đâu là địa chỉ nguồn, đâu là địa chỉ
đích.
Ví dụ:

Ví dụ trên đây là luật phát hiện tấn công từ chối dịch vụ Dos thông qua
giao thức ICMP.
Tất cả các dấu hiệu có các thuộc tính khác nhau. Một trong những
thuộc tính đó là hành động. Đây là một hành động xảy ra khi thông tin của gói
tin, luồng dữ liệu trùng khớp với luật. Có bốn dạng của hành động này được
miêu tả như sau:
- Pass (cho phép): Nếu một dấu hiệu phù hợp với luật có hành
động cho phép, Suricata sẽ dừng hành động kiểm tra thông tin
Page 23

Port


của gói tin và bỏ qua tất cả các luật tiếp theo (chỉ áp dụng cho
gói tin hiện tại).
- Drop (hủy bỏ): Hành động này áp dụng cho IPS trong luồng.
Nếu Suricata tìm kiếm được dấu hiệu phù hợp chứa hành động
drop, nó sẽ hủy bỏ gói tin ngay lập tức. Do đó gói tin sẽ không
thể đi vào mạng nội bộ bên trong. Trong trường hợp này bên
nhận không nhận được gói tin và không có thông báo vấn đề gì

đang xảy ra, kết quả là hết hạn. Suricata tạo ra một cảnh báo cho
gói tin này.
- Reject (từ chối): Đây là hành động từ chối gói tin. Cả bên nhận
và bên gửi nhận gói tin bị từ chối. Có hai dạng từ chối gói tin sẽ
được tự động lựa chọn. Nếu gói tin vi phạm liên quan đến giao
thức TCP, nó sẽ yêu cầu khởi tạo lại. Những giao thức khác nó sẽ
gửi gói tin ICPM báo lỗi. Suricata cũng tạo ra một cảnh báo.
Trong chế độ IPS trong luồng, gói tin vi phạm cũng sẽ bị hủy bỏ
giống như hành động trên.
- Alert (cảnh báo): Nếu một dấu hiệu trùng khớp với luật cảnh
báo, gói tin sẽ được xử lý như với bất kỳ gói tin không có đe dọa
khác, trừ trường hợp một cảnh báo sẽ được tạo ra bởi Suricata.
2.5.
Các tham số trong phần Option của luật
Các tham số trong mục 2.4 là tham số trong phần Header của luật, dưới
đây trình bày một số tham số trong phần Option cần thiết sử dụng trong tập
luật:
- msg: Đây là tham số chứa chuỗi ký tự mô tả về tấn công, cho các
mô-đun ghi nhật ký và cảnh báo in ra cùng với các đặc điểm
khác khi tấn công được phát hiện.
- reference: Từ khóa này cho phép luật tham chiếu tới định danh
các tấn công bên ngoài hệ thống.
- gid:Từ khóa này sử dụng để định danh phần nào của hệ thống tạo
ra sự kiện khi một luật cụ thể được áp dụng.
- sid:Từ khóa này sử dụng để định danh duy nhất cho luật. Đây là
một dãy số tùy ý.
- rev: Từ khóa này được sử dụng để xác định số lần chỉnh sửa luật
- classtype: Từ khóa này sử dụng để phân loại một luật phát hiện
tấn công là một phần của nhiều dạng tấn công chung.
Page 24



priority: Từ khóa này dùng để xác định mức độ nghiêm trọng của
luật.
- metadata:Từ khóa này cho phép người viết luật nhúng thêm
thông tin về luật, đặc biệt trong một định danh giá trị đặc trưng.
2.6.
Bộ phận phát hiện trong Suricata
Trong bộ phận phát hiện dữ liệu đầu vào được chia thành các nhóm,
đầu tiên dữ liệu được phân chia theo nhóm dựa vào giao thức TCP, UDP,
ICMP. Tiếp theo dữ liệu được phân nhóm tiếp là luồng dữ liệu đi tới máy
trạm, luồng dữ liệu đi tới máy chủ. Các nhóm tiếp theo là địa chỉ nguồn và
đích, cổng nguồn và đích. Cuối mỗi nhóm là tập các mẫu phát hiện. chi tiết
được thể hiện trong hình 2.3. Suricata tham chiếu các dấu hiệu và so sánh với
lưu lượng mạng vừa được phân chia và phát hiện tấn công.
Với lý do trên, tất cả các dấu hiệu sẽ được chia vào trong các nhóm.
Tuy nhiên nếu sự phân chia này quá nhiều nhóm sẽ tốn bộ nhớ. Số lượng của
các nhóm sẽ xác định sự cân bằng giữa bộ nhớ và hiệu năng. Số lượng các
nhóm ít thì có hiệu năng thấp nhưng sử dụng ít bộ nhớ và ngược lại. Có một
số tùy chọn để quản lý vấn đề này: Với tùy chọn là “high” thì cho hiệu năng
cao nhưng chiếm dung lượng bộ nhớ, tùy chọn “low” cho hiệu năng thấp
nhưng chiếm ít bộ nhớ, tùy chọn “medium” là cân bằng giữa hiệu năng và bộ
nhớ, được thể hiện trong đoạn mã dưới đây. Đây là tùy chọn mặc định, người
dùng có thể tùy chỉnh để có hiệu năng xử lý cao nhất.
-

Tất cả những tùy chọn này, người dùng có thể thêm vào hoặc thay đổi
giá trị. Hầu hết các dấu hiệu có sự điều chỉnh để tập trung vào một hướng,
nghĩa là tập trung hoàn toàn vào các máy chủ, hoặc chỉ trên máy khách.
Page 25



×