You are on page 1of 74

LỜI CẢM ƠN

Được sự phân công của Khoa Công nghệ thông tin - Trường Đại học
Công nghệ thông tin và Truyền thông Thái Nguyên, và sự đồng ý của cô giáo
hướng dẫn Th.S Ngô Thị Lan Phương em đã thực hiện đề tài "Nghiên cứu
các chức năng của tường lửa thế hệ mới Suricata và ứng dụng trong mạng
nội bộ doanh nghiệp"
Em xin chân thành cảm ơn cô giáo đã tận tình hướng dẫn, giảng dạy và giúp
đỡ trong suốt quá trình em học tập và làm đồ án tốt nghiệp.
Em xin cảm ơn toàn thể các thầy cô giáo – Trường Đại học Công nghệ thông
tin và Truyền thông đã truyền dạy cho em những kiến thức quý báu trong suốt quá
trình học tập tại trường để em có thể hoàn thành tốt đồ án tốt nghiệp.
Mặc dù đã có rất nhiều cố gắng, nhưng do thời gian và kiến thức có hạn nên
không thể tránh khỏi những sai lầm và thiếu sót. Em rất mong được sự đóng góp
của quý thầy cô và các bạn để đồ án được hoàn thiện hơn.
Em xin chân thành cảm ơn!

Thái Nguyên, ngày tháng năm 2016


Sinh viên thực hiện

Nguyễn Thị Thu Trang

1
LỜI CAM ĐOAN

Em xin cam đoan đây là đề tài nghiên cứu do em tự thực hiện với sự hướng
dẫn và chỉ dạy trực tiếp của cô giáo Th.S Ngô Thị Lan Phương. Các nội dung và
kết quả trong đồ án chưa từng được công bố ở các nghiên cứu khác.
Em xin chịu trách nhiệm về đồ án tốt nghiệp của mình.

Thái Nguyên, ngày tháng năm 2016


Sinh viên

Nguyễn Thị Thu Trang

2
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT

Thuật ngữ, từ viết tắt Diễn giải

NGFWS Next Generation Firewalls


DPI In-Line Deep Packet Inspection
IDS Intrusion Detection System
IPS Intrusion Prevention System
NSM Network Security Mornitoring
SSL Secure Socket Layer L
SSH Secure Shell
PCAP Packet Capture
ICMP Internet Control Message Protocol
TCP Transmission Control Protocol
UDP User Datagram Protocol
HTTP Hypertext Transfer Protocol
DNS Domain Name System
SMTP Simple Mail Transfer Protocol
SMB Server Message Block
IMAP Internet Message Access Protocol
TLS Transport Layer Security

3
DANH MỤC BẢNG, HÌNH ẢNH

Bảng 1.1: Bảng so sánh giữa tường lửa truyền thống và tường lửa thế hệ mới
25
Bảng 3.1: Các thành phần của hệ thống mạng 57

Hình 1.1: Vị trí của firewall trong hệ thống mạng 16


Hình 1.2: Ứng dụng trung tâm phân loại lưu lượng dữ liệu xác định các ứng dụng
cụ thể chảy qua mạng, không phân biệt các cổng và giao thức sử dụng 19
Hình 1.3: Các kỹ thuật NGFWs sử dụng để xác định ứng dụng không phân biệt
cổng, giao thức, chiến thuật lần tránh hoặc mã hoá SSL21
Hình 1.4: Nhận dạng người dùng tích hợp các thư mục doanh nghiệp dựa vào
chính sách người dùng, báo cáo và pháp lý. 22
Hình 1.5: Xác định nội dung dựa vào hợp nhất quét các mối đe doạ, dữ liệu bí mật
và lọc URL 24
Hình 2.1: Kiến trúc của Suricata 29
Hình 2.2: Các gói tin đi vào Sniffer 30
Hình 2.3: Quá trình xử lí ở Preprocessors 31
Hình 2.4: Gói tin được xử lý ở Detection Engine bằng các luật32
Hình 2.5: Thành phần cảnh báo và logging 33
Hình 2.6: Cấu trúc luật trong Suricata 37
Hình 2.7: Bảng các tuỳ chọn của Reference 40
Hình 2.7: Thông tin phân loại lớp quy tắc41
Hình 2.8: Một số tuỳ chọn của Ipopts 44
Hình 2.9: Bảng Type của ICMP Header 48
Hình 3.1: Hệ thống kết nối hoàn toàn với Internet 51
Hình 3.2: Hệ thống mạng ngắt kết nối hoàn toàn với Internet 52
Hình 3.3: Hệ thống bán kết nối Internet 53

4
Hình 3.4: Hệ thống chia thành hai mạng 54
Hình 3.5: Hệ thống mạng công ty hiện nay 55
Hình 3.5: Sơ đồ hệ thống mạng sử dụng Suricata 56
Hình 3.6: Thông báo áp file cấu hình lên giao diện eth0 thành công 63
Hình 3.7: Ping từ máy mạng External đến máy chủ 64
Hình 3.8: Kết quả phát hiện Ping trên Suricata 64
Hình 3.9: Kết quả thông báo chặn Ping trên Suricata 65
Hình 3.10: Phát hiện giao thức TCP trên Suricata 65
Hình 3.11: Phát hiện giao thức UDP trên Suricata 66
Hình 3.12: Chặn giao thức TCP trên Suricata 66
Hình 3.13: Chặn giao thức UDP trên Suricata 67
Hình 4.1: Mô hình hệ thống mạng kết hợp GPU, DPDK, Suricata 71
Hình 4.2: Mô hình hoạt động của hệ thống 72
Hình 4.3: Kết quả thời gian mã hóa cùng dữ liệu đầu vào của GPU và CPU 73

5
MỞ ĐẦU

1. Tính cấp thiết của đề tài


Ngày nay, chúng ta đang chứng kiến và thụ hưởng những thành tựu to lớn
của cuộc cách mạng khoa học kỹ thuật mới - cuộc cách mạng công nghệ thông tin.
Mặc dù cuộc cách mạng này mới chỉ khởi đầu từ những năm cuối của thế kỷ XX,
bắt nguồn bằng việc phát minh ra máy tính điện tử (Computer) và thực sự bùng
phát khi mạng thông tin toàn cầu (Internet) được sử dụng rộng rãi, song đã
được nhiều nhà khoa học dự báo là sẽ đưa xã hội loài người tiến vào một kỷ
nguyên mới, một thời kỳ mới - nền kinh tế tri thức, một nền kinh tế được tiên
đoán là sẽ phát triển mạnh mẽ gấp nhiều lần so với cuộc cách mạng công
nghiệp trước đây. Thực tiễn đời sống xã hội trên thế giới và ngay cả ở Việt
Nam chúng ta những năm vừa qua đã kiểm chứng cho dự báo này. Máy tính và
công nghệ kỹ thuật số đi kèm đã và đang thay thế các công nghệ trước đây trên
tất cả mọi lĩnh vực đời sống xã hội. Máy tính đã nhanh chóng hiện diện và
được sử dụng rộng rãi trong hầu hết các lĩnh vực của đời sống xã hội, với
những mục đích sử dụng cũng hết sức đa dạng, từ sản xuất, kinh doanh, ứng
dụng khoa học kỹ thuật cho đến mục đích giải trí đơn thuần.
Mới chỉ hình thành và phát triển vài thập kỷ, nhưng cuộc cách mạng mới
này đã khiến cho nhiều ngành kinh tế, xã hội và văn hoá hoàn toàn phụ thuộc
vào các công nghệ mới của nó, đặc biệt phải kể đến vai trò của máy tính điện
tử và Internet. Công nghệ thông tin cũng hình thành một thế hệ mới, thế hệ phụ
thuộc vào công nghệ thông tin, coi máy tính, Internet, E-mail, điện thoại di
động, máy ảnh số, máy nghe nhạc số... là những công cụ không thể thiếu trong
cuộc sống. Đặc biệt là sự phát triền bùng nổ của mạng lưới thương mại điện tử
ở Việt Nam nói riêng và thế giới nói chung đã ngày càng trở thành mục tiêu
của nhiều attacker hơn.
Cũng như bất kỳ một thành tựu khoa học nào của nhân loại, khi mà các thành
tựu càng được ứng dụng rộng rãi trong đời sống xã hội thì càng dễ bị lợi dụng, sử
dụng hoặc là mục tiêu của tội phạm. Các thành tựu do công nghệ thông tin đem lại
cũng không nằm ngoài quy luật đó. Vì vậy, trong thế giới mà công nghệ thông tin đã
tạo ra cho con người đã hình thành một khái niệm về tội phạm - tội phạm trong lĩnh
vực công nghệ thông tin hay còn được biết đến với các tên khác nhau như: tội phạm
mạng (Cyber Crimes), tội phạm máy tính hay tội phạm liên quan đến máy tính
(Computer Crimes). Đây là vấn đề đang gây rất nhiều khó khăn không chỉ đối với
Việt Nam mà còn đối với nhiều nước trên thế giới. Do vậy, việc tìm ra các giải pháp

6
hữu hiệu trong việc phòng chống lại các tội phạm công nghệ thông tin đang là vấn
đề được quan tâm hàng đầu và cũng là những thách thức trong ngành công nghệ
thông tin của mỗi quốc gia.
Với sự phát triển ngày càng nhiều cùng những thử đoạn ngày càng tinh vi và
nguy hiểm của các attacker hiện nay thì đối với một hệ thống mạng của doanh
nghiệp vấn đề an toàn an ninh phải được đặt lên hàng đầu. Sử dụng một tường lửa
với những công nghệ hiện đại và các chức năng có thể ngăn chặn các cuộc tấn công
của các hacker là một giải pháp hữu hiệu cho các doanh nghiệp trong việc phát hiện,
ngăn chặn các mối đe doạ nguy hiểm để bảo vệ hệ thống mạng.
2. Mục tiêu nghiên cứu
Nghiên cứu các chức năng chính của tường lửa thế hệ mới và các kỹ thuật sử
dụng trong tường lửa thế hệ mới.
Nghiên cứu cấu trúc của tường lửa thế hệmới Suricata, các chức năng của
Suricata và các cài đặt, cấu hình trên hệ điều hành Linux.
Nghiên cứu về các luật của Suricata, cấu trúc luật và các thành phần trong luật
của Suricata. Viết một số luật đơn giản trong Suricata và thực thi các luật.
Nghiên cứu, phân tích dấu hiệu của một số cuộc tấn công, hình thành các luật
tương ứng với đặc điểm của các dạng tấn công và xâm nhập đó.
3. Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài là công nghệ tường lửa thế hệ mới nói chung.
Hệ thống tường lửa thế hệ mới Suricata, chức năng và cấu trúc tập luật của Suricata.
Nghiên cứu và hình thành các tập luật đối với các dạng tấn công, xâm
nhập cụ thể.
4. Phương pháp nghiên cứu
Nghiên cứu lý thuyết phát hiện xâm nhập thông qua các tài liệu báo cáo,
luận văn…
Nghiên cứu lý thuyết về tường lửa thế hệ mới thông qua các tài liệu của tác giả
Lawrence C. Miller, tài liệu của hãng Palo Alto và các nguồn tài liệu khác.
Nghiên cứu lý thuyết về Suricata thông qua tài liệu từ trang chủ Suricata, tài
liệu Sourcefile của Suricata và các tài liệu khác.
Cài đặt và triển khai hệ thống trên Linux.
Tìm hiểu về các phương thức xâm nhập, tấn công và khai thác lỗ hổng, công cụ
và cách thực hiện.
Triển khai tấn công, khai thác lỗ hổng. Sau đó đọc log, phân tích gói tin bắt
được, chuyển hoá thành các luật nhằm phát hiện và ngăn chặn.
5. Nội dung đề tài
Luận văn tập trung phân tích các chức năng của tường lửa thế hệ mới, cấu trúc,

7
chức năng và tập luật của tường lửa thế hệ mới Suricata. Phân tích một số cuộc tấn
công xâm nhập từ đó hình thành các tập luật phát hiện và ngăn chặn tương ứng. Bài
luận văn gồm 4 chương:
Chương 1: Tổng quan về công nghệ tường lửa thế hệ mới
Giới thiệu tổng quan về công nghệ tưởng lửa thế hệ mới, đi sâu phân tích các
chức năng và kỹ thuật sử dụng của tường lửa thế hệ mới.
Chương 2: Tường lửa thế hệ mới Suricata
Giới thiệu tổng quan về Suricata, phân tích cấu trúc, chức năng của Suricata..
Phân tích chi tiết cấu trúc một luật trong Suricata.
Chương 3: Demo phát hiện và chặn một số giao thức trên Suricata
Phân tích một số dạng tấn công và thiết lập các luật tương ứng. Thiết lập một số
luật cơ bản và thực nghiệm trên Suricata. Cài đặt Suricata trên hệ điều hành Linux.
Ứng dụng Suricata trong việc phát hiện và ngăn chặn các giao thức
Chương 4: Khả năng ứng dụng và mở rộng của kết quả nghiên cứu
Tóm tắt, nhận xét các kết quả đã đạt được và các hạn chế cần phải khắc phục
trong bài báo cáo. Nêu lên ý nghĩa khoa học và ứng dụng trong thực tiễn của tường
lửa thế hệ mới. Đặt ra hướng phát triển trong tương lai và ứng dụng của nó trong
ngành công nghệ thông tin đặc biệt là lĩnh vực an toàn an ninh mạng

8
CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ TƯỜNG LỬA
THẾ HỆ MỚI

1.1. Tổng quan về bảo mật


1.1.1. Khái niệm
Bảo mật là sự hạn chế khả năng lạm dụng tài nguyên và tài sản. Hạn chế ở
đây có nghĩa là không thể triệt phá hết ngay việc lạm dụng, cho nên cần sẵn sàng
để phòng mọi khả năng xấu. Bên cạnh đó, cần phải phân tích chính xác các cuộc
tấn công, các điểm yếu của hệ thống và tăng cường bảo mật những vùng cần thiết
để làm giảm thiệt hại gây nên từ các cuộc tấn công.
Khái niệm bảo mật được định nghĩa theo 3 lĩnh vực chính:
 Bảo mật máy tính (Computer Security): Là một tiến trình ngăn chặn và phát
hiện sử dụng không hợp pháp vào máy tính của bạn bằng cách lựa chọn các công
cụ thiết kế để bảo vệ dữ liệu và tấn công của hackers.
 Bảo mật mạng (Network Security): Là phương pháp để bảo vệ dữ liệu
