Tải bản đầy đủ (.pdf) (145 trang)

Nghiên cứu về lỗ hổng bảo mật xây dựng chương trình phát hiện lỗi bảo mật trên hệ thống windows nt 32 bit

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.2 MB, 145 trang )

Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA

LÊ BÍCH PHƯƠNG

NGHIÊN CỨU VỀ LỖ HỔNG BẢO MẬT,
XÂY DỰNG CHƯƠNG TRÌNH PHÁT HIỆN LỖI
BẢO MẬT TRÊN HỆ THỐNG WINDOWS NT 32-BIT
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
Mã số ngành:
01.02.10

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 10 năm 2006


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

CÔNG TRÌNH ĐƯC HOÀN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học: Tiến só Nguyễn Xuân Dũng

Cán bộ chấm nhận xét 1: TS. Võ Văn Khang

Cán bộ chấm nhận xét 2: TS. Đặng Trần Khánh

Luận văn thạc só được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN
THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày



tháng 10 năm 2006

--------------------------------------------------------------------------------------Lê Bích Phương

i


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

LỜI CẢM ƠN
Trước khi vào đề tài, em xin chân thành cảm ơn qúy thầy cô trong khoa Công
Nghệ Thông Tin và phòng Đào Tạo sau đại học, Trường Đại Học Bách Khoa
Thành phố Hồ Chí Minh, đã giúp đỡ em trong thời gian thực hiện đề tài này. Qua
đây, em cũng xin gửi đến thầy cô những lời tri ân sâu sắc nhất, đặc biệt là Tiến
só Nguyễn Xuân Dũng, giáo viên hướng dẫn em, người luôn tận tình giúp đỡ, chỉ
bảo từng bước đi, hướng dẫn phương pháp nghiên cứu, cách thức làm việc, hướng
dẫn tài liệu tham khảo trong quá trình thực hiện đề tài này. Và em cũng xin cảm
ơn giáo viên phản biện giúp em nhìn nhận lại vấn đề một cách rõ ràng hơn và
khắc phục những nhược điểm của đề tài. Các thầy cô đã động viên giúp em vượt
qua những khó khăn trong học tập, cung cấp những tài liệu hay và chỉ dẫn hướng
đi đúng cho em.
Con xin cảm ơn gia đình và những người thân luôn quan tâm, động viên và giúp
đỡ, tạo điều kiện cho con vững bước trên con đường học tập và nghiên cứu.
Tôi xin cảm ơn các bạn cao học khóa 15 đã ủng hộ tinh thần và gợi ý giúp tôi
hoàn thành tốt đề tài này.
Xin cảm ơn các tác giả những các tài liệu tham khảo sử dụng trong đề tài này.
Và cuối cùng, tôi mong muốn đề tài này sẽ góp một phần ý tưởng vào sự phát
triển của công nghệ thông tin nói riêng và xã hội nói chung.


Học viên thực hiện: Lê Bích Phương

--------------------------------------------------------------------------------------Lê Bích Phương

ii


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

MỤC LỤC
LỜI CẢM ƠN........................................................................................................ii
MỤC LỤC ............................................................................................................iii
DANH MỤC HÌNH ...............................................................................................v
DANH MỤC BẢNG BIỂU..................................................................................vii
DANH MỤC CÁC CHỮ VIẾT TẮT ..................................................................viii
TÓM TẮT LUẬN VĂN ........................................................................................x
1. MỞ ĐẦU.......................................................................................................1
1.1.

Sự cần thiết của chương trình phát hiện lỗ hổng bảo mật: ......................1

1.2.

Các chương trình phát hiện lỗ hổng hiện nay:.........................................2

1.3.

Mục tiêu và phạm vi của đề tài:..............................................................2


1.4. Các nghiên cứu có liên quan: ..................................................................4
2. CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI ...........................................................9
2.1 Tổng quan về bảo mật trên các hệ điều hành: ........................................9
2.1.1 Các khái niệm về bảo mật: ..............................................................9
2.1.2 Kiến trúc hệ thống của Windows 2000: .........................................13
2.1.2.1 Các thành phần hoạt động ở user-mode: ................................14
2.1.2.2 Các thành phần hoạt động ở kernel-mode:.............................21
2.1.3 Các thành phần bảo mật trên Windows 2000: ...............................26
2.1.3.1 Hệ thống con bảo mật: ............................................................29
2.1.3.2 Các thành phần hiện thực cơ chế bảo mật của hệ
thống Windows 2000: .............................................................................29
2.1.3.3 Cơ chế bảo vệ các đối tượng :.................................................33
2.1.3.4 Kiểm tra bảo mật truy xuất (Mô hình bảo mật SRM):............41
2.1.3.5 Kiểm toán các sự kiện bảo mật (Security Auditing):..............44
2.1.3.6 Đăng nhập (Logon):................................................................46
2.1.3.7 Chính sách bảo mật (Security Policies): .................................57
2.2 Nghiên cứu nguyên nhân chi tiết của các lỗ hổng bảo mật trên
hệ điều hành hiện nay: ....................................................................................58
2.2.1 Mục đích của việc khai thác các lỗ hổng bảo mật: ........................58
2.2.1.1 Denial-of-Service (DoS):........................................................58
2.2.1.2 Rò rỉ thông tin: ........................................................................59
2.2.1.3 Tạo, đọc, thay đổi, xóa file: ....................................................59
2.2.1.4 Misinformation: ......................................................................60

