Tải bản đầy đủ (.doc) (45 trang)

đồ án tốt nghiệp xây dựng hệ thống (nids - network intrusion detection system)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (397.75 KB, 45 trang )

MỤC LỤC
MỤC LỤC…………………………………………………………………………1
LỜi NÓI ĐẦU…………………………………………………………………… 3
CHƯƠNG 1: TỔNG QUAN VỀ AN NINH MẠNG…………………………… 4
1.1 Các mục tiêu cần bảo vệ……………………………………………… … 4
1.2 Các kiểu tấn công mạng……………………………………………………4
1.3 Các phương pháp bảo vệ………………………………………………… 6
CHƯƠNG 2: HỆ THỐNG PHÁT HIỆN XÂM NHẬP TRÁI PHÉP TRÊN MẠNG
(NIDS)…………………………………………………………………………… 8
2.1 Xâm nhập (Instrusion)…………………………………………………… 8
2.1.1 Cách thức xâm nhập vào hệ thống………………………………… 8
2.1.2 Những lỗ hổng an ninh có thể xâm nhập…………………………… 9
2.1.3 Những dấu hiệu xâm nhập thông thường………………………… 12
2.1.4 Một kịch bản xâm nhập điển hình………………………………… 13
2.2 Hệ thống phát hiện xâm nhập IDS (Instrusion Detection System)……….14
2.2.1 Định nghĩa, chức năng và nguyên lý làm việc………………………14
2.2.2 Vị trí…………………………………………………………………17
2.2.3 Phân loại…………………………………………………………….17
2.3 NIDS (Network-based IDS)………………………………………………28
2.3.1 Lí do lựa chọn NIDS……………………………………………… 28
2.3.2 Kiến trúc và hoạt động………………………………………………29
2.3.3 Mô hình hệ thống NIDS…………………………………………….31
2.3.4 Triển khai và điều chỉnh hệ thống NIDS……………………………33
2.3.5 Đánh giá một hệ thống NIDS (value of NIDS)…………………… 39
2.3.6 Tối ưu hoá giá trị của NIDS…………………………………………40
2.3.7 NIDS & Firewall…………………………………………………….42
2.3.8 Tổng kết…………………………………………………………… 43
1
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG NIDS……………………………………44
3.1 Mục đích………………………………………………………………….44
3.2 Phân tích và thiết kế chương trình……………………………………… 44


TÀI LIỆU THAM KHẢO……………………………………………………… 45
2
LỜI NÓI ĐẦU
Ngày nay, công nghệ thông tin đã và đang phát triển một cách mạnh mẽ đem
lại những lợi ích và ứng dụng vô cùng to lớn cho con người. Mạng máy tính ra
đời, mở rộng và phát triển không ngừng tạo nên hệ thống mạng Internet toàn cầu.
Ngày càng có nhiều người nhận ra lợi ích của việc nối mạng (để chia sẻ tài
nguyên, có thể trao đổi và tìm kiếm thông tin hiệu quả, nhanh chóng, tiết kiệm thời
gian và chi phí, ), Internet đã thực sự trở thành một phần không thể thiếu trong
cuộc sống của con người, thông tin liên lạc qua Internet đã trở nên quen thuộc với
hầu hết mọi người.
Tuy nhiên, việc truyền thông trên mạng phải qua rất nhiều trạm trung gian,
nhiều nút với nhiều người sử dụng khác nhau và không ai dám chắc rằng thông tin
khi đến tay người nhận không bị thay đổi hoặc không bị sao chép. Chúng ta đã
được nghe nhiều về vấn đề thông tin bị đánh cắp gây những thiệt hại nghiêm trọng
hay những kẻ thường xuyên trộm tin của người khác, thậm chí ăn trộm mật khẩu
và giả mạo nhằm phá hoại việc giao dịch. Thực tế cũng đã cho thấy số các vụ tấn
công vào mạng ngày càng tăng, các kỹ thuật tấn công ngày càng mới và đa dạng.
Chính vì thế mà vấn đề an toàn được đặt lên hàng đầu khi nói đến việc truyền
thông trên mạng.
Có rất nhiều cách để thực hiện an toàn trên mạng như: phương pháp kiểm soát
lối vào, ngăn cản sự xâm nhập trái phép vào hệ thống cũng như kiểm soát tất cả
các thông tin gửi ra bên ngoài hệ thống, hay sử dụng phương pháp mã hoá dữ liệu
trước khi truyền, ký trước khi truyền,
Trong nội dung đề tài này chúng ta sẽ đi sâu tìm hiểu về hệ thống phát hiện
xâm nhập trái phép trên mạng (NIDS-Network Intrusion Detection System).
§Ò tµi: X©y dùng hÖ thèng ph¸t hiÖn x©m nhËp trªn m¹ng (NIDS -
Network Intrusion detection System)
3
CHƯƠNG 1: TỔNG QUAN VỀ AN NINH MẠNG

1.1 Các mục tiêu cần bảo vệ
Sự ra đời và phát triển của Internet là một bước ngoặt lớn trong lịch sử nhân
loại. Hệ thống thông tin khổng lồ trên Internet được chia sẻ trên khắp thế giới. Tuy
nhiên, đồng thời với lợi ích to lớn của nó, mạng Internet cùng với các công nghệ
liên quan cũng cho thấy mặt hạn chế tất yếu là tính mất an toàn, dễ bị xâm phạm,
tấn công. Hậu quả của các cuộc tấn công có thể chỉ là những phiền phức nhỏ
nhưng cũng có thể làm suy yếu hoàn toàn hệ thống, các dữ liệu, thông tin quan
trọng bị xóa, sự riêng tư bị xâm phạm,…Do đó, nhiệm vụ của chúng ta là phải
tránh tối đa sự mất an toàn, hay nói một cách khác là phải bảo vệ sự an toàn cho hệ
thống, suy nghĩ của chúng ta phải đi kịp với sự phát triển công nghệ.
Các đối tượng cần đảm bảo an ninh bao gồm:
• Dữ liệu:
Dữ liệu truyền đi trên mạng phải đáp ứng được các yêu cầu về:
- Tính mật (Confidentiality): Đảm bảo thông tin không thể bị truy cập trái
phép bởi những người không có thẩm quyền.
- Tính toàn vẹn (Integrity): Đảm bảo thông tin không bị thay đổi trong quá
trình truyền.
- Tính sẵn sàng (Availability): Đảm bảo dữ liệu luôn sẵn sàng khi có yêu
cầu truy cập.
• Tài nguyên:
Tài nguyên bao gồm các thành phần phần cứng và phần mềm của hệ
thống. Kẻ tấn công có thể lợi dụng các lỗ hổng an ninh như các lỗ hổng về
hệ điều hành, mạng, ứng dụng. Nếu máy tính không có dữ liệu quan trọng
thì vẫn rất cần được bảo vệ bởi vì kẻ tấn công có thể đột nhập và sử dụng
nó làm tiền đề cho các cuộc tấn công khác.
• Danh tiếng:
Như trên đã nói kẻ tấn công có thể dùng máy của một người sử dụng để tấn
công nơi khác, gây tổn thất về uy tín của người sử dụng đó.
1.2 Các kiểu tấn công mạng
Có rất nhiều cách tấn công đã biết cũng như chưa biết, tuy nhiên hiện nay có

thể chia làm 4 loại chính:
• Interruption (làm gián đoạn)
• Interception (ngăn chặn)
• Modification (sửa đổi)
• Fabrication (làm giả)
Sau đây, chúng ta sẽ xem xét tổng quan về các kiểu tấn công đó:
4
Tấn công làm gián đoạn (Interruption Attack)
Điển hình cho kiểu tấn công này là tấn công từ chối dịch vụ DoS (Denial of
Service). Đây là hành động mà kẻ tấn công lợi dụng đặc điểm hoặc lỗi an toàn thông
tin của một hệ thống dịch vụ nhằm làm ngưng trệ hoặc ngăn cản người dùng truy
nhập dịch vụ đó.
Cuộc tấn công này không lấy mất thông tin của hệ thống, nó thường chỉ gây
cho chương trình hoặc hệ thống bị đổ vỡ hoặc bị treo, tê liệt từng phần hoặc toàn bộ,
buộc người quản trị dịch vụ đó phải tạm ngừng cung cấp dịch vụ và khởi động lại hệ
thống. Việc ngừng hoạt động trong một thời gian nhất định của các hệ thống dịch vụ
gây ra những thiệt hại đáng kể.
Có hai kiểu tấn công từ chối dịch vụ dựa theo đặc điểm của hệ thống bị tấn
công, thứ nhất là gây quá tải khiến cho hệ thống mất khả năng phục vụ cho người
dùng thực sự, thứ hai là dựa vào lỗi an toàn thông tin của hệ thống để từ đó gây cho
hệ thống bị treo, tê liệt.
Với loại thứ nhất, việc gây quá tải được thực hiện bằng cách gửi rất nhiều yêu
cầu dịch vụ giả. Để giải quyết một yêu cầu dịch vụ, hệ thống phải tốn một lượng tài
nguyên nhất định (CPU, bộ nhớ, đường truyền…). Lượng tài nguyên là giới hạn, khi
nhận được quá nhiều yêu cầu dịch vụ giả, hệ thống sẽ sử dụng toàn bộ tài nguyên để
đáp ứng các yêu cầu đó và không còn tài nguyên để đáp ứng yêu cầu thực sự khác
của người dùng, người dùng sẽ không thể truy nhập được vào hệ thống dịch vụ.
Với loại tấn công từ chối dịch vụ thứ hai, kẻ tấn công lợi dụng kẽ hở an toàn
thông tin của hệ thống, cố ý gửi các yêu cầu hoặc các gói tin không hợp lệ khiến cho
hệ thống bị tấn công khi nhận được yêu cầu hay gói tin này. Việc xử lý không đúng

