Professional Documents
Culture Documents
Li CM N PDF
Li CM N PDF
Đượ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!
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.
2
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT
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
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
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
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.
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
24
CHƯƠNG 2: TƯỜNG LỬA THẾ HỆ MỚI VỀ SURICATA
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
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.
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.4: Gói tin được xử lý ở Detection Engine bằng các luật
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
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
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
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
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;…
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
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
59
sudo ldconfig
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…
61
AIM_SERVERS: cài đặt mặc định là bất kỳ
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
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ả:
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ả:
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
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