Hiện nay, mạng Internet đã và đang trở nên phổ biến hơn trên toàn thế giới. Nó đem lại cho con người một cách tiếp cận thông tin hoàn toàn mới. Đồng thời, ngoài những lợi ích to lớn của mình, mạng internet cũng ẩn chứa nhiều mối nguy hiểm tiềm tàng như: Lây nhiễm virus, sâu mạng, trojan, sniffer,….. . Với một hệ thống mạng máy tính, việc đảm bảo an toàn cho hệ thống tránh khỏi các nguy cơ, hiểm họa đe dọa rất được chú trọng và đề cao. Với một mô hình như mạng của Học Viện, việc đảm bảo đó cần áp dụng, kết hợp nhiều biện pháp khác nhau. Trong bản báo các này, chúng em xin trình bày về đề tài: “Xây dựng hệ thống phát hiện và chống xâm nhập trái phép cho mạng cơ sở 1, dựa trên Suricata”.
Trang 1BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
MÔN AN TOÀN ỨNG DỤNG WEB
XÂY DỰNG HỆ THỐNG PHÁT HIỆN VÀ CHỐNG XÂM NHẬP TRÁI PHÉP
CHO MẠNG CƠ SỞ 1, DỰA TRÊN SURICATA
Ngành: An toàn thông tin
Hà Nội, 2019
Trang 2MỤC LỤC
Trang 3LỜI MỞ ĐẦU
Hiện nay, mạng Internet đã và đang trở nên phổ biến hơn trên toàn thế
giới Nó đem lại cho con người một cách tiếp cận thông tin hoàn toàn mới
Đồng thời, ngoài những lợi ích to lớn của mình, mạng internet cũng ẩn chứa
nhiều mối nguy hiểm tiềm tàng như: Lây nhiễm virus, sâu mạng, trojan,
sniffer,… Với một hệ thống mạng máy tính, việc đảm bảo an toàn cho hệ
thống tránh khỏi các nguy cơ, hiểm họa đe dọa rất được chú trọng và đề cao
Với một mô hình như mạng của Học Viện, việc đảm bảo đó cần áp dụng, kết hợp nhiều biện pháp khác nhau Trong bản báo các này, chúng em xin trình
bày về đề tài: “Xây dựng hệ thống phát hiện và chống xâm nhập trái phép cho mạng cơ sở 1, dựa trên Suricata”.
Bản báo cáo có 3 phần:
Chương 1 Chương này trình bày về các khái niệm cơ bản về hệ thống phát
hiện xâm nhập (IDS) và ngăn chặn xâm nhập (IPS)
Chương 2 Tổng quan về Suricata: Chương này giới thiệu một cách
tổng quan về các khái niệm, chức năng, phân loại,… liên quan đến Suricata
Chương 3 Xây dựng hệ thống phát hiện và chống xâm nhập trái
phép Chương này triển khai xây dựng hệ thống phát hiện và chống xâm nhập trái phép cho mạng cơ sở 1 dựa trên Suricata
Trang 4CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PHÁT HIỆN XÂM
NHẬP IDS/IPS
I) Hệ thống phát hiện xâm nhập IDS
IDS - Intrusion Detection System - Hệ thống phát hiện xâm nhập là hệ thống phần cứng hoặc phần mềm có chức năng giám sát, phân tích lưu lượng mạng, các hoạt động khả nghi và cảnh bào cho hệ thống, nhà quản trị IDS cũng có thể phân biệt giữa những tấn công vào hệ thống từ bên trong (từ người bên trong công ty) hay tấn công từ bên ngoài (từ các hacker) IDS phát hiện dựa trên các dấu hiệu đặt biệt về các nguy cơ đã biết (giống như cách các phần mềm diệt virus dựa vào các dấu hiệu đặt biệt để phát hiện và diệt virus) hay dựa trên so sánh lưu thông mạng hiện tại với baseline (thông số đo đạc chuẩn cả hệ thống) để tìm ra các dấu hiệu khác thường
1) Chức năng của hệ thống phát hiện xâm nhập IDS
Ba chức năng quan trọng nhất của IDS là:
- Giám sát: Giám sát lưu lượng mạng các hoạt động bất thường và các hoạt động khả nghi
- Bảo vệ : Dùng những thiết lập mặc định và những cấu hình từ nhà quản trị
mà có những hành động chống lại kẻ xâm nhập
- Cảnh báo: Khi đã biết được các hoạt động bất thường của một truy cập nào
đó, IDS sẽ đưa ra cảnh báo về hệ thống cho người quản trị
Ngoài ra IDS còn có các chức năng mở rộng sau:
- Phân biệt các cuộc tấn công từ trong hoặc từ bên ngoài: nó có thể phân biệt được đâu là những truy cập hợp lệ (hoặc không hợp lệ) từ bên trong và đâu
là cuộc tấn công từ bên ngoài
- Phát hiện: dựa vào so sánh lưu lượng mạng hiện tại với baseline, IDS có thể phát hiện ra những dấu hiệu bất thường và đưa ra các cảnh báo và bảo vệ ban đầu cho hệ thống
2) Phân Loại IDS
Có 2 loại IDS là Network-based IDS (NIDS) và Host-based IDS (HIDS)
- Network-based IDS (NIDS): Sử dụng dữ liệu trên toàn bộ lưu thông mạng cùng dữ liệu kiểm tra từ một hoặc một vài máy trạm để phát hiện xâm nhập
- Host-based IDS (HIDS): Sử dụng dữ liệu kiểm tra tự một máy trạm đơn để phát hiện xâm nhập
Trang 5II) Hệ thống phát hiện và ngăn chặn xâm nhập IPS
Hệ thống IPS (intrusion prevention system) là một kỹ thuật an ninh mới, kết hợp các ưu điểm của kỹ thuật firewall với hệ thống phát hiện xâm nhập IDS
(intrusion detection system), có khả năng phát hiện sự xâm nhập, các cuộc tấn công và tự động ngăn chặn các cuộc tấn công đó
IPS không đơn giản chỉ dò các cuộc tấn công, chúng có khả năng ngăn chặn các cuộc hoặc cản trở các cuộc tấn công đó Chúng cho phép tổ chức ưu tiên, thực hiện các bước để ngăn chặn lại sự xâm nhập Phần lớn hệ thống IPS được đặt ở vành đai mạng, dủ khả năng bảo vệ tất cả các thiết bị trong mạng
1) Chức năng của IPS
Chức năng chính của IPS là xác định các hoạt động nguy hại, lưu giữ các thông tin này Sau đó kết hợp với firewall để dừng ngay các hoạt động này, và cuối cùng đưa ra các báo cáo chi tiết về các hoạt động xâm nhập trái phép trên
Hệ thống IPS được xem là trường hợp mở rộng của hệ thống IDS, cách thức hoạt động cũng như đặc điểm của 2 hệ thống này tương tự nhau Điểm khác nhau duy nhất là hệ thống IPS ngoài khả năng theo dõi, giám sát thì còn có chức năng ngăn chặn kịp thời các hoạt động nguy hại đối với hệ thống Hệ thống IPS sử dụng tập luật tương tự như hệ thống IDS
2) Phân Loại IPS
Có 2 loại IPS là NIPS – Network-based Intrusion Prevention và HIPS – Host-based Intrusion Prevention
- NIPS – Network-based Intrusion Prevention: Hệ thống ngăn ngừa xâm nhập mạng thường được triển khai trước hoặc sau firewall Khi triển khai IPS trước firewall là có thể bảo vệ được toàn bộ hệ thống bên trong kể cả
firewall, vùng DMZ Có thể giảm thiểu nguy cơ bị tấn công từ chối dịch vụ đồi với firewall Khi triển khai IPS sau firewall có thể phòng tránh được một
số kiểu tấn công thông qua khai thác điểm yếu trên các thiết bị di động sử dụng VPN để kết nối vào bên trong
- HIPS – Host-based Intrusion Prevention: Hệ thống ngăn ngừa xâm nhập host thường được triển khai với mục đích phát hiện và ngăn chặn kịp thời các hoạt động thâm nhập trên các host Để có thể ngăn chặn ngay các tấn công, HIPS sử dụng công nghệ tương tự như các giải pháp antivirus Ngoài khả năng phát hiện ngăn ngừa các hoạt động thâm nhập, HIPS còn có khả năng phát hiện sự thay đổi các tập tin cấu hình
Trang 6CHƯƠNG 2:TỔNG QUAN VỀ SURICATA
I) Giới thiệu về Suricata
Suricata là sản phẩm IDPS phát hiện dựa trên luật để theo dõi lưu lượng mạng
và cung cấp cảnh báo đến người quản trị hệ thống khi có sự kiện đáng ngờ xảy ra
Nó được thiết kế để tương thích với các thành phần an toàn hiện có Bản phát hành đầu tiên chạy trên nền tảng Linux 2.6 có hỗ trợ ội tuyến (Inline) và cấu hình giám sát lưu lượng thụ động có khả năng xử lý lưu lượng lên đến gigabit Suricata là sản phẩm IDPS miễn phí trong khi nó vẫn cung cấp sự lựa chọn khả năng mở rộng cho các kiến trúc an toàn mạng phức tạp nhất
Suricata là một công cụ đa luồng, cung cấp tăng tốc độ và hiệu quả trong việc phân tích lưu lượng mạng Ngoài việc tăng hiệu quả phần cứng (với phần cứng và giao diện mạng giới hạn), sản phẩm này được xây dựng để tận dụng khả năng xử
lý cao được cung cấp chip CPU đa lõi mới nhất
II) Các tính năng chính của Suricata
Theo thông tin chính thức được công bố trên website của Suricata thì hệ thống phát hiện và ngăn chặn xâm nhập này có một số tính năng nổi bật, đó là: khả năng
xử lý đa luồng, khả năng định danh giao thức, và định danh tập tin bằng MD5 và trích xuất tập tin
1) Đa luồng
Khả năng xử lý đa luồng (Multi threading) là một tính năng mới đối với IDS, một hoặc nhiều luồng gói tin cũng được xử lý Luồng sử dụng một hoặc nhiều mô-đun thread để xử lý các công việc trên Luồng có hàng đợi xử lý đầu vào và hàng đợi xử lý đầu ra Chúng được sử dụng để lấy gói tin từ luồng khác hoặc từ một bộ nhớ chung Một luồng có thể được đặt ở trong một nhân của CPU Mô-đun thread được lưu trữ trong kiến trúc Threadvars
Trang 7Suricata khi chạy trên thiết bị có thành phần cũng được thiết lập sẵn nó sẽ cân bằng luồng lưu lượng tới các bộ vi xử lý để xử lý luồng dữ liệu Tính năng này cho phép tối ưu hóa phần cứng để đạt được tốc độ 10Gbps thời gian thực mà không cần phải tác động vào tập luật
2) Định danh giao thức
Suricata có khả năng tự động nhận dạng các đặc trưng của các giao thức phổ biến, từ đó giúp người viết luật phát hiện linh động hơn khi tạo luật dựa trên lưu lượng của mạng hơn là đặc tính cổng của giao thức Điều này làm giảm sự phức tạp của các luật trong quá trình viết và gia tăng sự phát hiện các dấu hiệu của mã độc và điều khiển lưu lượng dễ dàng hơn
3) Định danh tệp tin, giá trị kiểm tra MD5, trích xuất tệp tin
Suricata có thể định danh hàng nghìn loại tệp tin trong quá trình truyền qua mạng mà nó giám sát Nếu muốn tìm hiểu sâu hơn một tệp tin nào đó người quản trị có thể đánh dấu để trích xuất xuống máy tính dưới dạng siêu dữ liệu được miêu
tả trong hoàn cảnh chặn bắt Ngoài ra Suricata còn có khả năng tính toán giá trị kiểm tra MD5 của tệp tin trong quá trình nó giám sát Tính năng này giúp hệ thống
có thể kiểm tra tính toàn vẹn của tệp tin nào đó bằng cách so sánh giá trị băm với danh sách bản băm MD5 cung cấp trước
III) Kiến trúc của Suricata
Mặc dù toàn bộ mã nguồn của Suricata được phát triển từ đầu, nhưng những nhà phát triển Suricata đã không thể che giấu việc họ vay mượn kiến trúc của Snort Kiến trúc của nó gồm nhiều thành phần, mỗi thành phần có một chức năng riêng
Các thành phần chính là:
- Mô-đun giải mã gói tin
- Mô-đun tiền xử lý
- Mô-đun phát hiện
- Mô-đun phản ứng
Trang 8Khi Suricata hoạt động, nó sẽ thực hiện lắng nghe và thu bắt tất cả gói tin nào
di chuyển qua nó Tiếp theo gói tin sẽ được đưa vào mô-đun tiền xử lý, rồi đưa vào mô-đun phát hiện Tại đây, tùy theo việc có phát hiện được xâm nhập hay không mà gói tin có thể được lưu thông tiếp hay được đưa vào mô-đun bản ghi và cảnh báo để
xử lý Khi các cảnh báo được xác định, mô-đun kiết xuất thông tin sẽ thực hiện việc đưa cảnh báo theo đúng định dạng mong muốn
1) Mô-đun giải mã gói tin (Packet Decoder)
Suricata sử dụng thư viện Pcap để bắt các gói tin lưu thông qua hệ thống Mỗi gói tin sau khi được giải mã sẽ được đưa tiếp vào mô-đun tiền xử lý
2) Mô-đun tiền xử lý (Preprocessors)
Mô-đun tiền xử lý là một mô-đun rất quan trọng đối với bất kỳ một hệ thống IDS/IPS nào để có thể chuẩn bị gói dữ liệu đưa vào cho mô-đun phát hiện phân tích
Ba nhiệm vụ chính của các mô-đun loại này là:
- Kết hợp lại các gói tin: Khi một lượng dữ liệu lớn được gửi đi, thông tin sẽ không đóng gói toàn bộ vào một gói tin mà phải thực hiện việc phân mảnh, chia gói tin ban đầu thành nhiều gói tin mới gửi đi Khi Suricata nhận được các gói tin này nó phải thực hiện việc ghép nối lại để được dữ liệu nguyên dạng ban đầu, từ đó mới thực hiện được các công việc xử lý tiếp Khi một phiên làm việc của hệ thống diễn ra, sẽ có rất nhiều gói tin được trao đổi trong phiên đó Một gói tin riêng lẻ sẽ không có trạng tháu và nếu công việc phát hiện xâm nhập chỉ dựa hoàn toàn vào gói tin đó sẽ không đem lại hiệu quả cao Mô-đun tiền xử lý theo luồng giúp Suricata có thể hiểu được các phiên làm việc khác nhau (nói cách khác đem lại tính có trạng thái cho vác gói tin) từ đó giúp đạt được hiệu quả cao hơn trong việc phát hiện xâm nhập
- Giải mã và chuẩn hóa giao thức (decode/normalize): công việc phát hiện xâm nhập dựa trên dấu hiệu nhận dạng nhiều khi bị thất bại khi kiểm tra các giao thức có dữ liệu có thể được thể hiện dưới nhiều dạng khác nhau Ví dụ: một máy chủ web có thể chấp nhận nhiều dạng URL như URL được viết dưới dạng mã hexa/Unicode, URL chấp nhận cả dấu “\” hay “/” hoặc nhiều
Trang 9ký tự này liên tiếp cùng lúc Hoặc thực hiện việc mã hóa các chuỗi này dưới dạng khác Nếu Suricata chỉ thực hiện đơn thuần việc so sánh dữ liệu với dấu hiệu nhận dạng sẽ xảy ra tình trạng bỏ sót các hành vi xâm nhập Do vậy, một số mô-đun tiền xử lý của Suricata phải có trách nhiệm giải mã và chỉnh sửa, sắp xếp lại các thông tin đầu vào này để thông tin khi được đưa đến mô-đun phát hiện có thể phát hiện được mà không bỏ sót
- Phát hiện các xâm nhập bất thường (nonrule/anormal): các plugin tiền xử lý dạng này thường dùng để đối phó với các xâm nhập không thể hoặc rất khó phát hiện được bằng các luật thông thường hoặc các dấu hiệu bất thường trong giao thức Các mô-đun tiền xử lý dạng này có thể thực hiện việc phát hiện xâm nhập theo bất cứ cách nào mà ta nghĩ ra từ đó tăng cường tính năng cho Suricata
Ví dụ, một plugin tiền xử lý có nhiệm vụ thống kê thông lượng mạng tại thời điểm bình thường để rồi khi có thông lượng mạng bất thường xảy ra nó có thể tính toán, phát hiện và đưa ra cảnh báo (phát hiện xâm nhập theo mô hình thống kê)
3) Mô-đun phát hiện (Detection engine)
Đây là mô-đun quan trọng nhất của Suricata Nó chịu trách nhiệm phát hiện các dấu hiệu xâm nhập Mô-đun phát hiện sử dụng các luật được định nghĩa trước các dấu hiệu xâm nhập Mô-đun phát hiện sử dụng các luật được định nghĩa trước để so sánh với dữ liệu thu thập được từ đó xác định xem có hành vi tấn công hay không Rồi tiếp theo mới có thể thực hiện một số công việc như ghi log, tạo thông báo và kết xuất thông tin
Một vấn đề quan trọng trong mô-đun phát hiện là vấn đề thời gian xử lý các gói tin: một IDS thường nhận được rất nhiều gói tin và bản thân nó cũng có rất nhiều các luật xử lý Có thể mất những khoảng thời gian khác nhau cho việc xử lý các gói tin khác nhau Và khi thông lượng mạng quá lớn có thể xảy ra việc bỏ sót hoặc không phản hồi được đúng lúc Khả năng xử lý của mô-đun phát hiện dựa trên một số yếu tố như: số lượng các luật, tốc độ của hệ thống đang chạy, tải trên mạng Một số thử nghiệm cho biết, phiên bản hiện tại của Suricata khi được tối ưu hóa chạy trên hệ thống có nhiều bộ xử lý và cấu hình máy tính tương đối mạnh thì có thể hoạt động tốt trên cả mạng cỡ Gigabit
Một mô-đun phát hiện cũng có khả năng tách các phần của gói tin ra và áp dụng các luật lên từng phần nào của gói tin đó Các phần đó có thể là:
- IP header
- Header tầng giao thức TCP, UDP
Trang 10- Header tầng ứng dụng: FNS header, HTTP header, FTP header, …
- Phần tải của gói tin (có thể áp dụng các luật lên các phần dữ liệu được truyền
đi của gói tin)
Một vấn đề nữa trong mô-đun phát hiện đó là việc xử lý thế nào khi một gói tin
bị phát hiện bởi nhiều luật Do các luật trong Suricata được đánh số thứ tự ưu tiên, nên một gói tin khi bị phát hiện bởi nhiều luật khác nhau, cảnh báo được đưa ra sẽ là cảnh báo ứng với luật có mức ưu tiên cao nhất
4) Mô-đun log và cảnh báo (Alert generation)
Tùy thuộc vào việc mô-đun phát hiện có nhận dạng được xâm nhập hay không
mà gói tin có thể bị ghi log hoặc đưa ra cảnh báo Các tệp tin log là các tệp dữ liệu trong đó có thể được ghi dưới nhiều định dạng khác nhau Trong Suricata hỗ trợ các định dạnh log như sau:
- eve.json
- fast.log
- http.log
- stats.log
- unified2.alert
IV) Tập luật trong Suricata
Do kiến trúc hoạt động của Suricata giống với Snort nên tập luật của nó cũng hoàn toàn giống với Snort
Cấu trúc luật gồm có dạng như sau:
Phần Header chứa thông tin về hành động mà luật đó sẽ thực hiện khi phát hiện
ra có xâm nhập nằm trong gói tin và nó cũng chứa các tiêu chuẩn để áp dụng luật với gói tin đó
Phần Option chứa một thông điệp cảnh báo và các thông tin về các phần của gói tin dùng để tạo nên cảnh báo Phần Option chứa các tiêu chuẩn phụ thêm để đối sánh luật với gói tin Một luật có thể phát hiện được một hay nhiều hoạt động thăm dò
Trang 11hay tấn công Các phát hiện được mọt hay nhiều hoạt động thăm dò hay tấn công Các luật thông minh có khả năng áp dụng cho nhiều dấu hiệu xâm nhập
Trang 12CHƯƠNG 3: XÂY DỰNG HỆ THỐNG PHÁT HIỆN VÀ CHỐNG
XÂM NHẬP TRÁI PHÉP
I) Mô hình triển khai
Mục đích: Xây dựng hết thống phát hiện và chống xâm nhập trái phép cho mạng cơ sở 1 của học viện, dựa trên công cụ suricata
Mô hình khảo sát mạng máy tính tại Học viện:
Qua khảo sát, Mạng cơ sở 1 của học viện có các phòng ban ngành và một vùng DMZ chứa các máy chủ Web đang chạy dịch vụ Vùng máy chủ DMZ được chia dải mạng riêng với các phòng ban ngành, nằm độc tại phòng máy chủ của nhà trường Vì vùng mạng DMZ cung cấp dịch vụ ra Internet, do đó chứa nhiều tiềm ẩn nguy cơ có thể bị tấn công từ mạng Internet, cũng như từ mạng nội bộ Tuy nhiên hiện tại trong
sơ đồ mạng, chỉ có giải pháp tường lừa được cài đặt và bảo vệ chung cho toàn bộ mạng nội bộ của Học viện Vì vậy, đòi hỏi phải có các giải pháp phát hiện và chống xâm nhập, đặc biệt cho các máy chủ cung cấp dịch vụ trong vùng mạng DMZ