trong suốt quá trình chuyển động của chúng.
 Bảo mật Internet (Internet Security): Là phương pháp để bảo vệ dữ liệu
trong suốt quá trình vận chuyển của chúng ra ngoài đến kết nối Inernet.
1.1.2. Các phương pháp xâm nhập hệ thống
Tấn công (attack) là hoạt động có chủ ý của kẻ phạm tội lợi dụng các thương
tổn của hệ thống thông tin và tiến hành phá vỡ tính sẵn sàng, tính toàn vẹn và tính
bí mật của hệ thống thông tin.
1.1.2.1. Phương thức tấn công để thăm dò mạng
Thăm dò là việc thu thập thông tin trái phép về tài nguyên, các lỗ hổng hoặc
dịch vụ của hệ thống.
Tấn công thăm dò thường bao gồm các hình thức: Sniffing, Ping Sweep,
Ports Scanning.
a. Sniffing (Nghe lén)
Sniffing là một hình thức nghe lén trên hệ thống mạng dựa trên những đặc
điểm của cơ chế TCP/IP.
Sniffer ban đầu là một kỹ thuật bảo mật, được phát triển nhằm giúp các nhà
quản trị mạng khai thác mạng hiệu quả hơn và có thể kiểm tra lỗi các dữ liệu vào
mạng cũng như các dữ liệu trong mạng. Sau này, các hacker dùng phương pháp
này để lấy cắp mật khẩu hay các thông tin nhạy cảm khác.
Biến thể của sniffer là các chương trình nghe lén bất hợp pháp như: công cụ
nghe lén yahoo, ăn cắp password email…

9
b. Ping sweep
- Ping: đưa ra một gói yêu cầu ICMP và đợi trả lời một thông báo trả lời từ
một máy hoạt động.
- Ping Sweep: xác định hệ thống đang “sống” hay không rất quan trọng vì có
thể hacker ngừng ngay tấn công khi xác định hệ thống đó đã “chết”. Việc xác định
trạng thái hệ thống có thẻ sử dụng kỹ thuật Ping Scan hay gọi với tên Ping Sweep.
- Bản chất của quá trình này là gửi một ICMP Echo Request đến máy chủ mà
hacker đang muốn tấn công và mong đợi một ICMP Reply.
- Ngoài lệnh ping sẵn có trên Windows, còn có một số công cụ ping sweep
như: Pinger, Friendly, Ping Pro…
c. Port scanning
Port scanning là một quá trình kết nối các cổng (TCP và UDP) trên một hệ
thống mục tiêu nhằm xác định xem dịch vụ nào đang “chạy” hoặc đang trong trạng
thái “nghe”. Xác định các cổng nghe là một công việc rất quan trọng nhằm xác
định được loại hình hệ thống và những ứng dụng đang được sử dụng.
Port scanning thực hiện các chức năng:
- Xác định máy đang ở cổng nào.
- Xác định hệ thống đang sử dụng dịch vụ nào.
Mỗi công cụ có cơ chế port scan riêng.
1.1.2.2. Tấn công xâm nhập (access attack)
Tấn công xâm nhập là một thuật ngữ rộng miêu tả bất kỳ kiểu tấn công nào
đòi hỏi người xâm nhập lấy được quyền truy cập trái phép của một hệ thống bảo
mật với mục đích thao túng dữ liệu, nâng cao đặc quyền.
Tấn công truy nhập hệ thống: là hành động nhằm đạt được quyền truy cập bất
hợp pháp đến một hệ thống mà ở đó hacker không có tài khoản sử dụng.
Tấn công xâm nhập thao túng dữ liệu: kẻ xâm nhập đọc, viết, xóa, sao chép
hay thay đổi dữ liệu.

1.1.2.3. Tấn công từ chối dịch vụ


Tấn công từ chối dịch vụ là tên gọi chung của cách tấn công làm cho một hệ
thốn nào đó bị quá tải không thể cung cấp dịch vụ, làm gián đoạn hoạt động của hệ
thống hoặc hệ thống phải ngưng hoạt động.
Tùy theo phương thức thực hiện mà nó được biết dưới nhiều tên gọi khác nhau:
- Khởi đầu là lợi dụng sự yếu kém của giao thức TCP (Transmision Control
Protocol) để thực hiện tấn công từ chối dịch vụ DoS (Denial of Service).
- Tiếp theo là tấn công từ chối dịch vụ phân tán DDoS (Distributed DoS)

10
- Mới nhất là tấn công từ chối dịch vụ theo phương pháp phản xạ DRDoS
(Distributed Reflection DoS).
1.1.2.4. Phương pháp tấn công hệ thống DNS
DNS Server là hệ thống quan trọng nhất trong hệ thống máy chủ. Việc tấn
công và chiếm quyền điều khiển máy chủ phục vụ DNS là một sự phá hoại nguy
hiểm liên quan đến toàn bộ hoạt động của hệ thống truyền trên mạng.
1.1.2.5. Phương thức tấn công lớp ứng dụng
Tấn công lớp ứng dụng được thực hiện bằng nhiều cách khác nhau. Một
trong những cách thông dụng nhất là tấn công vào các điểm yếu của phần mềm
như sendmail, HTTP, FTP…Nguyên nhân chủ yếu của các tấn công lớp ứng dụng
này là chúng sử dụng những port cho qua bởi Firewall. Ví dụ các hacker tấn công
Web server bằng cách sử dụng TCP port 80, mail server bằng TCP port 25…
1.1.2.6. Phương pháp tấn công nhúng mã độc
a. Virus
Là những chương trình hay đoạn mã được thiết kế để tự nhân bản và sao chép
chính nó vào các đối tượng lây nhiễm khác (file, ổ đĩa, máy tính…).
Những virus được viết trong thời gian gần đây đa phần hướng đến việc
lấy cắp thông tin cá nhân (các mã số thẻ tín dụng) mở cửa sau cho tin tặc đột
nhập chiếm quyền điều khiển hoặc các hành động khác nhằm có lợi cho người
phát tán virus.
Virus thường bị lây nhiễm qua các phương thức như thư điện tử và Internet.
b. Trojan horse
Là một phần mềm độc hại, nó có chức năng hủy hoại tương tự như virus
nhưng nó không có khả năng tự nhân bản như virus. Trên các máy tính, các hacker
thường đính kèm một Trojan horse vào một cái tên mà người dùng ít nghi ngờ vào
một thư điện tử với việc khuyến khích người dùng mở đính kèm ra. Trojan horse
thường là các tệp khả nghi trên máy tính và do đó sẽ có các đuôi như *.exe, *.com,
*.scr hay *.pif. Nếu một Trojan horse có tên là “Readme.txt.exe” thì tệp này sẽ
hiển thị một cách mặc định thành “Readme.txt” và nó sẽ đánh lừa người dùng rằng
đây chỉ là một loại hồ sơ văn bản không thể gây hại.
1.1.3. Các mối đe dọa về bảo mật
Hiện nay, một hệ thống công nghệ thông tin luôn bị đe dọa tấn công bởi các
hacker nên việc xây dựng một hệ thống bảo vệ xâm nhập là cần thiết đối với mỗi

11
một tổ chức. Các hình thức tấn công của hacker ngày càng tinh vi, mức độ tấn
công ngày càng nguy hiểm hơn, nên không một hệ thống nào có thể đảm bảo hoàn
toàn không bị xâm nhập. Nếu các tổ chức phòng chống tội phạm công nghệ thông
tin đang cố gắng cập nhật, sửa đổi để cung cấp cho người dùng những phương
pháp phòng chống hiệu quả thì bên cạnh đó, những kẽ tấn công cũng ngày đêm
nghiên cứu tung ra các hình thức xâm nhập phá hoại khác.
Để bảo vệ tốt được một hệ thống, đầu tiên bạn phải có cái nhìn tổng quát về
các nguy cơ tấn công, nghĩa là đầu tiên bạn phải nhận định được bạn cần bảo vệ
cái gì, bảo vệ khỏi ai cùng với đó bạn phải hiểu các kiểu đe dọa đến sự bảo mật
mạng của bạn. Thông thường sẽ có 4 mối đe dọa bảo mật sau:
 Mối đe dọa bên trong
 Mối đe dọa bên ngoài
 Mối đe dọa có cấu trúc và không có cấu trúc
a. Mối đe dọa bên trong
Mối đe dọa bên trong là kiểu tấn công được thực hiện từ một cá nhân hoặc
một tổ chức được tin cậy trong mạng và có một vài quyền hạn để truy cập vào hệ
thống. Hầu hết chúng ta chỉ quan tâm xây dựng một hệ thống firewall và giám sát
dữ liệu truy cập ở các đường biên mạng mà ít để ý đến các truy cập trong mạng nội
do sự tin tưởng vào các chính sách được người quản trị quy định trong hệ thống.
Do sự bảo mật trong một mạng local thường lỏng lẻo nên đây là môi trường
thường được các hacker sử dụng để tấn công hệ thống.
Mối đe dọa bên trong thường được thực hiện bởi các nhân viên có bất đồng
với công ty, các gián điệp kinh tế hay do một máy client đã bị hacker chiếm quyền
truy cập. Mối đe dọa này thường ít được để ý và phòng chống vì các nhân viên có
thể truy cập vào mạng và dữ liệu quan trọng của sever.
b. Mối đe dọa ở bên ngoài
Mối đe dọa bên ngoài là việc các hacker cố gắng xâm nhập vào một hệ thống
mạng nào đó bằng một vài kỹ thuật hay việc phá hoại truy cập hệ thống (DoS,

12
DDoS…). Xây dựng hệ thống firewall và cảnh báo để ngăn ngừa các mối đe dọa
từ bên ngoài là việc mà ccs công ty và tổ chức thường phải bỏ nhiều thời gian và
tiền bạc để đầu tư phát triển.
c. Mối đe dọa không có cấu trúc và có cấu trúc
Mối đe dọa tấn công vào một hệ thống có thể đến từ rất nhiều loại. Phổ biến
nhất là các hacker mới vào nghề, còn ít kiến thức và không có kinh nghiệm, thực
hiện việc tấn công bằng cách sử dụng công cụ hoặc thực hiện tấn công DoS (mối
đe dọa không có cấu trúc). Hoặc việc tấn công được thực hiện bởi các hacker thực
thụ hoặc cả một tổ chức (mối đe dọa có cấu trúc), họ là những người có kiến thức
và kinh nghiệm cao, nắm rõ việc hoạt động của các hệ thống, giao thức mạng cũng
như các phương pháp thường được sử dụng để ngăn chặn trong các firewall. Đây
là mối đe dọa khó ngăn ngừa và phòng chống nhất đối với các hệ thống mạng.
1.2. Công nghệ tường lửa thế hệ mới
1.2.1. Giới thiệu về firewall
Firewall là một thiết bị, hay một hệ thống điều khiển truy cập mạng, nó có
thể là phần cứng hoặc phần mềm hoặc kết hợp cả hai.
Firewall thường được đặt tại mạng vành đai để đóng vai trò như cổng nối
(gateway) bảo mật giữa một mạng tin cậy và mạng không tin cậy, có thể giữa
Intranet và Internet hoặc giữa mạng của doanh nghiệp chủ với mạng của đối tác.
Firewall được thiết kế để ngăn chặn tất cả các lưu lượng không được phép và
cho phép các lưu lượng được phép đi qua nó. Vì vậy, thiết bị firewall thường bao
gồm hai giao tiếp mạng (network interface): một nối với mạng bên trong (intranet:
mạng cần bảo vệ) và một nối với mạng bên ngoài (Internet: mạng không tin cậy).

13
Hình 1.1: Vị trí của firewall trong hệ thống mạng
Firewall đóng vai trò như một getway, nhưng nhiệm vụ của nó khác với
router. Router là thiết bị mạng, thường được sử dụng cho mục tiêu định tuyến lưu
lượng mạng (có thể từ chối lưu lượng nào đó). Trong khi đó, firewall là thiết bị
bảo mật, có nhiệm vụ giám sát và điều khiển lưu lượng mạng (chỉ cho phép lưu
lượng thích hợp đi qua).
Firewall cung cấp một cơ chế cấu hình linh hoạt, nó có thể được cấu hình để
cho phép hoặc cấm các lưu lượng dựa trên dịch vụ, địa chỉ IP của nguồn hoặc đích,
hoặc ID của người yêu cầu sử dụng dịch vụ. Nó cũng có thể được cấu hình để ghi
lại (log) tất cả các lưu lượng đã đi qua nó.
1.2.2. Khái niệm công nghệ tường lửa thế hệ mới
An ninh mạng tại hầu hết các doanh nghiệp hiện nay gặp phải những vấn đề
như bị phân tán hay bị hỏng gây ra những nguy cơ đe doạ không mong muốn và
tốn nhiều chi phí. Giải pháp an toàn an ninh mạng truyền thống đã không theo kịp
sự phát triển và thay đổi của các ứng dụng, các mối đe doạ và kết nối mạng. Hơn
nữa các biện pháp doanh nghiệp đưa ra để khắc phục vấn đề này hầu hết không
mạng lại hiệu quả. Như vậy một yêu cầu thực tiễn và cấp bách đặt ra đó là phải tái
tạo lại an toàn an ninh mạng và có biện pháp bảo vệ hệ thống mạng một cách hiệu
quả nhất.
Dựa trên những nhu cầu thực tiễn của thị trường công nghệ thông tin như
vậy, các chuyên gia trong lĩnh vực an minh mạng đã cho ra đời khái niệm công
nghệ tường lửa thế hệ mới và các dòng sản phẩm tường lửa thế hệ mới. Với sự tích
hợp các công nghệ tiên tiến hiện đại nhất trong phát hiện, ngăn chặn và phòng
chống các cuộc tấn công, mối đe doạ nguy hiểm đã giúp các doanh nghiệp có một
giải pháp hiệu quả trong việc bảo vệ an ninh mạng của công ty mình.
Tường lửa thế hệ mới (Next Generation Firewalls – NGFWs) là nền tảng
14
mạng tích hợp đầy đủ tường lửa truyền thống với các thiết bị mạng có chức
năng lọc như in-line deep packet inspection (DPI), intrucsion prevention system
(IPS) và các kỹ thuật ngăn chặn khác như SSL, SSH, lọc website, quản lý chất
lượng dịch vụ, quản lý băng thông, kiểm tra chống virus và quản lý sự tham gia
của bên thứ ba.[2]
NGFWs được xây dựng dựa trên nền tảng bảo mật mạng của doanh nghiệp,
NGFWs “fix the ploblem at the it’s core”. NGFWs phân loại lưu lượng dữ liệu dựa
vào các đặc tính của ứng dụng để cho phép khả năng hiển thị và kiểm soát toàn bộ
ứng dụng chạy trong mạng doanh nghiệp.
Các yêu cầu chức năng cần thiết cho một NGFWs hoạt động hiệu quả bao gồm:
 Xác định ứng dụng không cần chú ý đến cổng, giao thức, các kỹ thuật lẩn
