Những packetnày làm cho hệ thống của nạn nhân unload tất cả dữ liệu trong TCP buffer ngaylập tức và gửi một ACK packet trở về khi thực hiện xong điều này, nếu quá trình đợc diễn ra liên
Trang 1Lời nói đầu
Ngày nay, khi Internet đợc phổ biến rộng rãi, các tổ chức, cá nhân đều cónhu cầu giới thiệu thông tin của mình trên xa lộ thông tin, các giao dịch thơngmại điện ngày càng trở lên gần gũi với mọi ngời Vấn đề này nảy sinh khi phạm
vi ứng dụng của các ứng dụng web ngày càng mở rộng thì khả năng xuất hiện lỗi
và bị tấn công ngay càng cao, trở thành đối tợng tấn công cho nhiều ngời tấncông với mục đích khác nhau Những cuộc tấn công này không chỉ gây ra tổnthất về mặt tài chính mà còn làm ảnh hởng nặng nền đến uy tín của các tổ chứchoạt động trên internet Một hình thức tấn công mà nó đã và đang là nỗi lo âu,khiếp sợ của các website thơng mại điện tử, các tổ chức hoạt động trên môi trờngmạng internet phải kể đến đó là DDoS (Distributed Denial of Service - Kiểu tấncông từ chối dịch vụ phân tán)
Kể từ khi xuất hiện vào mùa thu năm 1999, DDoS đã khiến các websitetrên thế giới phải “điêu đứng” Ngày 7/3/2000, website www.yahoo.com phảingng phục vụ hàng trăm triệu ngời dùng trên thế giới trong vài giờ do phải gánhchịu một đợt tấn DDoS với quy mô vài ngàn máy tính liên tục gửi hàng triệurequest đến các server dịch vụ làm cho các server này không thể phục vụ ngời sửdụng thông thờng khác Vài ngày sau, một sự kiện tơng tự diễn ra với hàng loạtcác website trong đó có những website đã quá nổi tiếng trên thể giới nh hãng tinCNN, amazon.com, buy.com, Zden.com, E-trade.com, Ebay.com Tổng thiệt hại
do các cuộc tấn đó gây ra lên đến 1.2 triệu USD, nhng không đáng kể bắng sựmất lòng tin từ phía khách hàng, uy tín của các công ty là không thể tính đợc
ở Việt Nam trong một vài năm trở lại đây, tấn công kiểu DDoS phát triểnmột cách chóng mặt Mục tiêu “yêu thích” của các cuộc tấn công này là cácwebsite thơng mại điện tử, các website nổi tiếng (có lợng truy cập nhiều), các tạpchí, báo điện tử, các cơ quan, tổ chức chính phủ và phi chính phủ Điển hình làcác vụ tấn công vào các website bảo mật lớn nhất Việt Nam là HVA
tê liệt hoàn toàn trong vài ngày Vào đầu năm 2006 website thơng mại điện tử
công với qui mô hàng nghìn máy tính khiến công ty phải tạm thời bị gián đoạnhoạt động và đứng trớc nguy cơ phá sản…Và còn hàng trăm các cuộc tấn côngVà còn hàng trăm các cuộc tấn côngDDoS khác đang diễn ra từng ngày, từng giờ với kỹ thuật ngày càng tinh vi vàkhó lờng, thiệt hại gây ra là không thể kể hết
Trang 2Từ những dẫn chứng cụ thể trên cũng đủ để cho chúng ta thấy tấn côngkiểu DDoS có sức nguy hiểm nh thế nào Đồ án này đợc thực hiện nhằm mục
đích nghiên cứu, tìm hiểu về cách thức hoạt động và các biện pháp phòng chốngDDoS, giúp mọi ngời có cái nhìn tổng quan về kiểu tấn công nguy hiểm này
Chơng 1 TổNG
QUAN Về DDOS 1.1 Giới thiệu chung về DDoS:
DDoS (distributed denial-of-service attack) là một kiểu tấn công đa một hệthống cung cấp dịch vụ đến mức hoạt động tới hạn về tài nguyên, hay gây nhầmlẫn logic dẫn đến hệ thống ngừng hoạt động
Khác với DoS (denial-of-service attack) là chỉ cần một máy để tấn công,DDoS sử dụng nhiều máy tính bị chiếm quyền điều khiển kết nối với nhau (mạngBotnet) để tấn công nên sức hủy hoại là rất lớn
1.2 Phân loại các kiểu tấn công DDoS
Nhìn chung, có rất nhiều cách để phân loại các kiểu tấn công DDoS nhngtheo em cách phân loại theo mục đích tấn công là khá đầy đủ, đơn giản và dễhiểu Dới đây là sơ đồ mô tả sự phân loại các kiểu tấn công DDoS dựa theo mục
đích tấn công: làm cạn kiệt băng thông và làm cạn kiệt tài nguyên hệ thống
Trang 3Hình 1-: Phân loại các kiểu tấn công DDoS
Tấn công làm cạn kiệt băng thông
Tấn công làm cạn kiệt băng thông (BandWith Depletion Attack) đợc thiết
kế nhằm làm tràn ngập mạng mục tiêu với những traffic không cần thiết, vớimục địch làm giảm tối thiểu khả năng của các traffic hợp lệ đến đợc hệ thốngcung cấp dịch vụ của mục tiêu
Có hai loại tấn công làm cạn kiệt băng thông :
- Flood attack: Điều khiển các Agent gửi một lợng lớn traffic đến hệ
thống dịch vụ của mục tiêu, làm dịch vụ này bị hết khả năng về băng thông
- Amplification attack: Điều khiển các Agent hay Client tự gửi
packet đến một địa chỉ IP broadcast, làm cho tất cả các máy trong subnet này gửipacket đến hệ thống dịch vụ của mục tiêu Phơng pháp này làm gia tăng traffickhông cần thiết, làm suy giảm băng thông của mục tiêu
1.2.1 Flood attack:
Trong phơng pháp này, các Agent sẽ gửi một lợng lớn IP traffic làm hệthống dịch vụ của mục tiêu bị chậm lại, hệ thống bị treo hay đạt đến trạng tháihoạt động bão hòa Làm cho những ngời dùng thực sự của hệ thống không sửdụng đợc dịch vụ
Ta có thể chia Flood Attack thành hai loại:
- UDP Flood Attack: do tính chất connectionless của UDP, hệ thống
nhận UDP message chỉ đơn giản nhận vào tất cả các packet mình cần phải xử lý.Một lợng lớn các UDP packet đợc gửi đến hệ thống dịch vụ của mục tiêu sẽ đẩytoàn bộ hệ thống đến ngỡng tới hạn
Trang 4- Các UDP packet này có thể đợc gửi đến nhiều port tùy ý hay chỉ duy
nhất một port Thông thờng là sẽ gửi đến nhiều port làm cho hệ thống mục tiêuphải căng ra để xử lý phân hớng cho các packet này Nếu port bị tấn công khôngsẵn sàng thì hệ thống mục tiêu sẽ gửi ra một ICMP packet loại “destination portunreachable” Thông thờng các Agent software sẽ dùng địa chỉ IP giả để chegiấu hành tung, cho nên các packet trả về do không có port xử lý sẽ dẫn đến một
địa chỉ IP khác UDP Flood attack cũng có thể làm ảnh hởng đến các kết nốixung quanh mục tiêu do sự hội tụ của packet diễn ra rất mạnh
- ICMP Flood Attack: đợc thiết kế nhằm mục đích quản lý mạng cũng
nh định vị thiết bị mạng Khi các Agent gửi một lợng lớn ICMP ECHOREQUEST đến hệ thống mục tiêu thì hệ thống này phải reply một lợng tơng ứngPacket để trả lời, sẽ dẫn đến nghẽn đờng truyền Tơng tự trờng hợp trên, địa chỉ
IP của các Agent có thể bị giả mạo
1.2.2 Amplification Attack:
Amplification Attack nhắm đến việc sử dụng các chức năng hỗ trợ địa chỉ
IP broadcast của các router nhằm khuyếch đại và hồi chuyển cuộc tấn công.Chức năng này cho phép bên gửi chỉ định một địa chỉ IP broadcast cho toànsubnet bên nhận thay vì nhiều địa chỉ Router sẽ có nhiệm vụ gửi đến tất cả địachỉ IP trong subnet đó packet broadcast mà nó nhận đợc
Attacker có thể gửi broadcast packet trực tiếp hay thông qua một số Agentnhằm làm gia tăng cờng độ của cuộc tấn công Nếu attacker trực tiếp gửi packet,thì có thể lợi dụng các hệ thống bên trong broadcast network nh một Agent
Hình 1-: Amplification Attack
Có thể chia amplification attack thành hai loại, Smuft và Fraggle attack:
Trang 5- Smuft attack: trong kiểu tấn công này attacker gửi packet đến network
amplifier (router hay thiết bị mạng khác hỗ trợ broadcast), với địa chỉ của nạnnhân Thông thờng những packet đợc dùng là ICMP ECHO REQUEST, cácpacket này yêu cầu yêu cầu bên nhận phải trả lời bằng một ICMP ECHO REPLYpacket Network amplifier sẽ gửi đến ICMP ECHO REQUEST packet đến tất cảcác hệ thống thuộc địa chỉ broadcast và tất cả các hệ thống này sẽ REPLYpacket về địa chỉ IP của mục tiêu tấn công Smuft Attack
- Fraggle Attack: tơng tự nh Smuft attack nhng thay vì dùng ICMP
ECHO REQUEST packet thì sẽ dùng UDP ECHO packet gửi đến mục tiêu Thật
ra còn một biến thể khác của Fraggle attack sẽ gửi đến UDP ECHO packet đếnchargen port (port 19/UNIX) của mục tiêu, với địa chỉ bên gửi là echo port (port7/UNIX) của mục tiêu, tạo nên một vòng lặp vô hạn Attacker phát động cuộctấn công bằng một ECHO REQUEST với địa chỉ bên nhận là một địa chỉbroadcast, toàn bộ hệ thống thuộc địa chỉ này lập tức gửi REPLY đến port echocủa nạn nhân, sau đó từ nạn nhân một ECHO REPLY lại gửi trở về địa chỉbroadcast, quá trình cứ thế tiếp diễn Đây chính là nguyên nhân Flaggle Attacknguy hiểm hơn Smuft Attack rất nhiều
Tấn công làm cạn kiệt tài nguyên
Tấn công làm cạn kiệt tài nguyên (Resource Deleption Attack) là kiểu tấncông trong đó Attacker gửi những packet dùng các protocol sai chức năng thiết
kế, hay gửi những packet với dụng ý làm tắt nghẽn tài nguyên mạng làm cho cáctài nguyên này không phục vụ những ngời dùng thông thờng khác đợc
1.2.3 Protocol Exploit Attack
- TCP SYN Attack: Transfer Control Protocol hỗ trợ truyền nhận với độ
tin cậy cao nên sử dụng phơng thức bắt tay giữa bên gửi và bên nhận trớc khitruyền dữ liệu Bớc đầu tiên, bên gửi gửi một SYN REQUEST packet(Synchronize) Bên nhận nếu nhận đợc SYN REQUEST sẽ trả lời bằngSYN/ACK packet Bớc cuối cùng, bên gửi sẽ truyên packet cuối cùng ACK vàbắt đầu truyền dữ liệu
Hình 1-: Ba bớc kết nối TCP/IP
Nếu bên server đã trả lời một yêu cầu SYN bằng một SYN/ACK nhng
Trang 6nó sẽ gửi lại SYN/ACK cho đến hết thời gian timeout Toàn bộ tài nguyên hệthống “dự trữ” để xử lý phiên giao tiếp nếu nhận đợc ACK packet cuối cùng sẽ
bị “phong tỏa” cho đến hết thời gian timeout
Hình 1-: Trờng hợp IP nguồn giả
Nắm đợc điểm yếu này, attacker gửi một SYN packet đến nạn nhân với địachỉ bên gửi là giả mạo, kết quả là nạn nhân gửi SYN/ACK đến một địa chỉ khác
và sẽ không bao giờ nhận đợc ACK packet cuối cùng, cho đến hết thời giantimeout nạn nhân mới nhận ra đợc điều này và giải phóng các tài nguyên hệthống Tuy nhiên, nếu lợng SYN packet giả mạo đến với số lợng nhiều và dồndập, hệ thống của nạn nhân có thể bị hết tài nguyên
- PUSH và ACK Attack: Trong TCP protocol, các packet đợc chứa
trong buffer, khi buffer đầy thì các packet này sẽ đợc chuyển đến nơi cần thiết.Tuy nhiên, bên gửi có thể yêu cầu hệ thống unload buffer trớc khi buffer đầybằng cách gửi một packet với cờ PUSH và ACK mang giá trị là 1 Những packetnày làm cho hệ thống của nạn nhân unload tất cả dữ liệu trong TCP buffer ngaylập tức và gửi một ACK packet trở về khi thực hiện xong điều này, nếu quá trình
đợc diễn ra liên tục với nhiều Agent, hệ thống sẽ không thể xử lý đợc lợng lớnpacket gửi đến và sẽ bị treo
1.2.4 Malformed Packet Attack
Malformed Packet Attack là cách tấn công dùng các Agent để gửi cácpacket có cấu trúc không đúng chuẩn nhằm làm cho hệ thống của nạn nhân bịtreo
Có hai loại Malformed Packet Attack:
- IP address attack: dùng packet có địa chỉ gửi và nhận giống nhau làm
cho hệ điều hành của nạn nhân không xử lý nổi và bị treo
- IP packet options attack ngẫu nhiên hóa vùng OPTION trong IP
packet và thiết lập tất cả các bit QoS lên 1, điều này làm cho hệ thống của nạnnhân phải tốn thời gian phân tích, nếu sử dụng số lợng lớn Agent có thể làm hệthống nạn nhân hết khả năng xử lý
Trang 7- Handler: Là một phần mềm trung gian giữa Agent và Client.
- Agent: Là một phần mềm thực hiện sự tấn công mục tiêu, nhận điều
khiển từ Client thông quan các Handler
Attacker sẽ từ Client giao tiếp với Handler để xác định số lợng các Agent
đang online, điều chỉnh thời điểm tấn công và cập nhật các Agent Tuỳ theo cáchattacker cấu hình mạng Botnet, các Agent sẽ chịu sự quản lý của một hay nhiềuHandler
Thông thờng Attacker sẽ đặt các Handler trên một Router hay Server có ợng lu thông lớn Việc này nhằm làm cho các giao tiếp giữa Client, Handler vàAgent khó bị phát hiện Các giao thức này thờng diễn ra trên các giao thức TCP,UDP hay ICMP Chủ nhân thực sự của các Agent thờng không biết họ bị lợidụng trong các cuộc tấn công DDoS, do họ không đủ kiến thức hoặc các chơngtrình Backdoor Agent chỉ sử dụng rất ít tài nguyên hệ thống làm cho hầu nhkhông thể thấy ảnh hởng gì đến hiệu năng của hệ thống
Trang 8l-Sơ đồ IRC Base
Hình 1-: Sơ đồ IRC Base
Internet Relay Chat(IRC) là một hệ thống online chat nhiều ngời IRC
cho phép ngời sử dụng tạo một kết nối đến nhiều điểm khác với nhiều ngời sửdụng khác nhau và chat thời gian thực Kiến trúc cũ của IRC network bao gồmnhiều IRC server trên khắp Internet, giao tiếp với nhau trên nhiều kênh
(channnel) IRC network cho phép user tao ba loại channel: Public, Private và
Secrect Trong đó :
- Public channel: Cho phép user của channel đó thấy IRC name và
nhận đợc message của mọi user khác trên cùng channel
- Private channel: Đợc thiết kế để giao tiếp với các đối tợng cho
phép.Không cho phép các user không cùng channel thấy IRC name và messagetrên channel Tuy nhiên, nếu user ngoài channel dùng một số lệnh channellocator thì có thể biết đợc sự tồn tại của private channel đó
- Secrect channel: Tơng tự private channel nhng không thể xác định
bằng channel locator
Mạng IRC-based cũng tơng tự nh mạng Agent-Handler nhng mô hìnhnày sử dụng các kênh giao tiếp IRC làm phơng tiện giao tiếp giữa Client vàAgent (không sử dụng Handler) Sử dụng mô hình này, attacker còn có thêm một
Trang 9- Không cần phải duy trì danh sách các Agent, hacker chỉ cần logonvào IRC server là đã có thể nhận đợc report về trạng thái các Agent do cácchannel gửi về.
- Sau cùng: IRC cũng là một môi trờng chia sẻ file tạo điều kiện pháttán các Agent code lên nhiều máy khác
1.4 Các phơng pháp xây dựng tài nguyên tấn
công
Có rất nhiều điểm chung của các công cụ DDoS attack Có thể kể ra một
số điểm chung nh: cách cài chơng trình Agent, phơng pháp giao tiếp giữa cácattacker, Handler và Agent, điểm chung về loại hệ điều hành hỗ trợ các công cụnày Sơ đồ sau mô tả sự so sánh tơng quan giữa các công cụ tấn công DDoS này
Hình 1-: Các phơng pháp xây dựng tài nguyên tấn côngCách thức cài đặt DDoS
Agent
Attacker có thể dùng phơng pháp active và passive để cài đặt chơng trìnhAgent lên các máy khác nhằm thiết lập mạng tấn công kiểu Agent-Handler hayIRC-based
* Các cách cài đặt sử dụng phơng pháp active nh:
- Scaning: dùng các công cụ nh Nmap, Nessus để tìm những sơ hở trên
các hệ thống đang online nhằm cài đặt chơng trình Agent Chú ý, Nmap sẽ trả vềnhững thông tin về một hệ thống đã đợc chỉ định bằng địa chỉ IP, Nessus tìmkiếm từ những địa chỉ IP bất kỳ về một điểm yếu biết trớc nào đó
- Backdoor: sau khi tìm thấy đợc danh sách các hệ thống có thể lợi dụng,
attacker sẽ tiến hành xâm nhập và cài chơng trình Agent lên các hệ thống này
Trang 10Có rất nhiều thông tin sẵn có về cách thức xâm nhập trên mạng, nh site của tổchức Common Vulnerabilities and Exposures (CVE), ở đây liệt kê và phân loạitrên 4.000 loại lỗi của tất cả các hệ thống hiện có Thông tin này luôn sẵn sàngcho cả giới quản trị mạng lẫn hacker.
- Trojan: là một chơng trình thực hiện một chức năng thông thờng nào
đó, nhng lại có một số chức năng tiềm ẩn phục vụ cho mục đích riêng của ngờiviết mà ngời dùng không thể biết đợc Có thể dùng Trojan nh một chơng trìnhAgent
- Buffer Overflow: tận dụng lỗi buffer overflow, attacker có thể làm cho
chu trình thực thi chơng trình thông thờng bị chuyển sang chu trình thực thi
ch-ơng trình của hacker (nằm trong vùng dữ liệu ghi đè) Có thể dùng cách này đểtấn công vào một chơng trình có điểm yếu buffer overflow để chạy chơng trìnhAgent
* Cách cài đặt sử dụng passive:
- Bug trình duyệt web: attacker có thể lợi dụng một số lỗi của trình
duyệt web để cài chơng trình Agent vào máy của user truy cập Attacker sẽ tạomột trang web mang nội dung tiềm ẩn những code và lệnh để đặt bẫy user Khiuser truy cập nội dung của trang web, thì trang web download và cài đặt chơngtrình Agent một cách bí mật Microsoft Internet Explorer (IE) thờng là mục tiêucủa cách cài đặt này, với các lỗi của ActiveX có thể cho phép trình duyệt IE tự
động download và cài đặt code trên máy của ngời dùng duyệt web
- Corrupted file: một phơng pháp khác là nhúng code vào trong các file
thông thờng Khi user đọc hay thực thi các file này, máy của họ lập tức bị nhiễmchơng trình Agent software Một trong những kỹ thuật phổ biến là đặt tên file rấtdài, do mặc định của các hệ điều hành chỉ hiển thị phần đầu của tên file nênattacker có thể gửi kèm theo email cho nạn nhân file nh sau:iloveyou.txt_hiiiiiii_NO_this_is_DDoS.exe, do chỉ thấy phần “Iloveyou.txt” hiểnthị nên user sẽ mở file này để đọc và lập tức file này đợc thực thi và Agent code
đợc cài vào máy nạn nhân Ngoài ra còn nhiều cách khác nh ngụy trang file,ghép file…Và còn hàng trăm các cuộc tấn công
* Giao tiếp trên mạng Botnet
Protocol: giao tiếp trên mạng Botnetcó thể thực hiện trên nền các protocol
TCP, UDP, ICMP
Mã hóa các giao tiếp: một vài công cụ DDoS hỗ trợ mã hóa giao tiếp trên
toàn bộ mạng Botnet Tùy theo protocol đợc sử dụng để giao tiếp sẽ có các
Trang 11ph-ơng pháp mã hóa thích hợp Nếu mạng Botnet ở dạng IRC-based thì private vàsecrect channel đã hỗ trợ mã hóa giao tiếp.
Cách kích hoạt Agent: có hai phơng pháp chủ yếu để kích hoạt Agent.
Cách thứ nhất là Agent sẽ thờng xuyên quét thăm dò Handler hay IRC channel
để nhận chỉ thị (active Agent) Cách thứ hai là Agent chỉ đơn giản là “nằm vùng”chờ chỉ thị từ Handler hay IRC Channel
1.5 Một số kiểu tấn công DDoS và các công cụ tấn công DDoS
Một số kiểu tấn công DDoS
Bên cạnh việc phân loại các kiểu tấn công theo mục đích tấn công, ta còn
có thể phân loại theo cách tấn công vào giao thức Dới đây là phân loại một sốcách tấn công DDoS theo giao thức : (Tham khảo từ http://www.cisco.com )
ra lệnh cho các daemons gửi các UDP packet đến mục tiêu
Mô hình :
- Attacker(s) >Master(s) >daemon(s) >victim(s)
- Attacker -> Master : port 27665/TCP
- Master -> Deamons : port 27444/UDP
- Daemon -> Master : port 31335/UDP
- Deamon -> UDP Flood đến mục tiêu (random port)
1.5.2 Tribe Flood Network (TFN/TFN2K)
Tơng tự nh Trinoo nhng Tribe Flood Network còn cho phép attacker sửdụng thêm ICMP flood, SYN flood và Smurf
Mô hình :
Attacker(s) >client(s) >daemon(s) >victim(s)
Trang 121.5.3 Stacheldraht
Stacheldraht là sự kết hợp các tính năng của Trinoo và TFN, bên cạnh đócòn thêm khả năng mã hóa giao tiếp giữa attacker và stacheldraht masters
Stacheldraht cung cấp cho attacker khá nhiều phơng thức tấn công từ chối dịch
vụ : ICMP flood, SYN flood, UDP flood và Smurf
Mô hình :
Client(s) >handler(s) >agent(s) >victim(s)
- Client -> handler(s) : port 16660/tcp
- Handler < > agent(s): port 65000/tcp, ICMP ECHO REPLY
1.5.4 Trinity
Trinity có hầu hết các kỹ thuật tấn công bao gồm: UDP, TCP SYN, TCPACK, TCP fragment, TCP NULL, TCP RST, TCP random flag, TCPESTABLISHED packet flood Nó có sẵn khả năng ngẫu nhiên hóa địa chỉ bêngởi Trinity cũng hỗ trợ TCP flood packet với khả năng ngẫu nhiên tậpCONTROL FLAG Trinity có thể nói là một trong số các công cụ DDoS nguyhiểm nhất
1.5.5 Shaft
Shaft có các kĩ thuật tấn công UDP, ICMP và TCP flood Có thể tấn côngphối hợp nhiều kiểu cùng lúc Có thống kê chi tiết cho phép attacker biết tìnhtrạng tổn thất của nạn nhân, mức độ quy mô của cuộc tấn công để điều chỉnh sốlợng Agent
Mô hình :
Client(s) >handler(s) >agent(s) >victim(s)
- Client > handler(s): port 20432/tcp
- Handler -> agent(s): port 18753/udp
- Agent -> handler(s): port 20433/udp
1.5.6 X-flash
Vấn đề then chốt của hacker tấn công bằng hình thái cổ điển là nắm quyền
điều khiển càng nhiều máy tính càng tốt, sau đó anh ta sẽ trực tiếp phát động tấncông hàng loạt từ xa thông qua một kênh điều khiển Với quy mô mạng lới tấncông bao gồm vài trăm nghìn máy, hình thái này có thể đánh gục ngay lập tứcbất cứ hệ thống nào Phối hợp với khả năng giả mạo địa chỉ IP, kiểu tấn công này
sẽ rất khó lần theo dấu vết
Trang 13Hình 1-: Mô hình mạng Classic DDoS
Tuy nhiên, mô hình này có một số nhợc điểm:
- Mạng lới tấn công là cố định và tấn công xảy ra đồng loạt nên rất dễ
điều tra ngợc tìm manh mối
- Software cài lên các Infected Agent là giống nhau và có thể dùnglàm bằng chứng kết tội hacker
- Phía nạn nhân có thể điều chỉnh hệ thống phòng vệ để ngăn chặn vìmạng lới tấn công là “khả kiến”
- Hacker buộc phải trực tiếp kết nối đến mạng lới các máy tấn côngtại thời điểm tấn công để điều khiển nên rất dễ lần ra thủ phạm
X-Flash xuất hiện sau khi DantruongX và nhóm BeYeu phát hiện ra những
lỗ hổng bảo mật của IE và Flash Player Nó chỉ bằng cách đơn giản là gửi yêucầu tới web server dạng HTTP Request ( yêu cầu dạng POST hay GET) với mộttốc độ cực kì nhanh kiến web services bị crash
Cách tấn công : Hacker treo một file flash trên một trang web trung gian
có nhiều ngời truy xuất, ngời dùng truy xuất trang web này file flash sẽ đợc tải
về máy và đợc chơng trình Flash thực thi Từ đây vô số các yêu cầu truy xuất sẽgởi đến trang web mục tiêu
Trang 14- Số lợng attack agent tùy thuộc vào số lợng user truy xuất các trangweb đã bị hacker “nhúng” nội dung flash, số lợng này thay đổi theo thời gian vàhoàn toàn không thể nhận biết địa chỉ IP nguồn, vì đây là các user thông thờng.
- Không hề có quá trình gởi lệnh và nhận báo cáo giữa hacker vàmạng lới tấn công, toàn bộ lệnh tấn công đợc “nhúng” trong nội dung flash vàhacker không cần nhận báo cáo do đây là mô hình tấn công bất đồng bộ
- Tấn công bất đồng bộ: Việc tấn công diễn ra không cần có mệnhlệnh Ngời dùng truy xuất trang web , load nội dung flash về trình duyệt và Flashplayer thực thi nội dung flash thì ngay lập tức máy của họ trở thành một attackagent-liên tục gởi hàng trăm request đến máy chủ web nạn nhân
- Quy mô tấn công phụ thuộc vào số lợng trang web bị lợi dụng và sốlợng ngời dùng thờng xuyên truy xuất các trang web này Chỉ tính trung bìnhhacker lợi dụng đợc 10 trang web và mỗi trang web này có số lợng truy xuấtkhoảng 100 user tại một thời điểm thì tổng số request mà server nạn nhân phảihứng chịu tại một thời điểm lên đến con số vài chục ngàn Đây là một số liệukinh hoàng với bất kỳ ai làm quản trị hệ thống của bất cứ trang web nào và kếtquả thờng là hệ thống tê liệt ngay lập tức
Trang 15Tuy nhiên, hiện nay chơng trình Flash player mới nhất đã đợc fix lỗi, cáchtấn công Flash đã phần nào đợc hạn chế.
1.6 Phòng chống DDoS
Phòng chống DDoS
Có rất nhiều giải pháp và ý tởng đợc đa ra nhằm đối phó với các cuộc tấncông kiểu DDoS Tuy nhiên không có giải pháp và ý tởng nào là giải quyết trọnvẹn bài toán Phòng chống DDoS Các hình thái khác nhau của DDoS liên tụcxuất hiện theo thời gian song song với các giải pháp đối phó, tuy nhiên cuộc đuavẫn tuân theo quy luật tất yếu của bảo mật máy tính: “Hacker luôn đi trớc giớibảo mật một bớc”
Có ba giai đoạn chính trong quá trình Phòng chống DDoS:
- Giai đoạn ngăn ngừa: tối thiểu hóa lợng Agent, tìm và vô hiệu hóacác Handler
- Giai đoạn đối đầu với cuộc tấn công: Phát hiện và ngăn chặn cuộctấn công, làm suy giảm và dừng cuộc tấn công, chuyển hớng cuộc tấn công
- Giai đoạn sau khi cuộc tấn công xảy ra: thu thập chứng cứ và rútkinh nghiệm
Hình 1-: Các giai đoạn chi tiết trong phòng chống DDoS 1.6.1 Tối thiểu hóa lợng Agent
Từ phía ngời dùng: một phơng pháp rất tốt để ngăn ngừa tấn công DDoS
là từng ngời dùng Internet sẽ tự đề phòng không để bị lợi dụng tấn công hệ thốngkhác Muốn đạt đợc điều này thì ý thức và kỹ thuật phòng chống phải đợc phổbiến rộng rãi cho mọi ngời dùng Mạng lới Botnet sẽ không bao giờ hình thànhnếu không có ngời nào bị lợi dụng trở thành Agent Mọi ngời dùng phải liên tục
Trang 16sự hiện diện của Agent trên máy của mình, điều này là rất khó khăn đối vớinhững ngời dùng thông thờng Một giải pháp đơn giản là nên cài đặt và updateliên tục các software nh antivirus, antitrojan và các bản patch của hệ điều hành.
Từ phía Network Service Provider: Thay đổi cách tính tiền dịch vụ truy
cập theo dung lợng sẽ làm cho user lu ý đến những gì họ gửi, nh vậy về mặt ýthức tăng cờng phát hiện DDoS Agent sẽ tự nâng cao ở mỗi ngời dùng
1.6.2 Tìm và vô hiệu hóa các Handler:
Một nhân tố vô cùng quan trọng trong mạng Botnet là Handler, nếu có thểphát hiện và vô hiệu hóa Handler thì khả năng Phòng chống DDoS thành công làrất cao Bằng cách theo dõi các giao tiếp giữa Handler và Client hay Handler vàAgent ta có thể phát hiện ra vị trí của Handler Do một Handler quản lý nhiều,nên triệt tiêu đợc một Handler cũng có nghĩa là loại bỏ một lợng đáng kể cácAgent trong mạng Botnet
1.6.3 Phát hiện dấu hiệu của cuộc tấn công:
Có nhiều kỹ thuật đợc áp dụng:
- Agress Filtering: Kỹ thuật này kiểm tra xem một packet có đủ tiêu
chuẩn ra khỏi một subnet hay không dựa trên cơ sở gateway của một subnet luônbiết đợc địa chỉ IP của các máy thuộc subnet Các packet từ bên trong subnet gửi
ra ngoài với địa chỉ nguồn không hợp lệ sẽ bị giữ lại để điều tra nguyên nhân.Nếu kỹ thuật này đợc áp dụng trên tất cả các subnet của Internet thì khái nhiệmgiả mạo địa chỉ IP sẽ không còn tồn tại
- MIB statistics: trong Management Information Base (SNMP-Simple
Network Management Protocol ) của route luôn có thông tin thống kể về sự biếnthiên trạng thái của mạng Nếu ta giám sát chặt chẽ các thống kê của ProtocolICMP, UDP và TCP ta sẽ có khả năng phát hiện đợc thời điểm bắt đầu của cuộctấn công để tạo “quỹ thời gian vàng” cho việc xử lý tình huống
1.6.4 Làm suy giảm hay dừng cuộc tấn công
Dùng các kỹ thuật sau:
- Load balancing: Thiết lập kiến trúc cân bằng tải cho các server trọng
điểm sẽ làm gia tăng thời gian chống chọi của hệ thống với cuộc tấn công DDoS.Tuy nhiên, điều này không có ý nghĩa lắm về mặt thực tiễn vì quy mô của cuộctấn công là không có giới hạn
- Throttling: Thiết lập cơ chế điều tiết trên router, quy định một khoảng
tải hợp lý mà server bên trong có thể xử lý đợc Phơng pháp này cũng có thể đợcdùng để ngăn chặn khả năng DDoS traffic không cho user truy cập dịch vụ Hạnchế của kỹ thuật này là không phân biệt đợc giữa các loại traffic, đôi khi làm
Trang 17dịch vụ bị gián đoạn với user, DDoS traffic vẫn có thể xâm nhập vào mạng dịch
vụ nhng với số lợng hữu hạn
- Drop request: Thiết lập cơ chế drop request nếu nó vi phạm một số quy
định nh: thời gian delay kéo dài, tốn nhiều tài nguyên để xử lý, gây deadlock Kỹthuật này triệt tiêu khả năng làm cạn kiệt năng lực hệ thống, tuy nhiên nó cũnggiới hạn một số hoạt động thông thờng của hệ thống, cần cân nhắc khi sử dụng
1.6.5 Chuyển hớng cuộc tấn công
Honeyspots: Một kỹ thuật đang đợc nghiên cứu là Honeyspots.
Honeyspots là một hệ thống đợc thiết kế nhằm đánh lừa attacker tấn công vàokhi xâm nhập hệ thống mà không chú ý đến hệ thống quan trọng thực sự
Honeyspots không chỉ đóng vai trò “Lê Lai cứu chúa” mà còn rất hiệu quảtrong việc phát hiện và xử lý xâm nhập, vì trên Honeyspots đã thiết lập sẵn cáccơ chế giám sát và báo động
Ngoài ra, Honeyspots còn có giá trị trong việc học hỏi và rút kinh nghiệm
từ Attacker, do Honeyspots ghi nhận khá chi tiết mọi động thái của attacker trên
hệ thống Nếu attacker bị đánh lừa và cài đặt Agent hay Handler lên Honeyspotsthì khả năng bị triệt tiêu toàn bộ mạng Botnet là rất cao
1.6.6 Giai đoạn sau tấn công
Trong giai đoạn này thông thờng thực hiện các công việc sau:
- Traffic Pattern Analysis: Nếu dữ liệu về thống kê biến thiên lợng
traffic theo thời gian đã đợc lu lại thì sẽ đợc đa ra phân tích Quá trình phân tíchnày rất có ích cho việc tinh chỉnh lại các hệ thống Load Balancing và Throttling.Ngoài ra các dữ liệu này còn giúp quản trị mạng điều chỉnh lại các quy tắc kiểmsoát traffic ra vào mạng của mình
- Packet Traceback: bằng cách dùng kỹ thuật Traceback ta có thể truy
ngợc lại vị trí của Attacker (ít nhất là subnet của attacker) Từ kỹ thuậtTraceback ta phát triển thêm khả năng Block Traceback từ attacker khá hữu hiệu
- Bevent Logs: Bằng cách phân tích file log sau cuộc tấn công, quản trị
mạng có thể tìm ra nhiều manh mối và chứng cứ quan trọng
Những vấn đề có liên quan
DDoS là một kiểu tấn công rất đặc biệt, điểm cực kỳ hiểm ác của DDoSlàm cho nó khó khắc phục là “DDoS đánh vào nhân tố yếu nhất của hệ thốngthông tin – con ngời” Từ đặc điểm này của DDoS làm phát sinh rất nhiều cácvần đề mà mọi ngời trong cộng đồng Internet phải cùng chung sức mới có thểgiải quyết
Sau đây là các yếu điểm mà chúng ta cần phải hạn chế :
Trang 181.6.7 Thiếu trách nhiệm với cộng đồng
Con ngời thông thờng chỉ quan tâm đầu t tiền bạc và công sức cho hệthống thông tin của “chính mình” DDoS khai thác điểm này rất mạnh ở phơngthức giả mạo địa chỉ và Broadcast amplification
- IP spoofing: một cách thức đơn giản nhng rất hiệu quả đợc tận
dụng tối đa trong các cuộc tấn công DDoS Thực ra chống giả mạo địa chỉ không
có gì phức tạp, nh đã đề cập ở phần trên, nếu tất cả các subnet trên Internet đềugiám sát các packet ra khỏi mạng của mình về phơng diện địa chỉ nguồn hợp lệthì không có một packet giả mạo địa chỉ nào có thể truyền trên Internet đợc
Đề nghị: “Tự giác thực hiện Egress Filtering ở mạng do mình quản lý”.
Hi vọng một ngày nào đó sẽ có quy định cụ thể về vấn đề này cho tất cả các ISPtrên toàn cầu
- Broadcast Amplification: tơng tự IP spoofing, nó lợi dụng toàn bộ một
subnet để flood nạn nhân Vì vậy, việc giám sát và quản lý chặt chẽ khả năngbroadcast của một subnet là rất cần thiết Quản trị mạng phải cấu hình toàn bộ hệthống không nhận và forward broadcast packet
1.6.8 Sự im lặng
Hầu hết các tổ chức đều không có phản ứng hay im lặng khi hệ thống củamình bị lợi dụng tấn công hay bị tấn công Điều này làm cho việc ngăn chặn vàloại trừ các cuộc tấn công trở nên khó khăn Mọi việc trở nên khó khăn khi mọingời không chia sẻ kinh nghiệm từ các cuộc tấn công, trong khi giới hacker thìchia sẻ mã nguồn mở của các công cụ, một cuộc chơi không cân sức
Đề nghị:
Mỗi tổ chức có liên quan nên thiết lập quy trình xử lý xâm nhập vào tổchức, nhóm chuyên trách với trách nhiệm và quy trình thật cụ thể Các ISP nênthiết lập khả năng phản ứng nhanh và chuyên nghiệp để hỗ trợ các tổ chức trongviệc thực hiện quy trình xử lý xâm nhập của mình
Khuyến khích các quản trị mạng gia nhập mạng lới thông tin toàn cầu củacác tổ chức lớn về bảo mật nhằm thông tin kịp thời và chia sẻ kinh nghiệm vớimọi ngời
Tất cả các cuộc tấn công hay khuyết điểm của hệ thống đều phải đợc báocáo đến bộ phận tơng ứng để xử lý
Trang 19hỏi một cái nhìn và thái độ đúng đắn của cộng đồng Internet Cần phải có nhữngnghiên cứu thêm về mặt quy định bắt buộc và pháp lý nhằm hỗ trợ chúng tac giảiquyết các vấn đề mà kỹ thuật không thực hiện nỗi Một số vấn đề cần thực hiệnthêm trong tơng lai:
- Giám sát chi tiết về luồng dữ liệu ở cấp ISP để cảnh cáo về cuộc tấncông
- Xúc tiến đa IPSec và Secure DNS vào sử dụng
- Khẳng định tầm quan trọng của bảo mật trong quá trình nghiên cứu
và phát triển của Internet II
- Nghiên cứu phát triển công cụ tự động sinh ra ACL từ securitypolicy, router và firewall
- ủng hộ việc phát triển các sản phẩm hớng bảo mật có các tínhnăng: bảo mật mặc định, tự động update
- Tài trợ việc nghiên cứu các protocol và các hạ tầng mới hỗ trợ khảnăng giám sát, phân tích và điều khiển dòng dữ liệu thời gian thực
- Phát triển các router và switch có khả năng xử lý phức tạp hơn
- Nghiên cứu phát triển các hệ thống tơng tự nh Intrusion Dectection,hoạt động so sánh trạng thái hiện tại với định nghĩa bình thờng củ hệ thống từ đó
- Phát triển hệ điều hành bảo mật hơn
- Nghiên cứu các hệ thống tự động hồi phục có khả năng chống chọi,ghi nhận và hồi phục sau tấn công cho các hệ thống xung yếu
- Nghiên cứu các biện pháp truy tìm, công cụ pháp lý phù hợp nhằmtrừng trị thích đáng các attacker mà vẫn không xâm phạm quyền tự do riêng t cánhân
- Đào tạo lực lợng tinh nhuệ về bảo mật làm nòng cốt cho tính antoàn của Internet
- Nhấn mạnh yếu tố bảo mật và an toàn hơn là chỉ tính đến chi phíkhi bỏ ra xây dựng một hệ thống thông tin
Nhận xét:
Trang 20Thông qua chơng này, ta có thể thấy DDoS thực sự là “Rất dễ thực hiện,hầu nh không thể tránh, hậu quả rất nặng nề.” Chính vì vậy việc đấu tranh phòngchống DDoS là công việc không chỉ của một cá nhân, một tập thể hay một quốcgia mà là công việc của toàn thế giới nói chung và cộng đồng sử dụng mạngInternet nói riêng
Chơng 2 Hệ
THốNG PHáT HIệN Và CHốNG XÂM NHậP CHốNG XÂM
NHậP – IDS & IPS IDS & IPS
Qua chơng 1 chúng ta có thể thấy rõ mối nguy hiểm từ các cuộc tấn côngDDoS Việc phát hiện và nhất là công việc phòng tranh cũng nh đối phó lại vớiDDoS không phải chuyện đơn giản Cùng với thời gian, các kỹ thuật tấn côngngày càng tinh vi hơn khiến các hệ thống an ninh mạng trở nên mất hiệu qủa.Các hệ thống an ninh mạng truyền thống thuần túy dựa trên các tờng lửa nhằmkiểm soát luồng thông tin ra vào hệ thống mạng một cách cứng nhắc dựa trêncác luật bảo vệ cố định Với kiểu phòng thủ này, các hệ thống an ninh sẽ bất lựctrớc kỹ thuật tấn công mới, đặc biệt là các cuộc tấn công nhằm vào điểm yếu của
hệ thống Hệ thống phòng chống thâm nhập IPS là một kỹ thuật an ninh mới, kếthợp các u điểm của kỹ thuật tờng lửa với hệ thống phát hiện xâm nhập IDS, cókhả năng phát hiện các cuộc tấn công và tự động ngăn chặn các cuộc tấn công
đó
Trong chơng này chúng ta sẽ tìm hiểu về vai trò, chức năng và cơ chế hoạt
động của hệ thống IPS và IPS trong việc phát hiện và phòng chống tấn công từchối dịch vụ DDoS
2.1 IDS (Intrusion Detection System):
Định nghĩa:
IDS (Intrusion Detection System - hệ thống phát hiện xâm nhập) là một hệ
thống giám sát lu thô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 bên trong từ bên trong (từnhững ngời trong công ty) hay tấn công từ bên ngoài (từ các hacker) IDS pháthiện dựa trên các dấu hiệu đặc biệt về các nguy cơ đã biết (giống nh cách cácphần mềm diệt virus dựa vào các dấu hiệu đặc biệt để phát hiện và diệt virus)hay dựa trên so sánh lu thông mạng hiện tại với baseline (thông số đo đạc chuẩncủa hệ thống) để tìm ra các dấu hiệu khác thờng
Khái niệm “Phát hiện xâm nhập”: Phát hiện xâm nhập là tiến trình theo
dõi các sự kiện xảy ra trên một hệ thống máy tính hay hệ thống mạng, phân tíchchúng để tìm ra các dấu hiệu “xâm nhập bất hợp pháp” Xâm nhập bất hợp pháp
Trang 21đợc định nghĩa là sự cố gắng tìm mọi cách để xâm hại đến tính toàn vẹn, tính sẵnsàng, tính có thể tin cậy hay là sự cố gắng vợt qua các cơ chế bảo mật của hệthống máy tính hay mạng đó Việc xâm nhập có thể là xuất phát từ một kẻ tấncông nào đó trên mạng Internet nhằm giành quyền truy cập hệ thống, hay cũng
có thể là một ngời dùng đợc phép trong hệ thống đó muốn chiếm đoạt các quyềnkhác mà họ cha đợc cấp phát
Phân loại IDS:
Có 2 loại IDS là Network Based IDS (NIDS) và Host Based IDS (HIDS)
2.1.1 Network IDS hoặc NIDS :
Đợc đặt giữa kết nối hệ thống mạng bên trong và mạng bên ngoài để giámsát toàn bộ lu lợng vào ra Có thể là một thiết bị phần cứng riêng biệt đợc thiếtlập sẵn hay phần mềm cài đặt trên máy tính Chủ yếu dùng để đo lu lợng mạng
đợc sử dụng.Tuy nhiên có thể xảy ra hiện tợng nghẽn cổ chai khi lu lợng mạnghoạt động ở mức cao
- Ví trí: mạng bên trong (NIDS - mạng bên ngoài)
- Loại: hardware (phần cứng) hoặc software (phần mềm)
- Nhiệm vụ: Chủ yếu giám sát lu lợng ra vào mạng
- Nhợc điểm : Có thể xảy ra hiện tợng nghẽn khi lu lợng mạng hoạt
Trang 222.1.2 Host IDS hoặc HIDS:
Đợc cài đặt cục bộ trên một máy tính làm cho nó trở nên linh hoạt hơnnhiều so với NIDS Kiểm soát lu lợng vào ra trên một máy tính, có thể đợc triểnkhai trên nhiều máy tính trong hệ thống mạng HIDS có thể đợc cài đặt trênnhiều dạng máy tính khác nhau cụ thể nh các máy chủ, máy trạm, máy tính xáchtay HIDS cho phép bạn thực hiện một cách linh hoạt trong các đoạn mạng màNIDS không thể thực hiện đợc Lu lợng đã gửi tới máy tính HIDS đợc phân tích
và chuyển qua nếu chúng không chứa mã nguy hiểm HIDS đợc thiết kế hoạt
động chủ yếu trên hệ điều hành Windows , mặc dù vậy vẫn có các sản phẩm hoạt
động trong nền ứng dụng UNIX và nhiều hệ điều hành khác
- Ví trí : cài đặt cục bộ trên máy tính và dạng máy tính nên linh hoạt hơn NIDS.
- Loại : software (phần mềm).
- Nhiệm vụ : phân tích lu lợng ra vào mạng chuyển tới máy tính cài đặt HIDS
- Ưu điểm :
- Cài đặt trên nhiều dạng máy tính : xách tay, PC,máy chủ
- Phân tích lu lợng mạng rồi mới forward
- Nhợc điểm : Đa số chạy trên hệ điều hành Window Tuy nhiêncũng đã có 1 số chạy đợc trên Unix và những hệ điều hành khác
Hình 2-: Mô hình HIDS
* Một số sản phẩm HIDS:
- Snort (Miễn phí, mã nguồn mở)
- GFI EventsManager 7
Các kỹ thuật xử lý dữ liệu đợc sử dụng trong các hệ thống phát hiện xâm nhập:
Phụ thuộc vào kiểu phơng pháp đợc sử dụng để phát hiện xâm nhập, cáccơ chế xử lý khác nhau cũng đợc sử dụng cho dữ liệu đối với một IDS
Trang 23- Hệ thống Expert (Expert systems): Hệ thống này làm việc trên mộttập các nguyên tắc đã đợc định nghĩa từ trớc để miêu tả các tấn công Tất cả các
sự kiện có liên quan đến bảo mật đều đợc kết hợp vào cuộc kiểm định và đợcdịch dới dạng nguyên tắc if-then-else Lấy ví dụ Wisdom & Sense vàComputerWatch (đợc phát triển tại AT&T)
- Phát hiện xâm nhập dựa trên luật (Rule-Based Intrusion Detection):Giống nh phơng pháp hệ thống Expert, phơng pháp này dựa trên những hiểu biết
về tấn công Chúng biến đổi sự mô tả của mỗi tấn công thành định dạng kiểm
định thích hợp Nh vậy, dấu hiệu tấn công có thể đợc tìm thấy trong các bảnghi(record) Một kịch bản tấn công có thể đợc mô tả, ví dụ nh một chuỗi sự kiệnkiểm định đối với các tấn công hoặc mẫu dữ liệu có thể tìm kiếm đã lấy đợctrong cuộc kiểm định Phơng pháp này sử dụng các từ tơng đơng trừu tợng củadữ liệu kiểm định Sự phát hiện đợc thực hiện bằng cách sử dụng chuỗi văn bảnchung hợp với các cơ chế Điển hình, nó là một kỹ thuật rất mạnh và thờng đợc
sử dụng trong các hệ thống thơng mại (ví dụ nh: Cisco Secure IDS, EmeraldeXpert-BSM(Solaris))
- Phân biệt ý định ngời dung (User intention identification): Kỹ thuậtnày mô hình hóa các hành vi thông thờng của ngời dùng bằng một tập nhiệm vụmức cao mà họ có thể thực hiện đợc trên hệ thống (liên quan đến chức năng ngờidùng) Các nhiệm vụ đó thờng cần đến một số hoạt động đợc điều chỉnh sao chohợp với dữ liệu kiểm định thích hợp Bộ phân tích giữ một tập hợp nhiệm vụ cóthể chấp nhận cho mỗi ngời dùng Bất cứ khi nào một sự không hợp lệ đợc pháthiện thì một cảnh báo sẽ đợc sinh ra
- Phân tích trạng thái phiên (State-transition analysis): Một tấn công
đợc miêu tả bằng một tập các mục tiêu và phiên cần đợc thực hiện bởi một kẻxâm nhập để gây tổn hại hệ thống Các phiên đợc trình bày trong sơ đồ trạng tháiphiên Nếu phát hiện đợc một tập phiên vi phạm sẽ tiến hành cảnh báo hay đáptrả theo các hành động đã đợc định trớc
- Phơng pháp phân tích thống kê (Statistical analysis approach): Đây
là phơng pháp thờng đợc sử dụng Hành vi ngời dùng hay hệ thống (tập cácthuộc tính) đợc tính theo một số biến thời gian Ví dụ, các biến nh là: đăng nhậpngời dùng, đăng xuất, số tập tin truy nhập trong một khoảng thời gian, hiệu suất
sử dụng không gian đĩa, bộ nhớ, CPU,…Và còn hàng trăm các cuộc tấn công Chu kỳ nâng cấp có thể thay đổi từ mộtvài phút đến một tháng Hệ thống lu giá trị có nghĩa cho mỗi biến đợc sử dụng
để phát hiện sự vợt quá ngỡng đợc định nghĩa từ trớc Ngay cả phơng pháp đơngiản này cũng không thế hợp đợc với mô hình hành vi ngời dùng điển hình Các
Trang 24phơng pháp dựa vào việc làm tơng quan thông tin về ngời dùng riêng lẻ với cácbiến nhóm đã đợc gộp lại cũng ít có hiệu quả Vì vậy, một mô hình tinh vi hơn
về hành vi ngời dùng đã đợc phát triển bằng cách sử dụng thông tin ngời dùngngắn hạn hoặc dài hạn Các thông tin này thờng xuyên đợc nâng cấp để bắt kịpvới thay đổi trong hành vi ngời dùng Các phơng pháp thống kê thờng đợc sửdụng trong việc bổ sung trong IDS dựa trên thông tin hành vi ngời dùng thôngthờng
2.2 IPS (Intrusion Detection System):
Định nghĩa:
IPS (Intrusion Detection System- hệ thống phát hiện xâm nhập) là một hệ
thống chống xâm nhập ( Intrusion Prevention System –IPS) đợc định nghĩa làmột phần mềm hoặc một thiết bị chuyên dụng có khả năng phát hiện xâm nhập
và có thể ngăn chặn các nguy cơ gây mất an ninh IDS và IPS có rất nhiều điểmchung, do đó hệ thống IDS và IPS có thể đợc gọi chung là IDP-IntrusionDetection and Prevention
Phân loại:
Có hai kiểu chính khi triển khai IPS là out-of-band IPS và in-line IPS:
- Out-of-band IPS (OOB IPS): hệ thống IPS đứng “dạng chân” trênfirewall Nh vậy luồng dữ liệu vào hệ thống mạng sẽ cùng đI qua firewall và IPS.IPS có thể kiểm soát luồn dữ liệu vào, phân tích và phát hiện các dấu hiệu của sựxâm nhập, tấn công Với vị trí này, OOB IPS có thể quản lý firewall, chỉ dẫn nóchặn lạI các hành động nghi ngờ
- In-line IPS: Vị trí IPS nằm trớc firewall, luồng dữ liệu phảI đIquachúng trớc khi tới firewall Điểm khác chính so với OOB IPS là có thêm chứcnăng traffic-blocking Điều đó làm cho IPS có thể ngăn chặn luồng giao thôngnguy hiểm nhanh hơn so với OOB IPS Tuy nhiên vị trí này sẽ làm cho tốc độluồng thông tin qua ra vào mạng chậm hơn
Với mục tiêu ngăn chặn các cuộc tấn công, hệ thống IPS phải hoạt độngtheo thời gian thực Tốc độ họat động của hệ thống là một yếu tố rất quan trọng.Qua tằinh phát hiện xâm nhập phải đủ nhanh để có thể ngăn chặn các cuộc tấncông ngay lập tức Nếu không đáp ứng đợc điều này thì các cuộc tấn công đã đợcthực hiện xong và hệ thống IPS là vô nghĩa
Các thành phần chính của IPS
Hệ thống IPS gồm 3 modul chính: modul phân tích gói, modul phát hiệntấn công, modul phản ứng Dới đây ta xét cụ thể các modul đó:
Trang 25- Modul phân tích gói(packet analyzer): Modul này có nhiệm vụ phân
tích cấu trúc thông tin trong các gói tin Card mạng (NIC) của máy giám sát đợc
đặt ở chế độ promiscuous mode, tất cả các gói tin qua chúng đều đợc copy lại vàchuyển lên lớp trên Bộ phân tích gói đọ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ụ gì…Và còn hàng trăm các cuộc tấn công Các thông tin này đợc chuyển
đến modul phát hiện tấn công
- Modul phát hiện tấn công: Đây là modul quan trọng nhất trong hệ
thống, có khả năng phát hiện các cuộc tấn công Có hai phơng pháp để phát hiệncác cuộc tấn công, xâm nhập: Misuse Detection (dò sự lạm dụng) và AnomalyDetection (dò sự không bình thờng)
- Misuse Detection: Phơng pháp này phân tích các hoạt động của hệ
thống, tìm kiếm các sự kiện giống với cá
2.3 So sánh giữa IDS và IPS:
Hiện nay, Công nghệ của IDS đã đợc thay thế bằng các giải pháp IPS Nếu
nh hiểu đơn giản, ta có thể xem nh IDS chỉ là một cái chuông để cảnh báo chongời quản trị biết những nguy cơ có thể xảy ra tấn công Dĩ nhiên ta có thể thấyrằng, nó chỉ là một giải pháp giám sát thụ động, tức là chỉ có thể cảnh báo màthôi, việc thực hiện ngăn chặn các cuộc tấn công vào hệ thống lại hoàn toàn phụthuộc vào ngời quản trị Vì vậy yêu cầu rất cao đối với nhà quản trị trong việcxác định các lu lợng cần và các lu lợng có nghi vấn là dấu hiệu của một cuộc tấncông Và dĩ nhiên công việc này thì lại hết sức khó khăn Với IPS, ngời quản trịkhông nhũng có thể xác định đợc các lu lợng khả nghi khi có dấu hiệu tấn công
mà còn giảm thiểu đợc khả năng xác định sai các lu lợng Với IPS, các cuộc tấncông sẽ bị loại bỏ ngay khi mới có dấu hiệu và nó hoạt động tuân theo một quyluật do nhà Quản trị định sẵn
IDS hiện nay chỉ sử dụng từ một đến 2 cơ chế để phát hiện tấn công Vìmỗi cuộc tấn công lại có các cơ chế khác nhau của nó (Có thể tham khảo thêmcác bài viết về DoS của tui), vì vậy cần có các cơ chế khác nhau để phân biệt.Với IDS, do số lợng cơ chế là ít nên có thể dẫn đến tình trạng không phát hiện ra
đợc các cuộc tấn công với cơ chế không định sẵn, dẫn đến khả năng các cuộc tấncông sẽ thành công, gây ảnh hởng đến hệ thống Thêm vào đó, do các cơ chế củaIDS là tổng quát, dẫn đến tình trạng báo cáo nhầm, cảnh báo nhầm, làm tốn thờigian và công sức của nhà quản trị Với IPS thì đợc xây dựng trên rất nhiều cơ chếtấn công và hoàn toàn có thể tạo mới các cơ chế phù hợp với các dạng thức tấncông mới nên sẽ giảm thiểu đợc khả năng tấn công của mạng, thêm đó, độ chínhxác của IPS là cao hơn so với IDS
Trang 26Nên biết rằng với IDS, việc đáp ứng lại các cuộc tấn công chỉ có thể xuấthiện sau khi gói tin của cuộc tấn công đã đi tới đích, lúc đó việc chống lại tấncông là việc nó gửi các yêu cầu đến các máy của hệ thống để xoá các kết nối đếnmáy tấn công và máy chủ, hoặc là gửi thông tin thông báo đên tờng lửa( Firewall) để tờng lửa thực hiện chức năng của nó, tuy nhiên, việc làm này đôikhi lại gây tác động phụ đến hệ thống Ví dụ nh nếu Attacker giả mạo (sniffer)của một đối tác, ISP, hay là khách hàng, để tạo một cuộc tấn công từ chối dịch
vụ thì có thể thấy rằng, mặc dù IDS có thể chặn đợc cuộc tấn công từ chối dịch
vụ nhng nó cũng sẽ Block luôn cả IP của khách hàng, của ISP, của đối tác, nhvậy thiệt hại vẫn tồn tại và coi nh hiệu ứng phụ của DoS thành công mặc dù cuộctấn công từ chối dịch vụ thất bại Nhng với IPS thì khác nó sẽ phát hiện ngay từ
đầu dấu hiệu của cuộc tấn công và sau đó là khoá ngay các lu lợng mạng này thìmới có khả năng giảm thiểu đợc các cuộc tấn công
2.4 Kết luận:
Trên đây chúng ta đã tìm hiểu tổng quan về vai trò, chức năng của hệthống IDS – IPS, trong các chơng sau chúng ta sẽ đi sâu nghiên cứu và triểnkhai một hệ thống IDS-IPS dựa trên các nền tảng mã nguồn mở đang đợc sửdụng rộng rãi hiện nay
Chơng 3 TổNG
QUAN Về SNORT
Với khả năng phát hiện và cảnh báo các cuộc tấn công trên mạng, hiệnSnort là một IDS khá xuất sắc trong việc phát hiện các cuộc tấn công DDoS.Trong chơng này chúng ta sẽ nghiên cứu chi tiết về vai trò, chứa năng hoạt độngcủa snort
3.1 GIớI THIệU SNORT:
Snort là một hệ thống phát hiện xâm nhập mạng (NIDS) mã nguồn mở
miễn phí NIDS là một kiểu của hệ thống phát hiện xâm nhập (IDS), đợc sử dụng
để quét dữ liệu di chuyển trên mạng Cũng có các hệ thống phát hiện xâm nhậphost-based, đợc cài đặt trên một host cụ thể và chỉ để phát hiện các sự tấn côngnhắm đến host đó Mặc dù tất cả các phơng pháp phát hiện xâm nhập vẫn cònmới nhng Snort đợc đánh giá là hệ thống tốt nhất hiện nay
Snort chủ yếu là một IDS dựa trên luật, tuy nhiên các input plug-in cũngtồn tại để phát hiện sự bất thờng trong các header của giao thức
Snort sử dụng các luật đợc lu trữ trong các file text, có thể đợc chỉnh sửabởi ngời quản trị Các luật đợc nhóm thành các kiểu Các luật thuộc về mỗi loại
đợc lu trong các file khác nhau File cấu hình chính của Snort là snort.conf.
Trang 27Snort đọc những luật này vào lúc khởi tạo và xây dựng cấu trúc dữ liệu để cungcấp các luật để bắt giữ dữ liệu Tìm ra các dấu hiệu và sử dụng chúng trong cácluật là một vấn đề đòi hỏi sự tinh tế, vì bạn càng sử dụng nhiều luật thì năng lực
xử lý càng đợc đòi hỏi để thu thập dữ liệu trong thực tế Snort có một tập hợp cácluật đợc định nghĩa trớc để phát hiện các hành động xâm nhập và bạn cũng cóthể thêm vào các luật của chính bạn Bạn cũng có thể xóa một vài luật đã đợc tạotrớc để tránh việc báo động sai
3.2 CáC THàNH PHầN CủA SNORT:
Snort đợc chia thành nhiều thành phần Những thành phần này làm việcvới nhau để phát hiện các cách tấn công cụ thể và tạo ra output theo một địnhdạng đợc đòi hỏi Một IDS dựa trên Snort bao gồm các thành phần chính sau
Trang 28Packet Decoder lấy các gói từ các giao diện mạng khác nhau và chuẩn bịcho việc gói tin đợc xử lí trớc hoặc đợc gửi cho bộ phận phát hiện Bộ phận này
sẽ đọc packet, nhận biết các trờng trong packet
Hình 3-: Packet Decoder
Khi Decoder nhận đợc các gói dữ liệu (data blob) nó sẽ khởi tạo các contrỏ để chỉ rõ vị trí của từng loại dữ liệu Ví dụ nh đâu là Ethernet header, Ipheader, TCP header, payload…Và còn hàng trăm các cuộc tấn công
Hình 3-: Cầu trúc của packet sau khi đợc decoded
Preprocessors
Preprocessors là những thành phần đợc sử dụng với Snort để sắp xếp hoặcchỉnh sửa gói dữ liệu trớc khi bộ phận phát hiện làm một vài xử lý để tìm ra góitin có đợc sử dụng bởi kẻ xâm nhập hay không Một vài bộ phận xử lý trớc cũngthực thi việc phát hiện bằng cách tìm các dấu hiệu bất thờng trong header củagói tin và tạo ra các cảnh báo Bộ phận xử lí trớc là rất quan trọng trong bất kìIDS nào, chúng chuẩn bị cho các gói dữ liệu đợc phân tích dựa trên các luậttrong bộ phận phát hiện Kẻ tấn công sử dụng nhiều kĩ thuật khác nhau để lừaIDS theo nhiều cách Bộ phận xử lí trớc cũng đợc sử dụng để tái hợp các gói tin.Trên IDS, trớc khi áp dụng bất kì luật nào, bạn phải tái hợp các gói tin lại để tìm
ra các dấu hiệu Bộ phận xử lí trớc trong Snort có thể tái hợp các gói tin, giải mãHTTP URI, ráp lại các dòng TCP, v.v Nói tóm lại, chức năng củaPreprocessors là để sắp xếp hoặc modify lại packet trớc khi đi vào detectionengine Một số module này có khả năng phát hiện các packet dị thờng trong
Trang 29header và sinh ra alert Ngoài ra, nó có thể tái định dạng gói tin (defragment),sắp xếp lại chuỗi.
Những chức năng này rất quan trọng trong hệ thống phát hiện xâm nhập
Có nhiều Preprocessor khác nhau trong không cấu trúc của Snort Khi cómột packet xuất hiện, các Preprocessors này đợc tải theo trình tự đợc cấu hìnhtrong Snort.conf
Hình 3-: Order of preprocessors that packet is processed
Các gói tin sẽ đợc kiểm tra qua tất cả các Preprocessor Dới đây là cácPreprocessors cơ bản:
Trang 30Hình 3-: Gói tin đợc xử lý thông qua multimedia classification preprocessor
Detection Engine:
Đây là phần quan trọng nhất của Snort Trách nhiệm của nó là phát hiện
có sự xâm nhập tồn tại trong gói tin hay không Bộ phận phát hiện sử dụng cácluật của Snort cho mục đích này.Nếu một gói tin giống với bất kì lậut nào, mộthành động tơng ứng sẽ đợc thực hiện
Hình 3-: Cách detection engine làm việc
Detection Engine sử dụng một link list hai chiều để so sánh các gói tin.Khi một packet đợc đa vào Detection Engine, dựa vào giao thức, nó sẽ đợc gửi
Trang 31đến các rule tree phù hợp rồi so sánh với mỗi Rule Tree Node từ trái qua phải,nếu phù hợp nó lại tiếp tục so sánh với Option Tree Node Link List là một matrận bao gồm hai hai cấu trúc: Rule Tree Node (RTN) và Option Tree Node(OTN).
RTN dùng để kiểm tra header của gói tin với header trong tập luật, cònOTN dùng để so sánh phần option của tập luật (mỗi tập luật gồm hai phần chính
là header và option) Dới đây là quy trình của gói tin khi đi qua RTN và OTN
Hình 3-: Compare header of packet happening in RTN
Hình 3-: Compare option part of packet happening in OTN
Sau khi các rule đã đợc phân tích cú pháp, nó đợc lu trữ trong RTN vàOTN để thuận tiện cho các quy trình tiếp theo
Trang 32Hình 3-: Rules after comparing are kept stored in RTN và OTN
Rule List là một con trỏ dùng để trỏ tới danh sách liên kết RuleListNode,mỗi node này lại co một ListHead lu trữ các loại rule khác nhau nh Alert,Dynamic, Log, Pass, Activattion Trong mỗi ListHead sẽ bao gồm thông tin vềbốn loại giao thức: TCP, UDP, IP và ICMP
Detection Engine là bộ phận then chốt về thời gian thực thi của Snort Dựavào bộ máy của bạn mạnh nh thế nào và bao nhiêu luật bạn định nghĩa mà nó cóthể tốn những khoảng thời gian khác nhau đối với các gói tin khác nhau Nếu l ulợng trên mạng là quá lớn khi Snort đang hoạt động trong chế độ NIDS, bạn cóthể mất một vài gói tin và có thể thời gian đáp ứng không chính xác Lu lợngtrên bộ phận phát hiện phụ thuộc vào các yếu tố sau:
- Số lợng các luật.
- Sức mạnh của bộ máy mà Snort đang chạy.
- Tốc độ của bus đợc sử dụng.
- Lu lợng trên mạng
Bộ phận phát hiện hoạt động theo những cách khác nhau ở các phiên bảnkhác nhau của Snort Trong tất cả phiên bản 1.x của Snort, bộ phận phát hiệndừng việc xử lí gói tin khi phù hợp với một luật Dựa vào luật, bộ phận phát hiện
sẽ có các hành động tơng ứng Điều này có nghĩa là nếu một gói tin phù hợp vớinhiều luật, chỉ có luật đầu tiên đợc áp dụng mà không xem xét đến các luật còn
Trang 33lại Điều này làm nảy sinh một vấn đề Một luật có độ u tiên thấp sẽ tạo ra mộtcảnh báo có độ u tiên thấp, nếu một luật có độ u tiên cao bị xếp sau trong chuỗiluật Vấn đề này đợc giải quyết trong Snort phiên bản 2, khi mà tất cả các luật đ-
ợc so sánh trên một gói tin trớc khi tạo ra một cảnh báo Sau khi so sánh tất cảcác luật, luật có độ u tiên cao nhất sẽ đợc chọn để tạo cảnh báo Vì bộ phận pháthiện trong phiên bản 2 đã đợc viết lại hoàn toàn nên nó nhanh hơn rất nhiều sovới các phiên bản trớc đây
- Alert_smb – gửi SMB messages tới máy chủ
- Alert_unixsock – Thiết lập một establishes a UNIX domain socket
và gửi cảnh báo tới đó
- Log_tcpdump – truy cập các gói bằng định dạng file tcpdump fileformat
- CSV – outputs to a comma delimited file, for easy import tospreadsheet or database applications.- XML – có thể truy cập tới SNML(Simple Network Markup Language)
- Database – truy cập trực tiếp tới các dữ liệu có liên quan (hỗ trợMySQL, PostgreSQL, Oracle, UNIXODBC)
3.3 CƠ CHế HOạT ĐộNG CủA SNORT:
Snort hoạt động ở 4 cơ chế cơ bản:
- Sniffer (snort -v)
- Packet logger (snort -l)
- Network Intrusion Detection System (snort -A hoặc snort -c
<path_to_conf_file>).
Snort là một Sniffer:
Các công cụ sniffer mạng nh tcpdump, ethereal, và Tethereal có đầy đủcác đặc tính và phân tích gói tin một cách xuất sắc, tuy nhiên, có lúc bạn cầnxem lu lợng mạng trên bộ cảm biến Snort Trong trờng hợp này, sử dụng Snort
nh là một sniffer là khả thi Kết quả xuất của chế độ Snort sniffer hơi khác so vớicác sniffer dòng lệnh Nó rất dễ để đọc và bạn có thể thấy thích khả năng bắt giữ
Trang 34gói tin nhanh của nó Một đặc tính hay của chế độ này là việc tóm tắt lu lợngmạng khi kết thúc việc bắt giữ gói tin Thỉnh thoảng, nó có thể là một công cụ gỡrối hữu dụng cho nhà quản trị.Bật chế độ sniffer cho Snort bằng cờ -v
# snort –v
Trong lúc khởi động, Snort hiển thị chế độ, th mục ghi log, và các giaodiện mà nó đang lắng nghe Khi việc khởi động hoàn tất, Snort bắt đầu xuất cácgói tin ra màn hình Kết quả xuất này khá cơ bản : nó chỉ hiển thị các headerIP,TCP/UDP/ICMP và một số cái khác Để thoát chế độ sniffer, sử dụng Ctrl-C.Snort thoát bằng cách tạo ra một bản tóm tắt các gói tin đợc bắt giữ, bao gồmcácgiao thức, thống kê phân mảnh và tái hợp gói tin Để xem dữ liệu ứng dụng ,
sử dụng cờ -d Tùy chọn này cung cấp các kết quả chi tiết hơn:
# snort –vd
Dữ liệu ứng dụng có thể thấy đợc và bạn có thể nhìn thấy các plain texttrong gói tin Trong trờng hợp này, văn bản gửi từ một server DNS đợc thể hiệndới dạng plain text Để xem đợc chi tiết hơn, bao gồm các header lớp liên kết dữliệu, sử dụng cờ -e Việc sử dụng cả hai tùy chọn –d và –e sẽ cho hiển thị hầu
nh tất cả các dữ liệu trong gói tin:
# 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à địachỉ IP Khi thực hiện kiểm tra trên một mạng hoặc bắt giữ dữ liệu bằng Snort,việc bật –vde cung cấp nhiều thông tin nhất
Để lu lại trong logfile thay vì xuất ra console, sử dụng:
snort -dve > temp.log.
Tóm lại, đây là các tùy chọn có thể sử dụng với chế độ sniffer của Snort:Những tùy chọn này có thể chạy độc lập hoặc kết hợp với cái khác
Snort là một Packet Logger:
Bớc tiếp theo sau khi sniffing các gói tin là ghi log chúng Việc ghi log chỉ
đơn giản bằng cách thêm tùy chọn –l, theo sau đó là th mục mà bạn muốn lu trữcác log Th mục mặc định trong Snort là /var/log/snort Nếu bạn xác định một thmục không tồn tại thì Snort sẽ báo một thông điệp lỗi Bạn có thể sử dụng cáctùy chọn –d, -a và –e để điều khiển số lợng thông tin sẽ đợc ghi log cho mỗigói tin Trong ví dụ sau đây, th mục log đợc thiết lập là /usr/local/log/snort, vàcác logfile bao gồm các payload gói tin:
# snort -l /usr/local/log/snort –d
Khi chạy trong chế độ này, Snort thu thập mỗi gói tin nó thấy và lu chúngtrong th mục log theo kiểu phân cấp Nói cách khác, một th mục mới đợc tạo racho mỗi địa chỉ đợc bắt giữ và dữ liệu liên quan đến địa chỉ này đợc lu trong th
Trang 35mục đó.Snort lu các gói tin thành các file ASCII, với tên file đợc tạo ra từ giaothức và số cổng Cách tổ chức này làm cho nhà quản trị có thể dễ dàng thấy đợc
ai đang kết nối với mạng, số cổng và giao thức họ đang sử dụng (sử dụng ls –R
để liệt kê th mục log) Hãy nhớ xác định biến mạng của bạn (trong file cấu hìnhhoặc sử dụng -h ) để xác định chỉ ghi log cho mạng của bạn
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 đợcquan tâm hoặc bạn muốn xem thoáng qua các địa chỉ IP của các host đợc bắtgiữ 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ácfile Nếu bạn ghi log tất cả lu 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ếumộ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ổngTCp cũng nh 65536 cổng UDP, bạn sẽ đột ngột có hơn 131000 file trong một thmụ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áynà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 theokiểu nhị phân, sử dụng –b switch Ví dụ:
# snort -b -l /usr/local/log/snort/temp.log
Khi bạn đã thực hiện việc bắt giữ gói tin, bạn có thể đọc lại các file vừatạo ra bằng khóa –r Kết quả giống nh sniffer của Snort Lu ý rằng –r khôngthể sử dụng với –C
độ này) Vị trí mặc định của file này là /etc/snort.conf Nếu bạn muốn đặt ở một
vị trí khác, bạn phải sử dụng khóa –c kèm với vị trí đặt file Các cảnh báo đợc
đặt trong file alert trong th mục log (mặc định là (/var/log/snort) Snort sẽ thoát
ra với với một lỗi nếu file cấu hình hoặc th mục log không tồn tại
Các cài đặt mặc định cho hầu nh tất cả các mục trong file này là khá tốt(mặc dù sẽ có các cảnh báo nhầm) Biến duy nhất chúng ta mới thiết lập là biến
Trang 36RULE_PATH, chỉ cho Snort nơi của các file luật File cảnh báo nằm trong thmục /var/log/snort File này chứa các cảnh báo đợc tạo ra khi Snort đang chạy.Các cảnh báo Snort đợc phân loại theo kiểu cảnh báo Một luật Snort cũng xác
định một mức độ u tiên cho một cảnh báo.Điều này cho phép bạn lọc các cảnhbáo có độ u tiên thấp
Các tùy chọn câu lệnh, file cấu hình và các luật của Snort sẽ đợc trình bàytrong các phần tiếp theo
Các tùy chọn câu lệnh của Snort:
Trớc khi chúng ta tìm hiểu các cơ chế hoạt động của Snort, đầu tiên hãyxem xét các tùy chọn của dòng lệnh Một vài tùy chọn có thể đợc xác định trongfile cấu hình thay vì ở dòng lệnh Nếu bạn chỉ muốn thử một vài thứ, xác địnhcác cài đặt trong dòng lệnh Nếu bạn dự định sẽ giữ các cài đặt này trong mộtkhoảng thời gian, thiết lập chúng trong file cấu hình
Các luật của Snort
Giống nh virut, hấu hết các hành vi xâm nhập đều có một vài dấu hiệu.Thông tin về các dấu hiệu này đợc sử dụng để tạo ra các luật của Snort Bạn cóthể sử dụng honeypot để biết kẻ xâm nhập đang làm gì và thông tin về các công
cụ và kĩ thuật của chúng Ngoài ra, có các sơ sở dữ liệu về các điểm yếu mà kẻxâm nhập muốn khai thác Những cách tấn công đã biết này cũng có thể đợc sửdụng nh là các dấu hiệu để phát hiện một ngời nào đó muốn tấn công hệ thốngcủa bạn.Các dấu hiệu có thể tồn tại trong header của các gói tin Hệ thống pháthiện xâm nhập dựa trên Snort thì dựa trên các luật Các luật của Snort có thể đ ợc
sử dụng để kiểm tra nhiều phần khác nhau của gói tin.Một luật có thể đợc sửdụng để tạo ra một thông điệp cảnh báo, ghi lại một thông điệp ,hoặc trongSnort là “pass” gói tin Hầu hết các luật của Snort đợc viết theo từng dòng đơn.Tuy nhiên, bạn cũng có thể mở rộng các luật thành nhiều dòng bằng cách sửdụng kí tự gạch chéo ngợc tại cuối dòng Các luật thờng đợc đặt trong file cấu
hình, thờng là snort.conf Bạn cũng có thể sử dụng nhiều file bằng cách gom
chúng lại trong một file cấu hình chính
3.4 RULE – IDS & IPS CấU TRúC LUậT CủA SNORT
Luật dở đầu tiên
Thật ra, đây có thể là luật tệ nhất đã từng đợc viết, nhng nó kiểm tra rất tốtnếu Snort đang hoạt động tốt và có thể tạo ra các cảnh báo
Alert ip any any -> any any (msg : IP Packet detected)
Bạn có thể dùng luật này vào cuối mỗi file snort.conf khi bạn cài đặt Snortlần đầu tiên Luật này sẽ tạo ra cảnh báo cho mỗi gói tin Ip bắt đợc Nó sẽ làm
đầy không gian đĩa một cách nhanh chóng nếu nh bạn vẫn để nó ở đó Luật này
Trang 37dở vì nó không truyền đạt bất kì thông tin gì.Tại sao ta sử dụng luật này? Đó cóthể là lần đầu tiên bạn kiểm tra để đảm bảo Snort đã đợc cài đặt đúng Trong cáclần tiếp theo, bạn sẽ thấy thông tin về các phần khác nhau của luật Snort.Luật kếtiếp tạo ra cảnh báo cho tất cả các gói tin ICMP.
Alert icmp any any -> any any (msg : “ICMP Packet found”)
Cấu trúc của một luật
Tất cả các luật Snort đều có hai phần chính : header và options Phần
header chứa các thông tin về hành động mà luật sẽ thực hiện Nó cũng chứa các
tiêu chuẩn về việc so sánh một luật trên một gói tin Phần option thờng chứa một
thông điệp cảnh báo và thông tin về phần nào của gói tin đợc sử dụng để tạo racảnh báo Một luật có thể phát hiện một hoặc nhiều kiểu xâm nhập
Header của luật Snort
Cấu trúc tổng quát của phần header nh sau:
Trong đó :
- Action : xác định kiểu hành động đợc thực hiện khi một tiêu chuẩn đợc
so trùng và một luật giống với gói tin dữ liệu Hành động điển hình là việc tạo racác cảnh báo hoặc ghi lại các thông điệp log
- Protocol : đợc sử dụng để áp dụng luật trên gói tin cho một giao thức
cụ thể Phần protocol đợc sử dụng để áp dụng luật trên các gói tin chỉ đối vớimột giao thức cụ thể Đây là tiêu chuẩn đầu tiên đợc đề cập trong luật Một vàigiao thức đợc sử dụng nh là IP, ICMP, UDP
- Address : xác định đại chỉ nguồn và địa chỉ đích Địa chỉ có thể là của
một host, nhiều host hoặc là địa chỉ mạng Lu ý rằng trong một luật sẽ có 2 địachỉ : địa chỉ nguồn và địa chỉ đích
- Port : đợc áp dụng trong trờng hợp TCP hay UDP, xác định cổng nguồn
và đích của một gói tin mà luật đợc áp dụng Trong trờng hợp giao thức lớpmạng là IP và ICMP, số port là không có ý nghĩa
- Direction : của luật xác định địa chỉ và cổng nào đợc sử dụng nh là
nguồn hay là đích
- Ví dụ: xét một luật sau đây Luật này sẽ tạo ra một thông điệp cảnh
báo bất cứ khi nào nó phát hiện một gói tin ping ICMP (ICMP ECHOREQUEST) với TTL là 100, nh sau:
alert icmp any any -> any any(msg:"PingwithTTL=100";\ttl: 100)
Phần trớc dấu ngoặc đơn là header của luật, phần trong dầu ngoặc đơn là phầnoption Phần header chứa các thông tin nh sau:
Trang 38- Rule action (Phần thực thi của luật): trong luật này, kiểu thực thi của
luật là “alert”, nghĩa là một cảnh báo sẽ đợc tạo ra khi trùng với một dấu hiệu xn.Nhớ rằng gói tin sẽ đợc ghi log một cách mặc định khi cảnh báo đợc tạo ra Phụthuộc vào phần action, phần option của luật có thể chứa các tiêu chuẩn thêm vàotrong luật
- Protocol (Giao thức) : trong luật này, giao thức là ICMP, nghĩa là luật
này chỉ đợc áp dụng trên các gói tin ICMP Trong bộ phận phát hiện của Snort,nếu giao thức của một gói tin không phải là ICMP, phần còn lại của gói tin sẽkhông đợc quan tâm để tiết kiệm thời gian CPU Phần protocol đóng một vai tròqian trọng khi bạn muốn áp dụng luật Snort chỉ trên những gói tin với nhữngkiểu cụ thể
- Địa chỉ nguồn và cổng nguồn : trong ví dụ này, cả hai phần này đều là
“any”, nghĩa là luật đợc áp dụng cho tất cả các gói tin đến từ một nguồn bất kì
Dĩ nhiên số cổng không liên quan gì đến gói tin ICMP Số cổng chỉ liên quan khigiao thức đợc sử dụng là TCP hoặc UDP
- Direction : Trong trờng hợp này direction đợc thiết lập là từ trái qua
phải sử dụng kí hiệu -> Điều này chỉ ra rằng số địa chỉ và cổng ở phía bên trái lànguồn và ở phía bên phải là của đích Nó cũng có nghĩa là luật này sẽ đợc ápdụng trên các gói tin di chuyển từ nguồn tới đích Bạn cũng có thể sử dụng kíhiệu <- để đảo lại ý nghĩa của nguồn và đích Lu ý rằng kí hiệu <> cũng có thể
đợc sử dụng để áp dụng luật trên cả hai hớng
- Địa chỉ đích và cổng đích : trong ví dụ này, cả hai phần này đều là
“any”, nghĩa là luật đợc áp dụng cho tất cả các gói tin đến từ một đích bất kì.Phần direction trong luật này không đóng một vai trò gì cả vì luật đợc áp dụngtrên tất cả các gói tin ICMP di chuyển theo bất kì hớng nào, vì từ khóa “any” ởcả phần nguồn và đích
Rule Options
Rule option theo sau rule header và đợc đóng gói trong dấu ngoặc đơn Có thể cómột hoặc nhiều option, đợc cách nhau bởi dấu phẩy Nếu bạn sử dụng nhiềuoption, những option hình thành phép logic AND Một action trong rule headerchỉ đợc thực hiện khi tất cả các option đều đúng Tất cả các option đợc địnhnghĩa bằng các từ khóa Một vài option cũng chứa các tham số Thông thờng,một option có thể có 2 phần : từ khóa và đối số Các đối số đợc phân biệt với từkhóa bằng dấu hai chấm
Ví dụ:
msg: "Detected confidential";
Trang 39Trong option này thì msg là từ khóa và "Detected confidential" là đối số của từ
khóa
Phần tiếp theo là các từ khóa đợc sử dụng trong phần option của luật Snort
ack:
ack: < number>;
TCP header chứa một trờng Acknowledgement Number dài 32 bit Trờng này chỉ
ra rằng sequence number kế tiếp của ngời gửi đợc mong đợi Trờng này chỉ có ýnghĩa khi cờ flag trong trờng TCP đợc thiết lập
classtype
config classification: name,description,priority
- name: tên đợc sử dụng cho việc phân loại.Tên đợc sử dụng với từ
khóa classtype trong luật Snort
- Description : mô tả ngắn về kiểu phân loại.
- Priority : thứ tự u tiên mặc định cho sự phân loại, có thể đợc chỉnh
sửa bằng từ khóa priority.Priority càng thấp thì độ u tiên càng cao.Các luật có thể
đợc phân loại và xếp thứ tự u tiên vào trong một nhóm
- Để có thể hiểu hơn về từ khóa classtype, hãy xem fileclassification.config trong snort.conf Mỗi dòng trong đó sẽ có cú pháp nh sau :
Content
content: <straight text>; content: <hex data>;
Một đặc tính quan trọng của Snort là khả năng tìm thấy một mẫu dữ liệu trongmột gói tin Mẫu đó có thể tồn tại dới dạng một chuỗi ASCII hoặc là các kí tựthập lục phân Giống nh virut, những kẻ xâm nhập cũng có các dấu hiệu và từkhóa content để có thể tìm ra các dấu hiệu trong các gói tin Vì Snort phiên bản1.x không hỗ trợ các giao thức ở lớp ứng dụng nên từ khóa này, cùng với từ khóaoffset, cũng có thể đợc sử dụng để xem xét header của lớp ứng dụng
Offset:
offset: < value>;
Từ khóa offset đợc sử dụng kết hợp với từ khóa content Sử dụng từ khóa này,bạn có thể bắt đầu tìm kiếm từ một vị trí xác định so với vị trí bắt đầu của góitin Sử dụng một con số nh là đối số của từ khóa này
Depth
depth: < value>;
Từ khóa depth cũng đợc sử dụng kết hợp với từ khóa content để xác định giớihạn trên của việc so sánh mẫu Sử dụng từ khóa này, bạn có thể xác định một vịtrí so với vị trí bắt đầu Dữ liệu sau vị trí này sẽ không đợc tìm kiếm để so
Trang 40mẫu.Nếu bạn dùng cả hai từ khóa offset và depth thì bạn có thể xác định mộtkhoảng dữ liệu thực hiện việc so sánh mẫu.
fragbits
fragbits: < flag_settings>;
Sử dụng từ khóa này, bạn có thể tìm ra những bit RB (Reserved Bit), DF(Don'tFragment Bit), MF(More Fragments Bit) trong header IP có đợc bật lên haykhông