hoặc không theo trình tự đã được thiết kế, dẫn đến sự sụp đổ cho chính hệ thống đó.
Phần lớn các kẽ hở này xuất phát từ lỗi phần mềm. Khi kẻ tấn công gửi những thứ
không nằm trong các khả năng đã dự tính, thì phần mềm dễ dàng bị lỗi, gây đổ vỡ
hệ thống. Ví dụ điển hình cho lỗi này là kiểu tấn công Ping of Death vào năm 1995,
gây treo hoặc đổ vỡ cho rất nhiều hệ thống. Ngoài ra, một số ít các kẽ hở lại xuất
phát từ chính nguyên lý hoạt động của hệ thống, đặc biệt là nguyên lý của bộ giao
thức mạng TCP/IP. Ví dụ điển hình của kiểu tấn công này là SYN flooding, gây cho
hệ thống dịch vụ mất khả năng tiếp nhận kết nối TCP.
Hiện tại chưa có biện pháp hữu hiệu nào để phòng chống tấn công từ chối dịch
vụ, nhất là kiểu tấn công gây quá tải. Nhà cung cấp dịch vụ chỉ có thể hạn chế chứ
khó có thể giữ cho dịch vụ của mình luôn sẵn sàng trước mọi cuộc tấn công từ chối
dịch vụ.
Biện pháp tốt nhất hiện nay để chống lại các cuộc tấn công từ chối dịch vụ,
nhất là kiểu tấn công dựa vào lỗi an toàn thông tin của hệ thống, là các nhà cung cấp
dịch vụ phải liên tục cập nhật phiên bản sửa lỗi phần mềm mới nhất cho hệ thống
của mình. Đồng thời các nhà cung cấp dịch vụ phải xây dựng và quản trị hệ thống
sao cho chúng ít có khả năng bị lợi dụng để phát động tấn công từ chối dịch vụ.
Tấn công DoS thực hiện đồng thời từ nhiều địa chỉ khác nhau được gọi là tấn
công DDoS (Distributed-DoS).
5
Tấn công ngăn chặn (Interception Attack)
Kiểu tấn công này sử dụng các bộ nghe trộm để bắt giữ password và các thông
tin nhạy cảm khác được truyền qua lại trên mạng. Nhờ nghe trộm password kẻ tấn
công có thể lấy được mật khẩu của người sử dụng, sau đó chúng truy nhập một
cách chính quy vào hệ thống.
Để hạn chế kiểu tấn công này, chúng ta thực hiện phân đoạn hệ thống mạng và
sử dụng các Hub chuyển đổi.
Tấn công làm thay đổi (Modification Attack)
Kiểu tấn công này thực hiện sửa đổi, thay đổi thông tin/chương trình, ví dụ như
sử dụng các đoạn mã nguy hiểm, Virus, Trojan gắn vào email hoặc các Web site,

Biện pháp bảo vệ trong trường hợp tấn công này đó là sử dụng các phần mềm
chống virus, thực hiện lọc tại mail server, kiểm tra tính toàn vẹn dữ liệu.
Tấn công giả mạo (Fabrication Attack)
Tấn công giả mạo IP là kẻ tấn công tự đặt địa chỉ IP của mình trùng với một
địa chỉ nào đó ở mạng bên trong. Khi đó, nó sẽ được đối xử như một máy bên
trong tức là được làm mọi thứ để từ đó tấn công, lấy trộm, phá huỷ thông tin.
1.3 Các phương pháp bảo vệ
Với các kiểu tấn công đa dạng như đã trình bày ở trên, các phương pháp bảo vệ
an ninh mạng cũng không ngừng được tạo ra, sửa đổi và phát triển cho phù hợp
với từng hệ thống. Đó có thể là những phần mềm tích hợp trên hệ thống, những
công cụ phần cứng hoặc kết hợp cả hai (phần cứng lẫn phần mềm), đó cũng có thể
là những chính sách an ninh.
Các phương pháp thông thường hiện nay bao gồm:
• Firewall
• Intrusion Detection System
• Policy
Chúng ta xem xét tổng quan từng phương pháp:
Firewall
Firewall là sản phẩm cung cấp sự an toàn kết nối giữa mạng nội bộ với các
mạng bên ngoài.
Firewall giống như một hàng rào quanh hệ thống mạng, với một cặp các cổng
được lựa chọn. Hàng rào này không có khả năng phát hiện một ai đó đang cố gắng
xâm nhập vào hệ thống (như tìm ra một lỗ hổng ở bên dưới nó), hay phát hiện ai
đó vào qua một cổng được phép. Mà nó chỉ đơn giản hạn chế việc truy cập đến các
điểm được đại diện.
6
Intrusion Detection System (IDS)
IDS (hệ thống phát hiện xâm nhập trái phép) được tạo thành từ các thành phần
phần cứng và phần mềm cùng hoạt động để tìm ra các sự kiện không mong muốn,
từ đó có thể chỉ ra một cuộc tấn công sẽ xảy ra, đang xảy ra hoặc đã xảy ra.

Policy
Đưa ra tính riêng tư, các luật điều khiển, những việc phải làm nếu bị tấn công.
7
CHƯƠNG 2: HỆ THỐNG PHÁT HIỆN XÂM NHẬP TRÁI PHÉP TRÊN
MẠNG (NIDS)
2.1 Xâm nhập (Instrusion)
Trong phần này sẽ trình bày những khái niệm liên quan như xâm nhập
(intrusion), kịch bản xâm nhập (intrusion scenario), sẽ tìm hiểu về bản chất,
nguyên nhân, những dấu hiệu của việc xâm nhập vào hệ thống, trước khi đi sâu
nghiên cứu và triển khai một hệ thống phát hiện xâm nhập.
Một xâm nhập là một vài người (“hacker” hay “cracker”) cố gắng phá vỡ hay
lạm dụng hệ thống. Hacker và cracker là hai từ dùng để chỉ những kẻ xâm nhập.
Kẻ xâm nhập được chia thành hai loại:
• Outsiders: những kẻ xâm nhập từ bên ngoài hệ thống (xóa Web servers,
chuyển tiếp các spam qua e-mail servers). Chúng có thể vượt qua firewall
để tấn công các máy trong nội bộ mạng. Những kẻ xâm nhập có thể đến từ
Internet, qua đường dây điện thoại, đột nhập vật lý hoặc từ các mạng thành
viên được liên kết đến tổ chức mạng (nhà sản xuất, khách hàng,…).
• Insiders: những kẻ xâm nhập mà được sử dụng hợp pháp đến bên trong hệ
thống (những người sử dụng được ủy quyền, hoặc giả mạo người dùng
được ủy quyền ở mức cao hơn… ). Loại xâm nhập này chiếm 80%.
2.1.1 Cách thức xâm nhập vào hệ thống
Các cách thức chính mà những kẻ xâm nhập có thể đi vào hệ thống:
• Physical Intrusion (xâm nhập vật lý): nếu một kẻ xâm nhập truy cập vật lý
vào một máy (chẳng hạn chúng có thể dùng bàn phím,…) chúng sẽ có thể
xâm nhập vào cả hệ thống.
• System Intrusion (xâm nhập hệ thống): đây là một kiểu hacking. Giả sử
rằng kẻ xâm nhập đã có một account người dùng được ủy quyền mức thấp
trong hệ thống. Nếu hệ thống không có các biện pháp an toàn mới nhất, thì
sẽ tạo cơ hội tốt cho kẻ xâm nhập lợi dụng để có được ủy quyền cao hơn