--------------------------------------------------------------------------------------Lê Bích Phương

iii



Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

2.2.1.5 Truy xuất File/Database: ........................................................60
2.2.1.6 Nâng cao các quyền lực: .........................................................60
2.2.2 Nguyên nhân chi tiết của các lỗ hổng bảo mật - Các kỹ
thuật khai thác lỗi tổng quát:.......................................................................60
2.2.2.1 Các lỗi về lập trình:.................................................................61
2.2.2.2 Các lỗi liên quan đến kết nối mạng: .......................................75
2.2.2.3 Kỹ thuật mã hóa (Cryptology): ...............................................86
2.2.3 Các biện pháp khắc phục: ..............................................................89
2.3 Những vấn đề cần giải quyết: ...............................................................98
3
XÂY DỰNG CHƯƠNG TRÌNH TỔNG QUÁT PHÁT HIỆN LỖ HỔNG
BẢO MẬT TRÊN HỆ ĐIỀU HÀNH WINDOWS DÒNG NT 32-BIT .............101
3.1 Cơ sở lý thuyết của chương trình:........................................................101
3.1.1 Các kỹ thuật phát hiện các lỗi bảo mật của hệ thống: .................101
3.1.1.1 Từ điển lỗi bảo mật (Vulnerabilities Dictionary): ................101
3.1.1.2 Mã chứng minh lỗi (Proof-of-concept Code):.......................104
3.1.2 Các kỹ thuật phân tích lỗi tiềm năng của hệ thống:.....................106
3.2

Các chức năng của chương trình: ........................................................112

3.3 Thiết kế và hiện thực chương trình: ....................................................114
3.3.1 Hoạt động của chương trình: ........................................................114
3.3.1.1 Phát hiện các lỗi bảo mật trên hệ thống: ..............................114
3.3.1.2 Phân tích các lỗi tiềm năng của hệ thống: ............................115
3.3.2 Tổ chức dữ liệu: ...........................................................................116
3.3.2.1 Dữ liệu cho hoạt động phát hiện các lỗi bảo mật trên

hệ thống: 116
3.3.2.2 Dữ liệu cho hoạt động phân tích các lỗi tiềm năng trên
hệ thống: 117
3.3.3 Hiện thực:.....................................................................................118
4
ĐÁNH GIÁ – KẾT LUẬN ......................................................................122
4.1

Khả năng phát triển:............................................................................122

4.2 Đánh giá: .............................................................................................123
DANH MỤC TÀI LIỆU THAM KHẢO............................................................126
PHỤ LỤC THAM KHẢO..................................................................................128

--------------------------------------------------------------------------------------Lê Bích Phương

iv


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

DANH MỤC HÌNH
Hình 2-1: Mô hình hệ thống về bảo mật ....................................................................... 10
Hình 2-2: Tóm tắt các thuật ngữ về lỗi ......................................................................... 12
Hình 2-3: Kiến trúc của Windows 2000 ........................................................................ 13
Hình 2-4: Quan hệ "cha-con" giữa các System Process ................................................ 16
Hình 2-5: Sơ đồ bố trí bộ nhớ ảo của OS/2 subsystem .................................................. 20
Hình 2-6: Kiến trúc mức đơn giản của Windows 2000 ................................................. 20
Hình 2-7: Các thành phần bảo mật của Windows 2000, mối quan hệ giữa các

thành phần và cơ sở dữ liệu chúng quản lý ................................................................... 32
Hình 2-8: Liên lạc giữa SRM và Lsass (sau khi hệ thống khởi tạo) ............................. 33
Hình 2-9: Access Tokens .............................................................................................. 34
Hình 2-10: Ví dụ về cơ chế kiểm tra truy xuất ............................................................. 41
Hình 2-11: Input và Output của mô hình bảo mật SRM ................................................ 42
Hình 2-12: DACL của một đối tượng file ...................................................................... 44
Hình 2-13: Quá trình thực hiện ghi nhận các kiểm toán bảo mật ................................ 45
Hình 2-14: Cấu trúc bảo mật của Process và Thread ................................................... 46
Hình 2-15: Các thành phần tham gia vào quá trình đăng nhập ..................................... 49
Hình 2-16: Hai giai đoạn của MSV1_0 ........................................................................ 53
Hình 2-17: Giao tiếp giữa người dùng và Kerberos Server .......................................... 55
Hình 2-18: Giao tiếp giữa người dùng và Ticket Granting Server ................................ 56
Hình 2-19: Cấu trúc vùng nhớ của Process.................................................................... 62
Hình 2-20: Hiện tượng tràn bộ đệm .............................................................................. 63
Hình 2-21: Tấn công tràn bộ đệm trên Stack: ghi đè lên vùng địa chỉ trả về ............... 64
Hình 2-22: Tấn công tràn bộ đệm trên Stack: chèn ký tự NULL .................................. 65
Hình 2-23: Header của Block ở trạng thái busy ............................................................ 66
Hình 2-24: Header của Block ở trạng thái free ............................................................. 66
Hình 2-25: Danh sách liên kết đôi Freelist.................................................................... 67
Hình 2-26: Danh sách liên kết đơn Lookaside .............................................................. 68
Hình 2-27: Quản lý các Block free................................................................................ 68
Hình 2-28: Cấp phát một Block trong danh sách Lookaside ......................................... 69
Hình 2-29: Stack Frame của hàm .................................................................................. 71
Hình 2-30: Mô hình OSI ............................................................................................... 75
Hình 2-31:Phân mảnh dữ liệu tại lớp Network ............................................................. 76
Hình 2-32: Quá trình bắt tay 3 bước tạo kết nối sử dụng cờ SYN và ACK ................... 77
Hình 2-33: Giao thức ánh xạ giữa địa chỉ IP và địa chỉ MAC ...................................... 77
Hình 2-34: Nghe trộm Sniffing trên mạng .................................................................... 79
Hình 2-35: Nghe trộm Hijacking trên mạng ................................................................. 81
Hình 2-36: Tấn công theo kiểu Amplification (một kiểu của DoS) .............................. 82

