15
CHƯƠNG 2
GIỚI THIỆU VỀ SNORT/SNORTSAM
2.1. Snort là gì?
Snort là một hệ thống phòng chống và phát hiện xâm nhập dựa trên mạng (IPS/IDS) nguồn mở được phát triển bởi Sourcefire. Kết hợp việc kiểm tra dấu hiệu, giao thức và dấu hiệu bất thường, Snort đã được triển khai rộng khắp trên toàn thế giới. Với hàng triệu lượt download và hơn 400.000 lượt người dùng đăng ký, Snort đã trở thành tiêu chuẩn của hệ thống phòng chống và phát hiện xâm nhập.
Chức năng chính của Snort đó là packet sniffing, packet logging và network-based intrusion detection.
Tại sao Snort lại trở nên phổ biến như vậy.
Dễ dàng cấu hình: Snort 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.
Snort là phần mềm mã nguồn mở: Snort đượ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 Snort 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 mềm mã nguồn mở nên Snort 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: Không chỉ chạy trên các hệ điều hành nguồn mở như GNU/Linux mà Snort còn có thể chạy được trên các nền tảng thương mại như Microsoft Windows, Solaris, HP-UX...
Snort thường xuyên được cập nhật: Các luật của Snort 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ừ http://www.snort.org.
16
2.2.1. Yêu cầu phần cứng
Rất khó để đưa ra một yêu cầu chung nhất cho phần cứng đề cài đặt Snort vì điều này còn phụ thuộc vào nhiều yếu tố khác nhau. Hai yếu tố cần quan tâm đến việc lựa chọn phần cứng cho hệ thống Snort đó là lưu lượng traffic trên hệ thống và yêu cầu xử lí, lưu trữ đối với hệ thống Snort. Yêu cầu phần cứng của hệ thống đối với một doanh nghiệp lớn như các ISP sẽ khác rất nhiều so với một mạng small home. Để xác định phần cứng để cài đặt Snort cho hệ thống có thể trả lời một vài câu hỏi sau để xác định được điều đó:
Hệ thống mạng là mạng small home, small bussiness, large enterprise hay là một ISP.
Lưu lượng traffic thông thường trong hệ thống là bao nhiêu?
Lưu lượng traffic giữa hệ thống internal và mạng Internet bên ngoài là khoảng bao nhiêu? Và ngược lại?
Nơi lưu trữ các cảnh báo (alerts) của Snort là ở đâu? Thời gian lưu trữ các cảnh báo này là bao lâu?
Có muốn lưu trữ các gói tin liên quan đến các cảnh báo này hay không? Tuy Snort không có bất kỳ yêu cầu phần cứng đặc biệt nào tuy nhiên nếu phần cứng mạnh thì sẽ một số lợi điểm. Vì Snort là một hệ thống phát hiện xâm nhập dựa trên mạng nên nếu có một đĩa cứng có dung lượng lưu trữ lớn và tốc độ quay nhanh thì hệ thống Snort sẽ hoạt động một cách trơn tru hơn. Ví dụ đối với một mạng doanh nghiệp có thể chia phân vùng /var với dung lượng là 100 GB. Ngoài ra nếu có yêu cầu cao thì có thể sử dụng RAID để lưu trữ.
Bạn sẽ cần một card mạng (NIC) có tốc độ cao để việc sniffer các gói tin trở nên dễ dàng hơn. Ví dụ nếu tốc độ card mạng dưới 100Mb/s thì nên sử dụng một card mạng ở tốc độ 100Mb/s. Nếu tốc độ card mạng quá thấp thì Snort có thể “bỏ lỡ” một vài gói tin và dẫn đến thông tin thu thập bị sai khác. Ngoài ra nên có thêm một card mạng khác kết nối tới người quản trị thông qua giao thức SSH hoặc qua Web Interface, tránh việc sử dụng chung với card mạng sniffer gói tin.
17
Nếu hệ thống mạng lớn, số lượng cảm biến (sensor) nhiều nên cân nhắc việc tăng RAM cho hệ thống để hệ thống không bị lag khi xử lí qua nhiều thông tin gửi về.
2.2.2. Hệ điều hành và các gói phần mềm khác
Snort có thể chạy trên nhiều nền tảng hệ điều hành khác nhau. Snort có thể chạy trên các nền tảng x86 như GNU/Linux, FreeBSD, OpenBSD, NetBSD và Windows. Ngoài ra nó còn hỗ trợ cả kiến trúc Sparc với các nền tảng hệ điều hành như: Solaris, MacOS-X, HP-UX...
Ngoài hệ điều hành, nếu có ý định compile Snort từ source code thì cần đảm bảo các phần mềm sau đã được cài đặt trên hệ thống.
autoconf và automake. gcc.
lex và yacc hoặc GNU flex và bison. libpcap.
Hầu hết các phần mềm này đều có thể download tại http://www.gnu.org/ và libpcap có thể download tại http://www.tcpdump.org
Ngoài ra nếu có ý định cài các Snort add-on hoặc các công cụ quản lý ví dụ như một add-on phổ biến đó Analysis Console for Intrusion Detection (ACID) Web interface thì cần cài đặt thêm Apache Web Server (nên sử dụng giao thức SSL để bảo mật), PHP và cơ sở dữ liệu để lưu trữ các cảnh báo thì cần cài MySQL hoặc PostgreSQL. Một vài add-on phổ biến:
ACID. Oinkmaster. SnortSnarf. SnortReport. Snorby.
Nếu quản trị từ xa thông qua giao thức SSH thì cần cấu hình SSH.
18
Ở chế độ NIDS, sau khi các gói tin đi vào và vượt qua packet sniffer, dữ liệu sẽ được gửi thông qua bất kỳ preprocessor nào được cấu hình trong snort.conf . Dữ liệu tiếp tục đi qua detection engine, kiểm tra xem có phù hợp với các luật trong tập tin snort.conf hay không? Các gói phù hợp sẽ được gửi đến thành phần cảnh báo và ghi lại (alert and logging) vượt qua bất kỳ output plug-in đã được chọn, sau đó nó sẽ được ghi lại (log) hoặc cảnh báo tùy theo cấu hình.
Kiến trúc của Snort gồm 4 phần cơ bản sau:
The Sniffer (Packet Decoder). The Preprocessors.
The Detection Engine. The Output.
Hình dưới đây cung cấp một cái nhìn dễ hiểu về kiến trúc và quy trình xử lý của Snort. Tưởng tượng nó như một máy phân loại đồng xu.