(quyền người quản trị).
• Remote Intrusion (xâm nhập từ xa): đây là kiểu hacking liên quan đến kẻ
xâm nhập cố gắng thâm nhập vào một hệ thống từ xa qua mạng. Kẻ xâm
nhập đầu tiên không có một ủy quyền đặc biệt nào cả. Có một số dạng
hacking này.
Hệ thống NIDS nghiên cứu trong phạm vi đề tài này liên quan chính đến kiểu
xâm nhập từ xa (Remote Intrusion).
8
2.1.2 Những lỗ hổng an ninh có thể xâm nhập
Phần mềm luôn luôn có lỗi (bug). Nhà quản trị hệ thống và người lập trình
không bao giờ có thể xóa vết và khử mọi lỗ hổng có thể. Những kẻ xâm nhập chỉ
cần tìm ra một lỗ hổng và xâm nhập vào hệ thống.
Chi tiết về các lỗi hệ thống mà những kẻ xâm nhập có thể lợi dụng để thực hiện
các mục đích của chúng như sau:
Các lỗi phần mềm (Software bugs):
Các lỗi phần mềm được khai thác trong các trình tiện ích trên server, trong các
ứng dụng tại client, trong hệ điều hành và các ngăn xếp mạng. Các lỗi phần mềm
có thể được chia thành các loại sau :
• Buffer overflows (tràn bộ nhớ) : hầu hết các lỗ hổng an ninh được biết
đến đều do lỗi này. Ví dụ điển hình, một lập trình viên thiết lập 256 kí tự để
lưu trữ một username đăng nhập. Người lập trình viên nghĩ rằng không ai
có thể có tên dài hơn thế, nhưng một hacker thì sẽ nghĩ rằng điều gì xảy ra
nếu mình gõ vào một username vượt quá số kí tự đó, những kí tự thừa ra sẽ
đi đâu. Nếu hacker thử luôn, họ nhập vào 300 kí tự bao gồm cả code mà sẽ
được thực hiện bởi server và như vậy là họ đã xâm nhập được vào hệ thống.
Các hacker sẽ phát hiện những lỗi này theo một số cách. Một là source code
cho rất nhiều các dịch vụ trên mạng. Hacker sẽ xem các code này để tìm ra
các đoạn chương trình có lỗi tràn bộ nhớ. Hai là, hacker có thể nhìn vào
chương trình để xem có lỗi đó tồn tại hay không, tuy vậy việc đọc mã
assembly ở đầu ra là rất khó. Ba là hacker sẽ kiểm tra mọi nơi chương trình

có đầu vào và cố gắng làm tràn nó với một dữ liệu ngẫu nhiên. Nếu chương
trình bị lỗi thì đây là một cơ hội tốt để hacker thâm nhập vào. Lưu ý là vấn
đề này phổ biến đối với những chương trình viết bằng C/C++, nhưng hiếm
trong những chương trình viết bằng JAVA.
• Unexpected combinations (các kết hợp không được mong đợi) : các
chương trình thường được xây dựng sử dụng nhiều lớp code bao gồm lớp
dưới hệ điều hành như là lớp dưới cùng của các lớp. Kẻ xâm nhập có thể
thường xuyên gửi đầu vào vô nghĩa đối với một lớp nhưng có ý nghĩa đối
với nhiều lớp khác. Ngôn ngữ thông dụng nhất để xử lý đầu vào người
dùng là PERL. Các chương trình viết bằng PERL sẽ thường xuyên gửi các
đầu vào này đến các chương trình khác để ước lượng. Một kỹ thuật hacker
phổ biến có thể đi vào như "| mail < /etc/passwd". Điều này được thực
hiện bởi vì PERL yêu cầu hệ điều hành khởi động một chương trình thêm
vào với đầu ra đó. Tuy nhiên, hệ điều hành chặn kí tự đường ống “|”, và
khởi động chương trình mail, điều này có thể dẫn đến việc file password
được gửi cho kẻ xâm nhập.
• Unhandled input (đầu vào không được xử lý): hầu hết các chương trình
được viết để xử lý đầu vào hợp lệ. Đa số lập trình viên không xem xét đến
9
trường hợp là điều gì sẽ xảy ra khi đầu vào được nhập không đúng theo đặc
tả.
• Race condition : hầu hết các hệ thống ngày nay là đa nhiệm/đa luồng
(multitasking/ multỉTheaded). điều này có nghĩa là chúng có thể thực hiện
hơn một chương trình tại một thời điểm. Sẽ là nguy hiểm nếu hai chương
trình cùng phải truy cập đến một cơ sở dữ liệu tại cùng một thời điểm. Giả
sử hai chương trình A và B cùng muốn sửa đổi cùng một file. Muốn sửa đổi
một file, chương trình trước tiên phải đọc file vào bộ nhớ, thay đổi nội dung
trong bộ nhớ sau đó copy từ bộ nhớ ngược trở lại file. Race condition xảy
ra khi chương trình A đọc file vào bộ nhớ sau đó thay đổi, và trước khi A
thực hiện ghi lên file, chương trình B can thiệp vào và thực hiện đầy đủ

đọc/ sửa đổi/ ghi lên file. Bây giờ chương trình A ghi bản copy của nó
ngược trở ra file. Vì chương trình A bắt đầu với bản copy trước khi B tiến
hành thay đổi nó nên mọi thay đổi của B lên file sẽ bị mất. Vì bạn cần phải
thực hiện một chuỗi các sự kiện theo đúng một trật tự nào đó nên race
condition là hiếm. Những kẻ xâm nhập thường xuyên phải cố gắng hàng
ngàn lần trước khi thành công và hack vào hệ thống.
Lỗi cấu hình hệ thống (System configuration bugs):
Lỗi cấu hình hệ thống có thể chia thành các loại sau :
• Default configurations : đa số các hệ thống được gửi tới các khách hàng ở
chế độ mặc định (cấu hình dễ sử dụng_easy to use). Thật không may mắn,
easy-to-use cũng đồng nghĩa với easy-to-break-in. Hầu hết các máy UNIX
hoặc WINNT được chuyển cho ban đều có thể bị hack dễ dàng.
• Lazy administrators: Một số lượng đáng ngạc nhiên các máy được cấu
hình với password root/administrator rỗng. Đó là vì người quản trị quá lazy
để cấu hình nó và muốn bật máy, chạy máy thật nhanh với việc làm phiền ít
nhất. Không may là họ không bao giờ quay lại và điền password sau đó,
nên kẻ xâm nhập sẽ dễ dàng truy cập vào hệ thống. Một điều đầu tiên mà kẻ
xâm nhập sẽ làm trên một mạng là dò tìm tất cả các máy có password rỗng.
• Hole creation (việc tạo lỗ hổng) : hầu hết các chương trình có thể được
định cấu hình để chạy trong chế độ không an toàn. Đôi khi một số nhà quản
trị vô tình mở một lỗ hổng. Hầu hết các hướng dẫn về việc quản trị gợi ý
rằng các nhà quản trị nên tắt mọi thứ mà hoàn toàn không cần thiết chạy
trên máy để tránh các lỗ hổng bất ngờ.
• Trust relationships : kẻ xâm nhập thường lợi dụng các quan hệ tin cậy
trên mạng. Một hệ thống mạng bao gồm các máy tin cậy lẫn nhau sẽ chỉ an
toàn khi nó có kết nối yếu.
10
Phá password (Password cracking):
• Really weak passwords: hầu hết mọi người dùng tên của họ, tên của bọn
trẻ, con vật, hoặc nhãn hiệu xe làm password. Còn có những người không