Hình 2-37: Xác định tình trạng port trên máy victim .................................................... 85

--------------------------------------------------------------------------------------Lê Bích Phương

v


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

Hình 2-38: Nguyên tắc mã hóa dữ liệu ......................................................................... 86
Hình 3-1: Hoạt động phát hiện lỗi dựa vào từ điển lỗi ................................................ 104
Hình 3-2:Hoạt động phát hiện lỗi dựa vào mã chứng minh lỗi .................................... 106
Hình 3-3: Sơ đồ khối hoạt động phát hiện lỗi bảo mật dựa vào từ điển lỗi ................. 115
Hình 3-4: Sơ đồ khối hoạt động phân tích lỗi bảo mật tiềm năng ............................... 116

--------------------------------------------------------------------------------------Lê Bích Phương

vi


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

DANH MỤC BẢNG BIỂU
Bảng 2.1: Các tập tin hệ thống của nhân Windows 2000 ................................................21
Bảng 2.2: Các tổ chức, các hội bảo mật ..........................................................................96
Bảng 2.3: Những công việc đã và chưa giải quyết trong luận văn ..................................99
Bảng 3.1: Các lớp chính hiện thực chương trình............................................................ 118


--------------------------------------------------------------------------------------Lê Bích Phương
vii


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

DANH MỤC CÁC CHỮ VIẾT TẮT
Từ viết tắt

Từ đầy đủ

ACE

Access-Control Entry

ACL

Access-Control List

AI

Artificial Intelligent

ARP

Address Resolution Protocol

DACL


Discretionary Access-Control List

DDK

Driver Development Kit

DDoS

Distributed DoS

DoS

Denial of Service

EFS

Encrypted File System

GDI

Graphics Device Interface

GINA

Graphical Identification and Authentication

GOT

Global Offset Table


HAL

Hardware Abstraction Layer

ICMP

Internet Control Message Protocol

IFS

Installable File System

IP

Internet Protocol

KSecDD

Kernel Security Device Driver

LDT

Local Descriptor Table

LPC

Local Procedure Call

Lsass


Local security authority subsystem

MAC

Media Access Control

NIST

Institute of Standards and Technology

PAE

Physical Address Extension

PLT

Procedure Linkage Table

RPC

Remote Procedure Call

SACL

System access-control list

SAM

Security Accounts Manager


SAS

Secure Attention Sequence

SCM

Service Control Manager

--------------------------------------------------------------------------------------Lê Bích Phương
viii


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

SID

Security Identifier

SP

Service Pack

SRM

Security Reference Monitor

SSL

Secure Socket Layer


TCP

Transport Control Protocol

UDP

User Datagram Protocol

WDM

Windows Driver Model

WMI

Management Instrumentation

--------------------------------------------------------------------------------------Lê Bích Phương

ix


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

TÓM TẮT LUẬN VĂN
Bảo mật thông tin là nhu cầu vô cùng quan trọng của hầu hết mọi lónh vực, bao
gồm: kinh tế thương mại, an ninh quốc phòng, xã hội,… Bảo mật thông tin là một
khái niệm khá rộng liên quan đến nhiều cơ chế và các tầng bảo vệ khác nhau, từ
các cơ chế vật lý cho đến các giải pháp kỹ thuật. Ở đây chúng ta chỉ xét đến các

