Những luật về chữ ký thích hợp được chứa trong một loạt các file văn bản riêng biệt, mỗi file sẽ được định cho một kiểu luật cụ thể (như là Web, backdoor, DDOS, FTP, Telnet, DNS,…)
Mỗi luật Snort đã chứa trong những file thì gồm 2 phần logic: phần tiêu đề luật và phần lựa chọn. Phần tiêu đề luật sẽ quyết định giao thức, hướng lưu lượng, và cổng và địa chỉ nguồn và đích mà áp dụng cho luật. Trường action chỉ rõ snort nên làm gì khi một luật tương xứng với nội dung gói tin:
- Pass –thả gói tin. Snort cho phép không quá trình xử lý nào trên gói tin cung cấp phương tiện ngăn chặn những kiểu lưu lượng cụ thể từ việc xử lý Snort.
- Log –soạn các gói tin đầy đủ vào vị trí ghi lại được chọn trong snort.conf (hay trên dòng lệnh)
- Alert –tạo ra một khai báo sự kiện tới một hay nhiều đích đến như đã được chỉ rõ trong snort.conf, cũng như là việc ghi lại nội dung gói tin đầy đủ giống như lời hướng dẫn log.
Phần thứ hai của luật Snort bao gồm một hay nhiều trường lựa chọn để cung cấp tính linh hoạt và độ phức tạp khác thường. Tùy chọn rõ ràng nhất là từ khóa msg để in ra một thông báo khi báo động và những log gói tin mô tả tấn công đã bị phát hiện.
Phần lớn những từ khóa khác (tất cả có trong hướng dẫn sử dụng) cung cấp phương tiện để khởi đầu những phần như: nội dung gói tin, tùy chọn IP, các bít phân mảnh, kích cỡ payload, hướng đi của lưu lượng và cờ TCP, bao gồm trong những cái khác. Chúng có thể được kết hợp trong nhiều cách để phát hiện và phân loại các gói tin là những vấn đề đáng quan tâm đặc biệt, và tất cả các tùy chọn phải đúng đắn để tạo ra một sự phù hợp và sự khởi tạo sự ảnh hưởng của luật.
Những tùy chọn khác được cung cấp nhằm tăng cường chứng cớ của tài liệu và khả năng có thể nhận ra được của các cảnh báo và các log gói tin, bao gồm chữ ký duy nhất ID, phân loại luật (ví dụ, từ chối dịch vụ, lỗ hổng thông tin, giành đặc quyền,…), tấn công quyền, và tham chiếu tới những hệ thống định danh tấn công bên ngoài như Bugtraq, CVE hay Arachnids.
Vài tùy chọn có các chức năng đặc biệt, như là tùy chọn tab, chỉ ra một số gói tin bổ sung cần được bắt giữ sau khi một khởi tạo cảnh báo xảy ra. Cũng có tùy chọn
react, , cho phép Snort được đóng các kết nối nhanh chóng và có thể là gửi thông báo tới trình duyệt của người dùng cảnh báo trước với họ chống lại việc truy cập vào các trang web bị cấm.
Những tùy chọn sẵn có trong tài liệu phát hành hiện nay là quá nhiều để mà có thể trình bày chi tiết ở đây, nhưng chúng đều là tất cả tài liệu trong User Guide, và đang ngày càng được tăng lên. Không may thay, những tài liệu lại không thường xuyên duy trì được tốc độ sự phát triển nhanh chóng đó.
Phạm vi của các tùy chọn sẽ tăng lên đáng kể trong phiên bản 2.0 của Snort, như những cách mà chúng ta có thể kết hợp được, thì Snort mở ra phạm vi lớn hơn nhiều lần để soạn chữ ký phức tạp ở sâu bên trong của từng gói tin. Ngôn ngữ của luật có thể
được mở rộng nhằm hỗ trợ khả năng diễn tả số byte giữa những bản so khớp nội dung trong một gói tin, cho phép ngôn ngữ diễn tả những bất thường trong các giao thức tầng ứng dụng cũng như là phổ biến khái niệm về chỉ thị mẫu.
Những thứ mà điều này cung cấp hiệu quả là khả năng không hoàn chỉnh dành cho các giao thức tầng ứng dụng mô hình bằng hệ thống tương xứng nội dung của Snort, từ RPC đến HTTP, IMAP. Đây là một khả năng cực kỳ tiện ích còn thiếu trong các phiên bản trước- ví dụ như nó cho phép Snort có những chữ ký cảnh báo nếu một số byte cụ thể bị nhận ra do một ký tự lệnh mà không tìm ra sự kết thúc dòng, thì cho phép lỗi tràn bộ đệm mới khai thác đã bị phát hiện mà không yêu cầu một chữ ký đặc biệt dành cho chúng.
Sử dụng từ khóa Flow cho ta những phương tiện hiệu quả hướng lưu lượng cụ thể hơn nhiều so với tùy chọn flags. Tính năng mới nhằm biệt lập phía server và phía client của một hội thoại TCP sẽ giúp giảm nhanh chóng tính xác thực nhầm, bởi các chữ ký cổng cao một cách kỳ lạ đã khởi đầu trước bằng việc liên hệ với các server của web mà bậy giờ mới có thể có một ràng buộc mới được thêm vào. Điều này cho phép lưu lượng từ cổng 80 được kiểm tra để xem liệu nó là lưu lượng phía client hay lưu lượng phía server.
Những cải tiến này trong trong ngôn ngữ soạn chữ ký của Snort đã tiến một bước xa theo hướng tận dụng sự công nhận chữ ký sự và sức bền đối với những xác thực sai, hai tính năng này sẽ được lộ dần trong các phần kiểm thử tiếp.
Các luật của Snort không phức tạp hay khó một cách đặc biệt, mặc dù đó không phải là phương tiện để mà họ soạn thảo một cách dễ dàng. May thay, có một cộng đồng người dùng khá lớn đã dành thời gian và công sức để phát triển và duy trì Snort cũng như tập luật của Snort.
Điều này có nghĩa là bạn có thể thường xuyên tìm ra những chữ ký đối với những tấn công mới nhất trong vài ngày- hay thậm chí vài giờ do những tấn công này đã được biết bởi những nhóm người dùng hay những website hợp pháp.
Thú vị là, ngôn ngữ luật của Snort cũng được thừa nhận về giá trị hơn qua việc giới thiệu của các luật của Snort thực hiện phân tích công cụ trong các sản phẩm của IDS thương mại- công cụ Trons đang được chú ý nhất đã chứa trong sản phẩm ISS RealSecure/Peoventia, và những chữ ký đầy đủ trạng thái trong sản phẩm Manhunt của Synmantec.
Bằng những phần mềm nguồn mở, một số người dùng đã được yêu cầu thực hiện những điều chắc chắn tồn tại một cách đúng đắn- những tiến trình cốt yếu như là, cập nhật chữ ký tất nhiên là, không thực hiện khi bấm một nút trong một GUI đơn giản theo cách mà chúng có thể trong một IDS mang tính chất thương mại. Cũng cấn chú ý rằng trong một sản phẩm cơ bản, thì việc ứng dụng các chữ ký phải cẩn thận- bằng tay- đối với từng sensor được triển khai trong tổ chức. Một số mức rõ ràng của việc quản trị tập trung có thể là sẵn có theo cách những nguồn mở mang tính chất thương mại khác, nhưng nhiệm vụ đối với nguồn, cài đặt, cấu hình và tích hợp lại tập trung vào người dùng cuối.
Bằng cấu hình và quản trị, những khả năng xử lý những sự kiện mặc định của Snort là đơn giản. Nó không những không có những tùy chọn đầu ra có thẩm quyền, mà nó chỉ là quá trình phân tích và thể hiện thật lượng lớn đồ sộ của dữ liệu được chuyển tới người quản trị đê phân loại ra bằng việc sử dụng những sản phẩm thứ ba.
Snort tách phần đầu ra từ công cụ Snort chính đã cung cấp tính linh hoạt nhiều lần, đầu ra của Snort về cơ bản được tách thành 2- packet log và alert- và các mô đun đầu ra được thực hiện bất cứ khi nào việc cảnh báo hay ghi lại các hệ thống con của Snort được nhắc đến, sau những bộ xử lý trước và công cụ phát hiện.
Việc cảnh báo có thế hoặc “nhanh” (một dòng/ cảnh báo) hoặc “đủ” (nhiều dòng của dữ liệu bao gồm các tiêu đề của gói tin) – hoặc ngắt hoàn toàn- và các cảnh báo có thể được soạn ra cho nhiều đích như là những file log ASCII, syslog, CSDL SQL, các file CSV, socket của Unix hay các thông điệp pop-up của Window. Hiện nay không có thư điện tử cảnh báo, mặc dù điều này có thể đạt được bằng cách sử dụng những công cụ thứ ba.
Mỗi cảnh báo cũng tạo ra một log gói tin giống nhau, trong khi ngược lại, một tập luật log sẽ không tự động tạo một báo động. Những log gói tin ghi lại hoàn chỉnh hay vắn tắt nội dung gói tin thì đều phụ thuộc vào mức độ lựa chọn cụ thể- có thể được viết cho những vị trí đầu ra có phạm vi giống nhau, và giống như cảnh báo, chúng có thể tắt tất cả nếu được yêu cầu.
Bằng những bộ tiền xử lý, một vài tập tùy chọn bộ xử lý trong snort.conf có thế được bỏ qua thông qua những bộ chuyển dòng lệnh. Việc sử dụng cẩn thận log và các luật cảnh báo và những bộ xử lý có thể cung cấp một phạm vi tùy chọn khá rộng cho nhà quản trị trong việc cảnh báo hiệu quả và log dữ liệu pháp ly. Những bộ xử lý nhiều đầu ra có thể được chỉ rõ đối với từng loại đầu ra (cảnh báo hay log) nếu được yêu cầu, vì vậy mà cho phép những cảnh báo được soạn cho cả CSDL và syslog, trong khi các log gói tin đầy đủ lại được viết cho một file xổ nhị phân.
Đối với những ai muốn lựa chọn quá trình xứ lý việc ghi lại gói tin và cảnh báo, thì điều này có thể định nghĩa những loại luật mới (thêm vào log và cảnh báo) và kết hợp với một hay nhiều đầu ra cắm vào riêng biệt cho loại đó. Ví dụ, nhà quản trị có thể tạo ra một kiểu luật mới tên là redalert mà nó có thể là nguyên nhân một cảnh báo đối với syslog và một log gói tin dành cho CSDL MySQL. Kiểu dữ liệu này sau đó có thể được dùng thay cho những lời chỉ dẫn hành động cảnh báo và log trong bất kỳ luật Snort nào.
Những cài đặt mặc định trong cơ cấu phân bổ Snort chuẩn mà cả những cảnh báo lẫn những log gói tin đều được soạn cho các file văn bản trong /var/log/snort. Trong khi những cảnh báo được viết cho một file thì log gói tin lại được viết cho cac file ASCII cá nhân chứa trong một cấu trúc thư mục phân cấp mở rộng dựa trên địa chỉ IP nguồn và kiểu cảnh báo. Điều này có thể thực hiện việc phân tích lượng lớn dữ liệu log gói tin có phần khó khăn, và lý do tất cả những nhà quản trị lại có thể lựa chọn ghi lại CSDL SQL.
Như những gì bạn có thể tưởng tượng, nhiều lượng chữ viết của các file ASCII thành một lượng thư mục con có vẻ như là rất chậm, và vì vậy mà Snort cũng cung cấp một tùy chọn ghi lại bằng nhi phân. Ở đây, các log file được viết thành file nhị phân
tcpdump khá nhanh, mà có thể rồi sau đó thực hiện thông qua một cơ chế offline của Snort riêng biệt để tạo lại cấu trúc thư mục loag gói tin dựa trên mã ASCII dành cho phân tích xa hơn nữa.
Việc ghi lại hợp nhất có thể cũng được sử dụng để tách hoàn toàn Snort từ công việc nặng nề của những CSDL cập nhật một cách trực tiếp. Tiện ích ghi lại tối ưu Barnyard có thể được sử dụng để lấy những file log nhị phân và viết những bản ghi cảnh báo cho một CSDL trong khoảng thời gian thực, nhưng không tác động đến hiệu suất dò tìm của Snort.
2. Báo cáo và phân tích
Không có một công cụ phân tích hay báo cáo nào được xây dựng cho sự phân bổ của Snort. Với những điều này dành cho những người xử lý đầu ra của Snort chuẩn được chứng minh quá ư là cồng kềnh, những công cụ bổ sung khác nhau- giống như
ACID or Snortsnarf- là có sẵn nhầm cung cấp những phương tiện phân tích gần gũi hơn và rộng rãi hơn.
Một vài công cụ bổ sung đòi hỏi sự nỗ lực và hiểu biết nhiều trong cài đặt, cấu hình và duy trì- một vấn đề điển hình với phần mềm nguỗn mở.Mặc dù Snort đang chỉ được dành riêng cho những mạng được sử dụng không nhiều và nhỏ, nhưng chúng ta phải công nhận hiệu suất và những đặc tính cơ bản là tuyệt vời cho phép chính bản thân Snort được triển khai trong những mạng liên hợp lớn
Có một số lượng lớn chữ ký sẵn có – là một trong những điều được xem xét kỹ lưỡng va được cải thiện trong nhiều tháng sau khi phát hành phiên bản 2.0- và không khó khăn chút nào trong việc phát triển cái bạn cần. Đã có sự thay đổi đáng kể được tạo ra trong việc sắp đặt tập chữ ký, loại bỏ các bản sao và những xác thực sai, phân công những phạm vi cố định của các ID chữ ký (SID) dành cho các chữ ký theo thói quen và theo chuẩn, và cung cấp CSDL tham chiếu trực tuyến chữ ký và khai thác dữ liệu để thực hiện những phân tích pháp lý một cách dễ dàng hơn.
Tóm lại, Snort đã chứng minh được nhiều khả năng nhận ra tấn công rất tốt bằng tập luật chuẩn và nó sẽ không lấy sự tùy biến để cải tiến sự kiện này. Việc quản trị một hay nhiều sensor của Snort sẽ là không nhiều, không phức tạp như việc nó là một sản phẩm IDS thương mại điển hình mà sẽ thường xuyên đơn giản hơn trong việc triển khai và quản trị. Việc báo cáo và phân tịch cũng là vấn đề nghiêm trọng của sản phẩm thông thường. Snort thực hiện một công việc tuyệt vời về phát hiện và ghi lại những gói tin đáng ngờ, nhưng những cách thức sau đó của việc truyền những cảnh báo cho nhà quản trị và phân tích dữ liệu đã được ghi lại thì lại chuyển toàn bộ tới người dùng cuối.Thực sự, có nhiều mã nguồn thương mại mở khác nhau sẵn có cung cấp việc quản trị vắng mặt và những khả năng báo cáo, và thật tuyệt khi nhìn thấy những điều này được thực hiện và cài đặt một cách dễ dàng hơn, bằng những nguồn thương mại khác nhau cũng “một click” cài đặt những thủ tục cho nhiều gói đó. Tuy nhiên, không có sẵn những hướng dẫn hữu ích trong việc triển khai những công cụ bổ trợ trên hệ thống điều khiển thông dụng nhất.