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

BÁO CÁO XÂY DỰNG HỆ THỐNG PHÁT HIỆN VÀ CHỐNG XÂM NHẬP TRÁI PHÉP 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 (731.11 KB, 17 trang )

BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ

MÔN AN TOÀN ỨNG DỤNG WEB
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
Ngành: An toàn thông tin

Hà Nội, 2019
1


MỤC LỤC

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 1. Chương này trình bày về các khái niệm cơ bản về hệ thống phát
hiện xâm nhập (IDS) và ngăn chặn xâm nhập (IPS).


Chương 2. 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 3. 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.

3


CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PHÁT HIỆN XÂM
NHẬP IDS/IPS
I) Hệ thống phát hiện xâm nhập IDS
IDS - Intrusion Detection System - Hệ thống phát hiện xâm nhập là hệ thống
phần cứng hoặc phần mềm có chức năng giám sát, phân tích lưu lượng mạng, các
hoạt động khả nghi và cảnh bào cho hệ thống, nhà quản trị. IDS cũng có thể phân
biệt giữa những tấn công vào hệ thống từ bên trong (từ người bên trong công ty)
hay tấn công từ bên ngoài (từ các hacker). IDS phát hiện dựa trên các dấu hiệu đặt
biệt về các nguy cơ đã biết (giống như cách các phần mềm diệt virus dựa vào các
dấu hiệu đặt biệt để phát hiện và diệt virus) hay dựa trên so sánh lưu thông mạng
hiện tại với baseline (thông số đo đạc chuẩn cả hệ thống) để tìm ra các dấu hiệu
khác thường
1) Chức năng của hệ thống phát hiện xâm nhập IDS
Ba chức năng quan trọng nhất của IDS là:
-

Giám sát: Giám sát lưu lượng mạng các hoạt động bất thường và các hoạt
động khả nghi
Bảo vệ : Dùng những thiết lập mặc định và những cấu hình từ nhà quản trị
mà có những hành động chống lại kẻ xâm nhập
Cảnh báo: Khi đã biết được các hoạt động bất thường của một truy cập nào

đó, IDS sẽ đưa ra cảnh báo về hệ thống cho người quản trị

Ngoài ra IDS còn có các chức năng mở rộng sau:
-

-

Phân biệt các cuộc tấn công từ trong hoặc từ bên ngoài: nó có thể phân biệt
được đâu là những truy cập hợp lệ (hoặc không hợp lệ) từ bên trong và đâu
là cuộc tấn công từ bên ngoài
Phát hiện: dựa vào so sánh lưu lượng mạng hiện tại với baseline, IDS có thể
phát hiện ra những dấu hiệu bất thường và đưa ra các cảnh báo và bảo vệ
ban đầu cho hệ thống

2) Phân Loại IDS
Có 2 loại IDS là Network-based IDS (NIDS) và Host-based IDS (HIDS)
- Network-based IDS (NIDS): Sử dụng dữ liệu trên toàn bộ lưu thông mạng
cùng dữ liệu kiểm tra từ một hoặc một vài máy trạm để phát hiện xâm nhập
- Host-based IDS (HIDS): Sử dụng dữ liệu kiểm tra tự một máy trạm đơn để
phát hiện xâm nhập

4


II) Hệ thống phát hiện và ngăn chặn xâm nhập IPS
Hệ thống IPS (intrusion prevention system) là một kỹ thuật an ninh mới, kết
hợp các ưu điểm của kỹ thuật firewall với hệ thống phát hiện xâm nhập IDS
(intrusion detection system), có khả năng phát hiện sự xâm nhập, các cuộc tấn
công và tự động ngăn chặn các cuộc tấn công đó.
IPS không đơn giản chỉ dò các cuộc tấn công, chúng có khả năng ngăn chặn các