khía cạnh kỹ thuật trong bảo mật thông tin.
Hơn thế nữa, không có một phần mềm nào nói riêng hay một hệ thống nào nói
chung là hoàn hảo. Bất kỳ một hệ thống nào dù hoàn thiện đến đâu thì vẫn tồn
tại những lỗ hổng bảo mật (dưới đây gọi là lỗ hổng, lỗi bảo mật hay lỗi) nhất
định. Tính chất có thể bị tấn công hay các lỗ hổng bảo mật chắc chắn luôn tồn tại
trong các hệ thống phần mềm lớn và phức tạp vì các phương pháp, kỹ thuật và
công cụ xây dựng phần mềm hiện nay chưa thể loạt bỏ được tất cả các lỗi trong
phần mềm. Như chúng ta đã biết, hệ điều hành có vai trò đặc biệt quan trọng
trong hệ thống máy tính, mặc dù đã được trang bị nhiều cơ chế và phương tiện
bảo vệ (như cơ chế chứng thực, điều khiển truy xuất,…) nhưng hệ điều hành cũng
vẫn là phần mềm có thể bị tấn công về bảo mật.
Xuất phát từ các vấn đề nêu trên, chúng ta nhận thấy sự cần thiết và lợi ích của
một chương trình giúp hệ thống phát hiện ra các lỗ hổng bảo mật và dự đoán các
lỗi bảo mật tiềm năng có thể xảy ra trên hệ thống. Hiện nay đã có nhiều phần
mềm thực hiện chức năng như vậy nhưng còn nhiều hạn chế1. Cho nên một phần
mềm có khả năng tích hợp nhiều chức năng như: phát hiện các lỗ hổng hiện có
của hệ thống bao gồm các lỗi trên bản thân hệ điều hành và lỗi trên các chương
trình ứng dụng, các dịch vụ chạy trên hệ điều hành đó, phân tích tình trạng bảo

1

Tham khảo mục 1.2

--------------------------------------------------------------------------------------Lê Bích Phương

x


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------


mật của hệ thống để đưa ra các cảnh báo về nguy cơ bảo mật để phòng tránh,
đưa ra các thông tin mô tả lỗi, đồng thời cung cấp các giải pháp khắc phục
chúng.
Nội dung của luận văn sẽ thực hiện nghiên cứu và khảo sát tương đối toàn diện
các vấn đề về bảo mật như: nguyên nhân chi tiết của các lỗ hổng bảo mật, các
kỹ thuật phát hiện các lỗ hổng này, các phương pháp phân tích lỗi tiềm năng trên
hệ thống, cách thức khắc phục các lỗ hổng bảo mật. Từ đó, xây dựng một chương
trình phát hiện các lỗ hổng bảo mật ở mức tổng quát khắc phục được những hạn
chế của các chương trình hiện có, đồng thời thực hiện phân tích các lỗi tiềm năng
có thể phát sinh nhằm hỗ trợ cho người sử dụng, người quản trị hệ thống và phần
nào giải quyết được các vấn đề nêu trên.

--------------------------------------------------------------------------------------Lê Bích Phương

xi


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

Chương 1

1. MỞ ĐẦU
1.1.
Sự cần thiết của chương trình phát hiện lỗ hổng bảo
mật:
Như chúng ta đã biết, không có một sản phẩm phần mềm nào là hoàn hảo, không
có lỗi. Mặc dù quy trình thiết kế xây dựng phần mềm rất chặt chẽ, nhưng các
nhà sản xuất không thể nào dự đoán hết tất cả những lỗi phát sinh trong quá trình

hoạt động thực tế của sản phẩm của mình.
Để bảo vệ an toàn và duy trì hoạt động bình thường của hệ thống trước những
nguy cơ tấn công vì mục đích tốt và cả mục đích xấu là vấn đề nan giải và được
quan tâm hàng đầu của các đơn vị sử dụng hệ thống.
Đứng trước tình hình số lượng lỗ hổng bảo mật được công bố ngày càng nhiều và
các vấn đề nêu trên, chúng ta thấy rõ sự cần thiết và vai trò hỗ trợ cho hoạt động
các hệ thống của những chương trình phát hiện các lỗ hổng bảo mật.
Các chương trình phát hiện lỗ hổng bảo mật được đánh giá cao nếu chương trình
có khả năng quét được hầu hết các lỗ hổng bảo mật, phân tích mô tả chi tiết lỗi,
cung cấp cho người quản trị những thông tin cần thiết về các lỗi và những giải
pháp khắc phục, hỗ trợ thêm các chức năng phân tích lỗi tiềm năng có thể phát
sinh để cảnh báo trước cho người quản trị hệ thống. Chương trình này sẽ rất cần
thiết và hữu ích cho các hệ thống, góp phần giúp đỡ cho người sử dụng, người
quản trị hệ thống trong việc bảo vệ và đảm bảo an toàn trong hoạt động của hệ
thống.

--------------------------------------------------------------------------------------Lê Bích Phương

1


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

1.2.

Các chương trình phát hiện lỗ hổng hiện nay:

Hiện nay đã có nhiều phần mềm thực hiện chức năng quét các lỗ hổng bảo mật,
nhưng các chương trình này có những đặc điểm sau đây:

- Thường chỉ phát hiện một loại lỗi bảo mật.
- Thường để sót nhiều lỗi bảo mật.
- Chỉ quét các lỗi bảo mật đã được công bố, chưa có khả năng phát hiện ra các
lỗi bảo mật chưa có đặc tính nhận dạng, chưa có bản vá lỗi.
- Cơ sở dữ liệu lưu trữ lỗi không cho người sử dụng tương tác cập nhật trực tiếp
nên chưa đáp ứng được tính chất đa dạng, luôn phát sinh mới của lónh vực bảo
mật.
- Không có chức năng phân tích các lỗi tiềm năng, dự đoán các lỗ hổng có thể
phát sinh để cảnh báo trước.
- Chưa tích hợp thành một hệ thống hoàn chỉnh thống nhất nên người sử dụng
không am hiểu về bảo mật sẽ thấy không thuận lợi, cụ thể: không mô tả chi tiết
về lỗi, không cung cấp sẵn bản vá lỗi,…
- Chỉ phát hiện các lỗi bảo mật của hệ điều hành, không thực hiện quét các lỗi
bảo mật của các chương trình ứng dụng và các chương trình dịch vụ.

