Bài giảng đồ án điện tử cơ bản
Bài giảng đồ án điện tử cơ bản
Môn: Đồ án điện tử cơ bản (001)
Trường: Đại Học Sư phạm Kỹ thuật Hưng yên
Thông tin:
Tác giả:
Preview text:
lOMoARcPSD|208 990 13 lOMoARcPSD|208 990 13 MỤC LỤC MỞ ĐẦU
Chương 1: TỔNG QUAN VỀ HỆ THỐNG IDS
1.1. Giới thiệu hệ thống IDS
1.2. Kiến trúc, chức năng và quy trình hoạt động của IDS
1.2.1. Các thành phần của IDS 1.2.2. Chức năng
1.2.3. Quy trình hoạt động của IDS 1.3. Phân loại IDS
1.3.1. Network based IDS - NIDS 1.3.2. Host based IDS - HIDS
1.4. Những loại tấn công thường gặp và IDS tương ứng
1.4.1. Tấn công từ chối dịch vụ Denial of Services
1.4.2. Quét và thăm dò (Scanning và Probe)
1.4.3. Tấn công vào mật khẩu (Password attack)
1.4.4. Chiếm đặc quyền (Privilege-grabbing)
1.4.5. Cài đặt mã nguy hiểm (Hostile code insertion)
1.4.6. Hành động phá hoại trên máy móc (Cyber vandalism)
1.4.7. Tấn công hạ tầng bảo mật (Security infrastructure attack)
Chương 2: NGHIÊN CỨU ỨNG DỤNG IDS SNORT
2.1. Giới thiệu về Snort
2.2. Vị trí của Snort trong hệ thống mạng 2.3.Kiến trúc của Snort
2.3.1.Module giải mã gói tin 2.3.2.Module tiền xử lý 2.3.3.Module phát hiện
2.3.4.Module log và cảnh báo
2.3.5.Module kết xuất thông tin 2.4.Bộ luật của Snort 2.4.1.Giới thiệu
2.4.2.Cấu trúc luật của Snort 2.4.3.Phần tiêu đề 2.4.4.Phần tùy chọn
Chương 3: Cài đặt cấu hình và triển khai hệ thống phát hiện xâm nhập IDS Snort
3.1 Cài đặt cấu hình Snort
3.2 Triển khai hệ thống phát hiện xâm nhập IDS Snort lOMoARcPSD|208 990 13 MỞ ĐẦU
Chương 1: TỔNG QUAN VỀ HỆ THỐNG IDS
1.1. Giới thiệu hệ thống IDS
Hệ thống phát hiện xâm nhập IDS là một hệ thống giám sát lưu lượng mạng
nhằm phát hiện ra hiện tượng bất thường, các hoạt động trái phép xâm nhập vào hệ
thống. IDS có thể phân biệt được các cuộc tấn công từ nội bộ hay tấn công từ bên ngoài.
IDS phát hiện dựa trên các dấu hiệu đặc biệt về nguy cơ đã biết (giống như
cách phần mềm diệt virus phát hiện và diệt virus) hay dựa trên so sánh lưu thông
mạng hiện tại với baseline (thông số chuẩn của hệ thống có thể chấp nhận được) để
tìm ra các dấu hiệu bất thường.
Một hệ thống IDS cần phải thỏa mãn những yêu cầu:
● Tính chính xác (Accuracy): IDS không được coi những hành động thông
thường trong môi trường hệ thống là những hành động bất thường hay lạm dụng
● Hiệu năng (Performance): Hiệu năng của IDS phải đủ để phát hiện xâm nhập
trái phép trong thời gian thực
● Tính trọn vẹn (Completeness): IDS không được bỏ qua một xâm nhập trái
phép nào. Đây là một điều kiện khó thỏa mãn được .
● Chịu lỗi (Fault Tolerance): bản thân IDS cũng phải có khả năng chống lại tấn công
● Khả năng mở rộng (Scalability): IDS phải có khả năng xử lý trong trạng thái
xấu nhất là không bỏ sót thông tin nào. Yên cầu này liên quan tới hệ thống
mà các sự kiện trong tương lai đến từ nhiều nguồn tài nguyên với số lượng
host nhỏ. Với sự phát triển nhanh và mạnh của mạng máy tính, hệ thống có
thể bị quá tải bởi sự tăng trưởng của số lượng sự kiện.
1.2. Kiến trúc, chức năng và quy trình hoạt động của IDS
1.2.1. Các thành phần của IDS
IDS bao gồm các thành phần chính: thành phần thu thập gói tin (information
collection), thành phần phân tích gói tin (Detection), thành phần phản hồi
(response) nếu gói tin đó được phát hiện là một cuộc tấn công.
Thành phần phân tích gói tin là quan trọng nhất và ở thành phần này bộ cảm
biến đóng vai trò quyết định. Bộ cảm biến tích hợp với thành phần là sưu tập dữ
liệu và một bộ tạo sự kiến. Cách sưu tập này được xác định bởi chính sách tạo sự lOMoARcPSD|208 990 13
kiện để định nghĩa chế độ lọc thông tin sự kiện. Vai trò của bộ cảm biến là dùng để
lọc thông tin và loại bỏ dữ liệu không tương thích đạt được từ các sự kiện liên quan
với hệ thống bảo vệ, vì vậy có thể phát hiện được các hành động nghi ngờ. Bộ
phân tích sử dụng cơ sở dữ liệu chính sách phát hiện cho mục này. Ngoài ra còn có
các thành phần: dấu hiệu tấn công, profile hành vi thông thường, các tham số cần
thiết. Thêm vào đó, cơ sở dữ liệu giữa các tham số cấu hình, gồm các chế độ truyền
thông với module đáp trả. Bộ cảm biến cũng có sơ sở dữ liệu của riêng nó. 1.2.2. Chức năng
Chức năng quan trọng nhất của IDS là:
● Giám sát: giám sát lưu lượng mạng các hoạt động bất thường và các hoạt động khả nghi
● Cảnh báo: Khi đã biết được các hoạt động bất thường của một truy cập nào
đó, IDS sẽ đưa ra cảnh báo về hệ thống cho người quản trị
● Bảo vệ: Dùng những thiết lập mặc định và những cấu hình từ nhà quản trị
mà có những hành động chống lại kẻ xâm nhập
Chức năng mở rộng của IDS:
- Phân biệt các cuộc tấn công từ trong hoặc từ bên ngoài: nó có thể
phân biệt được đâu là những truy cập hợp lệ (hoặc không hợp lệ) từ
bên trong và đâu là cuộc tấn công từ bên ngoài
- Phát hiện: dựa vào so sánh lưu lượng mạng hiện tại với baseline, IDS
có thể phát hiện ra những dấu hiệu bất thường và đưa ra các cảnh báo
và bảo vệ ban đầu cho hệ thống
1.2.3. Quy trình hoạt động của IDS
- Một host tạo ra một gói tin mạng:
- Các cảm biến trong mạng đọc các gói tin trong khoảng thời gian trước khi
nó được gửi ra khỏi mạng cục bộ (cảm biến này cần phải được đặt sao cho
nó có thể đọc tất cả các gói tin).
- Chương trình phát hiện nằm trong bộ cảm biến kiểm tra xem có gói tin nào
có dấu hiệu vi phạm hay không. Khi có dấu hiệu vi phạm thì một cảnh báo
sẽ được tạo ra và gửi đến giao diện điều khiển.
- Khi giao diện điều khiển lệnh nhận được cảnh báo nó sẽ gửi thông báo cho
một người hoặc một nhóm đã được chỉ định từ trước (thông qua email, cửa lOMoARcPSD|208 990 13
sổ popup, trang web v.v…).
- Phản hồi được khởi tạo theo quy định ứng với dấu hiệu xâm nhập này.
- Các cảnh báo được lưu lại để tham khảo trong tương lai (trên địa chỉ cục bộ
hoặc trên cơ sở dữ liệu).
- Một báo cáo tóm tắt về chi tiết của sự cố được tạo ra.
- Cảnh báo được so sánh với các dữ liệu khác để xác định xem đây có phải là
cuộc tấn công hay không. ● Ưu điểm
- Thích hợp sử dụng để thu thập số liệu, bằng chứng phục vụ công tác điều tra và ứng cứu sự cố
- Đem đến cái nhìn bao quát, toàn diện về toàn bộ hệ thống mạng
- Là công cụ thích hợp phục vụ việc kiểm tra các sự cố trong hệ thống mạng. ● Nhược điểm
- Cần được cấu hình hợp lý, nếu không sẽ gây ra tình trạng báo động nhầm
- Khả năng phân tích traffic mã hóa tương đối thấp
- Chi phí phát triển và vận hành hệ thống tương đối cao. 1.3. Phân loại IDS
Hệ thống IDS được chia làm 2 loại cơ bản:
Network-based IDS (NIDS): sử dụng dữ liệu trên toàn bộ lưu thông
mạng cùng dữ liệu kiểm tra từ một hoặc một vài máy trạm để phát hiện xâm nhập
Host-based IDS (HIDS): sử dụng dữ liệu kiểm tra từ một máy trạm đơn
để phát hiện xâm nhập Ngoài ra còn có:
Signature-Based: Đây là các IDS hoạt động dựa trên chữ ký, giám sát các
gói tin trên mạng tương tự như cách phần mềm diệt virus hoạt động. Tuy nhiên
Signature-Based có thể không phát hiện được những mối đe dọa mới, khi chữ ký
để nhận biết nó chưa được IDS cập nhật.
Anomaly-Based: IDS này được sử dụng để phát hiện mối đe dọa dựa trên
sự bất thường. Anomaly-Based sẽ giám sát traffic mạng và so sánh với baseline đã
được thiết lập từ trước. Baseline sẽ xác định đâu là mức bình thường của mạng và
cảnh báo cho quản trị viên mạng hoặc người dùng khi phát hiện traffic truy cập bất
thường hoặc khác biệt so với baseline.
Passive: Đây là IDS thụ động chỉ phát hiện và cảnh báo. Khi phát hiện lOMoARcPSD|208 990 13
traffic đáng ngờ hoặc độc hại, nó sẽ tạo và gửi cảnh báo đến các nhà quản trị hoặc
người dùng. Những hành động sau đó sẽ phụ thuộc vào người quản trị.
Reactive: Loại IDS này ngoài nhiệm vụ như IDS Passive, nó còn thực
hiện những hành động đã được thiết lập sẵn để phản ứng lại các mối đe dọa một
cách nhanh chóng, ví như: chặn nguồn truy cập, khóa IP.
1.3.1. Network based IDS - NIDS
Hệ thống IDS dựa trên mạng sẽ kiểm tra các giao tiếp trên mạng với thời
gian thực (real-time). Nó kiểm tra các giao tiếp, quét header của các gói tin, và có
thể kiểm tra nội dung của các gói đó để phát hiện ra các đoạn mã nguy hiểm hay
các dạng tấn công khác nhau. Một Network-Based IDS hoạt động tin cậy trong
việc kiểm tra, phát hiện các dạng tấn công trên mạng, ví dụ như dựa vào băng
thông (bandwidth-based) của tấn công Denied of Service (DoS). *Ưu điểm:
- Quản lý được cả một network segment (gồm nhiều host)
- Trong suốt với người sử dụng lẫn kẻ tấn công
- 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 - Độc lập với OS *Nhược điểm:
- Có thể xảy ra trường hợp báo động giả
- Không thể phân tích các dữ liệu đã được mã hóa (VD: SSL, SSH, IPSec...) lOMoARcPSD|208 990 13
- 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
động được phát hiện, 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
- Hạn chế lớn nhất là giới hạn băng thông. Những bộ dò mạng phải nhận tất cả
các lưu lượng mạng, sắp xếp lại những lưu lượng đó và phân tích chúng. Khi
tốc độ mạng tăng lên thì khả năng của đầu dò cũng phải tăng theo.
1.3.2. Host based IDS - HIDS
Bằng cách cài đặt một phần mềm trên máy chủ, IDS dựa trên máy chủ quan
sát tất cả những hoạt động về hệ thống và các file log, lưu lượng mạng thu thập. Hệ
thống dựa trên máy chủ cũng theo dói OS, những cuộc gọi hệ thống, lịch sử và
những thông điệp báo lỗi trên hệ thống máy chủ. 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, HIDS chỉ
giám sát các hoạt động trên một máy tính. HIDS thường được đặt trên các host
quan trọng và các server trong vùng DMS. Nhiệm vụ của HIDS là theo dõi các
thay đổi trên hệ thống gồm: - Các tiến trình - Các entry - Mức độ sử dụng CPU - Tình trạng RAM
- Tính toàn vẹn của hệ thống
Các thông số này khi vượt qua một ngưỡng nhất định hoặc có những thay đổi
khả nghi sẽ gây ra báo động *Ưu điểm:
- Có khả năng xác định user liên quan tới event
- HIDS có khả năng phát hiện tấn công diễn ra trên một máy, NIDS thì không
- Có thể phân tích các dữ liệu mã hóa
- Cung cấp các thông tin về host trong lúc cuộc tấn công diễn ra trên host này *Nhược điểm:
- Thông tin từ HIDS là không đáng tin cậy ngay khi sự tấn công vào host này thành công
- Khi OS bị sập do tấn công, đồng thời HIDS cũng sập
- HIDS phải được thiết lập trên từng host cần giám sát lOMoARcPSD|208 990 13
- 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.
1.4. Những loại tấn công thường gặp và IDS tương ứng
1.4.1. Tấn công từ chối dịch vụ (Denial of Services):
Denial of Service (DoS) có mục đích đóng băng hay chặn đứng tài nguyên
hệ thống đích. Cuối cùng mục tiêu không thể tiếp cận và trả lời các gói tin gửi đến.
DoS tấn công vào các mục tiêu bao gồm 3 dạng: mạng, hệ thống và ứng dụng.
- Phá hoại mạng: kiểu tấn công SYN flood. Kẻ tấn công sẽ gửi các gói tin kết
nối SYN tới hệ thống cho tới khi công suất của máy chủ quá tải và sẽ không
thể nhận được bất kỳ gói tin nào nữa.
- Phá hoại hệ thống: bao gồm các dạng như Ping of Death (gửi 1 gói dữ liệu
có kích thước lớn thông qua lệnh ping tới máy chủ), Teardrop (gửi tới máy
chủ một loại gói tin có giá trị offset chồng chéo khiến máy chủ không sắp
xếp được à crash hoặc reboot) … Các kiểu tấn công này nhằm lợi dụng lỗ
hổng trên hệ điều hành nhằm phá hoại, gây quá tải hệ thống.
- Phá hoại ứng dụng: bằng cách lợi dụng điểm yếu trên ứng dụng, cơ sở dữ liệu hay trang web…
- Giải pháp: Network IDS có thể phát hiện được các cuộc tấn công dạng gói tin
1.4.2. Quét và thăm dò (Scanning và Probe)
Bộ quét và thăm dò tự động sẽ tìm kiếm hệ thống trên mạng để xác định
điểm yếu. Việc thăm dò có thể thực hiện bằng cách ping tới hệ thống cũng như
kiểm tra các cổng TCP hoặc UDP để phát hiện ra ứng dụng có những lỗi đã được biết tới.
Giải pháp: Network IDS có thể phát hiện các hành động nguy hiểm trước khi
chúng xảy ra. Host IDS cũng có tác dụng đối với kiểu tấn công này
1.4.3. Tấn công vào mật khẩu (Password attack)
Có các phương thức để tiếp cận:
- Kiểu dễ nhận thấy nhất là ăn trộm mật khẩu, mang lại quyền quản trị cho kẻ lOMoARcPSD|208 990 13
tấn công có thể truy cập mọi thông tin trong mạng.
- Đoán hay bẻ khóa mật khẩu là phương thức tiếp cận bằng cách thử nhiều lần
mật khẩu để tìm được đáp án đúng. Với kiểu bẻ khóa, kẻ tấn công cần truy
cập tới mật khẩu đã được mã hóa hay file chứa mật khẩu đã mã hóa. Và sử
dụng chương trình đoán mật khẩu với thuật toán mã hóa để xác định mật khẩu đúng.
- Giải pháp: Một Network IDS có thể phát hiện và ngăn chặn cố gắng đoán
mật khẩu, nhưng nó không hiệu quả trong việc phát hiện truy cập trái phép
tới file bị mã hóa. Trong khi đó, Host IDS lại thể hiện hiệu quả trong việc
phát hiện đoán mật khẩu cũng như truy cập trái phép.
1.4.4. Chiếm đặc quyền (Privilege-grabbing)
Khi kẻ tấn công đã xâm nhập được hệ thống, chúng sẽ cố chiếm quyền truy
cập. Khi thành công, chúng sẽ tìm cách phá hoại hệ thống hoặc đánh cắp thông tin
quan trọng. Một số kỹ thuật thường dùng cho việc chiếm đặc quyền:
- Đoán hay đánh cắp mật khẩu root, admin - Gây tràn bộ đệm - Khai thác registry
- Sử dụng file, script hay lỗi của hệ điều hành, ứng dụng.
- Giải pháp: Cả NIDS và HIDS đều có thể xác định được việc thay đổi đặc quyền trái phép
1.4.5. Cài đặt mã nguy hiểm (Hostile code insertion)
Một số loại tấn công có thể cài đặt mã nguy hiểm vào hệ thống. Mã này có thể lấy
trộm dữ liệu, gây từ chối dịch vụ, xóa file hay tạo backdoor cho lần truy cập tiếp theo.
- Virus: khi được thực thi sẽ dẫn tới hành động tự động, có hoặc không có hại,
luôn tạo ra bản sao của file hệ thống, file ứng dụng hay dữ liệu.
- Trojan Horse: được đặt tên như một chương trình người ta muốn sử dụng
nhưng thực tế chúng kích hoạt các hành động dẫn tới hỏng hệ thống
- Giải pháp: không có loại IDS nào chống việc phá hoại từ virus hay Trojan.
Cách tốt nhất là cài đặt phần mềm diệt virus
1.4.6. Hành động phá hoại trên máy móc (Cyber vandalism)
Hành động phá hoại bao gồm: thay đổi trang web, xóa file, phá block khởi lOMoARcPSD|208 990 13
động và chương trình hệ điều hành, format ổ đĩa
Giải pháp: sử dụng HIDS trong trường hợp này là hoàn toàn phù hợp. Với
NIDS có thể sử dụng dấu hiệu tấn công được định nghĩa trước để phát hiện chính
xác việc truy cập trái phép vào hệ điều hành
1.4.7. Tấn công hạ tầng bảo mật (Security infrastructure attack)
Có nhiều loại tấn công can thiệp vào việc điều khiển cơ bản của cơ sở hạ
tầng bảo mật như tạo tường lửa trái phép, chỉnh sửa tài khoản của người dung hay
thay đổi các quyền của file. Tấn công vào cơ sở hạ tầng cho phép kẻ xâm nhập có
thêm quyền truy cập hay tạo thêm nhiều đường xâm nhập vào hệ thống
Giải pháp: HIDS có thể bắt giữ các cuộc đăng nhập mà thực hiện những hành động như trên
Chương 2: NGHIÊN CỨU ỨNG DỤNG IDS SNORT
2.1. Giới thiệu về Snort
Snort là một hệ thống IDS/IPS thuộc dạng NIDS. Snort được Martin Roesch
nghiên cứu và phát triển từ năm 1998. Từ năm 2013 cho đến nay, công ty nổi tiếng
về mạng là Cisco đã mua lại Snort và tiếp tục phát triển nghiên cứu. Snort là một
công cụ có mã nguồn mở, hoàn toàn miễn phí và có thể tải và cài đặt ở trên hầu hết
các hệ điều hành phổ biến hiện nay: Linux/Unix, Ubuntu, MacOS, Window, …
Kiến trúc thiết kế của Snort được xây dựng theo kiểu module, tức là người dùng
hoàn toàn có thể thêm cho hệ thống Snort của mình bằng việc cài đặt hoặc viết
thêm mới các module. Số lượng rule của Snort hiện tại đã lên tới hàng nghìn rule
và luôn luôn được thêm hay cập nhật hằng tháng bởi Snort sở hữu cộng đồng user đông đảo.
2.2. Vị trí của Snort trong hệ thống mạng - Giữa Router và Firewall lOMoARcPSD|208 990 13
Hình 2.1: Snort - sensor đặt giữa Router và Firewall - Trong vùng DMZ lOMoARcPSD|208 990 13
Hình 2.2: Snort - sensor đặt trong vùng DMZ - Sau Firewall lOMoARcPSD|208 990 13
Hình 2.3: Snort - sensor đặt sau Firewall
2.3. 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à: - Module giải mã - Module tiền xử lý - Module phát hiện - Module log và cảnh báo
- Module kết xuất thông tin lOMoARcPSD|208 990 13
Hình 2.4 : 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 di chuyển qua nó.Các gói tin sau khi bị bắt được đưa vào Module Giải mã gói
tin. Tiếp theo gói tin sẽ được đưa vào Module Tiền xử lí,rồi Module Phát hiện.Tại
đây tùy theo việc có phát hiệ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 đưa vào Module Log và cảnh báo để xử lý. Khi các
cảnh báo được xác định Module Kết xuất thô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.
2.3.1. Module 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. lOMoARcPSD|208 990 13
Hình 2.5 : 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 Module Tiền xử
lý.Nhiệm vụ chủ yếu của hệ thống này là phân tích gói dữ liệu thô bắt được trên
mạng và phục hồi thành gói dữ liệu hoàn chỉnh ở lớp application,làm input cho hệ thống detection engine.
Quá trình phục hồi gói dữ liệu được tiến hành từ lớp Datalink cho tới lớp
Application theo thứ tự của Protocol Stack.
2.3.2. Module tiền xử lý
Module tiền xử lý rất quan trọng đối với bất kì hệ thống IDS nào để có thể lOMoARcPSD|208 990 13
chuẩn bị gói dữ liệu đưa vào cho Module Phát hiện phân tích.Ba nhiệm vụ chính của Module loại này là:
Kết hợp lại các gói tin: Khi một lượng lớn dữ liệu được gửi đi,thông tin sẽ
không đóng gó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ành nhiề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ép nố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ử lý 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 đượ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 việc phát hiện xâm nhập chỉ dựa vào gói
tin đó sẽ không đem lại hiệu quả cao. Module tiền xử lý 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ệc phá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ựa trê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ều dạ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 đến web server như sau: “scripts/./iisadmin” “scripts/.\iisadmin” “scripts\iisadmin”
Hoặc thực hiện việc mã hóa chuỗi này dưới dạng khác.Nếu Snort chỉ thực
hiện đơn thuần việc so sánh dữ liệu với dấu hiệu nhận dạng sẽ xảy ra tình trạng bỏ
sót các hành vi xâm nhập.Do vậy, một số Module tiền xử lý của Snort phải có
nhiệm vụ giải mã và chỉnh sửa, sắp xếp lại các thông tin đầu vào này để thông tin
khi đưa đến Module phát hiện có thể phát hiện được mà không bỏ sót. Hiện nay
Snort đã hỗ trợ việc giải mã và chuẩn hóa các giao thức: telnet, http, rpc, arp.
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ày thườ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ác luật thông thường hoặc các dấu hiệu bất thường trong giao
thức.Các Module tiền xử lý dạng nà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ăng cường thêm tính năng cho Snort. lOMoARcPSD|208 990 13
Ví dụ, một plugin tiền xử lý có nhiệm vụ thống kê thông lượ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).
2.3.3. Module phát hiện
Đây là module quan trọng nhất, nó chịu trách nhiệm phát hiện các dấu hiệu
xâm nhập. Module phát hiện sử dụng các luật được định nghĩa trước để so sánh với
dữ liệu thu thập được, từ đó xác định xem có xâm nhập xảy ra hay không.
Một vấn đề quan trọng đối với module phát hiện và vấn đề thời gian xử lý gói
tin: một IDS thường nhận rất nhiều gói tin và bản thân nó cũng có rất nhiều luật xử
lý. Khi lưu 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
đúng lúc. Khả năng xử lý của module phát hiện phụ thuộc vào nhiều yếu tố: số
lượng các luật, tốc độ hệ thống, băng thông mạng. Một số thử nghiệm cho
biết,phiên bả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ấu hì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 module phát hiện có khả năng tách các phần của gói tin ra và áp dụng luật
lên từng phần của gói tin: - IP header
- Header ở tầng giao vận: TCP , UDP
- Header ở tầng ứng dụng: DNS header, HTTP header, FTP header, … - Phần tải của gói tin
Một vấn đề nữa trong Module phát hiện đó là việc xử lý thế nào khi một
gói tin bị phát hiện bởi nhiều luật. Do các luật trong Snort được đánh thứ tự ưu
tiên, nên một gói tin khi 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.
2.3.4. Module log và cảnh báo
Tùy thuộc vào module phát hiện có nhận dạng được xâm nhập hay không mà
gói tin có thể bị ghi log hay đưa ra cảnh báo. Các file log là các file dữ liệu có thể
ghi dưới nhiều định dạng khác nhau. lOMoARcPSD|208 990 13
Hình 2.6: Module log và cảnh báo
2.3.5. Module kết xuất thông tin
Module 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 công việc như là: - Ghi log file.
- Ghi syslog: syslog là một chuẩn lưu trữ các file log được sử dụng nhiều trên
các hệ thống Unix, Linux. lOMoARcPSD|208 990 13
- Ghi cảnh báo vào cơ sở dữ liệu. - Tạo file log dạng xml
- 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ạng SNMP này sẽ được gửi tới một SNMP server từ đó giúp cho việc
quản lý các cảnh bá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
2.4. Bộ luật của Snort
2.4.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ệu riê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ấn cô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ủa chú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ác phầ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.4.2. Cấu trúc luật của Snort Tìm hiểu một ví dụ:
alert tcp 192.168.0.0/22 23 -> any any (content:”confidential”; msg: “Detected confidential”)
Ta thấy cấu trúc có dạng sau: lOMoARcPSD|208 990 13 Phần header Phần option
Hình 2.7: Cấu trúc luật của Snort
- 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 tiêu chuẩn để áp
dụng luật với gói tin đó.
- Phần Option: chứa thông điệp cảnh báo và các thông tin về các phần của gói
tin dù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 với gói tin.
Dưới đây là cấu trúc chung của phần Header : Action Protocol Address Port Direction Address Port
Hình 2.8 : Header của một luật Snort
- Action: là phần quy đị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ột cả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 quy định việc áp dụng luật cho packet chỉ thuộc một giao thức cụ thể nào đó.
- 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à địa chỉ 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 “->” quy đị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 chỉ ra đâu là địa chỉ nguồn, địa chỉ đích. lOMoARcPSD|208 990 13
2.4.3. 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 Active)
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ủa luật được thỏa mãn. Một hành động được thực hiện khi tất cả các
điều kiện phù hợp. Có năm hành động đã được định nghĩa nhưng ta có thể tạo ra
các hành động riêng tùy 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.
- 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 để nhử hacker tấn công vào thì ta phải cho phép tất cả các
gói tin đi đến được máy đó.
- Log: Hành động này dùng để log gói tin. Có thể log vào file hay vào cơ sở
dữ liệu tùy thuộc vào nhu cầu của mình.
- Alert: Gửi một thông điệp cảnh báo khi dấu hiệu xâm nhập được phát hiện.
- Activate: sử dụng để tạo ra một cảnh báo và kích hoạt một luật khác kiểm tra
thêm các điều kiện của gói tin.
- Dynamic: chỉ ra đây là luật được gọi bởi các luật khác có hành động là Activate
Các hành động do người dùng định nghĩa: một hành động mới được định nghĩa theo cấu trúc sau: ruletype action_name { Action definition } ruletype là từ khóa. Protocols lOMoARcPSD|208 990 13
Là phần thứ hai của một luật có chức năng chỉ ra loại gói tin mà luật sẽ được
áp dụng. Hiện tại Snort hiểu được các protocols sau: - IP - ICMP - TCP - UDP
Nếu là IP thì Snort sẽ kiểm tra header của lớp liên kết để xác định loại gói tin.
Nếu bất kì giao thức nào khác được sử dụng thì Snort sử dụng IP header để xác
định loại protocol. Protocol chỉ đóng vai trò trong việc chỉ rõ tiêu chuẩn trong phần
header của luật. Phần option của luật có thể có các điều kiện không liên quan gì đến protocol. Address
Có hai phần địa chỉ trong một luật của Snort. Các địa chỉ này được dùng để
kiểm tra nguồn sinh ra và đích đến của gói tin. Địa chỉ có thể là địa chỉ của một IP
đơn hoặc địa chỉ của một mạng. Ta có thể dùng từ any để áp dụng luật cho tất cả các địa chỉ. Cổng (Port)
Số hiệu cổng dùng để áp dụng luật cho các gói tin đến từ hoặc đi đến một cổng
hay một phạm vi cổng cụ thể nào đó. Ví dụ ta có thể sử dụng số cổng nguồn là 23
để áp dụng luật cho tất cả các gói tin đến từ một server Telnet.Từ any cũng được
dùng để đại diện cho tất cả các cổng. Hướng (Direction)
Chỉ ra đâu là nguồn đâu là đích, có thể là -> hay <- hoặc <>. Trường hợp <> là
khi ta muốn kiểm tra cả Client và Server.
2.4.4. Phần tùy chọn
Phần Rule Option nằm ngay sau phần Rule Header và được bao bọc trong dấu
ngoặc đơn. Nếu có nhiều option thì các option sẽ được phân cách với nhau bằng
dấu chấm phẩy “ ; “ . Nếu nhiều option được sử dụng thì các option này phải đồng thời được thỏa mãn.
Mọi option được định nghĩa bằng các từ khóa.Một số option còn chứa các tham số. lOMoARcPSD|208 990 13
Chương 3: Cài đặt cấu hình và triển khai hệ thống phát hiện xâm nhập IDS Snort
3.1 Cài đặt cấu hình Snort Bước 1: cài đặt Snort Mở cmd trên ubuntu Nhập lệnh sau:
sudo apt-get install snort
Bước 2: kiểm tra version của Snort Nhập câu lệnh sau:
snort - -version lOMoARcPSD|208 990 13
3.2 Triển khai hệ thống phát hiện xâm nhập IDS Snort Bước 1: Nhập lệnh sau: ifconfig lOMoARcPSD|208 990 13 Bước 2: Nhập lệnh sau: cd /etc/snort Bước 3: lOMoARcPSD|208 990 13 Nhập lệnh sau: sudo gedit snort.conf Bước 4: Thêm ip vào Ipvar HOME_NET 192.168.234.0/24 lOMoARcPSD|208 990 13 Bước 5: Nhập lệnh sau:
sudo snort -T -i ens33 -c /etc/snort/snort.conf Bước 6: Nhập lệnh sau: cd rules lOMoARcPSD|208 990 13 Bước 7; Nhập lệnh sau: nano local.rules Bước 8: Nhập lệnh sau: lOMoARcPSD|208 990 13
alert icmp any any -> $HOME_NET any (msg:"Ping detected"; sid:10000001; rev:001;) Bước 9: Nhập lệnh sau: cd .. lOMoARcPSD|208 990 13 Bước 10: Nhập lệnh sau:
sudo snort -A console -q -i ens33 -c /etc/snort/snort.conf Bước 11:
Mở cmd của máy thật windows 10 Nhập lệnh sau: ping 192.168.234.133 lOMoARcPSD|208 990 13 Bước 12:
Quay trở lại cmd của ubuntu
Thấy màn hình hiển thị ip máy thật đang ping đến ip máy ảo, vậy ta đã thành công
Document Outline
- MỞ ĐẦU
- 1.1. Giới thiệu hệ thống IDS
- 1.2. Kiến trúc, chức năng và quy trình hoạt động của IDS
- 1.2.1. Các thành phần của IDS
- 1.2.2. Chức năng
- 1.2.3. Quy trình hoạt động của IDS
- 1.3. Phân loại IDS
- 1.3.1. Network based IDS - NIDS
- 1.3.2. Host based IDS - HIDS
- 1.4. Những loại tấn công thường gặp và IDS tương ứng
- 1.4.1. Tấn công từ chối dịch vụ (Denial of Services):
- 1.4.2. Quét và thăm dò (Scanning và Probe)
- 1.4.3. Tấn công vào mật khẩu (Password attack)
- 1.4.4. Chiếm đặc quyền (Privilege-grabbing)
- 1.4.5. Cài đặt mã nguy hiểm (Hostile code insertion)
- 1.4.6. Hành động phá hoại trên máy móc (Cyber vandalism)
- 1.4.7. Tấn công hạ tầng bảo mật (Security infrastructure attack)
- Chương 2: NGHIÊN CỨU ỨNG DỤNG IDS SNORT
- 2.2. Vị trí của Snort trong hệ thống mạng
- 2.3. Kiến trúc của Snort
- 2.4. Bộ luật của Snort
- 2.4.1. Giới thiệu
- 2.4.2. Cấu trúc luật của Snort
- 2.4.3. Phần tiêu đề
- 2.4.4. Phần tùy chọn
- Chương 3: Cài đặt cấu hình và triển khai hệ thống phát hiện xâm nhập IDS Snort
- sudo apt-get install snort
- snort - -version
- ifconfig
- cd /etc/snort
- sudo gedit snort.conf
- 192.168.234.0/24
- sudo snort -T -i ens33 -c /etc/snort/snort.conf
- cd rules
- nano local.rules
- alert icmp any any -> $HOME_NET any (msg:"Ping detected"; sid:10000001; rev:001;)
- cd ..
- sudo snort -A console -q -i ens33 -c /etc/snort/snort.conf
- ping 192.168.234.133