cuộc hoặc cản trở các cuộc tấn công đó. Chúng cho phép tổ chức ưu tiên, thực hiện
các bước để ngăn chặn lại sự xâm nhập. Phần lớn hệ thống IPS được đặt ở vành
đai mạng, dủ khả năng bảo vệ tất cả các thiết bị trong mạng.
1) Chức năng của IPS
Chức năng chính của IPS là xác định các hoạt động nguy hại, lưu giữ các thông
tin này. Sau đó kết hợp với firewall để dừng ngay các hoạt động này, và cuối cùng
đưa ra các báo cáo chi tiết về các hoạt động xâm nhập trái phép trên.
Hệ thống IPS được xem là trường hợp mở rộng của hệ thống IDS, cách thức
hoạt động cũng như đặc điểm của 2 hệ thống này tương tự nhau. Điểm khác nhau
duy nhất là hệ thống IPS ngoài khả năng theo dõi, giám sát thì còn có chức năng
ngăn chặn kịp thời các hoạt động nguy hại đối với hệ thống. Hệ thống IPS sử dụng
tập luật tương tự như hệ thống IDS.
2) Phân Loại IPS
Có 2 loại IPS là NIPS – Network-based Intrusion Prevention và HIPS – Hostbased Intrusion Prevention
- NIPS – Network-based Intrusion Prevention: Hệ thống ngăn ngừa xâm nhập
mạng thường được triển khai trước hoặc sau firewall. Khi triển khai IPS
trước firewall là có thể bảo vệ được toàn bộ hệ thống bên trong kể cả
firewall, vùng DMZ. Có thể giảm thiểu nguy cơ bị tấn công từ chối dịch vụ
đồi với firewall. Khi triển khai IPS sau firewall có thể phòng tránh được một
số kiểu tấn công thông qua khai thác điểm yếu trên các thiết bị di động sử
dụng VPN để kết nối vào bên trong.
- HIPS – Host-based Intrusion Prevention: Hệ thống ngăn ngừa xâm nhập
host thường được triển khai với mục đích phát hiện và ngăn chặn kịp thời
các hoạt động thâm nhập trên các host. Để có thể ngăn chặn ngay các tấn
công, HIPS sử dụng công nghệ tương tự như các giải pháp antivirus. Ngoài
khả năng phát hiện ngăn ngừa các hoạt động thâm nhập, HIPS còn có khả
năng phát hiện sự thay đổi các tập tin cấu hình.

5



CHƯƠNG 2:TỔNG QUAN VỀ SURICATA
I) Giới thiệu về Suricata
Suricata là sản phẩm IDPS phát hiện 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 toàn 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ợ ộ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à sản
phẩm IDPS miễn phí trong khi nó vẫn cung cấp sự lựa chọn khả năng mở rộng cho
các kiến trúc an toàn mạng phức tạp nhất.
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 chip CPU đa lõi mới nhất.
II) Các tính năng chính của Suricata
Theo thông tin chính thức được công bố trên website 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ố 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 tin bằng MD5 và
trích xuất tập tin.
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.

6


Suricata khi chạy trên thiết bị có thành 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 độ 10Gbps thời gian thực mà không
cần phải tác động vào tập luật.
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 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.
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 để 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ám 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.
III) 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 thể 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

7


Khi Suricata hoạt động, nó sẽ thực hiện lắng nghe và thu bắt tất cả gói tin nào
di chuyển qua nó. 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 kiế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.
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) Mô-đun tiền xử lý (Preprocessors)
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 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 dữ liệu nguyên
dạng ban đầu, từ đó mới thực hiện được 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áu 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 vá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
8


-

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ỏ sót các hành vi xâm nhập. Do
vậy, một số mô-đun tiền xử lý của Suricata phải có trách nhiệm 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 được đư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

hiện xâm nhập theo bất cứ cách nào mà ta nghĩ ra từ đó tăng cường 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ó 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ê).
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 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ộ 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ả 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 thức TCP, UDP
9


- Header tầng ứng dụng: FNS 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.
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ạnh log như sau:
- eve.json
- fast.log
- http.log
- stats.log
- unified2.alert
IV) Tập luật trong 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ó dạng như sau:

Phần Header chứa thông tin về hành động mà luật đó sẽ thực hiện khi phát hiện
ra có xâm nhập nằm trong gói tin và nó cũng chứa 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ó thể phát hiện được một hay nhiều hoạt động thăm dò
10



hay tấn công. Các 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 hiệu xâm nhập.

11