1.3.

Mục tiêu và phạm vi của đề tài:

Theo thông báo thường niên về các mối nguy an ninh trong hệ thống máy tính
của Công ty An ninh máy tính Symantec, có trụ sở tại Los Angeles (Hoa Kỳ) thì
có khoảng 1862 lỗ hổng mới được thông báo trong khoảng thời gian từ đầu tháng
1 đến 30/6/2005. Các lỗ hổng nguy cơ này gia tăng 31% từ nửa sau năm ngoái và

--------------------------------------------------------------------------------------Lê Bích Phương

2


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng

----------------------------------------------------------------------------------------------------------

vọt lên 46%. Xu hướng này đang thực sự làm nhiều người lo ngại. Các lỗ hổng
này chính là mục tiêu của các cuộc tấn công làm phá hại hệ thống máy tính.
Hiện nay đã có nhiều nghiên cứu về nguyên nhân của các lỗ hổng cũng như đã
có nhiều các bản vá lỗi để ngăn chặn các kiểu tấn công vào hệ thống máy tính.
Tuy nhiên, các giải pháp này đều mang tính chất “bị động”, nghóa là giải pháp
ra đời sau khi đã có hệ thống bị tấn công. Hầu hết các giải pháp đều có tính chất
đặc thù, chỉ giải quyết được một loại lỗ hổng nào đó. Hiện nay vẫn chưa có một
phương pháp tổng quát nào, chưa có một công cụ tích hợp hoàn chỉnh nào để
phát hiện, khắc phục các lỗ hổng bảo mật và phân tích các lỗi tiềm năng cho hệ
thống máy tính.
Hiện nay, Việt Nam đã có những bước khởi động cho lónh vực nghiên cứu về bảo
mật, đã bắt đầu triển khai các hệ thống thông tin quốc gia với tầm quan trọng ở
nhiều cấp độ khác nhau. Tuy nhiên, vấn đề bảo mật vẫn chưa được quan tâm
đúng mức, chưa đáp ứng được yêu cầu đặt ra, chưa có các kết quả nghiên cứu
hoàn thiện để có thể tạo ra các sản phẩm bảo mật của riêng mình cụ thể là vẫn
chưa có một khảo sát toàn diện và đầy đủ nào về các lỗ hổng bảo mật. Hơn nữa,
hiện nay vẫn chưa có một sự phân tích sâu sắc về các vấn đề bảo mật để giúp
các nhà quản trị nắm vững cấu trúc lỗi mà lỗi là vấn đề cốt yếu trong bảo mật.
Cho nên hiện nay, các chức năng bảo mật trong các hệ thống máy tính ở nước ta
hầu hết sử dụng các giải pháp của các hãng máy tính nước ngoài. Điều này thực
chất không đảm bảo được sự an toàn cho thông tin, cho hệ thống.
Vì vậy, mục đích của đề tài này là khảo sát kiến trúc của hệ thống, nghiên cứu
một cách toàn diện nguyên nhân chi tiết của các lỗ hổng, các phương pháp tấn
công và phòng thủ, các biện pháp khắc phục hiện có trên các hệ điều hành (cụ
thể trên hệ điều hành Windows nền NT 32-bit), xây dựng chương trình phát hiện

--------------------------------------------------------------------------------------Lê Bích Phương


3


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

lỗ hổng bảo mật ở mức tổng quát và phân tích các lỗi tiềm năng có thể phát sinh
trong hệ thống. Từ đó, đề xuất các cảnh báo an ninh và phương pháp khắc phục
các lỗ hổng bảo mật nhằm mục đích hỗ trợ cho người sử dụng, người quản trị hệ
thống duy trì hoạt động ổn định và an toàn cho hệ thống.

1.4.

Các nghiên cứu có liên quan:

Tài liệu 800-43 do The National Institute of Standards and Technology (NIST)
[1] xây dựng, viết về Hướng dẫn quản trị hệ thống về bảo mật trong Windows
2000 Professional. Tài liệu này cung cấp những khuyến cáo, những hướng dẫn
để giúp người quản trị hệ thống hiện thực, cài đặt và kiểm tra việc bảo mật trên
Windows 2000 Professional. Tài liệu còn cung cấp những template bảo mật để
có thể gắn kết nhanh chóng vào Windows 2000 Professional, sử dụng bộ công cụ
cấu hình bảo mật hoặc công cụ Secedit (dùng dòng lệnh) để phân tích, cấu hình,
xuất thông tin và kiểm tra việc cấu hình bảo mật trên Windows 2000
Professional. Các template bảo mật cho phép hiệu chỉnh các chính sách về mật
khẩu (password), tài khoản, quyền người sử dụng, lựa chọn bảo mật hệ thống,
lưu vết các sự kiện, cài đặt dịch vụ hệ thống, quyền truy xuất file…
Tài liệu này còn đưa ra những khuyến cáo cho việc cấu hình và kiểm tra các ứng
dụng của Windows như: e-mail client, trình duyệt Web, các chương trình quét
virus.
Như vậy mục tiêu chính của tài liệu này là cung cấp những lời khuyến cáo và