tránh, mã hoá SSL trước khi làm bất cứ điều gì khác.
 Cung cấp các biện pháp bảo vệ để chống lại một loại các mối đe doạ ở
thời gian thực, bao gồm cả những người hoạt động ở lớp ứng dụng.
 Cung cấp khả năng hiện thị, kiểm soát chính sách dựa trên các ứng dụng
bao gồm cả các chức năng riêng lẻ.
 Không chỉ kết hợp mà phải tích hợp khả năng phòng chống xâm nhập của
tường lửa truyền thống.
 Nhận dạng chính xác người sử dụng và sau đó sử dụng thông tin nhận
dạng như một thuộc tính trong chính sách giám sát.
 Hỗ trợ mutil-gigabit.
Khả năng điển hình của tường lửa truyền thống là lọc gói tin, dịch địa chỉ
mạng và địa chỉ cổng mạng (NAT), kiểm tra trạng thái và mạng riêng ảo (VPN).
Khả năng phòng chống xâm nhập điển hình là chống lại các lỗ hổng và những dấu
hiệu của sự đe doạ, phỏng đoán các dấu hiệu và sự xâm nhập.
Chìa khoá cốt lõi và điểm mạnh của NGFWs là làm tất cả các khả năng một
tưởng lửa truyền thống với khả năng tiên tiến như: tích hợp các công nghệ tiên
tiến, hiệu suất cao và các tính năng khác nhằm cung cấp một giải pháp mạng doanh
nghiệp hiệu quả.
1.2.3. Một số công nghệ, kỹ thuật sử dụng trong NGFWs
 Hệ thống phát hiện xâm nhập mạng IDS
IDS (Intrusion Detection System) là hệ thống giám sát lưu thông mạng (có thể là
phần cứng hoặc phần mềm), có khả năng nhận biết những 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,
cung cấp thông tin nhận biết và đưa ra cảnh báo cho hệ thống, nhà quản trị. IDS có thể
phân biệt được các cuộc tấn công từ nội bộ hay tấn công từ bên ngoài.
IDS phát hiện dựa trên các dấu hiệu đặc biệt về nguy cơ đã biết hay dựa trên so

15
sánh lưu thông mạng hiện tại với baseline (thông số chuẩn của hệ thống có thể
chấp nhận được) để tìm ra các dấu hiệu bất thường.
 Hệ thống ngăn chặn xâm nhập mạng IPS
IPS ( Intrusion Prevention System) là một hệ thống có thể phát hiện và ngăn
chặn sự xâm nhập từ bên ngoài vào các hệ thống máy tính.
IPS là một phương pháp tiếp cận an ninh mạng bằng cách ưu tiên sử dụng các
công nghệ tiên tiến để phát hiện và ngăn chặn các nỗ lực xâm nhập vào hệ thống
máy tính. IPS kiểm tra các luồng lưu lượng ra/ vào một hệ thống máy tính hoặc
mạng máy tính nhằm mục đích vi phạm an ninh. Nếu phát hiện mối đe dọa thì nó
sẽ có những hành động bảo vệ như ngăn chặn gói tin hoặc ngắt toàn bộ kết nối.
IPS kiểm tra, ghi chép lại một cách chi tiết các hành động đang đăng nhập vào hệ
thống và gửi cảnh báo cho hệ thống hoặc quản trị mạng. Các IPS khác nhau có
phương thức khác nhau trong việc kiểm tra các luồng dữ liệu để phát hiện các mối
đe dọa, xâm nhập.
 Công nghệ giám sát an ninh mạng NSM
Giám sát an ninh mạng (Network Security Mornitoring) là việc thu thập các
thông tin trên các thành phần của hệ thống, phân tích các thông tin, dấu hiệu nhằm
đánh giá và đưa ra các cảnh báo cho người quản trị hệ thống.
Đối tượng của giám an ninh mạng là tất cả các thành phần, thiết bị trong hệ
thống mạng:
- Các máy trạm
- Cơ sở dữ liệu
- Các ứng dụng
- Các server
- Các thiết bị mạng
 Sử dụng PCAP log lại thông tin của lưu lượng dữ liệu mạng
PCAP (packet capture) bao gồm những giao diện lập trình ứng dụng (API)
dùng để chặn bắt và phân tích các lưu lượng dữ liệu trên mạng. PCAP thực hiện
các chức năng lọc gói dữ liệu theo những luật của người dùng khi chúng được
truyền tới ứng dụng, truyền những gói dữ liệu thô tới mạng, thu thập thông tin
thống kê lưu lượng mạng. Đối với các hệ thống thuộc họ Unix ta có thư viện
libpcap, còn đối với Window ta có thư viện được port từ libpcap là winpcap.
 Phân tích các dòng dữ liệu của file PCAP, tự động xử lý file PCAP
1.2.4. Chức năng của NFGWs
 Xác định ứng dụng
Thiết lập cổng và giao thức là bước quan trọng đầu tiên trong việc xác định
ứng dụng nhưng đó là chưa đủ. Nhận dạng, xác định ứng dụng một cách nhanh

16
chóng và mạnh mẽ thông qua việc kiểm tra và cho phép kiểm soát chặt chẽ các
dòng chảy (lưu lượng truy cập) của session thông qua một tường lửa dựa trên ứng
dụng cụ thể đang chạy thay vì chỉ dựa trên các thiết lập cơ bản thì không thể nhận
rõ được các giao tiếp mạng.

Hình 1.2: Ứng dụng trung tâm phân loại lưu lượng dữ liệu xác định các ứng
dụng cụ thể chảy qua mạng, không phân biệt các cổng và giao thức sử dụng

Xác thực rõ ràng các ứng dụng là mục đích cuả phân loại lưu lượng dữ liệu
mạng tại trung tâm của NGFWs. Nó đòi hỏi tiếp cận đa yếu tố để xác định danh
tính của các ứng dụng trên mạng, bất kể cổng, giao thức, mã hoá hay các kỹ thuật
lần tránh để vượt qua tường lửa. Kỹ thuật nhận dạng ứng dụng được sử dụng trong
NGF bao gồm:
 Phát hiện giao thức ứng dụng và giải mã
Phát hiện các giao thức ứng dụng ( ví dụ: HTTP, FTP…) và nếu SSL
được sử dụng thì sẽ tiến hành giải mã các lưu lượng dữ liệu để phân tích các
dữ liệu đó. Lưu lượng dữ liệu được mã hoá lại sau khi tất cả các kỹ thuật
nhận dạng được hoạt động.
 Giải mã giao thức ứng dụng

17
Xác định các giao thức đã được phát hiện là “thực tế“ hay nó được sử dụng
như là một “đường hầm” để ẩn đi các ứng dụng (ví dụ: Yahoo!Messenger có thể
được ẩn bên trong HTTP)
 Dấu hiệu ứng dụng
Dấu hiệu ngữ cảnh dựa trên tìm kiếm các đặc tính duy nhất và đặc điểm toàn
tác để xác định ứng dụng không phụ thuộc vào cổng và giao thức được sử dụng.
Điều này bao gồm khả năng phát hiện các chức năng cụ thể trong các ứng dụng
(chẳng hạn như chuyển tập tin trong IM (Instant Messenger) session)
 Heuristics
Đối với các dữ liệu vượt quá khả năng của phân tích dấu hiệu thì khi đó phân
tích Heuristics (hành vi) được áp dụng để nhận dạng các ứng dụng phức tạp, chẳng
hạn như P2P (Peer-to-peer) hay công cụ VoIP (Voice over Internet Protocol).

18
Hình 1.3: Các kỹ thuật NGFWs sử dụng để xác định ứng dụng không phân
biệt cổng, giao thức, chiến thuật lần tránh hoặc mã hoá SSL
 Xác định người dùng
Công nghệ nhận dạng người dùng sử dụng liên kết các địa chỉ IP để nhận
dạng người dùng cụ thể, tạo điều kiện cho khả năng hiển thị và kiểm soát các hoạt
động mạng trên một cơ sở cho mỗi người dùng. Tích hợp chặt chẽ với các thư mục
LDAP (Lightweight Directory Access Protocol là một giao thức ứng dụng truy cập
các cấu trúc thư mục. Nó được thiết kế trên giao thức Internet TCP/IP), chẳng hạn
như Microsoft Active Directory (AD), hỗ trợ mục tiêu này theo hai cách:
- Thứ nhất, nó luôn kiểm chứng và duy trì các mối quan hệ với người sử đụng
địa chỉ IP bằng cách kết hợp các giải pháp như: giám sát đăng nhập, các kỹ thuật
captive portal…
- Tiếp theo nó giao tiếp với AD để thu thập các thông tin người dùng.
Các chi tiết, thông tin sau khi thu thập được sẽ được lưu trữ để hỗ trợ cho các
nhiệm vụ:

19
- Đạt được tầm nhìn vào người cụ thể chịu trách nhiệm cho tất cả ứng dụng,
nội dung và mối đe doạ của lưu lượng truy cập trên mạng.
- Cho phép sử dụng nhận dạng như là một biến trong chính sách kiểm soát
truy cập.
- Tạo điều kiện xử lý sự cố, phản ứng sự cố và báo cáo.
Với việc nhận dạng người dùng, bộ phận IT có được một cơ chế mạnh mẽ để
giúp kiểm soát việc sử dụng các ứng dụng một cách thông minh.

Hình 1.4: Nhận dạng người dùng tích hợp các thư mục doanh nghiệp dựa
vào chính sách người dùng, báo cáo và pháp lý.

20
 Xác định nội dung
Việc xác định nội dung truyền vào của tường lửa thế hệ mới với các khả năng
chưa từng có ở các tường lửa trước đây của các doanh nghiệp như: phòng ngừa các
mối đe doạ thời gian thực trong lưu lượng truy cập cho phép, kiểm soát các hoạt
động truy cập Web, các tập tin và lọc dữ liệu.
 Threat prevention (phòng chống mối đe doạ): thành phần này ngăn chặn
các spyware, virus, các lỗ hổng xâm nhập mạng mà không phụ thuộc vào lưu
lượng ứng dụng.
 Application decoder: Xử lý dòng dữ liệu và kiểm tra nó để xác định cụ
thể các mối đe doạ.
 Stream-based virus and spyware scanning: Quét lưu lượng truy cập ngay
sau khi nhân được các gói tin đầu tiền của một tập tin thay vì quét sau khi
nhận được toàn bộ tập tin vào bộ nhớ để tối đa hoá thông lượng và giảm
thiểu bộ nhớ.
 Uniform threat signature format: Tăng hiệu suất bằng cách tránh sự cẩn
thiết phải sử dụng công cụ quét riêng biệt cho từng mối đe doạ. Viruses,
spyware, các lỗ hổng đều có thể được phát hiện trong một lần.
 Vulnerability attack protection (IPS): Chương trình mạnh mẽ cho việc
bình thường hoá các lưu lượng truy cập và chống phân mảnh được nối bởi
các giao thức bất thường, hành vi bất thường, cơ chế phát hiện heuristic để
cung cấp bảo vệ trên phạm vi rộng nhất của cả hai mối đe doạ là mối đe
doạ đã biết và mối đe doạ chưa biết.
 URL filtering: Mặc dù không bắt buộc, nhưng lọc URL (Uniform
Resource Locator) đôi khi cũng được dùng để phân loại nội dung. Việc phân tích
dựa trên cơ sở dữ liệu URL cho phép các quản trị viên giám sát và kiểm soát hoạt
động truy cập Web của người sử dụng. Được sử dụng kết hợp với xác định người
dùng, chính sách sử dụng Web, thậm chí được thiết lập trên mỗi cơ sở sử dụng,
hơn nữa là bảo vệ các doanh nghiệp từ các quy định, rủi ro liên quan đến pháp lý.
 File and data filtering: Sử dụng giải pháp kiểm tra chuyên sâu ứng dụng,
tập tin và lọc dữ liệu cho phép thực thi các chính sách làm giảm nguy cơ của các
tập tin trái phép và chuyển giao dữ liệu. Khả năng bao gồm: ngăn chặn các file
kiểu thực tại của file (không dựa vào phần mở rộng) và khả năng kiểm soát việc
chuyển giao các mô hình dữ liệu nhạy cảm. Thành phần này bổ sung chi tiết cho
nhận dạng ứng dụng, mà đối với nhiều ứng dụng cung cấp khả năng kiểm soát tập
tin trong một ứng dụng riêng lẻ.
Với việc xác định nội dung, bộ phận IT có được khả năng ngăn chặn các mối đe

21
doạ, giảm việc sử dụng không hợp lệ của Internet và giúp ngăn chặn rỏ rỉ dữ liệu.

Hình 1.5: Xác định nội dung dựa vào hợp nhất quét các mối đe doạ, dữ liệu
bí mật và lọc URL
 Chính sách kiểm soát
Xác định các ứng dụng sử dụng (nhận dạng ứng dụng), những người đang sử
dụng ứng dụng (nhận dạng người sử dụng), và những gì họ đang sử dụng cho ứng
dụng (xác định nội dung) là một bước quan trọng đầu tiên trong việc tìm hiểu về
lưu lượng truy cập đi qua mạng. Tìm hiểu các ứng dụng làm những gì, các cổng
mà nó sử dụng, công nghệ cơ bản của nó, và hành vi của nó là bước tiếp theo để
đưa ra một quyết định sáng suốt về cách xử lý với các ứng dụng. Khi một bức
tranh hoàn chỉnh về cách sử dụng là đã đạt được, tổ chức có thể áp dụng chính
sách với một loạt các phản ứng chi tiết hơn và thích hợp hơn thay vì chỉ đơn giản
là "cho phép" hoặc "từ chối" - các tùy chọn chỉ có sẵn trong cổng của tường lửa
truyền thống. Điều này có thể được thực hiện bởi sự kết hợp của nhận dạng ứng
dụng, người dùng, nội dung và các mô hình bảo mật tích cực của các tường lửa
thế hệ mới. Tường lửa truyền thống có các mô hình bảo mật, nhưng thiếu thông
minh. Thiết bị an ninh khác có thể có một số các thông tin tình báo, nhưng
không phải là mô hình bảo mật. Ví dụ về các tùy chọn kiểm soát chính sách

