1. BẢO MẬT HỆ THỐNG
1.2. Các biện pháp bảo vệ mạng máy tính
1.2.1. Kiểm soát hệ thống qua logfile
Một trong những biện pháp dò tìm các dấu vết hoạt động trên một hệ
thống là dựa vào các công cụ ghi logfile. Các công cụ này thực hiện ghi lại nhật ký các phiên làm việc trên hệ thống. Nội dung chi tiết thông tin ghi lại phụ thuộc vào cấu hình người quản trị hệ thống. Ngoài việc rà soát theo dõi hoạt động, đối với nhiều hệ thống các thông tin trong logfile giúp người quản trị đánh giá được chất lượng, hiệu năng của mạng lưới.
1.2.1.1. Hệ thống logfile trong Unix
Trong Unix, các công cụ ghi log tạo ra logfile là các file dưới dạng text thông thường cho phép người sử dụng dùng những công cụ soạn thảo file text bất kỳ để có thể đọc được nội dung. Tuy nhiên, một số trường hợp logfile được ghi dưới dạng binary và chỉ có thể sử dụng một số tiện ích đặc biệt mới có thể đọc được thông tin.
a) Logfile lastlog:
Tiện ích này ghi lại những lần truy nhập gần đây đối với hệ thống. Các thông tin ghi lại gồm tên người truy nhập, thời điểm, địa chỉ truy nhập ... Các chương trình login sẽ đọc nội dung file lastlog, kiểm tra theo UID truy nhập vào hệ thống và sẽ thông báo lần truy nhập vào hệ thống gần đây nhất. Ví dụ như sau:
Last login: Fri Sep 15 2000 14:11:38
Sun Microsystems Inc. SunOS 5.7 Generic October 1998 No mail.
Sun Microsystems Inc. SunOS 5.7 Generic October 1998 /export/home/ptthanh
Ebook 4 U ebook.vinagrid.com
Chương 6 - Bảo mật hệ thống và Firewall
197
b) Logfile UTMP
Logfile này ghi lại thông tin về những người đang login vào hệ thống,
thường nằm ở thư mục /etc/utmp. Để xem thông tin trong logfile có thể sử dụng các tiện ích như who, w, finger, rwho, users. Ví dụ nội dung của logfile dùng lệnh who như sau:
/export/home/vhai% who root console Aug 10 08:45 (:0)
ptthanh pts/4 Sep 15 15:27 (203.162.0.87) ptthanh pts/6 Sep 15 15:28 (203.162.0.87) root pts/12 Sep 7 16:35 (:0.0) root pts/13 Sep 7 11:35 (:0.0) root pts/14 Sep 7 11:39 (:0.0) c) Logfile WTMP
Logfile này ghi lại các thông tin về các hoạt động login và logout vào hệ thống. Nó có chức năng tương tự với logfile UTMP. Ngoài ra còn ghi lại các thông tin về các lần shutdown, reboot hệ thống, các phiên truy nhập hoặc ftp và
thường nằm ở thư mục /var/adm/wtmp. Logfile này thường được xem bằng lệnh "last". Ví dụ nội dung như sau:
/export/home/vhai% last | more
ptthanh pts/10 203.162.0.85 Mon Sep 18 08:44 still logged in ptthanh pts/10 Sat Sep 16 16:52 - 16:52 (00:00)
vtoan pts/10 203.162.0.87 Fri Sep 15 15:30 - 16:52 (1+01:22) vtoan pts/6 203.162.0.87 Fri Sep 15 15:28 still logged in vtoan pts/4 Fri Sep 15 15:12 - 15:12 (00:00)
d) Tiện ích Syslog
Đây là một công cụ ghi logfile rất hữu ích, được sử dụng rất thông dụng trên các hệ thống UNIX. Tiện ích syslog giúp người quản trị hệ thống dễ dàng trong việc thực hiện ghi logfile đối với các dịch vụ khác nhau. Thông thường tiện ích syslog thường được chạy dưới dạng một daemon và được kích hoạt khi hệ thống khởi động. Daemon syslogd lấy thông tin từ một số nguồn sau:
- /dev/log: Nhận các messages từ các tiến trình hoạt động trên hệ thống - /dev/klog: nhận messages từ kernel
- port 514: nhận các messages từ các máy khác qua port 514 UDP. Khi syslogd nhận các messages từ các nguồn thông tin này nó sẽ thực
hiện kiểm tra file cấu hình của dịch vụ là syslog.conf để tạo log file tương ứng. Có thể cấu hình file syslog.conf để tạo một message với nhiều dịch vụ khác nhau.
Ebook 4 U ebook.vinagrid.com
Chương 6 - Bảo mật hệ thống và Firewall
198
Ví dụ nội dung một file syslog.conf như sau:
# This file is processed by m4 so be careful to quote (`') names # that match m4 reserved words. Also, within ifdef's, arguments # containing commas must be quoted.
# *.err;kern.notice;auth.notice /dev/console *.err;kern.debug;daemon.notice;mail.crit /var/adm/messages *.alert;kern.err;daemon.err operator *.alert root *.emerg *
# if a non-loghost machine chooses to have authentication messages
Trong nội dung file syslog.conf chỉ ra, đối với các message có dạng
*.emerg (message có tính khẩn cấp) sẽ được thông báo tới tất cả người sử dụng trên hệ thống; Đối với các messages có dạng *.err, hoặc kern.debug và những hoạt động truy cập không hợp pháp sẽ được ghi log trong file
/var/adm/messages.
Mặc định, các messages được ghi vào logfile /var/adm/messages.
e) Tiện ích sulog
Bất cứ khi nào người sử dụng dùng lệnh "su" để chuyển sang hoạt động hệ thống dưới quyền một user khác đều được ghi log thông qua tiện ích sulog. Những thông tin logfile này được ghi vào logfile /var/adm/sulog. Tiện ích này cho phép phát hiện các trường hợp dùng quyền root để có được quyền của một user nào khác trên hệ thống.
Ví dụ nội dung của logfile sulog như sau: # more /var/adm/sulog SU 01/04 13:34 + pts/1 ptthanh-root SU 01/04 13:53 + pts/6 ptthanh-root SU 01/04 14:19 + pts/6 ptthanh-root SU 01/04 14:39 + pts/1 ptthanh-root f) Tiện ích cron
Tiện ích cron sẽ ghi lại logfile của các hoạt động thực hiện bởi lệnh crontabs. Thông thường, logfile của các hoạt động cron lưu trong file
/var/log/cron/log. Ngoài ra, có thể cấu hình syslog để ghi lại các logfile của hoạt động cron.
Ví dụ nội dung của logfile cron như sau: Ebook 4 U ebook.vinagrid.com
Chương 6 - Bảo mật hệ thống và Firewall
199
# more /var/log/cron/log
! *** cron started *** pid = 2367 Fri Aug 4 16:32:38 2000
> CMD: /export/home/mrtg/mrtg /export/home/mrtg/termcount.cfg > ptthanh 2386 c Fri Aug 4 16:34:01 2000
< ptthanh 2386 c Fri Aug 4 16:34:02 2000 > CMD: /export/home/mrtg/getcount.pl > ptthanh 2400 c Fri Aug 4 16:35:00 2000 < ptthanh 2400 c Fri Aug 4 16:35:10 2000
> CMD: /export/home/mrtg/mrtg /export/home/mrtg/termcount.cfg
g) Logfile của sendmail
Hoạt động ghi log của sendmail có thể được ghi qua tiện ích syslog.
Ngoài ra chương trình sendmail còn có lựa chọn "-L + level security" với mức độ bảo mật từ "debug" tới "crit" cho phép ghi lại logfile. Vì sendmail là một chương trình có nhiều bug, với nhiều lỗ hổng bảo mật nền người quản trị hệ thống thường xuyên nên ghi lại logfile đối với dịch vụ này.
h) Logfile của dịch vụ FTP
Hầu hết các daemon FTP hiện nay đều cho phép cấu hình để ghi lại
logfile sử dụng dịch vụ FTP trên hệ thống đó. Hoạt động ghi logfile của dịch vụ FTP thường được sử dụng với lựa chọn "-l", cấu hình cụ thể trong file
/etc/inetd.conf như sau: # more /etc/inetd.conf
ftp stream tcp nowait root /etc/ftpd/in.ftpd in.ftpd –l
Sau đó cấu hình syslog.conf tương ứng với dịch vụ FTP; cụ thể như sau: # Logfile FTP
daemon.info ftplogfile
Với lựa chọn này sẽ ghi lại nhiều thông tin quan trọng trong một phiên ftp như: thời điểm truy nhập, địa chỉ IP, dữ liệu get/put ... vào site FTP đó. Ví dụ nội dung logfile của một phiên ftp như sau:
Sun Jul 16 21:55:06 2000 12 nms 8304640 /export/home/ptthanh/PHSS_17926.depot b _ o r ptthanh ftp 0 * c
Sun Jul 16 21:56:45 2000 96 nms 64624640 /export/home/ptthanh/PHSS_19345.depot b _ o r ptthanh ftp 0 * c
Sun Jul 16 21:57:41 2000 4 nms 3379200 /export/home/ptthanh/PHSS_19423.depot b _ o r ptthanh ftp 0 * c
Sun Jul 16 22:00:38 2000 174 nms 130396160 /export/home/ptthanh/PHSS_19987.depot b _ o r ptthanh ftp 0 * c
Ebook 4 U ebook.vinagrid.com
Chương 6 - Bảo mật hệ thống và Firewall
200
i) Logfile của dịch vụ Web:
Tùy thuộc vào Web server sử dụng sẽ có các phương thức và cấu hình ghi logfile của dịch vụ Web khác nhau. Hầu hết các web server thông dụng hiện nay đều hỗ trợ cơ chế ghi log. Ví dụ nội dung logfile của dịch vụ Web sử dụng Web server Netscape như sau:
202.167.123.170 - - [03/Aug/2000:10:59:43 +0700] "GET /support/cgi-bin/search.pl HTTP/1.0" 401 223
203.162.46.67 - - [03/Sep/2000:22:50:52 +0700] "GET http://www.geocities.com/ HTTP/1.1" 401 223
203.162.0.85 - - [15/Sep/2000:07:43:17 +0700] "GET /support/cgi-bin/search.pl HTTP/1.0" 401 223
HTTP/1.0" 404 207
203.162.0.85 - - [15/Sep/2000:07:43:17 +0700] "GET /support/cgi-bin/search.pl HTTP/1.0" 401 223
1.2.1.2. Một số công cụ hữu ích hỗ trợ phân tích logfile:
Đối với người quản trị, việc phân tích logfile của các dịch vụ là hết sức quan trọng. Một số công cụ trên mạng giúp người quản trị thực hiện công việc này dễ dàng hơn, đó là:
- Tiện ích chklastlog và chkwtmp giúp phân tích các logfile lastlog và WTMP theo yêu cầu người quản trị.
- Tiện ích netlog giúp phân tích các gói tin, gồm 3 thành phần: + TCPlogger: log lại tất cả các kết nối TCP trên một subnet + UDPlogger: log lại tất cả các kết nối UDP trên một subnet + Extract: Xử lý các logfile ghi lại bởi TCPlogger và UDBlogger. - Tiện ích TCP wrapper: Tiện ích này cho phép người quản trị hệ thống dễ dàng giám sát và lọc các gói tin TCP của các dịch vụ như systat, finger, telnet, rlogin, rsh, talk ...
1.2.1.3. Các công cụ ghi log thường sử dụng trong Windows NT và 2000 Trong hệ thống Windows NT 4.0 và Windows 2000 hiện nay đều hỗ trợ đầy đủ các cơ chế ghi log với các mức độ khác nhau. Người quản trị hệ thống tùy thuộc vào mức độ an toàn của dịch vụ và các thông tin sử dụng có thể lựa chọn các mức độ ghi log khác nhau. Ngoài ra, trên hệ thống Windows NT còn hỗ trợ các cơ chế ghi logfile trực tiếp vào các database để tạo báo cáo giúp người quản trị phân tích và kiểm tra hệ thống nhanh chóng và thuận tiện. Sử dụng tiện ích event view để xem các thông tin logfile trên hệ thống với các mức độ như Application log; Security log; System log. Các hình dưới đây sẽ minh hoạ một số hoạt động ghi logfile trên hệ thống Windows:
Ebook 4 U ebook.vinagrid.com
Chương 6 - Bảo mật hệ thống và Firewall
201
Ví dụ: Để ghi lại hoạt động đọc, viết, truy nhập.... đối với một file/thư mục là thành công hay không thành công người quản trị có thể cấu hình như sau:
Chọn File Manager - User Manager - Security - Auditing. Ví dụ hình sau minh họa các hoạt động có thể được ghi log trong Windows 2000:
Hình 6.5: Ghi log trong Windows 2000
- Sử dụng tiện ích Event View cho phép xem những thông tin logfile như sau:
Ebook 4 U ebook.vinagrid.com
Chương 6 - Bảo mật hệ thống và Firewall
202
Hình 6.6: Công cụ Event View của Windows 2000
Xem chi tiết nội dung một message: Ebook 4 U ebook.vinagrid.com
Chương 6 - Bảo mật hệ thống và Firewall
203
Hình 6.7: Chi tiết 1 thông báo lỗi trong Windows 2000
Thông báo này cho biết nguyên nhân, thời điểm xảy ra lỗi cũng như nhiều thông tin quan trọng khác.
Có thể cấu hình Event Service để thực hiện một action khi có một thông báo lỗi xảy ra như sau:
Ebook 4 U ebook.vinagrid.com
Chương 6 - Bảo mật hệ thống và Firewall
204
Hình 6.8: Cấu hình dịchvụ ghi log trong Windows 2000
công cụ theo dõi logfile của một số dịch vụ thông dụng như FTP, Web. Tùy thuộc vào loại server sử dụng có các phương pháp cấu hình khác nhau.
1.2.2. Thiết lập chính sách bảo mật hệ thống
Trong các bước xây dựng một chính sách bảo mật đối với một hệ thống, nhiệm vụ đầu tiên của người quản trị là xác định được đúng mục tiêu cần bảo mật. Việc xác định những mục tiêu của chính sách bảo mật giúp người sử dụng biết được trách nhiệm của mình trong việc bảo vệ các tài nguyên thông tin trên mạng, đồng thời giúp các nhà quản trị thiết lập các biện pháp đảm bảo hữu hiệu trong quá trình trang bị, cấu hình và kiểm soát hoạt động của hệ thống. Những mục tiêu bảo mật bao gồm:
1.2.2.1. Xác định đối tượng cần bảo vệ
Đây là mục tiêu đầu tiên và quan trọng nhất trong khi thiết lập một chính sách bảo mật. Người quản trị hệ thống cần xác định rõ những đối tượng nào là Ebook 4 U ebook.vinagrid.com
Chương 6 - Bảo mật hệ thống và Firewall
205
quan trọng nhất trong hệ thống cần bảo vệ và xác định rõ mức độ ưu tiên đối với những đối tượng đó. Ví dụ các đối tượng cần bảo vệ trên một hệ thống có thể là: các máy chủ dịch vụ, các router, các điểm truy nhập hệ thống, các chương trình ứng dụng, hệ quản trị CSDL, các dịch vụ cung cấp ... Trong bước này cần xác định rõ phạm vi và ranh giới giữa các thành
phần trong hệ thống để khi xảy ra sự cố trên hệ thống có thể cô lập các thành phần này với nhau, dễ dàng dò tìm nguyên nhân và cách khắc phục. Có thể chia các thành phần trên một hệ thống theo các cách sau:
- Phân tách các dịch vụ tùy theo mức độ truy cập và độ tin cậy. - Phân tách hệ thống theo các thành phần vật lý như các máy chủ (server), router, các máy trạm (workstation)...
- Phân tách theo phạm vi cung cấp của các dịch vụ như: các dịch vụ bên trong mạng (NIS, NFS ...) và các dịch vụ bên ngoài như Web, FTP, Mail ... 1.2.2.2. Xác định nguy cơ đối với hệ thống
Các nguy cơ đối với hệ thống chính là các lỗ hổng bảo mật của các dịch vụ hệ thống đó cung cấp. Việc xác định đúng đắn các nguy cơ này giúp người quản trị có thể tránh được những cuộc tấn công mạng, hoặc có biện pháp bảo vệ đúng đắn. Thông thường, một số nguy cơ này nằm ở các thành phần sau trên hệ thống:
a) Các điểm truy nhập:
Các điểm truy nhập của hệ thống bất kỳ (Access Points) thường đóng vai trò quan trọng đối với mỗi hệ thống vì đây là điểm đầu tiên mà người sử dụng cũng như những kẻ tấn công mạng quan tâm tới. Thông thường các điểm truy nhập thường phục vụ hầu hết người dùng trên mạng, không phụ thuộc vào quyền hạn cũng như dịch vụ mà người sử dụng dùng. Do đó, các điểm truy nhập thường là thành phần có tính bảo mật lỏng lẻo. Mặt khác, đối với nhiều hệ thống còn cho phép người sử dụng dùng các dịch vụ như Telnet, rlogin để truy nhập vào hệ thống, đây là những dịch vụ có nhiều lỗ hổng bảo mật.
b) Không kiểm soát được cấu hình hệ thống
Không kiểm soát hoặc mất cấu hình hệ thống chiếm một tỷ lệ lớn trong
số các lỗ hổng bảo mật. Ngày nay, có một số lượng lớn các phần mềm sử dụng, yêu cầu cấu hình phức tạp và đa dạng hơn, điều này cũng dẫn đến những khó khăn để người quản trị nắm bắt được cấu hình hệ thống. Để khắc phục hiện tượng này, nhiều hãng sản xuất phần mềm đã đưa ra những cấu hình khởi tạo mặc định, trong khi đó những cấu hình này không được xem xét kỹ lưỡng trong một môi trường bảo mật. Do đó, nhiệm vụ của người quản trị là phải nắm được hoạt động của các phần mềm sử dụng, ý nghĩa của các file cấu hình quan trọng,
áp dụng các biện pháp bảo vệ cấu hình như sử dụng phương thức mã hóa hashing code (MD5).
c) Những bug phần mềm sử dụng
Những bug phần mềm tạo nên những lỗ hổng của dịch vụ là cơ hội cho các hình thức tấn công khác nhau xâm nhập vào mạng. Do đó, người quản trị Ebook 4 U ebook.vinagrid.com
Chương 6 - Bảo mật hệ thống và Firewall
206
phải thường xuyên cập nhật tin tức trên các nhóm tin về bảo mật và từ nhà cung cấp phần mềm để phát hiện những lỗi của phần mềm sử dụng. Khi phát hiện có bug cần thay thế hoặc ngừng sử dụng phần mềm đó chờ nâng cấp lên phiên bản tiếp theo.
d) Những nguy cơ trong nội bộ mạng
Một hệ thống không những chịu tấn công từ ngoài mạng, mà có thể bị
tấn công ngay từ bên trong. Có thể là vô tình hoặc cố ý, các hình thức phá hoại bên trong mạng vẫn thường xảy ra trên một số hệ thống lớn. Chủ yếu với hình thức tấn công ở bên trong mạng là kẻ tấn công có thể tiếp cận về mặt vật lý đối