những hướng dẫn thực tế cho việc cài đặt, cấu hình và kiểm tra về bảo mật cho
hệ thống Windows 2000 Professional và các ứng dụng phổ biến trên đó nhằm
đơn giản hóa việc quản trị và cải tiến bảo mật trên hệ thống này.

--------------------------------------------------------------------------------------Lê Bích Phương

4


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

Phạm vi của nghiên cứu này:
-

Chỉ hướng dẫn cấu hình bảo mật cho một số ứng dụng phổ biến, chứ
không phải tất cả các ứng dụng.

-

Chưa thể tự phát hiện được các lỗ hổng.

-

Chỉ hướng dẫn cấu hình trong hệ thống Windows 2000 Professional
workstations, Windows 2000 Professional mobile computers, và các máy
tính liên lạc với nhau sử dụng Windows 2000 Professional trong môi
trường có quản lý.

-


Chưa hệ thống hóa được các lọai lỗ hổng.

Tài liệu “Hack Proofing your network” [2] trình bày các nguyên tắc và các kỹ
thuật mà các hackers dùng để tấn công vào các lỗ hổng của hệ thống. Các kỹ
thuật cụ thể: write buffer overflows, packet sniffing,… Tài liệu cung cấp các
nghiên cứu về chính sách, phân loại và các phương pháp tấn công vào hệ thống,
hướng dẫn các kỹ thuật tấn công vào hệ thống cục bộ (bao gồm các kỹ thuật:
diffing, decrypting, unexpected input, buffer overflows), tấn công vào hệ thống
từ xa (bao gồm các kỹ thuật: traffic monitoring, hijacking, spoofing, server
holes, client holes, trojans and viruses). Tài liệu cũng hướng dẫn các cách tấn
công, các cách phòng thủ và các công cụ hỗ trợ cho các kỹ thuật tấn công.
Phạm vi của nghiên cứu này:
-

Chỉ cung cấp các kỹ thuật rời rạc, chưa có được phương pháp khắc phục lỗ
hổng bảo mật cho các hệ điều hành ở mức hệ thống, tổng quát.

-

Chưa xây dựng được cách thức tự phát hiện các lỗ hổng.

-

Phân tích nguyên nhân của các lỗ hổng chưa sâu, chưa cụ thể.

--------------------------------------------------------------------------------------Lê Bích Phương

5



Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

Tài liệu “Hacking Exposed: Network Security Secrets & Solutions” [3] trình bày
các cách tấn công vào các hệ thống Windows 9x/ME, Windows NT, Windows
2000, Novell NetWare, UNIX. Tài liệu cũng hướng dẫn cách tấn công vào các
phần mềm: Web, Internet; tấn công từ xa qua kết nối mạng.… Tài liệu cung cấp
những thông tin qúy báu cho người đọc, giúp người đọc hiểu biết về các lỗ hổng
bảo mật trên hệ thống, cách thức hoạt động của chúng. Trên cơ sở này, người
quản trị sẽ có thêm kiến thức về hệ thống và tìm cách bảo vệ hệ thống tránh
khỏi các nguy cơ bị tấn công.
Phạm vi của tài liệu này:
-

Chủ yếu trình bày về các cách tấn công.

-

Chưa thể hiện rõ nguyên nhân của các lỗ hổng, cũng như chưa khảo sát
các lỗ hổng ở mức hệ thống.

-

Chưa xây dựng được cách thức tự phát hiện các lỗ hổng.

Giáo trình “Bảo mật thông tin – Mô hình và ứng dụng” [4] trình bày một cách
khái quát về những vấn đề bảo mật thông tin hiện nay, từ mô hình đến ứng dụng.
Bảo mật thông tin là một khái niệm rộng liên quan đến nhiều cơ chế và các tầng
bảo vệ khác nhau, nhưng xét về mặt kỹ thuật thì các vấn đề này đều có liên

quan đến mật mã học. Tài liệu có nghiên cứu đến các hệ mã đối xứng và các
chuẩn mã hóa dữ liệu, các hệ mật mã khóa công khai, các nghiên cứu này là nền
tảng để xây dựng các giải pháp bảo mật thông tin. Chứng thực người dùng là một
quá trình quan trọng, là một biện pháp kiểm sóat việc đăng nhập và sử dụng tài
nguyên trên hệ thống. Tài liệu cũng trình bày các phương pháp chứng thực người
dùng, bao gồm: chứng thực, kênh truyền quy ước, chứng thực có trọng tài, chữ ký
số, các phương pháp nén, quản lý và chứng thực mật khẩu… Tài liệu đã đưa ra
ứng dụng bảo mật trong mạng máy tính, trình bày các nguyên lý về bảo mật trên

--------------------------------------------------------------------------------------Lê Bích Phương

6


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