22
trong NGFWs bao gồm:
 Cho phép hoặc từ chối
 Cho phép nhưng quét các lỗ hổng, virus và các mối đe dọa khác
 Cho phép dựa trên lịch trình, người dùng, hoặc các nhóm
 Giải mã và kiểm tra
 Áp dụng định hình lưu lượng truy cập thông qua QoS
 Áp dụng chuyển tiếp dựa trên chính sách
 Cho phép chức năng ứng dụng nhất định
 Kết hợp bất kỳ các chính sách nói trên
1.2.5. So sánh giữa tường lửa truyền thống và tường lửa thế hệ mới
Bảng 1.1: Bảng so sánh giữa tường lửa truyền thống và tường lửa thế hệ mới

Thuộc tính Tường lửa truyền thống Tường lửa thế hệ mới

Source Mã nguồn đóng Mã nguồn mở


Sử dụng các kỹ thuật: Sử dụng các công nghệ hiện đại
- Lọc, bắt gói tin thông qua và tiên tiến:
bộ lọc gói tin - Công nghệ phát hiện xâm
- Lọc, chặn giao thức thông nhập IDS
qua port (đóng, mở port) - Công nghệ phòng chống xâm
Công nghệ sử
- Sử dụng cơ chết NAT trong nhập IPS
dụng
che dấu địa chỉ IP - Công nghệ giám sát an ninh
mạng NMS
- Sử dụng công nghệ PCAP
trong việc log thông tin lưu
chuyển lưu lượng mạng…
 Packet Filtering  Application identification
- Lọc gói theo địa chỉ - Phát hiện giao thức ứng
- Lọc gói theo cổng (dịch dụng và giải mã
vụ) - Giải mã giao thức ứng dụng
 Application Gateway - Dấu hiệu ứng dụng
Cơ chế hoạt
- Sử dụng cơ chế Proxy - Heuristics
động
 Circuit Level Gate  User identification
- Sử dụng cơ chế Nat để  Content identification
che dấu địa chỉ IP - URL filtering
- File and data filtering
- Threat prevention
Phạm vi hoạt
Tầng network Tầng Application
động 23
 Quản lý và kiểm soát  Thực hiện các chức năng
luồng dữ liệu trên mạng của tường lửa truyền thống như
 Xác thực quyền truy cập lọc gói tin, kiểm tra giao thức
 Hoạt động như một thiết bị stateful (SPI), kết nối VPN,
trung gian NAT…
 Bảo vệ tài nguyên  Thích ứng và tiếp nhận linh
 Ghi nhận và báo cáo các sự hoạt các mối đe dọa hiện thời,
kiện tích hợp, hỗ trợ và nâng cấp
đường dẫn cho việc lưu các
thông tin dữ liệu và các kỹ
thuật mới để giải quyết các vấn
đề xâm nhập trong tương lai.
Chức năng cơ
 Application identification
bản
and filtering
 Directory integration
 Integrated rather than
merely colocated network
intrusion prevention
 Tích hợp SSL giải mã với
tốc độ multi-gigabit
 SSL and SSH inspection
 Có khả năng lọc sâu các gói
tin nhờ công nghệ in-line deep
packet inspection (DPI).
Malware filtering
 Sortware firewall  Tường lửa thế hệ mới của
SunScreen firewall, IPF, HP
Microsoft ISA server, Check  Tường lửa thế hệ mới
Point NG, Linux’s IPTables … Check Point của Checkpoint
 Appliance firewall Software Technologies
Các sản phẩm
Cisco PIX, NetScreen  Palo Alto Firewall của Palo
firewall, SonicWall Alto
Appliaces, WatchGuard  Một số tường lửa mềm:
Fireboxes, Nokia firewall… Suricata, Iptable, Snort…
 Integrated firewalls

24
CHƯƠNG 2: TƯỜNG LỬA THẾ HỆ MỚI VỀ SURICATA

2.1. Giới thiệu về Suricata


Suricata là một hệ thống phát hiệ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
beta đã được phát hành vào tháng 12 năm 2009, bản chuẩn đầu tiên phát hành tiếp
theo vào tháng 7 năm 2010[11][12].
Công cụ này được phát triển không nhằm cạnh tranh hay thay thế các công tụ
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 an
toàn an ninh mạng.
Suricata là công cụ IDS/IPS dựa trên luật để theo dõi lưu lượng mạng và
cung cấp cảnh báo đến người quản trị hệ thống khi có sự kiện đáng ngờ xảy ra. Nó
được thiết kế để tương thích với các thành phần an ninh mạng hiện có. Bản phát
hành đầu tiên chạy trên nền tảng linux 2.6 có hỗ trợ nội tuyến (inline) và cấu hình
giám sát lưu lượng thụ động có khả năng xử lý lưu lượng lên đến gigabit. Suricata
là công cụ IDS/IPS miễn phí trong khi nó vẫn cung cấp những lựa chọn khả năng
mở rộng cho các kiến trúc an ninh mạng phức tạp nhất.
Là một công cụ đa luồng, suricata 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à card mạng giới hạn), công cụ 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.
Tại sao Suricata được nhiều người sử dụng:
 Dễ dàng cấu hình: Suricata làm việc như thế nào, tập tin cấu hình ở đâu,
các luật như thế nào người quản trị đều có thể biết và cấu hình theo ý mình được.
Kể cả việc tạo ra các luật mới.
 Suricata là phần mềm mã nguồn mở: Sricata được phát hành dưới giấy
phép GNU/GPL điều này có nghĩa là bất cứ ai cũng có thể sử dụng Suricata một
cách miễn phí dù đó là doanh nghiệp hay người dùng cá nhân. Ngoài ra vì là phần

25
mềm mã nguồn mở nên Suricata có một cộng đồng người sử dụng lớn, sẵn sàng hỗ
trợ nếu có bất cứ thắc mắc gì.
 Chạy trên nhiều nền tảng khác nhau: Chạy trên các hệ điều hành nguồn
mở như Linux, CentOS. Debian, Fedora, FreeBSD, Window, Mac OS X (10.5.8
and 10.6.8)…
 Luật của Suricata thường xuyên được cập nhật: Các luật của Suricata
thường xuyên được bổ sung và cập nhật các hình thức xâm nhập mới. Người sử
dụng có thể dễ dàng tải về từ https://rules.emergingthreats.net/open/suricata/
2.2. Cấu trúc của Suricata
Suricata được phát triển dựa trên Snort nên nó vẫn giữ nguyên kiến trúc bên
trong của Snort. Kiến trúc của nó có nhiều thành phần, với mỗi thành phần có một
chức năng riêng.
Kiến trúc của Suricata gồm 4 phần cơ bản sau:
 The Sniffer (Packet Decoder) .
 The Preprocessors.
 The Detection Engine.
 The Output: gồm hai modules
- Modul Alert/ Logging
- Modul kết xuất thông tin

Hình 2.1: Kiến trúc của 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 nào di chuyển qua nó.
- Các gói tin sau khi bị bắt được đưa và module Sniffer, tại đây các gói tin sẽ
được giải mã
- Tiếp theo gói tin sẽ được đưa vào module Preprocessor, tại đây gói tin sẽ
được phân tích một cách chi tiết và đầy đủ theo các cách khác nhau
- Sau khi phân tích xong các gói tin được đưa vào module Detection. Tại đây,

26
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 module Alert/ Logging để xử lý.
- Khi các cảnh báo được xác định module kết xuất thông tin sẽ thực hiện việc
đưa cảnh báo ra theo đúng định dạng mong muốn.
Preprocessors, detection engine và alert system đều là các plug-ins. Điều
này giúp cho việc chỉnh sửa hệ thống theo mong muốn của người quản trị một
cách dễ dàng.
2.2.1. Packet Sniffer (Decoder)
Packet Sniffer là một thiết bị phần cứng hoặc phần mềm được đặt vào trong
mạng. Chức năng của nó tương tự như việc nghe lén trên điện thoại di động,
nhưng thay vì hoạt động trên mạng điện thoại nó nghe lén trên mạng dữ liệu. Bởi
vì trong mô hình mạng có nhiều giao thức cao cấp như TCP, UDP, ICMP... nên
công việc của packet sniffer là nó phải phân tích các giao thức đó thành thông tin
mà con người có thể đọc và hiểu được. Packet Sniffer có thể được sử dụng với các
mục đích như:
 Phân tích mạng và troubleshooting.
 Performance network and bechmarking.
 Nghe lén mật khẩu clear-text và những dữ liệu khác.
Mã hóa lưu lượng mạng có thể tránh được việc sniffer các gói tin. Tùy vào
mục đích mà packet sniffer có thể sử dụng cho mục đích tốt hoặc xấu.

Hình 2.2: Các gói tin đi vào Sniffer


Khi Suricata đã nhận các gói tin từ quá trình sniffer nó sẽ đi vào quá trình
giải mã. Chính xác thì nơi mà gói tin đi vào bộ giải mã phụ thuộc vào lớp liên kết
mà trước đó đọc được. Snort hỗ trợ một số lớp liên kết từ pcap: Ethernet, 802.11,
Token ring, FDDI, Cisco HDLC, SLIP, PPP và OpenBSD’s PF. Ở trên lớp liên
kết Suricata hỗ trợ giải mã các giao thức khác nhau, bao gồm: IP, ICMP, TCP,
UDP (chi tiết trong mã nguồn src/decode.c)
Bất kể là lớp liên kết nào đang đ ược sử dụng, tất cả các bộ giải mã sẽ đều
làm việc theo một kiểu chung. Đối với trường hợp các lớp cụ thể , con trỏ trong
cấu trúc của gói tin sẽ được thiết lập trỏ tới một phần khác của gói tin. Dựa vào các

27
thông tin đã giải mã được, nó sẽ gọi các lớp cao hơn và giải mã cho đến khi không
còn bộ giải mã nào nữa.
2.2.2. Preprocessors
Preprocessors là plug-in cho phép phân tích cú pháp dữ liệu theo những cách
khác nhau. Nếu chạy Suricata mà không có bất cứ cấu hình nào về preprocessors
trong tập tin cấu hình sẽ chỉ thấy từng gói dữ liệu riêng rẽ trên mạng. Điều này có
thể làm IDS bỏ qua một số cuộc tấn công, vì nhiều loại hình tấn công hiện đại cố
tình phân mảnh dữ liệu hoặc có tình đặt phần độc hại lên một gói tin và phần còn
lại lên gói tin khác (kỹ thuật lẩn trốn).
Dữ liệu sẽ được đưa vào Preprocessors sau khi đi qua bộ giải mã gói tin
(packet decoder). Suricata cung cấp một loạt các Preprocessors ví dụ như: Frag3
(một module chống phân mảnh gói tin IP), sfPortscan (module được thiết kế
chống lại các cuộc trinh sát, như scan port, xác định dịch vụ, scan OS), Stream5
(module tái gộp các gói tin ở tầng TCP).

Hình 2.3: Quá trình xử lí ở Preprocessors


2.2.3. Detection Engine
Đầu vào là các gói tin đã được sắp xếp ở quá trình preprocessors. Detection
engine là một phần của hệ thống phát hiện xâm nhập dựa trên dấu hiệu. Detection
engine sẽ lấy dữ liệu từ preprocessors và kiểm tra chúng thông qua các luật. Nếu
các luật đó khớp với dữ liệu trong gói tin, nó sẽ được gửi tới hệ thống cảnh báo,
nếu không nó sẽ bị bỏ qua như hình phía dưới .
Các luật có thể được chia thành 2 phần:
28
 Phần Hearder: gồm các hành động (log/ alert), loại giao thức (TCP,
UDP, ICMP...), địa chỉ IP nguồn, địa chỉ IP đích và port.
 Phần Options: là phần nội dung của gói tin được tạo ra để phù hợp với luật.
Luật là phần quan trọng mà bất cứ ai tìm hiểu về Suricata cần phải nắm rõ.
Các luật trong Sricata có một cú pháp cụ thể. Cú pháp này có thể liên quan đến
giao thức, nội dung, chiều dài, hearder và một vài thông số khác. Một khi hiể u
được cấu trúc các luật trong Suricata, người quản trị có thể dễ dàng tinh chỉnh và
tối ưu hóa chức năng phát hiện xâm nhập của Suricata. Từ đó có thể định nghĩa
các luật phù hợp với từng môi trường và hệ thống mạng.

Hình 2.4: Gói tin được xử lý ở Detection Engine bằng các luật

2.2.4. Thành phần cảnh báo/logging


Cuối cùng sau khi các luật đã phù hợp với dữ liệu, chúng sẽ được chuyển tới
thành phần cảnh báo và ghi lại (alert and loggin component). Cơ chế log sẽ lưu trữ
các gói tin đã kích hoạt, các luật còn cơ chế cảnh báo sẽ thông báo các phân tích
bị thất bại.
Giống như Preprocessors, chức năng này được cấu hình trong tập tin suricata.yaml,
có thể chỉ định cảnh báo và ghi lại trong tập tin cấu hình nếu muốn kích hoạt.
Dữ liệu là giá trị cảnh báo, nhưng có thể chọn nhiều cách để gửi các cảnh báo này
cũng như chỉ định nơi ghi lại các gói tin. Có thể gửi cảnh báo thông qua SMB (Server
29
Message Block) pop- up tới máy trạm Windows, ghi chúng dưới dạng logfile, gửi qua
mạng thông qua UNIX socket hoặc thông qua giao thức SNMP.
Cảnh báo cũng có thể lưu trữ dưới dạng cơ sở dữ liệu SQL như MySQL hoặc
PostgerSQL. Thậm chí một vài hệ thống của các hãng thứ ba có thể gửi cảnh báo
thông qua SMS tới điện thoại di động.
Có rất nhiều các add-on giúp người quản trị nhận các cảnh báo cũng như
phân tích các dữ liệu một cách trực quan.
 Oinkmaster: là một Pertscript giúp cập nhật các luật của Suricata và