dùng password. Điều này dẫn đến một danh sách nhỏ hơn 30 khả năng cho
kẻ xâm nhập có thể tự mình nhập đúng thông tin.
• Dictionary attacks (tấn công từ điển): không áp dụng được các biện pháp
tấn công ở trên, kẻ xâm nhập có thể thực hiện bước tiếp theo là cố gắng
“dictionary attack”. Trong kiểu tấn công này, kẻ xâm nhập sẽ dùng một
chương trình để thử mọi từ có khả năng trong từ điển. Bằng cách lặp đi lặp
lại việc log in vào hệ thống bằng tập hợp các password được mã hoá và cố
gắng tìm ra. Những kẻ tấn công sẽ có một bản copy các từ điển tiếng Anh
như là cơ sở dữ liệu (bao gồm tên và danh sách các password thông dụng).
• Brute force attacks : giống như dictionary attack, kẻ xâm nhập cố gắng
thử tất cả các khả năng có thể gồm tập hợp các kí tự. Một password ngắn 4
kí tự gồm các chữ thường thì có thể dễ dàng bị phá chỉ trong vài phút.
Password dài 7 kí tự, bao gồm cả chữ hoa chữ thường thì phải mất hàng
tháng để phá.
Những kẻ xâm nhập có thể lấy password theo các cách sau đây :
• Nghe trộm văn bản rõ (clear-text sniffing): một số giao thức (Telnet, FTP,
HTTP) sử dụng password clear-text, có nghĩa là chúng không được mã hoá
khi truyền trên đường dây giữa client và server. Một kẻ xâm nhập với một
bộ phân tích giao thức sẽ giám sát đường dây và tìm kiếm những password
như vậy. Không cần nhiều nỗ lực, kẻ xâm nhập đã có thể ngay lập tức sử
dụng các password đó để log in vào hệ thống.
• Nghe trộm password được mã hoá: hầu hết các giao thức sử dụng một số
loại mã hoá trên password, trong trường hợp này, kẻ xâm nhập sẽ phải sử
dụng phép tấn công từ điển (dictionary) trên password để giải mã. Chú ý
rằng bạn vẫn không được biết về sự hiện diện của kẻ xâm nhập vì chúng
hoàn toàn chủ động và không truyền bất cứ tín hiệu nào trên đường dây.
Việc phá password không đòi hỏi tín hiệu nào được gửi trên đường dây khi
máy của kẻ xâm nhập đang được dùng để xác thực password của bạn.
• Tấn công nghe lại (Replay attack): trong một số trường hợp, những kẻ
tấn công không cần thiết phải giải mã password, chúng có thể dùng dạng

mã hóa để tấn công vào hệ thống. Điều này đòi hỏi chúng phải lập trình lại
các phần mềm client để cho phép dùng password được mã hoá.
• Lấy trộm file password: toàn bộ cơ sở dữ liệu người dùng được lưu trữ ở
một file trên đĩa. Một khi kẻ xâm nhập đã lấy được file này, chúng có thể
chạy những chương trình crack để tìm ra những password yếu trong file.
• Quan sát (Observation): một trong những vấn đề truyền thống trong an
toàn password là password cần phải dài và khó phát hiện (sao cho biện
11
pháp tấn công sử dụng từ điển là khó có thể thực hiện). Tuy nhiên, những
password như vậy rất khó nhớ và người dùng có thể viết chúng ra đâu đó.
Những kẻ xâm nhập thường xuyên tìm kiếm trang làm việc của người dùng
để tìm password hoặc đứng sau người dùng để xem họ gõ password.
• Social Engineering: một kỹ thuật phổ biến là gọi đến người dùng và nói
rằng “Xin chào, tôi là Bob tại MIS. Chúng tôi đang cố gắng theo dõi một
số vấn đề trên mạng và chúng xuất hiện tại máy của bạn. Password mà bạn
sử dụng là gì ?”. Nhiều user sẽ đưa password trong tình huống này.
Nghe trộm giao thông mạng (Sniffing unsecured traffic):
• Shared medium (phương tiện chia sẻ): với mạng Ethernet truyền thống, tất
cả bạn phải làm là đặt một sniffer lên đường dây để xem xét tất cả giao
thông mạng trên một đoạn. Bây giờ, điều này trở nên khó khăn hơn vì tất cả
các tổ chức đang chuyển sang mạng Ethernet chuyển mạch.
• Server sniffing (nghe trộm trên server): tuy nhiên, trên một mạng chuyển
mạch, nếu bạn có thể cài đặt một chương trình sniffing trên một server (đặc
biệt nó hoạt động như một router), thì bạn có thể dùng các thông tin đó để
đột nhập vào các máy client. Ví dụ, bạn không biết password của một user
nhưng sniffing một phiên Telnet khi họ log in vào sẽ cho bạn password.
• Remote sniffing (nghe trộm từ xa): một lượng lớn các box đến cùng với
RMON và các xâu thực thể. Trong khi băng thông rất thấp (bạn không thể
sniff trên tất cả các giao thông mạng).
Lỗi thiết kế (Design flaws):

Thậm chí nếu việc thực hiện một phần mềm hoàn toàn đúng theo thiết kế, vẫn
có các lỗi trong bản thân thiết kế cho phép kẻ xâm nhập có thể lợi dụng.
• TCP/IP Protocol flaws : giao thức TCP/IP được thiết kế trước khi chúng
ta có nhiều kinh nghiệm về hacking phạm vi rộng mà chúng ta gặp phải
ngày nay, kết quả là một số lỗi thiết kế sẽ dẫn đến vấn đề không an toàn.
2.1.3 Những dấu hiệu xâm nhập thông thường
Có 3 cách thức chính để thực hiện hành vi xâm nhập:
• Do thám (Reconnaissance): bao gồm việc quét các địa chỉ, DNS, quét các
cổng TCP, UDP,…và các Web server để tìm ra các lỗ hổng CGI.
• Lợi dụng (Exploits): lợi dụng các đặc tính ẩn hoặc lỗi để truy cập vào hệ
thống.
• Từ chối dịch vụ (Denial of Service-DoS): kẻ xâm nhập sẽ cố gắng phá vỡ
một dịch vụ, quá tải kết nối mạng, quá tải CPU, hoặc làm đầy đĩa. Chúng sẽ
12
không lấy các thông tin mà chỉ đơn giản đóng vai trò như một kẻ phá hoại
để ngăn cản bạn sử dụng trên máy của bạn.
Exploits:
 CGI Scripts
 Web server attacks
 Web browser attacks
 SMTP (SendMail) attacks
 Access
 IMAP
 IP Spoofing (giả mạo IP)
 Buffer Overflows (tràn bộ nhớ)
 DNS attacks
Reconnaissance:
 Ping sweeps
 TCP scans
 UDP scans

 OS identification
 Account scans
DoS attacks:
 Ping-of-Death
 SYN Flood
 Land/Latierra
 WinNuke
2.1.4 Một kịch bản xâm nhập điển hình
Chúng ta sử dụng thuật ngữ kịch bản xâm nhập (intrusion scenario) như là sự
mô tả một kiểu xâm nhập đã được biết đến một cách chính xác, rõ ràng. Nó được
định nghĩa là một chuỗi các hành động, mà khi thực hiện thì kết quả là một xâm
nhập trừ khi có sự can thiệp ngăn cản quá trình hoàn thành chuỗi hành động đó.
Mô hình hay sự miêu tả của kịch bản xâm nhập sẽ quyết định khả năng kiểm
soát hệ thống. Một kịch bản điển hình có thể là :
Bước 1 : do thám bên ngoài (outside reconnaissance).
Bước 2 : do thám bên trong (inside reconnaissance).
Bước 3 : khai thác các lỗ hổng (exploit).
Bước 4 : theo dấu vết (foot hold).
Bước 5 : lợi dụng các sơ hở (profit).
13
2.2 Hệ thống phát hiện xâm nhập (IDS)
2.2.1 Định nghĩa, chức năng, nguyên lý làm việc
Định nghĩa: Hệ thống phát hiện xâm nhập là hệ thống có nhiệm vụ theo dõi,
ghi lại, và (có thể) ngăn cản sự xâm nhập cũng như các hành vi khai thác trái phép
tài nguyên của hệ thống được bảo vệ. Có thể dẫn đến làm tổn hại đến tính mật,
tính toàn vẹn và tính sẵn sàng của hệ thống.
Chức năng của hệ thống: là bảo vệ tính mật, tính toàn vẹn, và tính sẵn sàng của
thông tin. Hệ thống IDS sẽ thu thập thông tin từ rất nhiều nguồn trong hệ thống
được bảo vệ sau đó tiến hành phân tích những thông tin đó theo các cách khác
nhau để phát hiện những xâm nhập trái phép.

