Problem Definition
According to WHO globally there are 1.5 billion deaf people and this number
could increase to 2.5 billion by the end of 2050.
The communication between two peers for exchanging information can be
done via linguistic feature or with the help of gestures.
However, where linguis...
Problem Definition
According to WHO globally there are 1.5 billion deaf people and this number
could increase to 2.5 billion by the end of 2050.
The communication between two peers for exchanging information can be
done via linguistic feature or with the help of gestures.
However, where linguistic feature cannot be used, the realization of gesture
into meaningful information leads to development of procedure for
communication between two peers.
Real-time detection with top-level classification and accurate accuracy of
model remains challenging.
This project builds a system capable of recognizing Hand Gestures (ASL)
representing alphabets, using CNNProblem Definition
According to WHO globally there are 1.5 billion deaf people and this number
could increase to 2.5 billion by the end of 2050.
The communication between two peers for exchanging information can be
done via linguistic feature or with the help of gestures.
However, where linguistic feature cannot be used, the realization of gesture
into meaningful information leads to development of procedure for
communication between two peers.
Real-time detection with top-level classification and accurate accuracy of
model remains challenging.
This project builds a system capable of recognizing Hand Gestures (ASL)
representing alphabets, using CNNProblem Definition
According to WHO globally there are 1.5 billion deaf people and this number
could increase to 2.5 billion by the end of 2050.
The communication between two peers for exchanging information can be
done via linguistic feature or with the help of gestures.
However, where linguistic feature cannot be used, the realization of gesture
into meaningful information leads to development of procedure for
communication between two peers.
Real-time detection with top-level classification and accurate accuracy of
model remains challenging.
This project builds a system capable of recognizing Hand Gestures (ASL)
representing alphabets, using CNNProblem Definition
According to WHO globally there are 1.5 billion deaf people and this number
could increase to 2.5 billion by the end of 2050.
The communication between two peers for exchanging information can be
done via linguistic feature or with the help of gestures.
However, where linguistic feature cannot be used, the realization of gesture
into meaningful information leads to development of procedure for
communication between two peers.
Real-time detection with top-level classification and accurate accuracy of
model remains challenging.
This project builds a system capable of recognizing Hand Gestures (ASL)
representing alphabets, using CNNProblem Definition
According to WHO globally there are 1.5 billion deaf people and this number
could increase to 2.5 billion by the end of 2050.
The communication between two peers for exchanging information can be
done via linguistic feature or with the help of gestures.
However, where linguistic feature cannot be used, the
Size: 2.35 MB
Language: none
Added: Mar 09, 2025
Slides: 58 pages
Slide Content
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN
TÌM HIỂU VÀ TRIỂN KHAI HỆ
THỐNG IDS SNORT VÀ FIREWALL
Sinh viên thực hiện:
Lớp:
Giảng viên hướng dẫn:
Đà Nẵng, ngày 1 tháng 1 năm 2025
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
BÀI TẬP LỚN BẢO MẬT VÀ AN TOÀN THÔNG TIN
TÌM HIỂU VÀ TRIỂN KHAI HỆ
THỐNG IDS SNORT VÀ FIREWALL
Sinh viên: Hoàng Thị Hồng Nhung -21IT366
Quảng Hoàng Sơn
Trần Chánh Tín
Trần Tấn Tài
Giảng viên hướng dẫn: ThS. Trần Thanh Liêm
Đà Nẵng, ngày 03 tháng 03 năm 2025
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
LỜI CẢM ƠN
Được sự phân công của Khoa Kỹ Thuật Máy Tính Và Điện Tử trường Đại
Học Công Nghệ Thông Tin và Truyền Thông Việt Hàn và sự đồng ý của giảng viên
hướng dẫn Th.S Trần Thanh Liêm nhóm chúng em đã thực hiện đề tài “Tìm hiểu và
triển khai hệ thống IDS-Snort và firewall”.
Để hoàn thành bài tập lớn này, em xin chân thành cảm ơn thầy đã tận tình
hướng dẫn, giảng dạy, chỉ bảo em trong suốt quá trình học tập, nghiên cứu và rèn
luyện ở mái trường Đại học Công Nghệ Thông Tin và Truyền Thông Việt Hàn. Đặc
biệt em xin bày tỏ lòng kính trọng và biết ơn sâu sắc tới giảng viên hướng dẫn Trần
Thanh Liêm đã tận tình chu đáo hướng dẫn, trực tiếp chỉ bảo để em có thể hoàn
thành bài tập lớn môn bảo mật và an toàn thông tin.
MỤC LỤC
LỜI CẢM ƠN
DANH MỤC CÁC BẢNG
DANH MỤC CÁC HÌNH VẼ
DANH MỤC CÁC TỪ VIẾT TẮT
LỜI NÓI ĐẦU
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1Đặt vấn đề 2
1.2Mục tiêu 2
1.3Phạm vi đề tài 2
1.4Phương pháp tiếp cận 2
1.5Nội dung nghiên cứu 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1Hệ thống phát hiện xâm nhập IDS 3
2.1.1 Giới thiệu về IDS 3
2.1.2 Phân loại IDS và phân tích ưu nhược điểm 7
2.1.3 Cơ chế hoạt động của IDS 10
2.1.4 Cách phát hiện kiểu tấn công thông dụng của IDS 12
2.2Giới thiệu về Snort 15
2.2.1 Giới thiệu về Snort 15
2.2.2 Kiến trúc của Snort 16
2.2.3 Thành phần và chức năng của Snort 16
2.2.4 Bộ luật của Snort 20
2.2.5 Cơ chế hoạt động của Snort 27
3.1Mô hình triển khai 28
3.2Mô tả yêu cầu 28
3.3Cài đặt Snort 29
3.4Cấu hình Iptables và chặn tấn công DoS 38
3.5Demo kết quả 38
CHƯƠNG 4 KẾT LUẬN
4.1Kết quả 44
4.1.1 Những phần nắm được 44
4.1.2 Những gì chưa đạt được 44
4.2Hướng phát triển 45
TÀI LIỆU THAM KHẢO 46
DANH MỤC CÁC BẢNG
Bảng 2.1 So sánh hai mô hình phát hiện 20
DANH MỤC CÁC HÌNH VẼ
Hình 2.1. Thành phần của IDS 11
Hình 2.2. Hoạt động của IDS 12
Hình 2.3 Sơ đồ hệ thống NIDS 15
Hình 2.4 Sơ đồ hệ thống HIDS 17
Hình 2.5 Kiến trúc hệ thống Snort 25
Hình 2.6 Bộ tiền xử lý 26
Hình 2.7 Bộ phát hiện 27
Hình 2.8 Bộ kết xuất thông tin 29
Hình 2.9 Cấu trúc luật của Snort 30
Hình 2.10 Header của luật Snort 31
Hình 3.1 Mô hình triển khai hệ thống IDS-IPS với Snort và Iptables 39
Hình 3.2 Hiển thị trang base 48
Hình 3.3 Tạo base 49
Hình 3.4 Thông báo tạo thành công 49
Hình 3.5 Hệ thống yêu cầu password khi vào trang base 50
Hình 3.6 Chú thích các phần trong rules Snort 51
Hình 3.7 Địa chỉ IP máy Client 53
Hình 3.8 Máy client ping đến địa chỉ IP của Server Snort 54
Hình 3.9 Kết quả của hệ thống báo có máy đang ping 54
Hình 3.10 Giao diện REMOTE DESKTOP 55
Hình 3.11 Kết quả của hệ thống báo có máy đang REMOTE DESKTOP 56
Hình 3.12 Giao diện của phần mềm tấn công DoS 56
Hình 3.13 Giao diện trước khi tấn công vẫn truy cập tới server bình thường57
Hình 3.14 Giao diện tấn công khi tắt iptables 57
Hình 3.15 Giao diện tấn công khi bật firewall iptables 58
DANH MỤC CÁC TỪ VIẾT TẮT
DoS Disk Operating System
IDS Intrusion detection system
IPS Intrusion Prevention system
NIDS Network-based intrusion detection
system
HIDS Host-based intrusion detection system
TTL Time To Live
ToS Type of Service
LỜI MỞ ĐẦU
Cùng với sự phát triển của công nghệ thông tin, công nghệ mạng máy tính và
sự phát triển của mạng Internet ngày càng phát triển đa dạng và phong phú. Các
dịch vụ mạng đã thâm nhập vào hầu hết các lĩnh vực trong đời sống xã hội hiện nay.
Các thông tin trên Internet cũng rất đa dạng về nội dung và hình thức, trong đó có
rất nhiều thông tin cần được bảo mật chặt chẽ.
Sự ra đời của công nghệ An ninh mạng giúp cho việc bảo vệ các thông tin
được đưa lên mạng Internet trước việc đánh cắp và dùng sai mục đích gây nhiều hậu
quả nghiêm trọng. Đi cùng với sự phát triển của Internet thì các thủ đoạn tấn công
mạng cũng ngày một đa dạng và nguy hiểm. Do đó đối với mỗi hệ thống mạng cần
được thiết lập để luôn hoạt động một cách trơn tru, hiệu quả, đảm bảo tính tin cậy,
chính xác cũng như tính sẵn dùng là hết sức quan trọng và cần thiết. Dựa trên những
thực tế đó, em đã tìm hiểu về đề tài “Tìm hiểu và triển khai hệ thống IDS-Snort và
firewall”.
Qua đây chúng em cũng xin gửi lời cảm ơn chân thành nhất tới các thầy cô
giáo trong khoa Công nghệ thông tin, trường Đại học Công Nghệ Thông Tin và
Truyền Thông Việt Hàn đã tận tình dạy bảo, giúp đỡ em trong thời gian qua. Đặc
biệt em xin gửi lời cảm ơn sâu sắc nhất tới thầy Th.S Trần Thanh Liêm đã chỉ bảo
và giúp đỡ em để có thể hoàn thành bài tập lớn này.
Tuy đã cố gắng hết sức tìm hiểu, phân tích nhưng do kiến thức chuyên môn
cũng như thời gian nghiên cứu còn hạn chế nên không thể tránh khỏi những sai sót.
Rất mong nhận được sự góp ý của thầy cô cũng như các bạn.
Em xin chân thành cảm ơn!
1
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1Đặt vấn đề
An ninh thông tin nói chung và an ninh mạng nói riêng đang là vấn đề được
quan tâm không chỉ Việt nam mà trên toàn thế giới. Cùng với sự phát triển nhanh
chóng của mạng Internet, việc đảm bảo an ninh cho các hệ thống càng trở nên cấp
thiết hơn bao giờ.
Trong lĩnh vực an ninh mạng, phát hiện và phòng chống tấn công xâm nhập
cho các mạng máy tính là một vấn đề cần thiết. Ngoài việc tăng cường chính sách
bảo mật trong hệ thống, các tổ chức cần phải xác định rằng việc tăng các liên kết
cũng làm tăng sự nguy hiểm với các dữ liệu quan trọng như sao chép dữ liệu, nghe
trộm việc truyền nhằm lấy dữ liệu quan trọng.
Có rất nhiều giải pháp được đưa ra và để hạn chế những vấn đề nói trên
thì:”Triển khai hệ thống phát hiện xâm nhập trái phép bằng snort” là một giải pháp
hữu ích cho hệ thống.
1.2Mục tiêu
-Tìm hiểu thông tin về bảo mật.
-Tìm hiểu, tổng hợp và phân tích hệ thống phát hiện xâm nhập IDS.
-Tìm hiểu và nghiên cứu các vấn đề liên quan đến snort.
-Tìm hiểu phương pháp và triển khai cài đặt snort trên linux.
-Đưa ra một số nhận định và phát triển đề tài.
1.3Phạm vi đề tài
-Hệ thống phát hiện xâm nhập bằng snort được dùng thu thập thông tin cho
quá trình ngăn chặn các cuộc tấn công nhằm nâng cao tính bảo mật của hệ thống.
-Sử dụng chương trình Snort và tổng hợp các kiến thức về IDS và cơ sở dữ
liệu SQL hệ Đại học, ngành Công nghệ thông tin để xây dựng hệ thống
1.4Phương pháp tiếp cận
Hệ thống được triển khai trên hệ điều hành linux CentOS 6.5 được cài trên máy ảo
VMWare 11.0
1.5Nội dung nghiên cứu
-Nghiên cứu về lý thuyết phát hiện xâm nhập thông qua các tài liệu các bài
báo cáo.
-Tìm hiểu, tổng hợp và phân tích hệ thống phát hiện xâm nhập IDS.
-Nghiên cứu về lý thuyết Snort thông qua các tài liệu từ trang chủ của Snort.
-Xây dựng hệ thống IDS- Snort trên linux.
-Thu thập tài liệu liên quan đến các vấn đề về đề tài
2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu IDS
2.1.1 Định ngĩa IDS
Hệ thống phát hiện xâm nhập (Intrusion Detection System – IDS) là một thiết
bị phần cứng hoặc ứng dụng phần mềm theo dõi, giám sát và thu thập thông tin từ
các hoạt động ra vào của mạng. Sau đó hệ thống sẽ phân tích để tìm dấu hiệu của sự
xâm nhập hoặc tấn công hệ thống trái phép và cảnh báo đến người quản trị hệ
thống.
Nói cách khác, IDS là hệ thống phát hiện các dấu hiệu có nguy cơ làm tổn hại
đến tính sẵn dung, tính toàn vẹn, tính bảo mật của một hệ thống mạng hoặc máy
tính, làm cơ sở để đảm bảo cho an ninh hệ thống. Chúng có thể xác định những hoạt
động xâm nhập bằng việc kiểm tra sự đi lại của mạng, những host log, system call,
và những khu vực khác khi phát hiện ra những dấu hiệu xâm nhập.
IDS có thể phân biệt giữa những tấn công từ bên trong (những người dùng
trong mạng LAN) hay tấn công từ bên ngoài (từ các Hacker). 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ác phân mềm 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ố đặc chuẩn của
hệ thống) để tìm ra các dấu hiệu khác thường.
Một hệ thống phát hiện xâm nhập trái phép cần phải thỏa mãn những yêu cầu sau:
-Tính chính xác(Accuracy): IDS không được coi những hành động thông
thường trong hệ thống là những hành động bất thường hay lạm dụng (hành động
thông thường bị coi là bất thường được gọi là false positive).
-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 (thời gian thực nghĩa là hành động xâm nhập trái
phép phải được phát hiện trước khi xảy ra tổn thương nghiêm trọng tới hệ thống).
-Tính trọn vẹn (Completeness): IDS không được bỏ qua một xâm nhập trái
phép (xâm nhập không bị phát hiện gọi là false negative). Đây là một điều kiện khó
có thể thỏa mãn được vì gần như không thể có tất cả thông tin về các cuộc tấn công
từ quá khứ, hiện tại và tương lai.
-Chịu lỗi (Fault Tolerance): Bản thân IDS phải có khả năng chống lại các
cuộc 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. Yêu cầu này có liên quan đến hệ thống mà các
sự kiện tương quan đến từ nhiều nguồn tài nguyên với số lượng host nhỏ. Với sự
3
phát triển mạnh mẽ và nhanh chóng của mạng máy tính, hệ thống có thể bị quá tải
bởi sự tăng trưởng số lượng sự kiện.
2.1.2 Lợi ích
Lợi thế của hệ thống này là có thể phát hiện được những cuộc tấn công chưa
biết trước. Tuy nhiên, hệ thống này lại sinh ra nhiều cảnh báo sai do định nghĩa quá
chung về cuộc tấn công. Thống kê cho thấy trong hệ thống này hầu hết các cảnh báo
là cảnh báo sai, trong đó có rất nhiều cảnh báo từ những hành động bình thường, chỉ
có vài hành động là có ý đồ xấu, vấn đề là ở chỗ hầu hết các hệ thống đều có ít khả
năng giới hạn các cảnh báo nhầm.
2.1.3 Phân biệt những hệ thống không phải là IDS
Các thiết bị bảo mật dưới đây không được coi là hệ thống IDS:
-Hệ thống đăng nhập mạng được sử dụng để phát hiện lỗ hổng đối với vấn đề
tấn công từ chối dịch vụ (DoS) trên một mạng nào đó. Ở đó sẽ có hệ thống kiểm tra
lưu lượng mạng.
-Các công cụ đánh giá lỗ hổng kiểm tra lỗi và lỗ hổng trong hệ điều hành,
dịch vụ mạng (các bộ quét bảo mật).
-Các sản phẩm chống virus, Trojan hose, worm,… Mặc dù những tính năng
mặc định có thể giống IDS và thường cung cấp một công cụ phát hiện lỗ hổng bảo
mật hiệu quả.
-Tường lửa – Firewall
-Các hệ thống bảo mật, mật mã như: SSI, Kerberos, VPN,…
2.1.4 Kiến trúc và nguyên lý hoạt động của IDS
-Thành phần của IDS
4
Hình 2.1. Thành phần của IDS
Kiến trúc của hệ thống IDS bao gồm các thành phần chính:
-Thành phần thu gói tin ( Information collection)
-Thành phần phân tích gói tin (Dectection)
-Thành phần phản hổi (Respontion)
Trong ba thành phần này thì 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 nên chúng ta sẽ đi vào phân
tích bộ cảm biến để hiểu rõ hơn kiến trúc của hệ thống phát hiện xâm nhập là như
thế nào.
Bộ cảm biến được 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ự kiện. Bộ tạo sự kiện ( hệ
điều hành, mạng ứng dụng ) cung cấp một số chính sách thích hợp cho các sự kiện,
có thể là một bản ghi các sự kiện của hệ thống hoặc các gói mạng.
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 quan trọng 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ấ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ó cơ sở dữ liệu riêng của nó, gồm dữ kiệu
lưu về các xâm phạm phức tạp tiềm ẩn(tạo ra từ nhiều hành động khác nhau).
-Nguyên lý hoạt động của IDS
5
Hình 2.2. Hoạt động của IDS
Quá trình phát hiện có thể được mô tả bởi các yếu tố cơ bản nền tảng sau :
-Thu thập thông tin (information source): Kiểm tra tất cả các gói tin trên
mạng (Intrustion Montorring).
-Sự phân tích (Anaylysis): Phân tích tất cả các gói tin đã thu thập để cho biết
hành động nào là tấn công (Intruction detection ).
-Xuất thông tin cảnh báo (Respone): Hành động cảnh báo cho sự tấn công
được phân tích ở trên nhờ bộ phận thông báo (Notification).
Khi một hành động xâm nhập được phát hiện, IDS đưa ra các cảnh báo đến
các quản trị viên hệ thống về sự việc này. Bước tiếp theo thực hiện bởi các quản trị
viên hoặc có thể là bản thân IDS bằng cách lợi dụng các tham số đo bổ sung (các
chức năng khóa để giới hạn session, backup hệ thống, định tuyến các kết nối đến
bẫy hệ thống, cơ sở hạ tầng hợp lệ, …) - theo các chính sách bảo mật của các tổ
chức. Một IDS là một thành phần nằm trong chính sách bảo mật.
Giữa các nhiệm vụ IDS khác nhau, việc nhận ra kẻ xâm nhập là một trong
những nhiệm vụ cơ bản . Nó cũng hữu dụng trong việc nhiên cứu mang tính pháp lý
các tình tiết và việc cài đặt các bản vá thích hợp để cho phép phát hiện các tấn công
trong tương lai nhằm vào các cá nhân cụ thể hoặc tài nguyên hệ thống.
Phát hiện xâm nhập đôi khi có thể đưa ra các cảnh báo sai, ví dụ những vấn đề
xảy ra do trục trặc hệ thống hoặc gửi nhầm các mô tả tấn công hoặc các chữ ký
thông qua mail.
-Chức năng của IDS
6
Những đe dọa đối với an ninh mạng ngày càng trở lên cần thiết đã đặt ra câu
hỏi cho các nhà an ninh mạng chuyên nghiệp có nên sử dụng hệ thống phát hiện
xâm nhập trừ khi những đặc tính của hệ thống phát hiện xâm nhập hữu ích cho họ,
bổ sung những điểm yếu của hệ thống khác… IDS có được chấp nhận là một thành
phần thêm vào cho hệ thống an toàn không vẫn là câu hỏi của nhiều nhà quản trị hệ
thống. Có nhiều tài liệu về những chức năng mà IDS đã làm được và đây là vài lý
do đưa ra tại sao chọn IDS:
-Bảo vệ tính toàn vẹn của dữ liệu, bảo đảm sự nhất quán của dữ liệu trong hệ
thống. Các biện pháp đưa ra ngăn chặn được việc thay đổi bất hơp pháp hoặc phá
hoại dữ liệu.
-Bảo vệ tính bí mật, giữ cho thông tin không bị lộ ra ngoài.
-Bảo vệ tính khả dụng, tức là hệ thống luôn sẵn sàng thực hiện yêu cầu truy
nhập thông tin của người dùng hợp pháp.
-Bảo vệ tính riêng tư, tức là đảm bảo cho người sử dụng khai thác tài nguyên
của hệ thống theo đúng chức năng, nhiệm vụ đã được phân cấp.
-Cung cấp thông tin về sự xâm nhập, đưa ra những chính sách đối phó, khôi
phục , sửa chữa…
Chức năng quan trọng nhất của IDS là : giám sát - cảnh báo - bảo vệ.
-Giám sát: lưu lượng mạng và các hành động khả nghi.
-Cảnh báo: báo cáo về tình trạng mang cho hệ thống và nhà quản trị.
-Bảo vệ: dùng những thiết lập mặc định và các cấu hình từ nhà quản trị mà có
những hành động thiết thực để chống lại các cuộc xâm nhập, phá hoại trái phép.
Chức năng mở rộng:
-Phân biệt: tấn công bên trong và bên ngoài.
-Phát hiện: những dấu hiệu bất thường dựa trên những gì đã biết hoặc nhờ vào
sự so sánh thông lượng mạng hiện tại với baseline.
Khi IDS chạy một thời gian sẽ đưa ra được những điểm yếu đó là hiển nhiên.
Việc đưa ra những điểm yếu đó nhằm đánh giá chất lượng việc thiết kế mạng cũng
như cách bố trí bảo vệ phòng thủ của các nhà quản trị mạng.
2.2 Phân loại IDS và phân tích ưu nhược điểm
IDS được chia thành hai loại đó là:
-Network-based Intrusion Detection System (NIDS): Hệ thống phát hiện xâm
nhập hướng mạng.
7
-Host-based Intrusion Detection System (HIDS): Hệ thống phát hiện xâm
nhập máy chủ.
2.2.1 Hệ thống phát hiện xâm nhập hướng mạng (NIDS)
NIDS (Network-based Intrusion Detection System) 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, NIDS phát hiện xâm nhập khi thu thập
dữ liệu của các gói tin lưu thông trên các phương tiện truyền dẫn như cables,
wireless bằng cách sử dụng các card giao tiếp. Khi một gói dữ liệu phù hợp với qui
tắc của hệ thống, một cảnh báo được tạo ra để thông báo đến nhà quản trị và các file
log được lưu vào cơ sở dữ liệu.
NIDS thường có hai thành phần logic:
-Bộ cảm biến – Sensor: được đặt tại một đoạn mạng, nó sẽ kiểm soát các cuộc
lưu thông đáng nghi ngờ trên đoạn mạng đó.
-Trạm quản lý: sau khi nhận được các tín hiệu cảnh báo từ bộ cảm biến nó sẽ
thông báo cho nhà quản trị.
Hình 2.3 Sơ đồ hệ thống NIDS
Ưu điểm của NIDS
-Chi phí thấp: NIDS có thể được triển khai cho mỗi phân đoạn mạng. Một hệ
thống IDS theo dõi lưu lượng mạng trên tất cả các hệ thống trong một phân đoạn
mạng, giúp chúng ta không cần phải nạp các phần mềm tại các host trong toàn
mạng. Điều này làm giảm chi phí quản lý.
-Dễ dàng triển khai: NIDS không ảnh hưởng đến hệ thống cơ sở hạ tầng hiện
tại. Các hệ thống NIDS hoạt động độc lập, bộ cảm biến của NIDS sẽ lắng nghe tất
8
cả các cuộc tấn công vào một phân đoạn mạng không phụ thuộc vào kiểu của hệ
điều hành máy chủ đang chạy.
-Phát hiện được các tấn công mà HIDS bỏ qua: NIDS kiểm tra tất cả các
header của gói tin cho nên nó không bỏ qua các nguy cơ từ đây.
-Khó xóa bỏ dấu vết: Các thông tin trong file log có thể bị hacker thay đổi
hoặc loại bỏ để che giấu dấu vết sau khi chúng xâm nhập trái phép. NIDS sử dụng
lưu thông hiện hành trên mạng để phát hiện xâm nhập nên hacker không thể sửa đổi
được file log.
-Phát hiện và đối phó kịp thời: NIDS có khả năng phát hiện và xử lý rất nhanh
chóng nên có thể phát hiện các dấu hiệu xâm nhập trái phép khi xảy ra. Dựa trên các
cảm biến được cấu hình sẵn, các cuộc tấn công sẽ bị ngừng lại trước khi có thể truy
cập được đến máy chủ.
-Phát hiện các cuộc tấn công thất bại: Các bộ cảm biến sẽ không thấy được
những tấn công thất bại bên ngoài tường lửa, tuy nhiên NIDS được triển khai bên
ngoài các bức tường lửa có thể phát hiện thấy chúng, điều này rất hữu ích để phân
tích những cuộc tấn công đó mặc dù chúng thất bại.
Nhược điểm của NIDS
-Gặp khó khăn khi phân tích các lưu lượng đã được mã hóa như SSH, IPSec,
SSL,…
-NIDS đòi hỏi phải luôn được cập nhật các dấu hiệu tấn công mới nhất để
hoạt động thực sự hiệu quả.
-Hạn chế về hiệu năng: NIDS gặp khó khăn khi phải xử lý tất cả các gói tin
trên mạng rộng hoặc có mật độ lưu thông cao, dẫn đến không thể phát hiện được
các cuộc tấn công thực hiện vào lúc “cao điểm”.
-Găp khó khăn khi phát hiện các cuộc tấn công mạng từ các gói tin phân
mảnh. Các gói tin định dạng này có thể làm cho NIDS hoạt động sai.
2.2.2 Hệ thống phát hiện xâm nhập máy chủ (HIDS)
HIDS (Host-based Intrusion Detection System) là hệ thống phát hiện xâm
nhập được cài đặt trên các máy tính (host). HIDS tìm kiếm dấu hiệu xâm nhập vào
host cục bộ, chúng tìm kiếm các hoạt động bất thường, lưu lượng đã gửi đến host
được kiểm tra và phân tích trong file log lưu lại rồi chuyển qua host nếu cảm thấy
không có dấu hiệu đáng nghi ngờ.
HIDS thường dựa trên các tập luật (rule-based) để phân tích các hoạt động.
Nhiệm vụ chính của HIDS là giám sát sự thay đổi trên hệ thống.
9
Hình 2.4Sơ đồ hệ thống HID
Ưu điểm
-Xác định được kết quả của cuộc tấn công: HIDS sử dụng hệ thống ghi lại file
log chứa các sự kiện đã xảy ra, nó có thể xác định được một cuộc tấn công đã xảy ra
hay không với độ chính xác cao và ít sai hơn đối với NIDS. NIDS dựa trên bộ cảm
biến, mặc dù chúng xử lý nhanh hơn HIDS nhưng có rất nhiều những cảnh báo giả
được tạo ra.
-Giám sát được các hoạt động cụ thể của hệ thống: HIDS có thể giám sát các
hoạt động mà NIDS không thể như: truy nhập file, thay đổi quyền truy cập file, các
hành động thực thi,… HIDS cũng có thể giám sát được các hành động chỉ được
thực hiện bởi người quản trị. Vì vậy HIDS rất thuận lợi để phân tích các cuộc tấn
công có thể xảy ra do nó thường cung cấp rất nhiều thông tin chi tiết và chính xác
hơn NIDS.
-Phát hiện các cuộc tấn công mà NIDS bỏ qua: HIDS có thể phát hiện các
cuộc tấn công mà NIDS bỏ qua. Ví dụ, nếu một người truy cập trái phép điều khiển
trực tiếp làm thay đổi file hệ thống, loại tấn công này không bị NIDS phát hiện.
-Không yêu cầu thêm phần cứng: HIDS được cài đặt trực tiếp lên hạ tầng
mạng có sẵn nên sẽ không yêu cầu phải cài đặt thêm các phần cứng khác.
-Chi phí thấp: HIDS thường có chi phí rẻ hơn so với NIDS.
Nhược điểm
10
-Khó quản trị: Các hệ thống HIDS yêu cầu phải được cài đặt lên trên tất cả
các thiết bị muốn bảo vệ. Đây là một khối lượng công việc lớn để cấu hình, quản lý,
cập nhật.
-Thông tin từ HIDS sẽ không còn đáng tin cậy sau khi cuộc tấn công thành
công.
-Chiếm tài nguyên hệ thống: Do cài đặt trên các máy cần bảo vệ nên HIDS
phải sử dụng các tài nguyên của hệ thống để hoạt động.
2.2.3 Cách phát hiện kiểu tấn công thông dụng của IDS
a)Tấn công từ chối dịch vụ (Denial of Service attack - DoS)
Denial of Service (DoS) attack có mục đích chung là đóng băng hay chặn đứng tài
nguyên của hệ thống đích. Cuối cùng, mục tiêu trở nên không thể truy cập và không
thể trả lời. DoS tấn công vào các mục tiêu bao gồm 3 dạng là mạng, hệ thống và
ứng dụng.
- Phá hoại Network: kiểu tấn công SYN flood là một dạng tấn công từ chối
dịch vụ, kẻ tấn công sẽ gửi các gói tin kết nối SYN đến hệ thống...
- Phá hoại hệ thống: bao gồm thiết bị như Ping of Death, Teardrop..các kiểu
tấn công 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. Sự kiện này có thể xảy ra bằng cách gửi gói tin có định dạng khác thường tới
hệ thống và thiết bị, chúng có thể được tạo ra bằng các công cụ tấn công được lập
trình trước.
- 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, email, trang web,...Ví dụ như một email rất dài hay một số lượng email lớn có
thế gây quá tải cho server của các ứng dụng đó.
Giải pháp của IDS:Một firewall dạng proxy rất hiệu quả để ngăn chặn các gói tin
không mong muốn từ bên ngoài, tuy nhiên Network IDS có thể phát hiện được các
tấn công dạng gói tin.
b)Quét và thăm dò (Scanning và Probe)
Bộ quét và thăm dò tự động tìm kiếm hệ thống trên mạng để xác định điểm yếu.
Tuy các công cụ này được thiết kế cho mục đích phân tích đề phòng ngừa, những
hacker có thể được sử dụng để gây hại cho hệ thống. Các công cụ quét và thăm dò
như: SATAN, ISS Internet Scanner.... Việc thăm dò có thể được thực hiện bằng
cách ping đến hệ thống cũng như kiềm tra các cổng TCP và UDP để phát hiện ra
11
ứng dụng có những lỗi đã được biết đến. Vỉ vậy các công cụ này có thể là công cụ
đắc lực cho mục đích xâm nhập.
Giải pháp của IDS: Network-based IDS cỏ thể phát hiện các hành động nguy hiểm
trước khi chúng xảy ra. Host-based TDS cũng có thể có tác dụng đối với kiểu tấn
công này, nhưng không hiệu quả bằng giải pháp dựa trên mạng.
c)Tấn công vào mật mã (Password attack)
Có 3 phương thức tiếp cận đối với kiểu tấn công Password attack:
- Kiểu dễ nhận thấy nhất là ăn trộm mật mã, mang lại quyền hành cho kẻ tấn
công có thể truy nhập tới mọi thông tin tại mọi thành phần trong mạng.
Ví dụ: như nghe trộm mật mã gửi trên mạng, gửi thư, chương trình có kèm
keylogger, trojan cho người quản trị.
- Đoán hay bẻ khóa mật mã là phương thức tiếp cận được gọi là brute force
bằng cách thử nhiều mật mã để mong tìm được mật mã đúng. Với bẻ khóa, kè tấn
công cẩn truy nhập tới mật mã đã được mã hóa, hay file chứa mật mã đã mã hóa, kẻ
tấn công sử dụng chương trình đoán nhiều mã với thuật toán mã hóa có thể sử dụng
được để xác định mã đúng. Với tốc độ máy tính hiện nay, việc bẻ khóa là rất hiệu
quả trong trường hợp mật mã là từ có nghĩa (trong từ điển), bất cứ mã nào nhỏ hơn
6 ký tự, tên thông dụng và các phép hoán vị.
Ví dụ như: đoán từ tên, các thông tin cá nhân, từ các từ thông dụng (có thể dùng khi
biết username mà không biết mật mã), sử dụng tài khoản khách rồi chiếm quyền
quản trị; các phương thức tấn công như brute force, đoán mật mã đã mã hóa từ các
từ trong từ điển…
Giải pháp của IDS: Một Network-based IDS có thể phát hiện và ngăn chặn cố gắng
đoán mã (có thể ghi nhận sau một số lần thử không thành công),nhưng nó không có
hiệu quả trong việc phát hiện truy nhập trái phép tới file đã bị mã hóa. Trong khi đó
Host-based IDS lại rất có hiệu quả trong việc phát hiện việc đoán mật mã cũng như
phát hiện truy nhập trái phép tới file chứa mật mã.
d)Chiếm đặc quyền (Prỉvilege-grabbing)
Khi kẻ tấn công đã xâm nhập được vào hệ thống, chúng sẽ cố chiếm quyền truy
nhập. Khi thành công, chúng đã chiếm được hệ thống. Trong hệ điều hành UNIX,
điều này nghĩa là trở thành “root”, ỡ Windows NT là “Ađministrator”, trên NetWare
12
là “Supervisor”. Dưới đây là một số kỹ thuật thường dùng cho việc chiếm đặc
quyền.
- Đoán hay bè khóa của root hay administrator " Gây Tràn bộ đệm.
- Khai thác Windows NT registry .
- Truy nhập và khai thác console đặc quyền .
- Thăm dò file, script hay các lỗi của hệ điều hành và ứng dụng.
Giải pháp của IDS: Cả Network và Host-based IDS đều có thể xác định việc thay
đổi đặc quyền trái phép ngay lập tức, ở cấp phần mềm, do việc đó xảy ra trên thiết
bị chủ.
e)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 nhập trái
phép tiếp theo. Ta có một số ví dụ về việc cài đặt mã nguy hiểm sau:
- Virus: chương trình hay đoạn mã mà khi thực thi sẽ dẫn đến một số hành
động tự động, có hoặc không có hại, nhưng luôn dẫn đến việc tạo ra bản sao của file
hệ thống, file của ứng dụng hay dữ liệu.
- Trojan Horse: một chương trình hay đoạn mã mà khi thực thi sẽ dẫn đến một
số hành động tự động, thường có hại, nhưng không có mục đích nhân bản. Thường
thì Trojan Horse Được đặt tên hay mô tả như một chương trình mà người ta muốn
sử dụng, nhưng thực tế chúng kích hoạt các hành động có thể dẫn đến hỏng file hay
hệ thống.
Giải pháp của IDS: Cài đặt các phần mềm bảo mật có tác dụng chống virus và các
đoạn mã nguy hiểm lên gateway, server và workstation là phương pháp hiệu quả
nhất để giám mức độ nguy hiểm.
f)Hành động phá hoại trên máy móc (Cyber vandalism)
Hành động phá hoại trên máy móc bao gồm: thay đổi trang web, xóa file, phá block
khởi động và chương trình hệ điều hành, format ổ đĩa…
Giải pháp của IDS. Đối với giải pháp của Host-based IDS, cài đặt và cấu hình cẩn
thận có thể xác định được tất cả các vấn đề liên quan, Network-based IDS thì có thể
13
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
nhập trái phép vào hệ điều hành, ứng dụng cũng như xóa file và thay đổi trang web.
g)Tấn công hạ tầng bảo mật
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 dùng hay router,
hay thay đổi 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 nhập hay tạo thêm nhiều đường xâm nhập vào hệ thống hay mạng .
Giải pháp của IDS: Host-based IDS có thể bắt giữ các cuộc đăng nhập mà thực hiện
những hành động như đưa thêm tài khoản có đặc quyền, hay router và firewall bị
thay đổi một cách đáng nghi.
2.3 Giới thiệu Snort
Snort là một hệ thống phát hiện và phòng chống xâm nhập mã nguồn mở được
đóng gói thành nhiều sản phẩm phù hợp cho từng doanh nghiệp được phát triển do
công ty Sourcefire điều hành bởi Martin Roesch. Snort hiện nay đang là công nghệ
IDS/IPS được triển khai rộng rãi trên toàn thế giới.
Snort là một ứng dụng bảo mật hiện đại với ba chức năng chính: nó có thể
phục vụ như là một bộ phận lắng nghe gói tin, lưu lại thông tin gói tin hay là một hệ
thống phát hiện xâm nhập mạng (NIDS). Ngoài ra còn có rất nhiều chương trình
add-on cho Snort để có thể quản lý các file log, các tập luật và cảnh báo cho quản trị
viên khi phát hiện sự xâm nhập hệ thống. Tuy không phải là phần lõi của Snort
nhưng những thành phần này cung cấp rất nhiều tính năng phong phú để có một hệ
thống phát hiện và phòng chống xâm nhập tốt.
Có rất nhiều cách để triển khai hệ thống Snort, thông thường Snort chỉ kết hợp
với TCP/IP do giao thức này là một giao thức phổ biến của Internet, mặc dù với các
phần tùy chỉnh mở rộng, Snort có thể thực hiện để hỗ trợ các giao thức mạng khác,
chẳng hạn như Novell IPX. Vì vậy, Snort chủ yếu phân tích và cảnh báo trên giao
thức TCP/IP.
Bộ luật của Snort
2.3.1 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ã gói tin (Packet Decoder)
14
-Module tiền xử lý (Preprocessors)
-Module phát hiện (Detection Engine)
-Module log và cảnh báo (Logging and Alerting System)
-Module kết xuất thông tin (Output Module)
Kiến trúc của Snort được mô tả trong hình sau:
Hình 2.5 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 Môđun “Giải mã gói
tin ”. Tiếp theo gói tin sẽ được đưa vào mô đun “ Tiền xử lý ”, rồi môđun “Phát
hiện ”. Tại đây tùy theo việc có phá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 được đưa vào module “Log và cảnh báo để
xử lý”. Khi các cảnh báo được xác định thì 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.2 Thành phần và chức năng của Snort
a)Module giải mã gói tin (Packet Decoder)
Chuyển những gói tin bắt được thành những cấu trúc và những định danh liên
kết những tầng giao thức. Sau đó, nó làm ở tầng tiếp theo, mã hóa IP ??????TCP hay
UDP hay loại giao thức khác ??????lấy những thông tin hữu ích như những cồng và
những địa chỉ ....Snort sẽ cảnh báo nếu nó tìm thấy những header không đúng cấu
trúc, chiều dài TCP bất thường.
b)Module tiền xử lý (Preprocessor)
15
Hình 2.6 Bộ tiền xử lý
Module tiên xử lý là một module rất quan trọng đối với bất kỳ một hệ thống
IDS nào để có thể chuẩn bị gói dữ liệu đưa và cho module “Phát hiện phân tích”. Ba
nhiệm vụ chính của các môđun loại này là:
-Kết hợp lại các gói tin: Khi một lượng dữ liệu lớn được gửi đi, thông tin sẽ
không đó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 công việc phát hiện xâm nhập chỉ dựa
hoàn toàn vào gói tin đó sẽ không đem lại hiệu quả cao.
-Giải mã và chuẩn hóa giao thức: 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 vì khi kiểm tra các giao thức thì 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ã hex/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/examples/../iisadmin”
“scripts\iisadmin”
“scripts/.\iisadmin”
Hoặc thực hiện việc mã hóa các 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
16
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 cho các giao thức: telnet, http, rpc, arp.
-Phát hiện các xâm nhập bất thường: 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 bằng cách
tăng cường thêm tính năng cho Snort. Ví dụ, một plugin tiền xử lý có nhiệm vụ
thống kê thông 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 hài plugin
giúp phát hiện các xâm nhập bất thường đó là portscan và bo (back office). Portcan
dùng để đưa ra cảnh báo khi kẻ tân công thực hiện việc quét các cổng của hệ thống
để tìm lỗ hổng. Bo (back office) dùng để đưa ra cảnh báo khi hệ thống đã bị nhiễm
trojan back office và kẻ tấn công từ xa kết nối tới backoffice thực hiện các lệnh từ
xa.
c)Module phát hiện (Detection Engine)
Hình 2.7 Bộ phát hiện
Đây là module quan trọng nhất của Snort. 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.
Rồi tiếp theo mới có thể thực hiện một sổ công việc như ghi log, tạo thông báo và
kết xuất thông tin.
Một vấn đề rất quan trọng trong module phát hiện là vấn đề thời gian xử lý các
gói tin: một IDS thường nhận được rất nhiều gói tin và bản thân nó cũng có rất
nhiều các luật xử lý. Có thể mất những khoảng thời gian khác nhau cho việc xử lý
các gói tin khác nhau. Và khi thông lượng mạng quá lớn có thể xảy ra việc bỏ sót
hoặc không phản hồi được đúng lúc. Khả năng xử lý của module phát hiện dựa trên
một số yếu tố như: số lượng các luật, tốc độ của hệ thống đang chạy Snort, tải trên
17
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ũng có khả năng tách các phần của gói tin ra và áp
dụng các luật lên từng phần nào của gói tin đó. Các phần đó có thể là:
-IP header
-Header ở tầng giao vận: TCP, UDP
-Header ở tầng ứng dụng: DNS header, HTTP header, FTP header, …
-Phân tải của gói tin (bạn cũng có thế áp dụng các luật lên các phần dữ liệu
được truyền đ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ũng đượ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.
d)Module log và cảnh báo (Logging and Alerting System)
Tùy thuộc vào việc module phát hiện có nhận dạng được xâm nhập hay không
mà gói tin sẽ bị ghi log hoặc đưa ra cảnh báo. Các file log là các file text dữ liệu
trong đó có thể được ghi dưới nhiều định dạng khác nhau chẳng hạn như tcpdump.
e)Module kết xuất thông tin (Output module)
Hình 2.8 Bộ 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ông việc như là :
-Ghi log file.
18
-Ghi syslog: syslog và một chuẩn lưu trữ các file log được sử dụng rất nhiều
trên các hệ thống Unix, Linux.
-Ghi cảnh báo vào cơ sở dữ liệu.
-Tạo file log dạng xml: việc ghi log file dạng xml rất thuận tiện cho việc trao
đổi và chia sẻ dữ liệu.
-Cấu hình lại Router, fĩrewall.
-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.
Nếu không hài lòng với các cách xuất thông tin như trên, ta có thế viết các luật
để module kết xuất thông tin thực hiện tùy theo mục đích sử dụng của bạn.
2.3.3 Bộ luật của Snort
a)Giới thiệu về bộ luật
Snort chủ yếu là một IDS dựa trên luật, nó sử dụng các luật được lưu trữ trong
các file text, có thể được chỉnh sửa bởi người quản trị. 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 lưu trong các file khác nhau. File câu hình
chính của Snort là snort.conf. Snort đọ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 cung cấp các luật đê nắm bắt dữ liệu.
Snort tìm ra các dấu hiệu và sử dụng chúng trong các luậ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 nhập dữ liệu trong thực tế. Snort có một tập hợp các luật được định nghĩa
trước để phát hiện xâm nhập và bạn cũng có thể thêm vào các luật chính của bạn.
Bạn cũng có thể xóa một vài luật đã được tạo trước để tránh việc báo động sai.
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. 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.
b)Cấu trúc luật của Snort
19
Hình 2.9 Cấu trúc luật của Snort
Tất cả các Luật của Snort về logic đều gồm 2 phần: Phần Header và phần
Option
-Phần Header: chứa thông tin về hành động mà luật đó sẽ thực hiện khi phát
hiện ra có sự xâm nhập nằm trong gói tin và nó cũng chứa các tiêu chuẩn để áp
dụng luật với gói tin đó.
-Phần Option : chứa một thông điệp cảnh báo và các thông tin về các phần
của gói 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 luật với gói tin. Một luật có thể phát hiện được một hay nhiều hoạt động
thăm dò hay tấn công. Các luật thông minh có khả năng áp dụng cho nhiều dấu hiệu
xâm nhập.
Dưới đây là cấu trúc chung của phần Header của một luật Snort:
Hình 2.10 Header của 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 các packet chỉ thuộc một
giao thức cụ thể nào đó. Ví dụ như IP, TCP, UDP…
-Address: là phần địa chỉ nguồn và địa chỉ đích. Các địa chỉ có thể là một
máy đơn, nhiều máy hoặc của một mạng nào đó. Trong hai phân địa chỉ trên thì một
sẽ là địa chỉ nguồn, một sẽ là địa chỉ đích và địa chi 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 sẽ chỉ ra đâu là địa chỉ nguồn, đâu là địa chỉ đích.
Ví dụ: alert icmp any any ->any cmy (msg: “Ping with TTL=100”;ttl: 100;).
Phần đứng trước dấu mở ngoặc là phần Header của luật còn phần còn lại là
phần Option.
Chi tiết của phần Header:
20
-Hành động của luật ở đây là “alert”: một cảnh báo sẽ được tạo ra nếu như
các điều kiện của gói tin là phù hợp với luật ( gói tin luôn được log lại mỗi khi cảnh
báo được tạo ra).
-Protocol của luật ở đây là ICMP tức là luật chỉ áp dụng cho các gói tin thuộc
loại ICMP, Bời vậy, nếu như một gói tin không thuộc loại ICMP thì phần còn lại
của luật sẽ không cần đối chiếu.
-Địa chi nguồn ở đây là “any”: tức là luật sẽ áp dụng cho tất cả các gói tin
đến từ mọi nguồn còn cổng thì cũng là “any” vì đối với loại gói tin ICMP thì cổng
không có ý nghĩa, số hiệu cồng chỉ có ý nghĩa với các gói tin thuộc loại TCP hoặc
UDP thôi.
Chi tiết của phần Option: Trong dấu đóng ngoặc chỉ ra một cành báo chứa
dòng “Ping with TTL=100” sẽ được tạo khi tìm thấy điều kiện TTL=100. TTL là
“Time To Live” Là một trường trong Header IP.
-Phần Header
Như phần trên đã trình bày, Header của luật bao gồm nhiều phần. Sau đây, là
chi tiết cụ thể của từng phần một.
● Hành động của luật (Rule Action)
Là phần đầu tiên của luật, chỉ ra hành động nào được thực hiện khi mà các
điều kiện của luật được thoả mãn. Một hành động được thực hiện khi và chỉ khi tất
cả các điều kiện đều phù hợp. Có 5 hành động đã được định nghĩa nhưng ta có thể
tạo ra các hành động riêng tuỳ thuộc vào yêu cầu của mình. Đối với các phiên bản
trước của Snort thì khi nhiều luật là phù hợp với một gói tin nào đó thì chỉ một luật
được áp dụng. Sau khi áp dụng luật đầu tiên thì các luật tiếp theo sẽ không áp dụng
cho gói tin ấy nữa. Nhưng đối với các phiên bản sau của Snort thì tất cả các luật sẽ
được áp dụng gói tin đó.
-Pass: Hành động này hướng dẫn Snort bỏ qua gói tin này. Hành động này
đóng vai trò quan trọng trong việc tăng cường tốc độ hoạt động của Snort khi mà ta
không muốn áp dụng các kiểm tra trên các gói tin nhất định. Ví dụ ta sử dụng các
bẫy (đặt trên một máy nào đó) để nhử các hacker tấn công vào thì ta phải cho tất cả
các gói tin đi đến được máy đó. Hoặc là dùng một máy quét đề kiểm tra độ an toàn
mạng của mình thì ta phải bỏ qua tất cả các gói tin đến từ máy kiểm tra đó.
-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 tuỳ thuộc vào nhu cầu của mình.
21
-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.
Có nhiều cách để gửi thông điệp như gửi ra file hoặc ra một console. Tất nhiên là
sau khi gửi thông điệp cảnh báo thì gói tin sẽ được log lại.
-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.
● Protocols
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 protocol 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 header IP để 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 chi 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 là đị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ỉ.
Địa chỉ được viết ngày theo sau một dấu gạch chéo và số bit trong
subnetmask.
Ví dụ: Địa chỉ 192.168.2.0/24 thể hiện mạng lớp c 192.168.2.0 với 24 bít của
subnet mask. Subnet mask 24 bit chính là 255.255.255.0. Ta biết rằng :
-Nếu subnet mask là 24 bit thì đó là mạng lớp C.
-Nếu subnet mask là 16 bit thì đó là mạng lớp B.
-Nếu subnet mask là 8 bit thì đó là mạng lớp A.
-Nếu subnet mask là 32 bít thì đó là địa chỉ IP đơn.
Trong hai địa chỉ của một luật Snort thi có một địa chỉ là địa chỉ nguồn và địa
22
chỉ còn lại là địa chỉ đích. Việc xác định đâu là địa chi nguồn, đâu là địa chỉ đích thì
phụ thuộc vào phần hướng (direction).
Ví dụ như luật: alert tcp any any ->192.168.1.10/32 80 (msg:
“TTL=100”; ttl: 100;)
Luật trên sẽ tạo ra một cảnh bảo đối với tất cả các gói tin từ bất kỳ nguồn nào
có TTL = 100 đi đển web server 192.168.1.10 tại cống 80.
● Ngăn chặn địa chỉ hay loại trừ địa chỉ
Snort cung cấp cho ta kĩ thuật đề loại trừ địa chỉ bằng cách sử dụng dấu phủ
định (dấu !). Dấu phủ định này đứng trước địa chỉ sẽ chì cho Snort không kiểm tra
các gói tin đến hay đi tới địa chỉ đó.
Ví dụ như luật: alert icmp ![192.168.2.0/24] any -> any any (msg; “Ping
with TTL=100 ttl: 100;)
Luật sẽ áp dụng ngăn chặn tất cả các gói tin ngoại trừ các gói tin có nguồn
xuất phát từ mạng lớp C 192.168.2.0
● Danh sách địa chỉ
Ta có thể định rõ ra danh sách các địa chỉ trong một luật của Snort. Bằng hai
dấu [ ] chỉ cần dùng khi có dấu ! đứng trước.
Ví dụ: alert icmp ![192.168.2.0/24, 192.168.8.0/24] any -> any any (msg:
“Ping with TTL=100”; ttl: 100;)
Luật sẽ áp dụng ngăn chặn tất cả các gói tin ngoại trừ các gói xuất phát từ hai
mạng lớp C 192.168.2.0 và 192.168.8.0
● Cổng (Port Number)
Số hiệu cổng dùng để áp dụng luật cho các gói tin đến hoặc đi đến một cổng
hay một phạm vi cổng cụ thể nào đó.
Ví dụ như luật: alert tcp 192.168.2.0/24 23->any any (content: “confidential”
; msg: "Detected confidential”;)
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. Chú ý là số hiệu cổng chỉ có ý nghĩa trong các giao thức TCP và UDP thôi.
Nếu protocol của luật là IP hay ICMP thì số hiệu cổng không đóng vai trò gì cả.
● Dãy cổng hay phạm vi cổng
Ta có thể áp dụng luật cho dãy các cổng thay vì cho một cổng nào đó.
23
Cổng bắt đầu và cổng kết thúc phân cách nhau bởi dấu hai chấm “:” .
Ví dụ: alert udp any 1024:2048 ->any any (msg:“UDP ports ”;)
Dấu phủ định cũng được áp dụng trong việc sử dụng cổng.
Ví dụ: log udp any !53 -> any any log udp
Luật sau sẽ log tất cả các gói tin ngoại trừ các gói tin xuất phát từ
cổng 53.
● 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.
-Phần Option
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 thoã
mãn tức là theo logic các option này liên kết với nhau bằng AND.
Mọi option được định nghĩa bằng các từ khoá. Nói chung một option gồm 2
phần: một từ khoá và một tham số, hai phần này phân cách nhau bằng dấu hai chấm
“:” .
Ví dụ: msg:“Detected confidented”
(msg:từ khóa, Detected confidented:là tham số)
Như phần trên đã trình bày, Option 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:
-Từ khóa classtype
Các luật có thể được phân loại và gán cho một số chỉ độ ưu tiên nào đó để
nhóm và phân biệt chúng với nhau. Để hiếu rõ hơn về từ khoá này đầu tiên ta phải
hiểu được file classification.config {được bao gồm trong fíle snort.conf sử dụng từ
khoá include). Mỗi dòng trong file classification.config có cú pháp như sau:
confìg classification: name, description, priority
Trong đó:
-name: là tên dùng để phân loại, tên này sẽ được dùng với từ khoá classtype
trong các luật Snort.
-description:mô tả về loại lớp này.
-priority: là một số chỉ độ ưu tiên mặc định cùa lớp này.Độ ưu tiên này có thể
24
được điều chỉnh trong từ khoá priority của phầnoptiontrong luật của Snort.
Ví dụ: config classification: DoS , Denial of Service Attack, 2
Biểu diễn trong luật:
alertudp any any->192.168.1.0/246838(msg:”DoS"; content:
“server”; classtype: DoS;)
alertudp any any->192.168.1.0/246838(msg:”DoS”;
content:“server”; classtype: DoS; priority: 1;)
Trong câu lệnh thứ 2 thì ta đã ghi đè lên giá trị priority mặc định cùa lớp đã
định nghĩa.
-Từ khoá content
Một đặc tính quan trọng của Snort là nó có khả năng tìm một mẫu dữ
liệu bên trong một gói tin. Mầu này có thể dưới dạng chuỗi ASCII hoặc là một
chuỗi nhị phân dưới dạng các kí tự hệ 16. Giống như virus, các tấn công cũng có
các dấu hiệu nhận dạng và từ khoá content này dùng để tìm các dấu hiệu đó bên
trong gói tin.
Ví dụ: alerttcp 192.168.1.0/24 any ->![192.168.1.0/24] any (content: “GET”;
msg: “GET match ”;)
Luật trên tìm mẫu “GET” trong phần dữ liệu của tất cả các gói tin TCP có
nguồn đi từ mạng 192.168.1.0/24 và đi đến các địa chỉ không thuộc mạng đó. Từ
“GET” này rất hay được dùng trong các tấn công HTTP.
Ví dụ: alert tcp192.168.1.0/24 any ->![192.168.1.0/24] any (content: “\47 45
54\ “; msg: “GET rnatch”;)
Tuy nhiên khi sử dụng từ khoá content ta cần nhớ rằng:
-Đối sánh nội dung sẽ phải xử lý tính toán rất lớn và ta phải hết sức cân nhắc
khi sử dụng nhiều luật có đối sánh nội dung.
-Ta có thể sử dụng nhiều từ khóa content trong cùng một luật để tìm nhiều
dấu hiệu trong cùng một gói tin.
-Đối sánh nội dung là công việc rất nhạy cảm.
Có 3 từ khoá khác hay được dùng cùng với từ khoá content dùng để bổ sung
thêm các điều kiện để tìm kiếm là:
-offset : dùng để xác định vị trí bắt đầu tìm kiếm (chuỗi chứa trong từ khoá
content) là offset tính từ đầu phần dữ liệu của gói tin
Ví dụ: Tìm chuỗi “HTTP” bắt đầu từ vị trí cách đầu đoạn dữ liệu của gói tin là
4 byte
alert tcp 192.168.1.0/24 any ->any any (content: “HTTP”; offset: 4;msg:
25
“HTTP matched”;)
-dept :dùng để xác định vị trí mà từ đó Snort sẽ dừng việc tìm kiếm.Từ khoá
này cũng thường được dùng chung với từ khoá offset vừa nêu trên.
Ví dụ: alert tcp 192.168.1.0/24 any->any any (content: “HTTP”; offset: 4;
dept: 40; msg: “HTTP matched”;)
Từ khoá này sẽ giúp cho việc tiêu tổn thời gian tìm kiểm khi mà đoạn dữ liệu
trong gói tin là khá lớn.
-content-list :được sử dụng cùng với một file. Tên fíle (được chỉ ra trong phần
tham số của từ khoá này) là một file text chứa danh sách các chuỗi cần tìm trong
phần dữ liệu của gói tin. Mỗi chuỗi nằm trên một dòng riêng biệt.
Ví dụ: alert tcp 192.168.1.0/24 any ->any any (content-list: “test”;msg:
“This is my Test”;)
Ta cũng có thể dùng kí tự phủ định ! trước tên file để cảnh báo đối với các
gói tin không tìm thấy một chuỗi nào trong file đó.
-Từ khóa dize
Dùng để đối sánh theo chiều dài của phần dữ liệu. Rất nhiều tấn công sử
dụng lỗi tràn bộ đệm bằng cách gửi các gói tin có kích thước rất lớn. Sử dụng từ
khoá này, ta có thể so sánh độ lớn của phần dữ liệu của gói tin với một số nào đó.
Ví dụ: alert ip any any -> 192.168.1.0/24 any (dsize: >6000; msg: “Goi tin
co kich thuoc lon”
Cơ chế hoạt động của Snort
-Sniffer mode: ở chế độ này snort sẽ lắng nghe và đọc các gói tin trên mạng
sau đó sẽ trình bày kết quả trên giao diện hiển thị.
-PacketLogger mode : lưu trữ các gói tin trong các tập tin log.
-Network instruction detection System (NIDS) : đáy là chế độ hoạt động
mạnh mẽ và được áp dụng nhiều nhất, khi hoạt động của IDS mode Snort sẽ phân
tích các gói tin luân chuyển trên mạng và so sánh với các thông tin được định nghĩa
của người dùng để từ đó có những hành động tương ứng như thông báo cho quản trị
mạng khi xảy ra tình huống quét lỗi do các hacker /attacker tiến hành hay cảnh báo
virus,…
-lnline mode: khi triển khai snort trên linux thì chúng ta có thế cấu hình snort
để phân tích các gói tin từ iptables thay vì libpcap do đó iptable có thể drop hoặc
pass các gói tin theo snort rule.
26
2.4 Tổng qua về Prsense
Pfsense là một ứng dụng có chức năng định tuyến vào tường lửa mạng và
miễn phí dựa trên nền tảng FreeBSD (FreeBSD là một hệ điều hành kiểu Unix được
phát triển từ Unix theo nhánh phát triển của BSD dựa trên 386BSD và 4.4BSD)
được cung cấp với mục đích sử dụng làm bộ định tuyến (routing) và tường lửa
(firewall) rất mạnh. Pfsense được quản lý hoàn toàn qua giao diện web. Bắt đầu vào
năm 2004, khi m0n0wall mới bắt đầu chập chững- đây là một dự án bảo mật tập
trung vào các hệ thống nhúng - Pfsense đã có hơn 1 triệu download và được sử
dụng để bảo vệ các mạng ở tất cả kích cỡ, từ các mạng gia đình đến các mạng lớn
của của các công ty. Ứng dụng này có một cộng đồng phát triển rất tích cực và
nhiều tính năng đang được bổ sung trong mỗi phát hành nhằm cải thiện hơn nữa
tính bảo mật, sự ổn định và khả năng linh hoạt của nó.
Pfsense được xây dựng dựa trên hệ điều hành FreeBSD và sử dụng giao thức
Common Address Redundancy Protocol (CARP) của FreeBSD, từ đó cung cấp khả
năng dự phòng bằng cách kết hợp hai hoặc nhiều tường lửa vào một nhóm tự động
chuyển đổi dự phòng. Nhờ hỗ trợ nhiều kết nối WAN, Pfsense có thể thực hiện cân
bằng tải một cách hiệu quả.
Pfsense tích hợp nhiều tính năng, nổi bật là firewall trạng thái, tương tự như
các thiết bị tường lửa hay router thương mại lớn. Giao diện người dùng (GUI) dựa
trên Web giúp việc quản lý trở nên dễ dàng hơn. Mặc dù là phần mềm miễn phí,
Pfsense vẫn cung cấp nhiều chức năng ấn tượng cho giải pháp firewall/router,
nhưng không tránh khỏi một số hạn chế nhất định.
Pfsense cho phép lọc lưu lượng dựa trên địa chỉ nguồn, đích, cổng nguồn
hoặc cổng đích và địa chỉ IP, đồng thời hỗ trợ định tuyến và có thể hoạt động ở chế
độ bridge hoặc transparent. Điều này giúp người dùng chỉ cần đặt Pfsense giữa các
thiết bị mạng mà không cần cấu hình phức tạp. Ngoài ra, Pfsense còn cung cấp cơ
chế NAT và tính năng chuyển tiếp cổng, tuy nhiên vẫn gặp một số hạn chế khi xử lý
27
các giao thức như Point-to-Point Tunneling Protocol (PPTP), Generic Routing
Encapsulation (GRE) và Session Initiation Protocol (SIP) khi sử dụng NAT.
Cấu hình cần thiết để cài đặt Pfsense khá khiêm tốn. Chỉ với một máy tính sử
dụng bộ xử lý P3, 128 MB RAM và ổ cứng 1GB đã đủ để xây dựng tường lửa
Pfsense. Tuy nhiên, do Pfsense hoạt động nhằm bảo vệ và phân cách giữa mạng
WAN và LAN, nên máy cài đặt bắt buộc phải trang bị ít nhất 2 card mạng.
2.2 Một số tính năng chính trong Pfsense
2.2.1 Aliases
Trong Pfsense, một rule của firewall không cho phép chứa nhiều nhóm IP
hoặc nhiều nhóm port cùng lúc. Do vậy, giải pháp là gom các IP, port hoặc URL
thành các Aliases. Một Alias có thể đại diện cho một host, một dải mạng, nhiều IP
riêng lẻ, hoặc một nhóm port, URL. Việc sử dụng Aliases giúp bạn tiết kiệm thời
gian đáng kể, bởi thay vì tạo ra hàng loạt rule cho từng địa chỉ riêng lẻ, bạn chỉ cần
một rule duy nhất chứa Alias đó.
Aliases là tính năng cực kỳ hiệu quả trong Pfsense vì nó cho phép định nghĩa
rất nhiều port, một host hoặc nhiều dãy IP trong cùng một nhóm. Ví dụ, nếu bạn
muốn chặn Facebook – một dịch vụ có dãy IP trải dài qua nhiều lớp mạng – thì việc
tạo từng rule riêng lẻ sẽ rất mất thời gian và làm phức tạp hệ thống. Thay vào đó,
28
bạn có thể tạo một Alias với tên “IP_Facebook” chứa toàn bộ dãy IP của Facebook,
sau đó chỉ cần một rule trên Firewall để chặn alias này, từ đó block hoàn toàn truy
cập đến facebook.com.
Để truy cập chức năng Aliases trong pfSense, bạn vào mục Firewall → Aliases.
Trong Aliases, bạn có thể tạo:
Host: Nhóm các địa chỉ IP.
Network: Nhóm các mạng.
Port: Nhóm các cổng (port); lưu ý rằng chức năng này không cho phép
nhóm các giao thức, khi các giao thức sẽ được định nghĩa riêng trong các
rule của Firewall.
Chức năng Aliases giúp bạn tiết kiệm thời gian quản lý các rule trên tường lửa, vì
thay vì tạo nhiều rule cho từng địa chỉ hay cổng riêng lẻ, bạn có thể gom chúng lại
thành một alias và chỉ dùng một rule duy nhất.
2.2.2 Firevall rules
Để quản lý luật ra vào trên pfSense, bạn truy cập Firewall → Rules. Theo mặc
định, pfSense cho phép mọi kết nối ra vào hệ thống, do đó bạn cần tự tạo các rule để
kiểm soát lưu lượng mạng bên trong Firewall. Một số lựa chọn trong phần
Destination và Source bao gồm:
Any: Tất cả.
Single host or alias: Một địa chỉ IP cụ thể hoặc một alias.
LAN subnet: Mạng con LAN.
29
Network: Địa chỉ mạng.
LAN address: Tất cả địa chỉ nội bộ.
WAN address: Tất cả địa chỉ bên ngoài.
PPTP clients: Các máy khách kết nối VPN qua giao thức PPTP.
PPPoE clients: Các máy khách kết nối VPN qua giao thức PPPoE.
2.2.3 NAT
Về phần NAT:
NAT tĩnh (Static NAT 1:1): pfSense hỗ trợ NAT 1:1, trong đó mỗi IP
private sẽ được ánh xạ trực tiếp với một IP public. Điều kiện để áp dụng
NAT 1:1 là hệ thống cần có địa chỉ IP public. Khi cấu hình NAT 1:1, IP
private luôn ra ngoài với IP public tương ứng, và các cổng cũng được chuyển
đổi tương ứng.
NAT Outbound: Mặc định, pfSense sử dụng chế độ tạo rule tự động
(Automatic Outbound NAT rule generation). Nếu muốn tùy chỉnh thủ công,
bạn có thể chuyển sang chế độ Manual Outbound NAT rule generation
(AON – Advanced Outbound NAT), loại bỏ các rule mặc định và thêm vào
các rule outbound theo yêu cầu.
Ngoài ra, bên cạnh ba kiểu NAT thông dụng (port forward, NAT 1:1 và
outbound), pfSense còn hỗ trợ NAT Npt, một phương thức NAT dành riêng
cho IPv6.
2.2.4 Tranffic shaper
Tính năng này cho phép quản trị viên mạng tinh chỉnh và tối ưu hóa băng thông
truyền tải trên pfSense bằng cách chia nhỏ đường truyền thành các hàng riêng biệt.
Cụ thể, pfSense phân chia băng thông thành 7 hàng, mỗi hàng đảm bảo cho một loại
lưu lượng nhất định:
Hàng qACK: Dành cho các gói ACK (xác nhận) của giao thức TCP, thường
xuất hiện trong các ứng dụng quan trọng như HTTP hay SMTP. Dù lưu
lượng ACK nhỏ nhưng lại rất cần thiết để duy trì tốc độ truyền tải liên tục.
30
Hàng qVoIP: Dành cho các gói dữ liệu cần độ trễ cực kỳ thấp (thường dưới
10ms), ví dụ như trong các cuộc gọi VoIP hay hội nghị truyền hình.
Hàng qGames: Dành cho các ứng dụng yêu cầu độ trễ rất chặt chẽ, chẳng
hạn như SSH hoặc game online, thường yêu cầu dưới 50ms.
Hàng qOthersHigh: Dành cho những ứng dụng quan trọng có tính tương
tác cao, cần phản hồi nhanh và độ trễ thấp như NTP, DNS hay SNMP.
Hàng qOthersDefault: Dành cho các giao thức có tính tương tác vừa phải,
đòi hỏi tốc độ phản hồi ổn định như HTTP hay IMAP.
Hàng qOthersLow: Dành cho các giao thức quan trọng nhưng có yêu cầu
tương tác không quá cao, ví dụ như SMTP, POP3 hay FTP.
Hàng qP2P: Dành cho các ứng dụng không yêu cầu tương tác tức thì, chẳng
hạn như các ứng dụng chia sẻ tệp (bittorrent).
Theo mặc định, pfSense sắp xếp độ ưu tiên của các hàng từ thấp đến cao theo thứ
tự:
qP2P < qOthersLow < qOthersDefault < qOthersHigh < qGames < qACK < qVoIP.
Người dùng có thể điều chỉnh lại độ ưu tiên (priority) và dung lượng băng thông
(bandwidth) dành cho mỗi hàng nhằm tối ưu hóa hiệu suất truyền tải theo nhu cầu
cụ thể. Ngoài ra, pfSense còn hỗ trợ giới hạn tốc độ download/upload cho một địa
chỉ IP hoặc một dải IP thông qua phần cấu hình limiter. Phần Layer 7 của firewall
pfSense cũng cho phép chặn các ứng dụng chạy ở tầng ứng dụng (như SIP, FTP,
HTTP,...) theo mô hình OSI.
2.2.5 VPN
VPN (Virtual Private Network - Mạng riêng ảo) là một tính năng không thể
thiếu đối với các gateway, cho phép các máy tính giao tiếp qua một môi trường chia
sẻ như Internet mà vẫn đảm bảo được sự riêng tư và bảo mật của dữ liệu. Để thực
hiện kết nối này, các gói dữ liệu được đóng gói bên trong một header chứa thông tin
định tuyến, giúp chúng di chuyển qua một "đường ống" (tunnel) riêng biệt, tương tự
như truyền qua các đường ống riêng. Để bảo vệ tính riêng tư và an toàn, dữ liệu
được mã hóa và chỉ có thể được giải mã bởi các khóa bảo mật phù hợp, ngăn chặn
việc truy cập trái phép hay “trộm” dữ liệu trong quá trình truyền tải. Chức năng này
của pfSense được đánh giá rất cao về hiệu quả và độ an toàn.
Ngoài ra, pfSense hỗ trợ VPN thông qua bốn giao thức: IPSec, L2TP, PPTP và
OpenVPN.
31
2.2.6 Monitor băng thông:
PfSense cung cấp rất nhiều plugin hữu ích để giám sát băng thông, dưới đây là
một số công cụ được sử dụng phổ biến:
RRD Graphs:
oĐây là công cụ mặc định đi kèm khi cài đặt pfSense. RRD Graphs cho
phép bạn theo dõi trạng thái của hệ thống, như bộ nhớ, tiến trình và
lưu lượng trên các kết nối LAN, WAN.
oTuy nhiên, nhược điểm của nó là không thể giám sát riêng lẻ theo
từng địa chỉ IP.
Lightsquid:
oLightsquid là gói mở rộng hỗ trợ hiển thị báo cáo trên pfSense sau khi
đã cài đặt gói Squid.
oCông cụ này cho phép bạn kiểm tra lượng dữ liệu mà từng IP sử dụng
theo ngày, tổng dung lượng truyền tải trong ngày cũng như các trang
web đã được truy cập.
BandwidthD:
oĐây là một plugin khác giúp theo dõi dung lượng sử dụng của từng
địa chỉ IP.
oBandwidthD thống kê dữ liệu gửi và nhận của từng IP, đồng thời phân
tích các giao thức như FTP, HTTP,...
Ntop:
oNtop là một plugin được nhiều quản trị viên ưa chuộng. Nó cho phép
theo dõi băng thông theo thời gian thực, xác định IP sử dụng nhiều
băng thông nhất, giám sát lưu lượng qua các cổng kết nối và kết nối
internet.
32
2.1Cài đặt Pfsense
Chuẩn bị:
-Yêu cầu phần cứng tối thiểu cài đặt Pfsense: Ram 512MB, ổ cứng 1gb
-Ta thực hiện cài đặt Pfsense trên VMWare với cấu hình 2GB. ổ cứng
20GB, 2 card mạng
Mở phần mềm VMWare Workstation bằng quyền Administrator (chọn Run as
administrator)
Chọn File -> New virtual machine -> Chọn Typical -> Nhấn Next
33
Chọn Installer disc image file (iso) -> Nhấn Browse để lấy file iso mà bạn đã tải về
trước đó -> Nhấn Next để tiếp tục
34
Nhấn Browse để chọn nơi chứa máy ảo Pfsense -> Nhấn Next để tiếp tục
Nhập dung lượng của máy ảo -> Nhấn Next để tiếp tục
35
Nhấn Customize Hardware để chỉnh sửa một số cấu hình của máy ảo
Firewall Pfsense
36
Ở phần Network Adapter -> Chọn card mạng Host-only bất kì để tạo kết
nối mạng LAN cho các máy tính phía sau firewall Pfsense
37
Chọn Card mạng cho nó là VMnet1 (Host-only) -> Nhấn Close để hoàn tất
cấu hình
Bật Pfsense lên và bắt đầu cài đặt
Nhấn accept
38
Chọn install pfsense và chon ok:
Sau đó ta tiếp tục chọn theo mặc định các tuỳ chọn bàn phím, phân vùng ổ cứng,
đợi quá trình cài đặt hoàn tất và reboot
39
Cấu hình thông số về IP Address cho các Interface của Pfsense
Chọn option 2 để cấu hình
Nhập số 2 để cấu hình cho mạng LAN -> Thiết lập IP Address -> Nhấn Enter
để tiếp tục
40
Ở phần IPv6 không cần phải cấu hình gì cả
Giao diện khi thành công
41
CHUƠNG 3 TRIỂN KHAI HỆ THỐNG IDS VỚI SNORT TRÊN PFSENSE
3.1 Cài đặt snort trên pfsense
Đăn nhập Pfsense trên trình duyệt: https://192.168.164.3:11443
Nhập vào username và password. Ta đã cấu hình từ trước: hoangson/123456
42
Truy cập vào System – chọn Package Manager
Vào Avaliable Package tìm snort và tải về, ta được kết quả như sau
43
Sau đó ta vào trang chủ snort để lấy Oinkcode:
Sau khi tải thành công snort , ta chọn phần Services chọn Snort để cấu hình:
44
Ta cấu hình như sau
Nhập code mình lấy ở trên bỏ vào ô Snort Oinkmaster Code
Click chọn các mục: Enable Snort VRT, Enable Snort GPLv2, Enable ET Open,
Enable OpenAppID, Enable AppID Open Text Rules, Enable FEODO Tracker
Botnet C2 IP Rules
45
Sau đó ta update các rule
46
3.2 Demo tấn công
47
CHƯƠNG 4 KẾT LUẬN
4.1 Kết quả
Sau một thời gian nghiên cứu đồ án đã được thực hiện hoàn chỉnh theo đề
cương đặt ra. Về mặt lý thuyết đề tài đã nêu ra được những vấn đề cơ bản nhất của
một hệ thống phát hiện và phòng chống xâm nhập. Bên cạnh đó đề tài cũng đã tìm
hiểu và xây dựng thành công một hệ thống thực tế đã được triển khai rất hiệu quả và
được đánh giá cao đó là Snort và Prsense.
Do thời gian có hạn nên hệ thống xây dựng chỉ được triển khai trên một phân
đoạn mạng nhỏ nên chưa thể đánh giá được hết hiệu suất của hệ thống cũng như các
vấn đề tấn công mạng gặp phải trong thực tế. Ngoài ra, hệ thống Snort và Prsense
chưa đáp ứng được cho một mô hình mạng lớn và quy mô.
4.1.1Những phần nắm được
Đề tài cho ta thấy rõ được sự cần thiết của bảo mật, những hạn chể của
phương pháp bảo mật hiện tại, đồng thời nói lên sự quan trọng của hệ thống phát
hiện chống xâm nhập trái phép đối với công nghệ thông tin đang phát triển hiện
nay.
Hệ thống phát hiện xâm nhập mạng (IDS) tuy chỉ mới xuất hiện sau này
nhưng hiện đóng vai trò không kém phần quan trọng. IDS giúp chúng ta khám phá,
phân tích những nguy cơ tấn công mới. Từ đó vạch ra những phương án phòng
chống, ở góc độ nào đó có thể tìm được thù phạm gây ra cuộc tấn công.
Bài báo cáo này giúp:
-Nắm bắt được những khái niệm cơ bản nhất về một hệ thống phát hiện xâm
nhập.
-Triến khai được một hệ thống phát hiện xâm nhập phổ biến là Snort
-Nắm bắt được cơ chế viết luật cho Snort và thực thi Snort ở các chế độ
như: SniíTer Packet, Packet Logger, NIDS...
4.1.2Những gì chưa đạt được
Đề tài còn rất nhiều những thiếu sót. Phân lý thuyết chỉ tổng quát sơ lược tóm
tắt chưa đi sâu nghiên cứu vấn đề. Phần thử nghiệm thì tìm hiểu ở những chế độ
đơn giàn Sniffer Packet, Packet Logger, NIDS. Và chế độ cũng không kém phần
quan trọng là Inline mode. Về vấn đề viết rule cho Snort để xử lý hệ thống thì
những luật viết ra có phần vẫn còn đơn giản.
48
4.2 Hướng phát triển
Triển khai hệ thống đã xây dựng đưa vào thực tế để có thể đánh giá được hết
hiệu năng cũng như các vấn đề sẽ gặp phải, từ đó tìm ra các biện pháp để khắc phục
cũng như hoàn thiện hệ thống.
Tìm hiểu thêm về các loại hình tấn công mạng để từ đó xây dựng thêm các
quy tắc phù hợp góp phần cho cộng đồng mã nguồn mở Snort luôn hoạt động hiệu
quả, kịp thời.
Tìm hiểu thêm về các hệ thống phát hiện và phòng chống xâm nhập khác được
triển khai trong các mô hình mạng lớn và quy mô và triển khai chúng trong thực tế.
Xây dựng tools để có thể thêm quy tắc thân thiện với người dùng hơn.
49
TÀI LIỆU THAM KHẢO
Tài liệu tiếng việt
[1]Nguyễn Thúc Hải, Mạng máy tỉnh và các hệ thống mở, NXB Giáo dục,
1999.
[2]Nguyễn Ngọc Tuấn, Công nghệ bảo mật,NXB Thống Kê, 2005,
Tài liệu tiếng Anh
[3]Earl Carter, ỉntroductỉon to Netvvork Security, Cisco Secure Intrusion
Detection System, Cisco Press, 2000.
[4]Raieeq Rehman, Intrusion Detection with Snort, NXB Prentice Hall, 2003.
[5]Martin Roesch, Chris Green ,Snort User Manual,The Snort Project, 2003.
[6]Christopher Kruegel, Hredrik Valeur, Giovanni Vigna, Computer securitỵ
and Intmsỉon Detection, Aỉert Corelation, Challenges and Solution,Springer, 2005.
[7]Raíeeq Rehman, Intrusìon Detection vvith Snort, NXB Prentice Hall,
2003.
Tài liệu Internet
[8]https://help.ubuntu.eom/10.04/serverguide/c/mysql.html
[9]http://www.youtube.com/watch?v=FzKdaiUZUwM
[10]http://shoptmhoc.com/diendan/tin-hoc-can-ban/40472-cach-noi-mang-
giua- m ay-ao-su-dun g-vmware-voi-may-va-internet.html
[11] http://quantrinet.com/forum/showthread.php?t=2855
[12]http://www.slideshare.net/phanleson/snort
[13]http://rootbiez.blogspot.com/2009/08/hacking-he-thong-phat-hien-xam-
nhap- ids.html
[14]http://www.giaiphaphethong.net/bao-mat-mang/104-gioi-thieu-he-thong-
tu- dong-phat-hien-xam-nhap-ids.html
50