Professional Documents
Culture Documents
ĐỒ ÁN CHUYÊN NGÀNH
1. Mô hình
2. Thực hiện
CHƯƠNG IV KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
I.Kết luận
II.Hướng phát triển
thống và có thể hoạt động tốt với các phương pháp bảo mật truyền thống. Nó đã được
nghiên cứu, phát triển và ứng dụng từ lâu trên thế giới và đã thể hiện vai trò quan trọng
trong các chính sách bảo mật. Tuy nhiên ở Việt Nam hiện nay hệ thống phát hiện xâm
nhập trái phép vẫn mới đang được nghiên cứu, vẫn chưa được ứng dụng vào trong thực
tế. Nguyên nhân của việc này có thể do các hệ thống IDS hiện nay quá phức tạp, tốn
thời gian đào tạo để sử dụng, cũng có thể do nó là những hệ thống lớn, yêu cầu nhiều
trang thiết bị, nhiều công sức để quản lý bảo dưỡng, không phù hợp với điều kiện của
các hệ thống ở Việt Nam hiện nay.
Từ những vấn đề nêu trên, tôi thực hiện đồ án này với mong muốn không chỉ nghiên
cứu những đặc trưng cơ bản của hệ thống phát hiện xâm nhập trái phép với vai trò là
phương pháp bảo mật mới bổ sung cho những phương pháp bảo mật hiện tại, mà còn có
thể xây dựng được một phần mềm IDS phù hợp với điều kiện của Việt Nam và có thể
ứng dụng vào thực tiễn nhằm đảm bảo sự an toàn cho các hệ thống và chất lượng dịch
vụ cho người dùng.
Công cụ hack và script có rất nhiều trên Internet, vì thế bất cứ ai tò mò có thể tải
chúng về và sử dụng thử trên mạng nội bộ và các mạng ở xa. Cũng có những người
thích thú với việc xâm nhập vào máy tính và các hành động vượt khỏi tầm bảo vệ. Hầu
hết tấn công không có cấu trúc đều được gây ra bởi Script Kiddies (những kẻ tấn công
chỉ sử dụng các công cụ được cung cấp, không có hoặc có ít khả năng lập trình) hay
những người có trình độ vừa phải. Hầu hết các cuộc tấn công đó vì sở thích cá nhân,
nhưng cũng có nhiều cuộc tấn công có ý đồ xấu. Những trường hợp đó có ảnh hưởng
xấu đến hệ thống và hình ảnh của công ty.
Mặc dù tính chuyên môn của các cuộc tấn công dạng này không cao nhưng nó vẫn có
thể phá hoại hoạt động của công ty và là một mối nguy hại lớn. Đôi khi chỉ cần chạy
một đoạn mã là có thể phá hủy chức năng mạng của công ty. Một Script Kiddies có thể
không nhận ra và sử dụng đoạn mã tấn công vào tất cả các host của hệ thống với mục
đích truy nhập vào mạng, nhưng kẻ tấn công đã tình cờ gây hỏng hóc cho vùng rộng
của hệ thống. Hay trường hợp khác, chỉ vì ai đó có ý định thử nghiệm khả năng, cho dù
không có mục đích xấu nhưng đã gây hại nghiêm trọng cho hệ thống.
2. Mối đe dọa có cấu trúc ( Structured threat)
Structured threat là các hành động cố ý, có động cơ và kỹ thuật cao. Không như
Script Kiddes, những kẻ tấn công này có đủ kỹ năng để hiểu các công cụ, có thể chỉnh
sửa các công cụ hiện tại cũng như tạo ra các công cụ mới. Những kẻ tấn công này hoạt
động độc lập hoặc theo nhóm, họ hiểu, phát triển và sử dụng các kỹ thuật hack phức tạp
nhằm xâm nhập vào mục tiêu.
Động cơ của các cuộc tấn công này thì có rất nhiều. Một số yếu tố thường thấy có thể vì
tiền, hoạt động chính trị, tức giận hay báo thù. Các tổ chức tội phạm, các đối thủ cạnh
tranh hay các tổ chức sắc tộc có thể thuê các chuyên gia để thực hiện các cuộc tấn công
dạng structured threat. Các cuộc tấn công này thường có mục đích từ trước, như để lấy
được mã nguồn của đối thủ cạnh tranh. Cho dù động cơ là gì, thì các cuộc tấn công như
vậy có thể gây hậu quả nghiêm trọng cho hệ thống. Một cuộc tấn công structured thành
công có thể gây nên sự phá hủy cho toàn hệ thống.
truy cập server để quy định cho sự bảo mật bên trong. Quyền truy cập server thường
bảo vệ tài nguyên trên server nhưng không cung cấp bất kì sự bảo vệ nào cho mạng.
Mối đe dọa ở bên trong thường được thực hiện bởi các nhân viên bất bình, muốn “quay
mặt” lại với công ty. Nhiều phương pháp bảo mật liên quan đến vành đai của mạng, bảo
vệ mạng bên trong khỏi các kết nối bên ngoài, như là Internet. Khi vành đai của mạng
được bảo mật, các phần tin cậy bên trong có khuynh hướng bị bớt nghiêm ngặt hơn.
Khi một kẻ xâm nhập vượt qua vỏ bọc bảo mật cứng cáp đó của mạng, mọi chuyện còn
lại thường là rất đơn giản.
Đôi khi các cuộc tấn công dạng structured vào hệ thống được thực hiện với sự giúp đỡ
của người bên trong hệ thống. Trong trường hợp đó, kẻ tấn công trở thành structured
internal threat, kẻ tấn công có thể gây hại nghiên trọng cho hệ thống và ăn trộm tài
nguyên quan trọng của công ty. Structured internel threat là kiểu tấn công nguy hiểm
nhất cho mọi hệ thống.
Tính toàn vẹn (Integrity): hệ thống đảm bảo tính toàn vẹn của dữ liệu nếu nó ngăn
sự thay đổi dữ liệu trái phép. Sự thay đổi bao gồm tạo, ghi, sửa đổi, xóa và xem lại
thông điệp đã được truyền.
Tính sẵn sàng (Availability): yêu cầu tài sản hệ máy tính là sẵn sàng đối với nhóm
được phép. Mục tiêu của kiểu tấn công từ chối dịch vụ DoS là phá hoại tính sẵn
sàng của tài nguyên hệ thống, bao gồm tạm thời và lâu dài.
Kỹ thuật xác thực này được thực hiện phổ biến như one-type password (OTPs).
Kỹ thuật này được thực hiện bao gôm hai yếu tố: personal identification number
( PIN ) và token card để xác thực một thiết bị hoặc một phần mềm ứng dụng.
Token card là thiết bị phần cứng hoặc phần mềm sản sinh ra thông tin một cách
ngẫu nhiên ( password ) tai một thời điểm, thường là 60 giây.
Khách hàng sẽ kết nối password đó với một PIN để tạo ra một password duy
nhất. Giả sử một hacker học được password đó bằng kỹ thuật packet sniffers,
thông tin đó cũng không có giá trị vì nó đã hết hạn.
Dùng switch thay vì Bridge hay hub: hạn chế được các gói broadcast trong
mạng.
Kỹ thuật này có thể dùng để ngăn chặn packet sniffers trong môi trường mạng.
Vd: nếu toàn bộ hệ thống sử dụng switch ethernet, hacker chỉ có thể xâm nhập
vào luồng traffic đang lưu thông tại 1 host mà hacker kết nối đến. Kỹ thuật này
không làm ngăn chặn hoàn toàn packet sniffer nhưng nó có thể giảm được tầm
ảnh hưởng của nó.
Các công cụ Anti-sniffer: công cụ này phát hiện sự có mặt của packet siffer trên
mạng.
Mã hóa: Tất cả các thông tin lưu chuyển trên mạng đều được mã hóa. Khi đó,
nếu hacker dùng packet sniffer thì chỉ bắt được các gói dữ liệu đã được mã hóa.
Cisco dùng giao thức IPSec để mã hoá dữ liệu.
2. Phương thức tấn công mật khẩu Password attack
Phương pháp giảm thiểu tấn công password:
Giới han số lần login sai
Đặt password dài
Cấm truy cập vào các thiết bị, serever từ xa thông qua các giao thức không an
toàn như FTP, Telnet, rlogin, rtelnet… ứng dung SSL,SSH vào quản lý từ xa
3.Phương thức tấn công bằng Mail Relay
Phương pháp giảm thiểu :
Giới hạn dung lương Mail box
Sử dụng các phương thức chống Relay Spam bằng các công cụ bảo mật cho
SMTP server, đặt password cho SMTP.
Sử dụng gateway SMTP riêng
4.Phương thức tấn công hệ thống DNS
Phương pháp hạn chế:
Hạn chế tối đa các dịch vụ khác trên hệ thống máy chủ DNS
Cài đặt hệ thống IDS Host cho hệ thống DNS
Luôn cập nhật phiên bản mới có sửa lỗi của hệ thống phần mềm DNS.
5.Phương thức tấn công Man-in-the-middle attack
Tấn công dạng này có thể hạn chế bằng cách mã hoá dữ liệu được gởi ra. Nếu các
hacker có bắt được các gói dữ liệu thì là các dữ liệu đã được mã hóa.
6.Phương thức tấn công để thăm dò mạng
Ta không thể ngăn chặn được hoàn toàn các hoạt độ thăm dò kiểu như vậy. Ví dụ ta có
thể tắt đi ICMP echo và echo-reply, khi đó có thể chăn được ping sweep, nhưng lại khó
cho ta khi mạng có sự cố, cần phải chẩn đoan lỗi do đâu.
NIDS và HIDS giúp nhắc nhở (notify) khi có các hoạt động thăm dò xảy ra trong mạng.
Có thể dùng các phần mềm chống virus để diệt các virus và Trojan horse và luôn luôn
cập nhật chương trình chống virus mới.
và khóa mật cung cấp cho người dùng, người gửi và người nhận sự từ chối, sự tin cậy
và toàn vẹn dữ liệu.
ta an toàn với sự dùng sai, và làm sao để theo dõi được khi ta bị tấn công?” Ta nhận
thấy cách tốt nhất để phát hiện xâm nhập trái phép là tạo ra log hay biên bản kiểm tra
(audit trail) với mọi hành động có liên quan đến bảo mật. Ngày nay, hầu hết các hệ điều
hành, ứng dụng và thiết bị mạng đều tạo ra một số dạng biên bản kiểm tra. Tư tưởng cơ
bản là nhà quản trị có thể xem lại chúng để tìm những sự kiện đáng nghi. Trong khi đó
trong thực tế, quá trình xử lý thủ công đó không thể ứng dụng được với quy mô lớn, sức
người có hạn không thể kiểm tra lại được tất cả các log để tìm điểm nghi vấn. Ví dụ như
vào năm 1984, hệ thống Clyde Digital phát triển một sản phẩm là AUDIT, có nhiệm vụ
tự động tìm trong audit trai OpenVMS để tìm sự kiện nghi vấn. Vào năm 1987, một dự
án được tài trợ bởi chính phủ Mỹ tên là IDES tại Stanford Research Institute thực hiện
đọc audit trail và tạo ra khuôn mẫu những hành động thông thường, sau đó gửi thông
báo về những hành động lệch so với khuôn mẫu đó. Trong suốt những năm đầu của
thập kỷ 90, cố gắng phát hiện xâm nhập trái phép tập trung vào việc phân tích các sự
kiện có trong audit trail.
Tuy nhiên, hầu hết các công ty không thể sử dụng được phương pháp phân tích log
này vì hai lý do chính. Thứ nhất là công cụ đó khá nặng, phụ thuộc vào khả năng hiểu
loại tấn công và điểm yếu của người dùng. Với sự tăng trưởng của số người dùng, hệ
điều hành, ứng dụng, cơ sở dữ liệu cũng tăng theo với kích cỡ của file audit trail làm
chúng tốn bộ nhớ và dẫn đến lỗi từ chối dịch vụ. Do đó, các tổ chức nhận ra rằng thao
tác viên của họ thường xóa hay vô hiệu hóa audit trail nhằm làm giảm giá thành hệ
thống và duy trì đủ hiệu suất. Nửa cuối những năm 90 chứng kiến sự mở rộng của các
ứng dụng tạo audit trail mới để quản lý, như router, network traffic monitor, và firewall.
Tuy hệ phương pháp IDS đã phát triển trong suốt 20 năm, câu hỏi vẫn được đặt ra:
“Làm sao có thể biết chúng ta an toàn với sự dùng sai, và làm sao để theo dõi và phản
ứng khi ta bị tấn công?”
Scanner, các công cụ thăm dò và đánh giá chính sách rất hiệu quả trong việc tìm lỗ
hổng bảo mật trước khi bị tấn công. Chúng có thể làm được điều đó dựa trên việc tìm
khiếm khuyết, cấu hình sai có thể can thiệp được của hệ điều hành và ứng dụng, những
hệ thống, cấu hình ứng dụng, thao tác trái ngược với chính sách chung. Các công cụ này
có thể trả lời được câu hỏi “độ an toàn của môi trường trước sự dùng sai”, chúng cung
cấp phương thức tốt nhất để đánh giá độ an toàn của hệ điều hành và ứng dụng. Chúng
có thể cung cấp sự đánh giá chính sách một cách tự động dựa trên yêu cầu bảo mật của
công ty như phiên bản của phần mềm, độ dài mật mã,… Tuy nhiên, hầu hết các scanner
chỉ báo cáo lại về lỗ hổng bảo mật và yêu cầu chỉnh sửa tình trạng đó một cách thủ
công. Hơn nữa, nó yêu cầu một thủ tục định kỳ mỗi khi cài đặt một hệ điều hành, server
hay ứng dụng mới vào mạng. Cũng như các công cụ kiểm tra biên bản, scanner và các
công cụ thăm dò, đánh giá chính sách không thể mở rộng quy mô do dựa trên hoạt động
của con người và các ràng buộc bảo mật có tính chuyên môn cho một tổ chức. Ta có
một chân lý là “nếu ta không thể đo được nó thì ta không thể quản lý được nó”. Một lợi
ích quan trọng khác của công cụ đánh giá bảo mật là cho phép quản lý cả với độ lệch
trong bảo mật và biểu đồ thông tin. Nó có thể được sử dụng để xác định hiệu quả thực
tế của bảo mật và dự đoán hiện tại cũng như tương lai.
Là các hệ thống phát hiện tấn công, nó có thể bắt giữ các gói tin được truyền trên
các thiết bị mạng (cả hữu tuyến và vô tuyến) và so sánh chúng với cơ sở dữ liệu các tín
hiệu.
Host IDS hoặc HIDS
Được cài đặt như là một tác nhân trên máy chủ. Những hệ thống phát hiện xâm
nhập này có thể xem những tệp tin log của các trình ứng dụng hoặc của hệ thống để
phát hiện những hành động xâm nhập.
Signature
Là những phần mà ta có thể thấy được trong một gói dữ liệu. Nó được sử dụng
để phát hiện ra một hoặc nhiều kiểu tấn công. Signature có thể có mặt trong các phần
khác nhau của một gói dữ liệu. Ví dụ ta có thể tìm thấy các tín hiệu trong header IP,
header của tầng giao vận (TCP, UDP header) hoặc header tầng ứng dụng. Thông
thường, IDS ra quyết định dựa trên những tín hiệu tìm thấy ở hành động xâm nhập. Các
nhà cung cấp IDS cũng thường xuyên cập nhật những tín hiệu tấn công mới khi chúng
bị phát hiện ra.
Alert
Là những lời thông báo ngắn về những hành động xâm nhập bất hợp pháp. Khi
IDS phát hiện ra kẻ xâm nhập, nó sẽ thông báo cho người quản trị bảo mật bằng alert.
Alert có thể hiện ngay trên màn hình, khi đăng nhập hoặc bằng mail và bằng nhiều cách
khác. Alert cũng có thể được lưu vào file hoặc vào cơ sở dữ liệu để các chuyên gia bảo
mật có thể xem lại.
Log
o Thông thường, những thông tin mà IDS thu được sẽ lưu lại trong file.
Chúng có thể được lưu lại dưới dạng text hoặc dạng nhị phân. Tốc độ lưu
lại thông tin ở dạng nhị phân sẽ nhanh hơn ở dạng text.
False Alarm
Là những thông báo đúng về một dấu giống dấu hiệu xâm nhập nhưng hành
động .
Sensor
Là những thiết bị mà hệ thống phát hiện xâm nhập chạy trên nó bởi vì nó được
sử dụng như các giác quan trên mạng. Cũng tương tự như các sensor trong các tài liệu
kỹ thuật khác, sensor dùng để bắt tín hiệu âm thanh, màu sắc, áp xuất... thì sensor ở đây
sẽ bắt các tín hiệu có dấu hiệu của xâm nhập bất hợp pháp.
Vị trí của sensor phụ thuộc vào mô hình của hệ thống mạng. Ta có thể đặt ở một
hoặc nhiều nơi, nó phụ thuộc vào loại hoạt động mà ta muốn giám sát (internal, external
hoặc cả 2). Ví dụ, nếu ta muốn giám sát hành động xâm nhập từ bên ngoài và ta chỉ có
một router kết nối với internet thì nơi thích hợp nhất là đặt phía sau thiết bị router (hay
firewall). Nếu ta có nhiều đường kết nối với Interrnet thì ta có thể đặt sensor tại mỗi
điểm kết nối với Internet. Ta có thể hình dung qua hình vẽ sau:
Hệ thống phát hiện xâm nhập trái phép là những ứng dụng phần mềm chuyên dụng
để phát hiện xâm nhập vào hệ thống mạng cần bảo vệ. IDS được thiết kế không phải
với mục đích thay thế các phương pháp bảo mật truyền thống, mà để hoàn thiện nó.
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 môi trường 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ệ - theo
[Ranum, 2000] là dưới 1 phút).
Tính trọn vẹn (Completeness): IDS không được bỏ qua một xâm nhập trái phép
nào (xâm nhập không bị phát hiện được 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
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 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ự
phát triển nhanh và mạnh của mạng máy tính, hệ thống có thể bị quá tải bởi sự
tăng trưởng của số lượng sự kiện.
3. Phân biệt những hệ thống không phải là IDS
Trái ngược với những thuật ngữ được sử dụng trong các bài giảng về hệ thống
phát hiện xâm nhập, không phải mọi thứ đều được qui vào mục này. Theo một cách
riêng biệt nào đó, các thiết bị bảo mật dưới đây không phải là 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 được thiết kế để phát hiện các phần mềm mã nguy
hiểm như virus, trojan horse, 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
mô tả sơ lược về các hoạt động bình thường của hệ thống. Các cuộc tấn công sẽ có
những hành động khác so với bình thường và phương pháp dò này có thể nhận dạng. Có
một số kỹ thuật giúp thực hiện dò sự không bình thường của các cuộc tấn công như
dưới đây:
- Phát hiện mức ngưỡng: Kỹ thuật này nhấn mạnh việc đo đếm các hoạt động bình
thường trên mạng. Các ức ngưỡng về các hoạt động bình thường được đặt ra. Nếu có sự
bất thường nào đó như đǎng nhập với số lần quá quy định, số lượng các tiến trình hoạt
động trên CPU, số lượng một loại gói tin được gửi vượt quá mức... thì hệ thống có dấu
hiệu bị tấn công.
- Phát hiện nhờ quá trình tự học: Kỹ thuật này bao gồm hai bước. Khi bắt đầu thiết lập,
hệ thống phát hiện tấn công sẽ chạy ở chế độ tự học và tạo ra một hồ sơ về cách cư xử
của mạng với các hoạt động bình thường. Sau thời gian khởi tạo, hệ thống sẽ chạy ở chế
độ làm việc, tiến hành theo dõi, phát hiện các hoạt động bất thường của mạng bằng cách
so sánh với hồ sơ đã thiết lập. Chế độ tự học có thể chạy song song với chế độ làm việc
để cập nhật hồ sơ của mình nhưng nếu dò ra có tín hiệu tấn công thì chế độ tự học phải
dừng lại cho tới khi cuộc tấn công kết thúc.
- Phát hiện sự không bình thường của các giao thức: Kỹ thuật này cǎn cứ vào hoạt động
của các giao thức, các dịch vụ của hệ thống để tìm ra các gói tin không hợp lệ, các hoạt
động bất thường vốn là dấu hiệu của sự xâm nhập, tấn công. Kỹ thuật này rất hiệu quả
trong việc ngǎn chặn các hình thức quét mạng, quét cổng để thu thập thông tin của các
tin tặc.
Phương pháp dò sự không bình thường của hệ thống rất hữu hiệu trong việc phát hiện
các cuộc tấn công kiểu từ chối dịch vụ. Ưu điểm của phương pháp này là có thể phát
hiện ra các kiểu tấn công mới, cung cấp các thông tin hữu ích bổ sung cho phương pháp
dò sự lạm dụng, tuy nhiên chúng có nhược điểm thường tạo ra một số lượng các cảnh
báo sai làm giảm hiệu suất hoạt động của mạng. Phương pháp này sẽ là hướng được
nghiên cứu nhiều hơn, khắc phục các nhược điểm còn gặp, giảm số lần cảnh báo sai để
hệ thống chạy chuẩn xác hơn.)
• Modul phản ứng
Khi có dấu hiệu của sự tấn công hoặc thâm nhập, modul phát hiện tấn công sẽ gửi tín
hiệu báo hiệu có sự tấn công hoặc thâm nhập đến modul phản ứng. Lúc đó modul phản
ứng sẽ kích hoạt tường lửa thực hiện chức nǎng ngǎn chặn cuộc tấn công hay cảnh báo
tới người quản trị. Tại modul này, nếu chỉ đưa ra các cảnh báo tới các người quản trị và
dừng lại ở đó thì hệ thống này được gọi là hệ thống phòng thủ bị động. Modul phản ứng
này tùy theo hệ thống mà có các chức nǎng và phương pháp ngǎn chặn khác nhau. Dưới
đây là một số kỹ thuật ngǎn chặn:
- Kết thúc tiến trình: Cơ chế của kỹ thuật này là hệ thống IPS gửi các gói tin nhằm phá
huỷ tiến trình bị nghi ngờ. Tuy nhiên phương pháp này có một số nhược điểm. Thời
gian gửi gói tin can thiệp chậm hơn so với thời điểm tin tặc bắt đầu tấn công, dẫn đến
tình trạng tấn công xong rồi mới bắt đầu can thiệp. Phương pháp này không hiệu quả
với các giao thức hoạt động trên UDP như DNS, ngoài ra các gói tin can thiệp phải có
trường thứ tự đúng như các gói tin trong phiên làm việc của tiến trình tấn công. Nếu
tiến trình tấn công xảy ra nhanh thì rất khó thực hiện được phương pháp này.
- Huỷ bỏ tấn công: Kỹ thuật này dùng tường lửa để hủy bỏ gói tin hoặc chặn đường một
gói tin đơn, một phiên làm việc hoặc một luồng thông tin tấn công. Kiểu phản ứng này
là an toàn nhất nhưng lại có nhược điểm là dễ nhầm với các gói tin hợp lệ.
- Thay đổi các chính sách của tường lửa: Kỹ thuật này cho phép người quản trị cấu hình
lại chính sách bảo mật khi cuộc tấn công xảy ra. Sự cấu hình lại là tạm thời thay đổi các
chính sách điều khiển truy nhập bởi người dùng đặc biệt trong khi cảnh báo tới người
quản trị.
- Cảnh báo thời gian thực: Gửi các cảnh báo thời gian thực đến người quản trị để họ
nắm được chi tiết các cuộc tấn công, các đặc điểm và thông tin về chúng.
- Ghi lại vào tệp tin: Các dữ liệu của các gói tin sẽ được lưu trữ trong hệ thống các tệp
tin log. Mục đích để các người quản trị có thể theo dõi các luồng thông tin và là nguồn
thông tin giúp cho modul phát hiện tấn cônghoạtđộng.
2.2 Các kiểu hệ thống IPS
Có hai kiểu kiến trúc IPS chính là IPS ngoài luồng và IPS trong luồng.a) IPS ngoài
luồngHệ thống IPS ngoài luồng không can thiệp trực tiếp vào luồng dữ liệu. Luồng dữ
liệu vào hệ thống mạng sẽ cùng đi qua tường lửa và IPS. IPS có thể kiểm soát luồng dữ
liệu vào, phân tích và phát hiện các dấu hiệu của sự xâm nhập, tấn công. Với vị trí này,
IPS có thể quản lý bức tường lửa, chỉ dẫn nó chặn lại các hành động nghi ngờ mà không
làm ảnh hưởng đến tốc độ lưu thông của mạng.
b)IPS trong luồng
Vị trí IPS nằm trước bức tường lửa, luồng dữ liệu phải đi qua IPS trước khi tới bức
tường lửa. Điểm khác chính so với IPS ngoài luồng là có thêm chức năng chặn lưu
thông. Điều đó làm cho IPS có thể ngăn chặn luồng giao thông nguy hiểm nhanh hơn so
với IPS ngoài luồng. Tuy nhiên, vị trí này sẽ làm cho tốc độ luồng thông tin ra vào
mạng chậm hơn.
C .Chức năng của IDS
Hệ thống phát hiện xâm nhập cho phép các tổ chức bảo vệ hệ thống của họ khỏi những
đe dọa với việc gia tăng kết nối mạng và sự tin cậy của hệ thống thông tin. Những đe
dọa đối với an ninh mạng ngày càng trở nên cấp 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 là 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 mọi hệ
thống an toàn hay không vẫn là một câu hỏi của nhiều nhà quản trị hệ thống. Có nhiều
tài liệu giới thiệu về những chức năng mà IDS đã làm được những có thể đưa ra vài lý
do tại sao nên sử dụng hệ thống IDS:
• Bảo vệ tính toàn vẹn (integrity) 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, ngăn chặn được sự truy nhập
thông tin bất hợp phá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…
Nói tóm lại ta có thể tóm tắt IDS như sau:
Chức năng quan trọng nhất 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 hoạt động khả nghi.
Cảnh báo: báo cáo về tình trạng mạng cho hệ thống và nhà quản trị.
Bảo vệ: Dùng những thiết lập mặc định và sự cấu hình từ nhà quản trị mà có
những hành động thiết thực chống lại kẻ xâm nhập và phá hoại.
Hệ thống IDS dựa trên mạng sử dụng bộ dò và bộ bộ cảm biến cài đặt trên toàn mạng.
Những bộ dò này theo dõi trên mạng nhằm tìm kiếm những lưu lượng trùng với những
mô tả sơ lược được định nghĩa hay là những dấu hiệu. Những bộ bộ cảm biến thu nhận
và phân tích lưu lượng trong thời gian thực. Khi ghi nhận được một mẫu lưu lượng hay
dấu hiệu, bộ cảm biến gửi tín hiệu cảnh báo đến trạm quản trị và có thể được cấu hình
nhằm tìm ra biện pháp ngăn chặn những xâm nhập xa hơn. NIPS là tập nhiều sensor
được đặt ở toàn mạng để theo dõi những gói tin trong mạng so sánh với với mẫu đã
được định nghĩa để phát hiện đó là tấn công hay không.
Được đặt giữa kết nối hệ thống mạng bên trong và mạng bên ngoài để giám sát toàn bộ
lưu lượng vào ra. Có thể là một thiết bị phần cứng riêng biệt được thiết lập sẵn hay
phần mềm cài đặt trên máy tính. Chủ yếu dùng để đo lưu lượng mạng được sử dụng.
Tuy nhiên có thể xảy ra hiện tượng nghẽn cổ chai khi lưu lượng mạng hoạt động ở mức
cao.
2. Lợi thế của Network-Based IDSs:
- Quản lý được cả một network segment (gồm nhiều host)
- "Trong suốt" với người sử dụng lẫn kẻ tấn công
- Cài đặt và bảo trì đơn giản, không ảnh hưởng tới mạng
- Tránh DOS ảnh hưởng tới một host nào đó.
- Có khả năng xác định lỗi ở tầng Network (trong mô hình OSI)
- Độc lập với OS
Bằng cách cài đặt một phần mềm trên tất cả các máy tính chủ, IPS dựa trên máy chủ
quan sát tất cả những hoạt động hệ thống, như các file log và những lưu lượng mạng thu
thập được. Hệ thống dựa trên máy chủ cũng theo dõi OS, những cuộc gọi hệ thống, lịch
sử sổ sách (audit log) và những thông điệp báo lỗi trên hệ thống máy chủ. Trong khi
những đầu dò của mạng có thể phát hiện một cuộc tấn công, thì chỉ có hệ thống dựa trên
máy chủ mới có thể xác định xem cuộc tấn công có thành công hay không. Thêm nữa
là, hệ thống dựa trên máy chủ có thể ghi nhận những việc mà người tấn công đã làm
trên máy chủ bị tấn công (compromised host).
Không phải tất cả các cuộc tấn công được thực hiện qua mạng. Bằng cách giành quyền
truy cập ở mức vật lý (physical access) vào một hệ thống máy tính, kẻ xâm nhập có thể
tấn công một hệ thống hay dữ liệu mà không cần phải tạo ra bất cứ lưu lượng mạng
(network traffic) nào cả. Hệ thống dựa trên máy chủ có thể phát hiện các cuộc tấn công
mà không đi qua đường public hay mạng được theo dõi, hay thực hiện từ cổng điều
khiển (console), nhưng với một kẻ xâm nhập có hiểu biết, có kiến thức về hệ IDS thì
hắn có thể nhanh chóng tắt tất cả các phần mềm phát hiện khi đã có quyền truy cập vật
lý.
Một ưu điểm khác của IDS dựa trên máy chủ là nó có thể ngăn chặn các kiểu tấn công
dùng sự phân mảnh hoặc TTL. Vì một host phải nhận và tái hợp các phân mảnh khi xử
lí lưu lượng nên IDS dựa trên host có thể giám sát chuyện này.
HIDS thường được cài đặt trên một máy tính nhất đinh. Thay vì giám sát hoạt động của
một network segment, HIDS chỉ giám sát các hoạt động trên một máy tính. HIDS
thường được đặt trên các host xung yếu của tổ chức, và các server trong vùng DMZ -
thường là mục tiêu bị tấn công đầu tiên. Nhiêm vụ chính của HIDS là giám sát các thay
đổi trên hệ thống, bao gồm (not all):
Các tiến trình.
Các entry của Registry.
Mức độ sử dụng CPU.
Kiểm tra tính toàn vẹn và truy cập trên hệ thống file.
Một vài thông số khác.
Các thông số này khi vượt qua một ngưỡng định trước hoặc những thay đổi khả nghi
trên hệ thống file sẽ gây ra báo động.
5.Lợi thế của HIDS:
Có khả năng xác đinh user liên quan tới một event.
HIDS có khả năng phát hiện các cuộc tấn công diễn ra trên một máy, NIDS
không có khả năng này.
Có thể phân tích các dữ liệu mã hoá.
Cung cấp các thông tin về host trong lúc cuộc tấn công diễn ra trên host này.
6.Hạn chế của HIDS:
Thông tin từ HIDS là không đáng tin cậy ngay khi sự tấn công vào host này
thành công.
Khi OS bị "hạ" do tấn công, đồng thời HIDS cũng bị "hạ".
HIDS phải được thiết lập trên từng host cần giám sát .
HIDS không có khả năng phát hiện các cuộc dò quét mạng (Nmap, Netcat…).
HIDS cần tài nguyên trên host để hoạt động.
HIDS có thể không hiệu quả khi bị DOS.
Đa số chạy trên hệ điều hành Window. Tuy nhiên cũng đã có 1 số chạy được
trên UNIX và những hệ điều hành khác.
Vì hệ thống IDS dựa trên máy chủ đòi hỏi phần mềm IDS phải được cài đặt trên tất cả
các máy chủ nên đây có thể là cơn ác mộng của những nhà quản trị khi nâng cấp phiên
bản, bảo trì phần mềm, và cấu hình phần mềm trở thành công việc tốn nhiều thời gian
và là những việc làm phức tạp. Bởi vì hệ thống dựa trên máy chủ chỉ phân tích những
lưu lượng được máy chủ nhận được, chúng không thể phát hiện những tấn công thăm
dò thông thường được thực hiện nhằm chống lại một máy chủ hay là một nhóm máy
chủ. Hệ thống IDS dựa trên máy chủ sẽ không phát hiện được những chức năng quét
ping hay dò cổng (ping sweep and port scans) trên nhiều máy chủ. Nếu máy chủ bị thỏa
hiệp thì kẻ xâm nhập hoàn toàn có thể tắt phần mềm IDS hay tắt kết nối của máy chủ
đó. Một khi điều này xảy ra thì các máy chủ sẽ không thể tạo ra được cảnh báo nào cả.
Phần mềm IDS phải được cài đặt trên mỗi hệ thống trên mạng nhằm cung cấp đầy đủ
khả năng cảnh báo của mạng. Trong một môi trường hỗn tạp, điều này có thể là một
vấn đề bởi vì phần mềm IDS phải tương ứng nhiều hệ điều hành khác nhau. Do đó
trước khi chọn một hệ thống IDS, chúng ta phải chắc là nó phù hợp và chạy được trên
tất cả các hệ điều hành.
7.DIDS
DIDS là sự kết hợp cả các NIDS sensors với nhau hoặc NIDS và HIDS sensor. Mỗi
sensor tạo ra các attack log và gửi đến cho máy trung tâm nơi có chứa database server
để xử lý.
DIDS có khả năng xử lý tập trung, giúp cho người quản trị có khả năng theo dõi toàn
bộ hệ thống. Hiện nay trên thế giới có sự hiện diện của một DIDS lớn nhất với nhiều
sensor ở khắp mọi nơi đó là hệ thống Dshield. Dshield là một phần của trung tâm ISC
(Internet Storm Center) của viện SANS.
mật cao nhất bằng cách vừa quản lý tải truyền thông mạng và việc khai thác trực tiếp
một host trên mạng.
Như ở hình trên ta thấy chính sách bảo mật bao gồm một Firewall nhằm hạn chế bớt các
kết nối nguy hiểm với mạng bên ngoài. Network-based IDS được đặt trước đường ra
mạng ngoài nhằm phân tích dữ liệu vào ra hệ thống. Phía bên trong Host-based IDS
được cài đặt trên các máy cần bảo vệ và phân tích mọi tương tác trên máy đó. Manager
Console là nơi nhận các cảnh báo từ NIDS và HIDS khi chúng phát hiện ra có xâm
nhập trái phép.
Ta có thể giải thích về những giới hạn của mỗi loại IDS bằng ví dụ dưới đây, đồng thời
nói đến lợi ích của việc kết hợp cả hai giải pháp. Giả sử một hacker muốn xâm nhập
vào hệ thống. Một IDS ứng dụng có thể phát hiện được hacker đó định ghi đè root
directory của web server bằng một tập file nào đó. Nhưng nó không thể phát hiện được
nếu kẻ tấn công xóa một thư mục quan trọng của hệ điều hành như /etc trên UNIX
server. Trong khi đó một IDS của hệ điều hành có thể phát hiện được hacker định xóa
thư mục quan trọng của hệ điều hành nhưng không thể phát hiện được nếu hacker đó
định thực hiện một tấn công dạng mạng như LAND (trong đó một gói tin IP đã được
sửa đổi làm cho server rơi vào trạng thái lặp vô hạn, chiếm hết tài nguyên protocol
stack và không thể phục vụ được). Còn một network-based IDS với bộ dấu hiệu tĩnh có
thể phát hiện được nếu hacker thực hiện cuộc tấn công trên mạng dạng DoS attack như
LAND, nhưng nó không thể phát hiện được nếu kẻ tấn công thực hiện đánh cắp thông
tin credit card thông qua ứng dụng cơ sở dữ liệu. Việc kết hợp host-based và network-
based IDS có thể phát hiện được tất cả các kiểu tấn công trên.
E. Kiến trúc của IDS
Ngày nay người ta phân biệt các hệ thống IDS khác nhau thông qua việc phân tích và
kiểm tra khác nhau của các hệ thống. Một hệ thống IDS được xem là thành công nếu
chúng hội tụ được các yếu tố: thực hiện nhanh, chính xác, đưa ra các thông báo hợp lý,
phân tích được toàn bộ thông lượng, cảm biến tối đa, ngǎn chặn thành công và chính
sách quản lý mềm dẻo.Mỗi hệ thống có những ưu điểm cũng như khuyết điểm riêng
nhưng các hệ thống có thể được mô tả dưới mô hình tổng quát chung như sau:
1. Các nhiệm vụ thực hiện
Nhiệm vụ chính của các hệ thống phát hiện xâm phạm là bảo vệ cho một hệ thống máy
tính bằng cách phát hiện các dấu hiệu tấn công. Việc phát hiện các tấn công phụ thuộc
vào số lượng và kiểu hành động thích hợp. Để ngăn chặn xâm phạm tốt cần phải kết
hợp tốt giữa “bả và bẫy” được trang bị cho việc nghiên cứu các mối đe dọa. Việc làm
lệnh hướng sự tập trung của kẻ xâm nhập vào tài nguyên được bảo vệ là một nhiệm vụ
quan trọng khác. Toàn bộ hệ thống cần phải được kiểm tra một cách liên tục. Dữ liệu
được tạo ra từ các hệ thống phát hiện xâm nhập được kiểm tra một cách cẩn thận (đây là
nhiệm vụ chính cho mỗi IDS) để phát hiện các dấu hiệu tấn công (sự xâm phạm).
prevention
Simulation
Intrustion Monitoring
Analysis
Intruction detection
Notification
Respose
IDS Tasks
Monitoring Notification
Sessions
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 được 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 các 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 (Hình 2.3.1b). 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 nghiê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 báo cảnh sai, ví dụ những vấn đề xảy ra
do trục trặc về giao diện mạng hoặc việc gửi phần mô tả các tấn công hoặc các chữ ký
thông qua mail.
2. Kiến trúc của hệ thống phát hiện xâm nhập 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 thập 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) nếu gói tin đó được phát hiện là một tấn công của tin tặc. 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 sưu tập dữ liệu – 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 để định nghĩa chế độ lọc thông tin
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. Số chính sách này cùng với thông tin chính sách có thể được lưu trong hệ thống
được bảo vệ hoặc bên ngoài. Trong trường hợp nào đó, ví dụ khi luồng dữ liệu sự kiện
được truyền tải trực tiếp đến bộ phân tích mà không có sự lưu dữ liệu nào được thực
hiện. Điều này cũng liên quan một chút nào đó đến 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 liên quan với hệ thống bảo vệ, vì vậy có thể phát hiện được các
hành động nghi ngờ. Bộ phân tích sử dụng cơ sở dữ liệu chính sách phát hiện cho mục
này. Ngoài ra còn có các thành phần: dấu hiệu tấn công, profile hành vi thông thường,
các tham số cần thiết (ví dụ: các ngưỡng). Thêm vào đó, cơ sở dữ liệu giữ các tham số
cấu hình, gồm có 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 của riêng nó, gồm dữ liệ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).
IDS có thể được sắp đặt tập trung (ví dụ như được tích hợp vào trong tường lửa) hoặc
phân tán. Một IDS phân tán gồm nhiều IDS khác nhau trên một mạng lớn, tất cả chúng
truyền thông với nhau. Nhiều hệ thống tinh vi đi theo nguyên lý cấu trúc một tác nhân,
nơi các module nhỏ được tổ chức trên một host trong mạng được bảo vệ.
Vai trò của tác nhân là để kiểm tra và lọc tất cả các hành động bên trong vùng được bảo
vệ và phụ thuộc vào phương pháp được đưa ra – tạo phân tích bước đầu và thậm chí
đảm trách cả hành động đáp trả. Mạng các tác nhân hợp tác báo cáo đến máy chủ phân
tích trung tâm là một trong những thành phần quan trọng của IDS. DIDS có thể sử dụng
nhiều công cụ phân tích tinh vi hơn, đặc biệt được trang bị sự phát hiện các tấn công
phân tán. Các vai trò khác của tác nhân liên quan đến khả năng lưu động và tính
roaming của nó trong các vị trí vật lý. Thêm vào đó, các tác nhân có thể đặc biệt dành
cho việc phát hiện dấu hiệu tấn công đã biết nào đó. Đây là một hệ số quyết định khi
nói đến nghĩa vụ bảo vệ liên quan đến các kiểu tấn công mới.
Giải pháp kiến trúc đa tác nhân được đưa ra năm 1994 là AAFID (các tác nhân tự trị
cho việc phát hiện xâm phạm). Nó sử dụng các tác nhân để kiểm tra một khía cạnh nào
đó về các hành vi hệ thống ở một thời điểm nào đó. Ví dụ: một tác nhân có thể cho biết
một số không bình thường các telnet session bên trong hệ thống nó kiểm tra. Tác nhân
có khả năng đưa ra một cảnh báo khi phát hiện một sự kiện khả nghi. Các tác nhân có
thể được nhái và thay đổi bên trong các hệ thống khác (tính năng tự trị). Một phần trong
các tác nhân, hệ thống có thể có các bộ phận thu phát để kiểm tra tất cả các hành động
được kiểm soát bởi các tác nhân ở một host cụ thể nào đó. Các bộ thu nhận luôn luôn
gửi các kết quả hoạt động của chúng đến bộ kiểm tra duy nhất. Các bộ kiểm tra nhận
thông tin từ các mạng (không chủ từ một host), điều đó có nghĩa là chúng có thể tương
quan với thông tin phân tán. Thêm vào đó một số bộ lọc có thể được đưa ra để chọn lọc
và thu thập dữ liệu.
này là chúng ít khi tạo ra cảnh báo sai do dựa trên mô tả chi tiết về kiểu tấn công. Tuy
nhiên mô hình này có điểm yếu, trước tiên với số lượng kiểu tấn công đa dạng với
nhiều lỗ hổng khác nhau theo thời gian sẽ làm cơ sở dữ liệu trở nên quá lớn, gây khó
khăn trong việc phân tích, thêm nữa chúng chỉ có thể phát hiện được các kiểu tấn công
đã biết trước nên cần phải được cập nhật thường xuyên khi phát hiện ra những kiểu tấn
công và lỗ hổng mới.
Match ?
Audit Data Knowledge Base
Attack
Stateless IDS coi các sự kiện là độc lập với nhau, khi việc xử lý sự kiện hiện tại đã
hoàn tất thì thông tin liên quan đến sự kiện đó sẽ bị hủy đi. Phương pháp tiếp cận này
đã đơn giản hóa việc thiết kế hệ thống, đặc biệt là A–box, vì nó không cần phải lưu trữ
và bảo quản thông tin về các hành động trước đây. Hệ stateless thường có hiệu năng cao
đặc biệt là tốc độ xử lý vì bước phân tích được giảm thành việc so sánh hành động đó
với cơ sở dữ liệu, không cần phải xử lý thêm gì nữa.
Tuy nhiên, hệ stateless cũng có nhiều giới hạn. Trước tiên là nó không có khả năng phát
hiện các hành động có ý đồ xấu bao gồm chuỗi các hành động khác nhau, vì hệ này chỉ
xử lý từng hành động một và không lưu chúng lại. Còn nếu ta đưa dấu hiệu về các hành
động có ý đồ xấu dựa trên các bước đầu tiên của chuỗi, thì có thể tạo ra số lượng lớn
các cảnh báo nhầm, vì hành động đó có thể là một hành động thông thường, phải nằm
trong chuỗi các hành động khác mới có khả năng xâm nhập. Điều này ngược với lợi thế
chính của hệ misuse–based IDS.
Hơn nữa, hệ stateless có thể trở thành mục tiêu cho kiểu tấn công nhằm tạo ra lượng
cảnh báo lớn. Các công cụ có thể phân tích cơ sở dữ liệu các kiểu tấn công và tạo ra
chuỗi các sự kiện được mô tả là có ý đồ xấu, gây nên “alert storm” làm tê liệt IDS và
che dấu ý đồ tấn công thực.
Stateful IDS lưu trữ thông tin về các sự kiện trong quá khứ. Vì thế, tác động của các
sự kiện là có liên quan đến nhau trong một chuỗi các sự kiện. Trong khi kiểu tiếp cận
này làm tăng độ phức tạp cho hệ thống, đặc biệt là A–box, nó cho thấy lợi thế rõ rệt.
Stateful tool có khả năng phát hiện được các cuộc tấn công bao gồm nhiều bước, hơn
nữa nó cũng ít tạo ra “alert storm” như đã nói đến ở trên vì việc tạo ra các bước của một
kiểu tấn công sẽ khó khăn hơn. Tuy nhiên, hệ thống này dễ bị tấn công bằng kiểu tấn
công trạng thái, khi kẻ tấn công làm hệ IDS phải xử lý một lượng thông tin lớn, làm
giảm hiệu năng của hệ thống.
Stateful IDS phát hiện tấn công dựa trên sự kiện hiện tại và quá khứ
Một kỹ thuật được dùng để mô tả kiểu tấn công phức tạp là Sự chuyển tiếp trạng thái
(state transition), trong đó state là trạng thái tạm thời của hệ thống, thể hiện giá trị vùng
nhớ của hệ. Những hành động có ý đồ xấu sẽ chuyển trạng thái của hệ từ trạng thái an
toàn ban đầu sang trạng thái có hại cuối cùng, thông qua các trạng thái trung gian. Kỹ
thuật này yêu cầu phân tích những biến đổi nhằm dẫn hệ tới trạng thái nguy hiểm. IDS
sẽ tìm kiếm sự biến đổi đó, vì thế hệ này thuộc dạng stateful. Mô hình chuyển đổi trạng
thái này có khả năng diễn tả rất tốt các dạng tấn công, kể cả việc mô tả bằng đồ họa.
Trong thực tế, các kiểu tấn công theo nhiều bước rất phù hợp để mô tả bằng mô hình
chuyển đổi trạng thái. Nó cũng cung cấp phản hồi rất chi tiết về cảnh báo, vì toàn bộ
chuỗi hành động gây cảnh báo có thể được cung cấp. Hơn nữa, nó cho phép triển khai
phương thức đối phó trước khi cuộc tấn công đi đến bước cuối cùng, điều này hiệu quả
hơn là chỉ phát hiện ra cuộc tấn công.
Điểm bất lợi chính của kỹ thuật chuyển đổi trạng thái là nó yêu cầu khả năng tính toán
cao nếu hệ thống cần theo dõi nhiều cuộc tấn công cùng lúc.
2. Anomaly – based system
Anomaly–based system dựa trên giả thiết là những hành động không bình thường là có
ý đồ xấu, do đó trước tiên hệ cần xây dựng mẫu hành động bình thường của hệ thống
rồi mới xác định các hành động không bình thường (như những hành động không phù
hợp với mẫu hành động đã cho).
Statistically Anomalous ?
Audit Data System Profile Attack
Anomaly-based IDS
Lợi thế của hệ thống này là nó có thể phát hiện được những kiểu 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 là từ những hành động bình thường, chỉ có một
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 đó.
Nghiên cứu đã chứng minh rằng hầu hết các hệ thống có đặc điểm chung là tính đa
dạng và thay đổi. Hơn nữa, sự nhập nhằng của giao thức tầng dưới và sự khác biệt của
các ứng dụng làm việc phát hiện các hành vi không bình thường trong một môi trường
nhất định là rất khó, vì sự không bình thường là đặc tính của môi trường.
Cuối cùng, một vài kiểu tấn công mới có khả năng giả mạo các hành động hợp pháp và
có thể không bị phát hiện. Vì thế ta có những nghiên cứu về các hệ anomaly – based
IDS chuyên sâu và có thể ứng dụng được vào việc phát hiện xâm nhập trái phép trong
hệ IDS.
III.Phân loại các dấu hiệu
1.Phát hiện dấu hiệu không bình thường
Hệ thống phát hiện xâm phạm phải có khả năng phân biệt giữa các hoạt động thông
thường của người dùng và hoạt động bất thường để tìm ra được các tấn công nguy hiểm
kịp thời. Mặc dù vậy, việc dịch các hành vi người dùng (hoặc session hệ thống người
dùng hoàn chỉnh) trong một quyết định liên quan đến bảo mật phù hợp thường không
đơn giản – nhiều hành vi không được dự định trước và không rõ ràng (Hình 2). Để phân
loại các hành động, IDS phải lợi dụng phương pháp phát hiện dị thường, đôi khi là hành
vi cơ bản hoặc các dấu hiệu tấn công,… một thiết bị mô tả hành vi bất thường đã biết
(phát hiện dấu hiệu) cũng được gọi là kiến thức cơ bản.
2.Các mẫu hành vi thông thường- phát hiện bất thường
Các mẫu hành vi thông thường rất hữu ích trong việc dự đoán người dùng và hành vi hệ
thống. Do đó các bộ phát hiện bất thường xây dựng profile thể hiện việc sử dụng thông
thường và sau đó sử dụng dữ liệu hành vi thông thường để phát hiện sự không hợp lệ
giữa các profile và nhận ra tấn công có thể.
Để hợp lý với các profile sự kiện, hệ thống bị yêu cầu phải tạo ra profile người dùng
ban đầu để “đào tạo” hệ thống quan tâm đến sự hợp pháp hóa hành vi người dùng. Có
một vấn đề liên quan đến việc làm profile ở đây đó là: khi hệ thống được phép “học”
trên chính nó, thì những kẻ xâm nhập cũng có thể đào tạo hệ thống ở điểm này, nơi mà
các hành vi xâm phạm trước trở thành hành vi thông thường. Một profile không tương
thích sẽ có thể được phát hiện tất cả các hoạt động xâm nhập có thể. Ngoài ra, còn có
một sự cần thiết nữa đó là nâng cấp profile và “đào tạo” hệ thống, một nhiệm vụ khó
khăn và tốn thời gian.
Cho một tập các profile hành vi thông thường, mọi thứ không hợp với profile được lưu
sẽ được coi như là một hoạt động nghi ngờ. Do đó, các hệ thống này được đặc trưng bởi
hiệu quả phát hiện rất cao (chúng có thể nhận ra nhiều tấn công mặc dù tấn công đó là
mới có trong hệ thống), tuy nhiên chúng lại có hiện tượng là tạo các cảnh báo sai về
một số vấn đề.
Ưu điểm của phương pháp phát hiện bất thường này là: có khả năng phát hiện các tấn
công mới khi có sự xâm nhập; các vấn đề không bình thường được nhận ra không cần
nguyên nhân bên trong của chúng và các tính cách; ít phụ thuộc vào IDS đối với môi
trường hoạt động (khi so sánh với các hệ thống dựa vào dấu hiệu); khả năng phát hiện
sự lạm dụng quyền của người dùng.
Nhược điểm lớn nhất của phương pháp này là: Xác suất cảnh báo sai nhiều. Hiệu suất
hệ thống không được kiểm tra trong suốt quá trình xây dựng profile và giai đoạn đào
tạo. Do đó, tất cả các hoạt động người dùng bị bỏ qua trong suốt giai đoạn này sẽ không
hợp lý. Các hành vi người dùng có thể thay đổi theo thời gian, do đó cần phải có một sự
nâng cấp liên tục đối với cơ sở dữ liệu profile hành vi thông thường.Sự cần thiết về đào
tạo hệ thống khi thay đổi hành vi sẽ làm hệ thống không có được phát hiện bất thường
trong giai đoạn đào tạo (lỗi tiêu cực).
3.Các dấu hiệu có hành vi xấu – phát hiện dấu hiệu
Thông tin xử lý hệ thống trong các hành vi bất thường và không an toàn (dấu hiệu tấn
công – dựa vào các hệ thống) thường được sử dụng trong các hệ thống phát hiện xâm
nhập thời gian thực (vì sự phức tạp trong tính toán của chúng không cao).
Các dấu hiệu hành vi xấu được chia thành hai loại:
Các dấu hiệu tấn công – chúng miêu tả các mẫu hoạt động có thể gây ra mối đe
dọa về bảo mật. Điển hình, chúng được thể hiện khi mối quan hệ phụ thuộc thời
gian giữa một loạt các hoạt động có thể kết hợp lại với các hoạt động trung tính.
Các chuỗi văn bản được chọn – các dấu hiệu hợp với các chuỗi văn bản đang tìm
kiếm các hoạt động nghi ngờ.
Bất kỳ hoạt động nào không rõ ràng đều có thể bị xem xét và ngăn cản. Do đó, độ chính
xác của chúng rất cao (số báo cảnh sai thấp). Tuy nhiên chúng không thực hiện một
cách hoàn toàn và không ngăn cản hoàn toàn các tấn công mới.
Có hai phương pháp chính đã kết hợp sự phát hiện dấu hiệu này:
Việc kiểm tra vấn đề ở các gói lớp thấp hơn – nhiều loại tấn công khai thác lỗ
hổng trong các gói IP, TCP, UDP hoặc ICMP. Với kiểm tra đơn giản về tập các
cờ trên gói đặc trưng hoàn toàn có thể phát hiện ra gói nào hợp lệ, gói nào
không. Khó khăn ở đây có thể là phải mở gói và lắp ráp chúng lại. Tương tự, một
số vấn đề khác có thể liên quan với lớp TCP/IP của hệ thống đang được bảo vệ.
Thường thì kẻ tấn công hay sử dụng cách mở các gói để băng qua được nhiều
công cụ IDS.
Kiểm tra giao thức lớp ứng dụng – nhiều loại tấn công (WinNuke) khai thác các
lỗ hổng chương trình, ví dụ dữ liệu đặc biệt đã gửi đến một kết nối mạng đã
được thành lập. Để phát hiện có hiệu quả các tấn công như vậy, IDS phải được
bổ sung nhiều giao thức lớp ứng dụng.
Các phương pháp phát hiện dấu hiệu có một số ưu điểm dưới đây: tỉ lệ cảnh báo sai
thấp, thuật toán đơn giản, dễ dàng tạo cơ sở dữ liệu dấu hiệu tấn công, dễ dàng bổ sung
và tiêu phí hiệu suất tài nguyên hệ thống tối thiểu.
Một số nhược điểm:
Khó khăn trong việc nâng cấp các kiểu tấn công mới.
Chúng không thể kế thừa để phát hiện các tấn công mới và chưa biết. Phải nâng
cấp một cơ sở dữ liệu dấu hiệu tấn công tương quan với nó.
Sự quản lý và duy trì một IDS cần thiết phải kết hợp với việc phân tích và vá các
lỗ hổng bảo mật, đó là một quá trình tốn kém thời gian.
Kiến thức về tấn công lại phụ thuộc vào môi trường hoạt đông – vì vậy, IDS dựa
trên dấu hiệu những hành vi xấu phải được cấu hình tuân thủ những nguyên tắc
nghiêm ngặt của nó với hệ điều hành (phiên bản, nền tảng, các ứng dụng được sử
dụng…)
Chúng dường như khó quản lý các tấn công bên trong. Điển hình, sự lạm dụng
quyền người dùng xác thực không thể phát hiện khi có hoạt động mã nguy hiểm
(vì chúng thiếu thông tin về quyền người dùng và cấu trúc dấu hiệu tấn công).
Các sản phẩm IDS thương mại thường sử dụng phương pháp phát hiện dấu hiệu
cho hai lý do. Trước tiên, nó dễ dàng hơn trong việc cung cấp dấu hiệu liên quan
đến tấn công đã biết và để gán tên đối với một tấn công. Thứ hai, cơ sở dữ liệu
dấu hiệu tấn công được nâng cấp thường xuyên (bằng cách thêm các dấu hiệu tấn
công mới phát hiện).
4.Tương quan các mẫu tham số
Phương pháp phát hiện xâm nhập khá khôn ngoan hơn các phương pháp trước. Nó được
sinh ra do nhu cầu thực tế rằng, các quản trị viên kiểm tra các hệ thống khác nhau và
các thuộc tính mạng (không cần nhắm đến các vấn đề bảo mật). Thông tin đạt được
trong cách này có một môi trường cụ thể không thay đổi. Phương pháp này liên quan
đến sử dụng kinh nghiệm hoạt động hàng ngày của các quản trị viên như các vấn đề cơ
bản cho việc phát hiện dấu hiệu bất thường. Nó có thể được xem như trường hợp đặc
biệt của phương pháp Profile thông thường. Sự khác nhau ở đây nằm ở chỗ trong thực
tế, một profile là một phần hiểu biết của con người.
Đây là một kỹ thuật mạnh, bời vì nó cho phép xâm nhập dựa trên các kiểu tấn công
không biết. Hoạt động hệ thống có thể phát hiện các thay đổi tinh vi không rõ ràng đối
với chính hoạt động đó. Nó kế thừa những nhược điểm trong thực tế là con người chỉ
hiểu một phần giới hạn thông tin tại một thời điểm, điều đó có nghĩa là các tấn công nào
đó có thể vượt qua mà không bị phát hiện.
III.CÁCH PHÁT HIỆN CÁC KIỂU TẤN CÔNG THÔNG DỤNG CỦA IDS
1. Denial of Service attack (Tấn công từ chối dịch vụ)
Cho dù đa dạng về kích cỡ và hình dạng, từ subtle malformed packet đến full-blown
packet storm, 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ể tiếp cận 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.
Network flooding bao gồm SYN flood, Ping flood hay multi echo request,…
Phá hoại hệ thống, thiết bị bao gồm Ping of Death, Teardrop, Bonk, LAND, 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, gây quá tải ứng dụng bao gồm các kỹ thuật phá hoại và gây quá tải hệ
thống bằng cách lợi cụ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 lớn email, hay một số
lượng lớn yêu cầu tới trang web 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.
2. Scanning và Probe (Quét và thăm dò)
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 chúng 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ò bao gồm
SATAN, ISS Internet Scanner, NETA CyberCop, Asmodeus, và AXENT NetRecon.
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 ứ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. Yếu tố “time-to-response” rất quan trọng trong trường hợp này
để có thể chống các kiểu tấn công như vậy trước khi có thiệt hại. Host-based IDS 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.
Dự đoán và bẻ khóa 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, ta có một số công cụ như
LOPHT Crack, pwldump,…
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 mã hóa chứa mật mã hay chạy
các chương trình bẻ khó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ã.
4. Privilege-grabbing (Chiếm đặc quyền)
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à “Administrator”, trên NetWare là
“Supervisor”. Các câu lệnh và mã thực hiện cho kỹ thuật trên có thể kiếm được trên
Internet, ví dụ như khai thác lỗi tràn bộ đệm của hệ điều hành hay phần mềm ứng dụng
để ghi đè các segment vào bộ nhớ. Khi chiến thuật này được sử dụng với chương trình
hệ điều hành đặc quyền, nó thường gây lỗi hỏng core, dẫn đến kẻ tấn công có thể có
quyền truy cập “superuser”. 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, scrip 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ủ.
Do Host-based IDS có thể tìm kiếm được những người dùng không có đặc quyền đột
nhiên trở thành có đặc quyền mà không qua hệ thống thông thường, Host-based IDS có
thể ngừng hành động này. Ngoài ra hành động chiếm đặc quyền của hệ điều hành và
ứng dụng có thể được định nghĩa trong tập các dấu hiệu tấn công của Network-based
IDS nhằm ngăn chặn việc tấn công xảy ra.
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. Các file quan trọng được quản lý bằng Host IDS có thể đảm
bảo rằng chương trình và file quan trọng của hệ điều hành không bị điều khiển. Kết hợp
với các sự kiện khác, IDS có thể xác định được cố gắng cài đoạn mã nguy hiểm, ví dụ
như nó có thể phát hiện được ai đó định thay chương trình ghi log bằng một backdoor.
Network-based IDS cũng có thể được chỉ thị để quản lý hệ thống và file ảnh cho mục
đích kiểm tra tính toàn vẹn.
6. Cyber vandalism (Hành động phá hoại trên máy móc)
Cyber Vandalism bao gồm: thay đổi trang web, applet, 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 đến cyber vandalism. Ví dụ như mọi
thay đổi đối với trang web có thể được ghi lại tại biên bản kiểm kê của thiết bị mà trang
web nằm trên đó. Không chỉ được cấu hình để quản lý mọi thay đổi trên trang web,
Host-based IDS còn có thể thực hiện các hành động đối phó, là những hành động được
Security Administrator cấu hình. Network-based IDS thì có thể sử dụng dấu hiệu tấn
công được định nghĩa trước để phát hiện chính xác việc truy 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.
7. Proprietary data theft (Ăn trộm dữ liệu quan trọng)
Mặc dù hơn 80% các cuộc tấn công liên quan đến thông tin quan trọng đều xảy ra ngay
trong tổ chức đó, số các cuộc tấn công từ bên ngoài đã liên tục tăng trong một vài năm
qua. 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ư việc sao chép dữ liệu, nghe trộm việc truyền nhằm lấy dữ liệu quan trọng.
Giải pháp của IDS: Mô hình Host-based IDS thực hiện việc quản lý các dữ liệu quan
trọng có thể phát hiện các file bị sao chép bất hợp pháp. Trong một số trường hợp IDS
có thể dựa vào biên bản của hệ điều hành, nhưng trong nhiều trường hợp việc ghi biên
bản có chứa quá nhiều overhead (như với Winddows NT). Trong các trường hợp đó,
Host-based IDS cần phải thực hiện việc quản lý riêng biệt với các file quan trọng. Còn
Network-based IDS có thể được chỉnh sửa để quản lý việc truy nhập vào các file quan
trọng và xác định việc truyền thông có chứa key word. Trong một số trường hợp rất khó
có thể phát hiện được một host nghe trộm trên mạng, thì phần mềm IDS trên host đó có
thể phát hiện được host đã bị đặt ở trạng thái ngẫu nhiên và đang nghe trộm việc tuyền
thông.
8. Fraud, waste, abuse (Gian lận, lãng phí và lạm dụng)
Gian lận, lãng phí và lạm dụng tài nguyên máy tính và vấn đề liên quan đến kinh tế
trong thời kỳ hiện nay. Gian lận liên quan đến việc chuyển tiền bất hợp pháp, trộm số
credit card, can thiệp vào tài khoản nhà băng, và thao túng chương trình kiểm tra viết
(check writing). Lãng phí và lạm dụng xảy ra khi tài nguyên được sử dụng (tình cờ hay
chủ đích) cho các công việc đi ngược lại với mục đích của tổ chức.
Giải pháp của IDS: Network-based IDS có thể được thay đổi nhằm ngăn các URL, tuy
nhiên các chương trình chuyên dụng để ngăn URL có liên hệ với firewall có thể hoạt
động hiệu quả hơn, có thể duy trì một danh sách URL động và chính sách lạm dụng dựa
trên USERID. Host-based IDS có thể thực thi một chính sách do công ty đặt ra, các truy
nhập trái phép và sửa đổi file hệ thống có thể được phát hiện thông qua host-based IDS
cũng như network-based IDS. Bất cứ thay đổi có thể ngay lâp tức được ghi trong biên
bản hệ thống, agent có thể dễ dàng theo dõi các hành động đó.
khớp chính xác, nó không thể phát hiện ra sự tấn công này. Một preprocessor có thể
sắp xếp lại chuỗi đó để nó có thể phát hiện được.
Preprocessor cũng có thể sử dụng cho những gói phân mảnh. Khi một gói dữ
liệu có kích thước lớn truyền vào một host, gói đó thường bị phân mảnh. Cho ví dụ,
kích thước mặc định lớn nhất cho gói dữ liệu trong mạng Ethernet thường là 1500
byte. Giá trị này được điều khiển bởi giá trị MTU (Maximum Transmission Unit) cho
giao diện mạng. Điều này có nghĩa là nếu bạn gửi dữ liệu lớn hơn 1500 byte, nó sẽ cắt
thành nhiều gói, mỗi gói phân mảnh đó có kích thước nhỏ hơn hoặc bằng 1500 byte.
Hệ thống nhận sẽ tái hợp để thành gói dữ liệu nguyên thủy. Trên IDS, trước khi
bạn áp dụng những rule hay tìm một signature, bạn phải tái hợp gói. Cho ví dụ,
phân nửa dấu hiệu có thể cho thấy trong một đoạn này và nửa kia trong đoạn khác. Để
phát hiện chính xác dấu hiệu, bạn phải kết hợp tất cả phân đoạn của mảnh. Hacker sử
dụng sự phân mảnh để đánh bại những hệ thống IDS. Preprocessor thường được dùng
để bảo vệ những loại tấn công này. Preprocessor trong Snort có thể phân mảnh gói, giải
mã HTTP URI, tái hợp luồng TCP, v.v.. Những chức năng này rất quan trọng trong
thành phần IDS.
Dectection Engine (Bộ phận phát hiện):
Detection engine là thành phần quan trọng nhất trong Snort. Nó chịu trách
nhiệm phát hiện nếu có hành vi xâm nhập trong một gói. Detection engine tận dụng
những rule Snort để làm việc này. Những rule được đọc trong cấu trúc dữ liệu bên
trong hay buộc chặt chúng vào nơi mà chúng sẽ so khớp với tất cả các gói. Nếu một
gói nào đó khớp với rule, hành động thích hợp sẽ sinh ra, chẳng hạn gói đó sẽ bị
hủy. Những hành động đó có thể là ghi gói hay sinh cảnh báo.
Detection engine là một phần tiêu chuẩn thời gian (time-critical) của Snort. Phụ
thuộc vào sức khỏe của hệ thống bạn và có bao nhiêu rule được định nghĩa, nó có thể
tiêu tốn bao nhiêu thời gian cho công việc đáp ứng các gói này. Nếu lưu lượng trên hệ
thống mạng của bạn là khá cao khi Snort làm việc trong chế độ NIDS, bạn có thể
hủy những gói. Sự vận hành của Detection engine phụ thuộc vào các yếu tố sau:
• Số rule trên đó.
• Sức mạnh của hệ thống trên đó có Snort đang chạy.
• Thông lượng bên trong đó.
• Lưu lượng trên mạng
Khi thiết kế một NIDS, bạn phải giữ tất cả hồ sơ kỹ thuật trong đó.
Nên nhớ rằng hệ thống phát hiện có thể khảo sát tỉ mỉ và áp dụng rule trên nhiều
phần của gói dữ liệu. Những phần này có thể là:
• IP header của gói.
• Header lớp transport. Header gồm: TCP, UDP, và những header lớp
transport khác. Nó cũng có thể làm việc trên ICMP header.
• Header lớp application. Nó gồm có: DNS header, FTP header, SNMP
header, SMTP header. Bạn có thể phải sử dụng nhiều phương pháp trực tiếp tại
header lớp application, chẳng hạn như tìm kiếm offset của dữ liệu.
• Payload của dữ liệu. Điều này giúp bạn tạo ra một rule dùng cho
detection engine để tìm một chuỗi bên trong dữ liệu.
Detection engine làm việc khác nhau trong mỗi phiên bản Snort khác nhau. Trong
tất cả phiên bản Snort 1.x, detection engine ngừng xử lý trên gói đó khi một rule
được so khớp trên gói đó. Phụ thuộc vào rule, detection engine thực hiện những hành
động thích hợp như ghi log file hay sinh một cảnh báo. Điều này có nghĩa là nếu một
gói khớp với tiêu chuẩn được định nghĩa trong nhiều rule, chỉ rule đầu tiên được áp
dụng vào gói đó mà không tìm kiếm sự so khớp khác. Đây là một vấn đề. Một rule
thiếu trọn vẹn sẽ sinh ra một cảnh báo không trọn vẹn, thâm chí nếu một rule khá đầy
đủ (tương ứng với một cảnh báo tốt) có thể nằm sau rule trước nó. Vấn đề này đã được
sửa trong Snort phiên bản 2, tất cả các rule đều được so khớp vào một gói trước khi
sinh một cảnh báo. Sau khi so khớp tất cả các rule, rule nào trọn vẹn nhất sẽ được chọn
để sinh cảnh báo.
Detection engine trong Snort 2.0 đã được làm lại một cách hoàn chỉnh để nó so
sánh tốt hơn, phát hiện sớm hơn so với các phiên bản trước.
Logging và Alerting System (Hệ thống ghi và cảnh báo) :
Phụ thuộc vào detection engine tìm trong gói, gói có thể được dùng để ghi hành
động hay sinh cảnh báo. Việc ghi lưu trong những text file đơn giản, loại file tcpdump
hay những hình thức ghi khác. Mặc định tất cả những log file được lưu trong
/snort/log/. Bạn có thể sử dụng dòng lệnh “–l” để thay đổi vị trí sinh log file hay cảnh
báo. Có nhiều lựa chọn dòng lệnh sẽ được thảo luận trong phần sau và chi tiết thông
tin về cách ghi log file hay cảnh báo.
Output Modules (Bộ phận đầu ra) :
Output modules hay plug-in thực hiện những hoạt động khác nhau phụ thuộc bạn
muốn lưu kết quả sinh ra bởi logging và cảnh báo thế nào. Về cơ bản, những
modules này điều khiển loại kết quả sinh ra bởi hệ thống logging và cảnh báo. Phụ
thuộc vào sự cấu hình, Output modules có thể làm những việc sau:
• Đơn giản chỉ ghi vào snort/log/ hay những thư mục khác
• Gửi SNMP traps
• Gửi thông điệp đến syslog.
• Ghi vào cơ sở dữ liệu như MySQL hay Oracle.
• Sinh ra dẫn xuất eXtensible Markup Language (XML)
• Bổ sung cấu hình trên router và firewall.
• Gửi thông điệp Server Message Block (SMB) đến hệ thống Microsoft
Window. Những công cụ khác cũng có thể gửi cảnh báo trong những định dạng khác
như e-mail hay qua giao diện web.
Bảng sau đây cho ta thấy những thành phần khác nhau của một IDS:
Tên Mô tả
Packet Decoder Chuẩn bị gói cho việc xử lý
Preprocessor hay Input plugin Dùng để bình thường hoá tiêu đề giao
thức, phát hiện sự bất thường, tái hợp
gói và tái hợp luồng TCP
Detection Engine Áp dụng rule lên gói
Logging and Alerting System Sinh thông điệp cảnh báo và ghi lại log
Output Modules Xử lý cảnh báo, ghi và sinh kết quả
cuối cùng.
Rule Header
Action dùng để xác định loại hành động mà nó lấy về khi tiêu chuẩn gặp được và
một rule được so sánh chính xác một gói dữ liệu. Những hoạt động điển hình là
sinh ra một cảnh báo hoặc ghi thông điệp hoặc diện chứng cho rule khác.
Protocol dùng để áp dụng rule lên gói chỉ với một giao thức riêng. Đây là tiêu
chuẩn đầu tiên giám sát trong rule. Bạn cũng có thể sử dụng những thành phần khác
để ngăn chặn những địa chỉ từ một mạng đầy đủ. Chú ý rằng có 2 trường địa
chỉ trong rule. Địa chỉ nguồn và đích được xác định dựa trên trên trường
direction. Cho một ví dụ, nếu trường direction là “”, địa chỉ phía bên trái là nguồn,
địa chỉ bên phải là đích.
Trong giao thức TCP/UDP, port xác định cổng nguồn và đích của gói khi rule áp
dụng lên đó. Trong trường hợp những giao thức lớp network như IP và ICMP,
port numbers không có ý nghĩa.
Cho ví dụ, rule sau đây sẽ sinh ra cảnh báo khi nó phát hiện gói ping ICMP (ICMP
ECHO REQUEST) với TTL bằng 100:
alert icmp any any -> any any (msg: "Ping with TTL=100"; \
ttl: 100;)
Phần nằm trước dấu ngoặc đơn gọi là rule header. Phần trong dấu ngoặc đơn là rule
option. Header chứa những phần sau:
Một rule action (hành động của luật). Trong rule trên, action là “alert”, có
nghĩa là một cảnh báo sẽ sinh ra khi điều kiện bắt gặp. Nhớ rằng những gói được
ghi bằng mặc định khi cảnh báo phát ra. Phụ thuộc vào trường action, rule option có
thể chứa tiêu chuẩn cho rule.
Protocol (giao thức). Ở đây là ICMP, nghĩa là rule chỉ áp dụng lên tất cả
gói ICMP. Trong Snort detection engine, nếu giao thức của gói không phải
ICMP, rule sẽ không làm gì trên gói đó để tiết kiệm thời gian xử lý của CPU. Thành
phần protocol là rất quan trọng khi bạn muốn áp dụng Snort rule chỉ trên những gói
của một loại riêng biệt.
Địa chỉ nguồn và cổng nguồn. Trong ví dụ này cả hai đều là “any”, có
nghĩa là rule sẽ áp dụng lên tất cả các gói đến từ nhiều nguồn. Dĩ nhiên port number
sẽ không áp dụng lên gói ICMP. Port number chỉ thích hợp trong trường hợp
protocol là TCP hay UDP.
Direction. Trong trường hợp này, nó là ký hiệu từ trái sang phải. Nói lên địa
chỉ và port number bên trái dấu là nguồn còn bên phải là đích. Điều đó
cũng có nghĩa rằng rule sẽ áp dụng lên gói đi từ nguồn đến đích. Bạn cũng có thể
dùng dấu để định nghĩa địa chỉ nguồn/đích cho gói. Ký tự <> cũng có thể sử dụng
để áp dụng rule lên gói đi từ 2 bên.
Địa chỉ đích là cổng đích. Trong ví dụ này cả hai đều là “any”, có nghĩa
là rule sẽ áp dụng lên tất cả các gói không quan tâm đến địa chỉ đích. Direction
trong rule không đóng vai trò gí cả bởi vì rule được áp dụng lên tất cả các gói ICMP di
chuyển cả hai bên, do đã sử dụng từ khóa “any” trong cả hai thành phần địa chỉ
nguồn và đích.
Rule Option:
Rule option theo sau rule header và được đặt trong cặp dấu ngoặc đơn. Có thể
một lựa chọn hay nhiều lựa chọn truyền vào cùng dấu. Nếu bạn sử dụng nhiều
lựa chọn, dạng lựa chọn này là AND. Hành động trong rule header chỉ
được gọi khi tất cả những tiêu chuẩn trong lựa chọn là đúng. Bạn đã sử dụng
option như msg và ttl trong ví dụ trước rồi đó. Tất cả những lựa chọn được định
nghĩa bởi từ khóa. Những Rule option chứa các đối số. Thường thì những lựa
chọn có 2 phần: một từ khóa và một đối số. Những đối số truyền vào từ lựa chọn
từ khóa bằng một dấu “:”. Chẳng hạn như:
msg: "Detected confidential";
Lựa chọn msg là từ khóa và “Detected confidential” là đối số cho từ khóa này.
Sau đây là những từ khóa thông dụng . Nó hoạt động trên những giao thức
riêng, cho nên có ý nghĩa khác nhau đi theo giao thức.
Về nội dung (lớp application):
Từ khóa content:
Một chức năng quan trọng của Snort, nó có khả năng tìm mẫu dữ liệu bên trong gói.
Mẫu này có thể hiển thị ở dạng chuỗi ASCII hay nhị phân trong hình thức mã hexa.
Rule sau đây phát hiện một mẫu “GET” trong phần dữ liệu của gói TCP xuất phát
từ địa chỉ 192.168.1.0. từ khóa GET thường được sử dụng cho nhiều loại
tấn công HTTP; tuy nhiên ở đây rule chỉ giúp cho bạn hiểu như thế nào từ khóa này
làm việc mà thôi:
alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any \
(content: "GET"; msg: "GET matched";)
Từ khóa offset sử dụng để bắt đầu tìm trong khoảng nào đó từ điểm bắt đầu của
phần dữ liệu của gói. Dùng một con số làm đối số cho từ khóa này. Ví dụ sau sẽ bắt đầu
tìm từ “HTTP” sau 4 byte kể từ byte đầu tiên trong gói.
alert tcp 192.168.1.0/24 any -> any any \
(content: "HTTP"; offset: 4; msg: "HTTP matched";)
Từ khóa depth định nghĩa điểm để Snort ngừng tìm kiếm mẫu.
Từ khóa depth:
Chỉ định một giới hạn dưới cho việc lấy mẫu. Dùng depth cho phép bạn chỉ định
một khoảng bắt đầu từ byte đầu tiên của gói. Dữ liệu sau khoảng này không lấy mẫu
nữa. Nếu bạn kết hợp offset và depth cùng với content, bạn có thể chỉ ra vùng dữ liệu
mà bạn muốn lấy mẫu. Ví dụ bạn muốn tìm từ “HTTP”, lấy mẫu 4 byte và chỉ xét trong
40 byte đầu tiên:
alert tcp 192.168.1.0/24 any -> any any (content: \
"HTTP"; offset: 4; depth: 40; msg: "HTTP matched";)
Nó rất quan trọng khi bạn muốn giới hạn công việc tìm kiếm trong gói. Cho ví dụ,
thông tin về yêu cầu HTTP GET được tìm thấy từ đầu gói. Không cần phải tìm toàn bộ
gói. Nhiều gói được capture với kích thước rất lớn, nó sẽ tốn nhiều thời gian để tìm
kiếm.
Từ khóa nocase:
Nocase thường kết hợp với content. Nó không có đối số. Nó chỉ giúp tìm mẫu trong
dữ liệu không phân biệt chữ hoa hay thường.
Từ khóa flow:
Flow được sử dụng để áp dụng một rule trên những phiên TCP đến những gói trong
phương hướng riêng. Từ khóa này dùng xác định phương hướng. Những lựa chọn có
thể sử dụng cho từ khóa này xác định phương hướng:
to_client
to_server
from_client
from_server
Những lựa chọn này lần đầu có thể gây cho bạn khó hiểu. Từ “to” mang ý nghĩa là đáp
ứng (response) và “from” mang nghĩa là yêu cầu (request).
Những lựa chọn khác dưới đây cũng có thể sử dụng để áp dụng rule vào các trạng thái
khác nhau của kết nối TCP.
Lựa chọn stateless, áp dụng rule mà không cần xem trạng thái của phiên TCP
Lựa chọn established, áp dụng rule mà để xác lập chỉ những phiên TCP
Lựa chọn no_stream, bật những rule để áp dụng vào gói mà không cần xây dựng từ
một luồng.
Lựa chọn stream_only, áp dụng rule chỉ trên những gói đã xây dựng từ một luồng.
Luồng TCP (TCP Stream)được xử lý bởi bộ tiền xử lý stream4 (thảo luận trong
phần sau). Lựa chọn stateless và established liên kết đến trạng thái TCP.
Lựa chọn về IP:
Từ khóa fragbits:
Tiêu đề IP (IP header) chứa 3 cờ bit, dùng để phân mảnh và tái hợp gói IP. Chức
năng các cờ như sau:
Bit dành riêng (RB – Reserved Bit), dùng cho tương lai.
Bit không phân mảnh (DF – Don’t Fragment Bit). Nếu bit này bật, nó cho
biết gói IP sẽ không phân mảnh.
Bit có nhiều phân mảnh (MF – More Fragments Bit).
D tương đương DF. Tương tự, R là RB, M là MF. Bạn cũng có thể dùng dấu “!”
trong rule. Ngoài ra, đi chung với “D,R,M”, ta cũng thường thấy các từ “+,-”. Nó có ý
nghĩa, nếu là “+” tức là gắn thêm bit cờ với những bit khác, nếu là “-” thì bỏ bớt một số
bit.
Từ khóa ipopts:
Trong IPv4, tiêu đề là 20 byte. Bạn có thể thêm những lựa chọn cho tiêu đề IP này.
Chiều dài của phần lựa chọn có thể lên đến 20 byte. Lựa chọn IP dùng cho những mục
đích khác nhau, đó là:
Record Route (rr)
Time Stamps (ts)
Lose Source Routing (lsrr): định tuyến nguồn nới lỏng
Strict Source Routing (ssrr); định tuyến nguồn siết chặc
Trong Snort rule, hầu hết những lựa chọn thường dùng liệt kê trong RFC 791 tại
http://www.rfc-editor.org/rfc/rfc791.txt. Hacker có thể dùng những lựa chọn này để tìm
thông tin về tổ chức mạng. Ví dụ, loose và strict source routing có thể giúp
hacker khám phá ra đườn dẫn của một mạng nào đó tồn tại hay không.
Dùng những Snort rule, bạn có thể phát hiện những nổ lực tìm kiếm của
hacker bằng từ khóa ipopts. Rule sau áp dụng cho Losse Source Routing:
alert ip any any -> any any (ipopts: lsrr; \ msg: "Loose
source routing attempt";)
Bạn cũng có thể dùng từ khóa logto để ghi thông điệp vào một file. Tuy nhiên,
bạn không thể chỉ định nhiều từ khóa lựa chọn IP trong một rule.
Từ khóa ip_proto:
Ip_proto sử dụng IP Proto plug-in để xác định con số giao thức trong IP header. Từ
khóa yêu cầu con số giao thức như một đối số. bạn có thể sử dụng một tên cho giao
thức nếu nó đã định nghĩa trong file /etc/protocols. Xem mẫu file tương tự như sau:
ax.25 93 AX.25 # AX.25 Frames
ipip 94 IPIP # Yet Another IP encapsulation
micp 95 MICP #Mobile Internetworking
Control Pro.
scc-sp 96 SCC-SP # Semaphore Communications
Sec. Pro.
etherip 97 ETHERIP # Ethernet-within-IP
Encapsulation
encap 98 ENCAP # Yet Another IP encapsulation
# 99 # any private encryption
scheme
gmtp 100 GMTP # GMTP
ifmp 101 IFMP # Ipsilon Flow Management
Protocol
pnni 102 PNNI # PNNI over IP
Rule sau kiểm tra nếu giao thức IPIP là đang sử dụng bởi gói dữ liệu:
alert ip any any -> any any (ip_proto: ipip; \msg: "IP-IP
tunneling detected";)
Những giao thức mới nhất có thể tìm thấy từ ICANN tại http://www.icann.org tại
IANA http://iana.org.
Từ khóa id:
Id dùng để so sánh trường ID phân mảnh của tiêu đề IP. Mục đích của nó là phát
hiện ra những tấn công mà có dùng ID cố định trong IP header. Định dạng của nó là:
id: "id_number"
Nếu giá trị của trường id trong IP header bằng 0, nó cho biết đây là phân mảnh cuối
cùng của một gói IP (nếu gói IP đó bị phân mảnh). Giá trị 0 cũng cho biết rằng nó chỉ
phân mảnh nếu gói đó là không phân mảnh. Id trong Snort rule dùng để xác định phân
mảnh cuối cùng trong gói IP.
Từ khóa tos:
Tos dùng để phát hiện ra một giá trị nào đó trong trường TOS (Type of Service) của IP
header. Ví dụ như sau:
tos: 1;
Từ khóa ttl:
Ttl được dùng để phát hiện giá trị Time o Live trong IP header của gói. Từ khóa có
một giá trị cho biết chính xác giá trị TTL.Từ khóa này có thể sử dụng với tất cả loại
giao thức xây dựng trên giao thức IP, bao gồm ICMP, UDP và TCP. Định dạng chung
của nó như sau:
ttl: 100;
Tiện ích traceroute sử dụng TTL để tìm bộ định tuyến kế tiếp trong đường đi của
gói. Traceroute gởi những gói UDP với giá trị TTL tăng dần. Giá trị TTL được giảm
dần tại mỗi hop. Khi nó có giá trị là 0, router sinh ra một gói ICMP đến nguồn. Sử dụng
gói ICMP này, tiện ích traceroute tìm ra địa chỉ IP của router. Ví dụ, để tìm router thứ
5, traceroute sẽ gửi những gói UDP với TTL đặt là 5. Khi gói này đến router thứ 5, nó
có giá trị là 0 và một gói ICMP được sinh ra.
Sử dụng ttl, bạn có thể tìm ra nếu một ai đó cố gắng traceroute qua mạng của bạn.
Từ khóa cần chính xác giá trị TTL để mà so khớp.
Lựa chọn về TCP:
Từ khóa seq:
Seq trong Snort rule kiểm tra sequence number của gói TCP. Đối số này là
một sequence number. Nó có định dạng:
seq: "sequence_number";
Sequence number là một phần trong tiêu đề TCP.
Từ khóa flags:
Flags dùng để tìm ra cờ bit được bật trong tiêu đề TCP gói. Mỗi cờ có thể dùng như
một đối số cho flags trong Snort rule. Bạn có thể tham khảo thêm cờ flag trong TCP tại
RFC 793 tại http://www.rfc-editor.org/rfc/rfc793.txt. Cờ bit này được sử dụng
cho nhiều công cụ bảo mật nhằm mục đích khác nhau bao gồm công cụ quét
cổng như nmap. Snort hỗ trợ những loại cờ bit .Bạn cũng có thể dùng dấu “!,+,*”
giống như cờ bit trong tiêu đề IP, tương ứng với phép AND, OR và NOT.
Rule này cho biết là thông điệp cảnh báo sẽ phát ra khi bạn nhận một gói TCP với cờ
A bật và ACK chứa có giá trị 0. Những cờ TCP được liệt kê trong bảng dưới. Host
đích là 192.168.1.0/24. bạn có thể sử dụng giá trị của ACK trong rule, tuy nhiên
nó thêm vào Snort chỉ phát hiện cho loại tấn công này. Thường thì khi cờ A được bật,
giá trị ACK không còn là 0.
Lựa chọn về ICMP:
Từ khóa icmp_id:
Lựa chọn icmp_id phát hiện ra ID của gói ICMP. Cú pháp của nó là:
icmp_id: <ICMP_id_number>
Trường nhận dạng một ICMP tìm thấy trong thông điệp ICMP ECHO REQUEST và
ICMP ECHO REPLY (xem RFC 792). Trường này được sử dụng để so sánh ECHO
REQUEST và ECHO REPLY. Thường thì khi bạn sử dụng lệnh ping, cả hai loại ICMP
đó được trao đổi giữa bên gửi và bên nhận. Bên gửi gửi gói ECHO REQUEST và bên
nhận đáp ứng lại gói ECHO REPLY. Trường này có ích cho việc nhận ra cái gói đáp
ứng cho gói yêu cầu. Luật sau kiểm tra nếu ICMP IP trong tiêu đề ICMP bằng 100 thì
sinh một cảnh báo.
alert icmp any any -> any any (icmp_id: 100; \
msg: "ICMP ID=100";)
Từ khóa icmp_seq:
Lựa chọn icmp_seq tương tự như icmp_id. Cú pháp của nó là:
icmp_seq: <ICMP_id_number>
sequence number cũng là một trường trong tiêu đề ICMP và cũng có ích trong việc so
sánh ECHO REQUEST và ICMP ECHO REPLY (xem RFC 792). Từ khóa này cho
phép tìm một sequence number đặc trưng. Tuy nhiên, ít ai mà dùng từ khóa này. Xem
rule sau, nếu sequence number là 100 thì sinh cảnh báo:
alert icmp any any -> any any (icmp_seq: 100; \
msg: "ICMP Sequence=100";)
Từ khóa itype:
Tiêu đề ICMP đến sau tiêu đề IP và chứa một trường type.Từ khóa itype nhằm phát
hiện những tấn công sử dụng trường type trong tiêu đề ICMP. Đối số cho nó là một số
và có định dạng sau:
itype: "ICMP_type_number"
Trường type trong ICMP header của gói dữ liệu được sử dụng để xác định loại gói
ICMP. Danh sách các loại ICMP khác nhau và giá trị của trường type tương ứng:
Ví dụ, nếu bạn muồn sinh một cảnh báo cho loại thông điệp source quench, sử dụng
rule sau:
alert icmp any any -> any any (itype: 4; \msg: "ICMP Source
Quench Message received";)
Từ khóa icode:
Trong những gói ICMP, ICMP header đến sau IP header. Nó chứa một trường code. Từ
khóa icode dùng để phát hiện trường code trong tiêu đề gói ICMP. Đối số cho
trường này là một số và có định dạng sau:
icode: "ICMP_codee_number"
Trường type trong tiêu đề ICMP cho biết loại thông điệp ICMP. Trường code cho
biết chi tiết loại đó. Ví dụ, nếu trường type có giá trị là 5 thì loại ICMP là
“ICMP redirect”. Có thể có nhiều lý do sinh ra một ICMP redirect. Trường code cho
biết rõ những loại lý do đó:
Nếu trường code bằng 0, gửi gói ICMP đến một mạng.
Nếu trường code bằng 1, gửi gói ICMP đến một host
Nếu trường code bằng 2, gói ICMP là loại của dịch vụ và mạng.
Nếu trường code bằng 3, gói ICMP là loại của dịch vụ và host.
Icode trong Snort rule sử dụng để tìm giá trị trường code trong ICMP header. Rule sau
sinh ra một cảnh báo cho những gói ICMP đến host:
alert icmp any any -> any any (itype: 5; \ icode: 1; msg:
"ICMP ID=100";)
Hai từ khóa itype và icode thường dùng chung với nhau. Nếu icode dùng một mình
thường không đạt được công việc tốt bởi vì những loại ICMP khác cũng có thể có cùng
giá trị code giống nhau.
II.Thực hiện:
1.Mô hình:
2.Thực hiện:
2.1.Các phần mềm cần thiết:
Snort
Apache HTTP Server
PHP5
MySQL
2.2.Thực hiện:
Cài Snort:
Cài PHP5:
CàiPHPMyadmin:
Kết quả:
Kết quả:
8. http://www.ietf.org/rfc/