Người soạn: ThS Nguyễn Công Nhật
i
MỤC LỤC
DANH MỤC CÁC HÌNH VẼ v
DANH MỤC CÁC BẢNG v
MỞ ĐẦU vi
CHƯƠNG I. TỔNG QUAN VỀ AN TOÀN THÔNG TIN 1
1.1. Mở đầu về an toàn thông tin 1
1.2. Nguy cơ và hiểm họa đối với hệ thống thông tin 3
1.3. Phân loại tấn công phá hoại an toàn thông tin 5
1.3.1. Tấn công vào máy chủ hoặc máy trạm độc lập 5
1.3.2. Tấn công bằng cách phá mật khẩu 6
1.3.3. Virus, sâu mạng và trojan horse 7
1.3.4. Tấn công bộ đệm (buffer attack) 8
1.3.5. Tấn công từ chối dịch vụ 9
1.3.6. Tấn công định tuyến nguồn (source routing attack) 10
1.3.7. Tấn công giả mạo 11
1.3.8. Tấn công sử dụng e-mail 11
1.3.9. Tấn công quét cổng 12
1.3.10. Tấn công không dây 15
1.4. Vai trò của hệ điều hành trong việc đảm bảo an toàn thông tin 15
1.4. Tính cần thiết của an toàn thông tin 18
1.4.1. Bảo vệ thông tin và tài nguyên 19
1.4.2. Bảo đảm tính riêng tư 20
1.4.3. Kích thích luồng công việc 21
1.4.4. Phát hiện các lỗ hổng an toàn và gỡ rối phần mềm 21
1.4.5. Tổn thất vì lỗi hay sự bất cẩn của con người 23
1.5. Chi phí để đảm bảo an toàn 25
CHƯƠNG II: CÁC PHẦN MỀM PHÁ HOẠI 27
2.1. Phân loại các phần mềm phá hoại 27
2.1.1. Virus 27
3.2.1. Mã Ceasar 84
3.2.2. Các mã bảng chữ đơn 85
3.2.3. Mã Playfair 88
3.2.4. Mã Vigenere 90
3.2.5. Mã Rail Fence 92
3.2.6. Mã dịch chuyển dòng 92
3.3. Mã khối hiện đại 93
3.3.1. Phân biệt mã khối với mã dòng 93
3.3.2. Claude Shannon và mã phép thế hoán vị 94
3.3.3. Cấu trúc mã Fiestel 95
3.4. Chuẩn mã dữ liệu (DES) 97
3.4.1. Lịch sử DES: 97
3.4.2. Sơ đồ mã DES 98
3.4.3. Tính chất của DES 101
3.4.4. Các kiểu thao tác của DES 105
3.5. Chuẩn mã nâng cao (AES) 111
3.5.1. Nguồn gốc 111
3.5.2. Tiêu chuẩn triển khai của AES 112
3.5.3. Chuẩn mã nâng cao AES – Rijndael 113
3.6. Các mã đối xứng đương thời 122
3.6.1. Triple DES 122
3.6.2. Blowfish 124
3.6.3. RC4 125
3.6.5. RC5 127
3.6.6 Các đặc trưng của mã khối và mã dòng 128
CHƯƠNG V: AN TOÀN MẠNG KHÔNG DÂY 176
5.1. Giới thiệu về an toàn mạng không dây 176
5.1.1. Các tấn công đối với mạng không dây 176
5.1.2. Các công nghệ sóng vô tuyến 182
5.2. Giới thiệu về IEEE 802.11 183
Hình 5.3: Khuôn dạng gói dữ liệu WEP 199
Hình 5.4: Quá trình đóng gói dữ liệu WEP 200
Hình 5-5: Cởi gói dữ liệu WEP 200
DANH MỤC CÁC BẢNG
Bảng 2-1: Những xuất phát điểm của các phần mềm phá hoại 34
Bảng 2-2: Một số phần mềm quét virus 52
v
MỞ ĐẦU
Giáo trình an toàn thông tin được xây dựng nhằm cung cấp cho người
đọc những kiến thức cơ bản về an toàn thông tin, khai thác sử dụng các
dịch vụ an toàn trong hệ thống thông tin, sử dụng các ứng dụng cài đặt trên
các hệ điều hành nhằm đảm bảo tính an toàn của hệ thống.
Nội dung của giáo trình bao gồm:
Chương 1: Khái niệm về an toàn hệ điều hành
Chương này sẽ trình bày các vấn đề: Hệ điều hành và an toàn hệ điều
hành, tính cần thiết của an toàn hệ điều hành, các tấn công đối với hệ điều
hành, chi phí để thiết lập an toàn cho các hệ điều hành và các mức của an
toàn hệ điều hành.
Chương 2: Các phần mềm phá hoại
Nội dung của chương này bao gồm: Phân loại các phần mềm phá hoại, các
kiểu tấn công của các phần mềm phá hoại và phương pháp bảo vệ hệ điều
hành khỏi các tấn công của các phần mềm phá hoại.
Chương 3: An toàn bằng cách dùng mật mã
Chương này trình bày các vấn đề: các phương pháp mã hoá, các phương
pháp xác thực.
Chương 4: An toàn IP và web
Chương này chúng ta sẽ xét đến cơ chế an toàn IPSec và một số giao thức
bảo mật lớp vận chuyển ứng dụng trên Web.
Chương 5: An toàn mạng không dây
Chương này trình bày các vấn đề tổng quan về an toàn mạng không dây,
- Bảo đảm an toàn thông tin tại máy chủ
- Bảo đảm an toàn cho phía máy trạm
- An toàn thông tin trên đường truyền
Đứng trước yêu cầu an toàn thông tin, ngoài việc xây dựng các
phương thức an toàn thông tin thì người ta đã đưa ra các nguyên tắc về bảo
vệ dữ liệu như sau:
- Nguyên tắc hợp pháp trong lúc thu thập và xử lý dữ liệu.
- Nguyên tắc đúng đắn.
- Nguyên tắc phù hợp với mục đích.
1
- Nguyên tắc cân xứng.
- Nguyên tắc minh bạch.
- Nguyên tắc được cùng quyết định cho từng cá nhân và bảo đảm
quyền truy cập
cho người có liên quan.
- Nguyên tắc không phân biệt đối xử.
- Nguyên tắc an toàn.
- Nguyên tắc có trách niệm trước pháp luật.
- Nguyên tắc giám sát độc lập và hình phạt theo pháp luật.
- Nguyên tắc mức bảo vệ tương ứng trong vận chuyển dữ liệu xuyên
biên giới.
Ở đây chúng ta sẽ tập trung xem xét các nhu cầu an ninh và đề ra các
biện pháp an toàn cũng như vận hành các cơ chế để đạt được các mục tiêu
đó.
Nhu cầu an toàn thông tin:
An toàn thông tin đã thay đổi rất nhiều trong thời gian gần đây.
Trước kia hầu như chỉ có nhu cầu an toàn thông tin, nay đòi hỏi thêm
nhiều yêu cầu mới như an ninh máy chủ và trên mạng.
Các phương pháp truyền thống được cung cấp bởi các cơ chế hành
chính và phương tiện vật lý như nơi lưu trữ bảo vệ các tài liệu quan trọng
quyền, họ có
thể tùy ý
chỉnh sửa hệ thống. Nhưng sau khi hoàn thành công việc họ không chuyển
hệ thống sang chế độ thông thường, vô tình để kẻ xấu lợi dụng.
- Hiểm họa cố ý: như cố tình truy nhập hệ thống trái phép.
- Hiểm họa thụ động: là hiểm họa nhưng chưa hoặc không tác động trực
tiếp lên hệ thống, như nghe trộm các gói tin trên đường truyền.
- Hiểm họa chủ động: là việc sửa đổi thông tin, thay đổi tình trạng hoặc
hoạt động
của hệ thống.
Đối với mỗi hệ thống thông tin mối đe dọa và hậu quả tiềm ẩn là rất lớn,
nó có thể xuất phát từ những nguyên nhân như sau:
- Từ phía người sử dụng: xâm nhập bất hợp pháp, ăn cắp tài sản có giá trị
- Trong kiến trúc hệ thống thông tin: tổ chức hệ thống kỹ thuật không có
cấu trúc hoặc không đủ mạnh để bảo vệ thông tin.
- Ngay trong chính sách an toàn an toàn thông tin: không chấp hành các
chuẩn an toàn, không xác định rõ các quyền trong vận hành hệ thống.
- Thông tin trong hệ thống máy tính cũng sẽ dễ bị xâm nhập nếu không có
công cụ quản lý, kiểm tra và điều khiển hệ thống.
4
- Nguy cơ nằm ngay trong cấu trúc phần cứng của các thiết bị tin học và
trong phần mềm hệ thống và ứng dụng do hãng sản xuất cài sẵn các loại
'rệp' điện tử theo ý đồ định trước, gọi là 'bom điện tử'.
- Nguy hiểm nhất đối với mạng máy tính mở là tin tặc, từ phía bọn tội
phạm.
1.3. Phân loại tấn công phá hoại an toàn thông tin
Các hệ thống trên mạng có thể là đối tượng của nhiều kiểu tấn công.
Có rất nhiều kiểu tấn công vào các máy tính, một số kiểu tấn công nhằm
vào các hệ điều hành, một số lại nhằm vào các mạng máy tính, còn một số
lại nhằm vào cả hai. Dưới đây là một số kiểu tấn công điển hình:
viên mà bất cứ ai cũng có thể sử dụng. Thậm chí cả những máy chủ đặt
trong các phòng máy được khoá cẩn thận, thì máy chủ này cũng trở thành
một mục tiêu tấn công cho bất cứ ai vào được phòng đó, những người này
có thể là những lập trình viên, những nhà quản lý, thợ điện, nhân viên bảo
trì, …
1.3.2. Tấn công bằng cách phá mật khẩu.
Quá trình truy trập vào một hệ điều hành có thể được bảo vệ bằng
một khoản mục người dùng và một mật khẩu. Đôi khi người dùng khoản
mục lại làm mất đi mục đích bảo vệ của nó bằng cách chia sẻ mật khẩu với
những người khác, ghi mật khẩu ra và để nó công khai hoặc để ở một nơi
nào đó cho dễ tìm trong khu vực làm việc của mình.
Những kẻ tấn công có rất nhiều cách khác phức tạp hơn để tìm mật
khẩu truy nhập. Những kẻ tấn công có trình độ đều biết rằng luôn có
những khoản mục người dùng quản trị chính, ví dụ như khoản mục
Administrator trong các hệ điều hành Windows, khoản mục root trong các
hệ điều hành Unix và Linux, khoản mục Admin trong NetWare và các
6
khoản mục đặc quyền Admin trong hiều hành Mac OS X. Những kẻ tấn
công sẽ cố gắng đăng nhập bằng các khoản mục này một cách cục bộ hoặc
từ trên mạng, bằng chương trình Telnet chẳng hạn. Telnet là một giao thức
trong tầng ứng dụng của mô hình TCP/IP cho phép truy nhập và cấu hình
từ xa từ trên mạng hoặc trên Internet.
Nếu một kẻ tấn công tìm kiếm một khoản mục để truy nhập, thì kẻ
đó phải sử dụng hệ thống tên miền DNS trong một mạng kết nối với
Internet để tìm những ra được những tên khoản mục có thể. Hệ thống tên
miền (DNS) là một dịch vụ TCP/IP thực hiện chuyển đổi tên máy hoặc tên
miền sang địa chỉ IP và ngược lại bằng một tiến trình được gọi là phân giải
tên miền. Sau khi tìm ra được tên khoản mục người dùng, kẻ tấn công này
sẽ sử dụng một phần mềm liên tục thử các mật khẩu khác nhau có thể.
Phần mềm này sẽ tạo ra các mật khẩu bằng cách kết hợp các tên, các từ
1.3.4. Tấn công bộ đệm (buffer attack).
Rất nhiều hệ điều hành sử dụng bộ đệm (buffer) để lưu dữ liệu cho
đến khi nó sẵn sàng được sử dụng. Giả sử, một máy chủ với một kết nối
tốc độ cao đang truyền dữ liệu đa phương tiện tới một máy trạm trên
mạng, và máy chủ truyền nhanh hơn máy trạm có thể nhận. Khi đó giao
diện mạng của máy trạm sẽ sử dụng phần mềm lưu tạm (đệm) thông tin
nhận được cho đến khi máy trạm sẵn sàng xử lý nó. Các thiết bị mạng như
switch cũng sử dụng bộ đệm để khi lưu lượng mạng quá tải nó sẽ có chỗ
để lưu dữ liệu cho đến khi chuyển tiếp xong dữ liệu đến đích. Tấn công bộ
đệm là cách mà kẻ tấn công lừa cho phần mềm đệm lưu trữ nhiều thông tin
trong bộ đệm hơn kích cỡ của nó (trạng thái này gọi là tràn bộ đệm). Phần
thông tin thừa đó có thể là một phần mềm giả mạo sau đó sẽ truy nhập vào
máy tính đích.
Tấn công bộ đệm được thực hiện như sau: Các frame và packet là các
đơn vị thông tin được truyền đi trên mạng, ví dụ các frame và các packet
8
được định dạng cho các phiên truyền thông TCP/IP. Một phần của thông
tin trong frame hoặc packet nói lên kích cỡ của nó, ví dụ 324 byte. Khi
một máy tính hoặc thiết bị mạng phải đệm dữ liệu, thông tin này sẽ báo
cho máy tính hoặc thiết bị đó biết để dành bao nhiêu không gian bộ đệm để
giữ tạm dữ liệu đó. Trong tấn công bộ đệm, kích cỡ của frame hoặc packet
là quá nhỏ nên một đoạn mã độc (ví dụ mã của ngôn ngữ máy) có thể gắn
vào cuối của frame hoặc packet mà bên nhận không biết được. Khi được
lưu trữ trong bộ đệm, đoạn mã này không những sẽ bung ra để làm tràn bộ
đệm mà còn chiếm quyền điều khiển hệ thống.
1.3.5. Tấn công từ chối dịch vụ.
Tấn công từ chối dịch vụ (DoS) được sử dụng để can thiệp vào quá
trình truy nhập đến một máy tính, một trang web hay một dịch vụ mạng
bằng cách làm lụt mạng đó bằng các thông tin vô ích hoặc bằng các frame
hay packet chứa các lỗi mà một dịch vụ mạng không nhận biết được. Ví
hoàn toàn khi cố gắng tái tạo lại các gói tin. Một ví dụ khác, phần mềm
Winnuke sẽ gửi các TCP frame được định dạng không chuẩn làm cho hệ
thống đích bị treo hay bị sập.
Trong một số loại tấn công, máy tính khởi tạo tấn công có thể làm
cho rất nhiều máy tính khác gửi đi các gói tin tấn công. Các gói tin tấn
công có thể nhắm vào một site, một máy đích hay nhiều máy tính có thể
tấn công nhiều máy đích. Kiểu tấn công này được gọi là tấn công từ chối
dịch vụ phân tán DdoS.
1.3.6. Tấn công định tuyến nguồn (source routing attack).
Trong định tuyến nguồn, người gửi gói sẽ xác định chính xác tuyến
đường mà gói sẽ đi qua để đến được đích. Thực chất, định tuyến nguồn chỉ
sử dụng trong các mạng token ring và để gỡ rối các lỗi mạng. Ví dụ, tiện
ích gỡ rối Traceroute trong các hệ điều hành Windows, UNIX, Mac OS và
NetWare sử dụng định tuyến nguồn để xác định tuyến đường mà gói tin đi
từ một điểm tới một điểm khác trên một mạng.
10
Trong tấn công định tuyến nguồn, kẻ tấn công sửa đổi địa chỉ nguồn
và thông tin định tuyến làm cho gói tin có vẻ như đến từ một địa chỉ khác,
ví dụ một địa chỉ tin cậy để truyền thông trên một mạng. Ngoài việc đóng
giả làm một người tin cậy trong mạng, kẻ tấn công còn có thể sử dụng định
tuyến nguồn để thăm dò thông tin của một mạng riêng, ví dụ một mạng
được bảo vệ bởi một thiết bị mạng sử dụng chức năng chuyển đổi địa chỉ
(NAT). NAT (Network Address Translation) có thể chuyển đổi địa chỉ IP
của gói tin từ một mạng riêng thành một địa chỉ IP khác được sử dụng trên
mạng công cộng hay mạng Internet – đây là kỹ thuật vừa để bảo vệ định
danh của các máy tính trong một mạng riêng vừa để bỏ qua yêu cầu sử
dụng các địa chỉ IP duy nhất trên toàn cầu trên mạng riêng.
* Chú ý: Những kẻ tấn công có thể lách được một thiết bị NAT bằng cách
sử dụng một dạng định tuyến nguồn gọi là làm sai lệch bản ghi định tuyến
nguồn (LSRR – Loose Source Record Route). Dạng định tuyến này không
gửi cho các người dùng của một công ty đăng ký web site nổi tiếng trên
internet, yêu cầu người nhận cung cấp tên, địa chỉ và thông tin thẻ tín dụng
lấy cớ là cập nhật các bản ghi của công ty. Nhưng mục đích thực của nó là
bí mật thu thập dữ liệu về thẻ tín dụng.
1.3.9. Tấn công quét cổng.
Truyền thông bằng giao thức TCP/IP sử dụng các cổng TCP hoặc
cổng UDP nếu giao thức UDP được sử dụng cùng với giao thức IP. Cổng
TCP hoặc UDP là một con đường để truy nhập hệ thống đích, thông
thường nó liên quan đến một dịch vụ, một tiến trình hay một chức năng
nhất định . Một cổng tương tự như một mạch ảo kết nối giữa 2 dịch vụ
hoặc 2 tiến trình truyền thông với nhau giữa 2 máy tính hoặc 2 thiết bị
mạng khác nhau. Các dịch vụ này có thể là FTP, e-mail, … Có 65535 cổng
trong giao thức TCP và UDP. Ví dụ, dịch vụ DNS chạy trên cổng 53, FTP
chạy trên cổng 20.
Port No Purpose Port Purpose
12
No
1 Multiplexing 53 DNS server application
5 RJE applications 79 Find active user
application
9 Transmission discard 80 HTTP web browsing
15 Status of network 93 Device controls
20 FTP data 102 Service access point
(SAP)
21 FTP commands 103 Standadized e-mail
service
23 Telnet applications 104 Standadized e-mail
exchange
25 SNMTP e-mail
applications
đảm an toàn mà còn là cách để giải phóng bộ nhớ dành cho cho các chức
năng hệ điều hành khác.
14
Cũng giống như các hệ điều hành khác, hệ điều hành Mac OS X cũng
hỗ trợ rất nhiều dịch vụ, người quản trị có thể dừng các dịch vụ này trên
màn hình desktop.
1.3.10. Tấn công không dây
Các mạng không dây thường rất dễ bị tấn công, vì rất khó để biết
được người nào đó đã xâm hại đến mạng này. Đôi khi các tấn công trên
mạng không dây còn được gọi là war-drives, vì kẻ tấn công có thể lái xe
lòng vòng quanh một khu vực, dùng một máy tính xách tay để thu thập các
tín hiệu không dây. Tuy nhiên, kẻ tấn công cũng có thể làm điều đó bằng
cách đi bộ hoặc ở một nơi nào đó với chiếc máy tính xách tay của mình.
Hai thành phần quan trọng được sử dụng trong các tấn công không
dây là một cạc mạng không dây và một ăng ten đa hướng, có thể thu tín
hiệu từ tất cả các hướng. Một thành phần khác đó là phần mềm war-
driving được sử dụng để bắt và chuyển đổi các tín hiệu từ ăng ten qua card
mạng không dây. Các tấn công không dây thường được thực hiện bằng
cách quét rất nhiều kênh sử dụng cho các truyền thông không dây, tương
tự như việc sử dụng một máy quét để nghe các kênh của cảnh sát và chữa
cháy.
1.4. Vai trò của hệ điều hành trong việc đảm bảo an toàn thông tin
Một hệ điều hành (OS) cung cấp các chỉ thị chương trình cơ bản để
giao tiếp với phần cứng của máy tính. Hệ hiều hành là một mã chương
trình giúp người sử dụng bắt đầu các chức năng cơ bản của một máy tính
như: xem nội văn bản trên màn hình của máy tính, lưu giữ thông tin, truy
nhập và sửa đổi thông tin, truy nhập vào một mạng, kết nối Internet và
chạy các phần mềm ứng dụng khác. Hệ điều hành thực hiện các chức năng
quản lý vào/ra (I/O) cơ bản nhất của máy tính. Quản lý vào/ra cho phép
các chương trình giao tiếp với phần cứng của máy một cách dễ dàng. Đóng
- Hệ thống vào/ra cơ bản (BIOS): Là một chương trình nhận dạng thiết bị
phần cứng và thiết lập quá trình truyền thông cơ bản với các thành phần
như màn hình và các ổ đĩa. Ngoài ra, BIOS còn nạp các thành phần khác
của hệ điều hành khi khởi động và duy trì một đồng hồ thời gian thực để
cung cấp ngày giờ cho hệ thống.
- Nhân hệ điều hành (Kernel): Là phần lõi của hệ điều hành thực hiện phối
hợp các chức năng của hệ điều hành như: kiểm soát bộ nhớ và thiết bị lưu
trữ. Nhân hệ điều hành sẽ giao tiếp với BIOS, các trình điều khiển thiết bị
17
và API để thực hiện các chức năng này. Ngoài ra, nó còn là giao diện với
các trình quản lý tài nguyên.
- Trình quản lý tài nguyên (Resource Manager): Là các chương trình quản
lý việc sử dụng bộ nhớ và vi xử lý trung tâm.
- Trình điều khiển thiết bị (Device Driver): Là các chương trình nhận các
yêu cầu từ API thông qua nhân hệ điều hành rồi biên dịch chúng thành các
lệnh thao tác với các thiết bị phần cứng tương ứng như: bàn phím, màn
hình, ổ đĩa và máy in. Ngoài ra, hệ điều hành còn có thêm các trình điều
khiển chuyên dụng phục vụ các chức năng và các thiết bị khác như âm
thanh.
Trong các thành phần này, một dạng an toàn cơ bản nhất là cấu hình
an toàn mật khẩu BIOS. Tuỳ chọn an toàn mật khẩu này có thể khác nhau
tuỳ theo các nhà sản xuất phần mềm BIOS khác nhau. Dưới đây là một số
tuỳ chọn mật khẩu thông dụng trong BIOS:
- Đặt mật khẩu để quản lý việc truy nhập ổ đĩa cứng.
- Đặt mật khẩu để truy nhập chương trình cài đặt BIOS hoặc xem cấu hình
của BIOS (trong một số trường hợp người dùng có thể truy nhập vào BIOS
để xem các thông tin cấu hình nhưng không thể thay đổi các cấu hình đó).
- Đặt mật khẩu để thay đổi cấu hình BIOS.
- Đặt mật khẩu để khởi động máy.
- Chỉ cho phép máy tính khởi động từ ổ đĩa mềm và chỉ sau khi người