comment nếu không muốn sau mỗi lần cập nhật.

Hình 2.5: Thành phần cảnh báo và logging


2.3. Chức năng của Suricata
2.3.1. HTTP layer support
 Lắng nghe DNS packet
 Register the HTTP protocol and state handling functions to APP layer of
the engine
 Register the Unit tests for the HTTP protocol
 Print the stats of the HTTP requests (In các số liệu thống kê của các yêu
cầu HTTP)
30
 Clears the HTTP server configuration memory used by HTP library (Xóa
bộ nhớ cấu hình máy chủ HTTP được sử dụng bởi thư viện HTTP)
 Function callback to append chunks for Requests (chức năng gọi lại để
thêm các đoạn dữ liệu cho các yêu cầu)
 Print the information and chunks of a Body (In thông tin các đoạn dữ liệu
của một khối)
 Free the information held in the request body (cố định (giữ) các thông tin
tự do trong các khối yêu cầu)
 Function to frees the HTTP state memory and also frees the HTTP
connection parser memory which was used by the HTP library (giải phóng bộ nhớ
HTTP và giải phóng các kết nối phân tích cú pháp HTTP được sử dụng bởi các thư
viện HTTP)
 Sets a flag that informs the HTP app layer that some module in the engine
needs the http request body data (Thiết lập cờ thông báo cho lớp ứng dụng HTTP
là một số module trong cơ cấu cần khối dữ liệu http request)
 Sets a flag that informs the HTP app layer that some module in the engine