CHƯƠNG 3: XÂY DỰNG HỆ THỐNG PHÁT HIỆN VÀ CHỐNG
XÂM NHẬP TRÁI PHÉP
I) Mô hình triển khai
Mục đích: Xây dựng hết thống phát hiện và chống xâm nhập trái phép cho
mạng cơ sở 1 của học viện, dựa trên công cụ suricata.
Mô hình khảo sát mạng máy tính tại Học viện:

Qua khảo sát, Mạng cơ sở 1 của học viện có các phòng ban ngành và một vùng
DMZ chứa các máy chủ Web đang chạy dịch vụ. Vùng máy chủ DMZ được chia dải
mạng riêng với các phòng ban ngành, nằm độc tại phòng máy chủ của nhà trường. Vì
vùng mạng DMZ cung cấp dịch vụ ra Internet, do đó chứa nhiều tiềm ẩn nguy cơ có
thể bị tấn công từ mạng Internet, cũng như từ mạng nội bộ. Tuy nhiên hiện tại trong
sơ đồ mạng, chỉ có giải pháp tường lừa được cài đặt và bảo vệ chung cho toàn bộ
mạng nội bộ của Học viện. Vì vậy, đòi hỏi phải có các giải pháp phát hiện và chống
xâm nhập, đặc biệt cho các máy chủ cung cấp dịch vụ trong vùng mạng DMZ.
12


Trong bài báo cáo này, nhóm thực hiện việc cài đặt suricata trên một máy chủ
đặt cùng vùng mạng với DMZ. Suricata sẽ sniffing các lưu lượng mạng trên vùng
mạng DMZ, tiến hành phân tích và đưa ra cảnh báo.
II) Kịch bản tấn công
Một Attacker (từ mạng bên ngoài) thực hiện một cuộc tấn công DDos lên máy
chủ Suricata. Suricata được cài đặt với các tập luật, phát hiện có một cuộc tấn công

DDos. Từ đó, suricata phát ra các cảnh báo cho người quản trị hệ thống. Người quản
trị hệ thống sẽ xây dựng một tập luật mới để chống lại cuộc tấn công DDos.
III) Cài đặt và cấu hình
Chuẩn bị:
-

1 máy cấu hình Suricata
1 máy làm máy chủ
1 máy làm máy tấn công

1) Cấu hình Suricata và tập luật

-

Thay đổi file cấu hình trong suricata.yaml

-

Thay đổi HOME_NET theo dải Ip của phân vùng mạng

13


-

Thêm các tập luật vào

-

Thêm nội dung cho tập luật (đưa ra cảnh báo khi bị DDOS).

14


-

Thêm nội dung cho luật scan

-

Luật thông báo gói tin ICMP

-

Khởi chạy suricata

-

Khởi chạy fast.log

2) Thực hiện tấn công
- Gửi gói tin ICMP

-

Tấn công DOS

-

Tấn công dò quét dùng nmap
15



-

Tấn công DDOS

3) Đọc log trong fast.log

KẾT LUẬN
Với sự phát triển của mạng máy tính và lợi ích mà nó đem lại, theo đó là nguy
cơ mất an toàn trong các hệ thống mạng cũng nảy sinh. Việc phát hiện và ngăn chặn
được các xâm nhập trái phép sẽ rất hữu ích trong đảm bảo một hệ thống mạng an
toàn.
16


Bài báo cáo này đã đạt được mục tiêu sau:
-

-

Tìm hiểu được một cách tổng quan về hệ thống phát hiện và chống xâm
nhập trái phép, đồng thời cũng tìm hiểu một hệ thống phát hiện và phòng
chống xâm nhập trái phép Suricata
Dựa vào Suricata xây dựng được một tập luật để phát hiện các tấn công

Tuy nhiên, trong quá trình tìm hiểu, do hạn chế về kiến thức cũng như thời gian
mà báo cáo chỉ mới dừng lại ở mức giới thiệu cơ bản, chưa đi sâu vào các dạng nâng
cao cũng như áp dụng vào thực tế. Hi vọng trong tương lai, nếu có thời gian và cơ hội,
chúng em sẽ tiếp tục phát triển các vấn đề nâng cao hơn nữa.


17



×