mạng và các chức năng của một máy phục vụ bảo mật và chứng thực người
dùng.
Phạm vi của tài liệu: Tài liệu đã cung cấp cho người đọc cái nhìn tổng quan và
chính xác về khía cạnh bảo mật thông tin, cung cấp những kiến thức nền tảng để
trang bị tính bảo mật cho các hệ thống, đề xuất các chiến lược bảo mật cho hệ
thống cũng như cảnh báo về việc sử dụng các công cụ bảo mật trong các hệ
thống máy tính hiện nay.
Tài liệu là cơ sở lý thuyết cho đề tài nghiên cứu này, trang bị kiến thức để tìm
hiểu chuyên sâu về các lỗ hổng bảo mật, xây dựng các phương pháp phòng thủ
bảo mật cho hệ thống.
Tài liệu ”Microsoft Windows Security Inside Out” [5] trang bị cho người đọc các
kỹ năng giúp bảo vệ hệ thống của mình trước các nguy cơ bị tấn công. Tài liệu
trình bày cách thức hoạt động của các lỗ hổng trên hệ thống Windows XP,

Windows 2000 Professional, đồng thời nêu lên những tác hại của các lỗ hổng đó
và hướng dẫn người đọc các kỹ thuật bịt các lỗ hổng đó. Các lỗ hổng được trình
bày khái quát từ máy tính sử dụng riêng lẻ, đến hệ thống kết nối mạng máy tính.
Phạm vi của nghiên cứu này:
-

Chưa nêu ra nguyên nhân của các lỗ hổng.

-

Chưa hệ thống hóa được các lọai lỗ hổng.

-

Chưa xây dựng được cách thức tự phát hiện các lỗ hổng.

-

Biện pháp phòng chống chủ yếu dựa vào các sản phẩm của hệ thống nên
chưa hẳn được tin cậy hòan tòan.

Dựa trên cơ sở kế thừa và phát triển thêm phạm vi của các nghiên cứu, đề tài
cao học này thực hiện khảo sát một cách có hệ thống nguyên nhân chi tiết của
các lỗ hổng bảo mật, các phương pháp tấn công và phòng thủ hiện có trên các hệ

--------------------------------------------------------------------------------------Lê Bích Phương

7



Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

điều hành (cụ thể trên hệ điều hành Windows NT 32-bit). Từ đó xây dựng
chương trình phát hiện các lỗ hổng bảo mật của hệ điều hành và của các chương
trình ứng dụng chạy trên hệ điều hành. Đồng thời, chương trình còn có khả năng
phân tích tình trạng bảo mật của hệ thống để đưa ra các lỗi tiềm năng có thể xảy
ra. Thêm vào đó, chương trình còn có khả năng cung cấp giải pháp khắc phục
các lỗi bảo mật hiện có và các lỗi tiềm năng để có thể hỗ trợ cho người quản trị
hệ thống và cả người mới sử dụng máy tính.

--------------------------------------------------------------------------------------Lê Bích Phương

8


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

Chương 2

2. CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI
2.1 Tổng quan về bảo mật trên các hệ điều hành:
2.1.1 Các khái niệm về bảo mật2:
- Security (bảo mật): khái niệm này nói đến khả năng của hệ thống về việc ngăn
chặn truy xuất hoặc xử lý thông tin trái phép vào hệ thống, về chống lại các
tương tác không hợp pháp hoặc chống lại các cuộc tấn công vào dữ liệu, phần
cứng, phần mềm của hệ thống. Security bao gồm ba khía cạnh: tính bảo mật
(ngăn chặn việc để lộ thông tin cho người dùng không hợp pháp), tính toàn vẹn
(ngăn chặn hành động chỉnh sửa hoặc xóa của người dùng không hợp pháp) và

tính sẵn sàng (xác suất để hệ thống sẵn sàng cung cấp thông tin cho người dùng
hợp pháp).
- Hotfix (nhận dạng lỗi): là một gói chứa một hoặc một số tập tin dùng để xác
định một vấn đề nào đó (có thể là lỗi) trong một sản phẩm công nghệ thông tin,
hotfix có thể là gói đơn hoặc gói được tích lũy nếu các lỗi có liên quan với nhau.
- Patch (bản vá lỗi): là một bản cập nhật phần mềm dùng để sửa chữa các vấn
đề nào đó trong hoạt động máy tính, vấn đề này có thể là sửa các lỗi, thay đổi
giao diện hoặc cải tiến hiệu suất hoạt động.
- Service pack – SP (gói dịch vụ): là một phần mềm dùng để điều chỉnh lại cho
đúng các lỗi đã được phát hiện hoặc là bổ sung thêm các tính năng mới cho một
chương trình. SP của một ứng dụng được gán vào và hiệu chỉnh ứng dụng đó sau
khi ứng dụng đã được cài đặt. SP của ứng dụng thường do chính các nhà viết ứng
dụng cung cấp. SP dễ cài đặt hơn tập bản patch.
2

Các khái niệm được nghiên cứu từ các tài liệu tham khảo và từ Internet

--------------------------------------------------------------------------------------Lê Bích Phương

9


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

Hình 2-1: Mô hình hệ thống về bảo mật (Nguồn: tài liệu tham khảo [7])