Có hai cách tiếp cận cơ bản đối với quá trình phát hiện xâm nhập, đó là phát
hiện sự không bình thường (anomaly detection) và phát hiện sự lạm dụng (misuse
detection). Hai cách thức phát hiện này cũng chính là những nguyên lý làm việc
của các hệ thống IDS từ trước đến nay, do đó đi sâu tìm hiểu hai cách thức đó
đồng nghĩa với việc tìm hiểu về cơ chế hoạt động của các hệ thống IDS.
Nguyên lý làm việc
• Phát hiện sự không bình thường (anomaly detetion):
Dựa trên việc định nghĩa và mô tả đặc điểm các dạng thức (form) cố định
mong muốn và/hoặc với các hành vi (behavior) động có thể chấp nhận của hệ
thống. Sau đó, phân biệt chúng với các hành vi không mong muốn hoặc bất
thường để tìm ra các thay đổi hay các hành vi bất hợp pháp.
Như vậy, bộ phát hiện sự không bình thường phải có khả năng phân biệt giữa
những hiện tượng thông thường và hiện tượng bất thường.
Ranh giới giữa dạng thức chấp nhận được và dạng thức bất thường của đoạn
mã và dữ liệu lưu trữ được định nghĩa rõ ràng (chỉ cần một bit khác nhau), còn
ranh giới giữa hành vi hợp lệ và hành vi bất thường thì khó xác định hơn.
Phát hiện sự không bình thường được chia thành hai loại tĩnh và động.
o Phát hiện tĩnh:
Dựa trên giả thiết ban đầu là phần hệ thống được kiểm soát phải luôn luôn
không đổi. Ở đây, chúng ta chỉ quan tâm đến phần mềm của vùng hệ thống đó (với
giả sử là phần cứng không cần phải kiểm tra). Phần tĩnh của một hệ thống bao
gồm 2 phần con: mã hệ thống và dữ liệu của phần hệ thống đó. Có thể được biểu
diễn dưới dạng một xâu bit nhị phân hoặc một tập các xâu (các file). Nếu biểu diễn
này có sự sai khác so với dạng thức gốc thì hoặc có lỗi xảy ra hoặc một kẻ xâm
nhập nào đó đã thay đổi nó. Lúc này, bộ phát hiện tĩnh sẽ được thông báo để kiểm
tra tính toàn vẹn dữ liệu.
Cụ thể là: bộ phát hiện tĩnh đưa ra một hoặc một vài xâu bit cố định để định
nghĩa trạng thái mong muốn của hệ thống. Chúng thu được một biểu diễn về trạng
14
thái đó, có thể ở dạng nén. Sau đó, nó so sánh biểu diễn trạng thái thu được với

biểu diễn tương tự được tính toán dựa trên trạng thái hiện tại của cùng xâu bit cố
định. Bất kỳ sự khác nhau nào đều là thể hiện lỗi như hỏng phần cứng hoặc có
xâm nhập.
Biểu diễn trạng thái tĩnh có thể là các xâu bit thực tế được chọn để định nghĩa
cho trạng thái hệ thống, tuy nhiên điều đó khá tốn kém về lưu trữ cũng như về các
phép toán so sánh. Do vấn đề cần quan tâm là việc tìm ra được sự sai khác để cảnh
báo xâm nhập chứ không phải là chỉ ra sai khác ở đâu nên chúng ta có thể sử dụng
dạng biểu diễn được nén để giảm chi phí, gọi là dấu hiệu (signature). Nó là giá trị
tóm tắt tính được từ một xâu bit cơ sở. Phép tính toán này phải đảm bảo sao cho
giá trị tính được từ các xâu bit cơ sở khác nhau là khác nhau. Có thể sử dụng các
thuật toán checksums, message-digest (phân loại thông điệp), các hàm băm.
Một số bộ phát hiện xâm nhập kết hợp chặt chẽ với meta-data (dữ liệu mô tả
các đối tượng dữ liệu) hoặc thông tin về cấu trúc của đối tượng được kiểm tra. Ví
dụ, meta-data cho một log file bao gồm kích cỡ của nó. Nếu kích cỡ của log file
tăng thì có thể là một dấu hiệu xâm nhập.
o Phát hiện động:
Trước hết ta đưa ra khái niệm hành vi của hệ thống (behavior). Hành vi của hệ
thống được định nghĩa là một chuỗi các sự kiện phân biệt, ví dụ như rất nhiều hệ
thống phát hiện xâm nhập sử dụng các bản ghi kiểm tra (audit record), sinh ra bởi
hệ điều hành để định nghĩa các sự kiện liên quan, trong trường hợp này chỉ những
hành vi mà kết quả của nó là việc tạo ra các bản ghi kiểm tra của hệ điều hành mới
được xem xét.
Các sự kiện có thể xảy ra theo trật tự nghiêm ngặt hoặc không và thông tin phải
được tích luỹ. Các ngưỡng được định nghĩa để phân biệt ranh giới giữa việc sử
dụng tài nguyên hợp lý hay bất thường.
Nếu không chắc chắn hành vi là bất thường hay không, hệ thống có thể dựa
vào các tham số được thiết lập trong suốt quá trình khởi tạo liên quan đến hành vi.
Ranh giới trong trường hợp này là không rõ ràng do đó có thể dẫn đến những cảnh
báo sai.
Cách thức thông thường nhất để xác định ranh giới là sử dụng các phân loại

thống kê và các độ lệch chuẩn. Khi một phân loại được thiết lập, ranh giới có thể
được vạch ra nhờ sử dụng một số độ lệch chuẩn. Nếu hành vi nằm bên ngoài thì sẽ
cảnh báo là có xâm nhập.
Cụ thể là: các hệ thống phát hiện động thường tạo ra một profile cơ sở để mô
tả đặc điểm các hành vi bình thường, chấp nhận được. Một profile bao gồm tập
các đo lường được xem xét về hành vi, mỗi đại lượng đo lường gồm nhiều chiều:
+ Liên quan đến các lựa chọn: thời gian đăng nhập, vị trí đăng nhập,…
+ Các tài nguyên được sử dụng trong cả quá trình hoặc trên một đơn vị thời
gian: chiều dài phiên giao dịch, số các thông điệp gửi ra mạng trong một đơn vị
thời gian,…
+ Chuỗi biểu diễn các hành động
15
Sau khi khởi tạo profile cơ sở, quá trình phát hiện xâm nhập có thể được bắt
đầu. Phát hiện động lúc này cũng giống như phát hiện tĩnh ở đó chúng kiểm soát
hành vi bằng cách so sánh mô tả đặc điểm hiện tại về hành vi với mô tả ban đầu
của hành vi được mong đợi (chính là profile cơ sở), để tìm ra sự khác nhau. Khi hệ
thống phát hiện xâm nhập thực hiện, nó xem xét các sự kiện liên quan đến thực thể
hoặc các hành động là thuộc tính của thực thể. Chúng xây dựng thêm một profile
hiện tại.
Với các hệ thống phát hiện xâm nhập thế hệ trước thì phụ thuộc vào các bản
ghi kiểm tra (audit record) để bắt giữ các sự kiện hoặc các hành động liên quan.
Đến các hệ thống sau này thì ghi lại một cơ sở dữ liệu đặc tả cho phát hiện xâm
nhập. Một số hệ thống hoạt động với thời gian thực, hoặc gần thời gian thực, quan
sát trực tiếp sự kiện trong khi chúng xảy ra hơn là đợi hệ điều hành tạo ra bản ghi
mô tả sự kiện.
Khó khăn chính đối với các hệ thống phát hiện động là chúng phải xây dựng
các profile cơ sở một cách chính xác, và sau đó nhận dạng hành vi sai trái nhờ các
profile.
Các profile cơ sở có thể xây dựng nhờ việc giả chạy hệ thống hoặc quan sát
hành vi người dùng thông thường qua một thời gian dài.

• Phát hiện sự lạm dụng (misuse detection):
Trong các hệ thống, những người dùng dần dần thay đổi hành động của họ vì
vậy các profile chứa hành vi lạm dụng gần như không thể phát hiện đối với những
bộ phát hiện sự không bình thường ở trên do đó kỹ thuật phát hiện sự lạm dụng ra
đời.
Phát hiện sự lạm dụng là phát hiện những kẻ xâm nhập đang cố gắng đột nhập
vào hệ thống sử dụng một số kỹ thuật đã biết. Nó liên quan đến việc mô tả đặc
điểm các cách thức xâm nhập vào hệ thống đã được biết đến, mỗi cách thức này
được mô tả như một mẫu. Hệ thống phát hiện sự lạm dụng chỉ thực hiện kiểm soát
đối với các mẫu đã rõ ràng. Mẫu có thể là một xâu bit cố định (ví dụ như một virus
đặc tả việc chèn xâu),…dùng để mô tả một tập hay một chuỗi các hành động đáng
nghi ngờ.
Ở đây, chúng ta sử dụng thuật ngữ kịch bản xâm nhập (intrusion scenario).
Một hệ thống phát hiện sự lạm dụng điển hình sẽ liên tục so sánh hành động của
hệ thống hiện tại với một tập các kịch bản xâm nhập để cố gắng dò ra kịch bản
đang được tiến hành. Hệ thống này có thể xem xét hành động hiện tại của hệ thống
được bảo vệ trong thời gian thực hoặc có thể là các bản ghi kiểm tra được ghi lại
bởi hệ điều hành.
Các kỹ thuật để phát hiện sự lạm dụng khác nhau ở cách thức mà chúng mô tả
(mô hình) hành vi chỉ định một sự xâm nhập. Các hệ thống phát hiện sự lạm dụng
thế hệ đầu tiên sử dụng các luật (rules) để mô tả những gì mà các nhà quản trị an
ninh tìm kiếm trong hệ thống. Một lượng lớn tập luật được tích luỹ dẫn đến khó có
thể hiểu và sửa đổi bởi vì chúng không được tạo thành từng nhóm một cách hợp lý
trong một kịch bản xâm nhập.
16
Để giải quyết khó khăn này, các hệ thống thế hệ thứ hai đưa ra các biểu diễn
kịch bản xen kẽ, bao gồm các tổ chức luật dựa trên mô hình và các biểu diễn về
phép biến đổi trạng thái. Điều này sẽ mang tính hiệu quả hơn đối với người dùng
hệ thống cần đến sự biểu diễn và hiểu rõ ràng về các kịch bản. Hệ thống phải
thường xuyên duy trì và cập nhật để đương đầu với những kịch bản xâm nhập mới

