DANH MỤC BẢNG, HÌNH ẢNHBả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ệ
Trang 1Em 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
Trang 2LỜ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
Trang 3MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT
ICMP Internet Control Message Protocol
3
Trang 4DANH 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 19Hì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
Trang 5Hì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
Trang 6MỞ ĐẦ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
Trang 7hữ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
Trang 8chứ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
Trang 9CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ TƯỜNG LỬA
để 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
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
Trang 10- 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)
Trang 11- 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…
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
Trang 12mộ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,
Trang 13DDoS…) 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
Trang 14Hì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
Trang 15mạ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
Trang 16sá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:
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
Trang 17chó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
Trang 18Xá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)
Trang 19Hì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
Trang 20- Đạ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ý.
Trang 21 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
Trang 22doạ, 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
Trang 23trong 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
- Sử dụng cơ chết NAT trong che dấu địa chỉ IP
Sử dụng các công nghệ hiện đại
và tiên tiến:
- Công nghệ phát hiện xâm nhập IDS
- Công nghệ phòng chống xâm nhập IPS
- 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…
Application Gateway
- Sử dụng cơ chế Proxy
Circuit Level Gate
- Sử dụng cơ chế Nat để che dấu địa chỉ IP
Application identification
- Phát hiện giao thức ứng dụng và giải mã
Trang 24 Bảo vệ tài nguyên
Ghi nhận và báo cáo các sự kiện
Thực hiện các chức năng của tường lửa truyền thống như lọc gói tin, kiểm tra giao thức stateful (SPI), kết nối VPN, NAT…
Thích ứng và tiếp nhận linh hoạt các mối đe dọa hiện thời, 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
Application identification 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
Các sản phẩm
Sortware firewall SunScreen firewall, IPF, Microsoft ISA server, Check Point NG, Linux’s IPTables …
Appliance firewallCisco PIX, NetScreen firewall, SonicWall Appliaces, WatchGuard Fireboxes, Nokia firewall…
Palo Alto Firewall của Palo Alto
Một số tường lửa mềm: Suricata, Iptable, Snort…
Trang 25CHƯƠ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
Trang 26mề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,
Trang 27tù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
Trang 28thô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:
Trang 29 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
Trang 30Message 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
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)
Trang 31 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
Trang 32 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
Trang 33phó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
Trang 344 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
Trang 352.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
Trang 362.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
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: “ ”;
Trang 37rev: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