Một trong những biện pháp được quan tâm nghiên cứu và ứng dụng rộng rãi trên toàn thế giới, đó là hệ thống phần mềm giám sát, cảnh báo đối với các tấn công, xâm nhập trái phép vào hệ thố
Trang 1TẠ TUẤN DŨNG
NGHIÊN CỨU, XÂY DỰNG MỘT SỐ GIẢI PHÁP
VÀ PHẦN MỀM CẢNH BÁO, PHÁT HIỆN XÂM NHẬP
Trang 2MỤC LỤC
LỜI MỞ ĐẦU 1
CHƯƠNG I: NGHIÊN CỨU VỀ CÁC HỆ THỐNG GIÁM SÁT, PHÁT HIỆN XÂM NHẬP MẠNG MÁY TÍNH 3
1.1 Nghiên cứu nguyên tắc cơ bản và một số hình thái xâm nhập trái phép trên mạng 3
1.1.1 Các hình thái xâm nhập mạng trái phép 3
1.1.2 Các biện pháp hoạt động xâm nhập máy tính 6
1.1.3 Thủ đoạn của hacker lấy mật khẩu đăng nhập 7
1.2 Nghiên cứu khái niệm về phần mềm IDS giám sát, phát hiện xâm nhập 7
1.2.1 Tổng quan về phần mềm IDS 7
1.2.2 Thành phần của một IDS chuẩn bao gồm: 9
1.2.3 Những tính năng cơ bản nhất của hệ thống phát hiện xâm nhập 12
1.2.4 Thành phần chức năng cơ bản của một hệ thống giám sát an ninh mạng 14
1.2.5 Các công cụ hỗ trợ bổ sung cho IDS 23
CHƯƠNG II: TÌM HIỂU VỀ PHẦN MỀM SNORT 27
2.1 Giới thiệu về Snort 27
2.2 Kiến trúc của Snort 27
2.2.1 Module giải mã gói tin 28
2.2.2 Module tiền xử lý 29
2.2.3 Module phát hiện 30
2.2.4 Module log và cảnh báo 31
2.2.5 Module kết xuất thông tin 31
Trang 32.3 Cấu trúc luật của Snort 31
2.3.1 Khái niệm cơ sở 31
2.3.2 Phần header của luật 36
2.3.3 Các tuỳ chọn luật 39
2.3.4 Preprocessors 50
2.3.5 Các module Output 54
CHƯƠNG III: ỨNG DỤNG TRIỂN KHAI GIẢI PHÁP IDS VỚI PHẦN MỀM SNORT 57
3.1 Mục đích và yêu cầu 57
3.2 Xây dựng cấu trúc của hệ phần mềm cảnh báo, phát hiện xâm nhập mạng máy tính 57
3.3 Cài đặt đầu dò Snort 60
3.4 Chạy chương trình Snort 61
3.4.1 Sniffer Mode 61
3.4.2 Mode Packet Logger 61
3.4.3 Mode Network Inturusion Detection 63
3.4.4 Hỗn hợp 66
3.5 Hình ảnh cài đặt chương trình và một số kết quả 67
3.5.1 Hình ảnh cài đặt chương trình 67
3.5.2 Kết quả thực hiện một phiên giám sát an ninh 70
3.5.3 Kết quả kiểm tra khả năng phát hiện dấu hiệu xâm nhập của phần mềm 72
TÀI LIỆU THAM KHẢO 74
Trang 4LỜI CẢM ƠN
Đầu tiên tôi xin gửi lời cảm ơn chân thành tới các thầy, cô giáo trường Đại học Công Nghệ Thông Tin và Truyền Thông – Đại Học Thái Nguyên cùng các thầy cô giáo thuộc Viện Công nghệ thông tin – Đại học Quốc gia Hà Nội đã nhiệt tình giảng dạy và truyền đạt kiến thức cho tôi trong thời gian học tập
Tôi xin gửi lời cảm ơn sâu sắc tới thầy Hồ Văn Canh, người đã định hướng, hướng dẫn và hỗ trợ tôi rất nhiều để hoàn thành luận văn này
Tôi xin gửi lời cảm ơn tới các anh chị đồng nghiệp và cảm ơn bạn bè cùng khóa, cùng trường đã nhiệt tình hỗ trợ trong thời gian tôi làm luận văn Mặc dù đã rất cố gắng hoàn thành luận văn này, xong luận văn sẽ khó tránh khỏi những thiếu sót Tôi rất mong nhận được sự nhận xét, góp ý, tận tình chỉ bảo từ các thầy, cô
Một lần nữa, tôi xin chân thành cảm ơn!
TÁC GIẢ LUẬN VĂN
Tạ Tuấn Dũng
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan bản Luận văn là công trình nghiên cứu khoa học độc lập của tôi Luận văn này không sao chép toàn bộ các tài liệu, công trình nghiên cứu của người khác Tất cả các đoạn trích dẫn nằm trong các tài liệu, công trình nghiên cứu của người khác đều được ghi rõ nguồn và chỉ rõ trong tài liệu tham khảo
Tôi xin cam đoan những điều trên là đúng sự thật, nếu sai, tôi xin chịu hoàn toàn trách nhiệm
TÁC GIẢ LUẬN VĂN
Tạ Tuấn Dũng
Trang 6BẢNG KÝ HIỆU VIẾT TẮT
IDS Intrusion Detection Systems
IPS Intrusion Prevention Systems
GUI Graphical User Interface
NIDS Mode Network Inturusion Detection
Trang 8LỜI MỞ ĐẦU
Song song với sự phát triển ứng dụng mạng máy tính trong hầu hết các lĩnh vực của đời sống xã hội và an ninh quốc phòng là nguy cơ bị lộ lọt nhiều thông tin quan trọng ra bên ngoài Hiện nay chúng ta đã có nhiều phương pháp bảo vệ mạng có hiệu quả như ứng dụng mật mã học, hàm băm an toàn
và tường lửa (Firewall) Mỗi phương pháp đó có những ưu và nhược điểm nhất định Do đó người ta đã sử dụng nhiều biện pháp đồng thời để bảo vệ thông tin cho mạng dùng riêng khi kết nối với mạng máy tính toàn cầu.Tuy nhiên, một vấn đề đặt ra trong thực tế là: Các biện pháp hiện có đã đủ đảm bảo an toàn thông tin cho mạng dùng riêng của mình chưa? Tại sao, nhiều thông tin quan trọng vẫn thường bị lộ lọt ra bên ngoài? Do đó, người ta luôn nghiên cứu và bổ sung các biện pháp khác nhằm tăng cường an ninh, an toàn cho mạng dùng riêng của mình khi kết nối với mạng Internet Một trong những biện pháp được quan tâm nghiên cứu và ứng dụng rộng rãi trên toàn thế giới, đó là hệ thống phần mềm giám sát, cảnh báo đối với các tấn công, xâm nhập trái phép vào hệ thống mạng Trong những năm gần đây, các vụ tấn công ngày càng tăng lên về số lượng và mức độ nghiêm trọng thì các hệ thống phát hiện xâm nhập là sự bổ sung cần thiết và kịp thời cho hệ thống thiết bị an ninh mạng đã có
Hiện nay, trên thế giới có rất nhiều sản phẩm giám sát an ninh mạng (IDS) ở mức công nghiệp (Enterprise-level) – hệ IPS (Intrusion Prevention Systems) có khả năng tích hợp nhiều chức năng: Phát hiện xâm nhập (detection), giám sát (monitoring) và ngăn chặn (blocking) Nhiều hệ thống phần mềm được tích hợp vào các thiết bị máy tính chuyên dụng có cấu trúc rack-mount để cắm trực tiếp vào các tủ mạng và chạy theo chế độ thời gian thực Một số hệ thống còn tích hợp luôn với firewall Đa phần các sản phẩm loại này là của Mỹ có chất lượng và tính năng đảm bảo an toàn cao Tuy
Trang 9nhiên, giá của các hệ thống thiết bị này rất cao thông thường từ 25.000 USD đến 35.000 USD Vì vậy, tại Việt Nam, chỉ có một số cơ quan, đơn vị lớn về ứng dụng công nghệ thông tin mua các sản phẩm bảo vệ an ninh này để sử dụng bảo vệ mạng máy tính của mình.[4]
Xuất phát từ nhu cầu trên, để xây dựng và triển khai được một hệ phần mềm giám sát IDS đủ mạnh, nhưng lại tiết kiệm được chi phí, phù hợp với các tổ chức, đơn vị có quy mô vừa và nhỏ, tôi đã nghiên cứu và lựa chọn giải pháp phần mềm nguồn mở cho hệ thống giám sát an ninh mạng IDS Sau một thời gian nghiên cứu, triển khai với sự cộng tác, giúp đỡ của bạn bè, cơ quan đồng nghiệp, và đặc biệt là sự hướng dẫn của thầy giáo – Tiến sĩ Hồ Văn Canh, tôi đã triển khai thành công hệ phần mềm giám sát, phát hiện xâm nhập mạng, chống truy cập trái phép, được tích hợp vào hệ thống mạng riêng tại Trung tâm Công nghệ thông tin và Truyền thông Thái Nguyên Kết quả là khả quan, những hoạt động thăm dò mạng, virus (các gói tin qua cổng 135), khai thác proxy (8080), khai thác Cơ sở dữ liệu, ping flood đều được phát hiện
Báo cáo luận văn được trình bày trong 3 chương:
Chương 1: Nghiên cứu về các hệ thống giám sát, phát hiện xâm nhập mạng máy tính
Chương 2: Tìm hiểu về phần mềm Snort
Chương 3: Ứng dụng triển khai giải pháp IDS với phần mềm Snort
Trang 10CHƯƠNG I: NGHIÊN CỨU VỀ CÁC HỆ THỐNG GIÁM SÁT,
PHÁT HIỆN XÂM NHẬP MẠNG MÁY TÍNH
1.1 Nghiên cứu nguyên tắc cơ bản và một số hình thái xâm nhập trái phép trên mạng
Hầu hết các cuộc tấn công xâm nhập mạng máy tính chỉ với mục tiêu phá hủy hệ thống bảo mật của hệ thống theo những phương thức rất cụ thể
Ví dụ, những cuộc tấn công nhất định có thể cho phép kẻ tấn công đọc các tệp nhưng không cho phép bất cứ các thay đổi nào đối với các thành phần của hệ thống Mặc dù cuộc tấn công xâm nhập có nhiều dạng và nhiều khả năng khác nhau, nhưng chung quy lại chúng thường gây nên các thương tổn đến tính bảo mật hệ thống: tính khả dụng, tính tin cậy, tính toàn vẹn và tính điều khiển
Tính tin cậy: Một cuộc tấn công gây ra một vi phạm về tính toàn vẹn nếu
nó thay đổi được trạng thái hệ thống hoặc bất cứ dữ liệu nào thường trú trên
hệ thống
Tính khả dụng: Một cuộc tấn công gây ra vi phạm về tính khả dụng khi nó
có khả năng ngăn những người sử dụng hợp pháp truy cập vào tài nguyên hệ thống trong những thời điểm người sử dụng cần truy cập
Tính điều khiển: Một cuộc tấn công gây ra vi phạm điều khiển hệ thống nếu
nó tạo khả năng cho kẻ tấn công những đặc quyền về chính sách điều khiển truy cập hệ thống Những đặc quyền này sẽ dẫn đến những vi phạm về tính khả dụng, tính tin cậy và tính toàn vẹn của thông tin
1.1.1 Các hình thái xâm nhập mạng trái phép
Trang 11- Các máy có mặt trên mạng
- Hệ điều hành đang sử dụng trên từng máy đang chạy
- Phần mền máy chủ dịch vụ trên các máy đang chạy
- Số hiệu phiên bản phần mềm…
Ngoài ra kẻ tấn công có thể biết thêm nhiều thông tin khác nếu máy đang chạy có nhiều sơ hở hoặc lỗ hổng bảo mật Các dạng thông tin nhạy cảm như tên account, account default, mật khẩu yếu, nguồn thông tin chia sẻ… những thông tin này có lợi cho việc khai thác, tấn công mạng của kẻ xâm nhập Về mặt pháp lý thì hành động quét, thăm dò mạng là một hành động hợp pháp Trên mạng Internet có nhiều người quét, thăm dò chỉ vì mục đích khai thác tài nguyên miễn phí từ Internet Ngoài ra quét, thăm dò cũng còn có mục đích có lợi là cho phép người quản trị an ninh mạng phân tích các điểm yếu về bảo mật để khắc phục
Mặt trái của hoạt động này đó là kẻ tấn công lợi dụng những kết quả phân tích thu được để thực hiện xâm nhập thực sự vào hệ thống.[4]
1.1.1.2 Tấn công từ chối dịch vụ
Tấn công từ chối dịch vụ chia làm hai loại chính: khai thác lỗ hổng và tấn công ngập lụt (flooding) Tấn công từ chối dịch vụ là cuộc tấn công khai thác lỗ hổng phần mềm hệ thống để gây ra lỗi xử lý hoặc làm cạn kiệt tài nguyên trên hệ thống đích Một thí dụ điển hình của kiểu tấn công này là “ ping of death” Kẻ tấn công gửi gói tin lớn bằng lệnh “ping” đến máy đích windows Hệ thống windows không thể xử lý kịp gói tin bất thường này và kết quả là máy đích bị treo hoặc bị tê liệt trước kiểu tấn công này Với các kiểu tấn công làm cạn kiệt tài nguyên, bao gồm: Thời gian tính toán của CPU,
bộ nhớ trong, dung lượng đĩa còn trống, dung lượng bộ đệm còn trống, băng thông mạng
Trang 12Tấn công DoS flooding: Đây là cuộc tấn công mà kẻ tấn công gửi đến
hệ thống đích liên tiếp nhiều gói tin làm cho hệ thống đích không kịp xử lý chúng Hệ quả là kẻ tấn công có thể độc chiếm kết nối mạng tới mục tiêu và
từ chối bất cứ người dùng nào sử dụng các tài nguyên này
Tấn công từ chối dịch vụ kiểu phân tán là loại tấn công mà kẻ tấn công dùng nhiều máy tính đồng thời trong cùng một thời điểm gửi gói tin liên tiếp đến máy đích Một kẻ tấn công không thể làm ngưng dịch vụ một trang web thương mại điện tử cỡ lớn bằng tấn công ngập lụt nó bởi các gói tin gửi đi từ một máy tính Tuy nhiên, nếu chiếm quyền điều khiển được 20 ngàn máy cùng đồng thời tấn công thì chắc chắn sẽ thành công
1.1.1.3 Các cuộc tấn công xâm nhập hệ thống
Các cuộc tấn công xâm nhập là các tấn công nhằm đạt được quyền thay đổi dữ liệu, tài nguyên và các đặc quyền hệ thống khác mà đáng ra không được phép Thông thường kiểu tấn công này được thực hiện bằng cách khai thác các lỗ hổng phần mềm hoặc các lỗ hổng trong dịch vụ hệ thống Nếu người quản trị hệ thống chưa kịp vá lỗi phần mềm hoặc dịch vụ thì hệ thống
đó rất dễ bị tấn công
Một cách phân loại khác, đó là phân loại các cuộc tấn công theo hướng: Tấn công từ bên ngoài vào và tấn công từ trong nội bộ Kẻ tấn công từ ngoài mạng là người tấn công từ phía bên ngoài, ví dụ sử dụng spam để gửi thư điện
tử Họ có thể vượt qua bức tường lửa để tấn công vào các máy tính của mạng bên trong Những kẻ tấn công từ bên ngoài thông thường là từ mạng Internet, trực tiếp thâm nhập bằng đường vật lý hoặc thông qua các bạn hàng trên mạng có liên hệ đến mạng nội bộ Kẻ xâm nhập bên trong mạng là những người sử dụng mạng chính thức bên trong Những người này có thể là những user tạo cho người khác mất quyền truy nhập mạng hoặc chiếm quyền truy nhập hoặc chiếm quyền sử dụng mạng của người khác Theo số liệu của cơ
Trang 13quan an ninh mạng EU thì 80% các vụ vi phạm về an ninh mạng là từ những
kẻ xâm nhập từ bên trong mạng.[2]
1.1.2 Các biện pháp hoạt động xâm nhập máy tính
Xâm nhập vật lý: là những kẻ xâm nhập bằng phương pháp sử dụng bàn
phím máy tính của nạn nhân để đăng nhập mạng, thay hoặc lấy cắp các thiết
bị đĩa từ lưu dữ liệu trên máy tính
Xâm nhập thông qua lỗ hổng của phần mềm: Lỗ hổng phần mềm được phân loại như sau:
Lỗ hổng do tràn bộ đệm:
Phần lớn các lỗ hổng về an ninh là do tràn bộ đệm Lỗi này đều do hầu hết các hệ điều hành, các phần mềm quản trị cơ sở dữ liệu, thậm chí có trong một vài phiên bản của hệ điều hành UNIX được đánh giá là hệ điều hành công nghiệp an toàn nhất hiện nay Một trong những thí dụ tràn bộ đệm được coi là điển hình nhất mà không ai nghĩ đến đó là lỗi tràn bộ đệm sinh ra do tên user Thông thường tên user trên mạng cũng chỉ được thiết lập tối đa 256 ký
tự hoặc số là cùng Ít ai nghĩ ra được điều gì sẽ xẩy ra nếu tên đó dài hơn 256
ký tự có kèm theo mã code để thực hiện trên máy chủ Thông qua thủ đoạn này hacker có thể xâm nhập hệ thống.[3]
Lợi dụng chỗ yếu để tấn công tệp mật khẩu:
Từ Service Pack 3 trở đi, NT sử dụng chương trình syskey cho phép bảo
vệ tệp SAM và tệp sao lưu của SAM là sam_ Bằng kỹ thuật mã hóa thêm một lần nữa với khóa 128 bit Khóa này có thể ko cần lưu trên máy chủ mà có thể lưu trên đĩa mềm Việc bảo vệ theo cách này có thể được thực thi trên máy chủ và trên các máy trạm Tuy vậy nếu để mất đĩa khóa thì không thể nào
đăng nhập vào hệ thống được nữa
Trang 14Một yếu tố khác đã tạo điều kiện để cho kẻ tấn công xem được toàn bộ danh sách của người sử dụng, nhóm người sử dụng, log hệ thống cũng như một số công cụ quản trị hệ thống từ xa dựa trên giao thức SMB (Server Message Block) đó là người sử dụng vô danh (anonymous) Mục đích tồn tại của user này trên hệ thống nhằm phục vụ cho các dịch vụ Null Session không cần đòi hỏi xác thực NT cho phép người sử dụng vô danh truy cập vào nguồn đặc biệt gọi là IPC$ (inte-proscess communication)
1.1.3 Thủ đoạn của hacker lấy mật khẩu đăng nhập
Chúng ta biết rằng phần lớn các máy sử dụng trong mạng diện rộng cũng như trong mạng LAN đều sử dụng hệ điều hành Windows XP/VISTA Hacker chỉ cần đột nhập bất kỳ một máy trạm nào đó trong mạng lấy tệp mật khẩu dạng tên_user.pwl nằm trong thư mục c:\windows hoặc tệp SAM trong thư mục \winnt\repair và sử dụng một loạt các chương trình mở mật khẩu khác nhau để lấy mật khẩu user và sử dụng mật khẩu đó để đăng nhập lại mạng máy tính.[3]
1.2 Nghiên cứu khái niệm về phần mềm IDS giám sát, phát hiện xâm nhập
1.2.1 Tổng quan về phần mềm IDS
Các hệ thống phát hiện xâm nhập (IDS) là những hệ thống phần mềm hoặc phần cứng thực hiện tự động hóa quá trình giám sát các sự kiện xảy ra trong hệ thống mạng máy tính; phân tích các sự kiện đó để nhận biết những vấn đề liên quan đến an ninh mạng Trong những năm gần đây, khi các vụ tấn công ngày càng tăng lên về số lượng và mức độ nghiêm trọng thì các hệ thống phát hiện xâm nhập là sự bổ sung cần thiết và kịp thời cho hệ thống thiết bị an ninh mạng đã có
Phát hiện xâm nhập là một quá trình giám sát các sự kiện diễn ra ở một
hệ thống máy tính hoặc một mạng máy tính và phân tích chúng để tìm ra các
Trang 15xâm nhập làm tổn hại đến độ tin cậy, tính toàn vẹn và khả năng hoạt động của
hệ thống hoặc để vượt qua cơ chế kiểm soát an ninh của hệ thống máy tính Những kẻ tấn công thường xâm nhập mạng từ bên ngoài Internet hoặc mạng công cộng hoặc chính là những người sử dụng trong chính mạng đó đã sử dụng trái phép quyền sử dụng được cấp cho họ Các hệ thống phát hiện xâm nhập là các phần mềm hoặc các sản phẩm phần cứng thực hiện việc tự động giám sát và phân tích quá trình này
Việc phát hiện xâm nhập cho phép các cơ quan bảo vệ hệ thống mạng máy tính khỏi các mối đe dọa thường xuyên khi mạng máy tính đang vận hành nhằm bảo vệ an toàn cho các hệ thống thông tin và dữ liệu Với ý nghĩa
đó, vấn đề đặt ra cho công tác đảm bảo an ninh mạng máy tính không phải là
có nên hay không nên sử dụng IDS mà là sử dụng đặc điểm và tính năng nào của IDS cho phù hợp với yêu cầu của công tác bảo vệ an ninh mạng Sau đây
là những tính năng cơ bản nhất của một hệ thống phát hiện xâm nhập
Hình sau đây giới thiệu một mô hình tổng quát của hệ thống giám sát an ninh mạng:
Trang 16Hình 1.1: Mô hình tổng quan một hệ thống giám sát an ninh mạng IDS [7]
1.2.2 Thành phần của một IDS chuẩn bao gồm:
- Giải mã gói tin (Packet Decoder)
- Xử lý bộ (Preprocessors)
- Phát hiện phạm vi (Detection Engine)
- Ghi nhật ký và cảnh báo (Logging and Alerting System)
- Các modul xử lý đầu ra (Output Modules)
Trang 17Hình 1.2: Các thành phần cơ bản của một hệ IDS [9]
Giải mã gói tin
Gói tin được tiếp nhận từ card mạng và được bộ chương trình thư viện libcap tiếp nhận để giải mã Hệ IDS giải mã gói tin trên tầng Data-link Hệ thống IDS có khả năng nhận biết các giao thức truyền thống như IP, TCP, UDP Ngoài ra nó còn có khả năng nhận biết các giao thức khác như Ethernet, 802.11, Token Ring
Hàm PocessPacket() trong bộ chương trình decode có nhiệm vụ giải mã khung dữ liệu Ethernet Hàm DecodeIP thực hiện chức năng giải mã gói IP Trong quá trình giải mã, nếu các gói tin bị phân mảnh thì khi xử lý phải thêm chức năng hợp gói tin (defragmentation) Chức năng này được thực hiện bởi hàm frag2preprocessor
Một số hệ thống IDS chuyên nghiệp còn có tính năng statefull – tính
năng kiểm soát toàn diện trạng thái Với tính năng này, IDS có khă năng xử lý đến 2000 dòng và 64.000 kết nối cùng một lúc Hệ IDS Snort sử dụng hàm
stream4Preprocessor đảm bảo tính năng statefull cho hệ thống Ngoài ra, tính năng statefull còn cho phép hệ thống IDS khả năng xác định được hệ điều
hành của máy xâm nhập và các gói tin vượt ra khỏi phạm vi kiểm soát thông
Trang 18thường (out of state) Chương trình quét thăm dò cổng mạng NMAP cũng có
khả năng tương tự
Giống như các phần mềm bắt các gói tin khác, hệ thống IDS có khả năng thu thập mọi thông tin trong quá trình “bắt tay ba lần” của một kết nối TCP và lưu chúng vào bảng trạng thái kết nối của máy chủ và máy tấn công Những thông tin đó là: địa chỉ IP, địa chỉ MAC, các cờ trạng thái kết nối như SYN, ACK và FIN Hệ thống IDS còn thông báo kịp thời những tín hiệu sai lệch trong quá trình bắt tay Ví dụ hệ IDS Snort có khả năng phát hiên kỹ thuật “ Stealth FIN scan” của chương trình quét cổng NMAP Kỹ thuật này được áp dụng để phát hiện những cổng đóng của máy chủ (closed port)
Luật giám sát an ninh và bộ phần mềm phát hiện xâm nhập
Luật giám sát an ninh thông thường được tạo dưới dạng text để tiện cho việc sửa đổi, cập nhập bổ sung và được lưu trong một thư mục riêng, các tệp luật được phân theo nhóm Ví dụ tệp ftp rules chuyên lưu các dấu hiệu xâm nhập dịch vụ FTP, http.rules chuyên lưu các dấu hiệu tấn công đối với dịnh vụ web Hệ thống giám sát an ninh sẽ so sánh nội dung các gói tin với các dấu hiệu đã biết trong các dòng của tệp luật và làm kết xuất các phản ứng của hệ thống một khi có dấu hiệu trùng khớp
Hệ giám sát an ninh mạng IDS sử dụng danh sách kết nối 3 chiều (3D)
và thuật toán so sánh nội dung Boyer-Moore
Luật giám sát an ninh mạng được phân chia thành 4 loại tương ứng với 4 loại giao thức:
- TCP: giao thức TCP cho các dịch vụ SMTP, HTTP, FTP
- UDP: giao thức UDP cho các dịch vụ DNS lookups
- ICMP: giao thức ICMP cho các dịch vụ ping, traceroute
- IP: giao thức IP cho các dịch vụ IPSEC, IGMP…
Trang 19Phát hiện vi phạm: Là cấu thành quan trọng nhất của một hệ IDS Nếu
có sự xuất hiện của hành động xâm nhập trong gói tin thì bộ phát hiện sẽ được khởi sinh để so sánh với bảng các luật đã cho sẵn Nếu có gói tin phù hợp với luật trong khi so sánh thì sẽ có phản ứng từ hệ thống, kể cả chặn gói tin đó lại
Thông thường sự phản ứng là ghi lại nhật ký hoặc tạo ra cảnh báo
Bộ phát hiện chiếm khá nhiều thời gian của một hệ IDS, do vậy hiệu quả của sự phát hiện phụ thuộc nhiều đến năng lực phần cứng của máy tính và số lượng luật nhiều hay ít Ngoài ra nếu IDS hoạt động trên môi trường mạng có băng thông lớn thì có thể xảy ra những trường hợp bỏ qua không bắt kịp gói tin, do vậy đã không thể ngăn chặn kịp thời gói tin có dấu hiệu xâm nhập hoặc không thể có những phản ứng kịp thời khác khi có hiện tượng xâm nhập Dựa vào những phân tích trên, ta thấy bộ phát hiện xâm nhập phụ thuộc vào những yếu tố cơ bản sau:
- Số lượng các luật cần phát hiện
- Năng lực của máy tính chạy IDS
- Tốc độ của máy tính chạy IDS
- Khả năng tải trên mạng
Chính vì vậy khi thiết kế một hệ thống IDS chạy trên thực tế phải đảm bảo bốn yếu tố cơ bản trên để hệ thống hoạt động phù hợp với năng lực của mạng [9]
1.2.3 Những tính năng cơ bản nhất của hệ thống phát hiện xâm nhập
Một hệ thống giám sát, phát hiện xâm nhập trái phép phải có đầy đủ các tính năng cơ bản sau:
- Phòng ngừa các hoạt động bất thường bằng việc gia tăng khả năng phát hiện các nguy cơ và xử phạt kẻ tấn công hoặc lạm dụng quyền sử dụng hệ thống vượt qua phạm vi cho phép
Trang 20- Phát hiện các cuộc tấn công hoặc những vi phạm chế độ an ninh do các biện pháp khác không ngăn chặn được Kẻ tấn công thường sử dụng những kỹ thuật được phổ biến rộng rãi trên mạng Internet để xâm nhập mạng, đặc biệt
là đối với các mạng nối trực tuyến với mạng công cộng Điều này thường hay xảy ra khi trong mạng máy tính có các thiết bị mạng, thiết bị máy tính chưa khắc phục các lỗ hổng an toàn, chưa kịp cài đặt các bản vá phần mềm cần thiết (service pack) hoặc trong môi trường mạng có quá nhiều chủng loại phần mềm và phần cứng mà bản thân người quản trị an ninh không kiểm soát nổi Một trong những lý do quan trọng khác tạo điều kiện cho kẻ tấn công là lỗi cấu hình và sử dụng hệ thống của cả người quản trị mạng cũng như người sử dụng mạng
- Phát hiện và xử lý các khởi đầu của các cuộc tấn công, thông thường là
các hoạt động thăm dò mạng (doorknob ratting) Khi đối phương tấn công
một hệ thống mạng, chúng thường sử dụng bước thăm dò cấu trúc mạng, các dịch vụ cho phép sử dụng trên mạng và các lỗ hổng an ninh nếu có Trên cơ
sở phân tích những kết quả thu nhận được qua bước thăm dò, kẻ tấn công có thể tìm kiếm khe hở xâm nhập mạng một cách tối ưu nhất Nếu không áp dụng IDS thì khả năng phát hiện các cuộc thăm dò là rất ít và kẻ tấn công tự
do phân tích toàn bộ hệ thống mạng nhằm phát hiện chỗ yếu để làm cơ sở cho các bước tiếp theo của cuộc tấn công
Khi được bổ sung thêm IDS để giám sát toàn bộ hoạt động, IDS sẽ quan sát việc quét thăm dò mạng, xác định những dấu hiệu đáng nghi vấn và cảnh báo cho người quản trị an ninh mạng biết để có những hành động đối phó
thích hợp Chỉ riêng việc đối phó kịp thời đối với những hoạt động quét, thăm dò mạng cũng đã góp phần làm giảm nguy cơ khá lớn đối với những hoạt động xâm nhập mạng
Trang 21- Ghi nhận những nguy cơ đe dọa an ninh mạng Hệ thống giám sát an ninh mạng thẩm tra, ghi nhận và mô hình hóa các nguy cơ từ bên trong và nguy cơ từ bên ngoài mạng máy tính, hỗ trợ cho các cơ quan ra quyết định về chính sách và trang thiết bị đảm bảo an ninh an toàn mạng máy tính Những thông tin về nguồn gốc và tính chất của cuộc tấn công sẽ giúp chúng ta đưa ra những quyết định đúng trong định hướng về chiến lược đảm bảo an ninh
- Thông qua những thông tin phát hiện được để đánh giá công tác quản trị an ninh mạng và tính hiệu quả của thiết kế các hệ thống đảm bảo an ninh đang được thực thi Trên cơ sở đó, giúp bộ phận an ninh mạng khắc phục được những yếu tố trong hệ thống mạng đang vận hành
- Cung cấp kịp thời các thông tin hữu ích về các vụ xâm nhập đang xảy
ra nhằm nâng cao nhận thức về công tác đảm bảo an ninh mạng cũng như tăng cường áp dụng các biện pháp nhằm khắc phục những tác nhân dẫn đến các cuộc tấn công.[6]
1.2.4 Thành phần chức năng cơ bản của một hệ thống giám sát an ninh mạng
Trên thị trường hiện nay có khá nhiều IDS khác nhau Mỗi một IDS đặc trưng bởi phương pháp phân tích và giám sát khác nhau Mỗi một phương pháp có những ưu điểm và nhược điểm riêng Tuy nhiên tất cả các IDS đều phải đảm bảo ba thành phần chức năng cơ bản sau:
Thu lượm tài nguyên thông tin ( Information Sources ): Thu lượm tài
nguyên thông tin các sự kiện xảy ra trên mạng để xem việc xâm nhập đã xảy
ra chưa Các nguồn thông tin này có thể đưa ra từ các cấp độ khác nhau của
hệ thống: mức mạng, mức host, mức ứng dụng
Phân tích (Analysis): Đó là việc tổ chức, nắm chắc các sự kiện rút ra từ
nguồn thông tin, trên cơ sở đó có thể xác định được các vụ xâm nhập đã và đang xảy ra Hai phương pháp phân tích thường gặp nhất là: phương pháp
Trang 22phân tích theo phát hiện sử dụng trái phép (misuse delection) và phương pháp phân tích theo phát hiện bất thường (anomaly delection)
Đối phó (Response): Đây là thành phần chức năng thứ ba là tập hợp các
biện pháp hành động mà hệ thống phát hiện xâm nhập sẽ đối phó một khi nó phát hiện có xâm nhập Biện pháp hành động được phân làm 2 loại: biện pháp chủ động và biện pháp bị động Biện pháp chủ động là biện pháp mà hệ thống IDS tự động can thiệp vào một phần nào đó của hệ thống nhằm ngăn chặn tức thời cuộc xâm nhập Biện pháp bị động là biện pháp thông báo, cảnh báo cho người quản trị an ninh và những người có trách nhiệm biết những phát hiện về
sự xâm nhập để họ xử lý [2]
1.2.4.1 Thu lượm các tài nguyên thông tin
Một trong những cách thông thường để phân loại hệ thống IDS là dựa vào phương pháp thu lượm nguồn thông tin Một số loại IDS phân tích các gói tin trên các phân đoạn của mạng LAN để xác định kẻ tấn công Một số IDS khác lại dựa vào các nguồn thông tin từ các nhật ký (log) của hệ điều hành hoặc từ các nhật ký phần mềm ứng dụng sinh ra để phát hiện xâm nhập Các IDS dựa trên phương pháp thu lượm nguồn thông tin theo cách thứ nhất gọi là các IDS trên nền mạng (Network-based IDS) Các IDS dựa trên phương pháp thu lượm nguồn thông tin theo cách thứ hai gọi là các IDS trên nền host (Host-based IDS)
Hệ thống các IDS trên nền mạng (Network Base IDS) [5] [6] [8]
Phần lớn các hệ thống IDS thương mại là các IDS trên nền mạng Những IDS này phát hiện cuộc tấn công bằng cách bắt và phân tích gói tin trên mạng, trên một nhánh mạng hoặc trên switch hay trên máy nối giữa hai mạng (firewall) IDS trên nền mạng bao gồm một tập các sensor đơn hoặc các máy tính đóng vai trò sensor này giám sát thi công mạng, thực hiện phân tích lưu thông và thông báo các cuộc tấn công đến màn hình quản lý trung tâm Nhiều
Trang 23loại sensor được thiết kế để chạy trong mode “stealth” làm cho kẻ tấn công khó xác định được sự có mặt và vị trí của chúng
Hình 1.3: Ví dụ về hệ thống giám sát an ninh trên nền mạng [1]
Ưu điểm của IDS trên nền mạng:
- Chỉ cần một số lượng nhỏ IDS được bố trí một cách tối ưu có thể giám sát được một mạng lớn Việc bổ sung thêm các IDS không làm ảnh hưởng đến sự hoạt động của mạng vì chúng lắng nghe trên đường truyền một cách thụ động mà không kèm theo nhiễu đến các thiết bị khác trong mạng
- Hệ thống này có thể tự bảo vệ để chống lại các cuộc tấn công đến nó, thậm chí những kẻ tấn công có thể không thấy được sự hiện diện của nó trên mạng
- Ngoài ra IDS trên nền mạng còn có một số lợi thế:
+ Quản lý được cả một network segment (gồm nhiều host)
+ Cài đặt và bảo trì đơn giản, không ảnh hưởng tới mạng
Trang 24+ 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
Nhược điểm của IDS trên nền mạng:
- Hệ thống này sẽ gặp khó khăn khi xử lý tất cả các gói tin trong một mạng lớn do không thể xử lý lưu lượng lớn gói tin trong thời gian cho phép
Để khắc phục sự bất cập này, một số nhà thiết kế đề xuất giải pháp triển khai IDS hoàn toàn dựa trên phần cứng Một số sản phẩm thương mại theo hướng này đã xuất hiện trên thị trường, ví dụ sản phẩm IDS Dragon của công ty Security Wizards, Proventia A, G Series của hãng ISS
- Nhiều đặc tính của IDS dựa trên nền mạng không áp dụng được đối với mạng chuyển mạch tiên tiến Các chuyển mạch chia nhỏ các mạng thành nhiều phân đoạn mạng nhỏ và đưa ra các liên kết dành riêng giữa các host dùng chung trong một chuyển mạch Hầu hết các chuyển mạch không có một cổng giám sát chung và hạn chế phạm vi giám sát của sensor chỉ còn cho một
máy Chính vì vậy khi cắm các thiết bị chuyển mạch như vậy thì hệ thống này không thể giám sát tất cả mọi lưu lượng đi qua thiết bị chuyển mạch
- Một số hệ IDS gặp phải trục trặc khi ứng phó với các cuộc tấn công dùng cách phân mảnh gói tin Quá trình xử lý hợp phân mảnh các gói tin loại này làm cho hệ thống IDS trở nên bất ổn định
Các hệ thống IDS trên nền host ( Host Base IDS ) [5] [6] [8]
Các hệ thống IDS trên nền host hoạt động dựa vào những thông tin thu thập được trong hệ thống máy tính Những thông tin do hệ điều hành máy tính thu nhận cho phép IDS trên nền host phân tích các hoạt động tấn công với độ tin cậy và chính xác cao, xác định các tiến trình và người sử dụng nào liên quan đến cuộc tấn công cụ thể lên hệ điều hành Hơn nữa, khác với IDS trên
Trang 25nền mạng, IDS trên nền host có thể theo dõi diễn biến tiếp theo của cuộc tấn công, do chúng tiếp cận trực tiếp và giám sát các tệp dữ liệu hệ thống và các tiến trình hệ thống mà cuộc tấn công đang nhằm vào
Hình 1.4: Ví dụ về hệ thống giám sát an ninh trên nền host [1]
IDS trên nền host thường khai thác dựa trên hai nguồn thông tin: thông tin kiểm tra hệ điều hành và nhật ký hệ thống Thông tin kiểm tra hệ điều hành sinh ra ở trong nhân của hệ điều hành và do đó thường chi tiết hơn so với nhật ký hệ thống Tuy vậy, nhật ký hệ thống thường rõ ràng tường minh hơn và dễ dàng cho việc tổng hợp, phân tích Một số loại IDS trên nền host được thiết kế để hỗ trợ cho việc quản lý một IDS tập trung và cho phép màn hình có thể theo dõi, quản lý nhiều máy chủ mục tiêu
Ưu điểm của IDS trên nền host:
- Các IDS trên nền host với khả năng giám sát các sự kiện đến từng máy quan sát để phát hiện các cuộc tấn công mà IDS trên nền mạng không thể làm được Hơn thế nữa trên một môi trường mã hóa đường truyền thì chỉ có IDS
Trang 26trên nền host mới có thể giám sát được các sự kiện vì mọi thông tin chỉ có thể
mã và giải mã tại máy đích
- IDS hoạt động trên nền hệ điều hành với audit trail còn có khả năng phát hiện được virus Trojan hoặc các tác nhân khác có ý đồ làm sai lệch tính toàn vẹn của phần mềm hệ thống
Nhược điểm của IDS trên nền host:
- Các IDS trên nền host khó quản trị vì mỗi một IDS phải cấu hình và quản lý riêng cho từng máy được giám sát
- Do cài IDS trên từng máy mục tiêu nên IDS cũng có thể là mục tiêu tấn công cùng với máy chủ và có thể bị kẻ tấn công vô hiệu hóa
- Khi IDS chạy trên hệ điều hành với audit trail như là một nguồn thông tin đầu vào để phân tích, khi đó lượng thông tin thu thập khá lớn và đòi hỏi dung lượng đĩa cần thiết để lưu thông tin
- IDS trên nền host sử dụng tài nguyên tính toán trên máy đang giám sát
do vậy có thể ảnh hưởng đến hiệu năng làm việc của máy này
1.2.4.2 Phân tích IDS
Như đã nêu ở trên, tồn tại hai phương pháp phân tích các sự kiện để phát hiện xâm nhập: đó là phát hiện sử dụng sai và phát hiện bất thường Mỗi một phương pháp đều có điểm mạnh và điểm yếu riêng Tuy vậy hiện nay phương pháp đầu được sử dụng có hiệu quả hơn và thường dùng trong các IDS thương mại
Phương pháp phát hiện sử dụng sai
Modul phát hiện sử dụng sai phân tích hoạt động của hệ thống, tìm các
sự kiện hoặc tập các sự kiện phù hợp với mẫu định nghĩa đặc trưng một cuộc tấn công đã biết trước Các mẫu đặc trưng cho các cuộc tấn công đã biết trước gọi là các dấu hiệu xâm nhập (signatures) Phát hiện sử dụng sai đôi khi còn
Trang 27được gọi là phát hiện dựa trên dấu hiệu Thông thường phương pháp phát hiện
sử dụng sai trong các sản phẩm thương mại quy định mỗi mẫu sự kiện tương ứng với một cuộc tấn công là một dấu hiệu
Ưu điểm của phương pháp phát hiện sử dụng sai:
- Phát hiện sử dụng sai là phương pháp rất hiệu quả để nhận biết các cuộc tấn công mà không sinh ra các cảnh báo lỗi thừa
- Cho phép nhận biết nhanh chóng và tin cậy các công cụ và kỹ thuật dùng để tấn công Điều này giúp cho người quản trị an ninh mạng có biện pháp đối phó kịp thời
- Cho người quản trị an ninh mạng chủ động tiến hành các thủ tục xử lý
sự cố
Nhược điểm của phương pháp phát hiện sử dụng sai:
- Phương pháp phát hiện sử dụng sai chỉ phát hiện được các cuộc tấn công mà nó đã từng biết trước, do vậy phải liên tục cập nhập các dấu hiệu của các cuộc tấn công mới
- Việc định nghĩa các dấu hiệu xâm nhập một cách quá chặt chẽ đôi khi làm cản trở đến việc phát hiện các cuộc tấn công thông thường
Phương pháp phát hiện bất thường
Phương pháp phát hiện bất thường là nhận biết các hoạt động không bình thường trên một host hoặc một mạng Phương pháp này giả thiết rằng các cuộc tấn công thường có biểu hiện khác với các hoạt động hợp pháp, do vậy
nó được phát hiện bởi những khác biệt đó
Các kỹ thuật phát hiện được sử dụng trong phương pháp này là:
Phát hiện ngưỡng, trong đó các biểu hiện thông thường của người sử dụng và ứng xử của hệ thống được thể hiện dưới dạng đếm theo một ngưỡng
Trang 28cho phép nào đó Những thuộc tính ứng xử của hệ thống có thể là số lượng các tệp được người sử dụng truy cập trong một khoảng thời gian cho phép, số lượng các cố gắng bất thành để truy cập vào hệ thống, dung lượng CPU mà một tiến trình chiếm dụng…
Các kỹ thuật thống kê, gồm thống kê theo thông số, trong đó việc thống
kê các thuộc tính mẫu được biết từ một tập các giá trị đã có được quan sát theo thời gian
Phương pháp phát hiện bất thường đưa ra rất nhiều cảnh báo lỗi do các mẫu của người dùng và ứng xử của hệ thống thường thay đổi Bất chấp nhược điểm này, các nhà nghiên cứu đánh giá rằng IDS dựa trên phát hiện bất thường có ưu việt là có thể phát hiện những dạng tấn công mới mà IDS dựa trên phương pháp phát hiện dùng sai không thể có khả năng đó
IDS thương mại dùng phương pháp phát hiện bất thường rất ít hoặc nếu
có thì cũng không hoàn toàn dựa trên công nghệ này Phương pháp phát hiện bất thường được sử dụng trong các sản phẩm thương mại thường để phát hiện quét thăm dò mạng Phương pháp này còn đang được tiếp tục nghiên cứu để hoàn thiện nhằm mục tiêu chủ động phát hiện xâm nhập trong tương lai
IDS dựa trên phát hiện bất thường có khả năng phát hiện những biểu hiện của cuộc tấn công mà không cần dựa vào những dấu hiệu biết trước
Phương pháp phát hiện bất thường có thể cung cấp thông tin để xác định dấu hiệu tấn công cho phương pháp phát hiện dùng sai
1.2.4.3 Các tùy chọn ứng phó cho IDS
Dựa vào kết quả phân tích các dự kiện, IDS sẽ đưa ra các ứng phó (response) Ứng phó đơn giản nhất là thông báo các kết quả phát hiện tới người có thẩm quyền được quy định trước Một số nhà nghiên cứu thường đánh giá thấp tầm quan trọng của chức năng ứng phó trong các hệ thống IDS, nhưng trên thực tế chúng thực sự quan trọng Các hệ thống IDS thương mại
Trang 29một hay nhiều tùy chọn và thường được phân làm hai loại: ứng phó chủ động
Thu thập bổ sung thêm thông tin:
Thu thập bổ sung thêm thông tin tức là tăng thêm độ nhạy của bộ phận giám sát mạng để bắt giữ tất cả các gói tin Tùy chọn này cũng cho phép các
tổ chức thu thập thêm thông tin để hỗ trợ điều tra và bắt giữ kẻ tấn công
Thay đổi môi trường:
Một ứng phó chủ động khác là chủ động làm ngưng cuộc tấn công đang diễn ra và sau đó là ngăn chặn các diễn biến tiếp theo của kẻ xâm nhập IDS không có khả năng ngăn chặn việc truy cập của một người cụ thể, nhưng nó
có khả năng khóa các địa chỉ IP là nơi kẻ tấn công xuất phát Việc ngăn chặn hacker có đẳng cấp cao là rất khó, tuy vậy IDS có thể đưa ra một số giải pháp
để ngăn trở đối với kẻ tấn công bằng các tác động sau:
- Bơm các gói tin TCP (stealth) đã được thiết lập lại vào kết nối của kẻ
tấn công đến máy mục tiêu để chấm dứt kết nối
- Cấu hình lại router hoặc firewall để chặn địa chỉ IP xuất phát của kẻ tấn công
- Cấu hình lại router hoặc firewall để chặn cổng, giao thức hoặc các dịch
vụ đang bị kẻ tấn công dùng
Các ứng phó bị động:
Các ứng phó IDS bị động đưa ra những thông tin cho người quản trị hệ thống và dựa vào những thông tin đó họ có những hành động ứng phó tiếp theo Nhiều IDS thương mại dựa theo cách ứng phó này
Trang 30Cảnh báo và thông báo:
IDS đưa ra các cảnh báo và thông báo để người quản trị biết dấu hiệu tấn công Dạng thông thường của một cảnh báo là hiện trên màn hình hoặc trên một của sổ nhỏ trên màn hình điều khiển IDS Thông tin đưa ra trong các cảnh báo có nhiều dạng Dạng vắn tắt là thông báo có hiện tượng xâm nhập, dạng chi tiết cung cấp địa chỉ IP nguồn, IP đích, tính chất và nội dung của cuộc tấn công, công cụ tấn công và diễn biến của nó Một hình thức thông báo khác là cảnh báo từ xa đến các máy tính quản trị từ xa hoặc đến các máy điện thoại di động Một dạng khác là thông báo qua thư điện tử Tuy nhiên giải pháp này không an toàn vì kẻ tấn công thường giám sát đường đi của email và thậm chí có thể chặn được các thông điệp thư điện tử
Một số sản phẩm IDS thương mại được thiết kế để đưa ra các cảnh báo đến hệ thống quản trị mạng Hệ thống dùng các bẫy SNMP và thông điệp để gửi cảnh báo tới màn hình quản lý trung tâm Tuy nhiên trong nhiều trường hợp kẻ tấn công có thể phát hiện ra sự có mặt của IDS thông qua việc giám sát nội dung những thông báo và cảnh báo dưới dạng văn bản rõ Trường hợp xấu hơn kẻ tấn công sẽ hướng cuộc tấn công vào hệ thống IDS như là một phần của cuộc tấn công trên hệ thống đích Dùng các kênh mã hóa và các biện pháp mã hóa khác để che giấu và xác thực cho các giao tiếp giữa IDS và máy điều khiển trung tâm là cần thiết để làm tăng độ mật và đảm bảo độ tin cậy của IDS
1.2.5 Các công cụ hỗ trợ bổ sung cho IDS
Một số công cụ hiện nay bổ sung IDS thường được coi như là các sản phẩm phát hiện xâm nhập vì chúng có những tính năng tương tự Đó là các công cụ như Hệ thống phân tích thương tổn, Bộ kiểm tra tính toàn vẹn tệp, Honey Pot và Padded cell
Trang 311.2.5.1 Đánh giá tính thương tổn của hệ thống
Công cụ phân tích khả năng thương tổn dùng để xác định liệu hệ thống
có bị thương tổn trước một cuộc tấn công đã biết hay không? Quá trình hệ thống phân tích thương tổn bao gồm:
- Lấy mẫu một số thuộc tính của hệ thống
- Kết quả mẫu được lưu một nơi an toàn và được so sánh với một bộ giữ liệu tham chiếu được coi như một mẫu “cấu hình chuẩn”
- Bất kỳ sự khác biệt nào giữa hai bộ mẫu đều được xác định và thông báo
Có hai phương pháp được áp dụng để phân tích tính thương tổn của hệ thống, đó là phương pháp phân tích tính thương tổn dựa vào host và phương pháp phân tích tính thương tổn dựa vào mạng Phương pháp phân tích tính thương tổn dựa vào host là xác định khả năng thương tổn bằng cách đánh giá các nguồn dữ liệu hệ thống, chẳng hạn như nội dung tệp hệ thống, các tệp thiết lập cấu hình và các thông tin trạng thái khác Thông tin này thu nhận được dựa trên các truy vấn hệ thống chuẩn.Tuy vậy phương pháp này đôi khi cũng gặp nguy hiểm vì kẻ tấn công cũng có thể lấy được quyền root trong Unix hoặc Administrator trong NT
Ưu điểm của phân tích tính thương tổn:
- Là một phần của hệ thống giám sát an ninh mạng cho phép phát hiện các chỗ yếu trên hệ thống mạng không có IDS hỗ trợ
- Đưa ra các giải pháp kiểm tra an ninh dựa vào kết quả của việc ghi nhận tình trạng an ninh của hệ thống mạng máy tính
- Khi hệ thống đánh giá tính thương tổn được sử dụng thường xuyên theo định kỳ, chúng ta sẽ ghi nhận những thay đổi về tình trạng an ninh của hệ thống, cảnh báo cho các chuyên gia bảo mật những lỗi cần phải khắc phục
Trang 32- Việc kiểm tra hai lần trước và sau khi khắc phục lỗi đảm bảo cho hệ thống an toàn hơn và không bị những lỗ hổng khác phát sinh mới sau khi sửa lỗi
Nhược điểm của phương pháp phân tích thương tổn:
- Phương pháp phân tích tính thương tổn dựa vào host có tính ràng buộc với các hệ điều hành và các ứng dụng cụ thể do đó việc bảo dưỡng, khắc phục lỗi và quản lý thường rất phức tạp và tốn kém
- Phương pháp phân tích tính thương tổn dựa trên nền mạng thường áp dụng trên nhiều hệ điều hành, do vậy kết quả phân tích kém chính xác hơn và thường đưa ra nhiều cảnh báo Lưu ý một vài kiểm tra tính thương tổn của hệ thống dựa vào mạng, đặc biệt với các cuộc tấn công từ chối dịch vụ có thể làm ngưng trệ hệ thống đích
- Việc sử dụng hệ thống đánh giá tính thương tổn phải luôn chú ý đến việc bảo mật thông tin dữ liệu trên những hệ thống đích
1.2.5.2 Kiểm tra tính toàn vẹn của tệp
Một thành phần quan trọng được bổ sung cho IDS đó là kiểm tra tính toàn vẹn của tệp bằng kỹ thuật chữ ký số Bộ kiểm tra tính toàn vẹn tệp cực
kỳ có giá trị đối với việc tiến hành các phân tích hệ thống đã bị tấn công, do
nó có khả năng nhận dạng nhanh và tin cậy bằng kỹ thuật kiểm tra chữ ký số nội dung tệp để phát hiện việc in dấu chân của một vụ tấn công Điều này giúp các nhà quản trị khôi phục nhanh các dịch vụ mà không cần phải cài đặt lại toàn bộ hệ thống
1.2.5.3 Hệ thống nhử mồi (Honey Pot và Padded Cell)
Honey Pot là hệ thống nhử mồi được thiết kế để thu hút kẻ tấn công hướng chúng ra khỏi hệ thống quan trọng Mục đích của Honey Pot là:
- Làm lệch hướng kẻ tấn công đang định nhằm vào hệ thống quan trọng
Trang 33- Thu thập thông tin về hoạt động của kẻ tấn công
- Giữ chân kẻ tấn công đủ lâu để người quản trị kịp có biện pháp ứng phó
Honey Pot là hệ thống gồm những thông tin giả nhưng được làm như chúng rất có giá trị Hệ thống được trang bị các bộ giám sát rất nhạy và bộ ghi nhật ký các sự kiện để thu thông tin về kẻ tấn công Tuy vậy hệ thống nhử mồi cũng có những nhược điểm của nó Về mặt pháp lý nó chưa được chứng minh là có hữu dụng đối với mọi công nghệ bảo mật Ngoài ra, một kẻ tấn công sừng sỏ một khi phát hiện ra là nó bị lừa thì có thể sẽ tung ra những cuộc tấn công thù địch dữ dội hơn
Trang 34CHƯƠNG II: TÌM HIỂU VỀ PHẦN MỀM SNORT
2.1 Giới thiệu về Snort
Snort là một NIDS được Martin Roesh phát triển dưới mô hình mã nguồn mở Tuy Snort miễn phí nhưng nó lại có rất nhiều tính năng tuyệt vời
mà không phải sản phẩm thương mại nào cũng có thể có được Với kiến trúc thiết kế theo kiểu module, người dùng có thể tự tăng cường tính năng cho hệ thống Snort của mình bằng việc cài đặt hay viết thêm mới các module Cơ sở
dữ liệu luật của Snort đã lên tới trên 3000 luật và được cập nhật thường xuyên bởi một cộng đồng người sử dụng Snort có thể chạy trên nhiều hệ thống nền như Windows, Linux, OpenBSD, FreeBSD, Solaris, HP-UX, AIX, MacOS
Bên cạnh viện có thể hoạt động như một ứng dụng thu bắt gói tin thông thường, Snort còn có thể được cấu hình để chạy như một NIDS Snort hỗ trợ khả năng hoạt động trên các giao thức sau: Ethernet, 802.11, Token Ring, FDDI, Cisco HDLC, SLIP, PPP, và PF của OpenBSD
2.2 Kiến trúc của Snort
Snort bao gồm nhiều thành phần, với mỗi phần có một chức năng riêng Các phần chính đó là:
Module giải mã gói tin (Packet Decoder)
Module tiền xử lý (Preprocessors)
Module phát hiện (Detection Engine)
Module log và cảnh báo (Logging and Alerting System)
Module kết xuất thông tin (Output Module)
Kiến trúc của Snort được mô tả như hình sau:
Trang 35Hình 2.1: Mô hình kiến trúc của hệ thống Snort
Khi Snort hoạt động nó sẽ thực hiện việc lắng nghe và thu bắt tất cả các gói tin nào di chuyển qua nó Các gói tin sau khi bị bắt được đưa vào Module giải mã gói tin Tiếp theo gói tin sẽ được đưa vào Module Tiền xử lý, rồi Module phát hiện Tại đây, tùy theo việc có phát hiện được xâm nhập hay không mà gói tin có thể được bỏ qua để lưu thông tiếp hoặc được đưa vào Module Log và cảnh báo để xử lý Khi các cảnh báo được xác định Module kết xuất thông tin sẽ được hiện việc đưa cảnh báo ra theo đúng định dạng mong muốn Sau đây ta sẽ đi sâu vào chi tiết hơn về cơ chế hoạt động và chức năng của từng thành phần
2.2.1 Module giải mã gói tin
Snort sử dụng thư viện pcap để bắt mọi gói tin trên mạng lưu thông qua
hệ thống Một gói tin sau khi được giải mã sẽ được đưa tiếp vào Module tiền
xử lý Hình sau mô tả việc một gói tin Ethernet sẽ được giải mã thế nào:
Trang 36Hình 2.2: Xử lý một gói tin Ethernet
2.2.2 Module tiền xử lý
Module tiền xử lý là một module rất quan trọng đối với bất kỳ một hệ thống IDS nào để có thể chuẩn bị gói dữ liệu và chuyển cho Module phát hiện phân tích Ba nhiệm vụ chính của Module này là:
Kết hợp lại các gói tin: Khi một lƣợng dữ liệu lớn đƣợc gửi đi, thông tin sẽ không đóng gói toàn bộ vào một gói tin mà phải thực hiện phân mảnh, chia gói tin ban đầu thành nhiều gói tin rồi mới gửi đi Khi Snort nhận đƣợc các gói tin này nó phải thực hiện việc ghép nối lại để có đƣợc dữ liệu nguyên dạng ban đầu, từ đó mới thực hiện dƣợc các công việc xử lý tiếp Nhƣ ta đã biết khi một phiên làm việc của hệ thống diễn ra, sẽ có rất nhiều gói tin đƣợc trao đổi trong phiên đó Một gói tin riêng lẻ sẽ không có trang thái và nếu công việc phát hiện xâm nhập chỉ dựa hoàn toàn vào gói tin đó sẽ không đem lại hiệu quả cao Module tiền xử lý stream giúp Snort có thể hiểu đƣợc các
Trang 37phiên làm việc khác nhau từ đó giúp đạt được hiệu quả cao hơn trong việc phát hiện xâm nhập
Giải mã và chuẩn hóa giao thức (decode/normalize): Công việc phát hiện xâm nhập dựa trên dấu hiệu nhận dang nhiều khi bị thất bại khi kiểm tra các giao thức có dữ liệu có thể được thể hiện dưới nhiều dạng khác nhau
Phát hiện các xâm nhập bất thường (nonrule/anormal): Các plugin tiền
xử lý dạng này thường dùng để đối phó với các xâm nhập không thể hoặc rất khó phát hiện được bằng các luật thông thường hoặc các dấu hiệu bất thường trong giao thức Các module tiền xử lý dạng này có thể thực hiện việc phát hiện xâm nhập theo bất cứ cách nào mà ta nghĩ ra từ đó tăng cường thêm tính năng cho Snort
2.2.3 Module phát hiện
Đây là module quan trọng nhất của Snort Nó chịu trách nhiệm phát hiện các dấu hiệu xâm nhập Module phát hiện sử dụng các luật được định nghĩa trước để so sánh với dữ liệu thu thập được từ đó xác định xem có xâm nhập xảy ra hay không Rồi tiếp theo mới có thẻ thực hiện một số công việc như ghi log, tạo thông báo và kết xuất thông tin
Một vấn đề rất quan trọng trong module phát hiện là vấn đề thời gian
xử lý các gói tin: Một IDS thường nhận được rất nhiều gói tin và bản thân nó cũng có rất nhiều các luật xử lý Có thể maatsnhuwngx khoảng thời gian khác nhau cho việc xử lý các gói tin khác nhau Và khi thông lượng mạng quá lớn
có thể xảy ra việc bỏ sót hoặc không phản hồi được đúng lúc Khả năng xử lý của module phát hiện dựa trên một số yếu tố như: số lượng các luật, tốc độ của hệ thống đang chạy Snort, tải trên mạng Một số thử nghiệm cho biết, phiên bản hiện tại của Snort khi được tối ưu hóa chạy trên hệ thống có nhiều
bộ vi xử lý và cấu hình máy tính tương đối mạnh thì có thể hoạt động tốt trên
cả các mãng cỡ Giga
Một module phát hiện cũng có khả năng tách các phần của gói tin ra và
áp dung các luật trên từng phần nào của gói tin đó Các phần đó có thể là:
IP header
Hearder ở tầng giao vận: TCP, UDP
Header ở tầng ứng dụng: DNS header, HTTP header, FTP deader, …
Phần tải của gói tin
Trang 38Một vấn đề nữa trong module phát hiện đó là việc xử lý thế nào khi một gói tin bị phát hiện bởi nhiều luật Do các dòng luật trong Snort cũng được đánh thứ tự ưu tiên, nên một khi gói tin bị phát hiện bởi nhiều luật khác nhau, cảnh báo được lấy ra sẽ là cảnh báo ứng với luật có mức ưu tiên cao nhất
2.2.4 Module log và cảnh báo
Tùy thuộc vào việc Module phát hiện có nhận dạng được xâm nhập hay không mà gói tin có thể bị ghi log hoặc đưa ra cảnh báo Các file log là các file text dữ liệu trong đó có thể được ghi dưới nhiều định dạng khác nhau, chẳng hạn tcpdump
2.2.5 Module kết xuất thông tin
Module này có thể thực hiện các thao tác khác nhau tùy theo việc ta muốn ghi kết quả xuất ra như thế nào Tùy theo việc cấu hình hệ thống mà nó
có thể thực hiện các công việc như:
Ghi log file
Ghi syslog: Syslog là một chuẩn lưu trữ các file log được sử dụng rất nhiều trên các hệ thống Unix, Linux
Ghi cảnh báo vào cơ sở dữ liệu
Tạo file log dang xml: Việc ghi log file dạng xml rất thuận tiện cho việc trao đổi và chia sẻ dữ liệu
Cấu hình lại Router, firewall
Gửi các cảnh báo được gói trong gói tin sử dụng giao thức SNMP Các gói tin SNMP này sẽ được gửi tới một SNMP server nào đó giúp cho việc quản lý các cảnh báo và hệ thống IDS một cách tập trung và thuận tiện hơn
Gửi các thông điệp SMB tới các máy tính windows
Nếu không hài lòng với các cách kết xuất thông tin như trên, ta có thể viết các module kết xuất thông tin riêng tùy theo mục đích sử dụng
2.3 Cấu trúc luật của Snort
2.3.1 Khái niệm cơ sở
Snort dùng một ngôn ngữ mô tả các luật sáng sủa và đơn giản, nó cũng linh động và tương đối mạnh Hầu hết các luật Snort được viết trên một dòng
Trang 39Trong các phiên bản trước 1.8 thì điều này là bắt buộc Trong các bản hiện nay, các luật có thể được viết trên nhiều dòng bằng việc thêm dấu “/” vào cuối mỗi dòng Nếu xét về mặt logic thì các luật Snort được chia làm 2 phần, phần header và phần các tuỳ chọn Phần header gồm có các thông tin về các giao thức, action, các địa chỉ nguồn, đích và mặt nạ mạng địa chỉ cổng nguồn, đích
Phần tuỳ chọn chứa các thông điệp cảnh báo và các thông tin cho biết phần nào của gói tin sẽ được phân tích để xác định action được thực hiện
Ví dụ minh họa một luật Snort đơn giản:
alert tcp any ->192.168.1.0/24 111{content:”/00 01 86 a5/”: msg:
“mounld avvess”:}
Từ đầu dòng đến dấu ngoặc đơn đầu tiên là phần header và phần nằm trong cặp nguồn là phần tuỳ chọn Các từ nằm trong cặp dấu “//” là từ khoá tuỳ chọn Lưu ý là phần tuỳ chọn là không được luật nào yêu cầu cụ thể, chúng chỉ để dùng với mục đích xác định rõ gói tin để tập hợp và cảnh báo (hoặc huỷ) Tất cả các thành phần cấu thành luật phải đúng để các action được thực hiện Khi được đặt cùng nhau, các thành phần có thể được xem như hình thành nên một câu lệnh AND về mặt logic và các luật trong file thư viện có thể được xem như tạo nên một câu lệnh OR [5]
2.3.1.1 Includes
Từ khoá include cho phép các file luật khác được nằm trong file luật
mà dòng lệnh Snort chỉ ra Nó làm việc giống như # include trong ngôn ngữ lập trinh C, đọc các content của file được chỉ ra và đặt chúng vào trong file nơi include xuất hiện
Định dạng:
include: < include đường dẫn/ tên file>
Trang 40Lưu ý không có dấu: ở cuối mỗi dòng Các file include sẽ thay các biến được định nghĩa trước vào trong các biến tham chiếu của nó
alert tcp any any -> S MY_NET any (flag: S; msg: “ SYN packet”;)
Có một số các định nghĩa tên biến, có thể định nghĩa biến meta dùng toán tử S và các toán tử bổ xung, ? và -
* S var-định nghĩa biến meta, *(S var)- thay bằng giá trị của biến var, *
S (var: - default) – thay bằng giá trị của biến var hoặc giá trị default nếu var không được định nghĩa * S var:? message) – thay bằng giá trị của biến var hoặc in ra thông báo lỗi và thoát
Xem về các bổ sung của những luật này trong action:
order: Thay đổi trật tự thi hành của luật (Snort -0)
alertfile: Thiết lập file cảnh báo Ví dụ: config alerfile: alerts