được phát hiện.
Do các kịch bản xâm nhập có thể được đặc tả một cách chính xác, các hệ thống
phát hiện sự lạm dụng có thể dựa theo đó để theo vết hành động xâm nhập. Trong
một chuỗi hành động, hệ thống phát hiện có thể đoán trước được bước tiếp theo
của hành động xâm nhập. Bộ dò tìm phân tích thông tin hệ thống để kiểm tra bước
tiếp theo, có thể can thiệp để làm giảm bởi tác hại có thể.
2.2.2 Vị trí
Như ta đã biết IDS (Intrusion Detection System) là một hệ thống để phát hiện
các xâm nhập. Chúng có thể được đặt trên hệ thống mạng tại các vị trí như trên
hình vẽ:
IDS #1 :
Một vài IDS làm việc tại vị trí này. Khi đó, firewall sẽ không cung cấp đủ
thông tin cho các phát hiện xâm nhập một cách hiệu quả.
IDS #2 :
Việc sắp xếp này của IDS sẽ phát hiện thành công các xâm nhập mà đi qua
được firewall.
IDS #3 :
Phát hiện các xâm nhập cố gắng đi qua firewall.
IDS #4 :
Bằng cách đưa hệ thống IDS qua mạng của tổ chức, các tấn công bên trong hệ
thống sẽ được phát hiện.
2.2.3 Phân loại
Mục đích của một hệ thống IDS là cung cấp dấu hiệu của một cuộc tấn công
tiềm tàng hoặc một cuộc tấn công thực sự. Một cuộc tấn công hay xâm nhập là
một sự kiện nhất thời trong khi các điểm dễ bị xâm phạm trên hệ thống là cố định
17
(mang n tim nng cho cỏc cuc tn cụng, xõm nhp). S khỏc nhau gia mt
cuc tn cụng v mt im d b xõm phm l cuc tn cụng thỡ ch tn ti ti mt
thi im c bit trong khi im d b xõm phm tn ti khụng ph thuc vo
thi im quan sỏt. Hay núi mt cỏch khỏc, mt cuc tn cụng thỡ c gng khai

thỏc im d b xõm phm. Chớnh vỡ l ú, chỳng ta cn tin hnh phõn loi cỏc h
thng phỏt hin xõm nhp.
Hỡnh 1 biu din s khỏc nhau gia cỏc mỏy quột im d b xõm phm v cỏc
h thng dũ tỡm s xõm phm. Quột tỡm im d b xõm phm khụng nguy cp
bng vic phỏt hin xõm nhp. Tip ú vic trin khai mi cụng ngh cú th thay
i bờn trong cỏc t chc. Hỡnh 2 ỏnh x cỏc loi IDS lờn khung cnh ca hỡnh 1.
Cú 5 loi IDS khỏc nhau c cp trong ti liu ny. Khụng phi tt c cỏc
loi ny u i din cho dũ tỡm kinh in nhng chỳng úng mt vai trũ quan
trng trong mc ớch tng th l dũ tỡm v ngn chn s xõm nhp trờn mt mng
ton th:
H thng phỏt hin xõm nhp da trờn mng (Network Based Intrusion
Detection System-NIDS).
H thng phỏt hin xõm nhp da trờn host (Host Based Intrusion
Detection System-HIDS).
Kim tra tớnh ton vn ca file (File Integrity Checker).
Quột tỡm im d b xõm phm ca mng (Network Vulnerability
Scanner).
Quột tỡm im d b xõm phm trờn host (Host Vulnerability Scanner).
Systems
Networks
Vulnerability
Assessment
(Scheduled)
Intrusion
Detection
(real-time)
xác định chính sách
bằng cách tìm ra các
lỗ hổng trong HT, phá
password,

canh gác trên mỗi hệ
thống, giám sát các
file chủ chốt, đột
nhập, backdoor, theo
thời gian thực
quét các hệ thống
mạng để tìm ra những
lỗ hổng và những
điểm dễ bị xâm phạm
trên các that bị
canh gác trên các hệ
thống mạng, tìm kiếm
các dạng tấn công đã
biết trong các luồng
dữ liệu, theo thời gian
thực
hỡnh 1: Technology Landscape
Hỡnh 1 trờn õy ch ra rng cỏc sn phm IDS cú th c phõn loi theo dng
phũng nga hay dng i phú (phn ng li sau khi ó b xõm nhp). Chỳng cng
18
có thể được phân loại theo tầm quan trọng trong việc quét tìm trên mạng và hệ
thống.
Các công cụ IDS được đề cập trong phần này thuộc một trong hai loại sau: các
hệ thống phát hiện xâm nhập và các máy quét tìm điểm dễ bị xâm phạm. Xa hơn
nữa ta chia chúng thành các hệ thống dựa trên mạng và trên host. Như được chỉ ra
trên hình 2 các máy quét điểm dễ bị xâm phạm có thể chạy tại bất kỳ thời điểm
nào vì chúng ta cho rằng một điểm dễ bị xâm phạm luôn tồn tại cho tới khi nó
được sửa chữa. Mặt khác một sự xâm phạm khai thác một điểm dễ bị xâm phạm
và cần phải được dò tìm càng sớm càng tốt sau khi nó được bắt đầu. Ví lý do này
các công cụ dò tìm xâm nhập cần được chạy một cách thường xuyên hơn một máy

quét điểm dễ bị xâm phạm. Đó là lý do tại sao hầu hết các nhà cung cầp sản phẩm
IDS cố gắng làm cho các công cụ của họ có khả năng hoạt động trong thời gian
thực.
Hình 2: Technology Landscape
Chi tiết các hệ thống dò tìm sự xâm phạm
Một hệ thống phát hiện xâm nhập kiểm tra hoạt động của mạng hoặc của hệ
thống để tìm ra các cuộc tấn công hay xâm nhập có thể xảy ra. Các hệ thống dò
tìm xâm nhập có thể là network-based hay host-based. Các nhà cung cấp mới chỉ
bắt đầu việc tích hợp hai công nghệ này.
Hệ thống dò tìm xâm phạm dựa trên mạng khá thông dụng hơn, nó thực hiện
kiểm tra thông qua giao thông mạng để tìm ra dấu hiệu xâm nhập. Các hệ thống
host-based xem xét các user và quả trình hoạt động ngay trên máy cục bộ để xác
định dấu hiệu xâm nhập. Mỗi một loại đều có một điểm mạnh riêng của mình.
Chúng ta sẽ xem xét tất cả loại đó.
19
Các hệ thống IDS thường sử dụng 3 loại công cụ phân tích có giá trị, đó là:
• Phân tích dựa trên dấu hiệu hoặc sự kiện.
• Phân tích thống kê
• Các hệ thống có khả năng tương thích
Dựa trên dấu hiệu hoặc sự kiện, chức năng các hệ thống phải giống như một
phần mềm phòng chống virus mà hầu hết mọi người đều rất quen thuộc. Những
nhà cung cấp đưa ra một danh sách các mẫu mà nó cho rằng đáng nghi hay có dấu
hiệu của một cuộc tấn công; IDS chỉ đơn thuần quét trong môi trường để tìm ra
một dấu hiệu cho các mẫu đã được biết đến. Sau đó IDS sẽ trả lời bằng cách thực
hiện một thao tác xác định người dùng, gửi một cảnh báo hoặc thực hiện logging
phụ. Đây là loại hình thông dụng nhất của hệ thống phát hiện xâm nhập.
Một hệ thống phân tích thống kê xây dựng các mô hình thống kê của môi
trường như là độ dài trung bình của một phiên telnet sau đó tìm kiếm sự chênh
lệch với các giá trị thông thường.
Các hệ thống có khả năng tương thích khởi đầu với các quy tắc được tổng quát