- Exploit: là một thuật ngữ chung trong cộng đồng bảo mật máy tính dùng để chỉ
một đoạn phần mềm có mục đích nhằm vào một lỗi, một sự cố nhỏ hoặc một tính
chất có thể bị tấn công (vulnerability) để tìm cách mở rộng quyền lực hoặc thực

hiện tấn công theo kiểu từ chối dịch vụ trên một hệ thống máy tính.
- Threat (sự đe dọa): là một hệ thống con môi trường (environment subsystem3)
có thể mở đầu cho một Fault trong hệ thống. Khái niệm threat thường liên quan
đến các Fault có chủ ý và liên quan đến vấn đề bảo mật.
- Vulnerability (tính chất có thể bị tấn công): là một nơi có thể mở đầu cho một
Fault, là nơi có xác suất xảy ra Fault vượt quá một giá trị ngưỡng được định
nghóa trước. Vulnerability có thể có trong đoạn mã chương trình, trong sự cấu
hình, trong thiết kế của hệ thống. Không có hệ thống nào là hoàn hảo, cho nên
bất kỳ một hệ thống nào cũng có tính chất có thể bị tấn công ở một mức độ nào
đó.

3

Tham khảo mục 2.1.2.1

--------------------------------------------------------------------------------------Lê Bích Phương
10


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

- Vulnerable state (trạng thái có thể bị tấn công): là hệ thống có vulnerability,
đây là hệ thống hợp pháp nhưng từ đây có thể chuyển sang hệ thống không hợp
pháp. Vulnerability là nguyên nhân chính để hệ thống là vulnerable state.
- Fault (lỗi): là một sự kiện dẫn đến một error hay một vulnerability trong hệ
thống. Fault là nguyên nhân chính để một error xảy ra. Fault được xem là một
hiện tượng nguyên tử trong hệ thống, có tính chất nhất thời, không cố định.
External Fault: là Fault có liên quan đến threat, nguồn gốc của External Fault là
bên ngoài hệ thống, có chủ ý của con người. Internal Fault: là Fault tự sinh ra từ

một nơi nào đó bên trong hệ thống, không liên quan trực tiếp đến threat.
- Breach (lỗi bảo mật): là kết quả của một sự vi phạm chính sách bảo mật của hệ
thống. Breach là một external fault, do hành động có chủ ý của con người gây ra.
- Attack (sự tấn công): là một hành động có chủ ý của con người nhằm gây ra
một breach hoặc làm tổn hại đến hệ thống. Nếu hệ thống là vulnerable state thì
một attack có thể sẽ thành công và gây ra một breach.
- Intrusion (sự xâm nhập): là một attack và một breach tương ứng của nó.
- Error (tình trạng mắc lỗi): là một trạng thái của hệ thống có thể dẫn đến tình
trạng hệ thống bị hư hỏng. Error là kết quả của một breach.
- Failure (sự hư hỏng): là một sự kiện làm xuất hiện sự sai lệch trong hoạt động
của hệ thống. Failure là kết quả của một error. Có hai loại Failure: Failure vi
phạm các thuộc tính bảo mật của đối tượng trong hệ thống gọi là confidentiality
failure; Failure vi phạm các thuộc tính sẵn có của đối tượng hệ thống gọi là
reliability failure.
- Failed state (trạng thái hư hỏng): là một hệ thống xuất hiện sự sai lệch trong
hoạt động, hệ thống hoạt động không theo đặc tả ban đầu. Một Failure sẽ

--------------------------------------------------------------------------------------Lê Bích Phương
11


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

chuyển hệ thống từ trạng thái đúng (correct state) sang trạng thái hư hỏng (failed
state).

Hình 2-2: Tóm tắt các thuật ngữ về lỗi (Nguồn: tài liệu tham khảo [7])

--------------------------------------------------------------------------------------Lê Bích Phương

12


Xây dựng chương trình phát hiện và phân tích lỗi bảo mật tiềm năng
----------------------------------------------------------------------------------------------------------

2.1.2 Kiến trúc hệ thống của Windows 2000:

Hình 2-3: Kiến trúc của Windows 2000 (Nguồn: tài liệu tham khảo [6])

* User-mode và Kernel-mode: Windows 2000 cung cấp hai trạng thái truy xuất
vào hệ thống nhằm mục đích ngăn cản các chương trình ứng dụng của người sử
dụng truy xuất hoặc hiệu chỉnh các dữ liệu quan trọng của hệ điều hành, hai
trạng thái đó là: user-mode và kernel-mode. Các chương trình ứng dụng của
người sử dụng hoạt động ở user-mode; các chương trình của hệ điều hành như
các dịch vụ hệ thống, trình điều khiển thiết bị chạy ở kernel-mode. Trong trạng
thái kernel-mode, các chương trình có quyền truy xuất vào bộ nhớ của hệ thống,
vào tất cả các lệnh của CPU mà không phải đi qua bất kỳ cơ chế kiểm tra bảo
mật nào. Do đó, khi xây dựng các chương trình chạy ở kernel-mode, chúng ta
phải chú ý đến giai đoạn thiết kế và kiểm thử để hạn chế đến mức tối đa nhằm

--------------------------------------------------------------------------------------Lê Bích Phương
13


×