oViệc nghiên cứu giúp cho khả năng tự học ,tìm hiểu và nghiên cứu độc lập ngày càng tốt hơnoNghiên cứu về hệ thống ngăn ngừa và phát hiện xâm nhập IDSIPSoTriển khai hệ thống phất hiện, ngăn chặn các lưu lượng ra vào của hệ thống là sự cần thiết cho các doanh nghiệp có nhu cầu về sự an toàn của hệ thống trước những hành vi xâm nhập trái phép. Trước sự phát triển của internet và sự hiểu biết của ngày càng sâu của con người thì việc truy cập và phá hoại hệ thống mạng của một doanh nghiệp ,công ty nào đó củng theo đà phát triển của internet mà tăng lên rất nhiều. oViệc nghiên cứu này đáp ứng cho lãnh vực bảo mật và an ninh của hệ thống.
Trang 1MỤC LỤC
MỤC LỤC 1
A MỤC TIÊU CỦA VIỆC NGHIÊN CỨU VỀ IDS/IPS 5
B CẤU TRÚC CỦA ĐỒ ÁN: 6
TỪ NGỮ CHUYÊN NGÀNH: 1
PHỤ LỤC BẢNG: 2
PHỤ LỤC HÌNH ẢNH: 3
LỜI NÓI ĐẦU 5
CHƯƠNG 1 : TỔNG QUAN 6
I Lý do chọn đề tài 6
II Phân tích hiện trạng: 6
III Xác định yêu cầu: 7
IV Giới hạn và phạm vi nghiên cứu: 8
V Ý nghĩa thực tiễn của đề tài: 8
CHƯƠNG 2 : TÌM HIỂU IDS 9
I Khái niệm: 9
1 Sự khác nhau giữa IDS và IPS 9
2 Các thành phần và chức năng của IDS 9
2.1 Thành phần thu thập gói tin 10
2.2 Thành phần phát hiện gói tin 10
2.3 Thành phần phản hồi 10
3 Phân loại IDS 11
3.1 Network Base IDS (NIDS) 11
3.1.1 Lợi thế của Network-Based IDS 12
3.1.2 Hạn chế của Network-Based IDS 12
Trang 23.2.1 Lợi thế của Host IDS 13
3.2.2 Hạn chế của Host IDS 14
4 Cơ chế hoạt động của IDS 14
4.1 Phát hiện dựa trên sự bất thường 14
4.2 Phát hiện thông qua Protocol 14
4.3 Phát hiện nhờ quá trình tự học 17
5 Các ứng dụng IDS phổ biến hiện nay 17
6 So sánh IDS Cisco với IDS Linux 18
Bảng so sánh IDS Cisco với IDS Linux 19
7 Các phương thức tấn công 19
7.1 ARP Spoofing 19
7.2 Syn Flood 19
7.3 Zero Day Attacks 19
7.4 DOS - Ping Of Death 20
8 Các phương thức phòng chống 20
8.1 ARP Spoofing : mã hóa ARP Cache 20
8.2 Syn Flood 20
8.3 Zero Day Attacks 21
8.4 DOS – Ping Of Death 21
CHƯƠNG 3 : NGHIÊN CỨU ỨNG DỤNG SNORT TRONG IDS VÀ MÔ HÌNH THỰC NGHIỆM 21
I Giới thiệu về snort 22
1 Kiến trúc của snort 22
1.1 Mođun giải mã gói tin 23
1.2 Mođun tiền xử lý 24
Trang 31.4 Môđun log và cảnh báo 27
1.5 Mô đun kết xuất thong tin 27
2 Bộ luật của snort 27
2.1 Giới thiệu 28
2.2 Cấu trúc luật của Snort 28
2.2.1 Phần tiêu đề 30
2.2.2 Các tùy chọn 34
3 Updating Rules snort( cập nhật luật): 40
II Mô phỏng thực nghiệm: 43
1 Mục tiêu mô phỏng: 43
2 Mô hình thực nghiệm : 43
3 Công cụ mô phỏng : 43
4 Các bước thực hiện : 44
5 Kết quả : 44
CHƯƠNG 4 : TỔNG KẾT 46
1: Những vấn đề đạt được: 46
2: Những vấn đề chưa đạt được: 46
3 : Hướng mở rộng đề tài 46
PHỤ LỤC 47
PHỤ LỤC I: Cài đặt Snort IDS 47
I Sơ lược về quá trình cài đặt Snort : 47
1 Cài các gói yêu cầu sau 47
1.1 Cài đặt Snort 48
1.2 Cấu hình snort 51
2 Cài đặt tập rule cho SNORT 52
Trang 44 Cài đặt BASE và ADODB 58
II Tiến hành kiểm tra: 59
1 Tại máy Client Win XP ta ping -t tới máy Snort: 59
2 Tại máy Win XP, dùng phần mềm Nmap scan port tới máy Snort : 62
3 Kết quả thu được: 64
PHỤ LỤC II : 66
Tài liệu tham khảo 66
Trang 5A MỤC TIÊU CỦA VIỆC NGHIÊN CỨU VỀ IDS/IPS
o Việc nghiên cứu giúp cho khả năng tự học ,tìm hiểu và nghiên cứu độc lập ngàycàng tốt hơn
o Nghiên cứu về hệ thống ngăn ngừa và phát hiện xâm nhập IDS/IPS
o Triển khai hệ thống phất hiện, ngăn chặn các lưu lượng ra vào của hệ thống là sự cầnthiết cho các doanh nghiệp có nhu cầu về sự an toàn của hệ thống trước những hành
vi xâm nhập trái phép Trước sự phát triển của internet và sự hiểu biết của ngày càngsâu của con người thì việc truy cập và phá hoại hệ thống mạng của một doanhnghiệp ,công ty nào đó củng theo đà phát triển của internet mà tăng lên rất nhiều
o Việc nghiên cứu này đáp ứng cho lãnh vực bảo mật và an ninh của hệ thống
Trang 6B CẤU TRÚC CỦA ĐỒ ÁN:
Đồ án này được chia làm 4 phần:
I Chương 1: Giới thiệu tổng quan về đồ án
II Chương 2: Giới thiệu khái quát về hệ thống ngăn ngừa và phát hiện xâm
nhập IDS/IPS
III Chương 3: Nghiên cứu ứng dụng của snort trong IDS và mô hình mô phỏng
SNORT trên CentOS 5.8 final
IV Chương 4: Tổng kết những kết quả đạt được trong đồ án.
Trang 7TỪ NGỮ CHUYÊN NGÀNH:
IDS: Intrusion Detection System
IPS: Intrusion Prevention System
Protocol : giao thức
NIDS:Network-Based Intrusion Detection Systems.HIDS:Host Based Intrusion Detection SystemsNetwork Sensors:
Switch Sensors
Router Sensors
Firewall Sensors
Host Agents
Trang 8PHỤ LỤC BẢNG:
Bảng so sánh IDS Cisco với Snort IDS: .trang 18Bảng Các cờ sử dụng với từ khoá flags : trang 38Bảng các gói phụ thuộc khi cài snort: trang 47
Trang 9PHỤ LỤC HÌNH ẢNH:
Hình 1: mô hình kiến trúc hệ thống phát hiện xâm nhập (IDS): trang 9Hình 2: Network IDS trang 11Hình 3: Host base IDS trang 12Hình 4: Cấu trúc IP header .trang 14Hình 5: Cấu trúc TCP header trang 15Hình 6: Mô hình kiến trúc hệ thống Snort trang 22Hình 7: Xử lý một gói tin Ethernet trang 23Hình 8: Cấu trúc của Snort trang 27Hình 9: Header luật của Snort trang 28
Mô hình snort: trang 43Base thể hiện % phần ICMP: trang 44Base thể hiện Portcan Traffic tăng từ 0% lên 1%: .trang 45Log webmin : trang 54Tích hợp snort vào webmin: trang 55Cài đặt snort vào webmin: .trang 56Client Win XP Ping -t tới snort : trang 60Truy cập http://localhost/base: trang 60Thông tin (snort) base bắt được : trang 61ICMP Base phát hiện địa chỉ tấn công: trang 61
15 cảnh báo gần đây nhất của snort base: trang 62
Trang 10Dùng wirshark bắt gió tin snort: trang 62Base ghi nhận được máy dùng Nmap scan port tới máy Snort: trang 63 Dùng Nmap từ win XP scan port snort: trang 63
5 cảnh báo thường xuyên nhất của base snort: trang 64 Base hiển thị phần trăm ICMP: trang 64Nmap quét port tới snort, base hiển thị từ 0 1% : trang 65
Trang 11CHƯƠNG 1 : TỔNG QUAN
I Lý do chọn đề tài
Em thực hiện đồ án này với mong muốn không chỉ nghiên cứu những đặc trưng cơ bản của
hệ thống phát hiện xâm nhập trái phép với vai trò là phương pháp bảo mật mới bổ sung chonhững phương pháp bảo mật hiện tại, mà còn có thể xây dựng được một phần mềm IDSphù hợp với điều kiện của Việt Nam và có thể ứng dụng vào thực tiễn nhằm đảm bảo sự antoàn cho các hệ thống và chất lượng dịch vụ cho người dùng
IDS không chỉ là công cụ phân tích các gói tin trên mạng, từ đó đưa ra cảnh báo đếnnhà quản trị mà nó còn cung cấp những thông tin sau:
Các sự kiện tấn công
- Phương pháp tấn công
- Nguồn gốc tấn công
- Dấu hiệu tấn công
Một số lý do để thêm IDS cho hệ thống tường lửa là:
- Kiểm tra hai lần nếu hệ thống tường lửa cấu hình sai
- Ngăn chặn các cuộc tấn công được cho phép thông qua tường lửa
- Làm cho nỗ lực tấn công bị thất bại
- Nhận biết các cuộc tấn công từ bên trong
II Phân tích hiện trạng:
Trang 12- Trên 90% các mạng được kết nối đang sử dụng IDS để phát hiện lỗ hổng bảo mậtmáy tính.
- 4/7/2002, Viện An ninh máy tính đã báo cáo có đến 80% thiệt hại tài chính vượt qua
455 triệu đôla bị gây ra bởi sự xâm nhập và mã nguy hiểm
- Hàng triệu công việc bị ảnh hưởng do sự xâm nhập
- Nếu sử dụng một phần mềm chống virus thì bạn phải xem xét đến việc bổ sung thêmmột IDS cho chiến lược bảo mật của mình Hầu hết các tổ chức sử dụng phần mềm chốngvirus không sử dụng IDS
- Ngày nay do công nghệ ngày càng phát triển nên không có một giải pháp bảo mậtnào có thể tồn tại lâu dài Theo đánh giá của các tổ chức hàng đầu về công nghệ thông tintrên thế giới, tình hình an ninh mạng vẫn trên đà bất ổn và tiếp tục được coi là năm “báođộng đỏ” của an ninh mạng toàn cầu khi có nhiều lỗ hổng an ninh nghiêm trọng đượcphát hiện, hình thức tấn công thay đổi và có nhiều cuộc tấn công của giới tội phạm côngnghệ cao vào các hệ thống công nghệ thông tin của các doanh nghiệp
- Hệ thống phát hiện xâm nhập trái phép IDS là một phương pháp bảo mật có khảnăng chống lại các kiểu tấn công mới, các vụ lạm dụng, dùng sai xuất phát từ trong hệthống và có thể hoạt động tốt với các phương pháp bảo mật truyền thống Nó đã đượcnghiên cứu, phát triển và ứng dụng từ lâu trên thế giới và đã thể hiện vai trò quan trọngtrong các chính sách bảo mật
III Xác định yêu cầu:
Yêu cầu bắt buộc:
Trang 135 Triển khai mô hình IDS demo trong mạng LAN.
Yêu cầu mở rộng : xây dựng ứng dụng demo thành phần cảm biến và cảnh báo củamột IDS
IV Giới hạn và phạm vi nghiên cứu:
- Tìm hiểu hệ thống mạng máy tính cục bộ của các tổ chức, doanh nghiệp và cótham gia kết nối internet
- Tìm hiểu các nguy cơ xâm nhập trái phép đối với hệ thống mạng
- Tìm hiểu các kỹ thuật của việc phát hiện và ngăn chặn xâm nhập
- Tìm hiểu Snort IDS Software
V Ý nghĩa thực tiễn của đề tài:
- Nghiên cứu các vấn đề kỹ thuật của hệ thống phát hiện và ngăn chặn xâm nhập
- Phân tích, đánh giá được các nguy cơ xâm nhập trái phép đối với hệ thống mạng
- Đưa ra một giải pháp an ninh hữu ích cho hệ thống mạng của tổ chức, doanhnghiệp
Trang 14CHƯƠNG 2 : TÌM HIỂU IDS
I Khái niệm:
Hệ thống phát hiện xâm nhập (Intrusion Detection System – IDS) là hệ thống phầncứng hoặc phần mềm có chức năng giám sát lưu thông mạng, tự động theo dõi các sựkiện xảy ra trên hệ thống máy tính, phân tích để phát hiện ra các vấn đề liên quan đến anninh, bảo mật và đưa ra cảnh báo cho nhà quản trị
1 Sự khác nhau giữa IDS và IPS
Có thể nhận thấy sự khác biệt giữa hai khái niệm ngay ở tên gọi: “phát hiện” và “ngănchặn” Các hệ thống IDS được thiết kế với mục đích chủ yếu là phát hiện và cảnh báo cácnguy cơ xâm nhập đối với mạng máy tính nó đang bảo vệ trong khi đó, một hệ thống IPSngoài khả năng phát hiện còn có thể tự hành động chống lại các nguy cơ theo các quy địnhđược người quản trị thiết lập sẵn
Tuy vậy, sự khác biệt này trên thực tế không thật sự rõ ràng Một số hệ thống IDS đượcthiết kế với khả năng ngăn chặn như một chức năng tùy chọn Trong khi đó một số hệthống IPS lại không mang đầy đủ chức năng của một hệ thống phòng chống theo đúngnghĩa
Một câu hỏi được đặt ra là lựa chọn giải pháp nào, IDS hay IPS? Câu trả lời tùy thuộcvào quy mô, tính chất của từng mạng máy tính cụ thể cũng như chính sách an ninh củanhững người quản trị mạng Trong trường hợp các mạng có quy mô nhỏ, với một máy chủ
an ninh, thì giải pháp IPS thường được cân nhắc nhiều hơn do tính chất kết hợp giữa pháthiện, cảnh báo và ngăn chặn của nó Tuy nhiên với các mạng lơn hơn thì chức năng ngănchặn thường được giao phó cho một sản phẩm chuyên dụng như một firewall chẳng hạn.Khi đó, hệ thống cảnh báo sẽ chỉ cần theo dõi, phát hiện và gửi các cảnh báo đến một hệ
Trang 15thống ngăn chặn khác Sự phân chia trách nhiệm này sẽ làm cho việc đảm bảo an ninh chomạng trở nên linh động và hiệu quả hơn.
2 Các thành phần và chức năng của IDS
IDS bao gồm các thành phần chính :
Thành phần thu thập thông tin gói tin
Thành phần phát hiện gói tin
Thành phần xử lý(phản hồi)
Hình 1: Mô hình kiến trúc hệ thống phát hiện xâm nhập (IDS)
2.1 Thành phần thu thập gói tin
Thành phần này có nhiệm vụ lấy tất các gói tin đi đến mạng Thông thường các góitin có địa chỉ không phải của một card mạng thì sẽ bị card mạng đó huỷ bỏ nhưngcard mạng của IDS được đặt ở chế độ thu nhận tất cả Tất cả các gói tin qua chúngđều được sao chụp, xử lý, phân tích đến từng trường thông tin Bộ phận thu thập góitin sẽ đọc thông tin từng trường trong gói tin, xác định chúng thuộc kiểu gói tin nào,dịch vụ
2.2 Thành phần phát hiện gói tin
Ở thành phần này, các bộ cảm biến đóng vai trò quyết định Vai trò của bộ cảm biến
là dùng để lọc thông tin và loại bỏ những thông tin dữ liệu không tương thích đạtđược từ các sự kiện liên quan tới hệ thống bảo vệ, vì vậy có thể phát hiện được cáchành động nghi ngờ
Trang 162.3 Thành phần phản hồi
Khi có dấu hiệu của sự tấn công hoặc thâm nhập, thành phần phát hiện tấn công sẽgửi tín hiệu báo hiệu (alert) có sự tấn công hoặc thâm nhập đến thành phần phản ứng.Lúc đó thành phần phản ứng sẽ kích hoạt tường lửa thực hiện chức nǎng ngǎn chặncuộc tấn công hay cảnh báo tới người quản trị Dưới đây là một số kỹ thuật ngǎnchặn:
Cảnh báo thời gian thực
Gửi các cảnh báo thời gian thực đến người quản trị để họ nắm được chi tiết cáccuộc tấn công, các đặc điểm và thông tin về chúng
Ghi lại vào tập tin
Các dữ liệu của các gói tin sẽ được lưu trữ trong hệ thống các tập tin log Mụcđích là để những người quản trị có thể theo dõi các luồng thông tin và là nguồnthông tin giúp cho module phát hiện tấn công hoạt động
Ngăn chặn, thay đổi gói tin
Khi một gói tin khớp với dấu hiệu tấn công thì IDS sẽ phản hồi bằng cách xóa
bỏ, từ chối hay thay đổi nội dung của gói tin, làm cho gói tin trở nên không bìnhthường
3 Phân loại IDS
3.1 Network Base IDS (NIDS)
Hệ thống IDS dựa trên mạng sử dụng bộ dò và bộ cảm biến được cài đặt trên toànmạng Những bộ dò này theo dõi trên mạng nhằm tìm kiếm những lưu lượng trùngvới những mô tả sơ lược được định nghĩa hay là những dấu hiệu
Trang 17Hình 2: Network IDS
3.1.1 Lợi thế của Network-Based IDS
Quản lý được cả một network segment (gồm nhiều host)
Cài đặt và bảo trì đơn giản, không ảnh hưởng tới mạng
Tránh DOS ảnh hưởng tới một host nào đó
Có khả năng xác định lỗi ở tầng Network (trong mô hình OSI)
Độc lập với OS
3.1.2 Hạn chế của Network-Based IDS
Có thể xảy ra trường hợp báo động giả
Không thể phân tích các gói tin đã được mã hóa (vd: SSL, SSH, IPSec…)
NIDS đòi hỏi phải được cập nhật các signature mới nhất để thực sự an toàn
Có độ trễ giữa thời điểm bị tấn công với thời điểm phát báo động Khi báo
Trang 18động được phát ra, hệ thống có thể đã bị tổn hại.
Không cho biết việc tấn công có thành công hay không
3.2 Host Base IDS (HIDS)
HIDS thường được cài đặt trên một máy tính nhất định Thay vì giám sát hoạtđộng của một network segment, HIDS chỉ giám sát các hoạt động trên một máy tính
Hình 3: Host base IDS
3.2.1 Lợi thế của Host IDS
Có khả năng xác định người dùng liên quan tới một sự kiện
HIDS có khả năng phát hiện các cuộc tấn công diễn ra trên một máy
Có thể phân tích các dữ liệu mã hoá
Cung cấp các thông tin về host trong lúc cuộc tấn công diễn ra
Trang 193.2.2 Hạn chế của Host IDS
Thông tin từ HIDS là không đáng tin cậy ngay khi sự tấn công vào host nàythành công
Khi hệ điều hành bị "hạ" do tấn công, đồng thời HIDS cũng bị "hạ"
HIDS phải được thiết lập trên từng host cần giám sát
HIDS không có khả năng phát hiện các cuộc dò quét mạng (Nmap,
Netcat…)
HIDS cần tài nguyên trên host để hoạt động
HIDS có thể không hiệu quả khi bị DOS
Đa số chạy trên hệ điều hành Window Tuy nhiên cũng đã có 1 số chạyđược trên UNIX và những hệ điều hành khác
4 Cơ chế hoạt động của IDS
IDS có hai chức nǎng chính là phát hiện các cuộc tấn công và cảnh báo các cuộc tấncông đó Có hai phương pháp khác nhau trong việc phân tích các sự kiện để phát hiện các
vụ tấn công: phát hiện dựa trên các dấu hiệu và phát hiện sự bất thường Các sản phẩmIDS có thể sử dụng một trong hai cách hoặc sử dụng kết hợp cả hai
4.1 Phát hiện dựa trên sự bất thường
Công cụ này thiết lập một hiện trạng các hoạt động bình thường và sau đó duy trìmột hiện trạng hiện hành cho một hệ thống Khi hai yếu tố này xuất hiện sự khác biệt,nghĩa là đã có sự xâm nhập
Ví dụ: Một địa chỉ IP của máy tính A thông thường truy cập vào domain của công
ty trong giờ hành chính, việc truy cập vào domain công ty ngoài giờ làm việc là mộtđiều bất thường
4.2 Phát hiện thông qua Protocol
Tương tự như việc phát hiện dựa trên dấu hiệu, nhưng nó thực hiện một sự phântích theo chiều sâu của các giao thức được xác định cụ thể trong gói tin
Trang 20Sau đây là cấu trúc của một gói tin:
IP Header
Hình 4: Cấu trúc IPHeader
Thuộc tính Source Address và Destination Address giúp cho IDS biết được nguồngốc cuộc tấn công
Trang 23Các hệ thống IDS khác nhau đều dựa vào phát hiện các xâm nhập trái phép vànhững hành động dị thường Quá trình phát hiện có thể được mô tả bởi 3 yếu tố cơbản nền tảng sau:
Thu thập thông tin: Kiểm tra tất cả các gói tin trên mạng
Sự phân tích : Phân tích tất cả các gói tin đã thu thập để cho biết hành độngnào là tấn công
Cảnh báo : hành động cảnh báo cho sự tấn công được phân tích ở trên
4.3 Phát hiện nhờ quá trình tự học
Kỹ thuật này bao gồm hai bước Khi bắt đầu thiết lập, hệ thống phát hiện tấn công
sẽ chạy ở chế độ tự học và tạo ra một hồ sơ về cách cư xử của mạng với các hoạt độngbình thường Sau thời gian khởi tạo, hệ thống sẽ chạy ở chế độ làm việc, tiến hànhtheo dõi, phát hiện các hoạt động bất thường của mạng bằng cách so sánh với hồ sơ đãthiết lập Chế độ tự học có thể chạy song song với chế độ làm việc để cập nhật hồ sơcủa mình nhưng nếu dò ra có tín hiệu tấn công thì chế độ tự học phải dừng lại cho tớikhi cuộc tấn công kết thúc
5 Các ứng dụng IDS phổ biến hiện nay
Trong hoàn cảnh hiện nay, với tần xuất tấn công và xâm nhập ngày càng phổ biến thìkhi một tổ chức kết nối với internet không thể áp dụng các phương pháp phòng chống tấncông, xâm nhập sử dụng firewall chỉ là một trong những biện pháp căn bản, sơ khai trongcông tác phòng chống xâm phạm thông tin Sử dụng IDS sẽ góp phần tăng cường sứcmạnh cho nhà quản trị và cảnh báo kịp thời mọi thời điểm diễn biến bất thường quamạng Cụ thể, IDS có thể cảnh báo những hành động sau:
Hành động download dữ liệu trong hệ thống LAN bằng ftp từ các máy ip lạ
Hành động chat với các máy ip lạ
Hành động truy xuất 1 website bị công ty cấm truy cập mà nhân viên công tyvẫn cố tình truy xuất
Trang 24 Hành động truy xuất các website vào giờ cấm.
Hành động chống sniff sử dụng phương pháp ARP Spoofing
Thực hiện chống Dos vào máy server thông qua lỗi tràn bộ đệm
6 So sánh IDS Cisco với IDS Linux
• Giống nhau: Điều là một hệ thống Network-Based Intrusion Detection Systems
(NIDS) có nhiệm vụ giám sát các luồng dữ liệu traffic đang lưu thông trên mạng, cókhả năng phát hiện những hành động khả nghi, những xâm nhập trái phép cũng nhưkhai thác bất hợp pháp nguồn tài nguyên của hệ thống mà từ đó có thể dẫn đếnxâm hại tính toàn ổn định,tòan vẹn và sẵn sàng của hệ thống
IDS có thể phân biệt được những cuộc tấn công xuất phát từ bên ngoài hay từ chính bêntrong hệ thống bằng cách dựa vào một database dấu hiệu đặc biệt về những cuộc tấncông (smurf attack, buffer overflow, packet sniffers….), cung cấp các thông tin nhậnbiết và đưa ra cảnh báo cho hệ thống, nhà quản trị
Khác nhau:
IDS Cisco (còn có tên là NetRanger) là
một hệ thống NIDS, có khả năng theo dõi
toàn bộ lưu thông mạng và đối sánh từng gói
tin để phát hiện các dấu hiệu xâm nhập
Cisco IDS là một giải pháp riêng biệt,
được Cisco cung cấp đồng bộ phần cứng và
phần mềm trong một thiết bị chuyên dụng
Giải pháp kỹ thuật của Cisco IDS là một
dạng lai giữa giải mã (decode) và đối sánh
(grep) Cisco IDS hoạt động trên một hệ
thống Unix được tối ưu hóa về cấu hình và
có giao diện tương tác CLI (Cisco
Command Line Interface) quen thuộc của
Cisco.Các hệ thống giải pháp IDS của Cisco
Network Sensors: cung cấp một thiết bị
chuyên dụng với khả năng theo dõi và
bảo vệ các segment mạng
IDS Linux là 1 IDS sofware Có thể là một
hệ thống Host based intrusion detectionSystems (HIDS) hoặc Network-BasedIntrusion Detection Systems (NIDS Cónhiều loại như: Snort, AIDE, Bro, OSSEC,
là một giải pháp IDS dùng phần mềm mãnguồn mở Trong đó snort được đánh giá làIDS mã nguồn mở miễn phí đáng chú ý nhấtvới những tính năng rất mạnh với 400.000người sử dụng đăng ký.Chi tiết về Snort sẽ được trình bày trongphần chương III của đồ án
Trang 25 Switch Sensors (Switch có module tích
hợp chức năng của IDS)
Router Sensors( Router có module tích
hợp chức năng của IDS)
Firewall Sensors( Firewall có module
tích hợp chức năng của IDS)
Host Agents- Bảo vệ server và desktop
Bảng so sánh IDS Cisco với IDS Linux
7.2 Syn Flood
Syn flood là 1 dạng tấn công từ chối dịch vụ, kẻ tấn công gửi các gói tin kết nốiSYN đến hệ thống Đây là 1 loại tấn công rất phổ biến Loại tấn công này sẽ nguyhiểm nếu hệ thống cấp phát tài nguyên ngay sau khi nhận gói tin SYN từ kẻ tấn công
và trước khi nhận gói ACK
7.3 Zero Day Attacks
Zero-day là thuật ngữ chỉ sự tấn công hay các mối đe dọa khai thác lỗ hổng củaứng dụng trong máy tính cái mà chưa được công bố và chưa được sửa chữa
"Windows Vista/7:SMB2.0 NEGOTIATE PROTOCOL REQUEST RemoteB.S.O.D." là nguyên văn tiêu đề mô tả mã tấn công viết bằng Python mà Gaffie đưalên blog bảo mật Seclists.org Cuộc tấn công nhằm vào lỗi xuất phát từ SystemMessage Block phiên bản 2.0 (SMB2) vốn có trong Windows Vista, Windows 7 vàWindows Server 2008 Đi sâu vào lỗi do Gaffie công bố, nguyên nhân chính xuất phát
Trang 26từ cách thức driver srv2.sys xử lý các yêu cầu từ máy khách trong khi phần tiêu đề(header) của ô "Process Id High" chứa đựng một ký tự "&"(mã hexa là 00 26) Cuộctấn công không cần đến chứng thực nhận dạng, chỉ cần cổng 445 có thể truy xuất Mối
lo ngại ở đây là cổng 445 thường được mở mặc định trong phần cấu hình mạng nội bộ(LAN) của Windows
7.4 DOS - Ping Of Death
Khi tấn công bằng Ping of Death, một gói tin echo đựoc gửi có kích thước lớn hơnkích thước cho phép là 65,536 bytes Gói tin sẽ bị chia nhỏ ra thành các segment nhỏhơn, nhưng khi máy đích ráp lại, host đích nhận thấy rằng là gói tin quá lớn đối vớibuffer bên nhận Kết quả là, hệ thống không thể quản lý nổi tình trạng bất thường này
và sẽ reboot hoặc bị treo
VD : ping 192.168.1.3 –l 65000
8 Các phương thức phòng chống
8.1 ARP Spoofing : mã hóa ARP Cache
Một cách có thể bảo vệ chống lại vấn đề không an toàn vốn có trong các ARP request
và ARP reply là thực hiện một quá trình kém động hơn Đây là một tùy chọn vì các máytính Windows cho phép bạn có thể bổ sung các entry tĩnh vào ARP cache Bạn có thể xem
ARP cache của máy tính Windows bằng cách mở nhắc lệnh và đánh vào đó lệnh arp –a
Có thể thêm các entry vào danh sách này bằng cách sử dụng lệnh arp –s <IP ADDRESS> <MAC ADDRESS>.
Trong các trường hợp, nơi cấu hình mạng của bạn không mấy khi thay đổi, bạn hoàntoàn có thể tạo một danh sách các entry ARP tĩnh và sử dụng chúng cho các client thôngqua một kịch bản tự động Điều này sẽ bảo đảm được các thiết bị sẽ luôn dựa vào ARPcache nội bộ của chúng thay vì các ARP request và ARP reply
8.2 Syn Flood
Syn flood là 1 dạng tấn công phổ biến và nó có thể được ngăn chặn bằng đoạn
Trang 27lệnh iptables sau:
iptables -A INPUT –p tcp syn –m limit limit 1/s limit -burst 3 -j RETURN
Tất cả các kết nối đến hệ thống chỉ được phép theo các thông số giới hạn sau:
limit 1/s: Tốc độ truyền gói tin trung bình tối đa 1/s (giây)
limit-burst 3: Số lương gói tin khởi tạo tối đa được phép là 3
Dùng iptables, thêm rule sau vào:
# Limit the number of incoming tcp connections
# Interface 0 incoming syn-flood
protection iptables -N syn_flood
iptables -A INPUT -p tcp syn -j syn_flood
iptables -A syn_flood -m limit limit 1/s limit-burst 3 -j RETURN
iptables -A syn_flood -j DROP
8.3 Zero Day Attacks
+ Cập nhật bản vá lỗi
+ Lọc dữ liệu từ cổng TCP 445 bằng tường lửa (iptables)
+ Khóa cổng SMB trong registry
8.4 DOS – Ping Of Death
- Sử dụng các tính năng cho phép đặt rate limit trên router/firewall để hạn chế sốlượng packet vào hệ thống
- Dùng tính năng lọc dữ liệu của router/firewall để loại bỏ các packet không mongmuốn, giảm lượng lưu thông trên mạng và tải của máy chủ
Ví dụ : alert icmp 192.168.1.0/24 any -> 172.16.1.0/24 any (msg:"Ping >
1000";dsize:>1000 ; sid:2;)
Trong ví dụ trên thì nếu gói tin có kích thước lớn hơn 1000byte thì sẽ không choPing
Trang 28CHƯƠNG 3 : NGHIÊN CỨU ỨNG DỤNG SNORT TRONG
IDS VÀ MÔ HÌNH THỰC NGHIỆM
I Giới thiệu về snort
Snort là một NIDS được Martin Roesh phát triển dưới mô hình mã nguồn mở TuySnort miễn phí nhưng nó lại có rất nhiều tính năng tuyệt vời mà không phải sản phẩm thươngmại nào cũng có thể có được Với kiến trúc thiết kế theo kiểu module, người dùng có thể tựtăng cường tính năng cho hệ thống Snort của mình bằng việc cài đặt hay viết thêm mới cácmodule Cơ sở dữ liệu luật của Snort đã lên tới 2930 luật và được cập nhật thường xuyên bởimột cộng đồng người sử dụng Snort có thể chạy trên nhiều hệ thống nền như Windows,Linux, OpenBSD, FreeBSD, NetBSD, Solaris, HP-UX, AIX, IRIX, MacOS
Bên cạnh việc có thể hoạt động như một ứng dụng thu bắt gói tin thông thường, Snort còn
có thể được cấu hình để chạy như một NIDS Snort hỗ trợ khả năng hoạt động trên các giaothức sau: Ethernet, 802.11,Token Ring, FDDI, Cisco HDLC, SLIP, PPP, và PF củaOpenBSD
Snort được cài đặt trên mạng làm nhiệm vụ giám sát những packet vào ra hệthống mạng Khi Snort phát hiện một cuộc tấn công thì nó có thể phản ứng bằng nhiềucách khác nhau tùy thuộc vào cấu hình mà người quản trị mạng thiết lập, chẳng hạn như
nó có thể gởi thông điệp cảnh báo đến nhà quản trị hay loại bỏ gói tin khi phát hiện có sựbất thường trong các gói tin đó Snort sử dụng các luật được lưu trữ trong các file text, cóthể được chỉnh sửa bởi người quản trị Mỗi luật đại diện cho một cuộc tấn công File cấuhình chính của Snort là snort.conf Khi có một packet đến hệ thống nó sẽ được áp vào tậpluật, nếu có sự so trùng snort sẽ phản ứng
Snort bao gồm một hoặc nhiều cảm biến và một server cơ sở dữ liệu chính.Cáccảm biến có thể được đặt trước hoặc sau firewall:
Giám sát các cuộc tấn công vào firewall và hệ thống mạng
Có khả năng ghi nhớ các cuộc vượt firewall thành công
Trang 291 Kiến trúc của snort
Snort bao gồm nhiều thành phần, với mỗi phần có một chức năng riêng Các phần chính
đó là:
• Môđun giải mã gói tin (Packet Decoder)
• Môđun tiền xử lý (Preprocessors)
• Môđun phát hiện (Detection Engine)
• Môđun log và cảnh báo (Logging and Alerting System)
• Môđun kết xuất thông tin (Output Module)
• Kiến trúc của Snort được mô tả trong hình sau:
•
Hình 6 : Mô hình kiến trúc hệ thống Snort
Khi Snort hoạt động nó sẽ thực hiện việc lắng nghe và thu bắt tất cả các gói tin nào dichuyển qua nó Các gói tin sau khi bị bắt được đưa vào Môđun Giải mã gói tin Tiếp theo góitin sẽ được đưa vào môđun Tiền xử lý, rồi môđun Phát hiện Tại đây tùy theo việc có pháthiện được xâm nhập hay không mà gói tin có thể được bỏ qua để lưu thông tiếp hoặc đượcđưa vào môđun Log và cảnh báo để xử lý Khi các cảnh báo được xác định môđun Kết xuấtthông tin sẽ thực hiện việc đưa cảnh báo ra theo đúng định dạng mong muốn Sau đây ta sẽ
đi sâu vào chi tiết hơn về cơ chế hoạt động và chức năng của từng thành phần
1.1 Mođun giải mã gói tin
Snort sử dụng thư viện pcap để bắt mọi gói tin trên mạng lưu thông qua hệ thống.Hình sau mô tả việc một gói tin Ethernet sẽ được giải mã thế nào:
Trang 30Hình 7: Xử lý một gói tin Ethernet
Một gói tin sau khi được giải mã sẽ được đưa tiếp vào môđun tiền xử lý
1.2 Mođun tiền xử lý
Mođ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 nào để
có thể chuẩn bị gói dữ liệu đưa và cho môđun Phát hiện phân tích Ba nhiệm vụ chính củacá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 đónggó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ànhnhiều gói tin rồi mới gửi đi Khi Snort nhận được các gói tin này nó phải thực hiện việc ghépnối lại để có đượ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ử
Trang 31lý tiếp Như ta đã biết 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đuợc trao đổi trong phiên đó Một gói tin riêng lẻ sẽ không có trạng thái và nếu công việcphá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 Moduletiền xử lý stream giúp Snort 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 các gói tin) từ đó giúp đạt được hiệu quả cao hơn trong việcphá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ựatrê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 web server có thể chấp nhận nhiềudạ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 ký tự này liên tiếp cùng lúc Chẳng hạn ta có dấu hiệu nhận dạng
“scripts/iisadmin”, kẻ tấn công có thể vượt qua được bằng cách tùy biến các yêu cấu gửi đếnweb server như sau:
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àythườ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ácluậ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ạngnà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ăngcường thêm tính năng cho Snort Ví dụ, một plugin tiền xử lý có nhiệm vụ thống kê thông
Trang 32lượ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ê).Phiên bản hiện tại của Snort có đi kèm hai plugin giúp phát hiện các xâm nhập bất thường đó
là portscan và bo (backoffice) Portcan dùng để đưa ra cảnh báo khi kẻ tấn công thực hiệnviệc quét các cổng của hệ thống để tìm lỗ hổng Bo dùng để đưa ra cảnh báo khi hệ thống đã
bị nhiễm trojan backoffice và kẻ tấn công từ xa kết nối tới backoffice thực hiện các lệnh từxa
1.3 Môđun phát hiện
Đây là môđun quan trọng nhất của Snort Nó chịu trách nhiệm phát hiện các dấu hiệuxâ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ệuthu thập được từ đó xác định xem có xâm nhập xảy ra 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 đề rất quan trọng trong môđun phát hiện là vấn đề thời gian xử lý các gói tin: mộtIDS 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ácluật, tốc độ của hệ thống đang chạy Snort, tải trên mạng Một số thử nghiệm cho biết, phiênbản hiện tại của Snort khi được tối ưu hóa chạy trên hệ thống có nhiều bộ vi xử lý và cấuhình máy tính tương đối mạnh thì có thể hoạt động tốt trên cả các mạng cỡ Giga
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ậtlê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 vận: TCP, UDP
• Header ở tầng ứng dụng: DNS header, HTTP header, FTP header, …
Trang 33• Phần tải của gói tin (bạn cũng có thể áp dụng các luật lên các phần dữ liệu đượctruyề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áthiện bởi nhiều luật Do các luật trong Snort cũng được đánh thứ tự ưu tiên, nên một gói tinkhi 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 lớn nhất
1.4 Môđun log và cảnh báo
Tùy thuộc vào việc môđun Phát hiện có nhận dạng đuợ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 file log là các file text dữ liệu trong đó có thểđược ghi dưới nhiều định dạng khác nhau chẳng hạn tcpdump
1.5 Mô đun kết xuất thong tin
Môđun này có thể thực hiện các thao tác khác nhau tùy theo việc bạn muốn lưu kết quảxuất ra như thế nào Tùy theo việc cấu hình hệ thống mà nó có thể thực hiện các công việcnhư là:
• Ghi log file
• Ghi syslog: syslog và một chuẩn lưu trữ các file log được sử dụng rất nhiều trên các
hệ thống Unix, Linux
• Ghi cảnh báo vào cơ sở dữ liệu
• Tạo file log dạng xml: việc ghi log file dạng xml rất thuận tiện cho việc trao đổi vàchia sẻ dữ liệu
• Cấu hình lại Router, firewall
• Gửi các cảnh báo được gói trong gói tin sử dụng giao thức SNMP Các gói tin dạngSNMP này sẽ được gửi tới một SNMP server từ đó giúp cho việc quản lý các cảnhbáo và hệ thống IDS một cách tập trung và thuận tiện hơn
• Gửi các thông điệp SMB (Server Message Block) tới các máy tính Windows
Nếu không hài lòng với các cách xuất thông tin như trên, ta có thể viết các môđun kết xuấtthông tin riêng tuỳ theo mục đích sử dụng
Trang 342 Bộ luật của snort
2.1 Giới thiệu
Cũng giống như virus, hầu hết các hoạt động tấn công hay xâm nhập đều có các dấu hiệuriêng Các thông tin về các dấu hiệu này sẽ được sử dụng để tạo nên các luật cho Snort.Thông thường, các bẫy (honey pots) được tạo ra để tìm hiểu xem các kẻ tấn công làm gìcũng như các thông tin về công cụ và công nghệ chúng sử dụng Và ngược lại, cũng có các
cơ sở dữ liệu về các lỗ hổng bảo mật mà những kẻ tấn công muốn khai thác Các dạng tấncông đã biết này được dùng như các dấu hiệu để phát hiện tấn công xâm nhập Các dấu hiệu
đó có thể xuất hiện trong phần header của các gói tin hoặc nằm trong phần nội dung củachúng Hệ thống phát hiện của Snort hoạt động dựa trên các luật (rules) và các luật này lạiđược dựa trên các dấu hiệu nhận dạng tấn công Các luật có thể được áp dụng cho tất cả cácphần khác nhau của một gói tin dữ liệu
Một luật có thể được sử dụng để tạo nên một thông điệp cảnh báo, log một thông điệp hay
có thể bỏ qua một gói tin
2.2 Cấu trúc luật của Snort
Hãy xem xét một ví dụ đơn giản :
alert tcp 192.168.2.0/24 23 -> any any (content:”confidential”; msg: “Detected confidential”)
Ta thấy cấu trúc của một luật có dạng như sau:
Hình 8 : Cấu trúc luật của Snort
Diễn giải:
Tất cả các Luật của Snort về logic đều gồm 2 phần: Phần header và phần Option
• 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óitin đó
Trang 35• 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 tindù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ậtvớ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ò hay tấncô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.
Dưới đây là cấu trúc chung của phần Header của một luật Snort:
Hình 9 : Header luật của Snort
• Action: là phần qui định loại hành động nào được thực thi khi các dấu hiệu của gói tinđược nhận dạng chính xác bằng luật đó Thông thường, các hành động tạo ra mộtcảnh báo hoặc log thông điệp hoặc kích hoạt một luật khác
• Protocol: là phần qui định việc áp dụng luật cho các packet chỉ thuộc một giao thức cụthể nào đó Ví dụ như IP, TCP, UDP …
• Address: là phần địa chỉ nguồn và địa chỉ đích Các địa chỉ có thể là một máy đơn,nhiều máy hoặc của một mạng nào đó Trong hai phần địa chỉ trên thì một sẽ là địachỉ nguồn, một sẽ là địa chỉ đích và địa chỉ nào thuộc loại nào sẽ do phần Direction “-
>” qui định
• Port: xác định các cổng nguồn và đích của một gói tin mà trên đó luật được áp dụng
• Direction: phần này sẽ chỉ ra đâu là địa chỉ nguồn, đâu là địa chỉ đích
Ví dụ:
alert icmp any any -> any any (msg: “Ping with TTL=100”;ttl: 100;)
Phần đứng trước dấu mở ngoặc là phần Header của luật còn phần còn lại là phần Option.Chi tiết của phần Header như sau:
• Hành động của luật ở đây là “alert” : một cảnh báo sẽ được tạo ra nếu như các điềukiện của gói tin là phù hợp với luật(gói tin luôn được log lại mỗi khi cảnh báo đượctạo ra)
Trang 36• Protocol của luật ở đây là ICMP tức là luật chỉ áp dụng cho các gói tin thuộc loạiICMP Bởi vậy, nếu như một gói tin không thuộc loại ICMP thì phần còn lại của luật
sẽ không cần đối chiếu
• Địa chỉ nguồn ở đây là “any”: tức là luật sẽ áp dụng cho tất cả các gói tin đến từ mọinguồn còn cổng thì cũng là “any” vì đối với loại gói tin ICMP thì cổng không có ýnghĩa Số hiệu cổng chỉ có ý nghĩa với các gói tin thuộc loại TCP hoặc UDP thôi
• Còn phần Option trong dấu đóng ngoặc chỉ ra một cảnh báo chứa dòng “Ping withTTL=100” sẽ được tạo khi tìm thấy điều kiện TTL=100 TTL là Time To Live là mộttrường trong Header IP
2.2.1 Phần tiêu đề
Như phần trên đã trình bày, Header của luật bao gồm nhiều phần Sau đây, là chi tiết
cụ thể của từng phần một
Hành động của luật (Rule Action)
Là phần đầu tiên của luật, chỉ ra hành động nào được thực hiện khi mà các điều kiện củaluật được thoã mãn Một hành động được thực hiện khi và chỉ khi tất cả các điều kiện đềuphù hợp Có 5 hành động đã được định nghĩa nhưng ta có thể tạo ra các hành động riêng tuỳthuộc vào yêu cầu của mình Đối với các phiên bản trước của Snort thì khi nhiều luật là phùhợp với một gói tin nào đó thì chỉ một luật được áp dụng Sau khi áp dụng luật đầu tiên thìcác luật tiếp theo sẽ không áp dụng cho gói tin ấy nữa Nhưng đối với các phiên bản sau củaSnort thì tất cả các luật sẽ được áp dụng gói tin đó
• Pass: Hành động này hướng dẫn Snort bỏ qua gói tin này Hành động này đóng vai tròquan trọng trong việc tăng cường tốc độ hoạt động của Snort khi mà ta không muốn
áp dụng các kiểm tra trên các gói tin nhất định Ví dụ ta sử dụng các bẫy (đặt trên mộtmáy nào đó) để nhử các hacker tấn công vào thì ta phải cho tất cả các gói tin đi đếnđược máy đó Hoặc là dùng một máy quét để kiểm tra độ an toàn mạng của mình thì
ta phải bỏ qua tất cả các gói tin đến từ máy kiểm tra đó