hoá cho môi trường, sau đó học hoặc làm thích nghi, các điều kiện cục bộ mà về
phương diện khác có thể không thông dụng. Sau khi bắt đầu quá trình học hệ
thống hiểu được cách mà mọi người tương tác với môi trường sau đó cảnh báo cho
người điề hành về các hoạt động bất thường.
Tuy nhiên bạn vẫn cần phải chú ý rằng IDS sẽ không có cả các hành động
nghi ngờ và các dấu hiệu cảnh báo khi không có điều gì sai xảy ra. Đó là lý do vì
sao các tổ chức vẫn luôn có một qui trình của con người tương tác với IDS để ước
lượng môi trường điều hành.
Sau đây sẽ xem xét tổng quan, ưu điểm, nhược điểm các loại IDS đã kể ra ở
trên:
Network-based IDS (NIDS)
NIDS thường có hai thành phần logic là bộ cảm biến và trạm quản lý. Bộ cảm
bến đặt tại một đoạn mạng, kiểm soát các cuộc giao vận nghi ngờ trên đoạn mạng
đó. Trạm quản lý nhận các tín hiệu cảnh báo từ bộ cảm biến và trình bày nó cho
một điều hành viên.
Bộ cảm biến thường được dành cho các hệ thống chỉ tồn tại để giảm sát hoạt
động của mạng. Một số sự hiển thị thường là một giao diện tới một công cụ quản
trị mạng ví dụ như HP Overview, tuy nhiên một số trường hợp đó lại là một hướng
dẫn được thiết kế để giúp người điều hành phân tích vấn đề.
20
Hình 3: Sơ đồ miêu tả sự bố trí của một network based IDS truyền thống với
hai bộ cảm biến trên các đoạn mạng khác nhau cùng giao tiếp với một trạm kiểm
soát trong một mạng internal.
Ưu điểm
Các hệ thống phát hiện xâm nhập có thể dò được một số loại tấn công sử dụng
mạng. Chúng rất tốt trong việc dò các truy cập trái phép hoặc một số loại truy cập
vượt quá sự cho phép.
Một hệ thống network-based IDS không yêu cầu thay đổi các server hoặc host
đưa ra. Đây chính là một điểm thuận lợi vì các server đưa ra thông thường có các
dung sai hoạt động đóng đối với CPU, các thiết bị vào ra và dung lượng đĩa; cài

đặt các phần mềm phụ có thể gây vượt quá dung lượng của hệ thống.
IDS không khó thực hiện đối với bất cứ một dịch vụ hay một tiến trình nào
được đưa ra vì một network-based IDS không hoạt động như một router hay các
thiết bị khó tính khác. Lỗi hệ thống không có một ảnh hưởng đáng kể nào đối với
công việc. Một khía cạnh của lợi ích đó là bạn có thể gặp ít sự chống cự hơn từ các
người khác trong tổ chức. Sự rủi ro trong việc tồn tại các chu trình nguy cấp với
một hệ thống mạng thấp hơn với một hệ thống host.
Các hệ thống network-based IDS hướng về tính độc lập nhiều hơn các hệ thống
host-based. Chúng chạy trên một hê thống chuyên dụng dễ dàng cài đặt; đơn thuần
chỉ mở thiết bị ra, thực hiện một vài sự thay đổi cấu hình và cắm chúng vào trong
mạng của bạn tại một vị trí cho phép nó kiểm soát các cuộc giao vận nhạy cảm.
21
Nhược điểm
Một hệ thống network-based IDS mặt khác cũng có những hạn chế của nó. Nó
chỉ kiểm tra mạng trên đoạn mà nó trực tiếp kết nối tới, nó không thể phát hiện
một cuộc tấn công xảy ra trên các đoạn mạng khác. Vấn đề này dẫn tới yêu cầu tổ
chức cần phải mua một lượng các ssensor để có thể bao phủ hết toàn mạng, và đây
là một nhược điểm lớn về chi phí và mỗi sensor đều rất đắt.
Các hệ thống phát hiện xâm nhập mạng hướng tới sử dụng phân tích tín hiệu
để đáp ứng các yêu cầu hiệu năng. Nó sẽ dò các cuộc tấn công các chương trình
thông dụng từ các nguồn bên ngoài, nhưng nó không đầy đủ để dò các luồn thông
tin phức tạp hơn. Nó yêu cầu khả năng mạnh hơn để kiểm tra môi trường.
Một hệ thống phát hiện xâm nhập có thể cần truyền một dung lượng dữ liệu
lớn hơn trở về hệ thống phân tích trung tâm. Thỉnh thoảng điều đó có nghĩa là một
gói được kiểm soát sẽ sinh ra một lượng lớn hơn tải phân tích. Rất nhiều các hệ
thống như vậy sử dụng các tiến trình giảm dữ liệu linh hoạt để giảm bớt số lượng
các giao vận được truyền tải. Họ cũng thường thêm các chu trình tự ra các quyết
định vào các bộ cảm biến và sử dụng các trạm trung tâm như một thiết bị hiển thị
trạng thái hoặc trung tâm truyền thông hơn là thực hiện các phân tích thực tế.
Điểm bất lợi lànó sẽ cung cấp rất ít các điều phối viên giữa các bộ cảm ứng; bất kỳ

một sensor nào cũng không biết được việc một sensor khác dò được một cuộc tấn
công. một hệ thống như vậy sẽ không thể dò được các cuộc tấn công hiệp đồng
hoặc phức tạp.
Một hệ thống network-based IDS có thể gặp khó khăn trong việc xử lý các
cuộc tấn công trong một phiên được mã hoá. Thật may mắn chỉ có rất ít các cuộc
tấn công xảy ra trong một phiên giao vận bị mã hoá ngoại trừ tấn công vào các
web server yếu.
Host IDS
Hệ thống host-based IDS tìm kiếm dấu hiệu của sự xâm nhập vào một host cục
bộ. Thừơng sử dụng các cơ chế kiểm tra và logging như một thông tin nguồn để
phân tích. Chúng tìm kiếm các hoạt động bất thường hạn chế host cục bộ như là
login, truy nhập file không thích hợp, bước leo thang các đặc quyền không được
chấp nhận Kiến trúc IDS này thường sử dụng các cơ chế rule-based (dựa trên các
qui tắc) để phân tích các thao tác, một ví dụ của các qui tắc này là “đặc quyền của
người sử dụng cấp cao (surperUser) chỉ có thể đạt được thông qua lệnh su”. Như
vậy những cố gắng liên tục để login vào account root có thể đựơc coi là một cuộc
tấn công.
Ưu điểm
Một hệ thống host-based IDS có thể là một công cụ cực mạnh để phân tích các
cuộc tấn công có thể xảy ra. Ví dụ như thỉnh thoảng nói chính xác kẻ tấn công làm
22
gì, những lệnh nào được hắn thi hành, các file nào được mở và hệ thống nào yêu
cầu hắn thực hiện. Một hệ thống host-based IDS thương cung cấp nhiều thông tin
chi tiết và xác đáng hơn một hệ network-based.
Host-based IDS có thể được sử dụng trong các môi trường mà việc phát hiện
các xâm nhập rõ ràng là không cần thiết hoặc nơi mà dải tần rộng không có giá trị
đối với các sensor để phân tích các cuộc truyền thông. Các hệ thống host-based có
thể hoàn toàn độc lập. Nó cũng cho phép các hệ thống host-based trong một số
trường hợp chạy từ những phương tiện chỉ được đọc, điều này ngăn chặn kẻ tấn
công vô hiệu hoá hệ thống IDS.

Cuối cùng một hệ thống host-based IDS có thể ít rủi ro hơn khi cấu hình với
một đáp ứng hoạt động như là kết thúc một dịch vụ hay log of một uer sai phạm.
Một hệ thống host-based IDS khó có thể lừa vượt qua một giới hạn truy cập từ các
nguồn hợp pháp.
Nhược điểm
Các hệ thống host-based yêu cầu phải được cài đặt trên các thiết bị đặc biệt mà
bạn muốn bảo vệ. Ví dụ như nếu bạn có một server tài nguyên mà bạn muốn bảo
vệ bạn cần phải cài đặt hệ thống IDS trên server đó. Như đã đề cập ở trên điều này
sẽ đặt ra một vấn đề về dung lượng, trong một số trường hợp nó còn gây ra các
vấn đề về an ninh
Một vấn đề khác kết hợp với các hệ thống host-based là nó hướng đến việc tin
vào logging mặc định và năng lực kiểm soát của server. Nếu như server không
được cấu hình để thực hiện logging đầy đủ và thực hiện giám sát, bạn cần phải
thay đổi cấu hình của có thể là một máy mà đó là một vấn đè quản ls thay đổi cực
lớn.
Hệ thống host-based tương đối đắt. Nhiều tổ chức không có đủ nguồn tài chín
để bảo vệ toàn bộ các đoạn mạng của mình sử dụng các hệ thống host-based.
Những tổ chức đó phải rất thận trọng trong việc chọn các hệ thống nào để bảo vệ.
Nó có thể để lại các lỗ hổng lớn trong mức độ bao phủ phát hiện xâm nhập. Ví dụ
như một kẻ tấn công trên một hệ thống láng giềng không được bảo vệ có thể đánh
hơi thấy các thông tin xác thực hoặc các tài liệu dễ bị xâm phạm khác trên mạng.
Cuối cùng một hệ thống host-based hầu như hoàn toàn không biết gì về môi
trường mạng. Như vậy đòi hỏi thời gian phân tích để ước lượng thiệt hại từ một sự
xâm phạm tiêm tàng tăng tuyến tính với so lượng các host cần bảo vệ Ví dụ ta
cần một thời gian t để nghiên cứu về tai nạn trên một hệ thống, sẽ mất thời gian 2t
để nghiên cứu trên 2 hệ thống,
File Integrity Checker
Một phương pháp kiểm tra tính toàn vẹn của file (file integriy checker) kiểm
tra file trên một máy tính để xác định xem liệu nó có bị thay đổi không so với lần
cuối cùng thiết bị này hoạt động. Thiết bị kiểm tra tính toàn vẹn giữ một cơ sở dữ

