Snort it-slideshares.blogspot.com

8,956 views

Published on

more at http://it-slideshares.blogspot.com

Published in: Education, Technology
15 Comments
9 Likes
Statistics
Notes
  • bài viết này hay quá!!!rất là chi tiết...anh có thể gửi cho e xin phần demo đc ko ạ...email của e : thuyphuongnguyen3695@gmail.com . e cảm ơn anh
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • anh ơi có thể gửi cho e xin phần demo đc ko ạ email của e : thuyngan.5594@gmail.com . e cảm ơn ạ
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • a gửi cho e phần demo với được không ạ. Mail e: ngngocdung94@gmail.com. e cảm ơn ạ
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • bác nào có sẵn tài liệu này thì gửi mail e : trinhhongc5@gmail.com vs đc ko ạ, e đang cần bài này gấp lắm ạ. E Cảm ơn nhiều ạ
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • hay
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
8,956
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
755
Comments
15
Likes
9
Embeds 0
No embeds

No notes for slide
  • Hình trên mô tả cấu trúc chuẩn của một hệ thống IDS. Mỗi IDS đều bao gồm các thành phần cơ bản: Sensor (là một packet sniffer) Preprocessors Detection Engine Output (Alerting System và Logging System ) Các thành phần này làm việc này làm việc với nhau để phát hiện các tấn công cụ thể và tạo ra output đã được quy định trước
  • Packet Sniffer là một thiết bị (có thể là phần cứng hoặc là phần mềm) được gắn vào trong hệ thống mạng, có chức năng lắng nghe tất cả các dữ liệu được trao đổi trên hệ thống mạng. Các dữ liệu này sẽ được IDS dùng để phân tích nhằm phát hiện nguy cơ tấn công. Một điểm cần lưu ý là các máy tính này thường gắn 2 interface, đối với interface dùng để lắng nghe dữ liệu trên mạng sẽ được đưa về promiscuous mode (hay còn gọi là trạng thái passsive), khi ở trạng thái này, card mạng sẽ lắng nghe tất cả các dữ liệu trao đổi trên mạng. Interface còn lại được người quản trị sử dụng để theo dõi hoạt của IDS.  
  • Khi cài đặt Snort, mặc định đã bao gồm một số preprocessor, chẳng hạn như Frag3, Stream4, Stream5, Flow, Portscan, HTTP Inspect.
  • HIDS có hai điểm khác biệt khi triển khai so với NIDS. HIDS chỉ theo dõi được host mà nó đang được cài đặt và card mạng hoạt động ở trạng thái bình thường là non-promiscuous (hay còn gọi là trạng thái active). Khi triển khai theo mô hình HIDS có một số điểm thuận lợi như sau: Card mạng chỉ cần hoạt động ở chế độ bình thường nên không cần phải trang bị thêm card mạng mới, bởi vì không phải tất cả các card mạng đều có khả năng chuyển sang trạng thái promiscuos . Khi hoạt động ở chế độ bình thường sẽ không yêu cầu nhiều xử lý của CPU so với trạng thái promiscuous. Do chỉ theo dõi cho một host cụ thể nên HIDS có thể theo dõi sâu hơn về những thông tin của hệ thống như system calls, những thay đổi trong file hệ thống, system logs. Người quản trị có thể linh động cấu hình tập hợp các rule cho từng host cụ thể. Ví dụ như không cần phải sử dụng rule để phát hiện tấn công DNS trong khi một máy tính không chạy dịch vụ DNS. Do đó có thể giảm bớt những rule không cần thiết, giúp tăng cường hiệu suất và giảm thiểu những xử lý quá tải.
  • Trước phiên bản 2.6, Snort chỉ hỗ trợ static plug-in. Khi cần gắn thêm plug-in, trước hết cần phải stop Snort, sau đó phải biên dịch lại toàn bộ Snort cùng với plug-in mới. Bắt đầu từ phiên bản 2.6 trở về sau, Snort hỗ trợ dynamic plug-ins (cần lưu ý trong lần biên dịch đầu tiên phải biên dịch với tham số --enable-dynamic-plugin để kích hoạt chức năng này). Với dynamic plug-ins, ta có thể xây chép trực tiếp plug-in vào thư mục plug-in của Snort, thêm khai báo mới trong file cấu hình, sau đó chỉ cần reststart lại Snort. API của static plug-ins và dynamic plug-ins không khác nhau nhiều.
  • Cách tổ chức phân cấp này hữu dụng khi một số giới hạn các host được quan tâm hoặc bạn muốn xem thoáng qua các địa chỉ IP của các host được bắt giữ. Tuy nhiên, thư mục log có thể ngày càng nhiều vì sự gia tăng thư mục và các file. Nếu bạn ghi log tất cả lưu lượng trên một mạng lớn thì có thể sẽ bị tràn inodes ( Unix giới hạn tổng số file trong một file hệ thống) trước khi bị tràn bộ nhớ. Nếu một người nào đó thực hiện việc quét mạng của bạn và ánh xạ tất cả 65536 cổng TCp cũng như 65536 cổng UDP, bạn sẽ đột ngột có hơn 131000 file trong một thư mục đơn. Sự bùng nổ file này có thể là một thử thách lớn cho bất kì một máy nào, và rất dễ trở thành cách tấn công DoS. Việc ghi log theo kiểu nhị phân có thể đọc được bởi Snort, tcpdump hoặc ethereal. Cách này làm tăng tốc độ và khả năng vận chuyển của việc bắt giữ gói tin. Hầu hết các hệ thống có thể bắt giữ và ghi log với tốc độ 100 Mbps mà không có vấn đề gì. Để ghi log các gói tin theo kiểu nhị phân, sử dụng –b switch.
  • Action là phần đầu tiên của trong luật Snort. Nó cho ta biết snort sẽ xử lý như thế nào khi bắt gặp gói tin thỏa các điều kiện. Action chỉ thực hiện khi gói tin thỏa tất cả các điều kiện trong luật. Có 5 mức action khác nhau : Alert : Được sử dụng để gởi thông điệp cảnh khi Snort bắt gặp gói tin thỏa các điều kiện trong luật. Bạn có thể gửi thông báo ra file hoặc cửa sổ dòng lệnh. Snort sẽ gửi ra thông điệp cảnh báo và ghi chú lại vào file log. Log : Được sử dụng để ghi chú lại một gói dữ liệu. Có thể ghi chú vào file log hoặc cơ sở dữ liệu. Dữ liệu có thể được ghi lại ở những mức khác nhau bằng cách chỉ định bởi các tham số trong cửa sổ dòng lệnh hoặc trong file cấu hình. Pass : Khi sử dụng action này Snort sẽ cho dữ liệu đi qua. Action này rất quan trọng giúp cho snort chạy nhanh hơn trong trường hợp bạn không muốn kiểm tra gói tin. Active : Được sử dụng để tạo ra thông báo và thực hiện tiếp tục một luật khác để kiểm tra các điều kiện nhiều hơn. Luật được gọi thực hiện tiếp tục phải có action là Dynamic. Dynamic : Được gọi bởi một luật khác sử dụng action active.   Nếu bạn chạy snort ở chế độ inline, bạn có thêm các tùy chọn Drop : làm cho iptables hủy bỏ gói dữ liệu và ghi chú lại. Reject : giống như drop action nhưng sau đó sẽ gửi TCP reset nếu giao thức là TCP hoặc thông báo “ICMP port unreachable” nếu giao thức là UDP. Sdrop : iptables hủy gói tin nhưng không ghi chú lại. Định nghĩa Action : Có thể định nghĩa kiểu báo động cho luật trong trường hợp bạn muốn các cảnh báo được chi tiết hơn. Có thể sử dụng các kiểu action có sẵn trong luật của snort.
  • Snort sử dụng ký tự “!” để loại trừ địa chỉ. Khi sử dụng kí tự này, snort sẽ không kiểm tra dữ liệu đến và đi từ địa chỉ này. Kí tự “->” : bên trái direction là địa chỉ và cổng nguồn, bên phải direction là địa chỉ và cổng đích. Kí tự “<-“ cho ta biết gói dữ liệu có địa chỉ và cổng đi từ bên phải qua bên trái direction. Kí tự “<>” rule sẽ áp dụng chiều đi của dữ liệu từ cả 2 hướng. kí tự này sử dụng khi bạn muốn kiểm soát dữ liệu trên cả 2 hướng client và server
  • Đây là dạng tấn công làm ngập gói tin ICMP ECHO REPLY. Sự khác biệt lớn giữa nó với gói tin ICMP ping “thật” là ở 2 trường: icmp_id = 0x00 và sequence number = 0x00 (gói ping thật có id # 0,sequence number # 0). Ngoài ra attcaker thường tăng kích thước payload mặc định của gói tin ping (32 byte) để nhanh chóng làm ngập mạng victim.
  • Đây là dạng tấn công chiếm dụng 100% tài nguyên CPU bằng các gói tin IP. Đặc điểm nhận dạng là nó có kích thước bằng 408 byte cho mỗi gói tin IP phân mảnh. Attacker thường lợi dụng sự phân mảnh để đánh lừa IDS Từ khóa fragbits : Tiêu đề IP (IP header) chứa 3 cờ bit, dùng để phân mảnh và tái hợp gói IP. Chức năng các cờ như sau: · Bit dành riêng (RB – Reserved Bit), dùng cho tương lai. · Bit không phân mảnh (DF – Don’t Fragment Bit). Nếu bit này bật, nó cho biết gói IP sẽ không phân mảnh. · Bit có nhiều phân mảnh (MF – More Fragments Bit). D tương đương DF. Tương tự, R là RB, M là MF. Bạn cũng có thể dùng dấu “!” trong rule. Ngoài ra, đi chung với “D,R,M”, ta cũng thường thấy các từ “+,-”. Nó có ý nghĩa, nếu là “+” tức là gắn thêm bit cờ với những bit khác, nếu là “-” thì bỏ bớt một số bit.
  • Teardrop sử dụng gói tin UDP có chỉ số ID trong IP header là 242.Gói tin này là gói có nhiều phân mảnh
  • Snort it-slideshares.blogspot.com

    1. 1. IDS Snort 10/1/2009 GVHD : TS.Phạm Văn Tính
    2. 2. <ul><li>Hoàng Tiến Long </li></ul><ul><li>Ngô Trần Khánh Châu </li></ul><ul><li>Nguyễn Ngọc Thắm </li></ul><ul><li>Võ Hà Tiến </li></ul><ul><li>Nguyễn Minh Tiến </li></ul>10/1/2009 IDS Snort
    3. 3. <ul><li>Phần I : IDS </li></ul><ul><ul><li>Khái niệm, phân loại. </li></ul></ul><ul><ul><li>Kiến trúc </li></ul></ul><ul><ul><li>Triển khai. </li></ul></ul><ul><li>Phần II : Snort. </li></ul><ul><ul><li>Giới thiệu. </li></ul></ul><ul><ul><li>Cài đặt. </li></ul></ul><ul><ul><li>Snort rule. </li></ul></ul><ul><li>Phần III : Demo </li></ul>10/1/2009 IDS Snort
    4. 4. <ul><li>Là một hệ thống (phần mềm, phần cứng, hoặc kết hợp cả hai) để phát hiện các hành vi xâm nhập bất hợp phát vào mạng. </li></ul><ul><li>Phát hiện các hành động trong tiến trình tấn công (FootPrinting, Scanning, Sniffer…), cung cấp thông tin nhận biết và đưa ra cảnh báo. </li></ul><ul><li>Kỹ thuật sử dụng trong IDS có thể là : signature hoặc anomaly-based , cũng có thể kết hợp cả hai. </li></ul>10/1/2009 IDS Snort
    5. 5. <ul><li>Cài đặt như một agent trên một host cụ thể. Phân tích log của hệ điều hành hoặc các ứng dụng so sánh các sự kiện với cơ sở dữ liệu để phát hiện các vi phạm về bảo mật và đưa ra cảnh báo. </li></ul><ul><li>Nếu có vi phạm HIDS ghi nhận lại các hành động đó, đưa ra cảnh báo, và có thể ngừng hành động lại trước khi nó xảy ra . </li></ul><ul><li>HIDS có thể dùng để theo dõi log (log monitors), giám sát tính toàn vẹn (intergrity monitors), phát hiện xâm nhập ở mức kernel (kernel module) </li></ul>10/1/2009 IDS Snort
    6. 6. <ul><li>Dùng để bắt các gói tin trong môi trường mạng, so sánh giữa dữ liệu thu thập được với cơ sở dữ liệu nhằm phát hiện các dấu hiệu tấn công. </li></ul><ul><li>Khi có tấn công NIDS sẽ log các gói tin vào cơ sở dữ liệu, cảnh báo hoặc đưa vào Firewall. </li></ul>10/1/2009 IDS Snort
    7. 7. 10/1/2009 IDS Snort Host IDS - HIDS Network - NIDS HIDS chỉ quan sát các host , hệ điều hành, hoạt động của ứng dụng (thường làm những công việc như phân tích log, kiểm tra tính toàn vẹn…) NIDS nhìn toàn cảnh luồng dữ liệu trên mạng (NIDS thường được coi như là sniffer)  Chỉ phát hiện những cuộc tấn công đã thành công.  NIDS phát hiện những cuộc tấn công tiềm năng. Hoạt động hiệu quả trong những môi trường chuyển mạch, mã hóa, tốc độ cao. Rất khó hoạt động trong những môi trường này.
    8. 8. 10/1/2009 IDS Snort PREPROCESSORS OUTPUT SENSOR DETECTION ENGINE ALERT SYSTEMS LOGGING SYSTEMS
    9. 9. 10/1/2009 IDS Snort
    10. 10. 10/1/2009 IDS Snort
    11. 11. 10/1/2009 IDS Snort
    12. 12. 10/1/2009 IDS Snort
    13. 13. 10/1/2009 IDS Snort
    14. 14. 10/1/2009 IDS Snort
    15. 15. <ul><li>Hệ thống IDS (signature-based) cần một cơ sở dữ liệu đã có sẵn về các kiểu tấn công để nhận biết các cuộc tấn công có thể xảy ra, dựa vào dấu hiệu nhận biết nào đó (signatures)  cập nhật signatures mới. </li></ul><ul><li>Bản thân IDS không chống lại các cuộc tấn công, hay ngăn chặn quá trình khai thác lỗi, mà nó chỉ dò tìm và đưa ra cảnh báo. </li></ul><ul><li> Đặt IDS ở đâu trong hệ thống mạng để mang lại hiệu quả cao nhất ???? </li></ul>10/1/2009 IDS Snort
    16. 16. 10/1/2009 IDS Snort
    17. 17. 10/1/2009 IDS Snort Chiến lược triển khai IDS phụ thuộc vào chính sách bảo mật và tài nguyên cần bảo vệ. Càng nhiều IDS thì đồng nghĩa với việc hệ thống chậm đi và chi phí bảo trì sẽ tăng lên.
    18. 18. 10/1/2009 IDS Snort
    19. 19. <ul><li>Snort là một IDS kiểu signature – based. Chạy được trên cả Windows và Linux. </li></ul><ul><li>Snort có các tập luật lưu trữ trong các file text, các luật được nhóm thành các loại khác nhau và được chứa trong những file riêng cho từng nhóm. Các file này được chỉ ra trong file cấu hình snort.conf . </li></ul><ul><li>Snort sẽ đọc các luật lúc khởi động và xây dựng một cấu trúc dữ liệu hoặc các chuỗi để áp dụng các luật đó lên dữ liệu thu thập được. </li></ul>10/1/2009 IDS Snort
    20. 20. <ul><li>Snort được cung cấp 1 tập hợp phong phú các luật đã được định nghĩa trước, tuy nhiên người dùng có thể tự định nghĩa và đưa thêm các luật mới hoặc loại bỏ một số luật không cần thiết. </li></ul><ul><li>Snort là stateful IDS, nó có thể sắp xếp và ghi nhận các cuộc tấn công dựa trên phân đoạn TCP. </li></ul><ul><li>Snort có thể phát hiện được nhiều loại xâm nhập như : buffer overflows, stealth port scans, CGI attacks, SMB probes, OS fingerprinting attempts … </li></ul>10/1/2009 IDS Snort
    21. 21. <ul><li>Snort có thể cài đặt ở 2 chế độ là inline hoặc passive. </li></ul><ul><li>Inline: Snort tích hợp với tường lửa để kích hoạt tường lửa khóa hay drop hoặt các hành động khác nhằm ngăn chặn cuộc tấn công mà nó phát hiện. </li></ul><ul><li>Passive: Snort chỉ phát hiện xâm nhập, nghi log và cảnh báo. </li></ul>10/1/2009 IDS Snort
    22. 22. <ul><li>Apache </li></ul><ul><li>PHP </li></ul><ul><li>My Sql </li></ul><ul><li>BASE </li></ul><ul><li>Libpcap </li></ul><ul><li>Libnet </li></ul><ul><li>Perl </li></ul><ul><li>Pear </li></ul><ul><li>Snort </li></ul>10/1/2009 IDS Snort
    23. 23. <ul><li>Sử dụng </li></ul><ul><li>rpm –qa | grep <tên gói> </li></ul><ul><li>Để kiểm tra xem gói đó đã cài đặt đủ chưa. </li></ul><ul><li>Sử dụng : </li></ul><ul><li>yum install <tên gói> </li></ul><ul><li>Để cài đặt những gói còn thiếu. </li></ul><ul><li>Đối với những gói .rpm : </li></ul><ul><li>rpm –ivh <tên gói .rpm> </li></ul>10/1/2009 IDS Snort
    24. 24. <ul><li>Sử dụng : </li></ul><ul><li>wget <url> </li></ul><ul><li>Để download các gói cài đặt từ một trang web. </li></ul><ul><li>Đối với những gói .tar.gz : </li></ul><ul><li>tar –xvzf <tên gói.tar.gz> </li></ul><ul><li>cd <tên gói> </li></ul><ul><li>./configure [option] </li></ul><ul><li>make && make install </li></ul>10/1/2009 IDS Snort
    25. 25. <ul><li>Mặc định đã cài sẵn, sử dụng : </li></ul><ul><li>rpm –qa | grep http </li></ul><ul><li> httpd-manual-2.2.11-2.fc10.i386 </li></ul><ul><li> httpd-tools-2.2.11-2.fc10.i386 </li></ul><ul><li> httpunit-1.6.2-2.fc10.noarch </li></ul><ul><li> httpd-2.2.11-2.fc10.i386 </li></ul><ul><li> mod_ssl-2.2.11-2.fc10.i386 </li></ul>10/1/2009 IDS Snort
    26. 26. <ul><li>Mặc định cài sẵn: </li></ul><ul><li>rpm –qa | grep mysql </li></ul><ul><li> mysql-5.0.77-1.fc10.i386 </li></ul><ul><li>mysql-server-5.0.77-1.fc10.i386 </li></ul><ul><li>mysql-devel-5.0.77-1.fc10.i386 </li></ul><ul><li>mysql-libs-5.0.77-1.fc10.i386 </li></ul><ul><li>php-mysql-5.2.6-5.i386 </li></ul>10/1/2009 IDS Snort
    27. 27. <ul><li>Mặc định đã được cài sẵn: </li></ul><ul><ul><li>rpm –qa | grep php </li></ul></ul><ul><li> php-5.2.6-5.i386 </li></ul><ul><li>php-devel-5.2.6-5.i386 </li></ul><ul><li>php-mysql-5.2.6-5.i386 </li></ul><ul><li>php-pdo-5.2.6-5.i386 </li></ul><ul><li>php-ldap-5.2.6-5.i386 </li></ul><ul><li>php-common-5.2.6-5.i386 </li></ul><ul><li>php-pear-1.7.2-2.fc10.noarch </li></ul><ul><li>php-gd-5.2.6-5.i386 </li></ul><ul><li>php-cli-5.2.6-5.i386 </li></ul>10/1/2009 IDS Snort
    28. 28. <ul><li>Ngoài ra còn cần có prel (đã cài sẵn), libpcap, libnet. Bạn nên cài từ source. Sử dụng lệnh: </li></ul><ul><li> wget <url> </li></ul><ul><li>Ví dụ : </li></ul><ul><li>wget http://ftp.gnu.org/gnu/bison/bison-2.4.1.tar.gz </li></ul><ul><li>Sau đó cài như một gói .tar.gz. </li></ul>10/1/2009 IDS Snort
    29. 29. <ul><li>Những gói trên là tối thiểu phải có. Nếu thiếu bất kỳ gói nào dùng lệnh : </li></ul><ul><li> yum install <tên gói> </li></ul><ul><li>để cài thêm vào. </li></ul><ul><li>Start apache và mysql lên: </li></ul><ul><li>service httpd start </li></ul><ul><li>service mysqld start </li></ul>10/1/2009 IDS Snort
    30. 30. <ul><li>Download : </li></ul><ul><ul><li>snort-2.8.x.x.tar.gz </li></ul></ul><ul><ul><li>snortrules-2.8.tar.gz </li></ul></ul><ul><ul><li>Từ trang http://www/snort.org </li></ul></ul><ul><li>Lưu ý : thường trong quá trình cài snort sẽ gặp lỗi libipq.h lỗi này liên quan đến iptables do biên dịch snort ở chế độ inline. Khi đó, cài thêm iptables-devel , khởi động lại dịch vụ, ok. </li></ul>10/1/2009 IDS Snort
    31. 31. <ul><li>#tar –xvzf snort-2.8.5.1.tar.gz </li></ul><ul><li>#cd snort-2.8.5.1 </li></ul><ul><li>#./configure --with-mysql --enable-dynamic-plugin --enable-inline </li></ul><ul><li>#make </li></ul><ul><li>#make install </li></ul><ul><li>Sử dụng ./configure --help để xem các tùy chọn khác của snort. </li></ul>10/1/2009 IDS Snort
    32. 32. <ul><li>Tạo thư mục snort trong /etc </li></ul><ul><li>#mkdir /etc/snort </li></ul><ul><li>#mkdir /etc/snort/rules </li></ul><ul><li>Copy những file cấu hình của snort vào thư mục vừa tạo: </li></ul><ul><li>#cd /usr/local/snort-2.8.5.1/etc </li></ul><ul><li># cp * /etc/snort </li></ul>10/1/2009 IDS Snort
    33. 33. <ul><li>Giải nén snortrule-2.8.tar.gz </li></ul><ul><li>#tar –xvzf snortrule-2.8.tar.gz </li></ul><ul><li>#cd rules </li></ul><ul><li>#cp * /etc/snort/rules/ </li></ul><ul><li>Tạo symbolic link cho snort </li></ul><ul><li>#ln –s /usr/local/bin/snort /usr/sbin/snort </li></ul>10/1/2009 IDS Snort
    34. 34. <ul><li>Để snort chạy như một dịch vụ chúng ta cần user, usergroup cho snort: </li></ul><ul><li>#groupadd snort </li></ul><ul><li>#useradd –g snort snort </li></ul>10/1/2009 IDS Snort
    35. 35. <ul><li>Tạo và set quyền chủ nhân, quyền thực thi của snort cho file log. </li></ul><ul><li>#mkdir/var/log/snort </li></ul><ul><li>#chown –R snort:snort /var/log/snort </li></ul><ul><li>#chown 664 /var/log/snort </li></ul>10/1/2009 IDS Snort
    36. 36. <ul><li>#vim /etc/snort/snort.conf </li></ul><ul><li>Tìm đến dòng: </li></ul><ul><li>var RULE_PATH ../rules sửa lại thành. </li></ul><ul><li>var RULE_PATH /etc/snort/rules đây là thư mục chứa tập luật. </li></ul><ul><li>Chỉ ra output database – database lưu trữ những log </li></ul><ul><li>output database: log, mysql , user =snort, password = long dbname =snort host =localhost </li></ul>10/1/2009 IDS Snort
    37. 37. <ul><li>#cd /usr/local/snort-2.8.4.1/rpm/ </li></ul><ul><li># cp snortd /etc/init.d/ # cp snort.sysconfig /etc/sysconfig/snort </li></ul><ul><li># chmod 755 /etc/init.d/snortd # chkconfig snortd on # chkconfig --add /etc/init.d/snortd # chkconfig snortd on </li></ul>10/1/2009 IDS Snort
    38. 38. <ul><li>#mysql –u root </li></ul><ul><li>>set password ‘root’@‘ localhost’ = password( ‘241288’); </li></ul><ul><li>>flush privileges; </li></ul><ul><li>>use mysql; </li></ul><ul><li>>CREATE USER ‘snort’@‘ localhost’ IDENTIFIED BY ‘long’; </li></ul><ul><li>>flush privileges; </li></ul>10/1/2009 IDS Snort
    39. 39. <ul><li>> create database snort; </li></ul><ul><li>> GRANT CREATE, INSERT, SELECT, DELETE, UPDATE ON snort.* to snort@localhost; </li></ul><ul><li># cd /usr/local/snort-2.8.5.1/schemas/ </li></ul><ul><li># mysql -u root -p < create_mysql snort </li></ul><ul><li>Test: </li></ul><ul><li>#mysql –u root –p </li></ul><ul><li>>use snort; </li></ul><ul><li>>show tables; </li></ul>10/1/2009 IDS Snort
    40. 40. <ul><li>Do web sevrer và php đã được cài đặt sẵn, chúng ta chỉ cần cài thêm pear cho php </li></ul><ul><li># pear install Image_Graph-alpha Image_Canvas-alpha Image_Color Numbers_Roman </li></ul><ul><li>Cài addob: </li></ul><ul><li># wget http://nchc.dl.sourceforge.net/sourceforge/ </li></ul><ul><li>adodb/adodb508a.tgz </li></ul><ul><li># cp adodb508a.tgz /var/www/html/ </li></ul><ul><li># cd /var/www/html/ </li></ul><ul><li># tar -xvzf adodb508a.tgz </li></ul>10/1/2009 IDS Snort
    41. 41. <ul><li># wget http://nchc.dl.sourceforge.net/sourceforge/ </li></ul><ul><li>secureideas/base-1.4.2.tar.gz </li></ul><ul><li># cp base-1.4.2.tar.gz /var/www/html/ </li></ul><ul><li># cd /var/www/html/ </li></ul><ul><li>#tar -xzvf base-1.4.2.tar.gz </li></ul><ul><li># cp base_conf.php.dist base_conf.php </li></ul>10/1/2009 IDS Snort
    42. 42. <ul><li>#vim base_conf.php </li></ul><ul><li>$DBlib_path = '/var/www/html/adodb5'; </li></ul><ul><li>$DBtype = 'mysql'; </li></ul><ul><li>$alert_dbname = 'snort'; </li></ul><ul><li>$alert_host = 'localhost'; </li></ul><ul><li>$alert_port = ''; </li></ul><ul><li>$alert_user = 'snort'; </li></ul><ul><li>$alert_password = ‘long'; </li></ul>10/1/2009 IDS Snort
    43. 43. <ul><li>http://127.0.0.1/base-1.4.2 </li></ul><ul><li>Chỉ đường dẫn đến thư viện adodb </li></ul><ul><li>Khai báo các giá trị cho co sở dữ liệu lưu file log. Như là : Database Name, Database Host, Database User, Database Password là username và password để truy cập cơ sở dữ liệu . </li></ul><ul><li>Tạo BASE AG (tạo cơ sở dữ liệu cho BASE) </li></ul>10/1/2009 IDS Snort
    44. 44. 10/1/2009 IDS Snort
    45. 45. 10/1/2009 IDS Snort
    46. 46. 10/1/2009 IDS Snort
    47. 47. 10/1/2009 IDS Snort
    48. 48. 10/1/2009 IDS Snort
    49. 49. <ul><li>#snort –A : Cài đặt chế độ cảnh báo (altert-mode). </li></ul><ul><li>Có nhiều mode hổ trợ như : fast, full, console, test or none. </li></ul><ul><li>Dùng mode console để in ra màn hình và ghi các file log. </li></ul><ul><li>Fast mode dùng trong chế độ tốc độ đường truyền cao . </li></ul>10/1/2009 IDS Snort
    50. 50. <ul><li>#snort –v : bật chế độ sniffer. In toàn bộ gói dữ liệu bắt được trên console (hiển thị các header IP,TCP/UDP/ICMP ). Card mạng phải ở chế độ promiscuous mode . </li></ul><ul><li>#snort –d : hiển thị dữ liệu ở layer Application </li></ul><ul><li>#snort –e : hiển thị thông tin về header ở layer 2. </li></ul><ul><li>#snort –vde : c ác chuỗi thập lục phân hiển thị nhiều dữ liệu hơn. Có địa chỉ MAC và địa chỉ IP. –vde cung cấp nhiều thông tin nhất. </li></ul>10/1/2009 IDS Snort
    51. 51. <ul><li>Lưu thông tin xuống file: </li></ul><ul><ul><li>snort –dev –l [filename] </li></ul></ul><ul><li>Lưu thông tin ở dạng binary: </li></ul><ul><ul><li>snort –l [filename] -b </li></ul></ul><ul><li>Đọc ngược thông tin từ file binary: </li></ul><ul><ul><li>snort –dv –r [filename] </li></ul></ul><ul><ul><li>snort –dv –r [filename] icmp </li></ul></ul>
    52. 52. <ul><li>#snort –l /var/log/Snort : chỉ định thư mục lưu file log. Quá trình lưu trữ theo kiểu phân cấp. Mỗi một địa chỉ sẽ có một thư mục và những gì liên quan đến địa chỉ đó sẽ được lưu trong đây. </li></ul><ul><li>Snort lưu các gói tin thành các file ASCII, với tên file được tạo ra từ giao thức và số cổng. </li></ul><ul><li>#snort –b : Log gói tin dạng tcpdump. Ghi log rất nhanh </li></ul>10/1/2009 IDS Snort
    53. 53. <ul><li>#snort –c :Config-file ,chỉ định file cấu nào muốn sử dụng. </li></ul><ul><li>#snort –D :Chạy Snort ở chế độ background. </li></ul><ul><li>#snort –I :Interface, Chỉ định interface nào Snort sẽ lắng nghe. </li></ul><ul><li>#snort –s :Gửi alert message đến syslog . </li></ul><ul><li>#snort –T : Kiểm tra và báo cáo về cấu hình hiện tại của snort. </li></ul><ul><li>#snort –y : Thêm năm và ngày giờ vào thông điệp cảnh báo và file log. </li></ul>10/1/2009 IDS Snort
    54. 54. <ul><li>Nhận gói và xử lý nó trước khi rule áp dụng </li></ul><ul><li>lên gói (input plug_in) </li></ul><ul><li>Cú pháp: </li></ul><ul><li>preprocessor <preprocessor_name>[: <configuration_options>] </li></ul><ul><li>VD: </li></ul><ul><li>preprocessor frag2 </li></ul><ul><li>preprocessor stream4: detect_scans </li></ul>
    55. 55. <ul><li>Cấu hình: </li></ul><ul><li>output <output_module_name>[: <configuration_options>] </li></ul><ul><li>VD : </li></ul><ul><li>output database: alert, mysql, user=rr password=boota </li></ul><ul><li>dbname=snort host=localhost </li></ul>
    56. 56. <ul><li>Snort dựa vào các tập luật để phát hiện tấn công. </li></ul><ul><li>Các luật thường được lưu trữ trong file snort.conf. Có thể sử dụng nhiều file bằng cách thêm đường dẫn đến các file luật này vào file cấu hình chính. </li></ul><ul><li>Mỗi luật được viết trên một dòng. </li></ul><ul><li>Một rule có thể phát hiện nhiều loại xâm nhập. </li></ul>10/1/2009 IDS Snort
    57. 57. <ul><li>Gồm 2 phần rule header, rule option. </li></ul><ul><li>Rule header : chứa thông tin về hành động mà luật sẽ thực hiện. Tiêu chuẩn của việc so sánh luật trên một gói tin. </li></ul><ul><li>Rule option: chứa thông điệp cảnh báo. Và thông tin thông tin về phần nào của gói tin được sử dụng để tạo ra cảnh báo. </li></ul>10/1/2009 IDS Snort Rule Header Rule Option
    58. 58. <ul><li>action protocol address port </li></ul><ul><li> direction address port </li></ul><ul><li>(option1 : <value1> ;option2: <value2>;…..) </li></ul>10/1/2009 IDS Snort Lưu ý : dấu “” ở đây nghĩa là xuống hàng. Mỗi luật nên viết trong một dòng.
    59. 59. <ul><li>Action : các định kiểu hành động khi gói tin thỏa các điều kiện. Thường là tạo cảnh báo và ghi log (alert, log). </li></ul><ul><li>nếu cài snort ở chế độ inline có thể chọn drop để iptables hủy gói dữ liệu. </li></ul>10/1/2009 IDS Snort Action Protocol Port Address Port Direction Address
    60. 60. <ul><li>Protocol : snort có thể phân tích được giao thức bao gồm : TCP, UDP, ICMP,IP. </li></ul><ul><li>Address : địa chỉ nguồn, đích. Address có thể của một host, nhiều host hoặc địa chỉ mạng. </li></ul><ul><li>Direction: xác định địa chỉ và cổng của nguồn và đích đến ( -> , <-,< > ). </li></ul><ul><li>Port: chỉ dùng trong giao thức TCP, UDP để xác định cổng ngồn và đích của một gói tin mà luật được áp dụng. </li></ul>10/1/2009 IDS Snort
    61. 61. <ul><li>Theo sau rule header, được đặt trong ‘( )’, các option ngăn cách nhau ‘;’ </li></ul><ul><li>Một action chỉ được thực hiện khi tất cả option đều thỏa. </li></ul><ul><li>Một option bao gồm từ khóa và tham số. </li></ul><ul><li>Các tham số phân biệt nhau ‘:’ </li></ul><ul><li>Nếu có nhiều option chúng sẽ AND lại với nhau. </li></ul>10/1/2009 IDS Snort
    62. 62. <ul><li>classtypes: <name>; phân loại luật cho một kiểu tấn công cụ thể. Kết hợp với file /etc/snort/classification.config </li></ul><ul><li>config classification: name,description,priority </li></ul><ul><ul><li>Name là tên được sử dụng để phân loại. Tên được sử dụng với từ khóa classtype trong viết luật. </li></ul></ul><ul><ul><li>Description : mô tả ngắn về kiểu phân loại. </li></ul></ul><ul><ul><li>Priority : thứ tự ưu tiên mặc định cho sự phân loại, có thể thay đổi được bằng từ khóa priority trong Rule Option. </li></ul></ul>10/1/2009 IDS Snort
    63. 63. <ul><li>ack : <number> ; thường được dùng để biết có đang bị quét cổng hay không. Chỉ có nghĩa khi cờ ack trong TCP header được bật. </li></ul><ul><li>msg : <message> ; ghi thêm chuỗi ký tự vào log và cảnh báo. Thông điệp để trong “”. </li></ul><ul><li>content : < straight text> ; or content : <hex data > ; Tìm ra chữ ký (signature) trong header của gói dữ liệu. </li></ul>10/1/2009 IDS Snort
    64. 64. <ul><li>offset : < value > ; dùng với content cho biết bắt đầu tìm kiếm từ đâu. </li></ul><ul><li>depth : < value > ; dùng với content xác định vị trí kết thúc của đoạn dữ liệu cần so sánh với vị trí ban đầu. </li></ul><ul><li>dsize : [<|>|=] < number > ; tìm chiều dài của một gói tin. (các tấn công buffer overflows ) </li></ul>10/1/2009 IDS Snort
    65. 65. <ul><li>rev: < revision integer >; cho biết số phiên bản của snort. </li></ul><ul><li>priority: < value >; t ừ khóa priority gán độ ưu tiên cho một luật. </li></ul><ul><li>nocase: dùng kết hợp với content, để tìm nội dung mà không phân biệt hoa thường. </li></ul><ul><li> Xem file đính kèm để biết các tùy chọn khác. </li></ul>10/1/2009 IDS Snort
    66. 66. <ul><li>Luật được đặt ở cuối file snort.conf. có thể tạo ra nhiều luật sử dụng các biến đã định nghĩa trong file này. </li></ul><ul><li>Có thể định nghĩa file .rules. Trong file snort.conf dùng include để chỉ đến file này. </li></ul><ul><li># include $RULE_PATH/web-attacks.rules </li></ul><ul><li>Có rất nhiều luật đã được định nghĩa sẵn chứa trong thư mục /etc/snort/rules. </li></ul>10/1/2009 IDS Snort
    67. 67. <ul><li>alert tcp192.168.1.0/24 23-> any any (content: “confidential”; msg: “Detect confidential”;) </li></ul><ul><li> bắt các gói dữ liệu đến từ địa chỉ nguồn thuộc mạng 192.168.1.0 /24và cổng nguồn 23, tới tất cả các địa chỉ trong mạng đích và tất cả các cổng đích. Tìm signature trong header của gói dữ liệu có nội dung “confidential”. Giao thức sử dụng là tcp. </li></ul>10/1/2009 IDS Snort
    68. 68. <ul><li>alert tcp any any -> 192.168.1.0/24 80 </li></ul><ul><li>(flags: A; ack: 0; msg: “TCP ping detected”;) </li></ul><ul><li>Phát hiện ai đó sử dụng Nmap để quét cổng. Với gói dữ liệu gửi đi có trường ack = 0, gửi tới cổng 80 bằng giao thức tcp. </li></ul><ul><li>Từ khóa flags được sử dụng đề tìm cờ được thiết lập trong header TCP của gói tin. </li></ul>10/1/2009 IDS Snort
    69. 69. <ul><li>config classification: denial-of-service,Detection of a Denial of Service Attack,2 </li></ul><ul><li>alert udp any any -> 192.168.1.0/24 6838 (msg: “Dos”;content: “server” ;classtype: denial-of-service;) </li></ul><ul><li>alert udp any any -> 192.168.1.0/24 6838 (msg : “Dos”;content: “server”;classtype: denial-of-service;priority: 1;) </li></ul>10/1/2009 IDS Snort
    70. 70. <ul><li>alert tcp 192.168.1.0/24 any -> any any (content: “HTTP”; offset: 4; depth: 40; msg: “HTTP matched”;) </li></ul><ul><li> Tìm từ HTTP trong header TCP của gói dữ liệu đến từ vị trí thứ 4 đến vị trí 40. </li></ul><ul><li> Thỏa thì xuất thông báo HTTP matched. </li></ul>10/1/2009 IDS Snort
    71. 71. <ul><li>Smurf attack </li></ul><ul><li>Jolt attack. </li></ul><ul><li>Teardrop attack. </li></ul>10/1/2009 IDS Snort
    72. 72. <ul><li>Alert icmp $EXTERNAL_NET any - > 192.168.77.129 any (msg: ”Demo smurf attack”; sid:1000010; dsize>32 ; itype:0 ; </li></ul><ul><li>icmp_seq:0 ; icmp_id:0 ;) </li></ul>
    73. 73. <ul><li>alert ip $EXTERNAL_NET any -> 192.168.77.129 any (msg:“Demo DOS Jolt attack&quot;; dsize:408 ; fragbits:M ;sid:268;rev:4; ) </li></ul>
    74. 74. <ul><li>alert udp $EXTERNAL_NET any -> 192.168.77.129 any (msg:“Demo DOS Teardrop attack&quot;; fragbits:M; id:242 ;sid:270;rev:6;) </li></ul>
    75. 75. <ul><li>Managing security with Sornt and IDS tool </li></ul><ul><li>Snort Cookbook (2005) </li></ul><ul><li>Snort2.1IntrusionDetectionSecondEdition </li></ul><ul><li>snort.forum.org </li></ul><ul><li>securityfocus.com </li></ul>10/1/2009 IDS Snort

    ×