Với mô hình hệ thống tường lửa mạng nội bộ đơn giản, dễ sử dụng và tích hợp tùy chọn quét virus cho thấy tính khả thi khi áp dụng cho các hệ thống mạng nội bộ của một tổ chức, doanh nghi
Trang 1XÂY DỰNG HỆ THỐNG TƯỜNG LỬA MẠNG NỘI BỘ
Luận văn thạc sĩ Công nghệ thông tin
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC LẠC HỒNG
* * *
Đinh Tuấn Khải
XÂY DỰNG HỆ THỐNG TƯỜNG LỬA MẠNG NỘI BỘ
Chuyên ngành : Công nghệ thông tin
Trang 3LỜI CẢM ƠN
Tôi xin bày tỏ lòng biết ơn sâu sắc đến Tiến sỹ Đàm Quang Hồng Hải Người đã tận tình hướng dẫn tôi hoàn thành luận văn này
Tôi vô cùng cảm ơn Thạc sỹ Phan Mạnh Thường và các nhà khoa học Bạn bè, đồng nghiệp đã đóng góp nhiều ý kiến quý báu
Giúp tôi hoàn thiện luận văn này
Tôi xin chân thành cảm ơn Trường Đại Học Lạc Hồng, Trường Đại Học Công Nghệ Thông Tin,
Khoa Công nghệ thông tin, Phòng Nghiên cứu khoa học và sau Đại học trường Đại học Lạc Hồng
Đã tạo điều kiện thuận lợi cho tôi thực hiện luận văn này
Tôi xin kính tặng luận văn này cho Cha Mẹ
Và người thân trong gia đình Bằng tất cả tình cảm yêu thương nhất…
Đồng Nai, tháng 10 năm 2012
Đinh Tuấn Khải
Trang 4LỜI CAM ĐOAN
Tôi cam đoan rằng đề tài này do chính tôi thực hiện
Các số liệu thu thập, kết quả phân tích, dẫn chứng trong đề tài là trung thực
Không có sự trùng lắp, sao chép từ bất kỳ đề tài, hay công trình nghiên cứu khoa học nào của các tác giả khác
Đồng Nai, tháng 10 năm 2012
Đinh Tuấn Khải
Trang 5TÓM TẮT
Cùng với sự phát triển của mạng Internet, vấn đề bảo mật và an toàn dữ
liệu cho các hệ thống mạng máy tính trên thế giới được đặt ra Đề tài “Xây dựng
hệ thống tường lửa mạng nội bộ” với mục tiêu nâng cao tính an toàn cho mạng
nội bộ Đầu tiên, Người quản trị quản lý hoạt động của hệ thống mạng nội bộ, cho phép hoặc cấm các chương trình nguy hiểm kết nối Internet Bên cạnh đó, hệ thống cũng được bảo vệ virus lây lan trong mạng nội bộ, những hoạt động khác
lạ chương trình sẽ kiểm tra, duyệt quét và báo cáo Với mô hình hệ thống tường lửa mạng nội bộ đơn giản, dễ sử dụng và tích hợp tùy chọn quét virus cho thấy tính khả thi khi áp dụng cho các hệ thống mạng nội bộ của một tổ chức, doanh nghiệp ngày nay
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
DANH MỤC CÁC KÝ HIỆU SỬ DỤNG TRONG LUẬN VĂN
Ký hiệu Thuật ngữ
Firewall Firewall system
Hacker Hacker, cracker
Header File header
Macro Macro virus
Trojan Trojan horse
Virus Computer viruses
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT SỬ DỤNG TRONG LUẬN VĂN
Từ viết tắt Thay cho cụm từ
ALE Application Layer Enforcement
API Application Programming Interface
ASCII American Standard Code for Information Interchange
BFE Base Filtering Engine
CNTT Công nghệ thông tin
CPU Central Processing Unit
CSDL Cơ sở dữ liệu
DMZ DeMilitarized Zone
DNS Domain Name System
DOS Denial of Service
FTP File Transfer Protocol
HTTP Hypertext Transfer Protocol
ICMP Internet Control Message Protocol
IDS Intrusion Detection System
IP Instruction Pointer
IPsec Protocol security
ISVs Independent Software Vendors
JS Java Script files
LE-EXE LinEar EXEcutable files
LIFO Last In - First Out
NDF Network Diagnostics Framework
NDIS Network Driver Interface Specification
NE-EXE NEw EXEcutable files
PE-EXE PortablE EXEcutable files
POT PowerpOint Template files
PPP Point-to-Point Protocol
PPT PowerPoinT files
REG REGistry files
SHA Screened host architecture
SLIP Serial Line Internet Protocol
SMTP Simple Mail Transfer Protocol
TCP/IP Internet protocol suite
TDI Transport Driver Interface
UDP User Datagram Protocol
VBA Visual Basic Application
WFP Windows Filtering Platform
Trang 8DANH MỤC BẢNG BIỂU
Stt Bảng Mô tả Trang
1 BẢNG 2.1 Phân loại virus máy tính theo kiểu dữ liệu 17
2 BẢNG 2.2 Lịch trình cập nhật của Kaspersky Lab (1995-2004) 18
3 BẢNG 3.1 Các định dạng vật chủ chứa mã thi hành có thể nhiễm virus máy tính 39
4 BẢNG 3.2 Các loại tập tin chương trình 40
5 BẢNG 4.1 So sánh tính năng với một số sản phẩm hiện có 56
Trang 9DANH MỤC HÌNH ẢNH
Stt Hình Mô tả Trang
1 HÌNH 2.1 Mô hình tường lửa bảo vệ hệ thống mạng nội bộ 10
2 HÌNH 2.2 Kiến trúc Dual – Homed host architecture 11
3 HÌNH 2.3 Kiến trúc Screened host architecture (SHA) 13
4 HÌNH 2.4 Kiến trúc Screened subnet architecture 14
5 HÌNH 3.1 Kiến trúc và khả năng mở rộng của WFP 25
6 HÌNH 3.2 Mô hình OSI rút gọn 33
7 HÌNH 3.3 Client gửi yêu cầu đến Server 34
8 HÌNH 3.4 Server chấp nhận yêu cầu và tạo một socket để phục vụ Client 35
9 HÌNH 3.5 Phân loại các tập tin chương trình 40
10 HÌNH 4.1 Mô hình ứng dụng Firewall 41
11 HÌNH 4.2 Sơ đồ hoạt động của hệ thống Firewall 42
12 HÌNH 4.3 Mô hình chức năng chương trình Firewall Client 43
13 HÌNH 4.4 Giao diện khi khởi động firewall client 43
14 HÌNH 4.5 Màn hình quản lý việc tạo luật IP 44
15 HÌNH 4.6 Màn hình sau khi thêm một luật 45
16 HÌNH 4.7 Màn hình để chỉnh sửa luật 45
17 HÌNH 4.8 Màn hình sau khi sửa một tập luật 46
18 HÌNH 4.9 Màn hình sau khi xóa luật 46
19 HÌNH 4.10 Màn hình quản lý luật chương trình 47
20 HÌNH 4.11 Thêm một chương trình vào luật cấm thực thi 47
21 HÌNH 4.12 Màn hình quản lý việc phân giải địa chỉ trang web dưới dạng IP 48
22 HÌNH 4.13 Chuyển chế độ người dùng 48
23 HÌNH 4.14 Màn hình thông báo khi Client chạy một chương trình 49
24 HÌNH 4.15 Khung đăng nhập vào tài khoản quản trị 49
25 HÌNH 4.16 Bảng thông báo khi chạy chương trình ở chế độ quản trị 49
26 HÌNH 4.17 Màn hình sau khi thêm luật chương trình 50
27 HÌNH 4.18 Màn hình Quét virus 50
28 HÌNH 4.19 Quét virus theo thư mục 51
29 HÌNH 4.20 Thông báo chương trình nhiễm virus 51
Trang 10DANH MỤC HÌNH ẢNH
Stt Hình Mô tả Trang
30 HÌNH 4.21 Mô hình chức năng chương trình Firewall Server 52
31 HÌNH 4.22 Giao diện chương trình Firewall Server 52
32 HÌNH 4.23 Quản lý các Firewall Client 53
33 HÌNH 4.24 Quản lý luật IP của Client từ Server 54
34 HÌNH 4.25 Quản lý luật chương trình của Client từ Server 54
35 HÌNH 4.26 Màn hình quản lý việc phân giải IP của trang web 54
36 HÌNH 4.27 Màn hình thông báo có chương trình chạy ở Client 55
Trang 11DANH MỤC BIỂU ĐỒ
Stt Biểu đồ Mô tả Trang
1 BIỂU ĐỒ 2.1 Biểu đồ so sánh tỷ lệ phân bố các lớp virus máy tính 17
2 BIỂU ĐỒ 2.2a Biểu đồ tăng trưởng các lớp virus máy tính 19
3 BIỂU ĐỒ 2.2b Biểu đồ tăng trưởng các lớp virus máy tính 19
Trang 12MỤC LỤC
Trang
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
TÓM TẮT iii
MỤC LỤC iv
DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT vii
DANH MỤC BẢNG BIỂU ix
DANH MỤC HÌNH ẢNH x
DANH MỤC BIỂU ĐỒ xii
CHƯƠNG 1 MỞ ĐẦU 1
1.1 Giới thiệu đề tài 1
1.1.1 Lý do chọn đề tài 1
1.1.2 Mục tiêu đề tài 1
1.2 Đối tượng, phạm vi nghiên cứu của đề tài 2
1.3 Ý nghĩa khoa học và thực tiễn của đề tài 2
1.4 Cấu trúc của luận văn 3
CHƯƠNG 2 MỘT SỐ CÔNG NGHỆ BẢO MẬT MẠNG MÁY TÍNH 4
2.1 Tổng quan về tường lửa (Firewall) 4
2.1.1 Đặt vấn đề 4
2.1.2 Khái niệm tường lửa 4
2.1.3 Lịch sử tường lửa 4
2.1.4 Các kiểu tấn công mạng 6
2.1.4.1 Tấn công trực tiếp 6
2.1.4.2 Kỹ thuật đánh lừa (Social Engineering) 6
2.1.4.3 Kỹ thuật tấn công vào vùng ẩn 6
2.1.4.4 Tấn công vào các lỗ hổng bảo mật 6
2.1.4.5 Khai thác tình trạng tràn bộ đệm: 7
2.1.4.6 Nghe trộm 7
2.1.4.7 Kỹ thuật giả mạo địa chỉ 7
2.1.4.8 Kỹ thuật chèn mã lệnh 7
2.1.4.9 Tấn công vào hệ thống có cấu hình không an toàn 7
2.1.4.10 Tấn công dùng Cookies 8
2.1.5 Các phương pháp bảo vệ 8
Trang 132.1.6 Tường lửa bảo vệ những gì? 8
2.1.7 Các loại tường lửa 9
2.1.7.1 Có ba loại tường lửa cơ bản tùy theo: 9
2.1.7.2 Phân loại theo phạm vi của các giao tiếp được lọc 9
2.1.7.3 Phân loại theo các tầng giao thức nơi dữ liệu có thể bị chặn 9
2.1.7.4 Phân loại theo tường lửa theo dõi trang thái 10
2.1.8 Nguyên lý hoạt động của tường lửa 10
2.1.9 Một số kiến trúc tường lửa cơ bản 11
2.1.9.1 Dual – Homed host architecture: 11
2.1.9.2 Screened host architecture (SHA) 13
2.1.9.3 Screened subnet architecture 14
2.1.9.4 Sử dụng nhiều Bastion hosts 15
2.1.9.5 Ghép chung Interior Router và Exterior Router 15
2.1.9.6 Kiến trúc ghép chung Bastion host và Exterior Router 16
2.2 Khảo sát virus máy tính 16
2.3 Các cơ chế chẩn đoán virus máy tính 18
2.3.1 Phát hiện virus dựa vào chuỗi nhận dạng 20
2.3.2 Phát hiện virus dựa vào hành vi 20
2.3.3 Phát hiện virus dựa vào ý định 21
2.4 Tình hình nghiên cứu và ứng dụng ở nước ngoài 21
2.5 Các vấn đề mở của công nghệ anti-virus 22
CHƯƠNG 3 NGHIÊN CỨU CÔNG NGHỆ SỬ DỤNG TRONG TƯỜNG LỬA 23
3.1 WINDOWS FILTERING PLATFORM (WFP) 23
3.1.1 Giới thiệu Windows Filtering Platform 23
3.1.2 Những lợi ích khi sử dụng WFP 24
3.1.3 Kiến trúc của WFP 25
3.1.4 Tính năng của WFP 27
3.1.5 Các WFP APIs được dùng để viết chương trình tường lửa 28
3.2 SOCKET 31
3.2.1 Lịch sử hình thành 31
3.2.2 Định nghĩa Socket 32
3.2.3 Nguyên lý hoạt động 33
3.2.4 Socket hỗ trợ TCP 34
3.2.5 Socket hỗ trợ UDP 35
3.2.6 Các thuộc tính của socket 35
3.2.7 Một số hàm thông dụng cùa socket 37
Trang 143.3 Nhận dạng virus dạng thực thi 39
3.3.1 Các định dạng dữ liệu bị nhiễm virus 39
3.3.2 Tập tin chương trình 39
CHƯƠNG 4 XÂY DỰNG HỆ THỐNG VÀ THỰC NGHIỆM 41
4.1 Giới thiệu hệ thống 41
4.1.1 Mô hình của hệ thống tường lửa 41
4.1.2 Sơ đồ hoạt động của tường lửa 42
4.2 Chương trình Firewall Client 42
4.2.1 Chức năng chính 42
4.2.2 Mô hình chức năng 43
4.2.3 Giao diện đồ họa của Firewall Client 43
4.3 Chương trình Firewall Server 51
4.3.1 Chức năng chính 51
4.3.2 Mô hình chức năng 52
4.3.3 Giao diện đồ họa của Firewall Server 52
4.4 So sánh giải pháp với phần mềm khác 55
CHƯƠNG 5 KẾT LUẬN 57
5.1 Kết quả đạt được 57
5.2 Hạn chế của đề tài, hướng khắc phục 57
5.3 Hướng phát triển tương lai 58 TÀI LIỆU THAM KHẢO
Trang 15vệ an toàn dữ liệu cho các hệ thống tính toán, giữ vững an ninh mạng, đảm bảo liên lạc thông suốt, duy trì chất lượng phục vụ luôn là vấn đề quan tâm hàng đầu của các nhà quản trị hệ thống
Sự phát triển của Internet tạo điều kiện cho các loại hình xâm nhập luận
lý trái phép vào các hệ thống CNTT cả chiều rộng và chiều sâu Mỗi ngày các
hệ thống mạng phải đối phó với hàng loạt đợt tấn công mạng khiến nhiều hệ thống bị đình trệ, tắc nghẽn và tê liệt; gây thiệt hại không nhỏ Dự án nghiên cứu về sự phát triển toàn cầu của Viện Hàn lâm Công nghệ Quốc gia Mỹ (National Academy of Engineering, USA - 2008) nhận định vấn đề an ninh thông tin là một trong 14 thách thức công nghệ lớn nhất của thế kỷ 21 mà nếu giải quyết được, cuộc sống con người sẽ được cải thiện đáng kể [15]
Trong bối cảnh đó, đề tài “Xây dựng hệ thống tường lửa mạng nội bộ”
được tiến hành nhằm góp phần giải quyết vấn đề bảo vệ an toàn cho các hệ thống CNTT nói chung và hệ thống mạng nội bộ trường Đại học Lạc Hồng nói riêng
1.1.2 Mục tiêu đề tài
Ngày càng có nhiều người kết nối mạng Internet và các công ty, tổ chức ngày càng mở rộng hệ thống mạng, vấn đề bảo mật cho mạng nội bộ trở nên khó khăn hơn bao giờ hết Hiện nay, nhiều phương pháp đã được đưa ra phát triển để đảm bảo an toàn cho cơ sở hạ tầng và giao tiếp trên Internet
Trang 16Trên cơ sở xác định loại hình nghiên cứu của đề tài là nghiên cứu ứng dụng, mục tiêu của đề tài là xây dựng hệ thống tường lửa mạng nội bộ, tiếp đến tích hợp nhận dạng virus máy tính với các tiêu chí cơ bản:
- Xây dựng hệ thống tường lửa có khả năng cấm những chương trình nguy hiểm cố gắng ra mạng
- Quyết định chương trình nào được phép thực thi, được kết nối internet
- Nhận dạng nhanh, phát hiện chính xác các trường hợp lây nhiễm, tiềm ẩn của các virus đã biết trên hệ thống đích
1.2 Đối tượng, phạm vi nghiên cứu của đề tài
Có ba vấn đề cân nhắc khi nghiên cứu xây dựng hệ thống tường mạng nội
bộ là môi trường (hệ điều hành, kiến trúc máy), phương tiện (Cơ sở hạ tầng mạng) và người dùng (cộng đồng sử dụng) Mặc dù có nhiều loại hệ thống tường lửa máy tính được xây dựng trên nhiều hệ thống và môi trường khác nhau, nhưng do tính phổ biến của Windows, để đáp ứng nhu cầu thực tế bức thiết, đề tài tập trung nghiên cứu quản lý hệ thống tường lửa mạng nội bộ hoạt động trên hệ điều hành (HĐH) Windows
Mặc dù vậy, đề tài cũng được định hướng nghiên cứu để có thể mở rộng kết quả nghiên cứu cho các HĐH khác Windows
1.3 Ý nghĩa khoa học và thực tiễn của đề tài
Đề tài sau khi hoàn thành có khả năng giám sát, bảo vệ an toàn mạng nội
bộ thông qua hệ thống tường lửa
Giúp cho việc quản trị hệ thống dễ dàng hơn thông qua giao tiếp chương trình tường lửa đơn giản, dễ sử dụng
Giải quyết được nhu cầu thực tế trong việc quản lý bảo vệ an toàn thông tin
Trang 171.4 Cấu trúc của luận văn
Trong luận văn được chia làm năm chương:
Chương 1: Trình bày lý do chọn đề tài, mục tiêu và phạm vi nghiên cứu
Chương 2: Chương này giới thiệu tổng quan về đề tài và tìm hiểu về Firewall những ưu khuyết điểm của hệ thống tường lửa
Chương 3: Nội dung chương 3 tập trung giới thiệu và nghiên cứu các công nghệ sử dụng trong chương trình Firewall Nội dung chính là nghiên cứu về Windows Filtering Platform, Socket và cách sử dụng nó trong luận văn Mô
tả sơ lược về virus máy tính
Chương 4: Đây là chương chính của khóa luận Chương này sẽ trình bày nội dung chương trình Firewall
Chương 5: Tổng kết, đánh giá ý nghĩa thực tiễn, phân tích hạn chế, đề xuất các biện pháp khắc phục và dự kiến hướng phát triển tương lai của đề tài
Trang 18CHƯƠNG 2
MỘT SỐ CÔNG NGHỆ BẢO MẬT MẠNG MÁY TÍNH
2.1 Tổng quan về tường lửa (Firewall)
2.1.1 Đặt vấn đề
Việc xây dựng một hệ thống bảo vệ, giám sát hoạt động những chương trình
ra ngoài Internet nhằm đảm bảo sự an toàn cho người sử dụng khi kết nối Internet
và việc quản lý hệ thống một cách dễ dàng là điều cần thiết Đề tài tiến hành nghiên cứu xây dựng hệ thống tường lửa mạng nội bộ nhằm giải quyết vấn đề trên
2.1.2 Khái niệm tường lửa
Internet cho phép chúng ta truy cập tới mọi nơi trên thế giới thông qua một
số dịch vụ Ngồi trước máy tính có thể biết được thông tin trên toàn cầu, nhưng cũng chính vì thế mà hệ thống máy tính có thể bị xâm nhập vào bất kỳ lúc nào
mà không hề được biết trước Do vậy, việc bảo vệ hệ thống là một vấn đề đáng phải được quan tâm đặt lên hàng đầu và khái niệm Firewall ra đời để giải quyết vấn đề này
Tường lửa là một thiết bị phần cứng hoặc phần mềm được đặt giữa máy tính và Internet, bức tường lửa là rào chắn mà một số cá nhân, tổ chức, doanh nghiệp, cơ quan nhà nước lập ra nhằm ngăn chặn người dùng mạng Internet truy cập các thông tin không mong muốn hoặc ngăn chặn người dùng từ bên ngoài truy nhập các thông tin bảo mật nằm trong mạng nội bộ
2.1.3 Lịch sử tường lửa
Công nghệ tường lửa bắt đầu xuất hiện vào cuối những năm 1980 khi Internet vẫn còn là một công nghệ khá mới mẻ theo khía cạnh kết nối và sử dụng trên toàn cầu.Ý tưởng đầu tiên được đã hình thành sau khi hàng loạt các vụ xâm phạm nghiêm trọng đối với an ninh liên mạng xảy ra vào cuối những năm 1980 Năm 1988, một nhân viên tại trung tâm nghiên cứu NASA Ames tại California gửi một bản ghi nhớ qua thư điện tử tới đồng nghiệp rằng: "Chúng ta đang bị một con VIRUS Internet tấn công! Nó đã đánh Berkeley, UC San Diego, Lawrence Livermore, Stanford, và NASA Ames" Con virus được biết đến với tên Sâu Morris này đã được phát tán qua thư điện tử và khi đó đã là một sự khó chịu chung ngay cả đối với những người dùng vô thưởng vô phạt nhất Sâu Morris là
Trang 19cuộc tấn công diện rộng đầu tiên đối với an ninh Internet Cộng đồng mạng đã không hề chuẩn bị cho một cuộc tấn công như vậy và đã hoàn toàn bị bất ngờ Sau đó, cộng đồng Internet đã quyết định rằng ưu tiên tối cao là phải ngăn chặn không cho một cuộc tấn công bất kỳ nào nữa có thể xảy ra, họ bắt đầu cộng tác đưa ra các ý tưởng mới, những hệ thống và phần mềm mới để làm cho mạng Internet có thể trở lại an toàn
Năm 1988, bài báo đầu tiên về công nghệ tường lửa được công bố, khi Jeff Mogul thuộc Digital Equipment Corp phát triển các hệ thống lọc đầu tiên được biết đến với tên các tường lửa lọc gói tin Hệ thống khá cơ bản này đã là thế hệ đầu tiên của cái mà sau này sẽ trở thành một tính năng kỹ thuật an toàn mạng được phát triển cao Từ năm 1980 đến năm 1990, hai nhà nghiên cứu tại phòng thí nghiệm AT&T Bell, Dave Presetto và Howard Trickey, đã phát triển thế hệ tường lửa thứ hai, được biến đến với tên các tường lửa tầng mạch (circuit level firewall) Các bài báo của Gene Spafford ở Đại học Purdue, Bill Cheswick ở phòng thí nghiệm AT&T và Marcus Ranum đã mô tả thế hệ tường lửa thứ ba, với
tên gọi tường lửa tầng ứng dụng (application layer firewall), hay tường lửa dựa proxy (proxy-based firewall) Nghiên cứu công nghệ của Marcus Ranum đã khởi
đầu cho việc tạo ra sản phẩn thương mại đầu tiên Sản phẩm này đã được Digital Equipment Corporation's (DEC) phát hành với tên SEAL Đợt bán hàng lớn đầu tiên của DEC là vào ngày 13 tháng 9 năm 1991 cho một công ty hóa chất tại bờ biển phía Đông của Mỹ
Tại AT&T, Bill Cheswick và Steve Bellovin tiếp tục nghiên cứu của họ về lọc gói tin và đã phát triển một mô hình chạy được cho công ty của chính họ, dựa trên kiến trúc của thế hệ tường lửa thứ nhất của mình Năm 1992, Bob Braden và Annette DeSchon tại Đại học Nam California đã phát triển hệ thống tường lửa lọc gói tin thế hệ thứ tư Sản phẩm có tên “Visas” này là hệ thống đầu tiên có một giao diện với màu sắc và các biểu tượng, có thể dễ dàng cài đặt thành phần mềm cho các hệ điều hành chẳng hạn Microsoft Windows và Mac/OS của Apple
và truy nhập từ các hệ điều hành đó Năm 1994, một công ty Israel có tên Check Point Software Technologies đã xây dựng sản phẩm này thành một phần mềm sẵn sàng cho sử dụng, đó là FireWall-1 Một thế hệ thứ hai của các tường lửa proxy đã được dựa trên công nghệ Kernel Proxy Thiết kế này liên tục được cải
Trang 20tiến nhưng các tính năng và mã chương trình cơ bản hiện đang được sử dụng rộng rãi trong cả các hệ thống máy tính gia đình và thương mại Cisco, một trong những công ty an ninh mạng lớn nhất trên thế giới đã phát hành sản phẩm này năm 1997
2.1.4 Các kiểu tấn công mạng
2.1.4.1 Tấn công trực tiếp
Sử dụng một máy tính để tấn công một máy tính khác với mục đích dò tìm mật mã, tên tài khoản tương ứng, … Họ có thể sử dụng một số chương trình giải mã để giải mã các file chứa password trên hệ thống máy tính của nạn nhân
Do đó, những mật khẩu ngắn và đơn giản thường rất dễ bị phát hiện
2.1.4.2 Kỹ thuật đánh lừa (Social Engineering)
Đây là thủ thuật được nhiều hacker sử dụng cho các cuộc tấn công và thâm nhập vào hệ thống mạng và máy tính bởi tính đơn giản mà hiệu quả của nó Thường được sử dụng để lấy cấp mật khẩu, thông tin, tấn công vào và phá hủy hệ thống
2.1.4.3 Kỹ thuật tấn công vào vùng ẩn
Những phần bị giấu đi trong các website thường chứa những thông tin về phiên làm việc của các Client Các phiên làm việc này thường được ghi lại ở máy khách chứ không tổ chức cơ sở dữ liệu trên máy chủ Vì vậy, người tấn công có thể sử dụng chiêu chức View Source của trình duyệt để đọc phần đầu đi này và
từ đó có thể tìm ra các sơ hở của trang Web mà họ muốn tấn công Từ đó, có thể tấn công vào hệ thống máy chủ
2.1.4.4 Tấn công vào các lỗ hổng bảo mật
Hiện nay các lỗ hổng bảo mật được phát hiện càng nhiều trong các hệ điều hành, các web server hay các phần mềm khác, Và các hãng sản xuất luôn cập nhật các lỗ hổng và đưa ra các phiên bản mới sau khi đã vá lại các lỗ hổng của các phiên bản trước Do đó, người sử dụng phải luôn cập nhật thông tin và nâng cấp phiên bản cũ mà mình đang sử dụng nếu không các hacker sẽ lợi dụng điều này để tấn công vào hệ thống
Trang 212.1.4.5 Khai thác tình trạng tràn bộ đệm:
Tràn bộ đệm là một tình trạng xảy ra khi dữ liệu được gởi quá nhiều so với khả năng xử lý của hệ thống hay CPU Nếu hacker khai thác tình trạng tràn bộ đệm này thì họ có thể làm cho hệ thống bị tê liệt hoặc làm cho hệ thống mất khả năng kiểm soát
Để khai thác được việc này, hacker cần biết kiến thức về tổ chức bộ nhớ, stack, các lệnh gọi hàm Shellcode
2.1.4.6 Nghe trộm
Các hệ thống truyền đạt thông tin qua mạng đôi khi không chắc chắn lắm
và lợi dụng điều này, hacker có thể truy cập vào data paths để nghe trộm luồng
dữ liệu truyền qua
2.1.4.7 Kỹ thuật giả mạo địa chỉ
Thông thường, các mạng máy tính nối với Internet đều được bảo vệ bằng tường lửa Tường lửa có thể hiểu là cổng duy nhất mà người đi vào nhà hay đi ra cũng phải qua đó Tường lửa hạn chế rất nhiều khả năng tấn công từ bên ngoài và gia tăng sự tin tưởng lẫn nhau trong việc sử dụng tài nguyên chia sẻ trong mạng nội bộ
2.1.4.8 Kỹ thuật chèn mã lệnh
Một kỹ thuật tấn công căn bản và được sử dụng cho một số kỹ thuật tấn công khác là chèn mã lệnh vào trang web từ một máy khách bất kỳ của người tấn công
Kỹ thuật chèn mã lệnh cho phép người tấn công đưa mã lệnh thực thi vào phiên làm việc trên web của một người dùng khác Khi mã lệnh này chạy, nó sẽ cho phép người tấn công thực hiện nhiều việc như giám sát phiên làm việc trên trang web hoặc có thể toàn quyền điều khiển máy tính của nạn nhân Kỹ thuật tấn công này thành công hay thất bại tùy thuộc vào khả năng và sự linh hoạt của người tấn công
2.1.4.9 Tấn công vào hệ thống có cấu hình không an toàn
Cấu hình không an toàn cũng là một lỗ hổng bảo mật của hệ thống Các lỗ hổng này được tạo ra do các ứng dụng có các thiết lập không an toàn hoặc người quản trị hệ thống cấu hình không an toàn Chẳng hạn như cấu hình máy chủ web
Trang 22cho phép ai cũng có quyền duyệt qua hệ thống thư mục Việc thiết lập như trên
có thể làm lộ các thông tin nhạy cảm như mã nguồn, mật khẩu hay các thông tin của khách hàng
2.1.4.10 Tấn công dùng Cookies
Cookie là những phần tử dữ liệu nhỏ có cấu trúc được chia sẻ giữa website
và trình duyệt của người dùng
Cookies được lưu trữ dưới những tập tin dữ liệu nhỏ dạng text Chúng được các trình duyệt tạo ra để lưu trữ, truy tìm, nhận biết các thông tin về người dùng
đã ghé thăm và những vùng mà họ đi qua Những thông tin này có thể bao gồm tên, định danh người dùng, mật khẩu, sở thích, thói quen, … Cookies được trình duyệt của người dùng chấp nhận lưu trên đĩa cứng của máy tính, không phải trình duyệt nào cũng hỗ trợ cookies
Vô hiệu hóa dịch vụ: Kiểu tấn công này thông thường làm tê liệt một số dịch vụ, được gọi là DOS (Denial of Service)
2.1.5 Các phương pháp bảo vệ
Xây dựng hệ thống tường lửa: Phổ biến nhất là các sản phẩm thương mại như của Checkpoint, Cisco Tường lửa Open Source phổ biến là Netfilter/Iptable
Dùng phần mềm antivirus
Phương pháp kiểm soát lối vào
Ngăn cản sự xâm nhập trái phép vào hệ thống: IDS phổ biến nhất là Snort
Mã hoá dữ liệu trước khi truyền
Dùng chữ ký số trước khi truyền
Xây dựng một chính sách an toàn cho hệ thống
Xây dựng mạng riêng ảo
Các công cụ đánh giá tính an toàn
2.1.6 Tường lửa bảo vệ những gì?
Dữ liệu: đây là nhu cầu đầu tiên khi cần sử dụng tường lửa để bảo vệ nhằm các yêu cầu sau:
o Tính bảo mật: Đây là những thông tin quan trong mà cần phải giữ kín
o Tính toàn vẹn: Thông tin không bị thay đổi, hay bị đánh tráo
Trang 23o Tính kịp thời: Đảm bảo sự cần thiết kịp thời khi có yêu cầu
Tài nguyên: Khi hệ thống bị xâm nhập thì những hacker có thể sử dụng tài nguyên để mưu đồ riêng
Danh tiếng: Đây là vấn đề hết sức quan tâm của các công ty có danh tiếng lớn Trong trường hợp, người quản trị chỉ biết khi hệ thống đã bị tấn công và dùng bàn đạp để tấn công hệ thống khác thì hậu quả thiệt hại về danh tiếng rất lớn
2.1.7 Các loại tường lửa
2.1.7.1 Có ba loại tường lửa cơ bản tùy theo:
Giao tiếp được thực hiện giữa một nút đơn và mạng, hay giữa một số mạng
Giao tiếp được chặn tại tầng mạng, hay tại tầng ứng dụng
Tường lửa có theo dõi trạng thái của giao tiếp hay không
2.1.7.2 Phân loại theo phạm vi của các giao tiếp được lọc
Tường lửa cá nhân, một ứng dụng phần mềm với chức năng thông thường là lọc dữ liệu ra vào một máy tính đơn
Tường lửa mạng, thường chạy trên một thiết bị mạng hay máy tính chuyên dụng đặt tại ranh giới của hai hay nhiều mạng hoặc các khu phi quân sự (mạng con trung gian nằm giữa mạng nội bộ và mạng bên ngoài) Một tường lửa thuộc loại này lọc tất cả dữ liệu vào hoặc ra của các mạng được kết nối qua nó
2.1.7.3 Phân loại theo các tầng giao thức nơi dữ liệu có thể bị chặn
Tường lửa tầng mạng (iptables)
Tường lửa tầng ứng dụng (TCP Wrappers)
Tường lửa ứng dụng (hạn chế các dịch vụ ftp bằng việc định cấu hình tại tệp /etc/ftpaccess)
Trang 242.1.7.4 Phân loại theo tường lửa theo dõi trang thái
Tường lửa có trạng thái (Stateful firewall)
Tường lửa phi trạng thái (Stateless firewall)
HÌNH 2.1: Mô hình tường lửa bảo vệ hệ thống mạng nội bộ
2.1.8 Nguyên lý hoạt động của tường lửa
Khi nói đến việc lưu thông dữ liệu giữa các mạng với nhau thông qua tường lửa có nghĩa rằng tường lửa hoạt động chặt chẽ với giao thức TCP/IP Vì giao thức này làm việc theo thuật toán chia nhỏ các dữ liệu nhận được từ các ứng dụng trên mạng, hay nói chính xác hơn là các dịch vụ chạy trên các giao thức (SMTP, DNS,…) [3] thành các gói dữ liệu (data pakets) rồi gán cho các paket này những địa chỉ để có thể nhận dạng, tái lập lại ở đích cần gửi đến, do đó các loại tường lửa cũng liên quan rất nhiều đến các packet và những địa chỉ của chúng Bộ lọc packet cho phép hay từ chối mỗi packet mà nó nhận được Nó kiểm tra toàn bộ đoạn dữ liệu để quyết định xem đoạn dữ liệu đó có thoả mãn một trong số các luật lệ của lọc packet hay không Các luật lệ lọc packet này là dựa trên các thông tin ở đầu mỗi packet (packet header), dùng để cho phép truyền các packet đó ở trên mạng Đó là:
Địa chỉ IP nơi xuất phát ( IP Source address)
Địa chỉ IP nơi nhận (IP Destination address)
Những thủ tục truyền tin (TCP, UDP, ICMP, IP tunnel)
Cổng TCP/UDP nơi xuất phát (TCP/UDP source port)
Trang 25 Cổng TCP/UDP nơi nhận (TCP/UDP destination port)
Dạng thông báo ICMP ( ICMP message type)
Giao diện packet đến ( incomming interface of packet)
Giao diện packet đi ( outcomming interface of packet)
Nếu luật lệ lọc packet được thỏa mãn thì packet được chuyển qua tường lửa Nếu không packet sẽ bị bỏ đi Nhờ vậy mà tường lửa có thể ngăn cản được các kết nối vào các máy chủ hoặc mạng nào đó được xác định, hoặc khóa việc truy cập vào hệ thống mạng nội bộ từ những địa chỉ không cho phép Hơn nữa, việc kiểm soát các cổng làm cho tường lửa có khả năng chỉ cho phép một số loại kết nối nhất định vào các loại máy chủ nào đó, hoặc chỉ có những dịch vụ nào
đó (Telnet, SMTP, FTP…) được phép mới chạy được trên hệ thống mạng cục
bộ
2.1.9 Một số kiến trúc tường lửa cơ bản
2.1.9.1 Dual – Homed host architecture:
HÌNH 2.2: Kiến trúc Dual – Homed host architecture Đây là kiến trúc đơn giản nhất Kiến trúc này sẽ sử dụng một máy tính có ít nhất 2 card giao tiếp (dual- homed host ) Máy tính này sẽ là cầu nối giữa mạng
Trang 26bên trong (internal network) và mạng bên ngoài (external network) và chức năng routing của máy này cũng bỏ đi
Để cung cấp dịch vụ cho những người sử dụng internal network có một số giải pháp như sau: hoặc kết hợp với các proxy server cung cấp những proxy service hoặc cấp các tài khoản cho người dùng trên máy dual-homed host này
và khi mà người dùng muốn sử dụng dịch vụ từ Internet hay dịch vụ từ external network thì người dùng phải đăng nhập vào máy này, dẫn đến nảy sinh vấn đề về hệ thống không được an toàn đó là vấn đề cấp tài khoản trên máy này
là không nên làm, vì máy này nối ra bên ngoài nên nó như là một hàng rào bên ngoài có nhiều attacker muốn tấn công
Ưu khuyết điểm:
Nếu dùng phương pháp cấp tài khoản cho user trên máy dual- homed host thì người dùng không thích sử dụng dịch vụ phiền phức như vậy, vì mỗi lần họ muốn sử dụng dịch vụ thì phải đăng nhập vào máy khác (dual homed host) khác với máy của họ đây là vấn đề không trong suốt với người sử dụng
Nếu dùng Proxy Server: Khó có thể cung cấp được nhiều dịch vụ cho người
sử dụng vì phần mềm proxy server và proxy client không phải loại dịch vụ nào cũng có sẵn Hoặc khi số dịch vụ cung cấp nhiều thì khả năng đáp ứng của hệ thống có thể giảm xuống vì tất cả các proxy server đều đặt trên cùng một máy
Một khuyết điểm cơ bản của hai mô hình trên nữa là: khi mà máy dual -homed host nói chung cũng như các proxy server bị đột nhập vào Người tấn công đột nhập vào được qua nó - thì lưu thông bên trong internal network bị người tấn công thấy hết điều này hết sức nguy hiểm Trong các hệ thống mạng dùng Ethernet hoặc Token-ring thì dữ liệu lưu thông trong hệ thống có thể bị bất kỳ máy nào nối vào mạng đánh cắp dữ liệu cho nên kiến trúc trên chỉ thích hợp với một số mạng nhỏ
Trang 272.1.9.2 Screened host architecture (SHA)
HÌNH 2.3: Kiến trúc Screened host architecture (SHA) Kiến trúc này kết hợp 2 kỹ thuật đó là packet filtering và proxy services Packet Filtering: Lọc một số loại dịch vụ mà hệ thống muốn cung cấp sử dụng proxy server, yêu cầu người dùng nếu muốn dùng dịch vụ thì phải kết nối đến proxy server mà không được bỏ qua proxy server để nối trực tiếp với internal/external network, đồng thời có thể cho phép Bastion Host mở một số kết nối với internal/external host
Proxy Service: Bastion host sẽ chứa các proxy server để phục vụ một số dịch vụ hệ thống cung cấp cho người sử dụng qua proxy server
Ưu khuyết điểm:
Kiến trúc screened host hay hơn kiến trúc dual- homed host ở một số điểm
cụ thể sau:
Dual-Homed Host: Khó có thể bảo vệ tốt vì máy này cùng lúc cung cấp nhiều dịch vụ, vi phạm qui tắc căn bản là mỗi phần tử hay thành phần nên giữ ít chức năng nếu có thể được - Mỗi phần tử nên giữ ít chức năng càng tốt , cũng như tốc độ đáp ứng không cao vì cùng lúc đảm nhận nhiều chức năng
Screened Host Architecture: đã tách chức năng lọc các gói IP và các proxy server ở hai máy riêng biệt Packet filtering chỉ giữ chức năng lọc gói nên
có thể kiểm soát, cũng như khó xảy ra lỗi - tuân thủ qui tắc ít chức năng
Trang 28Proxy servers được đặt ở máy khác nên khả năng phục vụ - tốc độ đáp ứng cũng cao
Cũng tương tự như kiến trúc Dual-Homed Host khi mà packet filtering system cũng như bastion host chứa các proxy server bị đột nhập vào - Người tấn công đột nhập được qua các hàng rào này thì lưu thông của internal network bị người tấn công thấy
Từ khuyết điểm chính của 2 kiến trúc trên ta có kiến trúc thứ 3 sau đây khắc phục được phần nào khuyết điểm trên
2.1.9.3 Screened subnet architecture
HÌNH 2.4: Kiến trúc Screened subnet architecture Đối với những hệ thống yêu cầu cung cấp dịch vụ nhanh, an toàn cho nhiều người sử dụng đồng thời cũng như khả năng theo dõi lưu thông của mỗi người sử dụng trong hệ thống và dữ liệu trao đổi giữa các người dùng trong hệ thống cần được bảo vệ thì kiến trúc cơ bản trên phù hợp
Để tăng độ an toàn trong internal network, kiến trúc screen subnet ở trên sử dụng thêm một mạng DMZ (DMZ hay perimeter network) để che phần nào lưu thông bên trong internal network Tách biệt internal network với Internet
Sử dụng 2 Screening Router: Exterior Router và Interior Router
Áp dụng qui tắc dư thừa có thể bổ sung thêm nhiều mạng trung gian càng tăng khả năng bảo vệ càng cao
Trang 292.1.9.4 Sử dụng nhiều Bastion hosts
Do các yêu cầu về tốc độ đáp ứng (performance) và dư thừa (redundancy), cũng như tách biệt các server khác nhau
Sử dụng 1 bastion host cung cấp những dịch vụ cho internal user, như dịch vụ SNMP server, proxy server
Sử dụng 1 bastion host khác cung cấp dịch vụ cho Internet - những người sử dụng bên ngoài (external user) sẽ sử dụng Như là anonymous FTP server mà server này những người sử dụng bên trong (local users) không truy xuất đến
Với cách này thì tốc độ đáp ứng cho những người sử dụng bên trong một phần nào đó không bị ảnh hưởng bởi hoạt động của những người sử dụng bên ngoài (external users)
Cũng có thể sử dụng nhiều bastion host mà cung cấp cho 1 dịch vụ nào đó để tăng tốc độ đáp ứng, nhưng việc này cũng khó cân bằng tải giữa các server trừ khi đoán trước được mức độ sử dụng
Việc sử dụng kỹ thuật dư thừa để đảm bảo tính sẵn sàng cao của hệ thống, khi một bastion host hỏng thì có cái khác thay thế Nhưng chỉ có một số loại dịch vụ trợ giúp dạng này: DNS server, SMTP server, có thể dùng nhiều bastion host làm DNS server, SMTP server Khi một bastion host hỏng hoặc quá tải, những yêu cầu
về DNS server và SNMP sẽ dùng bastion host khác như là một fallback system Việc sử dụng nhiều bastion host trong trường hợp muốn cung cấp dịch vụ cho nhiều mạng khác nhau và loại dữ liệu cung cấp cho mỗi mạng cũng khác nhau
Sử dụng nhiều bastion host cho các server khác nhau để khi một server nào đó
bị đột nhập vào (break-in) hay hỏng thì server khác vẫn hoạt động tốt Ví dụ: Tách HTTP server và FTP server trên 2 máy riêng biệt
2.1.9.5 Ghép chung Interior Router và Exterior Router
Sử dụng kiến trúc này thì cần tăng tốc độ của máy làm ROUTER
Kiến trúc này gần giống với screened host architecture trong trường hợp khi
mà exterior / interior router bị độ nhập vào thì lưu thông trong mạng cục bộ sẽ bị lộ
ra bên ngoài nhưng tốt hơn screened host architecture đó là nó cũng sử dụng thêm một mạng bên ngoài Mạng bên ngoài sẽ chứa các server có thể nối ra Internet mà nếu các server này bị đột nhập thì lưu thông của mạng bên trong cũng không bị lộ ra bên ngoài Kiến trúc này cũng gần giống với screened subnet architecture nhưng mà
Trang 30exterior router và interior router được ghép chung nên nó giảm đi số lớp bảo vệ Nói chung, kiến trúc ghép chung interior router và exterior router ở trung gian giữa hai kiến trúc này
2.1.9.6 Kiến trúc ghép chung Bastion host và Exterior Router
Cho mạng chỉ có một đường nối dùng nghi thức SLIP hoặc PPP ra Internet Phần mềm có thể sử dụng: Morning Star PPP Package
Kiến trúc này gần giống với screened subnet architecture
Kiến trúc này cho tốc độ đáp ứng thường thấp nhưng vẫn có thể chấp nhận được do tốc độ đường truyền thấp, chức năng lọc của exterior router ít - chức năng lọc gói chủ yếu là interior router
2.2 Khảo sát virus máy tính
Virus máy tính (computer virus) là loại chương trình máy được thiết kế để
thực hiện các chỉ thị của nó sau chương trình khác [5] Bí mật sao chép bản thân
nó vào các hệ thống máy tính, virus lây từ máy này sang máy khác, làm suy giảm năng lực hoạt động hệ thống và xâm phạm dữ liệu người dùng [1] Kể từ khi virus Brain xuất hiện đầu tiên (1986), ngày nay có đến hàng chục ngàn biến thể virus máy tính lây lan trên toàn thế giới Biến thái qua nhiều thế hệ, virus máy tính ngày càng tinh vi, mức độ quấy rối phá hoại càng nguy hiểm và nghiêm trọng
Có nhiều định nghĩa về virus máy tính [4][6][8] Theo Bordera [2], virus
máy tính là: “bất cứ chỉ thị, thông tin, dữ liệu hoặc chương trình làm suy giảm tính hoàn thiện của tài nguyên máy tính, làm vô hiệu, gây nguy hiểm hoặc phá hủy, hoặc ghép bản thân nó vào tài nguyên của máy tính khác và thi hành khi chương trình máy tính thi hành”
Ngoài những tính chất chung, mỗi loại virus có nguyên tắc lây nhiễm, đặc điểm dữ liệu khác nhau Lúc đầu các chuyên gia phân loại virus theo hình thức lây nhiễm Về sau virus máy tính phát triển đa dạng với nhiều xu hướng kết hợp, phân hóa, lai tạp, kế thừa… khiến việc phân loại gặp nhiều khó khăn Kết quả phân tích mã lệnh thực thi các virus đại diện trong danh sách 65.824 virus DOS/Windows của Kaspersky Lab [12] cho thấy virus máy tính được thiết kế từ bốn lớp dữ liệu cơ bản (Bảng 2.1) Biểu đồ so sánh phân bố tỷ lệ các lớp virus máy
Trang 31tính (biểu đồ 2.1) cho thấy lớp dữ liệu program (gồm hai nhóm 16-bit và 32-bit) chiếm tỷ lệ cao nhất
BẢNG 2.1: Phân loại virus máy tính theo kiểu dữ liệu
BIỂU ĐỒ 2.1: Biểu đồ so sánh tỷ lệ phân bố các lớp virus máy tính
Để đánh giá xu hướng phát triển của virus máy tính, có thể tìm hiểm quá trình xuất hiện của các loại virus máy tính trong khoảng thời gian xác định Thống kê thời điểm cập nhật 14575 virus DOS/Windows đại diện của Kaspersky Lab trong 10 năm (1995-2004) Biểu đồ 2.2a cho thấy:
- Các lớp virus đều có sự gia tăng về số lượng Đến năm 2000, trong khi các lớp khác tăng đều, lớp Program-32 có sự gia tăng đột biến
- Năm 2003 có sự phân hóa lớn: trong khi lớp Program-32 vẫn tăng trưởng mạnh, lớp Program-16 (lây vào các ứng dụng 16 bit của DOS/Windows) và
Trang 32lớp Text (sử dụng tập lệnh script ASCII plain text) đều sụt giảm
- Các lớp virus Binary (chủ yếu là boot virus) và Macro (chủ yếu là word macro) tăng nhưng không tạo ra sự biến chuyển lớn nào (Biểu đồ 2.2b)
BẢNG 2.2: Lịch trình cập nhật của Kaspersky Lab (1995-2004)
Năm Program 32 bit Program 16 bit Binary Text Macro
2.3 Các cơ chế chẩn đoán virus máy tính
Hơn 20 năm qua, virus máy tính đã gây nguy hại cho nhiều hệ thống CNTT trên thế giới Các nhà khoa học đã tốn nhiều công sức nghiên cứu, xây dựng các hệ phòng chống virus máy tính theo nhiều tiếp cận, kỹ thuật khác nhau [11] Cho đến nay, có ba kỹ thuật nhận dạng virus máy tính đã được áp dụng: dựa vào chuỗi nhận dạng virus , dựa vào hành vi nghi ngờ virus và dựa vào ý định virus
Trang 33BIỂU ĐỒ 2.2a: Biểu đồ tăng trưởng các lớp virus máy tính
BIỂU ĐỒ 2.2b: Biểu đồ tăng trưởng các lớp virus máy tính
Trang 342.3.1 Phát hiện virus dựa vào chuỗi nhận dạng
Hoạt động theo nguyên lý nhận dạng mẫu, các Antivirus sử dụng một CSDL chứa mẫu virus Mỗi khi có virus mới, các chuyên gia anti-virus sẽ giải
mã, trích chọn và cập nhật chuỗi nhận dạng virus vào thư viện Thông tin về đối tượng chẩn đoán (ghi nhận từ hệ thống đích) cùng với thông tin của virus (trong thư viện mẫu) sẽ cho kết luận về tình trạng của đối tượng
Nhận dạng mẫu giúp Antivirus phát hiện các virus đã biết trên tập dữ liệu chẩn đoán với độ chính xác cao Tuy nhiên phương pháp này có khá nhiều nhược điểm:
- Cồng kềnh: Kích thước thư viện mẫu tỷ lệ thuận với số virus đã cập nhật và
tỷ lệ nghịch với tốc độ tìm kiếm
- Bị động: Antivirus chỉ hiệu quả trên các mẫu virus đã cập nhật, không đáp ứng kịp thời dịch bệnh do tốn thời gian cho việc thu thập mẫu virus mới, giải mã, phân tích, lập thuật giải, cập nhật phiên bản mới, phát hành…
- Nhầm lẫn: Các hacker cố gắng tạo vỏ bọc an toàn cho virus Khi Antivirus
so mẫu chẩn đoán giống với virus, dữ liệu sạch của hệ thống sẽ bị tẩy (clean) nhầm
2.3.2 Phát hiện virus dựa vào hành vi
Tiếp cận này nghiên cứu virus máy tính dưới góc độ thi hành của tập
mã lệnh Cũng là chương trình máy tính, nhưng khác với các phần mềm hữu ích, virus chỉ chứa các lệnh nguy hiểm Nghiên cứu trật tự, quy luật hình thành các
lệnh máy của virus, tiếp cận này dựa vào khái niệm hành vi để xây dựng cơ chế
nhận dạng thông qua tập các thủ tục/hành vi của chúng
Sử dụng tri thức hành vi từ kinh nghiệm chuyên gia nên tiếp cận này còn gọi là phương pháp heuristic Do các virus giống nhau thường có hành vi như nhau nên Antivirus có thể nhận dạng các virus cùng họ Tuy nhiên Antivirus khó phân biệt được các hành vi giống nhau nhưng mục đích khác nhau (ví dụ các phần mềm thường tạo và xóa tập tin tạm, trong khi virus tạo bản sao chính nó và xóa dữ liệu người dùng…) nên tiếp cận này ít được sử dụng cho máy lẻ/trạm làm việc, vốn dành cho người dùng ít kinh nghiệm [14]
Trang 352.3.3 Phát hiện virus dựa vào ý định
Do hãng Sandrasoft (Ấn Độ) đề xướng từ năm 2005, tiếp cận based (tên mã Rudra) lưu giữ hình ảnh chi tiết của máy tính trong tình trạng
intention-sạch, sau đó tiếp tục theo dõi trạng thái hệ thống Những thay đổi quan trọng trong tập tin, cấu hình hệ thống hay HĐH đều được cảnh báo như một mối hiểm họa tiềm tàng Khi những thay đổi này được đánh giá nguy hiểm, hệ sẽ khôi phục máy về tình trạng ban đầu Mặc dù đơn giản nhưng tiếp cận này tỏ ra khá hiệu quả vì nó có thể bảo vệ máy tính khỏi các mối đe dọa chưa được biết đến, kể
cả virus máy tính
Trong thực tế, tiếp cận “quay về quá khứ” đã được nhiều hãng phần mềm
hệ thống sử dụng: Symantec có Norton Ghost và Norton Goback; VMware có System Image Snapshot; Faronics có Deep Freeze… Tuy nhiên tiếp cận này kém hiệu quả khi các điểm trạng thái được ghi nhận lúc hệ thống bị nhiễm virus lạ Mặt khác, hệ cũng cần bộ nhớ ngoài đủ lớn để lưu toàn bộ hình ảnh hệ thống qua từng thời điểm [6]
2.4 Tình hình nghiên cứu và ứng dụng ở nước ngoài
• Databases That Learn: dự án của Symantec Research Labs ở Santa
Monica (California-USA) luyện học thói quen truy nhập vào các cơ sở dữ liệu để rút quy luật tấn công của hacker, bảo vệ hệ thống khỏi thâm nhập trộm [13]
• MLX™ Proofpoint Zero-Hour Anti-virus: sản phẩm của ProofPoint
Inc., gồm nhiều gói thành phần như Proofpoint Protection Server®, Proofpoint Messaging Security Gateway™, bảo vệ hệ thống trong thời gian thực Bằng các kỹ thuật máy học, Proofpoint phân tích các email có tập tin đính kèm và phát cảnh báo khi có file nghi ngờ mã độc Công cụ này được cài đặt cho hệ F-Secure Messaging Security Gateway để lọc thư rác
• DDI (Distributed Detection and Inference): dự án của Intel triển khai ở
đại học Berkeley (2005) suy luận trên hệ thống mạng nhằm phát hiện các cuộc tấn công lan tràn Nghiên cứu này đặt giả thuyết rằng nếu một nút mạng bị tấn công thì các nút khác trong hệ thống cũng có thể bị tấn công
Trang 36tương tự Giải pháp của đề tài là cài đặt một thuật toán học cho mỗi nút mạng để phát hiện các cuộc truy nhập cục bộ Mỗi nút có liên lạc với các nút kế cận để suy luận và cảnh báo các tình huống hệ thống bị tấn công lan tràn
2.5 Các vấn đề mở của công nghệ anti-virus
Cũng trong bài viết “Virus máy tính: lý thuyết và thực nghiệm” (1987) đã
đề cập ở phần trên, Fred Cohen nêu ra “Các vấn đề chưa được giải quyết” gồm:
1 Phát hiện biểu hiện (appearance) của virus
2 Phát hiện hành vi (behavior) của virus
3 Phát hiện sự tiến triển (evolution) của một virus đã biết (known virus)
4 Phát hiện cơ chế kích hoạt (triggering mechanism) qua biểu hiện của virus
5 Phát hiện cơ chế kích hoạt qua hành vi của virus
6 Phát hiện sự tiến triển của một cơ chế kích hoạt đã biết
7 Phát hiện bộ nhận dạng virus qua biểu hiện của nó
8 Phát hiện bộ nhận dạng virus qua hành vi của nó
9 Phát hiện sự tiến triển của cơ chế tự kiểm tra (selftest) của virus đã biết Năm 1998, Steve R White (chuyên gia anti-virus của IBM) khái quát hóa tình hình và đưa ra năm vấn đề mở của anti-virus, đó là:
1 Nghiên cứu, xây dựng các lớp bài toán heuristic khác nhau
2 Khống chế tốc độ lây lan và sản sinh của virus máy tính
3 Nghiên cứu các giải pháp phù hợp cho đa số người dùng
4 Nghiên cứu phương pháp nhận dạng sâu trình (worm)
5 Cải tiến phương pháp nhận dạng, phát hiện nhanh và kịp thời trước khi virus lan tràn thành dịch trên mạng
Mặc dù các chuyên gia anti-virus có cách phân loại vấn đề mở khác nhau, nhìn chung công nghệ anti-virus ngày nay đang giải quyết ba vấn đề cơ bản:
1 Cải tiến phương pháp, nghiên cứu các kỹ thuật nhận dạng heuristic, tiến tới xây dựng các lớp bài toán heuristic khác nhau
2 Cải tiến hiệu quả, phát hiện nhanh chóng, chủ động phòng ngừa dịch bệnh
3 Trên quy mô rộng, nghiên cứu các giải pháp phù hợp cho đa số người dùng Phát hiện và dự báo các mã độc lan truyền trên hệ thống mạng
Trang 37CHƯƠNG 3 NGHIÊN CỨU CÔNG NGHỆ
SỬ DỤNG TRONG TƯỜNG LỬA
Nội dung nghiên cứu bao gồm:
Phần thứ nhất là nghiên cứu Windows Filtering Platform (WFP), cách thức sử dụng các WFP APIs để tạo một chương trình tường lửa
Kế đến, đề tài là nghiên cứu và sử dụng socket để truyền thông tin giữa các
máy tính trong mạng nội bộ
Nghiên cứu một số kỹ thuật nhận dạng virus
3.1 WINDOWS FILTERING PLATFORM (WFP)
3.1.1 Giới thiệu Windows Filtering Platform
Windows Filtering Platform (WFP) là một tập API (giao diện lập trình ứng dụng) - một cấu trúc mới trong Windows Vista, Windows Server 2008 và Windows
7 cho phép các nhà cung cấp phần mềm độc lập để lọc và sửa đổi gói tin TCP/IP [10], giám sát hoặc ủy quyền cho các kết nối, lọc các lưu lượng được bảo vệ của Internet Protocol security (IPsec) và lọc các cuộc gọi thủ tục từ xa Lọc và sửa đổi các gói tin TCP/IP cung cấp khả năng truy cập đến quá trình xử lý gói tin TCP/IP Trong quá trình này, chúng ta có thể kiểm tra hoặc sửa đổi các gói tin gửi đi và gói tin vào trước khi tiếp tục quá trình gửi gói tin Bằng cách truy cập vào TCP/IP, thay đổi quá trình xử lý ở các lớp khác nhau, chúng ta có thể dễ dàng tạo ra phần mềm Firewall, phần mềm chống virus, phần mềm chuẩn đoán, và các loại ứng dụng, dịch
vụ khác
Windows Filtering Platform (WFP) cung cấp các API để chúng ta có thể tham gia vào việc quyết định việc lọc xảy ra tại lớp nào trong TCP/IP stack WFP cũng tích hợp và cung cấp hỗ trợ cho các tường lửa thế hệ kế tiếp các tính năng như giao tiếp xác thực và cấu hình tường lửa Khả năng này còn được gọi là chính sách dựa trên ứng dụng
Bằng cách cung cấp một nền tảng phát triển đơn giản, WFP được thiết kế để thay thế các công nghệ lọc gói tin trước đó như bộ lọc Transport Driver Interface (TDI), bộ lọc Network Driver Interface Specification (NDIS), và Winsock Layered Service Providers (LSP) Các trình điều khiển firewall hook và filter hook không có