needs the http request file ( Thiết lập cờ thông báo cho lớp ứng dụng HTTP rằng
một số module trong cơ cấu cần tập tin http request)
2.3.2. Packet decoding
 Return a malloced packet (trả về gói tin malloced)
 Finalize decoding of a packet (Hoàn thành giải mã gói tin)
 Get a malloced packet (Nhận gói tin malloced)
 Return a packet to where it was allocated (trả về gói tin tới nơi nó được
phân bổ)
 Get a packet (We try to get a packet from the packetpool first, but if that
is empty we alloc a packet that is free'd again after processing)
 Copy data to Packet payload at given offset (Copy dữ liệu tới các khoảng
trống đã xác định của gói dữ liệu)
 Copy data to Packet payload and set packet length (Sao chép dữ liệu tới
gói dữ liệu và thiết lập chiều dài của gói)
 Set up a pseudo packet (tunnel) (Thiết lập gói tin giả)
 Setup a pseudo packet (reassembled frags) -> mức độ đệ quy ít hơn so với
(tunnel)

31
 Inform defrag "parent" that a pseudo packet is now assosiated to it
 Debug print function for printing addresses (gỡ lỗi in cho các địa chỉ in ấn)
 Alloc and setup DecodeThreadVars
 Set data for Packet and set length when zero copy is used (Đặt dữ liệu cho
gói dữ liệu và thiết lập chiều dài cho gói khi không sao chép)
2.3.3. State support
 Frees a DetectEngineState object.
 Check if we need to inspect this state (Kiểm tra nếu cần kiểm tra trạng thái)
 Match app layer sig list against app state and store relevant match
information
 Continue DeState detection of the signatures stored in the state
 Update flow's inspection id's (Kiểm tra cập nhật dòng chảy các id)
 Reset a DetectEngineState state
 Reset de state for active tx' To be used on detect engine reload
 Get string for match enum
2.3.4. Thresholding (ngưỡng cảnh báo)
Tính năng này được sử dụng để giảm số lượng cảnh báo sai quy định. Nó có
thể được điều chỉnh để giảm đáng kể số lượng cảnh báo sai, và cũng có thể được
sử dụng để sinh ra các quy tắc mới. Các lệnh cảnh báo giới hạn số lần một sự kiện
cụ thể trong một khoảng thời gian xác định.
 Return next DetectThresholdData for signature
 Remove timeout threshold hash elements
 Make the threshold logic for signatures
 Init threshold context hash tables (Ngưỡng bối cảnh dữ liệu hỏng khởi tạo)
 Destroy threshold context hash tables (ngưỡng huỷ bỏ bối cảnh dữ liệu hỏng)
 This function will free all the entries of a list DetectTagDataEntry (giải

32
phóng tất cả các lối vào của list DetectTagDataEntry)
2.4. Luật trong Suricata
2.4.1. Giới thiệu
“Luật” trong Suricata ta có thể hiểu một cách đơn giản nó giống như các
quy tắc và luật lệ trong thế giới thực. Nghĩa là nó sẽ có phần mô tả một trạng
thái và hành động gì sẽ xảy ra khi trạng thái đó đúng. Một trong những điểm
đáng giá nhất của Suricata đó là khả năng cho phép người sử dụng có thể tự
viết các luật của riêng mình hoặc tùy biến các luật có sẵn cho phù hợp với hệ
thống mạng của mình. Ngoài một cơ sở dữ liệu lớn mà người sử dụng có thể
download từ trang chủ của Suricata, người quản trị có thể tự phát triển các
luật cho hệ thống của mình. Thay vì phải phụ thuộc vào nhà cung cấp, một cơ
quan bên ngoài, hoặc phải cập nhật khi có một cuộc tấn công mới hay một
phương pháp khai thác lỗ hổng mới được phát hiện. Người quản trị có thể
viết riêng một luật dành cho hệ thống của mình khi nhìn thấy các lưu lượng
mạng bất thường và so sánh với bộ luật được cộng đồng phát triển. Ưu điểm
của việc tự viết các luật là có thể tùy biến và cập nhật một cách cực kỳ nhanh
chóng khi hệ thống mạng có sự bất thường.
Để biết cách viết một luật từ các dữ liệu của hệ thống ta cần phải hiểu cấu
trúc của luật trong Suricata như thế nào. Một luật trong Suricata được chia thành
hai phần đó là phần rule header và rule options. Phần rule header bao gồm: rule
action, protocol, địa chỉ ip nguồn, địa chỉ ip đích, subnetmask, port nguồn, port
đích. Phần options bao gồm các thông điệp cảnh báo, thông tin các phần của gói
tin sẽ được kiểm tra để xác định xem hành động nào sẽ được áp dụng.

33
2.4.2. Rule Header

Hình 2.6: Cấu trúc luật trong Suricata

2.4.2.1. Rule Action


Phần Header sẽ chứa các thông tin xác định ai, ở đâu, cái gì của một gói tin,
cũng như phải làm gì nếu tất cả các thuộc tính trong luật được hiện lên. Mục đầu
tiên trong một luật đó chính là phần rule action, rule action sẽ nói cho Suricata
biết phải làm gì khi thấy các gói tin phù hợp với các luật đã được quy định sẵn. Có
4 hành động mặc định trong Suricata đó là: pass (cho qua), drop (chặn gói tin),
reject, alert (cảnh báo).
 Pass: nếu signature được so sánh trùng khớp và chỉ ra là pass thì
Suricata sẽ thực hiện dừng quét gói tin và bỏ qua tất cả các luật phía
sau đối với gói tin này.
 Drop: nếu chương trình tìm thấy một signature hợp lệ và nó chỉ ra là
drop thì gói tin đó sẽ bị hủy bỏ và dừng truyền ngay lập tức, khi đó gói
tin không thể đến được nơi nhận.
 Reject: là hành động bỏ qua gói tin, bỏ qua ở cả bên nhận và bên gửi.
Suricata sẽ tạo ra một cảnh báo với gói tin này.
 Alert: nếu signature được so sánh là hợp lệ và có chứa một alert thì
gói tin đó sẽ được xử lý giống như với một gói tin không hợp lệ.
Suricata sẽ tạo ra một cảnh báo.


34
2.4.2.2. Protocol
Trường tiếp theo trong luật đó là protocol. Các giao thức mà Suricata hiện
đang phân tích các hành vi bất thường đó là TLS, SSH, SMTP (tải thư điện tử qua
mạng internet), IMAP (đặt sự kiểm soát email trên mail server), MSN, SMB (chia
sẻ file), TCP, UDP, ICMP và IP, DNS.
2.4.2.3. IP Address
Mục tiếp theo của phần header đó là địa chỉ IP. Các địa chỉ này dùng để
kiểm tra nơi đi và nơi đến của một gói tin. Địa chỉ ip đó có thể là địa chỉ của một
máy đơn hoặc cũng có thể là địa chỉ của một lớp mạng. Từ khóa “any” được sử
dụng để định nghĩa một địa chỉ bất kỳ.
Một địa chỉ ip sẽ được viết dưới dạng ip_address/netmask . Điều này có
nghĩa là nếu netmask là /24 thì lớp mạng đó là lớp mạng C, /16 là lớp mạng B hoặc
/32 là chỉ một máy đơn. Ví dụ: địa c hỉ 192.168.1.0/24 có nghĩa là một dải máy có
địa chỉ IP từ 192.168.1.1-192.168.1.255.
Trong hai địa chỉ IP trong một luật Suricata thì sẽ có một địa chỉ IP nguồn và
một địa chỉ IP đích. Việc xác định đâu là địa chỉ nguồn, đâu là địa chỉ đích phụ
thuộc vào “→”.
Ngoài ra toán tử phủ định có thể được áp dụng cho việc định địa chỉ IP. Có
nghĩa là khi sử dụng toán tử này thì Suricata sẽ bỏ qua việc kiểm tra địa chỉ của gói
tin đó. Toán tử đó là “!”. Ngoài ra ta có thể định nghĩa một danh sách các địa chỉ
IP bằng cách viết liên tiếp chúng cách nhau bởi một dấu “,”.
Ví dụ:
Alert TCP any any → ![192.168.1.0/24, 172.16.0.0/16] 80 (msg: “Access”)
2.4.2.4. Port
Port có thể được định nghĩa bằng nhiều cách. Với từ khóa “any” giống như
địa chỉ IP để chỉ có thể sử dụng bất kỳ port nào. Gán một port cố định, ví dụ như
gán kiểm tra ở port 80 http hoặc port 22 ssh. Ngoài ra ta cũng có thể sử dụng toán
tử phủ định để bỏ qua một port nào đó hoặc liệt kê một dải các port.
Ví dụ:
Alert UDP any any → 192.168.1.0/24 1:1024 - port bất kỳ tới dãy port từ
1 - 1024.
Alert UDP any any → 192.168.1.0/24 :6000 - port bất kỳ tới dãy port
nhỏ hơn 6000.
Alert UDP any any → 192.168.1.0/24 !6000:6010 - port bất kỳ tới bất kỳ port
nào, bỏ qua dãy port từ 6000 – 6010.

35
2.4.2.5. Điều hướng
Toán tử hướng “→” chỉ ra đâu là hướng nguồn, đâu là hướng đích. Phần địa
chỉ IP và port ở phía bên trái của toán tử được coi như là địa chỉ nguồn và port
nguồn, phần bên phải được coi như địa chỉ đích và port đích. Ngoài ra còn có toán
tử “<>” Suricata sẽ xem cặp địa chỉ/port nguồn và đích là như nhau. Nghĩa là nó sẽ
ghi/phân tích ở cả hai phía của cuộc hội thoại.
Ví dụ:
Alert TCP !192.168.1.0/24 any <> 192.168.1.0/24 23
2.4.3. Rule Option
Rule options chính là trung tâm của việc phát hiện xâm nhập. Nội dung chứa các
dấu hiệu để xác định một cuộc xâm nhập. Nó nằm ngay sau phần Rule Header và được
bọc bởi dấu ngoặc đơn “()”. Tất cả các rule options sẽ được phân cách nhau bởi dấu
chấm phẩy “;”, phần đối số sẽ được tách ra bởi dấy hai chấm “:”.
Có 4 loại rule options chính bao gồm:
- General: Tùy chọn này cung cấp thông tin về luật đó nhưng không có bất
cứ ảnh hưởng nào trong quá trình phát hiện.
- Payload: Tùy chọn liên quan đến phần tải trong một gói tin.
- Non-payload: Bao gồm các tùy chọn không liên quan đến phần tải của gói
tin (header).
- Post-detection: Các tùy chọn này sẽ gây ra những quy tắc cụ thể sau khi
một luật đã được kích hoạt.
2.4.3.1. General
 Msg
Msg (Message): được dùng để cho biết thêm thông tin về từng signature
và các cảnh báo. Phần đầu tiên sẽ cho biết tên tập tin của signature và phần này
quy ước là phải viết bằng chữ in hoa. Định dạng của msg như sau:
msg: “..........”;

36
 Sid
Sid (signature id): cho ta biết định danh riêng của mỗi signature. Định danh
này được bắt đầu với số. Định dạng của sid như sau:
sid:123;
 Rev
Rev (revision): mỗi sid thường đi kèm với một rev. Rev đại diện cho các
phiên bản của signature. Mỗi khi signature được sửa đổi thì số rev sẽ được tăng lên
bởi người tạo ra. Định dạng của rev như sau:
rev:123;
 Reference
Reference: cung cấp cho ta địa chỉ đến được những nơi chứa các thông tin
đầy đủ về signature. Các tham chiếu có thể xuất hiện nhiều lần trong một
signature. Ví dụ về một tham chiếu như sau:
reference: url, www.info.nl

37
Hình 2.7: Bảng các tuỳ chọn của Reference
 Classtype
Classtype: cung cấp thông tin về việc phân loại các lớp quy tắc và cảnh
báo. Mỗi lớp bao gồm một tên ngắn gọn, một tên đầy đủ và mức độ ưu tiên.

38
Ví dụ:
Config classification: web-application-attack,Web Application Attack,1
config classification: not-suspicious,Not Suspicious Traffic,3

Hình 2.7: Thông tin phân loại lớp quy tắc


 Priority
Priority: chỉ ra mức độ ưu tiên của mỗi signature. Các giá trị ưu tiên dao
động từ 1 đến 255, nhưng thường sử dụng các giá trị từ 1 -> 4. Mức ưu tiên cao
nhất là 1. Những signature có mức ưu tiên cao hơn sẽ được kiểm tra trước. Định
dạng chỉ mức ưu tiên như sau:
priority:1;
 Metadata
Metadata: Suricata sẽ bỏ qua những gì viết sau metadata. Định dạng của
metadata như sau:
metadata:......;
2.4.3.2. Payload
 Content
Content: thể hiện nội dung chúng ta cần viết trong signature, nội dung này
được đặt giữa 2 dấu nháy kép. Nội dung là các byte dữ liệu, có 256 giá trị khác
nhau (0-255). Chúng có thể là các ký tự thường, ký tự hoa, các ký tự đặc biệt, hay
là các mã hexa tương ứng với các ký tự và các mã hexa này phải được đặt giữa 2
dấu gạch dọc. Định dạng của một nội dung như sau:
content: ”............”;
Một số ký tự đặc biệt, khi cho trong nội dung chỉ có thể sử dụng các mã hexa
39
để biểu diễn nó.
“ |22|
; |3B|
: |3A|
| |7C|
 Nocase
Nocase: được dùng để chỉnh sửa nội dung thành các chữ thường, không tạo
ra sự khác biệt giữa chữ hoa và chữ thường. Nocase cần được đặt sau nội
dung cần chỉnh sửa.
Ví dụ:
content: “abC”; nocase;
 Depth
Depth: sau từ khóa depth là một số, chỉ ra bao nhiêu byte từ đầu một
payload cần được kiểm tra. Depth cần được đặt sau một nội dung. Ví dụ: ta có một
payload : abCdefghij. Ta thực hiện kiểm tra 3 byte đầu của payload.
content: “abC”; depth:3;
 Offset
Offset: chỉ độ lệch byte trong tải trọng sẽ được kiểm tra. Ví dụ: độ lệch là 3
thì sẽ kiểm tra từ byte thứ 4 trong tải trọng.
content: “def”; offset:3;
Ví dụ:
Alert TCP 192.168.1.0/24 any -> any any (content: \"HTTP"; offset: 4;
depth: 40; msg: "HTTP matched";)

40
 Distance
Distance: xác định khoảng cách giữa các nội dung cần kiểm tra trong
payload. Khoảng cách này có thể là một số âm.
Ví dụ:
content: “abC”; content: “efg”; distance:1;
 Within
Within: được dùng cùng với distance, để chỉ độ rộng của các byte cần kiểm
tra sau một nội dung với khoảng cách cho trước đó.
Ví dụ:
content:"GET"; depth:3 content:"download"; distance:10 \within:9;
Luật có nghĩa là tìm “GET” trong 3 byte đầu tiên của trường dữ liệu, di
chuyển thêm 10 byte bắt đ ầu từ “GET” và tìm khớp “download”. Tuy nhiên,
“download” phải xuất hiện trong 9 byte tiếp theo.
 Dsize
Dsize: được dùng để tìm một payload có độ dài bất kỳ.
dsize:min<>max;
 Rpc
Rpc (Remote Procedure Call): là một ứng dụng cho phép một chương trình
máy tính thực hiện một thủ tục nào đó trên một máy tính khác, thường được sử
dụng cho quá trình liên lạc. Định dạng của rpc như sau:
rpc:<application number>, [<version number>|*], [<procedure
number>|*]>;
 Replace
Replace được dùng để thay đổi nội dung của payload, điều chỉnh lưu lượng
mạng. Việc sửa đổi nội dung của payload chỉ có thể được thực hiện đối với gói dữ
liệu cá nhân. Sau khi thực hiện thay đổi nội dung xong thì Suricata sẽ thực hiện
tính toán lại trường checksum.

41
42
2.4.3.3. Non-Payload
a. IP
 ttl
Được sử dụng để kiểm tra về thời gian sống, tồn tại tên mạng của một địa
chỉ IP cụ thể trong phần đầu của mỗi gói tin. Giá trị time-to-live (thời gian sống),
xác định thời gian tối đa mà mỗi gói tin có thể được lưu thông trên hệ thống mạng.
Nếu giá trị này về 0 thì gói tin sẽ bị hủy bỏ. Thời gian sống được xác định dựa trên
số hop, khi đi qua mỗi hop/router thì thời gian sống sẽ bị trừ đi 1. Cơ chế này
nhằm hạn chế việc gói tin lưu thông trên mạng vô thời hạn. Định dạng của một ttl
như sau:
ttl:<number>;
 ipopts
Chúng ta có thể xem và tùy chỉnh các tùy chọn cho việc thiết lập các địa
chỉ IP. Việc thiết lập các tùy chọn cần được thực hiện khi bắt đầu một quy tắc. Một
số tùy chọn có thể sử dụng:

43
Hình 2.8: Một số tuỳ chọn của Ipopts

44
Định dạng của một ipopts như sau:
ipopts: <name>;
 sameip
Mỗi gói tin sẽ có một địa chỉ IP nguồn và đích. Chúng ta có thể sử dụng
sameip để kiểm tra xem địa chỉ IP nguồn và đích có trùng nhau hay không. Định
dạng của sameip như sau:
sameip;
 Ip_proto
Được dùng để giúp ta lựa chọn giao thức. Ta có thể chọn theo tên hoặc số
tương ứng với từng giao thức. Có một số giao thức phổ biến sau:
1 ICMP Internet Control Message
6 TCP Transmission Control Protocol
17 UDP User Datagram
47 GRE General Routing Encapsulation
50 ESP Encap Security Payload for IPv6
51 AH Authentication Header for Ipv6
58 IPv6-ICMP ICMP for Ipv6
Định dạng của ip_proto như sau:
ip_proto:<number/name>;
 Id
Được sử dụng để định danh cho các phân mảnh của gói tin được truyền đi.
Khi gói tin truyền đi sẽ được phân mảnh, và các mảnh của một gói tin sẽ có ID
giống nhau. Việc này giúp ích cho việc ghép lại gói tin một cách dễ dàng. Định
dạng như sau:
id:<number>;
 Geoip

45
Cho phép xác định địa chỉ nguồn, đích để gói tin lưu thông trên mạng.
 Fragbits
Được dùng để kiểm tra các phân mảnh của gói tin. Nó bao gồm các cơ chế
sau:
M - More Fragments
D - Do not Fragment
R - Reserved Bit
+ match on the specified bits, plus any others
* match if any of the specified bits are set
! match if the specified bits are not set
Định dạng của một Fragbits như sau:
fragbits:[*+!]<[MDR]>;
 Fragoffset
Kiểm tra sự phù hợp trên các giá trị thập phân của từng mảnh gói tin trên
trường offset. Nếu muốn kiểm tra phân mảnh đầu tiên của gói tin, chúng ta cần
kết hợp fragoffset 0 với các tùy chọn fragment khác. Các tùy chọn fragment
như sau:
< match if the value is smaller than the specified value
> match if the value is greater than the specified value
! match if the specified value is not present
Định dạng của fragoffset:
fragoffset:[!|<|>]<number>;
b. TCP
 Sed
Là một số ngẫu nhiên được tạo ra ở cả bên nhận và bên gửi gói tin để
kiểm tra số thứ tự của các gói tin đến và đi. Máy khách và máy chủ sẽ tự tạo ra
một số seq riêng của mình. Khi một gói tin được truyền thì số seq này sẽ tăng
lên 1. Seq giúp chúng ta theo dõi được những gì diễn ra khi một dòng dữ liệu

46
được truyền đi.
 Ack
Được sử dụng để kiểm tra xem gói tin đã được nhận bởi nơi nhận hay chưa
trong giao thức kết nối TCP. Số thứ tự của ACK sẽ tăng lên tương ứng với số byte
dữ liệu đã được nhận thành công.
 Window
Được sử dụng để kiểm tra kích thước của cửa sổ TCP. Kích thước cửa sổ
TCP là một cơ chế dùng để kiểm soát các dòng dữ liệu. Cửa sổ được thiết lập bởi
người nhận, nó chỉ ra số lượng byte có thể nhận để tránh tình trạng bên nhận bị
tràn dữ liệu. Giá trị kích thước của cửa sổ có thể chạy từ 2 đến 65.535 byte.
c. ICMP
 Itype
Cung cấp cho việc xác định các loại ICMP. Các thông điệp khác nhau sẽ
được phân biệt bởi các tên khác nhau hay các giá trị khác nhau.
Định dạng của itype như sau:
itype:min<>max;
itype:[<|>]<number>;

47
Hình 2.9: Bảng Type của ICMP Header
 Icode
Cho phép xác định mã của từng ICMP để làm rõ hơn cho từng gói tin ICMP.
Định dạng của icode như sau:
icode:min<>max;
icode:[<|>]<number>;

 Icmp_id
Mỗi gói tin ICMP có một giá trị ID khi chúng được gửi. Tại thời điểm đó,
người nhận sẽ trả lại tin nhắn với cùng một giá trị ID để người gửi sẽ nhận ra và
kết nối nó đúng với yêu cầu ICMP đã gửi trước đó. Định dạng của một icmp_id

48
như sau:
icmp_id:<number>;
 Icmp_seq
Được sử dụng để kiểm tra số thứ tự của ICMP. Định dạng của icmp_seq như
sau:
icmp_seq:<number>;
d. HTTP
 http_method
Chỉ ra các phương thức được áp dụng với các request http. Các phương
thức http: GET, POST, PUT, HEAD, DELETE, TRACE, OPTIONS, CONNECT
và PATCH.
 http_uri và http_raw_uri
Chỉ ra đường dẫn tới nơi chứa nội dung yêu cầu.
 http_header
Chỉ ra phương thức sử dụng, địa chỉ cần truy cập tới và tình trạng kết nối.
 http_cookie.
 http_user_agent
Là một phần của http_header, chỉ ra thông tin về trình duyệt của người
dùng.
 http_client_body
Chỉ ra các yêu cầu của máy trạm.
 http_stat_code
Chỉ ra mã trạng thái của server mà máy trạm yêu cầu kết nối tới.
 http_stat_msg
Các dòng tin thông báo về tình trạng máy chủ, hay tình trạng về việc đáp
ứng các yêu cầu kết nối của máy trạm.
 http_server_body
Chỉ ra nội dung đáp trả các yêu cầu từ máy trạm của máy chủ.
 File_data
Chỉ ra nội dung, đường dẫn tới file chứa dữ liệu được yêu cầu.
e. Flow
 Flowbits
Gồm 2 phần, phần đầu mô tả các hành động được thực hiện, phần thứ 2 là tên
của flowbit. Các hành động của flowbit:
flowbits: set, name Được dùng để thiết lập các điều kiện/tên cho
các flow.
flowbits: isset, name Có thể được sử dụng trong các luật để đảm

49
bảo rằng sẽ tạo ra một cảnh báo khi các luật là phù hợp và các điều kiện
sẽ được thiết lập trong flow.
flowbits: toggle, name Dùng để đảo ngược các thiết lập hiện tại.
flowbits: unset, name Được sử dụng để bỏ các thiết lập về điều
kiện trong luật.
flowbits: isnotset, name Được sử dụng để đảm bảo rằng sẽ tạo ra
một cảnh báo khi các luật là phù hợp và các điều kiện sẽ không được thiết
lập trong flow.

 Flow
Có thể được sử dụng để kết nối các thư mục chứa các flow lại với nhau. Các
flow có thể được đi từ hoặc đến từ Client/Server và các flow này có thể ở trạng
thái được thiết lập hoặc không. Việc kết nối các flow có thể xảy ra các trường
hợp sau:
to_client established/ stateless
from_client established/ stateless
to_server established/ stateless
from_server established/ stateless

50
CHƯƠNG 3: DEMO PHÁT HIỆN VÀ CHẶN MỘT SỐ GIAO THỨC
TRÊN SURICATA

3.1. Một số mô hình mạng doanh nghiệp


a. Hệ thống máy tính kết nối với Internet

Hình 3.1: Hệ thống kết nối hoàn toàn với Internet


 Mô tả hệ thống
Các máy tính trong hệ thống được kết nối hoàn toàn với Internet
 Ưu điểm:
Các máy trong hệ thống có thể truy cập Internet để phục vụ cho công việc: tìm
tài liệu, tra cứu thông tin, truyền tải file, gửi nhận dữ liệu, download…từ bên ngoài.
 Nhược điểm:
Rất dễ bị xâm nhập và tấn công từ các hacker bên ngoài, dễ bị nhiễm các loại
mã độc và gặp các mối đe doạ nguy hiểm: nhiễm virus, đánh cắp dữ liệu, đột nhập hệ
thống chiếm quyền kiểm soát, đánh sập hệ thống …
Đối với các doanh nghiệp sử dụng mô hình mạng này sẽ rất nguy hiểm, dễ bị
tấn công và gặp phải các nguy cơ đe doạ an toàn an ninh của toàn hệ thống.

51
b. Hệ thống mạng ngắt kết nối hoàn toàn với Internet

Hình 3.2: Hệ thống mạng ngắt kết nối hoàn toàn với Internet

 Mô tả hệ thống
Các máy trong hệ thống hoàn toàn không có kết nối với Internet
 Ưu điểm:
Tránh được mọi sự tấn công và xâm nhập từ bên ngoài vào hệ thống
 Nhược điểm:
Các máy trong hệ thống không thể giao tiếp được bên ngoài qua Internet:
không thể chuyển giao dữ liệu, chia sẻ, nhận, gửi dữ liệu, thực hiện các thao tác
trên Internet…
Các doanh nghiệp sử dụng mô hình mạng này sẽ gặp rất nhiều hạn chế trong
việc cập nhật thông tin, làm việc thông qua Internet…

52
c. Hệ thống bán kết nối Internet

Hình 3.3: Hệ thống bán kết nối Internet

 Mô tả hệ thống
Mỗi người trong công ty sẽ sử dụng 2 máy tính:
- Một máy tính kết nối Internet: tra cứu thông tin, tìm tài liệu…không lưu dữ
liệu của công ty, không thực hiện các thao tác nghiệp vụ liên quan đến dữ liệu của
doanh nghiệp trên máy tính này.
- Một máy tính không kết nối Internet: lưu dữ liệu của doanh nghiệp, thao tác
nghiệp vụ.
 Ưu điểm:
Có thể tránh được tấn công xâm nhập từ bên ngoài vào hệ thống máy lưu trữ
dữ liệu nội bộ của doanh nghiệp (các máy không có kết nối Internet).
Có thể lấy được thông tin, dữ liệu cần thiết trên Internet.
 Nhược điểm:
Chị phí đầu tư lớn
Tốn nhiều thời gian trong công việc: hai máy không có liên hệ với nhau, khi
cần lấy dữ liệu từ một máy này sang máy kia phải thực hiện sao chép thủ công.
Các máy có kết nối với Internet có nhiều nguy cơ bị tấn công xâm nhập.
d. Hệ thống phân chia thành hai mạng

53
Hình 3.4: Hệ thống chia thành hai mạng
 Mô tả hệ thống
Hệ thống gồm hai khu vực mạng
- Khu vực mạng ngoài: có kết nối với Internet
- Khu vực mạng trong: không có kết nối với Internet
 Ưu điểm:
Sử dụng như một hệ thống máy tính kết nối hoàn toàn với Internet
Khi không có kết nối Internet từ bên ngoài, sử dụng hệ thống mạng trong, các
máy tính thuộc khu vực mạng trong vẫn truy cập được Internet.
Tránh được sự tấn công xâm nhập từ bên ngoài.
Ngặn chặn được việc truyền tải dữ liệu từ bên ngoài vào và ngược lại, quản
lý được toàn bộ hệ thống dữ liệu ở bên trong hệ thống.
3.2. Một số kỹ thuật tấn công
3.3. Cài đặt và cấu hình trên mạng LAN
3.3.1. Đặt vấn đề
Công ty cổ phần công nghệ và truyền thông Viegrid là một công ty hoạt động
trong lĩnh vực công nghệ thông tin, đi sâu nghiên cứu các vấn đề trong an toàn an
ninh mạng và các hệ thống chợ dịch. Từ khi thành lập vào năm 2007, công ty đã có
những công trình nghiên cứu, các sản phẩm có ý nghĩa lớn và ứng dụng thực tế cao
giúp giải quyết các vấn đề đã và đang là thách thức với ngành công nghệ thông tin.
Công ty đã có những sản phẩm như: website chợ dịch VTCAFES; mạng xã hội sách
54
VIEBOOKS, giải pháp V-AZUR trong việc bảo đảm an toàn an ninh mạng cho hệ
thống mạng trong các doanh nghiệp, nhà nước;…

Hình 3.5: Hệ thống mạng công ty hiện nay

Hiện nay, công ty đang sử dụng tường lửa mềm ISA để bảo vệ an toàn
an ninh mạng cho toàn hệ thống. Nhưng ISA firewall đang gặp haivấn đề khó
khăn lớn:
- Thứ nhất: từ năm 2013 Microsoft đã ngừng phát triển và hỗ trợ cho hệ
thống firewall này. Với sự phát triển bùng nổ của công nghệ thông tin, các cuộc
tấn công ngày càng nhiều và thủ đoạn tinh vi hơn làm cho ISA firewall gặp khó
khăn trong việc phát hiện các xâm nhập mới và có thể sẽ không phát hiện ra các
cuộc tấn công.
- Thứ hai là trong việc sử dụng firewall ISA: ISA chỉ hoạt động trong môi
trường Windows mà không hoạt động được trong các môi trường khác. Trong
tương lai, công ty đang hướng tới việc nghiên cứu, xây dựng và phát triển các sản
phẩm trên nhiều hệ điều hành khác nhau, vì vậy việc xây dựng một firewall hoạt
động đa môi trường là vấn đề tất yếu cần thực hiện.
Do đó, công ty Viegrid đang nghiên cứu, xây dựng và phát triển một firewall
có các tính năng của một NGF để có thể hoạt động hiệu quả trong việc bảo đảm an

55
toàn an ninh mạng cho toàn hệ thống máy tính của công ty.
Yêu cầu được đặt ra là bảo vệ hệ thống vận hành an toàn, dữ liệu từ mạng
LAN trong không đi được ra bên ngoài và ngược lại. Phát hiện, ngăn chặn các mối
nguy hiểm tấn công hệ thống mạng.
3.3.2. Giải pháp
Công ty đã thiết kế và xây dựng giải pháp bảo vệ an toàn an ninh mạng V-AZUR
 Ý tưởng
Sử dụng tường lửa Suricata thay thế tường lửa ISA đang sử dụng

Hình 3.5: Sơ đồ hệ thống mạng sử dụng Suricata

 Mô tả hệ thống
Hệ thống mạng trong công ty được chia làm 2 khu vực:
- Khu vực mạng ngoài: có kết nối Internet
- Khu vực mạng trong: không có kết nối Internet
 Chức năng của hệ thống
- Truy cập Internet an toàn: Cho phép người dùng đang làm việc ở mạng
trong, không có kết nối Internet, truy cập Internet và bảo vệ an ninh dữ liệu, chống
thất thoát dữ liệu, thông tin và ngăn chặn phơi nhiễm mã độc.
- Làm việc từ xa an toàn: Cho phép người dùng có kết nối Internet, truy cập
vào mạng nội bộ và làm việc từ xa, chống thất thoát dữ liệu và ngăn chặn phơi
nhiễm mã độc.
 Các thành phần của hệ thống
56
Bảng 3.1: Các thành phần của hệ thống mạng
STT Thành phần Tính chất Ghi chú
+ Có các chức năng quản lý hệ
thống V-AZUR
Master (M)
+ Cân bằng tải ứng dụng
IP ngoài:
+ Master có 2 card mạng (NIC)
1 192.168.1.2
Một card mạng là điểm kết nối đến
IP trong:
máy Eagle, Phoenix và các máy
10.10.1.1
trạm (Client)
Card còn lại kết nối với Internet
- Máy chủ ảo hóa các ứng dụng
truy cập Internet (trình duyệt
Firefox, Internet Explorer, Chrome)
AppServer và trình quản lý file Explorer
2 Eagle - Các module phần mềm bảo đảm
192.168.1.4 hiệu năng và an toàn dữ liệu cho
người sử dụng khi làm việc phía
AppServer
- Kết nối được với Internet
- Gửi thông tin xác thực người sử Client Eagle là phần
dụng lên các máy chủ Master và mềm được cài vào các
AppServer Eagle PC của người sử dụng
- Khởi động và duy trì các ứng
Máy trạm dụng phía AppServer Eagle.
Eagle - Tính năng gõ tiếng Việt (TELEX,
3
10.10.1.X (X> VNI) lên các ứng dụng phía
2) Appserver Eagle.
- Chia sẻ dữ liệu một chiều (lấy các
tệp đã được tải về từ Appserver
Eagle, clipboard một chiều) và các
tiện ích khác
- Máy chủ ảo hóa các ứng dụng
truy cập nội bộ, quản lý tệp tin
AppServer
- Các module phần mềm bảo đảm
4 Phoenix
hiệu năng và an toàn dữ liệu cho
192.168.1.2
người sử dụng khi làm việc phía
nội bộ
57
- Gửi thông tin xác thực VPN lên Client Phoenix được cài
máy chủ VPN, Master, Appserver đặt hoặc sử dụng bản
Phoenix portable được cho phép
Máy trạm
5 - Khởi động và duy trì các ứng trên máy của người sử
Phoenix
dụng phía AppServer Phoenix. dụng làm việc từ xa
- Tính năng gõ tiếng việt.
- Các tiện ích khác
Máy chủ V- Máy chủ mạng riêng ảo kết hợp với
6 VPN V-Phoenix cho phép người dùng
192.168.1.3 truy cập các ứng dụng

58
 Để phát huy tối đa hiệu quả của giải pháp V-AZUR, mạng nội bộ cần
được cấu hình phù hợp, bao gồm các điểm quan trọng sau đây:
- Mạng nội bộ được phân thành mạng trong và mạng ngoài, là các mạng nội
bộ ảo (VLAN). Trong đó, mạng trong không được phép có kết nối Internet.
- Mạng trong được ngăn cách với mạng ngoài bởi một tường lửa trong có
chức năng tương đương với ISA của Microsoft.
3.4. Cài đặt Suricata
 Cài đặt các phần mềm và HĐH hỗ trợ: Vmware, Linux.
Truy cập vào link:
https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Ubuntu_Installati
on để chọn phiên bản Suricata cần cài đặt.
Trước khi cài đặt phần mềm chúng ta tiến hành cài đặt các thành phần cần
thiết cho Suricata
sudo apt-get -y install libpcre3 libpcre3-dbg libpcre3-dev \
build-essential autoconf automake libtool libpcap-dev libnet1-dev \
libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev libcap-ng0 \
make libmagic-dev

Mặc định, Suricata làm việc như một IDS. Nếu bạn muốn cài đặt tính năng
IPS cho nó thực hiện cài đặt với lệnh:
sudo apt-get -y install libnetfilter-queue-dev libnetfilter-queue1
libnfnetlink-dev libnfnetlink0
Download và buil Suricata:
VER=3.0
wget "http://www.openinfosecfoundation.org/download/suricata-
$VER.tar.gz"
tar -xvzf "suricata-$VER.tar.gz"
cd "suricata-$VER"
Nếu muốn xây dựng Suricata với khả năng của một IPS, chạy dòng lệnh:
./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --
localstatedir=/var

Cài đặt và cấu hình cho Suricata:


./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make
sudo make install

59
sudo ldconfig

Tạo thư mục chứa thông tin về Suricta:

sudo mkdir /var/log/suricata

Tạo thư mục cài đặt:


sudo mkdir /etc/suricata

Copy các file classification.config, reference.config and suricata.yaml from


the base build/installation directory vào thư mục vừa tạo : /etc/suricata:

sudo cp classification.config /etc/suricata


sudo cp reference.config /etc/suricata
sudo cp suricata.yaml /etc/suricata

Để quản lý luật chúng ta cài Oinkmaster


sudo apt-get install oinkmaster

60
3.5. Cấu hình Suricata
Ta sẽ tiến hành cấu hình cho các tham biến trong tập rules của Suricata.
Đầu tiên, ta sẽ phải thiết lập lại các biến cho các khu vực (địa chỉ IP) khác
nhau và các biến cho các cổng. Mục đích của việc thiết lập biến này giúp cho việc
thay đổi dễ dàng khi cần thiết.
Bước 1: Mở file /etc/suricata/suricata.yaml – đây là file cấu hình của
Suricata.
Trong file này các tham biến đã được cấu hình sẵn, ta sẽ thay đổi các tham
biến đó sao cho phù hợp với máy tính của mình.
Bước 2: Nhấn tổ hợp phím Ctrl+F, nhập vào từ khoá vars và tìm kiếm. Khi
trả về kết quả sẽ xuất hiện các tham biến: HOME_NET, EXTERNAL_NET,
HTTP_SERVERS, SMTP_SERVERS, SQL_SERVERS…

Ta sẽ cấu hình như sau


 HOME_NET: điền vào dải ip-address đang sử dụng:

 EXTERNAL_NET: là các địa chỉ IP khác HOME_NET

 HTTP_SERVERS, SMTP_SERVERS, SQL_SERVERS, DNS_SERVERS


và TELNET_SERVERS: cài đặt mặc định là
"$HOME_NET"

61
 AIM_SERVERS: cài đặt mặc định là bất kỳ

 Thiết lập các cổng: HTTP_PORTS, SHELLCODE_PORTS,


ORACLE_PORTS, SSH_PORTS

 Thiết lập host-os-policy: điền vào địa chỉ máy tính đang sử dụng sau tên hệ
điều hành

3.6. Thiết lập các tập luật cơ bản và thực nghiệm


3.6.1. Tạo file test
Tạo một file test.rules để lưu các luật do người dùng thiết lập
Thực hiện dòng lệnh:
etc/suricata/rules/test.rules
Sau khi tạo file xong, mở file suricata.yaml, vào mục “file-rules”. Di chuyển
chuột đến cuối mục và thêm vào ”– test.rules” và lưu lại.

62
3.6.2. Ping
Ta sẽ thiết lập các luật cho việc phát hiện Ping và ngăn chặn quá trình Ping từ
máy khác gửi đến.
 Phát hiện Ping
 Thiết lập luật:
Alert ICMP any any -> $HOME_NET any (msg: "Ping detection"; sid:2;
rev:1;)
Luật này có nghĩa là: Suricata sẽ đưa ra cảnh báo khi có bất kỳ một máy nào
đó Ping đến máy chủ.
Sau khi thiết lập ta lưu luật lại, chạy dòng lệnh sau với quyền root áp file cấu
hình lên giao diện mạng enp0s3:
kun@kunmyt: suricata -c /etc/suricata/suricata.yaml -i enp0s3

Đợi đến khi trên màn hình xuất hiện thông báo:

Hình 3.6: Thông báo áp file cấu hình lên giao diện eth0 thành công
Tại máy có địa chỉ IP 192.168.1.25 ping đến máy chủ 192.168.1.43

63
Hình 3.7: Ping từ máy mạng External đến máy chủ
Trên máy chủ, ta chạy dòng lệnh sau để mở file fast.log. Trong file fast.log sẽ
ghi và lưu lại tất cả các traffic diễn ra trên máy.
Tail /var/log/suricata/fast.log
 Kết quả:

Hình 3.8: Kết quả phát hiện Ping trên Suricata

64
 Chặn Ping
 Thiết lập luật:
Drop ICMP any any -> $HOME_NET any (msg:”ET DROP ping from
any”; sid:3; rev:2;)
 Kết quả
Mở file fast.log xem kết quả thông báo:

Hình 3.9: Kết quả thông báo chặn Ping trên Suricata
 Phát hiện giao thức TCP, UDP
 Thiết lập luật:
Alert tcp any any -> 192.168.1.21 81 (msg: “Allow TCP”;)
 Kết quả:

Hình 3.10: Phát hiện giao thức TCP trên Suricata


65
Hình 3.11: Phát hiện giao thức UDP trên Suricata

Hình 3.12: Chặn giao thức TCP trên Suricata

66
Hình 3.13: Chặn giao thức UDP trên Suricata

67
CHƯƠNG 4: KHẢ NĂNG ỨNG DỤNG VÀ MỞ RỘNG CỦA CÁC KẾT
QUẢ NGHIÊN CỨU

4.1. Kết quả nghiên cứu


Trong phạm vi của bài luận văn em đã thực hiện và đưa ra được những
kết quả nhất định của quá trình nghiên cứu. Với việc tìm, đọc và nghiên cứu
các tài liệu về công nghệ tường lửa thế hệ mới em đã tổng hợp và phân tích các
chức năng của tường lửa thế hệ mới một cách chi tiết. Là một lĩnh vực còn rất
mới ở Việt Nam, công nghệ tường lửa thế hệ mới cũng đang là một đề tài thu
hút được sự quan tâm của nhiều chuyên gia và tổ chức về an toàn an ninh mạng
trong cả nước. Với kết quả đạt được của bài nghiên cứu, luận văn sẽ là một tài
liệu hữu ích và góp phần hỗ trợ cho quá trình nghiên cứu về lĩnh vực này trong
ngành công nghệ thông tin.
Việc sử dụng một tường lửa thế hệ mới trong hệ thống mạng doanh nghiệp,
nhà nước đang được khuyến khích và đẩy mạnh. Hiện nay, trên thế giới đã có rất
nhiều doanh nghiệp, tổ chức nổi tiếng trong ngành đã đưa ra được các sản phẩm
tường lửa thế hệ mới như Palo Alto, HP…Nhưng các sản phẩm đó là các sản phẩm
thiết bị phần cứng, nên phần nào vẫn gây khó khăn cho các doanh nghiệp trong
vấn đề chi phí, lắp đặt và hỗ trợ nâng cấp, phát triển. Việc tìm hiểu và đưa vào sử
dụng thành công, hiệu quả một tường lửa mềm sẽ giúp họ khắc phục được các vấn
đề khó khăn đó. Đặc biệt là các tường lửa mềm có mã nguồn mở đang nhận được
sự quan tâm rất nhiều của giới công nghệ và doanh nghiệp, nhà nước. Với tình
hình thực tiễn như vậy, tường lửa thế hệ mới Suricata sẽ là một lựa chọn hàng đầu
và mang lại hiệu quả cao cho các doanh nghiệp. Với những kiến thức nghiên cứu
và phân tích chi tiết về Suricata trong bài luận văn, nó sẽ là một tài liệu giúp cho
việc tiếp cận ban đầu với Suricata của các doanh nghiệp, nhà nước trở nên dễ dàng
và nhanh chóng nắm bắt được cấu trúc, hoạt động cũng như cách tích hợp và cài
đặt nó trong hệ thống mạng của công ty mình.
Trong bài báo cáo đã trình bày một cách chi tiết môi trường cài đặt, các bước
thực hiện cài đặt tường lửa Suricata và cấu hình firewall trong mạng LAN. Tường
lửa thế hệ mới nói chung và tường lửa Suricata nói riêng, hiện nay vẫn đang là một
vấn đề mới mẻ đối với ngành công nghệ thông tin của Việt Nam. Qua bài luận văn,
các độc giả có thể hiểu và phác họa cho mình một bức tranh tổng quan về lĩnh vực
này. Hơn nữa sẽ tạo cho mình một bước đà quan trọng cho việc bắt đầu tiếp cận và
nghiên cứu về nó.

68
Các ví dụ trong việc sử dụng Suricata để phát hiện và ngăn chặn các kĩ thuật
tấn công trong thực tế, đã khẳng định một số hiệu quả ban đầu tường lửa thế hệ
mới này mang lại cho hệ thống mạng LAN của doanh nghiệp, nhà nước. Để có thể
hiểu rõ và cấu hình, sử dụng hiệu quả tối đa tường lửa Suricata, chúng ta cần có
một quá trình tìm hiểu, phân tích chi tiết tất cả các đặt điểm, chức năng, nghiệp vụ
của nó. Điều đó có nghĩa là khi có thể nắm bắt một cách rõ ràng và nhuần nhuyễn
về Suricata, chúng ta có thể biến nó chở thành một tường lửa của riêng mình và
hoàn toàn sở hữu nó nhờ đặc tính Suricata là một tường lửa mềm mã nguồn mở.
4.2. Ý nghĩa khoa học và khả năng ứng dụng của đề tài
4.2.1. Ý nghĩa khoa học
Đề tài đã mở ra một con đường hoàn toàn mới trong lĩnh vực an toàn an ninh
mạng. Với sự phát triền bùng nổ của công nghệ thông tin hiện nay, công nghệ
tường lửa thế hệ mới được các chuyên gia đầu ngành dự đoán sẽ là một trong các
lĩnh vực phát triển mạnh mẽ và thu hút rất nhiều sự quan tâm của giới chuyên môn
cũng như các tổ chức, chuyên gia chuyên nghiên cứu về an toàn an ninh mạng.
Đề tài hiện đang là bước khởi đầu, lời kêu gọi cho quá trình nghiên cứu về
lĩnh vực công nghệ tường lửa thế hệ mới. Là một trong các chuyên gia đầu ngành
về công nghệ thông tin của đất nước, PGS.TS. Nguyễn Ái Việt đã khởi xướng và
dẫn dắt nhóm bao gồm các nghiên cứu viên đi sâu tìm hiểu, xây dựng một nền tảng
tường lửa thế hệ mới và tạo nên các sản phẩm đầu tiên tại Việt Nam. Với dự án
này, PGS.TS. Nguyễn Ái Việt hi vọng, trong tương lai sẽ đưa các sản phẩm tường
lửa thế hệ mới, đặc biệt là các sản phẩm tường lửa mềm mã nguồn mở (Suricata là
một điển hình) được sử dụng rộng rãi ở Việt Nam. Điều đó cũng có nghĩa rằng,
lĩnh vực an toàn an ninh mạng của đất nước sẽ có bước phát triển đột phá và tháo
gỡ được nút thắt khó khăn đang gặp phải từ các hacker, đảm bảo tối đa vấn đề bảo
mật cho các hệ thống mạng.
4.2.2. Khả năng ứng dụng của đề tài
Đảm bảo an toàn an ninh mạng đang là một thách thức đối với ngành công
nghệ thông tin của nước Việt Nam nói riêng và trên toàn thế giới nói chung. Để
giải quyết hiệu quả trong vấn đề này đòi hỏi phải đưa ra những biện pháp có tính
thực tiễn cao và có khả năng ngăn chặn tối đa các cuộc tấn công xâm nhập mạng
trái phép.
Việc nghiên cứu và phát triển xây dựng các sản phẩm tường lửa thế hệ mới
được đưa ra sau một quá trình theo dõi và phân tích kĩ lưỡng tình hình thực tế. Từ
năm 2013, việc tuyên bố ngừng hỗ trợ và phát triển tường lửa của microsoft đã gậy
khó khăn và hoang mang cho người dùng. Và điều đó cũng đã đặt ra những khó
khăn nhất định cho các nhà chức trách của ngành công nghệ thông tin. Cùng với sự

69
phát triển mạnh mẽ, tích cực trong xu hướng công nghệ hóa thì những tin tặc,
hachker cũng nhanh chóng theo đuổi những thay đổi đó bằng những cuộc tấn công
ngày càng nguy hiểm và thủ đoạn ngày càng tinh vi. Các hacker không ngừng sử
dụng các kĩ thuật mới để có thể len lỏi vào các hệ thống mạng, các kĩ thuật lẩn
tránh mà các tường lửa truyền thống khó có thể phát hiện ra. Bởi vậy, phải đưa ra
một giải pháp mới, sản phẩm mới để đối mặt với các khó khăn đó. Việc đưa công
nghệ tường lửa thế hệ mới vào thực tiễn là một điều tất yếu và đòi hỏi thực hiện
nhanh chóng. Nó mở ra cho ngành công nghệ thông tin một hướng phát triển mới,
một thị trường đầy tiềm năng và nhiều cơ hội.
Nghiên cứu, tích hợp và sử dụng Suricata trong hệ thống mạng doanh nghiệp,
nhà nước là một phương pháp được đưa ra xuất phát từ nhu cầu thực tiễn của
người sử dụng công nghệ thông tin. Sử dụng Suricata là một lựa chọn đúng đắn và
hợp lý bởi tính dễ cài đặt, tích hợp và hiệu quả sử dụng trong hệ thống mạng. Với
chìa khóa cốt lõi và đặc điểm mạnh mẽ là hoạt động trên tầng ứng dụng, phát hiện
các nguy cơ đe dọa dựa vào việc lọc nội dung dữ liệu…nó sẽ giúp giải quyết hầu
hết các khó khăn trong lĩnh vực an toàn an ninh mạng hiện nay. Hơn nữa, Suricata
là một tường lửa mềm mã nguồn mở sẽ tạo thuận lợi trong việc cấu hình của từng
doanh nghiệp. Nhu cầu phòng chống tấn công xâm nhập của mỗi doanh nghiệp,
nhà nước không hoàn toàn giống nhau. Vì vậy, với đặc tính linh hoạt trong việc
cấu hình Suricata sẽ đáp ứng được các nhu cầu riêng biệt của mỗi tổ chức.
Hiện nay, Suricata đã cho ra các phiên bản cài đặt trên nhiều hệ điều hành
khác nhau như Linux, Windows, TinyOS, CenTos, Fedora…đã giúp cho người sử
dụng có nhiều sự lựa chọn.
4.3. Hướng phát triển mở rộng đề tài
Trong phạm vi nghiên cứu của đề tài, em đã xây dựng cài đặt riêng lẻ
Suricata trong hệ thống mạng của công ty Viegrid. Với việc cài đặt và thiết lập các
tập luật trong việc phát hiện và ngăn chặn các giao thức, bước đầu Suricata cũng
đã hoạt động và mang lại những kết quả như mong đợi. Và để có thể sử dụng
Suricata một cách hiệu quả trong việc đảm bảo an toàn an ninh mạng cho toàn bộ
hệ thống mạng của công ty một cách chặt chẽ, em đã đưa ra ý tưởng và xây dựng
mô phỏng một hệ thống mạng và sử dụng kết hợp các công nghệ trong việc bảo vệ
hệ thống.

70
Hình 4.1: Mô hình hệ thống mạng kết hợp GPU, DPDK, Suricata
 Mô tả hệ thống
 Hệ thống bao gồm các thành phần:
- Các máy chủ sever: máy chủ e-mail, máy chủ web
Các máy chủ và các máy trạm trong hệ thống mạng cần được bảo vệ sử dụng
công nghệ Cloud Computing
- Tường lửa Suricata: cấu hình để phát hiện các gói tin, tự động sinh rules
ngăn chặn các gói tin chứa các nội dung đe dọa gây nguy hiểm cho hệ thống
- DPDK: sử dụng để bắt toàn bộ các gói tin đi vào từ Internet, sao chép toan
bộ các gói tin gửi cho bộ phân tích dữ liệu.
- GPU: tích hợp vào bộ phân tích dữ liệu nhằm tăng tối đa tốc độ phân tích
các gói tin sau khi nhận được từ DPDK.
- Bộ phân tích dữ liệu: phân tích chi tiết các gói tin nhận được từ DPDK một
cách nhanh chóng. Sau đó đưa ra cảnh báo cho Suricata để Suricata tự động sinh
luật xử lý các gói tin.
 Hoạt động của hệ thống
Khi các request (các gói tin) được gửi từ mạng internet bên ngoài vào sever
thì chúng sẽ được kiểm soát bởi tường lửa được nhúng vào card mạng hoặc một
máy chủ master.

71
Hình 4.2: Mô hình hoạt động của hệ thống

Tại card mạng hoặc máy chủ master sẽ được cài đặt các thành phần:
- Tường lửa: kiểm soát dữ liệu (lọc dữ liệu, cho phép dữ liệu đi qua, drop dữ
liệu…). Các hành động này được thực hiện bởi các luật được thiết lập sẵn trên
tường lửa hoặc do nó tự động sinh ra.
- DPDK: là thành phần được cài đặt sử dụng để bắt các gói tin. DPDK làm
việc rất hiệu quả cho quá trình bắt gói tin, nó sẽ bắt toàn bộ gói tin từ Internet đi
vào và sao chép một bản gửi đến bộ phân tích dữ liệu của hệ thống.
- GPU: GPU thứ nhất được cài đặt trên card mạng (hoặc máy chủ master) để
tăng tốc độ bắt gói tin của DPDK. GPU có vai trò rất quan trọng trong toàn bộ hệ
thống. Với khả năng tăng tốc độ của hệ thống lên gấp rất nhiều lần so với sử dụng
CPU, GPU sẽ giúp cho quá trình xử lý dữ liệu của hệ thống được thực hiện một
cách nhanh chóng và đạt hiệu quả cao, đặc biệt trong việc xử lý dữ liệu số.
GPU thứ hai được cài đặt trên bộ phân tích dữ liệu để tăng tốc độ xử lý dữ
liệu, giúp cho quá trình phân tích được thực hiện một cách nhanh chóng. Từ đó, có
thể gửi cho tường lửa kết quả trong thời gian ngắn nhất để tường lửa tự động sinh
ra luật xử lý luồng dữ liệu đi từ bên ngoài internet vào sever.

Hình 4.3 dưới đây là kết quả đo thời gian quá trình mã hóa cùng một dữ liệu
đầu vào của CPU và GPU

72
Hình 4.3: Kết quả thời gian mã hóa cùng dữ liệu đầu vào của GPU và CPU
- Bộ phân tích: được sử dụng để phân tích tất cả các dữ liệu được gửi từ
DPDK. Với các mẫu được lưu thành cơ sở dữ liệu khổng lồ, bộ phân tích sẽ so
sánh dữ liệu nhận được với các mẫu sẵn có để xác định các dữ liệu mới nhận có
nguy cơ đe dọa hệ thống hay không? Từ đó, nó gửi kết quả và yêu cầu cho tường
lửa để tường lửa xử lý được luồng dữ liệu đang đi vào sever một cách nhanh chóng
và hiệu quả nhất.

73
TÀI LIỆU THAM KHẢO

[1] Nguyễn Ái Việt, Ngô Doãn Lập, “ Application of SDN in the Information
Security Protection for the IDC and the Cloud Computing Infrastructure”,
GISATS 2014.
[2] By Eric Geier, Intro to Next Generation Firewalls, 06 September, 2011.
[3] John Pescatore, Greg Young, Defining the Next-Generation Firewall, Gartner
RAS Core Research Note G00171540, 12 October 2009.
[4] By Patrick Sweeney, Next-generation firewalls: Security without compromising
performance, 17 October 2012.
[5] By Eric Geier, Intro to Next Generation Firewalls, 06 September, 2011.
[6] A History and Survey of Network Firewalls, Retrieved 2011-11-25.
[7] By Lawrence C.Miller, Firewall for Dummies, CISSP.
[8] http://www.openinfosecfoundation.org/index.php/download-suricata
[9] http://taosecurity.blogspot.com/2014/01/suricata-20beta2-as-ips-on-ubuntu-
1204.html
[10] http://www.linux.org/threads/suricata-the-snort-replacer-part-3-rules.4363/
[11] New Open Source Intrusion Detector Suricata Released, Slashdot 2009-12-
31, Retrieved 2011-11-08.
[12] Suricata Downloads, Open Security Information Foundation, Retrieved 2011-11-
08.

74

You might also like