23
liệu giá trị băm (hash value) của mỗi file. Mỗi khi thiết bị được chạy nó sẽ tính
toán lại giá trị băm và so sánh với giá trị được lưu trữ. Nếu hai giá trị này khác
nhau file đó đã bị thay đổi, nếu hai gia trị như nhau thì file chưa bị thay đổi.
Một hàm băm là một qui trình toán học nhằm giảm dãy các byte trong một file
thành một số có giá trị phù hợp. Các file giống nhau luôn cho ra các giá trị băm
giống nhau và bất kỳ một sự thay đổi nhỏ nào trên file sẽ sinh ra một giá trị băm
khác. Không giống như mã hóa, hàm băm là hàm một chiều, bạn không thể có
được file gốc từ một giá trị băm.
Một số hàm băm an toàn hơn các hàm khác. Những hàm băm rất an toàn mà
đạt được các yêu cầu toán học đặc biệt được gọi là các hàm băm an toàn mật mã.
Một trong các yêu cầu đó là việc tính toán ra sự xung đột hai đầu vào hàm băm
cho cùng một giá trị là rất khó (thuật ngữ kỹ thuật là sự tính toán không thể thực
hiện được). Điều đó có nghĩa là nếu như kẻ tấn công thay đổi file, hắn không thể
thay đổi bằng cách nào đó lừa thiết bị kiểm tra rằng file đó vẫn không bị thay đổi.
Ưu điểm
Sự tính toán không thể thực hiện được để đánh bại tính toán của thiết bị kiểm
tra tính toàn vẹn. Điều này làm cho nó trở thành một công cụ rất mạnh để phát
hiện thay đổi của file trên một máy tính. Nó rất mạnh, trên thực tế nó là một trong
những công cụ quan trọng nhất bạn có thể sử dụng để phát hiện sự lạm dụng của
một hệ thống máy tính.
Thiết bị kiểm tra tính toàn vẹn có thể được cấu hình để theo dõi mọi thứ trong
hệ thống hoặc chỉ những file quan trọng. Nó thực sự rất mềm dẻo.
Một khi kẻ tấn công làm tổn hại tới hệ thống chúng muốn thực hiện hai điều.
Đầu tiên chúng xoa bỏ các dấu vết của mình, nghĩa là chúng thay đổi các file nhị
phân, file thư viện hay các file log để xoá đi thực tế rằng chúng đang hoặc đã ở
trên hệ thống. Thứ hai là chúng sẽ tạo ra các thay đổi để chắc chắn rằng chúng có
thể tiếp tục truy nhập vào hệ thống. Một thiết bị kiểm tra tính toàn vẹn của file
được cấu hình một cách đúng đắn sẽ dò được cả hai thao tác trên.
Nhược điểm

Các thiết bị kiểm tra tính toàn vẹn tin tưởng vào các dữ liệu đựơc chứa trên các
máy tính cục bộ. Giống như file log, các dữ liệu này (cơ sở dữ liệu các giá trị băm)
dễ bị tấn công để thay đổi trên hệ thống. Giả sử kẻ tấn công đạt đựơc đặc quyền
user cấp cao trong hệ thống của bạn, kẻ tấn công có thể tìm ra thiết bị kiẻm tra tính
toàn vẹn, thực hiện một số thay đổi và cho thiết bị chạy lại để tạo lại cơ sở dữ liệu
giá trị băm. Khi người quản trị chạy công cụ này sẽ không có một báo lỗi thay đổi
nào xảy ra.
Một cách để giải quyết vấn đề này là hãy làm cho dữ liệu của bạn là một tài
liệu chỉ được đọc ví dụ như ghi lên một đĩa CD (chú ý không phải là đĩa
24
rewritable). Cách này hợp lý đối với hầu hết các trạm và các hệ thống không đổi
nhưng đối với hầu hết các máy đưa ra thì đó là một điều phiền phức không thể tin
được.
Thiết bị kiểm tra phải được cấu hình cho từng hệ thống một. Thông thường đây
là một công việc phức tạp và tốn nhiều thời gian. Nếu như hệ điều hành không tốt
trong việc thực hiện toàn vẹn hệ thống thì việc cài đặt càng trở nên khó hơn nhiều.
Một khi thiết bị đã được cấu hình nó phải được chạy thường xuyên. Tuỳ thuộc
vào hệ điều hành những thay đổi đơn giản hoặc các thao tác thông thường có thể
được báo cáo từ hàng chục tới hàng ngàn lần của sự thay đổi. Ví dụ như một thiết
bị kiêm tra tính toàn vẹn chỉ chạy trước khi nâng cấp MS-Outlook trong một hệ
Windows NT, sau khi cài đặt số báo cáo vượt quá 1800 thay đổi.
Cuối cùng thiết bị kiểm tra tính toàn vẹn tiêu thụ một lượng đáng kể nguồn tài
nguyên của hệ thống. Rất nhiều quản trị không muốn chạy các thiết bị kiểm tra
thường xuyên, điều đó sẽ hạn chế các tính năng của nó, bởi vì nếu một thiết bị
được chạy một lần mỗi tháng nó sẽ báo rất nhiều sự thay đổi mà một cuộc tấn
công thực sự đã có một cơ hội tốt để tiến hành mà không có một sự chú ý nào cả.
Vulnerability Scanners
Một vulnerability scanner khác với một hệ thống phát hiện sự xâm nhập, như
đã đề cập ở trên, một vulnerability scanner tìm kiếm các cấu hình trạng thái còn
IDS tìm kiếm sự lạm dụng nhất thời hay các hoạt động không bình thường. Một

vulnerability scanner có thể tìm kiếm một NFS có thể bị xâm hại dã được biết đến
bằng cách kiểm tra các dịch vụ có giá trị và cấu hình trên hệ thống từ xa. Một IDS,
xử lý những tính dễ bị xâm hại tương tự nhau,chỉ báo cáo về sự tồ tại của một
điểm dễ bị xâm nhập khi một kẻ tấn công cố gắng khai thác nó.
Vulnerability scanner, dù là network scanner hay host scanner đều cho các tổ
chức một cơ hội hàn gắn các vấn đề trước khi trước khi chúng nảy sinh hơn là tác
động trở lại sự xâm phạm hoặc lạm dụng đang diễn tiến. Một hệ thống phát hiện
xâm nhập dò các cuộc xâm nhập đang diễn ra, trong khi một vulnerability scanner
cho phép tổ chức ngăn chặn sự xâm nhập. Vulnerability rất hữu ích trong các tổ
chức không có khả năng tốt phản hồi các sự kiện bất ngờ.
Network Vulnerability Scanner
Một network vulnerability scanner điều khiển từ xa bằng cách kiểm tra giao
diện mạng trên một hệ thống từ xa. Nó sẽ tìm kiếm các dịch vụ dễ bị xâm phạm
chạy trên máy từ xa đó và báo cáo về điểm có thể dễ bị xâm phạm. Ví dụ như ta
biết rexd là một dịch vụ yếu, một network vulnerability scanner sẽ cố gắng kết nối
tới dịch vụ rexd tại hệ thống đích. Nếu như kết nối thành công thì network
vulnerability scanner sẽ báo cáo về một rexd dễ bị xâm hại.
Từ khi một máy quét điểm dễ bị xâm phạm trên mạng có thể chạy trên một
máy đơn trong mạng, nó có thể được cài đặt mà không tác động vào các quản trị
25

×