Upload
thanglx
View
73
Download
0
Embed Size (px)
DESCRIPTION
Luan Van
Citation preview
i
MỤC LỤC
Trang phụ bìa
Lời cảm ơn
Lời cam đoan
Tóm tắt luận văn
Mục Lục -------------------------------------------------------------------------------- i
Danh mục các chữ viết tắt ----------------------------------------------------------- iv
Danh mục hình vẽ --------------------------------------------------------------------- v
PHẦN MỞ ĐẦU ---------------------------------------------------------------------- 1
1 Tính cấp thiết của đề tài ---------------------------------------------------------- 1
2 Mục tiêu của đề tài ---------------------------------------------------------------- 2
3 Đối tượng phần mềm nghiên cứu ----------------------------------------------- 2
4 Nội dung nghiên cứu đề tài ------------------------------------------------------ 3
5 Bố cục luận văn ------------------------------------------------------------------- 4
6 Các công trình nghiên cứu liên quan ------------------------------------------- 5
CHƯƠNG 1: TỔNG QUAN
1.1 Đánh giá tổng quan về bảo mật mạng máy tính ---------------------------- 6
1.2 Phân loại các mối đe dọa trong bảo mật ------------------------------------- 8
1.2.1 Mối đe dọa bên trong ------------------------------------------------------ 8
1.2.2 Mối đe dọa từ bên ngoài --------------------------------------------------- 9
1.2.3 Mối đe dọa không có cấu trúc -------------------------------------------- 9
1.2.4 Mối đe dọa có cấu trúc -------------------------------------------------- 10
1.3 Phân loại một số lỗ hổng trong bảo mật ----------------------------------- 10
1.3.1 Lỗ hổng bảo mật ---------------------------------------------------------- 10
1.3.2 Phân loại lỗ hổng bảo mật ----------------------------------------------- 10
1.4 Một số kiểu tấn công mạng -------------------------------------------------- 14
1.5 Các giải pháp phát hiện và phòng chống tấn công mạng ---------------- 17
1.5.1 Các biện pháp phát hiện hệ thống bị tấn công ------------------------ 17
1.5.2 Giải pháp phát hiện và phòng chống xâm nhập ---------------------- 19
CHƯƠNG 2: HỆ THỐNG PHÁT HIỆN VÀ PHÒNG CHỐNG XÂM
NHẬP
ii
2.1 Vai trò, chức năng của hệ thống phát hiện và phòng chống xâm nhập 22
2.1.1 Lịch sử phát triển --------------------------------------------------------- 22
2.1.2 Vai trò, chức năng của hệ thống phát hiện và phòng chống xâm nhập
------------------------------------------------------------------------------------- 23
2.2 Đặc điểm, kiến trúc hệ thống của IDS/IPS -------------------------------- 24
2.2.1 Cơ sở hạ tầng của hệ thống IDS/IPS ----------------------------------- 24
2.2.2 Kiến trúc hệ thống phát hiện xâm nhập ------------------------------- 25
2.3 Phân loại IDS/IPS ------------------------------------------------------------- 29
2.3.1 Host-based IDS/IPS (HIDS) -------------------------------------------- 31
2.3.2 Network Base IDS/IPS (NIDS/IPS) ----------------------------------- 32
2.3.3 Triển khai hệ thống IDS/IPS -------------------------------------------- 34
2.3.4 Khả năng phát hiện và phòng chống xâm nhập của IDS/IPS ------- 36
2.4 Hệ thống giám sát lưu lượng mạng ----------------------------------------- 37
2.5 Hệ thống báo động ------------------------------------------------------------ 38
2.6 SNMP và hệ thống giám sát mạng ----------------------------------------- 39
CHƯƠNG 3: CÁC CÔNG CỤ MÃ NGUỒN MỞ HỖ TRỢ GIÁM SÁT,
PHÁT HIỆN VÀ PHÒNG CHỐNG XÂM NHẬP MẠNG
3.1 Giới thiệu ---------------------------------------------------------------------- 41
3.2 Đặc điểm của Snort ----------------------------------------------------------- 42
3.3 Vấn đề của Snort và khả năng triển khai ---------------------------------- 45
3.3.1 Lợi ích của Snort --------------------------------------------------------- 45
3.3.2 Đánh giá tập luật của Snort --------------------------------------------- 46
3.4 Fwsnort chuyển đổi tập luật từ Snort sang Iptables ---------------------- 46
3.5 Hệ thống giám sát trạng thái hoạt động thiết bị và dịch vụ - Nagios --- 46
3.6 Hệ thống giám sát lưu lượng – Cacti --------------------------------------- 50
3.7 Hệ thống báo động qua SMS – Gnokii ------------------------------------- 53
3.8 Mô hình đề xuất kết hợp Snort, Fwsnort, Nagios, Cacti ----------------- 54
CHƯƠNG 4: PHÁT TRIỂN ỨNG DỤNG HỆ THỐNG GIÁM SÁT VÀ
PHÁT HIỆN XÂM NHẬP MẠNG DỰA TRÊN MÃ NGUỒN MỞ
4.1 Mô hình cài đặt thực nghiệm ------------------------------------------------ 57
4.2 Cài đặt thực nghiệm ---------------------------------------------------------- 57
iii
4.2.1 Cài đặt Gnokii ------------------------------------------------------------ 58
4.2.2 Cài đặt Snort -------------------------------------------------------------- 59
4.2.4 Cài đặt Nagios ------------------------------------------------------------ 63
4.2.5 Cài đặt Cacti -------------------------------------------------------------- 65
4.3 Kết quả đạt được từ thực nghiệm ------------------------------------------- 71
CHƯƠNG 5: KẾT LUẬN, KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT
TRIỂN CỦA ĐỀ TÀI
5.1 Kết luận ------------------------------------------------------------------------ 76
5.2 Kết quả đạt được -------------------------------------------------------------- 77
5.3 Ý nghĩa khoa học và thực tiễn ---------------------------------------------- 78
5.3.1 Ý nghĩa về mặt khoa học ------------------------------------------------ 78
5.3.2 Về mặt thực tiễn ---------------------------------------------------------- 78
5.4 Hướng phát triển cho đề tài -------------------------------------------------- 78
TÀI LIỆU THAM KHẢO
PHỤ LỤC
PHỤ LỤC A: Hướng dẫn cấu hình GSM Gateway trên Linux
PHỤ LỤC B: Hướng dẫn cài đặt Snort
PHỤ LỤC C: Hướng dẫn cài đặt và cấu hình Naigos
PHỤ LỤC D: Hướng dẫn cài đặt và cấu hình Cacti
1
PHẦN MỞ ĐẦU
1 Tính cấp thiết của đề tài
Vào các thập niên 1960, 1980 và đến thập niên 1990, thuật ngữ mạng diện rộng
được phổ biến rộng rãi khởi đầu từ Bộ quốc phòng Hoa Kỳ sau đó thuật ngữ
mạng diện rộng – còn được gọi là WAN được biết đến rộng rãi trên toàn thế
giới, WAN được định nghĩa đơn giản bao gồm sự kết nối của các máy tính đơn
lẻ trên toàn thế giới dựa trên một giao thức kết nối được gọi là TCP/IP.
Ngày nay, mạng máy tính phát triển với tốc độ rất lớn và phạm vi của nó không
chỉ dừng lại ở đó mà tới thời điểm hiện nay việc cạn kiệt nguồn tài nguyên địa
chỉ mạng phiên bản 4 – địa chỉ IP là một bằng chứng cho thấy tốc độ phát triển
của mạng máy tính nhanh chóng và trở thành một môi trường tốt phục vụ cho
các hoạt động phát triển của nhân loại, song song với điều đó là sự phát triển
mạnh mẽ của khoa học công nghệ và hệ thống các tri thức liên quan đến mạng
máy tính, các thiết bị thông minh đã và đang ngày càng góp thêm phần phát
triển mạnh mẽ và vượt trội của hệ thống mạng trên toàn thế giới. Do vậy hệ
thống mạng máy tính là một phần tất yếu và vô cùng quan trọng của một quốc
gia, một doanh nghiệp hay đơn giản chỉ là một hộ gia đình nhỏ, chúng góp phần
vào việc tạo nên những thành công đặc biệt đối với hệ thống mạng quốc gia và
hệ thống mạng của các doanh nghiệp vì phần lớn các công việc ngày nay từ giao
dịch đến trao đổi thông tin đều dựa trên hệ thống mạng máy tính.
Sự phát triển mạnh của hệ thống mạng máy tính cũng là một vùng đất có nhiều
thuận lợi cho việc theo dõi và đánh cắp thông tin của các nhóm tội phạm tin học,
việc xâm nhập bất hợp pháp và đánh cắp thông tin của các doanh nghiệp đang
đặt ra cho thế giới vấn đề làm thế nào để có thể bảo mật được thông tin của
doanh nghiệp mình. Bảo mật thông tin hay an toàn an ninh mạng là những yếu
tố được quan tâm hàng đầu trong các doanh nghiệp. Đã có
2
những doanh nghiệp thực hiện việc thuê một đối tác thứ 3 với việc chuyên bảo
mật hệ thống mạng và bảo mật thông tin cho đơn vị mình, cũng có những doanh
nghiệp đưa ra các kế hoạch tính toán chi phí cho việc mua sản phẩm phần mềm
để nhằm đáp ứng việc bảo mật của đơn vị mình. Tuy nhiên đối với những giải
pháp đó các doanh nghiệp đều phải thực hiện cân đối về chính sách tài chính
hằng năm với mục đích làm sao cho giải pháp an toàn thông tin là tối ưu và có
được chi phí rẻ nhất và đảm bảo thông tin trao đổi được an toàn, bảo vệ thông
tin của đơn vị mình trước những tấn công của tội phạm công nghệ từ bên ngoài
do vậy mà đề tài xây dựng hệ thống giám sát mạng dựa trên mã nguồn mở được
phát triển giúp được phần nào yêu cầu của các doanh nghiệp về an toàn thông tin
và bảo mật hệ thống mạng.
2 Mục tiêu của đề tài
Đề tài được thực hiện nhằm mục đích:
Khảo sát các lỗ hổng bảo mật thông tin, các nguy cơ có thể mất an toàn
thông tin và các nguy cơ hệ thống mạng bị xâm nhập, tấn công.
Đề xuất giải pháp để giám sát hệ thống mạng bao gồm: phát hiện xâm
nhập, theo dõi các hoạt động của các thiết bị mạng như Router, Switch, Server
… và một số dịch vụ mạng được sử dụng.
Phát triển hệ thống báo động của chương trình qua tin nhắn (SMS), Email,
Web
3 Đối tượng phần mềm nghiên cứu
Đối tượng nghiên cứu trong bài luận văn là các chương trình phần mềm mã
nguồn mở bao gồm:
+ Các chương trình phần mềm mở phát hiện xâm nhập.
+ Các chương trình phần mềm mở phòng chống xâm nhập.
+ Các chương trình phần mềm mở giám sát lưu lượng của hệ thống mạng.
3
+ Các chương trình phần mềm mở giám sát thiết bị mạng và các dịch vụ
mạng.
4 Nội dung nghiên cứu đề tài
Đề tài tập trung nghiên cứu các vấn đề liên quan đến phát hiện xâm nhập trái
phép và giám sát lưu lượng mạng bao gồm;
+ Nghiên cứu các khả năng tấn công mạng.
+ Nghiên cứu các khả năng phát hiện xâm nhập trái phép hệ thống mạng.
+ Nghiên cứu các khả năng phòng chống một số các phương thức tấn
công mạng.
+ Nghiên cứu các khả năng giám sát hoạt động các thiết bị mạng và dịch
vụ mạng trong toàn hệ thống mạng.
Từ những vấn đề nêu trên đề xuất mô hình giám sát các hoạt động của các thiết
bị mạng, phát hiện và phòng chống xâm nhập được tích hợp từ các chương trình
mã nguồn mở.
Tiến hành thực nghiệm việc cài đặt giải pháp giám sát hoạt động của các thiết bị
mạng, dịch vụ mạng và phát hiện, phòng chống xâm nhập trái phép dựa trên cơ
sở các chương trình mã nguồn mở, có cảnh báo đến quản trị bằng SMS, Email,
Web.
Trong phần nội dung của bài luận văn tốt nghiệp này, tác giả tập trung nghiên
cứu các chương trình phần mềm được cung cấp bằng mã nguồn mở để dựa vào
các phần mềm này tác giả xây dựng giải pháp tổng thể việc theo dõi giám sát hệ
thống mạng, các dịch vụ mạng và các dấu hiệu bất thường trong hệ thống mạng
nhằm cung cấp cho người quản trị hệ thống mạng có cái nhìn tổng quan về phát
hiện và phòng chống xâm nhập mạng trái phép. Cụ thể, tác giả đề xuất sử dụng
các chương trình mã nguồn mở được cung cấp rộng rãi
4
như: Nagios, Snort, Cacti, Gnokii và sử dụng GSM/GPRS modem hoặc dùng
điện thoại để thực nghiệm giải pháp. Tạo ra một hệ thống giám sát mạng có khả
năng phát hiện và cảnh báo những động thái xâm nhập mạng trái phép, phòng
chống tấn công mạng, giám sát hoạt động của các thiết bị mạng trong đó có lưu
lượng sử dụng trên thiết bị các thành phần phần cứng trong thiết bị, các dịch vụ
được sử dụng trong hệ thống mạng.
Dựa trên những giải pháp đó tác giả phát triển một hệ thống cảnh báo cho người
quản trị hệ thống mạng bằng nhiều phương thức như: Email, SMS, Web mục
đích hỗ trợ cho người quản trị một cách nhanh nhất có thể khắc phục và xử lý sự
cố liên quan đến hệ thống mạng đạt được hiệu quả cao.
5 Bố cục luận văn
Phần bố cục của luận văn được trình bày thành 5 chương.
Chương 1 : Tổng quan. Giới thiệu bao quát về vấn đề bảo mật mạng và
các vấn đề liên quan đến tấn công xâm nhập hệ thống mạng.
Chương 2: Hệ thống phát hiện và phòng chống xâm nhập mạng, ở chương
này tác giả trình bày tổng quan về khả năng, vai trò và đặc điểm của chương
trình phát hiện và phòng chống xâm nhập mạng, giám sát lưu lượng, giám sát
dịch vụ mạng.
Chương 3: Các công cụ hỗ trợ trong việc phát hiện và phòng chống xâm
nhập mạng. Trong chương này tác giả trình bày các đặc điểm của các phần mềm
mã nguồn mở sử dụng trong việc cài đặt thực nghiệm của luận văn. Khả năng
tích hợp chúng thành một hệ thống giám sát và phát hiện xâm nhập và cảnh báo
thông tin tức thời qua SMS hoặc Email, Web.
Chương 4: Trong chương này tác giả tập trung phát triển ứng dụng giám
sát hệ thống mạng bằng các chương trình mã nguồn mở, đề xuất mô hình mạng
và cài đặt thực nghiệm dùng các chương trình mã nguồn mở đã nêu trong đề tài.
5
Chương 5: Đánh giá những mặt đạt được, kết luận và hướng phát triển
thêm của đề tài.
6 Các công trình nghiên cứu liên quan
- Báo cáo luận văn thạc sĩ kỹ thuật máy tính đề tài “Xây dựng hệ thống hỗ trợ
giám sát mạng” tác giả Nguyễn Đăng Bảo Phúc – Đại học Đà Nẵng tháng
3/2012. Nội dung của luận văn tác giả hướng dẫn cách cài đặt và cấu hình
chương trình mã nguồn mở Nagios để theo dõi giám sát một hệ thống mạng kết
hợp Gammu để gửi tin nhắn đến quản trị mạng.
- Báo cáo tốt nghiệp kỹ sư đề tài “Nghiên cứu hệ thống giám sát quản trị
mạng trên nền tảng mã nguồn mở Nagios” bài đăng trên website
http://www.hce.edu.vn/hsv/ năm 2008. Nội dung của bài khóa luận tác giả cũng
tập trung vào việc hướng dẫn cài đặt và cấu hình chương trình theo dõi giám sát
hệ thống mạng dựa trên Nagios.
- Báo cáo nghiên cứu khoa học đề tài “Xây dựng hệ thống giám sát mạng dựa
trên mã nguồn mở” tác giả nhóm sinh viên Khoa Công nghệ thông tin Đại học
Đà Lạt năm 2010. Nội dung báo cáo là những tìm hiểu ban đầu về cách thức
hoạt động của chương trình Nagios và hướng dẫn cài đặt.
- Báo cáo tốt nghiệp kỹ sư đề tài “ Nghiên cứu triển khai hệ thống giám sát
quản trị mạng trên nền tảng mã nguồn mở Nagios” tháng 5/2009 của tác giả
Phạm Hồng Khai, ngành Công nghệ thông tin Đại học Quốc gia Hà Nội. Nội
dung đề tài tác giả tập trung nghiên cứu mô hình giám sát mạng dựa trên Nagios,
khai thác các tính ưu việt của chương trình để cài đặt và đưa vào giám sát hệ
thống mạng và áp dụng Snort vào hệ thống.
Các công trình nghiên cứu có liên quan, các tác giả tập trung nghiên cứu chủ yếu
vào chương trình mã nguồn mở Nagios và Snort, sử dụng nền tảng mã nguồn
mở với mục đích xây dựng hệ thống giám sát mạng, chưa xây dựng một mô hình
tổng thể với việc phát hiện và cảnh báo bằng SMS, email một cách trực quan
giúp công tác quản lý điều hành của quản trị viên hiệu quả hơn.
CHƯƠNG 1: TỔNG QUAN
1.1 Đánh giá tổng quan về bảo mật mạng máy tính
Bảo mật mạng máy tính hiện nay được đánh giá là một trong những vấn đề quan
trọng bậc nhất của tất cả các quốc gia trong đó có Việt Nam, theo những thống
kê chưa đầy đủ của Tổng cục thống kê thì tính đến tháng 03/2012 số thuê bao sử
dụng Internet vào khoảng 4,2 triệu thuê bao tăng 17,5% và tổng số người sử
dụng Internet cũng tăng 15,3% tức vào khoảng 32,1 triệu người so với cùng thời
điểm năm 2011. Số liệu trên cho thấy tình hình phát triển công nghệ thông tin tại
Việt Nam trong những năm trở lại đây có tốc độ rất lớn và dự kiến sẽ có chiều
hướng tăng do sự phát triển của thiết bị thông minh và các thiết bị khác. Một số
doanh nghiệp Việt Nam chưa có kế hoạch hoặc có kế hoạch đầu tư nhỏ vào việc
bảo mật cho hệ thống mạng trong khi các doanh nghiệp bắt đầu phát triển các
ứng dụng công nghệ mạng để quảng cáo hoặc cung cấp thông tin của doanh
nghiệp mình trong thế giới số.
Theo báo cáo về an toàn thông tin được công bố trong ngày “An toàn thông tin
năm 2011” về vấn đền an toàn thông tin trong các tổ chức doanh nghiệp Việt
Nam năm 2011, có đến:
- 52% số tổ chức vẫn không hoặc chưa có quy trình thao tác chuẩn để ứng
phó với những cuộc tấn công máy tính
- Tỷ lệ sử dụng những công nghệ chuyên sâu hoặc hẹp hơn như mã hoá, hệ
thống phát hiện xâm nhập, chứng chỉ số, chữ ký số…chỉ chiếm 20% .
- Đặc biệt tỷ lệ sử dụng những giải pháp cấp cao trong bảo mật an ninh
mạng như quản lý định danh, hệ thống quản lý chống thất thoát dữ liệu,
sinh trắc học chỉ chiếm 5% trong tất cả các giải pháp chống tấn công của
tội phạm công nghệ cao.[1]
Nhận định về an toàn thông tin trong những năm qua, các chuyên gia bảo mật
hàng đầu tại Việt Nam đều có chung một nhận định có nhiều biến động lớn và
7
mức độ tấn công là ngày càng rất nguy hiểm và gây nhiều thiệt hại cho các
doanh nghiệp trong nước[2]. Để giải quyết vấn đề này các công ty bảo mật hàng
đầu trên thế giới và của Việt Nam vẫn tiếp tục nghiên cứu phát triển những gói
giải pháp bảo mật bao gồm thiết bị phần cứng và các chương trình phần mềm
phục vụ cho việc an toàn thông tin và bảo mật hệ thống mạng, các nhà cung cấp
dịch vụ giải pháp bảo mật như Juniper (với các sản phẩm phần cứng tường lửa
như NetScreen), Cisco với các thiết bị tường lửa như ASA, PIX hoặc như các
thiết bị tường lửa tiên tiến hơn như Checkpoint, IPS của nhà cung cấp IBM là
những thiết bị phần cứng liên quan đến bảo mật hệ thống mạng và an toàn thông
tin liên tục được đưa ra trên thị trường, bên cạnh những thiết bị phần cứng còn
phải kể đến những ứng dụng phần mềm được các nhà cung cấp giải pháp an toàn
thông tin đưa ra nhằm phục vụ cho việc bảo mật hệ thống thông tin. Có thể kể
đến một vài tên tuổi nổi tiếng như: Symantec (với giải pháp phần mềm Anti
Virut, Spam, Malware), Microsoft, Kaspersky, TrenPC, McAfee, SolarWin với
những gói phần mềm khá hoàn hảo (theo đánh giá của các nhà cung cấp) trong
việc bảo mật và an toàn thông tin.
Những sản phẩm thương mại của các nhà cung cấp giải pháp an toàn thông tin
được tung ra trên thị trường trong những năm gần đây được đánh giá cao về mức
độ bảo mật và hiệu năng hoạt động của nó, tuy nhiên vấn đề đầu tư các giải pháp
bảo mật an toàn thông tin cho doanh nghiệp mang tính đầy đủ đem đến cho các
doanh nghiệp vừa và nhỏ một chi phí đầu tư đáng kể so với hoạt động kinh
doanh của doanh nghiệp.
Theo các nghiên cứu hiện nay có tại Việt Nam cũng như trên thế giới về xây
dựng một hệ thống IDS phát hiện và phòng chống xâm nhập mạng trái phép dựa
trên mã nguồn mở cũng phát triển mạnh, tuy nhiên tại Việt Nam các nghiên cứu
này có mức độ triển khai vào thực tế là chưa cao và còn là những bài toán lớn
cho giải pháp bảo mật thông tin dựa trên phần mềm mã nguồn mở.
8
1.2 Phân loại các mối đe dọa trong bảo mật
Như đã nêu trên, việc bảo mật đối với các doanh nghiệp là một vấn đề lớn hiện
nay, việc một tội phạm tin học xâm nhập đã tạo ra rất nhiều cách khác nhau để
có thể thành công trong việc làm hư hỏng hoàn toàn một hệ thống mạng hoặc
một dịch vụ ứng dụng Web của một doanh nghiệp. Có nhiều phương pháp đã
được triển khai nhằm giảm thiểu khả năng tấn công như phát triển hạ tầng mạng
và truyền thông trên internet, dùng tường lửa, mã hóa, mạng riêng ảo… Sự phát
hiện xâm nhập cũng là một kỹ thuật gần giống với việc sử dụng tường lửa hay
đại loại như thế. Mục đích của một hệ thống phát hiện xâm nhập là thông báo
cho nhà quản trị khi có một hành vi xâm nhập hoặc một sự tấn công được phát
hiện. Có thể có nhiều cách khác nhau để tấn công và hệ thống phát hiện xâm
nhập cũng có nhiều cách để phát hiện. Để làm rõ vấn đề phát hiện xâm nhập
trước tiên cần hiểu rõ một số các mối đe dọa trong bảo mật một hệ thống mạng
hoạt động ra sao. Thông thường có 4 mối đe dọa cho việc bảo mật hệ thống
được mô tả như sau:
1.2.1 Mối đe dọa bên trong
Thuật ngữ mối đe dọa bên trong được sử dụng để mô ta một kiểu tấn công
được thực hiện từ một người hoặc một tổ chức có quyền truy cập vào hệ thống
mạng. Các cách tấn công từ bên trong được thực hiện từ một khu vực được coi
là vùng tin cậy trong hệ thống mạng. Mối đe dọa này có thể khó phòng chống
hơn vì các nhân viên hoặc những tổ chức có quyền hạn trong hệ thống mạng sẽ
truy cập vào mạng và dữ liệu bí mật của doanh nghiệp. Phần lớn các doanh
nghiệp hiện nay đều có tường lửa ở các đường biên mạng và họ tin tưởng hoàn
toàn vào các ACL (Access Control List) và quyền truy cập vào server để qui
đị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, tổ chức bất bình, muốn
“quay mặt” lại với doanh nghiệp. Nhiều phương pháp bảo mật liên quan đến
vành đai của hệ thống mạng, bảo vệ mạng bên trong khỏi các kết nối bên ngoài,
như là truy cập Internet. Khi vành đai của hệ thống mạng được bảo mật, các
9
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 hệ thống mạng, mọi
chuyện còn lại thường là rất đơn giản. Các mạng không dây giới thiệu một lĩnh
vực mới về quản trị bảo mật. Không giống như mạng có dây, các mạng không
dây tạo ra một khu vực bao phủ có thể bị can thiệp và sử dụng bởi bất kì ai có
phần mềm đúng và một adapter của mạng không dây. Không chỉ tất cả các dữ
liệu mạng có thể bị xem và ghi lại mà các sự tấn công vào mạng có thể được
thực hiện từ bên trong, nơi mà cơ sở hạ tầng dễ bị nguy hiểm hơn nhiều. Vì vậy,
các phương pháp mã hóa mạnh luôn được sử dụng trong mạng không dây.
1.2.2 Mối đe dọa từ bên ngoài
Mối đe dọa ở bên ngoài là từ các tổ chức, chính phủ, hoặc cá nhân cố
gắng truy cập từ bên ngoài mạng của doanh nghiệp và bao gồm tất cả những
người không có quyền truy cập vào mạng bên trong. Thông thường, các kẻ tấn
công từ bên ngoài cố gắng từ các server quay số hoặc các kết nối Internet. Mối
đe dọa ở bên ngoài là những gì mà các doanh nghiệp thường phải bỏ nhiều hầu
hết thời gian và tiền bạc để ngăn ngừa.
1.2.3 Mối đe dọa không có cấu trúc
Mối đe dọa không có cấu trúc là mối đe dọa phổ biến nhất đối với hệ
thống của một doanh nghiệp. Các hacker mới vào nghề, thường được gọi là
script kiddies, sử dụng các phần mềm để thu thập thông tin, truy cập hoặc thực
hiện một kiểu tấn công DoS vào một hệ thống của một doanh nghiệp. Script
kiddies tin tưởng vào các phần mềm và kinh nghiệm của các hacker đi trước.
Khi script kiddies không có nhiều kiến thức và kinh nghiệm, họ có thể tiến hành
phá hoại lên các doanh nghiệp không được chuẩn bị. Trong khi đây chỉ là trò
chơi đối với các kiddie, các doanh nghiệp thường mất hàng triệu đô la cũng như
là sự tin tưởng của cộng đồng. Nếu một web server của một doanh nghiệp bị tấn
công, cộng đồng cho rằng hacker đã phá vỡ được sự bảo mật của doanh nghiệp
đó, trong khi thật ra các hacker chỉ tấn công được một chỗ yếu của server. Các
server Web, FTP, SMTP và một vài server khác chứa các dịch vụ có rất nhiều lổ
hổng để có thể bị tấn công, trong khi các server quan trọng được đặt sau rất
10
nhiều lớp bảo mật. Cộng đồng thường không hiểu rằng phá vỡ một trang web
của một doanh nghiệp thì dễ hơn rất nhiều so với việc phá vỡ cơ sở dữ liệu thẻ
tín dụng của doanh nghiệp đó. Cộng đồng phải tin tưởng rằng một doanh nghiệp
rất giỏi trong việc bảo mật các thông tin riêng tư của nó.
1.2.4 Mối đe dọa có cấu trúc
Mối đe dọa có cấu trúc là khó ngăn ngừa và phòng chống nhất vì nó xuất
phát từ các tổ chức hoặc cá nhân sử dụng một vài loại phương pháp luận thực
hiện tấn công. Các hacker với kiến thức, kinh nghiệm cao và thiết bị sẽ tạo ra
mối đe dọa này. Các hacker này biết các gói tin được tạo thành như thế nào và
có thể phát triển mã để khai thác các lỗ hổng trong cấu trúc của giao thức. Họ
cũng biết được các biện pháp được sử dụng để ngăn ngừa truy cập trái phép,
cũng như các hệ thống IDS và cách chúng phát hiện ra các hành vi xâm nhập.
Họ biết các phương pháp để tránh những cách bảo vệ này. Trong một vài trường
hợp, một cách tấn công có cấu trúc được thực hiện với sự trợ giúp từ một vài
người ở bên trong. Đây gọi là mối đe dọa có cấu trúc ở bên trong. Cấu trúc hoặc
không cấu trúc có thể là mối đe dọa bên ngoài cũng như bên trong.
1.3 Phân loại một số lỗ hổng trong bảo mật
1.3.1 Lỗ hổng bảo mật
Các lỗ hổng bảo mật trên một hệ thống là các điểm yếu có thể tạo nên sự
ngưng trệ của dịch vụ, thêm quyền đối với người sử dụng hoặc cho phép truy
cập bất hợp pháp vào hệ thống. Các lỗ hổng bảo mật có thể nằm ngay các dịch
vụ cung cấp như Web, Email, FTP, … Ngoài ra các chương trình ứng dụng hay
dùng cũng chứa các lỗ hổng bảo mật như Word, các hệ cơ sở dữ liệu như SQL…
1.3.2 Phân loại lỗ hổng bảo mật
Thực hiện phân loại và hiểu được những phương thức bảo mật thực sự
quan trọng trong việc xây dựng một hệ thống lọc và phân loại gói tin của tường
lửa với mục đích phát hiện được những lỗ hổng trong việc bảo mật. Hiện nay
việc phân loại lỗ hổng bảo mật cơ bản được phân thành 03 loại.
11
Các lỗ hổng bảo mật trên một hệ thống là các điểm yếu có thể tạo ra sự
ngưng trệ của dịch vụ, thêm quyền đối với người sử dụng hoặc cho phép các
truy nhập không hợp pháp vào hệ thống. Các lỗ hổng cũng có thể nằm ngay các
dịch vụ cung cấp như sendmail, Web, Ftp … Ngoài ra các lỗ hổng còn tồn tại
ngay chính tại hệ điều hành như trong Windows NT, Windows 95, UNIX; hoặc
trong các ứng dụng mà người sử dụng thương xuyên sử dụng như Word
processing, Các hệ databases…[6]
1.3.2.1 Loại C – Ít nguy hiểm
Các lỗ hổng bảo mật thuộc loại này thường cho phép thực hiện việc
tấn công DoS. DoS là một hình thức tấn công sử dụng các giao thức tầng ứng
dụng trong bộ giao thức TCP/IP để làm hệ thống ngưng trệ, tràn đệm dẫn đến
tình trạng từ chối tất cả các yêu cầu của người sử dụng hợp pháp truy cập hay sử
dụng hệ thống. Một số lượng lớn các gói tin được gửi tới server trong khoảng
thời gian liên tục làm cho hệ thống trở nên quá tải, kết quả là server đáp ứng
chậm hoặc không thể đáp ứng các yêu cầu từ client gửi tới. Các dịch vụ có chứa
đựng lỗ hổng cho phép thực hiện các cuộc tấn công DoS có thể được nâng cấp
hoặc sửa chữa bằng các phiên bản mới hơn của các nhà cung cấp dịch vụ. Hiện
nay, chưa có một giải pháp toàn diện nào để khắc phục các lỗ hổng loại này vì
bản thân việc thiết kế giao thức ở tầng Internet (IP) nói riêng và bộ giao thức
TCP/IP đã chứa đựng những nguy cơ tiềm tàng của các lỗ hổng này. Tuy nhiên,
mức độ nguy hiểm của các lỗ hổng loại này được xếp loại C; ít nguy hiểm vì
chúng chỉ làm gián đoạn cung cấp dịch vụ của hệ thống trong một thời gian mà
không làm nguy hại đến dữ liệu và người tấn công cũng không đạt được quyền
truy nhập bất hợp pháp vào hệ thống.
Một lỗ hổng loại C khác cũng thường thấy đó là các điểm yếu của
dịch vụ cho phép thực hiện tấn công làm ngưng trệ hệ thống của người sử dụng
cuối; Chủ yếu của hình thức tấn công này là sử dụng dịch vụ Web. Với một hình
thức tấn công đơn giản như cùng một lúc gửi nhiều yêu cầu truy cập, điều này
có thể làm treo hệ thống. Đây cùng là một hình thức tấn công kiểu DoS. Người
12
quản trị hệ thống Website trong trường hợp này chỉ có thể khởi động lại hệ
thống.[6]
Một lỗ hổng loại C khác cũng thường gặp đối với các hệ thống mail
là không xây dựng các cơ chế anti-relay (chống relay) cho phép thực hiện các
hành động spam mail. Như chúng ta đã biết, cơ chế hoạt động của dịch vụ thư
điện tử là lưu và chuyển tiếp; một số hệ thống mail không có các xác thực khi
người dùng gửi thư, dẫn đến tình trạng các đối tượng tấn công lợi dụng các máy
chủ mail này để thực hiện spam mail; Spam mail là hành động nhằm tê liệt dịch
vụ mail của hệ thống bằng cách gửi một số lượng lớn các messages tới một địa
chỉ không xác định, vì máy chủ mail luôn phải tốn năng lực đi tìm những địa chỉ
không có thực dẫn đến tình trạng ngưng trệ dịch vụ. Số lượng các messages có
thể sinh ra từ các chương trình làm bom thư rất phổ biến trên mạng Internet.
1.3.2.2 Loại B – Nguy hiểm
Các lỗ hổng loại này có mức độ nguy hiểm hơn lỗ hổng loại C, cho
phép người sử dụng nội bộ có thể chiếm được quyền cao hơn hoặc truy nhập
không hợp pháp. Những lỗ hổng loại này thường xuất hiện trong các dịch vụ
trên hệ thống. Người sử dụng local được hiểu là người đã có quyền truy nhập
vào hệ thống với một số quyền hạn nhất định.
Một dạng khác của lỗ hổng loại B xảy ra đối với các chương trình
có mã nguồn viết bằng ngôn ngữ lập trình C. Những chương trình viết bằng
ngôn ngữ lập trình C thường sử dụng một vùng đệm – là một vùng trong bộ nhớ
sử dụng để lưu dữ liệu trước khi xử lý. Những người lập trình thường sử dụng
vùng đệm trong bộ nhớ trước khi gán một khoảng không gian bộ nhớ cho từng
khối dữ liệu. Ví dụ, người sử dụng viết chương trình nhập trường tên người sử
dụng; qui định trường này dài 20 ký tự. Do đó họ sẽ khai báo: char first_name
[20];
13
Với khai báo này, cho phép người sử dụng nhập vào tối đa 20 ký
tự. Khi nhập dữ liệu, trước tiên dữ liệu được lưu ở vùng đệm; nếu người sử dụng
nhập vào 35 ký tự; sẽ xảy ra hiện tượng tràn vùng đệm và kết quả 15 ký tự dư
thừa sẽ nằm ở một vị trí không kiểm soát được trong bộ nhớ. Đối với những
người tấn công, có thể lợi dụng lỗ hổng này để nhập vào những ký tự đặc biệt,
để thực thi một số lệnh đặc biệt trên hệ thống. Thông thường, lỗ hổng này
thường được lợi dụng bởi những người sử dụng trên hệ thống để đạt được quyền
root không hợp lệ. Việc kiểm soát chặt chẽ cấu hình hệ thống và các chương
trình sẽ hạn chế được các lỗ hổng loại B.[6]
1.3.2.3 Loại A – Rất nguy hiểm
Các lỗ hổng loại A có mức độ rất nguy hiểm; đe dọa tính toàn vẹn
và bảo mật của hệ thống. Các lỗ hổng loại này thường xuất hiện ở những hệ
thống quản trị yếu kém hoặc không kiểm soát được cấu hình mạng.
Một ví dụ thường thấy là trên nhiều hệ thống sử dụng Web Server
là Apache, Đối với Web Server này thường cấu hình thư mục mặc định để chạy
các đoạn scripts là cgi-bin; trong đó tồn tại một đoạn scripts được viết sẵn để thử
hoạt động của apache là test-cgi. Đối với các phiên bản cũ của Apache (trước
version 1.1), có dòng sau trong file test-cgi:
echo QUERY_STRING = $QUERY_STRING
Biến môi trường QUERY_STRING do không được đặt trong có
dấu ” (quote) nên khi phía client thưc hiện một yêu cầu trong đó chuỗi ký tự gửi
đến gồm một số ký tự đặc biệt; ví dụ ký tự “*”, web server sẽ trả về nội dung
của toàn bộ thư mục hiện thời (là các thư mục chứa các scipts cgi). Người sử
dụng có thể nhìn thấy toàn bộ nội dung các file trong thư mục hiện thời trên hệ
thống server. Một ví dụ khác cũng xảy ra tương tự đối với các Web server chạy
trên hệ điều hành Novell; Các web server này có một scripts là convert.bas, chạy
scripts này cho phép đọc toàn bộ nội dung các files trên hệ thống.
14
Những lỗ hổng loại này hết sức nguy hiểm vì nó đã tồn tại sẵn có
trên phần mềm sử dụng; người quản trị nếu không hiểu sâu về dịch vụ và phần
mềm sử dụng sẽ có thể bỏ qua những điểm yếu này.
Đối với những hệ thống cũ, thường xuyên phải kiểm tra các thông
báo của các nhóm tin về bảo mật trên mạng để phát hiện những lỗ hổng loại này.
Một loạt các chương trình phiên bản cũ thường sử dụng có những lỗ hổng loại A
như: FTP, Gopher, Telnet, Sendmail, ARP, finger…[2]
Các loại bảo mật nêu trên có thể phân loại chung thành 03 mức độ
cơ bản của điểm yếu bảo mật như sau:
- Điểm yếu về kỹ thuật: bao gồm những kỹ thuật gồm có điểm yếu
trong các giao thức, hệ điều hành và các thiết bị phần cứng như
Server, Router, Switch
- Điểm yếu về cấu hình hệ thống: bao gồm lỗi do nhà quản trị tạo ra,
lỗi này do các thiếu sót trong việc cấu hình hệ thống như: không
đảm bảo thông tin mật tài khoản khách hàng, hệ thống tài khoản với
mật khẩu dễ dàng đoán biết, sử dụng các cấu hình mặc định trên
thiết bị.
- Điểm yếu trong chính sách bảo mật: chính sách bảo mật mô tả việc
làm thế nào và ở đâu chính sách bảo mật được thực hiện. Đây là
điều kiện quan trọng giúp việc bảo mật có hiệu quả tốt nhất.
1.4 Một số kiểu tấn công mạng
Có rất nhiều dạng tấn công mạng đang được biết đến hiện nay, dựa vào hành
động tấn công của tội phạm mạng có thể phân làm 02 loại là chủ động và bị
động.
- Tấn công chủ động (active attack): Kẻ tấn công thay đổi hoạt động của hệ
thống và hoạt động của mạng khi tấn công và làm ảnh hưởng đến tính
toàn vẹn, sẵn sàng và xác thực của dữ liệu.
15
- Tấn công bị động (passive attack): Kẻ tấn công cố gắng thu thập thông tin
từ hoạt động của hệ thống và hoạt động của mạng làm phá vỡ tính bí mật
của dữ liệu.
Dựa vào nguồn gốc của cuộc tấn công thì có thể phân loại tấn công thành 2 loại
hình tấn công bao gồm: tấn công từ bên trong và tấn công từ bên ngoài, tấn công
trực tiếp.
- Tấn công bên trong bao gồm những hành vi mang tính chất xâm nhập hệ
thống nhằm mục đích phá hoại. Kẻ tấn công bên trong thường là những người
nằm trong một hệ thống mạng nội bộ, lấy thông tin nhiều hơn quyền cho phép.
- Tấn công bên ngoài là những tấn công xuất phát từ bên ngoài hệ thống
như Internet hay các kết nối truy cập từ xa. Tấn công bên ngoài có thể là những
dạng tất công trực tiếp, các dạng tấn công này thông thường là sử dụng trong
giai đoạn đầu để chiếm quyền truy cập. Phổ biến nhất vẫn là cách dò tìm tên
người sử dụng và mật khẩu. Tội phạm mạng có thể sử dụng những thông tin liên
quan đến chủ tài khoản như ngày tháng năm sinh, tên vợ (chồng) hoặc con cái
hoặc số điện thoại để dò tìm thông tin tài khoản và mật khẩu với mục đích chiếm
quyền điều khiển của một tài khoản, thông thường đối với những tài khoản có
mật khẩu đơn giản thì tội phạm mạng chỉ dò tìm mật khẩu qua thông tin chủ tài
khoản, một cách tiếp cận việc chiếm quyền truy nhập bằng cách tìm tài khoản và
mật khẩu tài khoảng khác là dùng chương trình để dò tìm mật khẩu. Phương
pháp này trong một số khả năng hữu dụng thì có thể thành công đến 30%. Một
kiểu tấn công bên ngoài khác được đề cập đến nữa chính là hình thức nghe trộm,
việc nghe trộm thông tin trên mạng có thể đưa lại những thông tin có ích như
tên, mật khẩu của người sử dụng, các thông tin mật chuyển qua mạng. Việc nghe
trộm thường được tiến hành ngay sau khi kẻ tấn công đã chiếm được quyền truy
nhập hệ thống, thông qua các chương trình cho phép đưa card giao tiếp mạng
(Network Interface Card-NIC) vào chế độ nhận toàn bộ các thông tin lưu truyền
trên mạng. Những thông tin này cũng có thể dễ dàng lấy được trên Internet.
16
- Một số các lỗi khác liên quan đến con người, hệ thống cũng là những
kiểu tấn công trực tiếp từ bên ngoài nhưng có mức độ phức tạp và khó khăn hơn,
nguy hiểm nhất là yếu tố con người bởi nó là một trong nhiều điểm yếu nhất
trong bất kỳ hệ thống bảo mật nào[5] (trích website quantrimang.com)
- Khi một mạng máy tính bị tấn công, nó sẽ bị chiếm một lượng lớn tài
nguyên trên máy chủ, mức độ chiếm lượng tài nguyên này tùy thuộc vào khả
năng huy động tấn công của tội phạm mạng, đến một giới hạn nhất định khả
năng cung cấp tài nguyên của máy chủ sẽ hết và như vậy việc từ chối các yêu
cầu sử dụng dịch vụ của người dùng hợp pháp bị từ chối. Việc phát động tấn
công của tội phạm mạng còn tùy thuộc vào số lượng các máy tính ma mà tội
phạm mạng đó đang kiểm soát, nếu khả năng kiểm soát lớn thì thời gian để tấn
công và làm sập hoàn toàn một hệ thống mạng sẽ nhanh và cấp độ tấn công sẽ
tăng nhanh hơn, tội phạm mạng có thể một lúc tấn công nhiều hệ thống mạng
khác nhau tùy vào mức độ kiểm soát chi phối các máy tính ma như thế nào.
Các kiểu tấn công có nhiều hình thức khác nhau, nhưng thông thường đều thực
hiện qua các bước theo hướng mô tả sau:
+ Khảo sát thu thập thông tin về nơi chuẩn bị tấn công bằng các công cụ
để tìm hiểu đầy đủ về hệ thống mạng.
+ Sau khi đã thu thập đủ thông tin, tội phạm mạng sẽ dò tìm những thông
tin về lỗ hổng của bảo mật hệ thống dựa trên những thông tin đã tìm được, phân
tích điểm yếu của hệ thống mạng, sử dụng các bộ công cụ để dò quét tìm lỗi trên
hệ thống mạng đó.
+ Khi đã có trong tay những điểm yếu của hệ thống mạng, tội phạm mạng
sẽ tiến hành xâm nhập hệ thống mạng bằng các công cụ như làm tràn bộ đệm
hoặc tấn công từ chối dịch vụ.
+ Ở một số cuộc tấn công, người xâm nhập sau khi đã xâm nhập thành
công và khai thác được hệ thống mạng rồi sẽ thực hiện việc duy trì xâm nhập
17
với mục đích khai thác và xâm nhập trong tương lai gần. Tội phạm mạng có thể
sử dụng những thủ thuật như mở cửa sau (backdoor) hoặc cài đặt một trojan để
nhằm mục đích duy trì sự xâm nhập của mình. Việc duy trì và làm chủ một hệ
thống mạng tạo cho tội phạm mạng có đủ những điều kiện để khai thác, phục vụ
những nhu cầu về thông tin. Ngoài ra, hệ thống mạng này khi bị chiếm quyền
xâm nhập cũng sẽ trở thành nạn nhân của một hệ thống botnet được sử dụng
trong các cuộc tấn công khác mà cụ thể là tấn công từ chối dịch vụ đến một hệ
thống mạng khác.
+ Xóa dấu vết. Khi một kẻ tấn công đã xâm nhập thành công sẽ cố gắng
duy trì sự xâm nhập này. Bước tiếp theo là chúng phải làm sao xóa hết dấu vết
để không còn chứng cứ pháp lí xâm nhập. Kẻ tấn công phải xóa các tập tin log,
xóa các cảnh báo từ hệ thống phát hiện xâm nhập.
Ở các giai đoạn thu thập thông tin và dò tìm lỗ hổng trong bảo mật, kẻ tấn công
thường làm lưu lượng kết nối mạng thay đổi khác với lúc mạng bình thường rất
nhiều, đồng thời tài nguyên của hệ thống máy chủ sẽ bị ảnh hưởng đáng kể.
Những dấu hiệu này rất có ích cho người quản trị mạng có thể phân tích và đánh
giá tình hình hoạt động của hệ thống mạng. Hầu hết các cuộc tấn công đều tiến
hành tuần tự như các bước đã nêu trên. Làm sao để nhận biết hệ thống mạng
đang bị tấn công, xâm nhập ngay từ hai bước đầu tiên là hết sức quan trọng. Ở
giai đoạn xâm nhập, bước này không dễ dàng đối với kẻ tấn công. Do vậy, khi
không thể xâm nhập được vào hệ thống, để phá hoại có nhiều khả năng kẻ tấn
công sẽ sử dụng tấn công từ chối dịch vụ để ngăn cản không cho người dùng
hợp lệ truy xuất tài nguyên hệ thống.
1.5 Các giải pháp phát hiện và phòng chống tấn công mạng
1.5.1 Các biện pháp phát hiện hệ thống bị tấn công
Không có một hệ thống nào có thể đảm bảo an toàn tuyệt đối; bản thân
mỗi dịch vụ đều có những lỗ hổng bảo mật tiềm tàng. Đứng trên góc độ người
18
quản trị hệ thống, ngoài việc tìm hiểu phát hiện những lỗ hổng bảo mật còn luôn
phải thực hiện các biện pháp kiểm tra hệ thống xem có dấu hiệu tấn công hay
không. Các biện pháp đó là:
- Kiểm tra các dấu hiệu hệ thống bị tấn công: hệ thống thường bị treo
hoặc bị crash bằng những thông báo lỗi không rõ ràng, khó xác định nguyên
nhân hệ thống bị treo do thiếu thông tin liên quan. Trước tiên, xác định các
nguyên nhân về phần cứng hay không, nếu không phải phần cứng hãy nghĩ đến
khả năng máy bị tấn công
- Kiểm tra các tài khoản người dùng mới trên hệ thống: một số tài khoản
lạ, nhất là uid của tài khoản đó là zero
- Kiểm tra xuất hiện các tập tin lạ. Thường phát hiện thông qua cách đặt
tên các tập tin, mỗi người quản trị hệ thống nên có thói quen đặt tên tập tin theo
một mẫu nhất định để dễ dàng phát hiện tập tin lạ. Thực hiện các lệnh liệt kê
danh sách tập tin trong hệ thống để kiểm tra thuộc tính setuid và setgid đối với
những tập tin đáng chú ý (đặc biệt là các tập tin scripts).
- Kiểm tra thời gian thay đổi trên hệ thống, đặc biệt là các chương trình
login, sh hoặc các scripts khởi động trong /etc/init.d, /etc/rc.d …
- Kiểm tra hiệu năng của hệ thống. Sử dụng các tiện ích theo dõi tài
nguyên và các tiến trình đang hoạt động trên hệ thống như ps hoặc top …
- Kiểm tra hoạt động của các dịch vụ mà hệ thống cung cấp. Chúng ta đã
biết rằng một trong các mục đích tấn công là làm cho tê liệt hệ thống (Hình thức
tấn công DoS). Sử dụng các lệnh như ps, pstat, các tiện ích về mạng để phát hiện
nguyên nhân trên hệ thống.
- Kiểm tra truy nhập hệ thống bằng các account thông thường, đề phòng
trường hợp các account này bị truy nhập trái phép và thay đổi quyền hạn mà
người sử dụng hợp pháp không kiểm sóat được.
19
- Kiểm tra các file liên quan đến cấu hình mạng và dịch vụ như
/etc/inetd.conf; bỏ các dịch vụ không cần thiết; đối với những dịch vụ không cần
thiết chạy dưới quyền root thì không chạy bằng các quyền yếu hơn.
- Kiểm tra các phiên bản của sendmail, /bin/mail, ftp; tham gia các nhóm
tin về bảo mật để có thông tin về lỗ hổng của dịch vụ sử dụng
Các biện pháp này kết hợp với nhau tạo nên một chính sách về bảo mật
đối với hệ thống.
1.5.2 Giải pháp phát hiện và phòng chống xâm nhập
Phát hiện xâm nhập là một tập hợp các kỹ thuật và phương pháp dùng để
dò tìm những hoạt động đáng nghi ngờ trên mạng. Một hệ thống phát hiện xâm
nhập được định nghĩa là một tập hợp các công cụ, phương thức, và tài nguyên
giúp người quản trị xác định, đánh giá, và báo cáo hoạt động không được phép
trên mạng.
Phát hiện xâm nhập được xem là một tiến trình được quyết định khi một
người không xác thực đang cố gắng để xâm nhập hệ thống mạng trái phép. Hệ
thống phát hiện xâm nhập sẽ kiểm tra tất cả các gói tin đi qua hệ thống và quyết
định gói tin đó có vấn đề khả nghi hay không. Hệ thống phát hiện xâm nhập
đuợc trang bị hàng triệu tình huống để nhận dạng tấn công và đuợc cập nhật
thường xuyên. Chúng thực sự quan trọng và là lựa chọn hàng đầu để phòng thủ
trong việc phát hiện và phòng chống xâm nhập mạng.
Việc nghiên cứu xây dựng hệ thống phát hiện và phòng chống xâm nhập
(IDS/IPS) đang được phát triển mạnh và còn phát triển mạnh mẽ trong thời gian
tới. Các sản phẩm thương mại trên thị trường có chi phí rất lớn, vượt quá khả
năng đầu tư của nhiều doanh nghiệp. Bên cạnh đó, các nghiên cứu về mã nguồn
mở cũng đã được đầu tư nghiên cứu và triển khai. Có nhiều đề tài trong nước
nghiên cứu liên quan đến IDS/IPS bằng mã nguồn mở chủ yếu tập trung vào
Snort. Nhưng nhìn chung chưa được áp dụng rộng rãi, còn tồn tại nhiều hạn chế
20
như: do chương trình mã nguồn mở nên hầu hết không có giao diện thân thiện;
thành phần báo động không được tích hợp sẵn, hoặc nếu có cũng chỉ qua giao
diện console, hoặc qua giao diện Web chưa tạo được sự linh động và tiện dụng
cho người quản trị mạng; phần mềm mang tính đơn lẻ (chỉ tập trung nghiên cứu
về Snort) trong khi nhu cầu tích hợp nhiều tính năng giám sát khác để nâng cao
hiệu quả sử dụng chưa được chú trọng và phát triển. Hơn nữa, các dấu hiệu của
các kiểu tấn công ngày một tinh vi phức tạp đòi hỏi hệ thống phát hiện và phòng
chống xâm nhập (IDS/IPS) phải được thường xuyên cập nhật những dấu hiệu
mới. Người quản trị mạng còn có thể dựa vào những phân tích khác như những
dấu hiệu bất thường về lưu lượng ra vào hệ thống, hoạt động của CPU, RAM...
để có những phản ứng kịp thời. Bên cạnh đó, hệ thống báo động cũng cần triển
khai mang tính chất đa dạng nhiều hình thức, linh động, tiện dụng thực sự hỗ trợ
thiết thực cho người quản trị mạng.
Các 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. Việc nghiên cứu và triển khai một hệ thống
giám sát mạng, phát hiện và phòng chống xâm nhập với các yếu tố: chính xác,
nhanh chóng, trực quan, linh động và tiện lợi là vấn đề cấp thiết trong thực tế.
Phát triển hệ thống giám sát trực quan theo dõi các diễn biến trên mạng
như lưu lượng ra vào một Server, Switch, … hay hoạt động của CPU, bộ nhớ,
… giúp người quản trị mạng có những phân tích để đưa ra ứng phó kịp thời.
Hệ thống phát hiện xâm nhập dựa vào những mẫu dấu hiệu tấn công triển
khai để giúp phát hiện nhanh các cuộc tấn công mạng. Hệ thống phát hiện này
kết hợp với tường lửa sẽ chống lại các cuộc tấn công xâm nhập. Tuy nhiên, các
dấu hiệu của các kiểu tấn công ngày một tinh vi phức tạp thì hệ thống phát hiện
phải được thường xuyên cập nhật những dấu hiệu mới. Để có thể phát hiện
nhanh chóng các bất thường trên mạng, người quản trị mạng còn có thể dựa vào
những đồ thị trực quan về lưu lượng ra vào hệ thống để có những phản ứng kịp
thời.
21
Hệ thống báo động cũng cần triển khai để thông báo cho người quản trị
trong một số trường hợp: Server ngưng hoạt động, một dịch vụ mạng ngưng
hoạt động hay có tấn công mạng. Hệ thống báo động có thể được triển khai qua
nhiều hình thức để phát báo động như: bằng Web, E-mail hay qua tin nhắn SMS
đến người quản trị mạng.
CHƯƠNG 2: HỆ THỐNG PHÁT HIỆN VÀ PHÒNG
CHỐNG XÂM NHẬP
2.1 Vai trò, chức năng của hệ thống phát hiện và phòng chống xâm nhập
2.1.1 Lịch sử phát triển
Được ra đời từ các nghiên cứu về hệ thống phát hiện xâm nhập cách đây
25 năm nhưng trong khoảng thời gian từ năm 1983 đến năm 1988 các nghiên
cứu về hệ thống phát hiện xâm nhập IDS (Intrusion Detection System) mới
chính thức được công bố chính thức và đến 1996 đã có một số các hệ thống IDS
được ứng dụng chủ yếu trong các phòng thí nghiệm và các viện nghiên cứu
mạng. Đến năm 1997 hệ thống phát hiện xâm nhập IDS mới được biết đến rộng
rãi và đưa vào thực nghiệm đem lại nhiều lợi nhuận cho ISS - công ty đi đầu
trong việc nghiên cứu hệ thống phát hiện xâm nhập mạng.
IPS được hiểu là một hệ thống chống xâm nhập (Intrusion Prevention
System –IPS) được định nghĩa là một phần mềm hoặc một thiết bị chuyên dụng
có khả năng phát hiện xâm nhập và có thể ngăn chặn các nguy cơ gây mất an
ninh. IDS và IPS có rất nhiều điểm chung, do đó hệ thống IDS và IPS có thể
được gọi chung là IDP- Intrusion Detection and Prevention.
Trước những mặt hạn chế của IDS thì việc phát triển một hệ thống IPS là
cần thiết, nhất là sau khi xuất hiện các cuộc tấn công ồ ạt trên quy mô lớn như
Code Red, NIMDA, SQL Slammer, một vấn đề được đặt ra là làm sao có thể tự
động ngăn chặn được các tấn công chứ không chỉ đưa ra các cảnh báo mục đích
nhằm giảm thiểu công việc của người quản trị hệ thống. Hệ thống IPS được ra
đời vào năm 2003 và ngay sau đó, năm 2004 nó được phổ biến rộng rãi. Kết hợp
với việc nâng cấp các thành phần quản trị, hệ thống IPS xuất hiện đã dần thay
thế cho IDS bởi nó giảm bớt được các yêu cầu tác động của con người trong
việc đáp trả lại các nguy cơ phát hiện được, cũng như
23
giảm bớt được phần nào gánh nặng của việc vận hành. Hơn nữa trong một số
trường hợp đặc biệt, một IPS có thể hoạt động như một IDS bằng việc ngắt bỏ
tính năng ngăn chặn xâm nhập. Ngày nay các hệ thống mạng đều hướng tới sử
dụng các giải pháp IPS thay vì hệ thống IDS và còn phát triển mạnh trong công
nghệ an ninh mạng.
2.1.2 Vai trò, chức năng của hệ thống phát hiện và phòng chống xâm
nhập
Hệ thống phát hiện xâm nhập dùng để lắng nghe, dò tìm các gói tin qua hệ
thống mạng để phát hiện những dấu hiệu bất thường trong mạng. Thông thường
những dấu hiệu bất thường là những dấu hiệu của những cuộc tấn công xâm
nhập mạng. IDS sẽ phát những tín hiệu cảnh báo tới người quản trị mạng.
Hệ thống phòng chống xâm nhập (Intrusion Prevention System – IPS) là
một phần mềm hoặc một thiết bị chuyên dụng có khả năng phát hiện xâm nhập
và có thể ngăn chặn các nguy cơ mạng bị tấn công. IDS và IPS có rất nhiều điểm
chung, do đó hệ thống IDS và IPS có thể được gọi chung là hệ thống phát hiện
và phòng chống xâm nhập (IDS/IPS).
Hệ thống IPS là một kỹ thuật an ninh mới, kết hợp các ưu điểm của kỹ
thuật tường lửa (firewall) với hệ thống phát hiện xâm nhập, có khả năng phát
hiện sự xâm nhập, các cuộc tấn công và tự động ngăn chặn các cuộc tấn công
đó. Hệ thống IDS/IPS thường được đặt ở phần biên mạng để bảo vệ tất cả các
thiết bị trong mạng.
Một vài chức năng cơ bản của IDS/IPS:
+ Nhận diện các nguy cơ có thể xảy ra.
+ Ghi nhận thông tin, log để phục vụ cho việc kiểm soát nguy cơ.
+ Nhận diện các hoạt động thăm dò hệ thống.
24
+ Nhận diện các yếu khuyết của chính sách bảo mật.
+ Ngăn chặn vi phạm chính sách bảo mật.
+ Lưu giữ thông tin liên quan đến các đối tượng quan sát
+ Cảnh báo những sự kiện quan trọng liên quan đến đối tượng quan sát
+ Ngăn chặn các tấn công (IPS)
+ Xuất báo cáo
2.2 Đặc điểm, kiến trúc hệ thống của IDS/IPS
2.2.1 Cơ sở hạ tầng của hệ thống IDS/IPS
Nhiệm vụ chính của hệ thống IDS/IPS là phòng thủ máy tính bằng cách
phát hiện một cuộc tấn công và có thể đẩy lùi nó. Phát hiện vụ tấn công thù địch
phụ thuộc vào số lượng và loại hành động thích hợp.
Hình 2.1 Hoạt động của hệ thống IDS/IPS[13]
Công tác phòng chống xâm nhập đòi hỏi một sự kết hợp tốt được lựa chọn
25
của "mồi và bẫy" nhằm điều tra các mối đe dọa, nhiệm vụ chuyển hướng sự chú
ý của kẻ xâm nhập từ các hệ thống cần bảo vệ sang các hệ thống giả lập là
nhiệm vụ của 1 dạng IDS riêng biệt (Honeypot IDS), cả hai hệ thống thực và giả
lập được liên tục giám sát và dữ liệu thu được được kiểm tra cẩn thận (đây là
công việc chính của mỗi hệ IDS/IPS) để phát hiện các cuộc tấn công có thể (xâm
nhập).
Một khi xâm nhập đã được phát hiện, hệ thống IDS/IPS phát các cảnh báo
đến người quản trị về sự kiện này. Bước tiếp theo được thực hiện, hoặc bởi các
quản trị viên hoặc bởi chính hệ thống IDS/IPS , bằng cách áp dụng các biện
pháp đối phó (chấm dứt phiên làm việc, sao lưu hệ thống, định tuyến các kết nối
đến Honeypot IDS hoặc sử dụng các cơ sở hạ tầng pháp lý v.v) – tùy thuộc vào
chính sách an ninh của mỗi tổ chức.
Hệ thống IDS/IPS là một thành phần của chính sách bảo mật. Trong số
các nhiệm vụ IDS khác nhau, nhận dạng kẻ xâm nhập là một trong những nhiệm
vụ cơ bản. Nó có thể hữu ích trong các nghiên cứu giám định sự cố và tiến hành
cài đặt các bản patches thích hợp để cho phép phát hiện các cuộc tấn công trong
tương lai nhắm vào mục tiêu cụ thể.
Hình 2.2 Cơ sở hạ tầng hệ thống IDS/IPS[7]
2.2.2 Kiến trúc hệ thống phát hiện xâm nhập
26
2.2.2.1 Cấu trúc
Sensor / Agent: Giám sát và phân tích các hoạt động. “Sensor”
thường được dùng cho dạng Network-base IDS/IPS trong khi “Agent” thường
được dùng cho dạng Host-base IDS/IPS
Management Server: Là 1 thiết bị trung tâm dùng thu nhận các
thông tin từ Sensor / Agent và quản lý chúng. 1 số Management Server có thể
thực hiện việc phân tích các thông tin sự việc được cung cấp bởi Sensor / Agent
và có thể nhận dạng được các sự kiện này dù các Sensor / Agent đơn lẻ không
thể nhận diện được
Database server: Dùng lưu trữ các thông tin từ Sensor / Agent hay
Management Server
Console: Là 1 chương trình cung cấp giao diện cho IDS/IPS users
/ Admins. Có thể cài đặt trên một máy tính bình thường dùng để phục vụ cho tác
vụ quản trị, hoặc để giám sát, phân tích.
2.2.2.2 Kiến trúc của hệ thống IDS/IPS
Hình 2.3 Hệ thống mẫu phát hiện xâm nhập[7]
27
Trong hệ thống phát hiện xâm nhập, sensor đượ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.
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 thông tin (information collection).
+ Thành phần phân tích gói tin (Detection).
+ Thành phần phản hồi (response).
Hình 2.4 Thành phần của kiến trúc IDS[7]
Trong ba thành phần này thì thành phần phân tích gói tin là quan trọng
28
nhất và trong thành phần này sensor đóng vai trò quyết định. Sensor được tích
hợp với thành phần thu thập dữ liệu. Cách thu thậ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 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. 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.
Vai trò của sensor 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 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
được gọi là cấu trúc đa tác nhân. 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. 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. IDS 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
bảo vệ liên quan đến các kiểu tấn công mới. Các giải pháp dựa trên tác nhân IDS
cũng sử dụng các cơ chế ít phức tạp hơn cho việc nâng cấp chính sách đáp trả.
29
Giải pháp kiến trúc đa tác nhân được đưa ra năm 1994. Giải pháp này 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ụ như một tác nhân có thể cho biết một số thông tin
không bình thường của các phiên Telnet 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 sao chép 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.
Hình 2.5 Các tác nhân tự trị cho việc phát hiện xâm nhập[7]
2.3 Phân loại IDS/IPS
Có hai phương pháp khác nhau trong việc phân tích các sự kiện để phát hiện các
vụ tấn công: phát hiện dựa trên các dấu hiệu và phát hiện sự bất thường. Các sản
phẩm IDS có thể sử dụng một trong hai cách hoặc sử dụng kết hợp cả hai.
30
+ Phát hiện dựa trên dấu hiệu: Phương pháp này nhận dạng các sự kiện
hoặc tập hợp các sự kiện phù hợp với một mẫu các sự kiện đã được định nghĩa là
tấn công.
+ Phát hiện sự bất thường: công cụ này thiết lập một hiện trạng các hoạt
động bình thường và sau đó duy trì một hiện trạng hiện hành cho một hệ thống.
Khi hai yếu tố này xuất hiện sự khác biệt, nghĩa là đã có sự xâm nhập.
Các hệ thống IDS khác nhau đều dựa vào phát hiện các xâm nhập trái phép và
những hành động dị thường. Quá trình phát hiện có thể được mô tả bởi 3 yếu tố
cơ bản nền tảng sau:
- Thu thập thông tin (information collection): Kiểm tra tất cả các gói tin
trên mạng.
- Sự phân tích (Analysis): Phân tích tất cả các gói tin đã thu thập để cho
biết hành động nào là tấn công.
- Cảnh báo (response): hành động cảnh báo cho sự tấn công được phân
tích ở trên.
Hình 2.6 Phân loại IDS/IPS[10]
31
2.3.1 Host-based IDS/IPS (HIDS)
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 công cộng 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 định. 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 (không phải là
tất cả):
- Các tiến trình.
32
- 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.
Hình 2.7 Mô hình vị trí của HIDS/IPS trong hệ thống mạng
2.3.2 Network Base IDS/IPS (NIDS/IPS)
Hệ thống IDS dựa trên mạng sử dụng bộ dò và sensor 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
sensor 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
33
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
Hình 2.8 Mô hình vị trí NIDS/IPS trong một hệ thống mạng
Một cách mà các hacker cố gắng nhằm che đậy cho hoạt động của họ khi
gặp hệ thống IDS dựa trên mạng là phân mảnh những gói thông tin của họ. Mỗi
giao thức có một kích cỡ gói dữ liệu giới hạn, nếu dữ liệu truyền qua mạng lớn
hơn kích cỡ này thì gói dữ liệu đó sẽ được phân mảnh. Phân mảnh đơn giản chỉ
là quá trình chia nhỏ dữ liệu ra những mẫu nhỏ. Thứ tự của việc sắp xếp lại
không thành vấn đề miễn là không xuất hiện hiện tượng chồng chéo. Nếu có
hiện tượng phân mảnh chồng chéo, bộ cảm biến phải biết quá trình tái hợp lại
cho đúng. Nhiều hacker cố gắng ngăn chặn phát hiện bằng cách gởi nhiều gói dữ
34
liệu phân mảnh chồng chéo. Một bộ cảm biến sẽ không phát hiện các hoạt động
xâm nhập nếu bộ cảm biến không thể sắp xếp lại những gói thông tin một cách
chính xác.
2.3.3 Triển khai hệ thống IDS/IPS
Thông thường có nhiều cách để triển khai một hệ thống IDS/IPS, tuy
nhiên thường được dùng nhiều để triển khai trong một hệ thống mạng là 02 cách
thức triển khai như sau:
+ In-line (thẳng hàng)
Hình 2.9 Mô hình triển khai theo kiểu thẳng hàng
Người ta đặt một sensor thẳng hàng sao cho nó có thể giám sát được các
lưu lượng mạng đi qua nó như trong trường hợp của firewall. Thực tế là 1 số
Sensor thẳng hàng được sử dụng như 1 loại lai giữa firewall và NIDS/IPS, một
số khác là NIDS thuần túy. Động cơ chính của việc triển khai Sensor kiểu thẳng
hàng là nó có thể dừng các tấn công bằng việc chặn lưu lượng mạng ( blocking
network traffic ). Sensor thẳng hàng thường được triển khai tại vị trí tương tự
với firewall và các thiết bị bảo mật khác: ranh giới giữa các mạng. Sensor thẳng
35
hàng có thể được triển khai ở những vùng mạng kém bảo mật hơn hoặc phía
trước các thiết bị bảo mật, firewall mục đích để giảm tải cho các thiết bị này.
Tuy nhiên vị trí này sẽ làm cho tốc độ luồng thông tin qua ra vào mạng
chậm hơn, với mục tiêu ngăn chặn các cuộc tấn công, hệ thống IDS/IPS phải
hoạt động theo thời gian thực. Tốc độ hoạt động của hệ thống là một yếu tố rất
quan trọng. Quá trình phát hiện xâm nhập phải đủ nhanh để có thể ngăn chặn
các cuộc tấn công ngay lập tức.
+ Passive (Thụ động)
Sensor kiểu thụ động được triển khai sao cho nó có thể giám sát 01 bản
sao của các lưu lượng trên mạng. Thường được triển khai giám sát các vị trí
quan trọng trong mạng như ranh giới giữa các mạng, các đoạn mạng quan trọng
ví dụ như Server farm hoặc DMZ. Sensor thụ động có thể giám sát lưu lượng
mạng qua nhiều cách như Spanning port (hoặc Mirror port), Network tap hoặc
IDS loadbalancer.
Hình 2.10 Mô hình triển khai kiểu thụ động
36
Khả năng thu thập thông tin bao gồm nhận dạng các host, hệ điều hành,
các ứng dụng, đặc điểm mạng. Khả năng ghi log file. Khả năng nhận diện những
hoạt động thăm dò, vi phạm chính sách hoặc các dịch vụ ứng dụng không mong
đợi. Khả năng ngăn chặn của kiểu thụ động là ngắt phiên TCP hiện tại
Cần lưu ý khi triển khai hệ thống IDS/IPS là phải triển khai các Sensor ở
dạng ẩn (Stealth mode). Trong dạng này, các giao diện của Sensor không được
gán địa chỉ IP (trừ giao diện quản lý) để tránh việc khởi tạo kết nối từ các host
khác nhằm ẩn Sensor khỏi sự phát hiện của kẻ tấn công.
Điểm yếu của hệ thống NIDS/IPS chính là việc nó rất dễ bị ảnh hưởng bởi
nhiều loại tấn công liên quan đến khối lượng lưu lượng mạng lớn ( large volume
of network traffic ) và kiến trúc Single-point of Failure khi triển khai Sensor
kiểu thẳng hàng.
2.3.4 Khả năng phát hiện và phòng chống xâm nhập của IDS/IPS
Hệ thống IDS/IPS hoạt động theo kiểu nhận dạng mẫu gói tin (packet).
Nó sẽ so sánh những gói tin trùng với gói tin mẫu tấn công mà nó có, nếu trùng
khớp thì kết luận đây là loại gói tin tấn công và hệ thống sẽ phát cảnh báo hoặc
gởi tín hiệu tới tường lửa để ngăn cản gói tin đi vào mạng bên trong. Hiện nay
đa số IDS/IPS hoạt động theo kiểu này. Tuy nhiên nếu kiểu tấn công mới thì
IDS/IPS không nhận biết được, nên phải cập nhật các luật (dấu hiệu tấn công)
thường xuyên giống như cập nhật virus. Nếu hoạt động theo kiểu thông minh thì
IDS theo dõi mạng xem có hiện tượng bất thường hay không và phản ứng lại.
Lợi điểm là có thể nhận biết các kiểu tấn công mới, nhưng nhiều trường hợp bị
báo động nhầm có nghĩa là không phải trường hợp tấn công mà vẫn gây báo
động.
Như vậy, sau khi hệ thống IDS đã phát hiện ra tấn công, xâm nhập thì có
thể thực hiện các hành động sau:
+ Gửi tín hiệu đến tường lửa để ngăn chặn tấn công. Trường hợp này gọi
là hệ thống phát hiện và phòng chống xâm nhập (IDS/IPS)
37
+ Chỉ đưa ra cảnh báo cho người quản trị mạng: hệ thống phát hiện xâm
nhập trái phép (IDS).
Để phòng chống tấn công xâm nhập, có thể kết hợp hệ thống phát hiện
với hệ thống tường lửa để ngăn cản những gói tin tấn công đi vào mạng bên
trong. Một trong những hệ thống tường lửa được sử dụng phổ biến trong các
phần mềm nguồn mở là Iptables. Có nhiều công cụ nguồn mở cho phép chuyển
đổi các luật trong Snort thành các luật trong Iptables như Snort-inline,
SnortSam, Fwsnort, … Trong luận văn này sẽ sử dụng Fwsnort để cài đặt thực
nghiệm.
2.4 Hệ thống giám sát lưu lượng mạng
Ngoài việc theo dõi những gói tin để phát hiện việc xâm nhập và phòng chống
việc xâm nhập trái phép, việc theo dõi giám sát lưu lượng mạng, các dịch vụ
mạng và thiết bị tham gia hoạt động trong hệ thống mạng cũng không kém phần
quan trọng, việc giám sát bao gồm các lưu lượng mạng, hoạt động của CPU,
RAM hay các trạng thái hoạt động của các máy chủ cung cấp các dịch vụ mạng.
Theo dõi hoạt động của các thiết bị mạng như Router, Switch cũng là những nhu
cầu đang được quan tâm hiện nay nhằm mục đích nâng cao hoạt động của hệ
thống mạng, đảm bảo ổn định và đem lại hiệu quả cao. Việc giám sát lưu lượng
mạng, các dịch vụ và thiết bị giúp cho quản trị viên nhanh chóng biết được vấn
đề cũng như tình hình hoạt động của hệ thống mạng mình đang quản lý, nhanh
chóng đưa ra những phương án cụ thể nhằm tối ưu hóa hệ thống hay những
chính sách nhằm khắc phục sự cố và tăng cường an ninh bảo mật cho hệ thống
mạng.
Hệ thống IDS/IPS đã nêu ở trên hoàn toàn có thể phát hiện được những hành vi
xâm nhập mạng và có khả năng phòng chống việc những hành vi xâm nhập trái
phép đó dựa vào các dấu hiệu nhận biết tấn công được lưu trữ và cập nhật
thường xuyên. Tuy nhiên hầu như các hệ thống phát hiện xâm nhập và phòng
chống xâm nhập đều không hoàn toàn an toàn, ngành bảo mật luôn phải tìm ra
giải pháp sau những cuộc xâm nhập trái phép trước đó và hệ thống phát hiện và
38
phòng chống xâm nhập cũng sẽ dễ dàng bị loại bỏ nếu có những dấu hiệu tấn
công mới nhưng chưa được hệ thống cập nhật đầy đủ hoặc chưa biết tới, các tập
luật của hệ thống phát hiện chưa cập nhật đầy đủ sẽ dễ dàng bị qua mặt bởi
những dấu hiệu tấn công mới đó.
Cùng sự kết hợp với hệ thống giám sát lưu lượng mạng, những hoạt động của
thiết bị mạng, dịch vụ mạng trong hệ thống sẽ được theo dõi theo thời gian thực
trên hệ thống, giúp mô tả trực quan sự hoạt động của toàn hệ thống, các biểu đồ,
đồ thị hiển thị các trạng thái của hệ thống mạng giúp quản trị viên dễ tổng hợp,
phân tích những việc đang diễn ra nhằm đề xuất giải pháp cho những sự cố
mang tính nguy hại cho hệ thống có thể xảy ra.
Ngoài ra, người quản trị có thể thiết lập những ngưỡng cảnh báo để kết hợp với
hệ thống báo động để giúp người quản trị nhanh chóng có được những thông tin
về những cuộc tấn công hay phát hiện những bất thường trong hệ thống. Nhưng
bất thường ở đây như là một dịch vụ mạng ngưng hoạt động, máy chủ ngưng
hoạt động, hay CPU hoạt động quá tải (đặt ngưỡng cảnh báo).
Trong phạm vi luận văn này, tác giả đề xuất sử dụng chức năng giám sát lưu
lượng mạng, dịch vụ mạng và thiết bị hoạt động trong mạng dựa trên 02 chương
trình mã nguồn mở là Nagios và Cacti. Hai chương trình mã nguồn mở này sẽ có
sự kết hợp với hệ thống IDS/IPS để tạo nên một hệ thống giám sát đầy đủ, cụ
thể giúp quản trị viên hoạt động tốt hơn trong việc theo dõi giám sát và quản trị
hiệu quả hơn hệ thống mạng do mình quản trị.
2.5 Hệ thống báo động
Một trong những thành phần quan trọng trong việc theo dõi tình trạng hoạt động
của hệ thống đối với người quản trị mạng là có thể phát hiện các sự cố hệ thống
một cách nhanh chóng. Đây cũng là một yêu cầu lớn đặt ra cho hệ thống phát
hiện và phòng chống xâm nhập.
Như đã đề cập ở phần trên, hệ thống báo động là một thành phần quan trọng
trong hệ thống giám sát mạng, nó kết hợp với hệ thống dò tìm xâm nhập và hệ
39
thống giám sát trạng thái hoạt động của các thiết bị (host) và dịch vụ (service)
phát ra những tín hiệu cảnh báo đến người quản trị khi hệ thống có sự cố xâm
nhập hay sự cố bất thường khác xảy ra… Những thông tin từ hệ thống phát hiện
xâm nhập hay hệ thống phát hiện những dấu hiệu bất thường được chuyển tới hệ
thống báo động để phát cảnh báo tới người quản trị.
Hệ thống báo động trong luận văn này sẽ được trình bày và cài đặt trong mô
hình thực nghiệm bao gồm: hệ thống báo động trên giao diện Web, qua e-mail
và gửi tin nhắn SMS qua điện thoại di động.
Đặc biệt trong luận văn này, phần báo động SMS sử dụng giải pháp GSM/GPRS
gateway. Nó có khả năng báo động thẳng đến điện thoại di động mà không
thông qua bước trung gian nào. Có nghĩa là trong trường hợp kết nối Internet bị
ngắt thì hệ thống vẫn làm việc bình thường. Thành phần kết nối với thiết bị SMS
Gateway sẽ sử dụng là phần mềm nguồn mở Gnokii SMS kết hợp với thiết bị
phần cứng GSM/GPRS modem hoặc Mobile phone để thực nghiệm.
Hình 2.11 Thiết bị dùng trong hệ thống báo động
Hoạt động của hệ thống báo động được mô tả như sau: Hệ thống giám sát mạng
sẽ theo dõi tình trạng hoạt động của toàn hệ thống, ngay khi phát hiện ra những
dấu hiệu bất thường. Các dấu hiệu bất thường sẽ được ngay lập tức gởi đến
GSM/GPRS modem và phát cảnh báo SMS tới người quản trị mạng.
2.6 SNMP và hệ thống giám sát mạng
SNMP (Simple Network Management Protocol) là một giao thức được sử dụng
trong hệ thống mạng nhằm mục đích theo dõi trạng thái của các thiết bị. SNMP
40
làm nhiệm vụ thu thập thông tin từ các thiết bị mạng (Router, Switch, Server…)
cần giám sát và gửi về cho chương trình giám sát để phân tích và sử dụng để
hiển thị ra giao diện quản trị các thông tin cần thiết theo mục đích của chương
trình giám sát. Trong SNMP có 3 vấn đề cần quan tâm: Manager, Agent và MIB
(Management Information Base).
- MIB: là cơ sở dữ liệu dùng phục vụ cho Manager và Agent.
- Manager: nằm trên máy chủ giám sát hệ thống mạng
-Thành phần Agent: là một chương trình nằm trên các thiết bị cần giám
sát, quản lý. Agent có thể là một chương trình riêng biệt (ví dụ như daemon trên
Unix) hay được tích hợp vào Hệ điều hành, ví dụ như trong IOS của các thiết bị
Cisco. Nhiệm vụ của các Agent là thông báo các thông tin đến cho thành phần
điều khiển được cấu hình nằm trên máy chủ giám sát. SNMP sử dụng UDP
(User Datagram Protocol) như là giao thức truyền tải thông tin giữa các
Manager và Agent. Việc sử dụng UDP, thay vì TCP, bởi vì UDP là phương thức
truyền mà trong đó hai đầu thông tin không cần thiết lập kết nối trứơc khi dữ
liệu được trao đổi (connectionless), thuộc tính này phù hợp trong điều kiện
mạng gặp trục trặc, hư hỏng.
CHƯƠNG 3: CÁC CÔNG CỤ MÃ NGUỒN MỞ HỖ TRỢ
GIÁM SÁT, PHÁT HIỆN VÀ PHÒNG CHỐNG XÂM
NHẬP MẠNG Trong chương này, tác giả sẽ trình bày một số công cụ nguồn mở hỗ trợ trong
việc xây dựng mô hình đề xuất theo dõi tình hình hoạt động của hệ thống (thiết
bị và dịch vụ), phát hiện và phòng chống xâm nhập: bao gồm các công cụ chính
là Snort, Fwsnort, Cacti, Nagios và Gnokii. Với những công cụ nguồn mở này
được tích hợp vào chung một hệ thống, đồng thời kết hợp với việc phát triển hệ
thống báo động đa dạng, linh hoạt bằng giao diện Web, Email và SMS tạo ra
một công cụ tích hợp làm nhiệm vụ giám sát hệ thống giúp phát hiện và cảnh
báo những biến cố cho hệ thống mạng một cách trực quan, thời gian thực, nhanh
chóng và tiện lợi phục vụ hiệu quả cho công việc quản trị hệ thống mạng.
3.1 Giới thiệu
Có rất nhiều công cụ cho phép người quản trị mạng dò tìm những lổ hổng trong
hệ thống mạng của mình. Điển hình có các phần mềm: Nmap, Metaexploit,
SolarWinds, Blue Ports Scan, Super Scan, … Những công cụ này rất cần thiết để
kiểm tra xem trong hệ thống mạng chúng ta có những lỗ hổng bảo mật nào hay
không để kịp thời khắc phục.
Ở cấp độ cao hơn là tiến hành xây dựng một giải pháp toàn diện có tính khả thi
cao nhằm giúp nhanh chóng cho các nhà quản trị mạng phát hiện ra những cuộc
tấn công xâm nhập mạng, những sự cố trong quá trình hoạt động của hệ thống
như một dịch vụ mạng ngưng hoạt động hay một thiết bị mạng (Router, Switch,
Server,…) ngưng hoạt động, hay theo dõi luồng lưu lượng qua các kết nối giữa
các thiết bị, hoạt động của CPU, RAM, …trên một số thiết bị cần giám sát.
42
Trong đề tài này, tác giả đề xuất phát triển một hệ thống giám sát mạng có tính
trực quan và tiện lợi, giúp người quản trị mạng nắm bắt hoạt động của hệ thống
mọi lúc, mọi nơi, … Mô hình kết hợp mà tác giả đề xuất là kết hợp của các phần
mềm nguồn mở: Snort, Fwsnort, Cacti, Nagios và hệ thống báo động qua SMS -
Gnokii.
+ Snort: phát hiện các xâm nhập mạng dựa vào tập luật được cập nhật
thường xuyên.
+ Fwsnort: chuyển đổi các luật trong Snort thành các luật trong Iptables
để phòng chống tấn công mạng
+ Cacti: giám sát lưu lượng (traffic) trong từng thiết bị và giữa các thiết bị
trong hệ thống mạng thể hiện qua các đồ thị: theo dõi các lưu lượng ra vào các
cổng giao tiếp, hoạt động của CPU, bộ nhớ,… của các thiết bị mạng quan trọng
như Core Switch, Router, Firewall, Server…Điều này giúp các nhà quản trị
mạng có những phân tích để phát hiện những bất thường trong hệ thống.
+ Nagios: giám sát thiết bị trạng thái hoạt động của các thiết bị và các
dịch vụ mạng trong hệ thống.
+ Gnokii: hỗ trợ trong việc giao tiếp GSM/GPRS modem và hệ thống
giám sát từ Snort, Cacti, Nagios để gửi cảnh báo bằng tin nhắn SMS đến điện
thoại di động của người quản trị mạng.
Phần tiếp theo sẽ trình bày một số đặc điểm của Snort, Fwsnort, Cacti, Nagios
và Gnokii trong việc giám sát mạng.
3.2 Đặc điểm của Snort
Snort là một phần mềm thuộc dạng IDS/IPS mã nguồn mở cho phép giám sát,
phát hiện những dấu hiện tấn công, xâm nhập mạng. Snort được nhiều tổ chức
phát triển và biến thành sản phẩm thương mại như Sourcefire, Astaro.
Snort bao gồm các thành phần chính :[10]
+ Bộ phận giải mã gói - Packet Decoder
43
+ Bộ tiền xử lý – Preprocessor
+ Bộ phận phát hiện - Detection Engine
+ Hệ thống ghi log và cảnh báo - Logging và Alerting System
+ Module xuất kết quả - Output Modules.
Thu thập các gói tin từ các cổng giao tiếp (interface) và chuẩn bị cho việc gói tin
được xử lý trước hoặc gửi cho bộ phận phát hiện.
Hình 3.1 Các thành phần của một Snort[10]
+ Bộ tiền xử lý - Preprocessor
Được sử dụng để sắp xếp hoặc chỉnh sửa gói dữ liệu trước khi bộ phận
phát hiện làm một vài xử lý để tìm ra gói tin có được sử dụng bởi kẻ xâm nhập
hay không. Bộ tiền xử lý cũng thực thi việc phát hiện bằng cách tìm các dấu
hiệu bất thường trong các header của gói tin và tạo ra các cảnh báo. Bộ phận tiền
xử lý là rất quan trọng trong bất kỳ hệ thống phát hiện nào, chúng chuẩn bị cho
các gói dữ liệu được phân tích dựa trên các luật trong bộ phận phát hiện. Bộ
phận tiền xử lý cũng được dùng để khử phân đoạn. Khi một mẫu tin lớn được
44
truyền đến một host, gói thường được chia nhỏ ra. Hệ thống nhận có khả năng
ráp lại từ các gói nhỏ. Trên hệ thống phát hiện xâm nhập, trước khi đối chiếu
luật hoặc tìm dấu hiệu các gói tin cần được nối lại. Bộ phận tiền xử lý trong
Snort có thể tái hợp các gói tin, giải mã HTTP ráp lại các dòng TCP,…Những
chức năng này rất quan trọng trong hệ thống phát hiện xâm nhập.
+ Bộ phận phát hiện - Detection Engine
Đây là phần quan trọng nhất trong Snort. Trách nhiệm của nó là phát hiện
có sự xâm nhập tồn tại trong gói tin hay không. Bộ phận phát hiện sử dụng các
luật của Snort cho mục đích này. Nếu một gói tin giống với bất kỳ một luật nào,
một hành động tương ứng sẽ được thực hiện, cuộc tấn công được ghi lại hoặc
tạo ra cảnh báo. Đây là bộ phận then chốt về thời gian thực thi của Snort. Lưu
lượng trên bộ phận phát hiện phụ thuộc vào các yếu tố sau:
- Số lượng các luật.
- Sức mạnh của máy mà Snort đang chạy.
- Tốc độ của bus được sử dụng.
- Lưu lượng trên mạng.
+ Hệ thống ghi log và cảnh báo - Logging và Alerting System.
Phụ thuộc cái mà bộ phận phát hiện tìm thấy trong gói tin, gói tin có thể
được sử dụng để ghi lại các hành vi hoặc tạo ra các cảnh báo. Các thông tin ghi
lại được giữ trong các tập tin text đơn giản hoặc các dạng khác như trong cơ sở
dữ liệu MySQL,...
+ Module xuất kết quả - Output Modules
Module xuất kết quả có thể hoạt động theo nhiều cách phụ thuộc vào việc
chúng ta muốn lưu các output được tạo ra bằng hệ thống ghi và tạo cảnh báo như
thế nào. Phụ thuộc vào việc cấu hình, output module có thể thực hiện những
hành động sau:
- Ghi dữ liệu vào file log.
45
- Gởi SNMP traps.
- Gởi các thông báo đến Syslog.
- Ghi log vào CSDL như MySQL hoặc Oracle.
Một số công cụ có thể được phát triển để gởi cảnh báo từ output của Snort như
E-mail, SMS hoặc xem cảnh báo qua giao diện Web.
3.3 Vấn đề của Snort và khả năng triển khai
3.3.1 Lợi ích của Snort
Snort mang lại nhiều lợi ích phù hợp cho nhiều công ty vì nhiều lý do:
+ Giá cả.
Là một phần mềm mã nguồn mở nên không phải tốn chi phí về bản
quyền.
+ Ổn định, nhanh, mạnh mẽ.
Snort nhỏ gọn, nhanh, không chiếm dụng nhiều băng thông đường truyền.
+ Tính năng tiền xử lý.
Dùng để xử lý trước các thông điệp (message) trong mạng ở thời gian
thực, làm tăng khả năng nhận dạng các gói tin khả nghi, tăng khả năng nhận
diện kẻ tấn công dùng các kĩ thuật tấn công nhằm đánh lạc hướng IDS.
+ Tính uyển chuyển.
Có thể dễ dàng thiết lập những luật (rules) cho Snort phù hợp với thực
trạng của công ty. Có thể dùng các công cụ để quản lý tập trung như ACID,
BASE hay SnortCenter. Nhiều Scripts có thể được tích hợp để mở rộng chức
năng Snort có thể tạo những danh sách điều khiển truy cập (Access Control List)
tự động. Trong phạm vi luận văn này, tác giả đi sâu về sự kết hợp Snort với
BASE sau đó tích hợp vào giao diện quản lý chung của Cacti và phát báo động
qua giao diện BASE, Email và SMS. Ngoài ra còn kết hợp Snort với phần mềm
nguồn mở Fwsnort để chống lại các cuộc tấn công xâm nhập. Các luật trong
46
Snort được Fwsnort chuyển thành các luật trong Iptables để ngăn chặn một số
dạng tấn công.
+ Được hỗ trợ bởi cộng đồng mã nguồn mở.
Snort là sản phẩm nguồn mở nên được hỗ trợ rất nhiều bởi cộng đồng
người sử dụng mã nguồn mở.
3.3.2 Đánh giá tập luật của Snort
Tập luật trên Snort được cập nhật thường xuyên nên khả năng phát hiện
các dấu hiệu tấn công là khá tốt. Người quản trị mạng cũng có thể tự bổ sung
những luật mới vào tập luật đã có sẵn. Vì vậy, tập luật của Snort có tính mở. Do
đó Snort rất phù hợp cho việc nghiên cứu và phát triển. Có rất nhiều sản phẩm
thương mại trên thị trường phát triển từ Snort: Sourcefire, O2Security, Astaro
3.4 Fwsnort chuyển đổi tập luật từ Snort sang Iptables
Fwsnort hay cũng được gọi là Firewall Snort là phần mềm nguồn mở có chức
năng chuyển các luật trong Snort thành các luật trong Iptables. Sự kết hợp này
giúp cho những xâm nhập được Snort phát hiện sẽ được ngăn chặn bởi Iptables
tạo thành Hệ thống phát hiện và phòng chống xâm nhập (IDS/IPS)
3.5 Hệ thống giám sát trạng thái hoạt động thiết bị và dịch vụ - Nagios
Nagios là một phần mềm mã nguồn mở hỗ trợ trong việc giám sát hoạt động của
các thiết bị và các dịch vụ trong mạng. Nagios giúp giám sát hoạt động một số
thiết bị trung tâm trong mạng như Server, Switch, Router,... Đồng thời kết hợp
với bộ phận phát cảnh báo qua SMS, phát cảnh báo trong trường hợp một thiết
bị ngưng hoạt động hoặc một dịch vụ mạng ngưng hoạt động. Nagios giám sát
các thiết bị mạng thông qua các giao thức ICMP, SNMP, … để theo dõi trạng
thái hoạt động của các thiết bị. Đồng thời, Nagios còn cho phép thiết lập cơ chế
giám sát hoạt động của các dịch vụ mạng. Các dịch vụ phổ biến được giám sát
như: HTTP FTP, SMTP, POP3, …
47
Hình 3.2 Mô hình dịch vụ Nagios giám sát[8]
Để giám sát các host Windows, chúng ta có thể sử dụng trực tiếp thông qua giao
thức SNMP hoặc sử dụng phần mềm NSClient++ (tích hợp SNMP) để thu thập
thông tin hơn từ máy Windows.
Hình 3.3 Mô hình theo dõi các dịch vụ trên Windows qua NSClient[13]
Cũng tương tự như vậy, chúng ta có thể sử dụng SNMP để giám sát các máy
Linux qua việc cài đặt gói NRPE (tích hợp SNMP) để giám sát host và các dịch
vụ trên máy Linux.
Hình 3.4 Mô hình Nagios giám sát dịch vụ trên máy Linux qua NRPE[13]
48
Bên cạnh việc giám sát các máy chủ hệ điều hành Windows và Linux, Nagios
còn giám sát việc hoạt động của các thiết bị mạng khác như Router, Switch,
Printer
Hình 3.5 Nagios giám sát máy in[13]
Giám sát Router, Switch
Hình 3.6 Nagios giám sát Router và Switch[13]
Các dịch vụ mạng phổ biến như: HTTP, FTP, SMTP, POP3 ..v…v… cũng sẽ bị
giám sát bởi Nagios.
49
Hình 3.7 Nagios giám sát dịch vụ mạng và thiết bị mạng.
Ngoài ra Nagios còn vẽ sơ đồ hiển thị trạng thái hoạt động của các host đang
tham gia trong hệ thống mạng.
Hình 3.8 Sơ đồ trạng thái các host hoạt động trên mạng.
Ngoài khả năng giám sát các thiết bị, dịch vụ mạng. Khi được tích hợp cùng với
phần mềm Cacti, Nagios sẽ có thêm một vài tính năng trong đó đáng kể nhất vẫn
là gửi cảnh báo bằng email, SMS cảnh báo các thay đổi trong hệ thống thông
qua một gateway SMS.
50
Hình 3.9 Nagios gửi cảnh báo qua email hoặc SMS
Tham số trạng thái hệ thống được sử dụng làm đối số trong việc gửi cảnh báo
bao gồm:
- Tham số dịch vụ: $SEVERVICESTATE$, $SERVICESTATETYPE$,
SERVICCEATTEMMPT$
- Tham số cho host: $HOSTSTATE$, $HOSTSTATETYPE$,
$HOSTSTATEATTEMP$.
3.6 Hệ thống giám sát lưu lượng – Cacti
Cacti là một phần mểm nguồn mở hỗ trợ trong việc giám sát các lưu lượng
mạng. Cacti trong hệ thống được dùng để giám sát lưu lượng qua các Switch
trung tâm, Router và các Server và lưu lượng kết nối giữa các thiết bị trong hệ
thống mạng. Hoạt động của Cacti được thể hiện như sau:
Hình 3.10 Mô hình hoạt động của Cacti
Thu thập dữ liệu: Cacti thu thập dữ liệu thông qua poller. Poller là một ứng dụng
hoạt động theo những khoảng thời gian xác định. Trong Unix/Linux thì Poller
được thiết lập từ chương trình lập lịch crontab. Cacti thể hiện lưu lượng qua các
đồ thị trực quan, thời gian thực. Điều này giúp cho người quản trị theo dõi được
tình trạng hoạt động của các thiết bị và dịch vụ trong hệ thống và phát hiện
những bất thường xảy ra. Những bất thường này có thể là những dấu hiệu của
tấn công xâm nhập hoặc sự quá tải của một số thiết bị mạng trong hệ thống.
51
Cacti sử dụng giao thức SNMP để thu thập thông tin từ các thiết bị, lưu trữ
thông tin và vẽ hình trên các đồ thị.
Hình 3.11 Trao đổi thông tin SNMP giữa Cacti và thiết bị[9]
Lưu trữ dữ liệu: để có thể tạo ra những đồ thị về trạng thái hoạt động của các
thiết bị cần giám sát, Cacti phải cần thu thập và lưu trữ dữ liệu. Nếu là một hệ
thống mạng lớn thì yêu cầu phải có phương pháp quản lý dữ liệu cho việc theo
dõi trạng thái hoạt động của thiết bị. Trong mô hình thực nghiệm của luận văn
này, dữ liệu thu thập được từ SNMP được lưu trữ vào cơ sở dữ liệu của MySQL.
Hình 3.12 Dữ liệu Cacti thu thập được qua SNMP[9]
Trình bày dữ liệu: Sử dụng công cụ RRDTool đề trình bày dữ liệu dưới dạng các
đồ thị với cơ sở dữ liệu thu thập được từ SNMP và được lưu trữ trong database.
52
Cacti có khả năng giám sát lưu lượng vào/ra các cổng của thiết bị cần theo dõi;
giám sát mức độ hoạt động của CPU và bộ nhớ; cho phép đưa sơ đồ mạng trực
quan vào hệ thống và tương tác với mô hình này. Ngoài ra, Cacti phát báo động
khi có sự cố, các sự cố này được chỉ ra cho hệ thống như: có một thiết bị đang
giám sát ngưng hoạt động, lưu lượng vượt quá một ngưỡng được thiết lập
trước…
Hình 3.13 Cacti mô tả lưu lượng bằng đồ thị thời gian thực[9]
Mặc định Cacti có ít tính năng, trong cấu hình mặc định Cacti chỉ hổ trợ 2 mục
là Console và Graph. Trong đó, phần Console cho phép điều chỉnh các thông số
như chọn thiết bị cần giám sát lưu lượng và hiển thị đồ thị lưu lượng trong phần
Graph. Một đặc điểm quan trọng của Cacti là cho phép tích hợp nhiều thành
phần khác, cũng như nhiều phần mềm khác vào nó. Đây là một đặc điểm quan
trọng cho việc thực hiện ý tưởng thực hiện trong luận văn này là tạo nên một hệ
thống tích hợp hỗ trợ trong việc giám sát mạng. Trong luận văn này, tích hợp
thêm một số thành phần sau vào Cacti:
- Realtime: hỗ trợ Cacti lấy thông tin theo thời gian thực – lập lịch cho
chương trình lấy thông tin từ các thiết bị mạng cần giám sát.
- Update: hỗ trợ cập nhật các phiên bản mới từ Internet.
53
- Settings: Tích hợp thêm một số công cụ cấu hình các tính năng nâng cao.
- Manage: Giám sát tình trạng các thiết bị mạng. Phát báo động bằng âm
thanh khi một host ngưng hoạt động.
- Weathermap: cho phép vẽ sơ đồ mạng và giám sát lưu lượng giữa các
thiết bị mạng trong hệ thống.
- BASE: Giám sát Snort bằng giao diện Web.
- Nagios: Giám sát cho tiết các host và các dịch vụ mạng.
- SSL: sử dụng port 443 (https) khi truy xuất vào Cacti.
Hình 3.14 Cấu hình trong ../var/www/cacti/include/global.php
3.7 Hệ thống báo động qua SMS – Gnokii
Gnokii là một phần mềm mã nguồn mở cho phép giao tiếp với thiết bị
GMS/GPRS để phục vụ cho việc nhắn tin SMS.
Tùy vào loại GSM/GPRS được dùng chúng ta có cách can thiệp vào cấu hình
Gnokii khác nhau. Trong mô hình thực nghiệm của đề tài sử dụng GSM/GPRS
kết nối với máy Linux qua cổng COM. Thiết bị được tiếp nhận qua /dev/ttyS0.
54
Cú pháp sử dụng cho việc nhắn tin qua SMS là:
printf <message> | gnokii --sendsms <số điện thoại>
Cú pháp này được đưa vào chương trình Nagios để hệ thống gửi tự động tin
nhắn SMS khi có sự cố (được thiết lập trước) xảy ra. Thiết lập cảnh báo SMS
cho Snort trong file SnortNotify.conf
Hình 3.15 Thiết lập cảnh báo SMS cho Snort trong file SnortNotify.conf
Các thông số dùng đề cảnh báo và lệnh phát cảnh báo từ Snort (phát cảnh báo
xâm nhập), Nagios (phát cảnh báo tình trạng hoạt động của các host và dịch vụ).
3.8 Mô hình đề xuất kết hợp Snort, Fwsnort, Nagios, Cacti
Trong mô hình đề xuất này tạo ra một sự kết hợp các tính năng và quản lý với
một giao diện chung trên Cacti. Các thành phần được tích hợp (plugin) và giao
diện quản lý của Cacti.
Hệ thống chia thành ba khối chức năng:
+ Bộ phận phát hiện và phòng chống xâm nhập mạng
+ Bộ phận giám sát trực quan hệ thống: giám sát lưu lượng qua các cổng
của Router, Switch, Server, hoạt động của CPU, Bộ nhớ,… ;giám sát các một số
55
dịch vụ mạng: HTTP, FTP,… và giám sát trạng thái hoạt động của các thiết bị
mạng.
+ Bộ phận báo động: báo động bằng Web, E-mail và SMS.
CHƯƠNG 4: PHÁT TRIỂN ỨNG DỤNG HỆ THỐNG
GIÁM SÁT VÀ PHÁT HIỆN XÂM NHẬP MẠNG DỰA
TRÊN MÃ NGUỒN MỞ Trong chương này, trình bày mô hình đề xuất kết hợp giữa Snort, Fwsnort,
Nagios và Cacti tạo ra một hệ thống giám sát mạng một cách trực quan và tiện
lợi.
Một số chức năng chính của hệ thống giám sát này là:
- Phát hiện các xâm nhập mạng dựa vào Snort
- Phòng chống xâm nhập dựa vào Fwsnort
- Theo dõi hoạt động của các thiết bị mạng như Router, Switch, Server và
hoạt động của một số dịch vụ mạng thông qua các đồ thị dựa vào Cacti và
Nagios
- Phát cảnh báo trong trường hợp có xâm nhập, thiết bị mạng ngưng hoạt
động hoặc dịch vụ mạng ngưng hoạt động cho người quản trị mạng qua
các hình thức: báo động bằng, web, E-mail và tin nhắn SMS qua điện
thoạt di động.
57
4.1 Mô hình cài đặt thực nghiệm
Hình 4.1 Mô hình cài đặt thực nghiệm
Chức năng của Hệ thống giám sát:
- Cảnh báo qua Web, Email và SMS khi thực hiện tấn công vào hệ thống
Web server
- Báo động SMS khi một host (Server, Router, Switch…) hoặc một dịch
vụ mạng ngưng hoạt động.
- Giám sát lưu lượng mạng qua các cổng giao tiếp trên Router, Switch,
Server…hiển thị qua các đồ thị trực quan, thơi gian thực. Giám sát lưu lượng
giữa các thiết bị kết nối với nhau một cách trực quan.
4.2 Cài đặt thực nghiệm
Các chương trình phần mềm chính được sử dụng trong hệ thống giám sát:
- Snort.
- Fwsnort.
58
- Cacti.
- Nagios.
- SMS Gateway.
- Sendmail.
Quá trình cài đặt thực nghiệm được thực hiện theo qui trình tuần tự sau:
4.2.1 Cài đặt Gnokii
Sử dụng phần mềm nguồn mở Gnokii để kết nối đến GSM/GPRS modem.
Trong chương trình thực nghiệm này, GSM/GPRS modem kết nối nối máy Cacti
server qua cổng COM1 (/dev/ttyS0).[4]
# ./configure
# gmake
# gmake install
Sau khi cài đặt xong Gnokii, thiết lập file cấu hình với các thông số sau:
-Sử dụng tập lệnh AT: Model AT
-Kiểm tra kết nối đến GSM modem:
#gnokii –identify
// Kiểm tra gửi tin nhắn SMS qua dòng lệnh:
#print <message> | gnokii –sendsms <số điện thoại>
Hoặc
#echo <message> | gnokii –sendsms <số điện thoại>
Chi tiết cài đặt và cấu hình Gnokii được trình bày cụ thể trong phụ lục A
bài báo cáo này.
59
4.2.2 Cài đặt Snort
Để cài đặt Snort yêu cầu cần phải cài đặt các gói môi trường như sau:
# install mysql, mysql-bench, mysql-server, mysql-devel, mysqlclient10, php-
mysql, httpd, gcc, pcre-devel, gd, php-gd, mod_ssl, glib2-devel, gcc-c++,
libpcap-devel, php-pear[12]
Các bước cài đặt:
httpd: cài đặt quản lý bằng giao diện web
mysql: tạo CSDL snort để lưu trữ thông tin về những dấu hiệu tấn công
mạng.
+ Cài đặt, cấu hình Snort, cập nhật các rules: thiết lập các thông số về địa
chỉ mạng cần giám sát (trong trường hợp này là 192.168.7.0/24), thiết lập đường
dẫn đến CSDL snort, gán quyền truy xuất cho user snort.
+ Cài đặt, cấu hình adodb và BASE để giám sát Snort qua giao diện Web.
+ Cài đặt báo động cho Snort khi có tấn công:
Các thông tin thu thập từ Snort và các sự kiện theo dõi được hoạt động
theo thời gian thực và được ghi lại trong MySQL. Hệ thống báo động thường
xuyên cập nhật các thông tin từ database. Các thông tin cảnh báo được trích ra từ
database và đặt vào biến $emailmessage. Thông điệp này được chuyển tới người
quản trị mạng qua SMS và E-mail.
+ Gửi thông điệp từ $emailmessage qua SMS
Open (MAIL, “|sendsms –sendsms 0983929445\n”);
Printf MAIL “$emailmessage”;
Close(MAIL);
Gửi thông điệp từ $emailmessage qua Email (sữ dụng Sendmail).
60
open(MAIL, “|$sendmail –t –oi”)
printf MAIL, “From: $sender\n”;
printf MAIL “Return-Path: $return\n”;
printf MAIL “To: $to\n”;
printf MAIL “Subject: $subject\n”;
print MAIL “$emailmessage”;
+ Dùng crontab lập lịch cho chương trình lấy thông tin cảnh báo từ Snort
chạy 1 phút 1 lần:
+ Nội dung file lập lịch chỉ tới file SnortNotify.pl:
*/1 * * * * /var/snortnotify-v2.1/SnortNotify.pl
+ Khởi động Snort:
#snort –c /etc/snort/etc/snort.conf -i eth0
Chi tiết các bước cài đặt Snort được thể hiện trong phụ lục B. Hướng dẫn
cài đặt và cấu hình Snort.
4.2.3 Cài đặt Fwsnort
Trước khi tiến hành cài đặt Fwsnort ta phải cài đặt iptablet lên hệ thống
trước, mục đích của Iptablet là sẽ xử lý các cảnh báo của snort và cũng như
snort, iptablet của có những tập rule để hoạt động.
[iptablesfw]# tar xfj fwsnort-1.1.tar.bz2
[iptablesfw]# cd /usr/local/src/fwsnort-1.1
[iptablesfw]# ./install.pl
[+] mkdir /etc/fwsnort
[+] mkdir /etc/fwsnort/snort_rules
[+] Installing the Net::IPv4Addr Perl module
61
[+] Installing the IPTables::Parse Perl module
[+] Would you like to download the latest Snort rules from
http://www.bleedingsnort.com?
([y]/n)? y
--22:01:11-- http://www.bleedingsnort.com/bleeding-all.rules
=> `bleeding-all.rules'
Resolving www.bleedingsnort.com... 69.44.153.29
Connecting to www.bleedingsnort.com[69.44.153.29]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 292,192 [text/plain]
100%[======================================>]
292,192 109.94K/s
22:01:17 (109.77 KB/s) - `bleeding-all.rules' saved
[292,192/292,192]
[+] Copying all rules files to /etc/fwsnort/snort_rules
[+] Installing snmp.rules
[+] Installing finger.rules
[+] Installing info.rules
[+] Installing ddos.rules
[+] Installing virus.rules
[+] Installing icmp.rules
[+] Installing dns.rules
[+] Installing rpc.rules
[+] Installing backdoor.rules
[+] Installing scan.rules
[+] Installing shellcode.rules
[+] Installing web-client.rules
[+] Installing web-cgi.rules
62
[+] Installing exploit.rules
[+] Installing attack-responses.rules
[+] Installing web-attacks.rules
[+] Installing fwsnort.8 man page as /usr/share/man/man8/fwsnort.8
[+] Compressing manpage /usr/share/man/man8/fwsnort.8
[+] Copying fwsnort.conf -> /etc/fwsnort/fwsnort.conf
[+] Copying fwsnort -> /usr/sbin/fwsnort
[+] fwsnort will generate an iptables script located at:
/etc/fwsnort/fwsnort.sh when executed.
[+] fwsnort has been successfully installed!
Thực hiện đổi các tập luật (rule) trong snort thành những tập luật trong
iptable để hoạt động.
Hình 4.2 Chuyển đổi tập luật trong snort thành iptablet
63
Ví dụ: đối với công cụ tấn công Ddos Trin00 có rule_ID trong snort là
237
alert udp $EXTERNAL_NET any -> $HOME_NET 27444 (msg:"DDOS Trin00
Master to Daemon default password attempt"; content:"l44adsl";
reference:arachnids,197; classtype:attempted-dos; sid:237; rev:2;)
Sử dụng Fwsnort chuyển sang Iptablet
[iptablesfw]# fwsnort --snort-sid 237
[+] Parsing Snort rules files...
[+] Found sid: 237 in ddos.rules
Successful translation.
Kết quả sau khi chuyển sang iptable
#IPTABLES -A FWSNORT_FORWARD -d 192.168.10.0/24 -p udp --
dport
27444 -m string --string "l44adsl" --algo bm -m comment --comment
"sid:237; msg: DDOS Trin00 Master to Daemon default password
attempt; classtype: attempted-dos; reference: arachnids,197; rev:
2; FWS:1.0;" -j LOG --log-ip-options --log-prefix "[1] SID237 "
4.2.4 Cài đặt Nagios
Định nghĩa lệnh báo động qua SMS
Mặc định thì không có lệnh cho phép gửi qua SMS mà chỉ có lệnh gửi qua
e-mail. Để chương trình có thể gửi tin nhắn qua SMS thì định nghĩa thêm lệnh
cho hệ thống.
Việc định nghĩa thêm lệnh sẽ đưa vào file commands.cfg
Lệnh sử dụng cho gửi SMS được chọn là:
- notify-host-by-sms: lệnh này dùng để gửi SMS khi một host gặp sự cố
(Ví dụ như host ngưng hoạt động)
64
- notify-service-by-sms: lệnh này được sử dụng để gửi SMS khi một
service trên host gặp sự cố (Ví dụ như service đó ngưng hoạt động).
Những sự cố này được xác định theo ý đồ của người quản trị thông qua
các biến lấy sự kiện từ hệ thống).
+ Giám sát các thiết bị (host) và dịch vụ (service)
Để giám sát các thiết bị, phải định nghĩa theo cú pháp sau trong file cấu
hình
Hình 4.3 Cấu hình trong Nagios
Đề cài đặt Nagios cần có các gói tin bắt buộc [13]
# yum install httpd gcc glibc glibc-common gd gd-devel php
Tạo nhóm và người sử dụng Nagios
useradd -m nagios
Tạo nhóm nagcmd và đưa user nagios và apache vào nhóm
# groupadd nagcmd
# usermod -a -G nagcmd nagios
# usermod -a -G nagcmd apache
Tiến hành cài đặt Nagios từ website của phần mềm.
# ./configure –with-command-group=nagcmd
65
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
Hướng dẫn cài đặt chi tiết và cấu hình Nagios được trình bày cụ thể tại
phụ lục C bài báo cáo này.
4.2.5 Cài đặt Cacti
Trong phần này trình bày các cài đặt và cấu hình Cacti và tích hợp Snort,
Nagios vào Cacti.[3]
Yêu cầu các gói cài đặt trước:
– RRDTool
– NET-SNMP.
– MySQL
– PHP
– Apache
Cài đặt Cacti
+ Tạo account: username: cactiuser, password: cactiuser
+ Tạo CSDL: cacti
Cài đặt các tham số cho file cấu hình Cacti
+ Cài đặt spine: cho phép hệ thống hoạt động theo chu kỳ để lấy thông tin
từ các host.
+ Tích hợp (plugin) các gói sau vào Cacti
-Architecture: là phần nền tảng được cài đặt trước cho phép Cacti tích hợp
các thành phần khác vào.
-Settings: cho phép Cacti cấu hình các tham số cho các thành phần tích
hợp
66
-Realtime: Hỗ trợ một số thành phần tích hợp hoạt động theo thời gian
thực
-Manage: Hỗ trợ trong việc giám sát các thiết bị mạng và phát cảnh báo
bằng âm thanh.
-Update: Hỗ trợ các thành phần trong Cacti cập nhật phiên bản mới quan
Internet.
-Nagios: Thành phần giám sát, theo dõi các host và dịch vụ mạng.
-BASE (Snort): Theo dõi các cảnh báo từ Snort.
-SSL: bảo mật cho cacti, sử dụng port 443 (HTTPS).
Chi tiết cài đặt và cấu hình Cacti được trình bày cụ thể tại phụ lục D của
bài báo cáo này.
Trên thực tế việc tích hợp các chương trình mã nguồn mở gặp nhiều khó
khăn do mỗi chương trình đều có cơ sở dữ liệu riêng của bản thân các chương
trình, ngoài ra còn theo dõi vận hành của các thiết bị mạng cụ thể như các thiết
bị là Router, Switch
Cấu hình một Router
Building configuration...
Current configuration : 872 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname Saigon
!
boot-start-marker
boot-end-marker
67
!
no aaa new-model
ip cef
!
interface FastEthernet0/0
ip address 192.168.7.111 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.4.1 255.255.255.0
duplex auto
speed auto
!
!
no ip http server
no ip http secure-server
!
snmp-server host 192.168.7.123 public
!
control-plane
!
line con 0
line aux 0
line vty 0 4
68
login
!
scheduler allocate 20000 1000
end
Cấu hình thiết bị Switch
sh run
Building configuration...
Current configuration : 1634 bytes
!
version 12.2
no service pad
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname CoreSwitch
!
no aaa new-model
system mtu routing 1500
interface Vlan1
ip address 192.168.1.112 255.255.255.0
no ip route-cache
ip http server
snmp-server host 192.168.7.123 public
!
69
control-plane
!
line con 0
line vty 5 15
!
end
Muốn giám sát một thiết bị nào cần khai báo các thông số trên Cacti để có
dữ liệu theo dõi và giám sát
Hình 4.4 Thiết lập thông số cho một thiết bị cần giám sát[9]
70
Hình 4.5 Hiển thị lưu lượng thu thập được qua SNMP
Thiết lập cảnh báo qua SMS khi dịch vụ cần giám sát phát sinh sự cố.
+Cú pháp lệnh báo động được đặt trong
/usr/local/nagios/etc/object/command.cfg
Hình 4.6 Cú pháp lệnh cài đặt báo động bằng sms
71
4.3 Kết quả đạt được từ thực nghiệm
Hình 4.7 Màn hình Cacti được tích hợp các tính năng theo dõi
Hình 4.8 Theo dõi hoạt động của Switch Cisco bằng giao diện
72
Hình 4.9 Theo dõi trạng thái các thiết bị
Hình 4.10 Đồ thị của các thiết bị[9]
Hình 4.11 Tổng quan các cảnh báo từ Snort qua giao diện Web
73
Hình 4.12 Cảnh báo chi tiết trên Snort giao diện Web[10]
Hình 4.13 Một số dịch vụ chạy trên 1 host[10]
74
Hình 4.14 Theo dõi trực quan lưu lượng mạng
Hình 4.15 Đồ thị lưu lượng kết nối mạng
Kiểm tra hoạt động của hệ thống giám sát mạng: Sử dụng các công cụ để
scan port và tấn công trên máy chủ Web:
- Blue Port Scanner
CHƯƠNG 5: KẾT LUẬN, KẾT QUẢ ĐẠT ĐƯỢC VÀ
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
5.1 Kết luận
Sự tiện lợi, nhanh chóng và hiệu quả trong việc giám sát các hoạt động trên
mạng là một nhu cầu rất lớn đối với những người làm quản trị hệ thống mạng.
Nhất là đối với những hệ thống mạng lớn thì nhu cầu này càng trở nên một công
cụ không thể thiếu.
Với mô hình đề xuất trong luận văn này, đã kết hợp một số công cụ nguồn mở
tạo ra một hệ thống giám sát mạng trực quan, nhanh chóng và tiện lợi đáp ứng
được các yêu cầu giám sát trong thực tế.
Snort là một hệ thống phát hiện các xâm nhập mạng dựa vào các tập luật. Các
luật này được cập nhật thường xuyên bởi cộng đồng mã nguồn mở. Đồng thời,
Các luật này là một hệ thống mở cho phép người quản trị mạng có quyền chỉnh
sửa, thêm mới cho phù hợp với hệ thống mạng của mình để chống đỡ các dạng
tấn công mới. Cacti là một công cụ mạnh trong việc theo dõi chi tiết tình trạng
hoạt đông của hệ thống, đặt biệt là theo dõi các lưu lượng mạng vận chuyển qua
các thiết bị Switch, Router, Server. Cho phép người quản trị theo dõi tình trạng
hoạt động của các thiết bị của hệ thống một cách trực quan thông quan rất nhiều
dạng thể hiện khác nhau.
Nagios là một công cụ chuyên về giám sát các server và các dịch vụ mạng trên
các server này. Theo dõi tình trạng một dịch vụ mạng, theo dõi tình trạng hoạt
động của CPU, bộ nhớ, …
Hệ thống báo động được trình bày trong luận văn này rất linh hoạt, có thể phát
cảnh báo qua email và SMS. Tạo ra sự tiện lợi cho người quản trị, giúp người
quản trị có thể nắm bắt sự cố một cách nhanh chóng và hiệu quả. Sự kết hợp
giữa Snort, Nagios, Cacti và hệ thống báo động qua SMS tạo nên một
77
giải pháp hữu hiệu giúp cho người quản trị mạng giám sát hệ thống một cách tốt
hơn trong việc phát hiện nhanh chóng sự bất thường trong hệ thống mạng.
5.2 Kết quả đạt được
Bảo mật hệ thống mạng cho một tổ chức, doanh nghiệp đang là một nhu cầu rất
lớn nhằm bảo vệ hệ thống dữ liệu, bảo vệ việc trao đổi thông tin qua hệ thống
mạng máy tính được an toàn, không bị rò rỉ thông tin.
Nghiên cứu về hệ thống phát hiện và phòng chống xâm nhập một hệ thống mạng
giúp cho các nhà quản trị mạng thuận tiện trong việc quản trị và phát hiện sớm
các dấu hiệu tấn công hệ thống mạng từ bên ngoài đồng thời có những biện phát
khắc phục làm cho hệ thống mạng được an toàn hơn.
Các công cụ mã nguồn mở hỗ trợ trong việc giám sát hệ thống mạng cho phép
tạo chúng ta có thể có những tùy biến riêng và có thể sử dụng rộng rãi trong các
hệ thống mạng doanh nghiệp với mức chi phí thấp.
Luận văn này đã giới thiệu một giải pháp hiệu quả trong việc giám sát hệ thống
mạng không những giúp phát hiện các cuộc tấn công, xâm nhập mạng mà còn
giúp giám sát hoạt động của hệ thống một cách trực quan, nhanh chóng, tiện lợi.
Hệ thống báo động qua email, báo động qua SMS tạo nên sự linh hoạt cho phép
người quản trị mạng ở mọi lúc, mọi nơi. Giúp nhanh chóng phát hiện những sự
cố đễ có những giải pháp kịp thời.
Những vấn đề đạt được:
+ Hiểu được cơ chế hoạt động hệ thống phát hiện và phòng chống xâm
nhập mạng.
+ Hiểu cơ chế hoạt động của hệ thống phát hiện xâm nhập Snort.
+ Nắm được cơ chế hoạt động của hệ thống phòng chống xâm nhập
FwSnort.
+ Nắm được cơ chế hoạt động của hệ thống giám sát các thiết bị và dịch
vụ Nagios
78
+ Nắm được cơ chế hoạt động của hệ thống giám sát lưu lượng Cacti
+ Cài đặt và cấu hình một hệ thống giám sát mạng dựa vào các phần mềm
mã nguồn mở Snort, Nagios, Cacti.
+ Cài đặt hệ thống báo động qua Web, Email và SMS
Đây là luận văn có khả năng triển khai, áp dụng vào thực tế rất cao.
5.3 Ý nghĩa khoa học và thực tiễn
5.3.1 Ý nghĩa về mặt khoa học
Đề tài nghiên cứu đưa ra cách nhìn tổng quan nhất về một hệ thống giám
sát, phát hiện và phòng chống xâm nhập mạng, các phương thức tấn công mạng
và các giải pháp bảo mật hệ thống mạng. Bên cạnh đó xây dựng một hệ thống
giám sát và cảnh báo bằng email hoặc bằng SMS đến quản trị viên, giúp cho
việc quản trị hệ thống mạng trở nên cơ động và an toàn hơn.
5.3.2 Về mặt thực tiễn
Đề tài sẽ được ứng dụng ngay trong cơ quan của tác giả hoặc có thể mở
rộng trong toàn ngành nơi mà tác giả đang công tác do dựa trên mã nguồn mở
hoàn toàn miễn phí và đáp ứng nhu cầu của cơ quan.
Mặt khác, nghiên cứu của đề tài có thể được áp dụng rộng rãi trong các
đơn vị hoặc các doanh nghiệp do không cần chi phí đầu tư và hiệu quả của công
trình nghiên cứu có tính khả thi.
Cung cấp cho các quản trị viên một bộ công cụ tích hợp giám sát mạng và
phát hiện xâm nhập, giúp quản trị viên dễ dàng trong việc theo dõi và quản trị hệ
thống mạng của mình trực quan, hiệu quả hơn.
5.4 Hướng phát triển cho đề tài
+ Hoàn thiện các chức năng của chương trình
Hoàn thiện thêm chức năng gửi cảnh báo đến quản trị viên bằng âm thanh
(Audio), chức năng tự động cập nhật các rule của snort.
+Thực hiện giám sát hệ thống qua môi trường WAN
79
Hiện tại, mô hình đang được áp dụng cho hệ thống mạng nội bộ trong một
doanh nghiệp, chưa thể áp dụng trong một hệ thống mạng trong môi trường
WAN nên cần tiếp tục nghiên cứu phát triển.
TÀI LIỆU THAM KHẢO A Tiếng Việt
[1] Ngô Vi Đồng (2009),”Hiện trạng về ATTT khu vực phía Nam”, Ngày an
toàn thông tin 2009.
[2] Trọng Cầm, Báo điện tử Vietnamnet.vn (2010)“ An toàn thông tin Việt Nam:
thừa nhận thức, thiếu thực thi”.
[3] “ Hướng dẫn cài đặt và cấu hình file config hệ thống giám sát Cacti” Bài
viết của các tác giả trên báo điện tử
http://www.asterisk.vn/forum/viewtopic.php?f=18&t=174(2010)
[4] “Cài đặt và cấu hình gateway SMS Gnokii” Bài viết trên website
http://forum.niit.vn/archive/index.php/t-20359.html, tác giả hieunh tháng 2/2011
[5] “Các kiểu tấn công mạng” tác giả LeHoanPC 3/2008,Website
http://www.quantrimang.com.vn/baomat/giaiphapbaomat/22_Cac-kieu-tan-
cong-mang.aspx.
[6] Lỗ hổng bảo mật mạng. Website http://vinasupport.com/2010/lo-hong-bao-
mat/ tác giả manlivo189, 25/3/2010.
[7] “Hệ thống phát hiện xâm nhập IDS”
http://www.quantrimang.com.vn/kienthuc/kien-thuc-co-ban/37334_He-thong-
phat-hien-xam-pham-IDS-Phan-1.aspx tác giả VanLinh 24/01/2007
B Tiếng Anh
[8] Max Schubert, Derrick Bennett (2008), “Nagios 3 Enterprise Network
Monitoring Including Plug-ins and Hardware Devices”, Syngress.
[9] Dinangkur Kundu, S.M. lbrahim Lavlu (2009), "Cacti 0.8 Network
Monitoring" PACKT Publishing.
[10] Rafeeq UR Rehman (2003),“Intrusion Detection With Snort - Advanced
IDS Techniques using Snort, Apache, MySQL, PHP, and ACID”, Prentice Hall
PTR.
[11] Nagios NRPE Document (1997-2000), NDOUtil Database Model(2006-
2007),EthanGalstard.
[12] The Snort Project (2009), “Snort users manual 2.8.5”.
[13] David Josephsen (2007),“Building a Monitoring Infrastructure with
Nagios”, Prentic Hall.
PHỤ LỤC
PHỤ LỤC A
Hướng dẫn cài đặt và cấu hình Gnokii GSM Gateway
Bước 1: Chuẩn bị source cài đặt
- Download software tại http://www.gnokii.org (gnokii-0.6.28.tar.gz)
- Chép các gói vào /usr/gnokii-soft
Bước 2: Giải nén source gnokii
# tar -zxvf gnokii-0.6.28.tar.gz
Bước 3: Cài đặt
Chú ý: phải cài trước gói gcc (# yum install gcc) và intltool (# yum install
intltool)
- Di chuyển vào thư mục đã giải nén gnokii-0.6.28
# cd /gnokii-0.6.28
# ./configure
# gmake
# gmake install
Bước 4: Điều chỉnh file cấu hình
- copy /Docs/sample/gnokiirc --> /etc/gnokiirc
#cp ../Docs/gnokiirc /etc/gnokiirc
- Điều chỉnh cấu hình trong /etc/gnokiirc
Tùy vào thiết bị GSM/GPRS modem (gắn cổng COM1 (/dev/ttyS0) hay USB
(/dev/ttyUSB0))
#vi /etc/.gnokiirc
---> Điều chỉnh: Bỏ dấu # tại dòng: model AT
thêm dấu # tại dòng: model 6510 va TELEPHONE
chỉnh: debug = off
-- copy gnokiirc vào /root/
# cp /etc/gnokiirc /root/.gnokiirc
Bước 5: Kiểm tra thiết bị kết nối vào computer
- gnokii --identify
Note: Nếu có hiển thị các thông số của GSM/GPRS modem thì computer đã
nhận diện ra thiết bị
VD:
#gnokii --identify
GNOKII Version 0.6.28
IMEI : 351047888189814
Manufacturer : WAVECOM MODEM
Model : MULTIBAND 900E 1800
Product name : MULTIBAND 900E 1800
Revision : 641b09gg.Q2403! 132
//Kiểm tra việc gửi SMS từ dòng lệnh
#printf "Test SMS" | gnokii --sendsms <so dien thoai>.
PHỤ LỤC B
Hướng dẫn cài đặt và cấu hình Snort
Bước 1: Các gói cần thiết phải cài đặt trước khi thực hiện cài Snort
# yum –y install mysql mysql-bench mysql-server mysql-devel mysqlclient10
php-mysql httpd gcc pcre-devel php-gd gd mod_ssl glib2-devel gcc-c++
libpcap-
devel php php-pear
Bước 2: Bật và khởi động các service cần thiết
- Sử dụng các dòng lệnh dưới đây để bật các service lên
#/sbin/chkconfig httpd on
#/sbin/chkconfig mysqld on
- Sử dụng các dòng lệnh dưới đây để khởi động các service
#/sbin/service httpd start
#/sbin/service mysqld start
Bước 3. Kiểm tra Apache Server
Vào thư mục /var/www/html và tải về tập tin index.php.txt như sau◊
#cd /var/www/html
#wget http://www.internetsecurityguru.com/index.php.txt
Đổi tên tập tin vừa tải về thành index.php bằng lệnh sau:
#mv index.php.txt index.php
Mở trình duyệt và gõ vào địa chỉ http://<ip của máy đang cấu hình>/index.php
Bước 4. Tạo tài khoản snort để truy xuất vào hệ thống và cơ sở dữ liệu mysql
/usr/sbin/groupadd snort
/usr/sbin/useradd –g snort snort –s /sbin/nologin
Đặt password cho user snort bằng lệnh: passwd snort
Bước 5. Tải các gói cần thiết để cài đặt SNORT
Download gói Snort-2.8.5.1.tar.gz
Giải nén gói tin vừa chép về bằng các lệnh dưới đây
#tar –xvzf snort-2.8.5.1.tar.gz
Vào thư mục vừa giải nén. Thực hiện các lệnh dưới đây để cài đặt:
#chmod +x ./configure
#./configure - -with-mysql - -enable-dynamicplugin
#make
#make install
Tạo các thư mục chứa tập tin cài đặt và chạy snort
#mkdir /etc/snort
Giải nén và sao chép toàn bộ tập tin snortrules-snapshot-2.7.tar.gz vào trong
/etc/snort vừa tạo
#cd /etc/snort
#tar –xvzf snortrules-snapshot-2.7.tar.gz
Chỉnh sửa tập tin snort.conf nằm trong thư mục /etc/snort/etc/snort.conf là tập
tin
cấu hình chính của snort; khi thực thi, snort sẽ đọc tâp tin này để khởi động các
thông số cần thiết. Mở và chỉnh sửa tập tin snort.conf bằng quyền root
#vi /etc/snort/snort.conf
Sửa các dòng theo chỉ dẫn dưới đây:
- Tìm đến dòng “var HOME_NET any” và sửa thành “var HOME_NET
192.168.3.0/24”; nếu địa chỉ mạng trong là địa chỉ đường mạng 192.168.3.0
- Sửa đường dẫn đến thư viện rules
Tìm đến dòng sau
var RULE_PATH .../rules
Sửa đường dẫn thành:
Var RULE_PATH /etc/snort/rules
Bước 6. Cấu hình để Snort log vào cơ sở dữ liệu MySQL
Tìm đến phần output với dòng sau
# output database: log, mysql, user=root password=test dbname=db
host=localhost
Bỏ dấu “#” và sửa thành như sau:
output database: log, mysql, user=snort password=<password> dbname=snort
host=localhost
Bước 7. Cài đặt cơ sở dữ liệu vào MySql
#mysql
mysql> SET PASSWORD FOR root@localhost=PASSWORD('password');
>Query OK, 0 rows affected (0.25 sec) (no need-da tao trong cacti)
mysql> create database snort;
>Query OK, 1 row affected (0.01 sec)
mysql> grant INSERT,SELECT on root.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> SET PASSWORD FOR
snort@localhost=PASSWORD('password_from_snort.conf');
>Query OK, 0 rows affected (0.25 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to
snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to
snort;
>Query OK, 0 rows affected (0.02 sec)
mysql> exit
>Bye
- Thực thi câu lệnh dưới đây để import cơ sở dữ liệu snort vào Mysql
# mysql –u root –p snort < /etc/snort/snort-2.8.5.1/schemas/create_mysql.sql
Enter password: <mysql root password>
- Sau đó kiểm tra lại cơ sở dữ liệu mysql như sau
#mysql –p
>Enter password:
mysql> show databases;
+------------+
| Database
+------------+
| mysql
| Snort
| test
+------------+
3 rows in set (0.00 sec)
mysql> use snort
>Database changed
mysql> show tables;
Bước 8. Cài đặt BASE
- Cài đặt ADODB
#cd /var/www/html
#tar –xzf /root/snortinstall/adodb495.tgz
- Cài đặt BASE
#cd /var/www/html
#tar –xvzf /root/snortinstall/base-1.4.0.tar.gz
- Đổi tên thư mục:
mv base-1.4.0 base/
Chép tập tin base_conf.php.dist thành base_conf.php
#cd base/
#cp base_conf.php.dist base_conf.php
- Chỉnh sửa cấu hình BASE cho thích hợp như sau
#BASE_urlpath = "/base";
#DBlib_path = "/var/www/html/adodb/ ";
#DBtype = "mysql";
#alert_dbname = "snort";
#alert_host = "localhost";
#alert_port = "";
#alert_user = "snort";
#alert_password = "password_from_snort_conf";
Kiểm tra lại bằng cách dùng trình duyệt và gõ vào địa chỉ như sau:
http://<ip máy server>/base
Sau bước này, chúng ta đã cài đặt thành công IDS SNORT vào hệ thống,
quản trị viên sẽ theo dõi hệ thống và các alert của IDS SNORT thông qua trang
web BASE vừa cài đặt.
PHỤ LỤC C
Hướng dẫn cài đặt và cấu hình Nagios
Bước 1: Cài đặt các gói thư viện – service cần thiết
# yum install httpd gcc glibc glibc-common gd gd-devel php[11]
Bước 2: Tạo account và group dành cho việc run các command thông qua giao
diện web
# useradd -m nagios
///Tạo nhóm nagcmd và đưa user nagios và apache vào nhóm
# groupadd nagcmd
# usermod -a -G nagcmd nagios
# usermod -a -G nagcmd apache
Bước 3: Tạo thư mục và down các file cài đặt Nagios
# mkdir /opt/Nagios
Download gói core của Nagios và Plugins
http://www.nagios.org/download/download.php
Gói tải về trong bài này là Nagios-3.3.1.tar.gz và nagios-plugins-1.4.15-35-
g355a.tar.gz
Bươc 4: Cài đặt Nagios
///Xả nén 2 file trong thư mục Nagios vùa tạo
# cd /opt/Nagios
# tar –xzvf nagios-3.3.1.tar.gz
# cd nagios-3.3.1
///Biên dịch và cấu hình Nagios
# ./configure –with-command-group=nagcmd
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
Xong bước này thì Nagios đã sẵn sàng trong /usr/local/nagios
Bước 5: Cài đặt giao diện web cho Nagios
# make install-webconf
///Tạo user quản trị giao diện web
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
///Start dịch vụ httpd
# service httpd start
# chkconfig httpd on
Bước 6 : Cài đặt Nagios plugin [11]
# cd /opt/Nagios
# tar xzf nagios-plugins-1.4.15-35-g355a.tar.gz
# cd nagios-plugins-1.4.15-35-g355a
///Biên dịch và cài đặt Nagios
# ./configure –with-nagios-user=nagios –with-nagios-group=nagios
# make
# make install
Cấu hình địa chỉ admin nhận các alerts trong file
/usr/local/nagios/etc/objects/contacts.cfg
Sửa dòng
email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL
ADDRESS ******
Check lại file cấu hình mặc định của Nagios
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors: 0
Start dịch vụ Nagios
# chkconfig –add nagios
# chkconfig nagios on
# service nagios start
Bước 7: log on và kiểm tra kết quả qua trang admin : http://ip-address/nagios/
Lưu ý:
Khi cài đặt xong hệ thống Nagios mặc định sẽ add localhost làm đối tượng
monitor đầu tiên lúc này dịch vụ http của localhost sẽ được monitor nhưng luôn
gặp thông báo warning vì không tìm thấy index.html hay index.php.. vì lúc này
folder /var/www/hmtl đang rỗng vì thế để giải quyết warning chỉ cần tão một
file index.html trong /var/www/html
# touch /var/www/html/index.html
PHỤ LỤC D
Hướng dẫn cài đặt và cấu hình Cacti [3]
Yêu cầu phần mềm:
+ MySQL Server : lưu trữ dữ liệu của cacti.
+ NET-SNMP server - SNMP (Simple Network Management Protocol) là một
giao thức dùng cho quản trị mạng.
+ PHP with net-snmp module
+ Truy xuất vào dữ liệu SNMP bởi PHP.
+ Apache / lighttpd / ngnix webserver : Web server để thể hiện giao diện đồ thị
được tạo ra bởi PHP và RRDTOOL.
Các gói cần có cho RRDTOOL:
# pango-devel, libxml2-devel.ruby ruby-devel,
//Cài NET-SNNMP
Trích dẫn:
#yum -y install net-snmp-utils php-snmp net-snmp-libs
//Cài MySQL
Trích dẫn:
#yum -y install mysql-server mysql
//Cấu hình MySQL database cho Cacti cài đặt password cho mysql root user
Trích dẫn:
#mysqladmin -u root password NEWPASSWORD
//Tạo database cho Cacti
Trích dẫn:
# mysql -u root -p -e 'create database cacti'
//Tạo và cấp quyền cho user cacti trên database cacti với password là 123456
Trích dẫn:
#mysql -u root –p
mysql> GRANT ALL ON cacti.* TO cacti@localhost DENTIFIED BY
'123456';
mysql>FLUSH privileges;
mysql> exit
//Cài đặt SNMP
Trích dẫn:
#yum install net-snmp-utils php-snmp net-snmp-libs
//Cấu hình snmp
Trích dẫn:
#vi /etc/snmp/snmpd.conf
Bạn thay đổi và thêm nội dung sau vào SNMP (xem snmpd.conf để biết thêm
chi tiết)
Trích dẫn:
rocommunity 123456
syslocation "Asterisk Vietnam"
proc mountd
proc ntalkd 4
disk / 10000
load 12 14 14
Bạn lưu file snmpd.conf và đóng lại, sau đó start snmpd và bật snmpd service:
Trích dẫn:
#/etc/init.d/snmpd start
#chkconfig snmpd on
//Cài đặt rrdtool
Trích dẫn:
#wget http://packages.sw.be/rrdtool/rrdtool-1 ... f.i386.rpm
#wget http://packages.sw.be/rrdtool/perl-rrdt ... f.i386.rpm
#wget http://packages.sw.be/rrdtool/rrdtool-d ... f.i386.rpm
rpm -ivh rrdtool-1.2.18-1.el5.rf.i386.rpm perl-rrdtool-1.2.18-1.el5.rf.i386.rpm
rrdtool-devel-1.2.18-1.el5.rf.i386.rpm
//Cài đặt CACTI
Trích dẫn:
#wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz
#tar -zvxf cacti-0.8.7g.tar.gz -C /var/www/html/
#cd /var/www/html/#mv cacti-0.8.7g cacti
//Hoặc bạn có thể cài bằng yum
Trích dẫn:
#yum -y install cacti
//Tạo MySQL database cho cacti với database name là cacti
Trích dẫn:
#mysqladmin --user=root --password=password create cacti
//Import cacti database mặc định từ cacti.sql trong thư mục cacti
Trích dẫn:
#mysql --user=root --password=password cacti < cacti.sql
//Edit lại nội dung file include/config.php cho đúng với username và database
của hệ thống của bạn.
Trích dẫn:
#cd /var/www/html/cacti/include
#vi config.php
//Thay đổi nội dung trong file config.php :
Trích dẫn:
$database_default = "cacti";
$database_hostname = localhost";
$database_username = "cacti";
$database_password = "123456";
//Bạn add thêm dòng sau đây vào /etc/crontab
Trích dẫn:
#vi /etc/crontab
// thêm nội dung như sau :
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
//Hoàn tất quá trình cài đặt Cacti.
//Nguồn:http://www.asterisk.vn/forum/viewtopic.php?f=18&t=174&start=0