i
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐẶNG HÙNG THẮNG
NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP PHÁT HIỆN THAY ĐỔI NỘI DUNG TRANG WEB
BÁO CÁO LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH KHOA HỌC MÁY TÍNH
THÁI NGUYÊN, NĂM 2015
ii
LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn sâu sắc đến Thầy TS. Vũ Duy Linh người đã giúp
đỡ tôi trong suốt thời gian tôi thực hiện đề tài. Thầy đã định hướng, tạo những
điều kiện thuận lợi và đã tận tình hướng dẫn để tôi hoàn thành đề tài này.
Tôi xin gửi lời cảm ơn chân thành đến gia đình, bạn bè đã luôn là nguồn
động viên to lớn, giúp đỡ tôi trong suốt quá trình tôi thực hiện đề tài.
TÁC GIẢ LUẬN VĂN
Đặng Hùng Thắng
iii
LỜI CAM ĐOAN
Những kết quả nghiên cứu được trình bày trong luận văn là hoàn
toàn trung thực của tôi, không vi phạm bất cứ điều gì trong luật sở hữu
trí tuệ và pháp luật Việt Nam. Nếu sai, tôi xin chịu hoàn toàn trách nhiệm
trước pháp luật.
TÁC GIẢ LUẬN VĂN
Đặng Hùng Thắng
iv
MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT ......................................................... vi
DANH MỤC HÌNH VẼ .......................................................................................... viii
PHẦN MỞ ĐẦU: GIỚI THIỆU BÀI TOÁN THEO DÕI SỰ THAY ĐỔI NỘI DUNG
TRANG WEB ............................................................................................................. 1
Chương 1. TỔNG QUAN VỀ AN TOÀN NỘI DUNG SỐ VÀ WEBSITE .............. 2
1.1. Vấn đề đảm bảo tính an toàn của các nội dung trên internet ............................... 2
1.2. Những nguy cơ tiềm ẩn và việc bảo mật nội dung số trên internet ..................... 2
1.3. Giải pháp đảm bảo tính toàn vẹn của văn bản điện tử ......................................... 3
1.3.1. Khái niệm chữ ký số ................................................................................. 3
1.3.2. Tính lợi điểm của chữ ký sô ..................................................................... 4
1.3.3. Cách thức hoạt động của chữ ký số. ......................................................... 5
1.4. Việc đảm bảo an toàn nội dung Website trên Internet ......................................... 9
1.4.1. Mục đích tấn công trang Web .................................................................. 9
1.4.2. Các kiểu tấn công thường gặp và cách phòng chống ............................... 9
1.5. Vai trò và mục đích của việc theo dõi sự thay đổi nội dung trang web ............. 16
1.6. Kết luận chương 1 .............................................................................................. 17
Chương 2. NHỮNG PHƯƠNG PHÁP PHÁT HIỆN THAY ĐỔI NỘI DUNG ...... 18
2.1. Những vẫn đề cơ bản về Web ............................................................................ 18
2.1.1. Khái niệm cơ bản .................................................................................... 18
2.1.2. Một số mô hình kiến trúc web ................................................................ 23
2.1.3. Mô tả Website và cách hoạt động .......................................................... 27
2.1.4. Các dịch vụ và ứng dụng trên nền web .................................................. 28
2.2. Một số phương pháp đảm bảo an ninh Web ...................................................... 29
2.2.1. Đảm bảo an ninh hệ điều hành Webserver ............................................. 29
2.2.2. Bảo đảm an ninh nội dung Web ............................................................. 30
2.2.3. Sử dụng kỹ thuật xác thực và mã hóa .................................................... 31
2.2.4. Triển khai cơ sở hạ tầng mạng an ninh .................................................. 33
v
2.2.5. Quản trị Webserver ................................................................................ 34
2.3. Sử dụng dấu vân của tài liệu (Document Fingerprint) trong việc theo dõi sự thay
đổi nội dung trang Web ............................................................................................. 35
2.4. Thuật toán kiểm tra dấu vân tay tài liệu - Rabin Fingerprint ............................. 36
2.5 Kết luận chương 2 ............................................................................................... 37
Chương 3. XÂY DỰNG HỆ THỐNG PHÁT HIỆN THAY ĐỔI NỘI DUNG TRANG
WEB .......................................................................................................................... 38
3.1. Đề xuất cải tiến giải thuật Rabin Fingerprint ..................................................... 38
3.2. Hệ thống phát hiện thay đổi nội dung trang Web .............................................. 39
3.2.1. Hệ thống Builder .................................................................................... 41
3.2.2. Hoạt động Multi-checker ........................................................................ 41
3.2.3. Hệ thống Self-watcher ............................................................................ 43
3.2.4. Hệ thống Admin ..................................................................................... 44
3.3. Cài đặt và thử nghiệm chương trình ................................................................... 44
3.3.1. Cài đặt chương trình ............................................................................... 44
3.3.2. Thử nghiệm chương trình ....................................................................... 46
3.3.3. Nhận xét kết quả ..................................................................................... 48
3.4. Kết luận chương 3 .............................................................................................. 48
KẾT LUẬN VÀ KHUYẾN NGHỊ ........................................................................... 49
1. Kết luận ................................................................................................................. 49
2. Khuyến nghị .......................................................................................................... 49
TÀI LIỆU THAM KHẢO ......................................................................................... 50
vi
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
STT Kí hiệu Tiếng việt Tiếng anh
Computer Emegancy 01 CERT Response Team
Thuật toán mã hóa 02 PKI công khai
Nhà cung cấp dịch vụ 03 CA Certification Aithority chứng thực chữ ký số
Ngôn ngữ truy vấn Structured Query 04 SQL mang tính cấu trúc Language
Là một kiểu tấn công
cho phép kẻ tấn công 05 XSS Cross Site Scripting chèn những đoạn script
độc hại vào website
06 DOS Từ chối dịch vụ Dinal of Services
07 VPN Mạng riêng ảo Virtual Private Network
08 Firewall Tường lửa
Ngôn ngữ đánh dấu Hypertext Markup 09 HTML siêu văn bản Language
Kết hợp giữa giao thức
10 HTTPS HTTP và giao thức bảo
mật SSL hay TLS
11 SSL Giao thức bảo mật Secure Sockets Layer
12 TLS Giao thức bảo mật Transport Layer Security
Open Systems 13 OSI Mô hình hệ thống mở Interconnection
vii
Định vị tài nguyên Uniform Resource 14 URL thống nhất Locator
Ngôn ngữ đánh dấu Xtensible Markup 15 XML mở rộng Language
16 IP Địa chỉ IP Internet protocol
18
CSDL
Cơ sở dữ liệu
17 DNS Hệ thống tên miền Domain name System
viii
DANH MỤC HÌNH VẼ
Hình 1.1. Mô tả hoạt động gửi văn bản đã được ký số ..................................... 6
Hình 1.2. Mô tả hoạt động giải mã và xác minh văn bản điện tử ..................... 7
Hình 1.3. Mô hình tấn công SQL Injection .................................................... 10
Hình 1.4. Một mô hình tấn công từ chối dịch vụ DOS ................................... 14
Hình 2.1. Một số Web Server thông dụng ...................................................... 22
Hình 2.2. Mô hình kiến trúc web 1 lớp ........................................................... 23
Hình 2.3. Mô hình kiến trúc web 2 lớp ........................................................... 24
Hình 2.4. Mô hình kiến trúc web 3 lớp ........................................................... 25
Hình 2.5. Mô hình kiến trúc web N lớp .......................................................... 26
Hình 2.6. Minh hoạ giải thuật Rabin Fingerprint ............................................ 37
Hình 3.1. Minh hoạ cải tiến giải thuật Rabin Fingerprint ............................... 39
Hình 3.2. Sơ đồ kiến trúc hệ thống giám sát website ...................................... 41
Hình 3.3. Các thuộc tính cơ bản của tập tin .................................................... 42
Hình 3.4. Giao diện chính của hệ thông theo dõi thay đổi nội dung trang web ....... 45
Hình 3.5. Chương trình theo dõi 4 website đồng thời .................................... 47
Hình 3.6. Hoạt động của chức năng Advanced Mode .................................... 47
1
PHẦN MỞ ĐẦU: GIỚI THIỆU BÀI TOÁN THEO DÕI
SỰ THAY ĐỔI NỘI DUNG TRANG WEB
1. Đặt vấn đề
Cùng với sự phát triển của công nghệ thông tin, công nghệ máy tính và mạng
Internet ngày nay các dịch vụ mạng đã có mặt trong hầu hết các lĩnh vực đời
sống xã hội. Các thông tin trên Internet cũng đa dạng và phong phú, có rất nhiều
thông tin đòi hỏi yêu cầu cao về bảo mật bởi tính kinh tế, chính xác và tin cậy
của thông tin đó. Bên cạnh đó các hình thức phá hoại trên Internet cũng ngày
càng trở nên tinh vi và phức tạp hơn nhiệm vụ đặt ra cho người quản trị mạng
là hết sức quan trọng và cần thiết.
Với sự phát triển nhanh của Web và các ứng dụng trên nền Web hiện nay,
việc bảo mật an ninh thông tin cho các trang Web là hết sức quan trọng thế
nhưng không phải nhà quản trị hay nhà phát triển nào cũng chú tâm tới việc
bảo mật an ninh cho các sản phẩm của mình, chính vì vậy rất nhiều Website
hiện tại tồn tại lỗ hổng về bảo mật an ninh cao gây nguy cơ bị tấn công, thiệt
hại rất nhiều khi bị tấn công. Việc phát hiện các nguy cơ thủ công là khó, việc
người quản trị hay người phát triển muốn kiểm tra mức độ an toàn của sản phẩm
gặp phải nhiều khó khăn.
Đề tài nghiên cứu nghiên cứu xây dựng một hệ thống với công cụ phát hiện
sự thay đổi nội dung trang Web và đưa ra những cảnh bảo cho người quản trị
để có biện pháp xử lý kịp thời.
2
Chương 1. TỔNG QUAN VỀ AN TOÀN NỘI DUNG SỐ VÀ WEBSITE
1.1. Vấn đề đảm bảo tính an toàn của các nội dung trên internet
Ngày nay, cùng với sự phát triển mạnh mẽ của công nghệ thông tin là sự
ra đời hàng loạt của các dịch vụ trên internet điều đó đã mang lại cho cá nhân,
các tổ chức, các đơn vị, các doanh nghiệp rất nhiều tiện ích, thuận lợi.
Mọi người sử dụng internet như một công cụ bắt buộc trong hoạt động của
cá nhân. Các đơn vị, tổ chức, doanh nghiệp sử dụng internet trong mọi hoạt
động của đơn vị mình. Những gì internet mạng lại là rất lớn, nó là một phần
không thể thiếu trong cuộc sống hiện địa ngày nay.
Ở bất kỳ đâu, khi một máy tính có nối mạng Internet, con người có thể
thực hiện các chia sẻ, đăng tải các thông tin, mua bán, thanh toán... một cách
thuận tiện và nhanh chóng. Mọi thông tin của người dùng đều được lưu trư trên
internet. Mục tiêu chính của nối mạng là để con người có thể lưu trữ, sử dụng
tài nguyên từ nhiều vị trí địa lý khác nhau. Tài nguyên bị phân tán dẫn tới nó
dễ bị xâm phạm, gây mất mát dữ liệu cũng như các thông tin có giá trị. Điều đó
vô hình chung khiến cho internet trở thành một thứ tốt nhưng rất nguy hiểm.
Nếu như các tài nguyên đó không được bảo vệ tốt nó có thể gây nên những thiệt
hại lớn cho cá nhân cũng như tập thể. Những hiểm họa và thiệt hại phải gánh
chịu là không lường trước được.
1.2. Những nguy cơ tiềm ẩn và việc bảo mật nội dung số trên internet
Mọi nguy cơ trên mạng đều là những nguy cơ tiềm tàng, từ một lỗ hổng
bảo mật nhỏ của hệ thống nếu bị khai thác và lợi dụng có thể trở thành một tai
họa khôn lường.
Theo thống kê của CERT (Computer Emegancy Response Team) – Tổ
chức bảo mật nổi tiếng thế giới, thì số vụ tấn công ngày càng tăng và sẽ còn
tăng mạnh trong thời gian tới, thiết hại gây ra ngày càng nghiêm trọng. Điều
này là dễ hiểu vì một thực thể luôn tồ tại hai mặt đối lập, công nghệ và kỹ thuật
3
càng phát triển, sự tiện lợi mang lại lớn thì nguy cơ tấn công, phá hoại, mất cắp
thông tin ngày càng cao.
Bảo mật thông tin là vấn đề sống còn trên internet hiện nay. Vấn đề quan
tâm là:
- Tính bảo mật: Chỉ cho phép người có quyền hạn truy cập tới nó
- Tính toàn vẹn: Dữ liệu không được sửa đổi, bị xóa một cách bất hợp pháp.
- Tính sẵn sàng: Bất cứ khi nào cần dữ liệu luôn sẵn sàng
- Tính định danh: Dữ liệu chia sẻ của đúng người mà không bị giả mạo
bởi người khác.
Rất nhiều phương án bảo mật đã được đưa ra nhằm bảo vệ các nội dung
số trên internet. Hướng tới một môi trường internet an toàn, lành mạnh.
1.3. Giải pháp đảm bảo tính toàn vẹn của văn bản điện tử
1.3.1. Khái niệm chữ ký số
Trên môi trường mạng, bất cứ dạng thông tin nào được sử dụng để nhận
biết một con người đều được coi là chữ ký điện tử. Ví dụ, 1 đoạn âm thanh hoặc
hình ảnh được chèn vào cuối e-mail, đó cũng là chữ ký điện tử.
Chữ ký số là một dạng chữ ký điện tử, an toàn nhất và cũng được sử dụng
rộng rãi nhất. Chữ ký này hình thành dựa trên kỹ thuật mã khoá công khai
(PKI), theo đó mỗi người sử dụng cần có một cặp khóa bao gồm khóa bí mật
và công khai. Người chủ chữ ký sử dụng khoá bí mật để tạo chữ ký số (trên cơ
sở kết hợp với nội dung thông điệp dữ liệu), ghép nó với thông điệp dữ liệu và
gửi đi. Người nhận dùng mã công khai giải mã chữ ký số để biết được người
đó là ai. Tất cả quy trình ký và giải mã chữ ký số đều được thực hiện bằng phần
mềm. Điểm quan trọng là các cặp khóa trên do những nhà cung cấp dịch vụ
chứng thực chữ ký số (Certification Aithority - CA) cấp (hoặc xác minh là đủ
điều kiện an toàn) sau khi đã kiểm tra, xác minh chủ của nó (cá nhân, tổ chức)
là có thực. Đồng thời, nhà cung cấp dịch vụ cũng giao cho cá nhân, tổ chức đó
4
một chứng thư số - tương đương như chứng minh thư nhân dân hay giấy xác
nhận sự tồn tại của cơ quan, tổ chức trên môi trường mạng. Chứng thư đó có
chứa khóa công khai của tổ chức, cá nhân và được duy trì tin cậy trên cơ sở dữ
liệu của nhà cung cấp dịch vụ chứng thực, do vậy người nhận có thể truy cập
vào cơ sở dữ liệu đó để xác minh xem đúng là có người đó hay không.
1.3.2. Tính lợi điểm của chữ ký sô
1.3.2.1. Tính bí mật
Tính bí mật có nghĩa là sự bí mật, riêng tư của dữ liệu được đảm bảo bằng
các biện pháp mật mã hoá. Các thông tin cá nhân của khách hàng, các dữ liệu
về hợp đồng, luật pháp là những ví dụ cơ bản về những dữ liệu cần phải được
giữ bí mật sử dụng mật mã hoá. Việc mã hoá dữ liệu có thể được thực hiện
bằng mã hoá đối xứng hoặc phi đối xứng. Vì mật mã phi đối xứng không hiệu
quả bằng mã hoá đối xứng để mã hoá lượng dữ liệu lớn, nó thường được dùng
để mã hoá các đối tượng nhỏ như khoá bí mật của hệ thống mã hoá đối xứng.
Các hệ thống mã hoá đối xứng thường được sử tích hợp với PKI để mã hoá dữ
liệu lớn.
1.3.2.2. Tính toàn vẹn
Tính toàn vẹn có nghĩa là dữ liệu không bị sửa đổi hay nội dung giao dịch
không bị thay đổi trên đường truyền. Các chứng thư số và các phong bì chữ ký
số là những ví dụ cho những dữ liệu phải được đảm bảo tính toàn vẹn. Thông
thường, nội dung của các thông điệp, email, các giao dịch mua bán và các thông
tin mà các bên khác phải dựa vào phải được đảm bảo tính toàn vẹn. Tính toàn
vẹn có thể được cung cấp bởi PKI sử dụng mã hoá phi đối xứng hoặc đối xứng.
Chú ý rằng, giải pháp sử dụng mật mã đối xứng để đảm bảo tính toàn vẹn không
dễ dàng mở rộng. Thuật toán mã hoá công khai thường được sử dụng cùng với
một thuật toán băm như SHA-1 hoặc MD5 để cung cấp khả năng toàn vẹn. Một
hệ thống PKI được thiết kế tốt sẽ phải sử dụng các giao thức bắt buộc có sử
5
dụng các thuật toán này để cung cấp một phương pháp đảm bảo tính toàn vẹn
một cách hiệu quả.
1.3.2.3. Tính xác thực
Xác thực có nghĩa là kiểm tra xem danh tính của các thực thể bằng cách
sử dụng các chứng thư số và chữ ký số. Việc xác thực trong môi trường thương
mại điện tử được thực hiện rất tốt bởi các hệ thống mã hoá khoá công khai.
Thực tế, mục đích chính của việc chứng thực trong một hệ thống PKI là để hỗ
trợ việc xác thực từ xa giữa các thực thể không biết nhau, sử dụng chứng thư
số và cây tin tưởng CA. Chứng thực trong một môi trường PKI dựa trên mối
quan hệ toán học giữa khoá bí mật và khoá công khai. Các thông điệp được ký
bởi một thực thể này có thể kiểm tra bởi bất kỳ một bên tin tưởng nào. Bên tin
tưởng có thể chắc chắn rằng chỉ có người chủ của khoá bí mật là người tạo ra
thông điệp đó, bởi vì chỉ có người đó bởi có quyền truy xuất đến khoá bí mật.
1.3.2.4. Tính chống chối bỏ
Chống chối bỏ đảm bảo rằng dữ liệu hoặc một giao dịch không thể bị chối
bỏ. Điều này được thực hiện thông qua mật mã hoá công khai bằng ký số.
Chống chối bỏ là một tính chất bảo mật cực kì quan trọng trong bất kì một ứng
dụng thương mại điện tử nào mà tiền được trao đổi, các điều khoản về hợp
đồng, pháp luật, được thương lượng. Chống chối bỏ là một sản phẩm của việc
sử dụng mã hoá khoá công khai. Khi dữ liệu được ký số bằng cách sử dụng
khoá bí mật, bất kì ai có khoá công khai tương ứng với khoá bí mật đó đều có
thể xác định được chủ nhân của cặp khoá có ký dữ liệu đó không. Chủ nhân
của thông điệp dữ liệu không thể chối bỏ thông điệp đó một khi anh ta ký vào
thông điệp đó.
1.3.3. Cách thức hoạt động của chữ ký số.
Dưới đây một ví dụ điển hình về nguyên lý hoạt động của chữ ký số và
mã hóa trong việc đảm bảo tính toàn vẹn, bí mật của văn bản điện tử.
6
1.3.3.1. Các bước để ký số và mã hóa một văn bản điện tử
Hình bên dưới cho ta thấy các hoạt động xảy ra trong quá trình mà Alice
muốn gửi một văn bản đã được ký số và mã hóa cho Bob
1) Ký số lên văn bản điện tử: Việc ký số lên văn bản điện tử bao gồm các bước
Hình 1.1. Mô tả hoạt động gửi văn bản đã được ký số
sau:
a) Đánh giá giá trị hàm băm của văn bản điện tử: Mục đích chính của việc
đánh giá giá trị hàm băm của văn bản điện tủ đó là bảo đảm rằng văn bản điện
tử không bị thay đổi bằng bất kỳ hình thức nào, hay còn gọi là bảo đảm tính
toàn vẹn của văn bản điện tử.
b) Giá trị hàm băm chữ ký số: Một chữ ký số thực chất là một quá trình
mã hóa sử dụng khóa bí mật của người ký. Quá trình ký số thực chất là sử dụng
một thuật toán mã hóa. Trong quá trình này khóa công khai của người ký cũng
được gửi kèm theo để người nhận có thể giải mã và xác minh chữ ký số và thuật
toán hàm băm. Những thuộc tính của sự mã hóa khóa công khai và thuật toán
hàm băm cho phép người nhận văn bản điện tử biết:
+ Khóa bí mật của người gửi đã mã hóa giá trị hàm băm.
+ Văn bản điện tử được bảo vệ khỏi mọi sự thay đổi.
7
2) Sự mã hóa văn bản điện tử: mã hóa bao gồm 3 bước:
a) Tạo ra một sự mã hóa đối xứng sử dụng một lần. Chúng ta cần lưu ý
rằng việc sử dụng thuật toán mã hóa và giải mã phi đối xứng mất rất nhiều thời
gian cho các văn bản điện tử với dung lượng lớn; chính vì vậy thuật toán mã
hóa đối xứng được sử dụng trong trường hợp này.
b) Mã hóa văn bản điện tử: Toàn bộ văn bản điện tử (bao gồm bản thân
văn bản điện tử và chữ ký số) được mã hóa sử dụng SymK, thuật toán mã hóa
đối xứng.
c) Sự mã hóa đối xứng: SymK cũng được sử dụng bởi người nhận văn bản
điện tử để giải mã văn bản. Chính vì vậy SymK phải được gửi kèm cho người
nhận, trong trường hợp này là Bob. Cách để giấu SymK, mà chỉ Bob mới biết
được đó chính là mã hóa nó sử dụng khóa công khai của người nhận, là khóa
công khai của Bob.
1.3.3.2. Các bước cho việc giải mã và xác minh chữ ký số của văn bản điện tử
Hình bên dưới cho thấy các hoạt động khi Bob muốn giải mã và xác minh
văn bản điện tử được gửi bởi Alice.
Hình 1.2. Mô tả hoạt động giải mã và xác minh văn bản điện tử
8
1) Giải mã văn bản điện tử: Việc giải mã văn bản điện tử bao gồm các
bước sau:
a) Giải mã khóa đối xứng: Khóa đối xứng sử dụng một lần được sử dụng
để mã hóa văn bản điện tử. Khóa này (SymK) đã được mã hóa sử dụng khóa
công khai của Bob. Chỉ có Bob mới có thể giải mã SymK và sử dụng nó để giải
mã văn bản.
b) Giải mã văn bản điện tử: Văn bản điện tử (bao gồm bản thân văn bản
điện tử và chữ ký số) được giải mã sử dụng SymK
2) Xác thực chữ ký số: Quá trình xác thực chữ ký số bao gồm 3 bước sau:
a) Giải mã giá trị hàm băm của văn bản điện tử: giá trị hàm băm đã được
mã hóa sử dụng khóa bí mật của Alice. Giá trị hàm băm sẽ được giải mã sử
dụng khóa công khai gửi kèm với văn bản điện tử.
b) Đánh giá giá trị hàm băm: Do quá trình băm chỉ là quá trình xử lý một
chiều nghĩa là văn bản điện tử không thể xem được từ giá trị hàm băm của nó,
người nhận phải đánh giá lại giá trị hàm băm sử dụng cùng thuật toán băm mà
người gửi đã sử dụng.
c) So sánh giá trị hàm băm: Giá trị hàm băm đã được giải mã ở bước a) và
giá trị hàm băm đã được đánh giá ở bước b) được mang ra so sánh. Nếu giống
nhau, chữ ký số đã được xác minh, và người nhận có thể chấp nhận văn bản
điện tử đó và chắc chắn rằng nó chưa bị thay đổi từ khi người gửi gửi nó đi.
Nếu hai giá trị trên mà không giống nhau, điều đó có nghĩa:
+ Văn bản điện tử chưa được ký số bởi người gửi
+ Văn bản điện tử đã bị thay đổi.
+ Trong cả hai trường hợp, thì văn bản điện tử nên bị từ chối.
Việc sử dụng chữ ký số để có thể đảm bảo tính toàn vẹn của văn bản điện
tử cũng như xác minh được người gửi văn bản đã thực sự giải quyết được bài
9
toán mà bấy lâu nay chúng ta vẫn còn băn khoăn và e ngại khi chuyển từ văn
bản giấy sang sử dụng văn bản điện tử.
Các cơ quan, tổ chức, cá nhân có thể yên tâm và áp dụng chữ ký số để có
thể gửi và nhận văn bản điện tử, tạo nên một môi trường làm việc hiện đại,
minh bạch, giảm giấy tờ, góp phần cải cách thủ tục hành chính, tăng năng suất
lao động.
1.4. Việc đảm bảo an toàn nội dung Website trên Internet
1.4.1. Mục đích tấn công trang Web
Bên cạnh việc bảo vệ tính toàn vẹn, xác thực cho các tài liệu trên Internet.
Việc bảo mật, đảm bảo toàn vẹn nội dung của các Website trên Internet đã và
đang là vấn đề cấp thiết trong môi trường mạng hiện nay.
Với sự phát triển vũ bão của Internet, gần như tất cả các đơn vị, cơ quan,
tổ chức, hay một phần nào đó là các cá nhân hiện nay đều có Website. Nội dung
trên Website đó được định danh cho các tổ chức, cá nhân là bộ mặt, tiếng nói
của các tổ chức cá nhân đó.
Khi kẻ xấu tấn công trang Web thường với mục đích
+ Đánh cắp các thông tin trên Web
+ Phá hoại, làm hỏng hệ thống
+ Thay đổi các nội dung trên Web
Dù với mục đích nào thì hậu quả, thiệt hại cũng là rất lớn. Việc đảm bảo
tính bảo mật của một Website, đảm bảo sự hoạt động, bảo toàn nội dung
Website là vấn đề đặt ra với mọi người quản trị.
1.4.2. Các kiểu tấn công thường gặp và cách phòng chống
1.4.2.1. Tấn công SQL Injection
SQL injection là một kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng
trong việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi
của hệ quản trị cơ sở dữ liệu để "tiêm vào" (inject) và thi hành các câu lệnh
10
SQL bất hợp pháp (không được người phát triển ứng dụng lường trước). Hậu
quả của nó rất tai hại vì nó cho phép những kẻ tấn công có thể thực hiện các
thao tác xóa, hiệu chỉnh, … do có toàn quyền trên cơ sở dữ liệu của ứng dụng,
thậm chí là máy chủ (server) mà ứng dụng đó đang chạy. Lỗi này thường xảy
ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị cơ sở dữ
liệu như SQL Server, MySQL, Oracle, DB2, Sysbase.
Hình 1.3. Mô hình tấn công SQL Injection
Các dạng tấn công bằng SQL Injection
Có bốn dạng thông thường bao gồm: vượt qua kiểm tra lúc đăng nhập
(authorization bypass), sử dụng câu lệnh SELECT, sử dụng câu lệnh INSERT,
sử dụng các stored-procedures
+ Dạng tấn công vượt qua kiểm tra đăng nhập (authorization bypass):
Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng
nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng
dụng web.
+ Dạng tấn công sử dụng câu lệnh SELECT:
11
Dạng tấn công này phức tạp hơn. Để thực hiện được kiểu tấn công này, kẻ
tấn công phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi
từ hệ thống để dò tìm các điểm yếu khởi đầu cho việc tấn công.
+ Dạng tấn công sử dụng câu lệnh INSERT
Thông thường các ứng dụng web cho phép người dùng đăng kí một tài
khoản để tham gia. Chức năng không thể thiếu là sau khi đăng kí thành công,
người dùng có thể xem và hiệu chỉnh thông tin của mình. SQL injection có thể
được dùng khi hệ thống không kiểm tra tính hợp lệ của thông tin nhập vào.
+ Dạng tấn công sử dụng stored-procedures
Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng
được thực thi với quyền quản trị hệ thống 'sa'. Ví dụ, nếu ta thay đoạn mã tiêm
vào dạng: ' ; EXEC xp_cmdshell „cmd.exe dir C: '. Lúc này hệ thống sẽ thực
hiện lệnh liệt kê thư mục trên ổ đĩa C:\ cài đặt server. Việc phá hoại kiểu nào
tuỳ thuộc vào câu lệnh đằng sau Command Prompt.
12
Cách phòng chống tấn công SQL
- Kiểm soát chặt chẽ dữ liệu nhập vào
Để phòng tránh các nguy cơ có thể xảy ra, hãy bảo vệ các câu lệnh SQL
là bằng cách kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ đối tượng
Request.
- Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu
Cần có cơ chế kiểm soát chặt chẽ và giới hạn quyền xử lí dữ liệu đến tài
khoản người dùng mà ứng dụng web đang sử dụng.
1.4.2.2. Tấn công XSS (Cross Site Scripting)
Cross-Site Scripting hay còn được gọi tắt là XSS là một kĩ thuật tấn công
bằng cách chèn vào các website động (ASP, PHP, CGI, JSP ...) những đoạn mã
script nguy hiểm để thực thi 1 câu lệnh nào đó. Trong đó, những đoạn mã nguy
hiểm đựơc chèn vào hầu hết được viết bằng các Client-Site Script như
JavaScript, JScript, DHTML và cũng có thể là cả các thẻ HTML.
Về cơ bản XSS cũng như SQL Injection hay Source Injection, nó cũng là
các yêu cầu (request) được gửi từ các máy trạm (client) tới máy chủ (server)
nhằm chèn vào đó các thông tin vượt quá tầm kiểm soát của máy chủ.
Phòng chống tấn công bằng XSS
Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng
không quá khó khăn để ngăn ngừa XSS. Có rất nhiều cách để có thể giải quyết
vấn đề này như:
+ Chỉ chấp nhận những dữ liệu hợp lệ.
+ Từ chối nhận các dữ liệu hỏng.
+ Liên tục kiểm tra và thanh lọc dữ liệu.
Tuy nhiên trên thực tế, một số trường hợp bạn phải chấp nhận mọi loại dữ
liệu hay không có một bộ lọc phù hợp. Chính vì vậy phải có những cách riêng
để giải quyết. Một trong những cách hay sử dụng là bạn mã hoá các kí tự đặc
13
biệt trước khi in ra website, nhất là những gì có thể gây nguy hiểm cho người
sử dụng.
Với phương pháp này cũng có thể áp dụng đối với các ngôn ngữ Web
Application khác (ASP, PHP...). Để kiểm tra việc lọc và mã hoá dữ liệu trước
khi in ra, các bạn có thể dùng một chương trình được viết bằng ngôn nhữ PHP,
đặc biệt nó được thiết kế để phòng chống các lỗi XSS.
1.4.2.3. Tấn công từ chối dịch vụ DOS (Denial of Service)
- Tấn công DOS là một kiểu tấn công mà một người làm cho một hệ
thống không thể sử dụng, hoặc làm cho hệ thống đó chậm đi một cách đáng kể
với người dùng bình thường, bằng cách làm quá tải tài nguyên của hệ thống.
- Nếu kẻ tấn công không có khả năng thâm nhập được vào hệ thống, thì
chúng cố gắng tìm cách làm cho hệ thống đó sụp đổ và không có khả năng
phục vụ người dùng bình thường đó là tấn công từ chối dịch vụ (Denial of
Service-DOS). Mặc dù tấn công DOS không có khả năng truy cập vào dữ
liệu thực của hệ thống nhưng nó có thể làm gián đoạn các dịch vụ mà hệ
thống đó cung cấp. Như định nghĩa trên DOS khi tấn công vào một hệ thống
sẽ khai thác những điểm yếu nhất của hệ thống để tấn công.
Mục đích của tấn công DOS
- Mục đích của tấn công DOS cố gắng chiếm băng thông mạng và làm hệ
thống mạng bị ngập (flood), khi đó hệ thống mạng sẽ không có khả năng đáp
ứng những dịch vụ khác cho người dùng bình thường.
- Cố gắng làm ngắt kết nối giữa hai máy, và ngăn chặn quá trình truy cập
vào dịch vụ.
- Cố gắng ngăn chặn những người dùng cụ thể vào một dịch vụ nào đó
- Cố gắng ngăn chặn các dịch vụ không cho người khác có khả năng truy
cập vào. Khi tấn công DOS xảy ra người dùng có cảm giác khi truy cập vào
dịch vụ đó như bị:
14
+ Tắt mạng (Disable Network )
+ Tổ chức không hoạt động (Disable Organization)
+ Tài chính bị mất (Financial Loss)
Như chúng ta biết tấn công DOS xảy ra khi kẻ tấn công sử dụng hết tài
nguyên của hệ thống và hệ thống không thể đáp ứng cho người dùng bình
thường được, mục đích kẻ tấn công là:
- Tạo ra sự khan hiếm, những giới hạn và không đổi mới tài nguyên.
- Băng thông của hệ thống mạng (Network Bandwidth), bộ nhớ, ổ đĩa, và
cấu trúc dữ liệu đều là mục tiêu của tấn công DOS.
- Tấn công vào hệ thống khác phục vụ cho mạng máy tính như: hệ
thống điều hoà, hệ thống điện, hệt thống làm mát và nhiều tài nguyên khác
của doanh nghiệp.
- Phá hoại hoặc thay đổi các thông tin cấu hình.
- Phá hoại tầng vật lý hoặc các thiết bị mạng như nguồn điện, điều hoà…
Hình 1.4. Một mô hình tấn công từ chối dịch vụ DOS
Phòng chống tấn công DOS
Có ba giai đoạn chính trong quá trình phòng chống tấn công DOS:
- Giai đoạn ngăn ngừa: tối thiểu hóa lượng Agent, tìm và vô hiệu hóa các
Handler
15
- Giai đoạn đối đầu với cuộc tấn công: Phát hiện và ngăn chặn cuộc tấn
công, làm suy giảm và dừng cuộc tấn công, chuyển hướng cuộc tấn công.
- Giai đoạn sau khi cuộc tấn công xảy ra: thu thập chứng cứ và rút kinh nghiệm.
Các giai đoạn chi tiết trong phòng chống DOS:
Tối thiểu hóa số lượng Agent:
- Từ phía người dùng (user): một phương pháp rất tốt để năng ngừa tấn
công DOS là từng người dùng mạng sẽ tự đề phòng không để bị lợi dụng tấn
công hệ thống khác. Muốn đạt được điều này thì ý thức và kỹ thuật phòng
chống phải được phổ biến rộng rãi cho các người dùng mạng. Các người dùng
mạng phải liên tục thực hiện các quá trình bảo mật trên máy vi tính của mình.
Một số giải pháp tích hợp sẵn khả năng ngăn ngừa việc cài đặt đoạn mã (code)
nguy hiểm v ào p h ầ n c ứ n g ( hardware) và phần mềm ( software) của từng
hệ thống. Về phía người dùng mạng họ nên cài đặt và cập nhật liên tục các
phần mềm phòng chống virus, các bản sửa lỗi của hệ điều hành.
Tìm và vô hiệu hóa các bộ xử lý (handler):
Một nhân tố vô cùng quan trọng trong t ấ n c ô n g m ạ n g ( attack-
network) là bộ xử lý ( h andler), nếu có thể phát hiện và vô hiệu hóa bộ xử lý
thì khả năng phòng chống tấn công DOS thành công là rất cao.
Làm suy giảm hay dừng cuộc tấn công:
Dùng các kỹ thuật sau:
- Thiết lập kiến trúc cân bằng tải trọng điểm cho các máy chủ (Load
balancing): sẽ làm gia tăng thời gian chống chọi của hệ thống với cuộc tấn
công DOS. Tuy nhiên, điều này không có ý nghĩa lắm về mặt thực tiễn vì quy
mô của cuộc tấn công là không có giới hạn.
- Thiết lập cơ chế điều tiết trên bộ định tuyến (Throttling): quy định một
khoảng tải hợp lý mà máy chủ bên trong có thể xử lý được. Phương pháp này
cũng có thể được dùng để ngăn chặn khả năng DOS không cho người dùng truy
16
cập dịch vụ.
- Thiết lập cơ chế huỷ yêu cầu (drop request): nếu nó vi phạm một số
quy định như: thời gian trễ (delay) kéo dài, tốn nhiều tài nguyên để xử lý,
gây ra sự tắc nghẽn (deadlock). Kỹ thuật này triệt tiêu khả năng làm cạn kiệt
năng lực hệ thống, tuy nhiên nó cũng giới hạn một số hoạt động thông thường
của hệ thống, cần cân nhắc khi sử dụng.
Chuyển hướng của cuộc tấn công:
Honeypots: Một kỹ thuật đang được nghiên cứu là Honeypots. Honeypots
là một hệ thống được thiết kế nhằm đánh lừa kẻ tấn công (attacker) tấn công
vào khi xâm nhập hệ thống mà không chú ý đến hệ thống quan trọng thực sự.
Honeypots rất hiệu quả trong việc phát hiện và xử lý xâm nhập, vì trên
Honeypots đã thiết lập sẵn các cơ chế giám sát và báo động.
Ngoài ra Honeypots còn có giá trị trong việc học hỏi và rút kinh nghiệm
từ kẻ tấn công, do Honeypots ghi nhận khá chi tiết mọi động thái của kẻ
tấn công trên hệ thống. Nếu kẻ tấn công bị đánh lừa và cài đặt Agent hay
Handler lên Honeypots thì khả năng bị triệt tiêu toàn bộ sự tấn công là rất cao.
1.5. Vai trò và mục đích của việc theo dõi sự thay đổi nội dung trang web
Ngày nay việc kiểm soát an ninh mạng như tường lửa (Firewall), Mạng
riêng ảo (VPN - Virtual Private Network) là những công cụ quan trọng để giữ
cho các trang web được an toàn hơn, nhưng những công cụ này không đủ để
đảm bảo an toàn an ninh cho các trang web hiện nay. Như chúng ta biết, môi
trường web là môi trường mở, nguy cơ lúc nào cũng có thể bị tấn công xẩy ra
mất an toàn an ninh cho trang web là rất cao. Chính vì vậy phải xây dựng một
hệ thống với công cụ phát hiện sớm những thay đổi bất thường không như mong
muốn đồng thời đưa ra những cảnh báo cho các nhà quản trị web để họ kịp thời
có những giải pháp phù hợp là rất cần thiết.
17
Hầu hết các cuộc tấn công phổ biến gần đây nhất là các cuộc tấn công nhằm phá huỷ các trang web. Những kẻ tấn công thường sử dụng các loại mã độc (virus, worm, trojan, và các mã độc hại khác…) để xóa, sửa đổi hoặc thay thế các trang web trên các máy chủ (Web Server) với nhiều mục đích khác nhau như muốn thể hiện khả năng của bản thân, bôi nhọ huỷ hoại uy tín của cá nhân cũng như các tổ chức, lấy cắp các thông tin của người sử dụng khi truy cập vào Website giả mạo…
Các lỗ hổng trang web là một mục tiêu mà kẻ tấn công (hacker) thường nhắm đến. Kẻ tấn công thường sử dụng một số công cụ tìm kiếm rộng và nhanh, tìm ra các lỗ hổng điểm yếu của trang web (các điểm yếu cụ thể) và nhanh chóng khai thác những điểm yếu đó.
Các cuộc tấn công vào các trang web chủ yếu là để: • Thay đổi nội dung của một trang web. • Thay đổi bất kỳ phần nào của nội dung của một trang web. • Thay thế hoàn toàn một trang web. • Thay đổi bề ngoài của một trang web. • Chuyển hướng một trang web. • Phá hủy hoặc xóa một trang web. Mục đích chính của việc theo dõi sự thay đổi nội dung trang web là phát hiện các cuộc tấn công dựa trên biện pháp đa kiểm tra nội dung trên các trang web. Hệ thống sẽ kiểm tra giám sát đưa ra các cảnh báo nếu như có bất kì các cuộc tấn công nào làm thay đổi nội dung bất thường của các trang web.
1.6. Kết luận chương 1
Trong chương 1 luận văn đã đánh giá tổng quan tình hình mất an ninh, an toàn trên nền web. Phương thức được sử dụng nhằm đảm bảo tính toàn vẹn của các tài liệu trên Internet. Trong chương tiếp theo, tác giả sẽ tiếp tục tìm hiểu một số khái niệm cơ bản, mô hình kiến trúc Web, thuật toán theo dõi sử sự bảo toàn thông tin tài liệu trên Web.
18
Chương 2. NHỮNG PHƯƠNG PHÁP PHÁT HIỆN THAY ĐỔI NỘI DUNG
2.1. Những vẫn đề cơ bản về Web
2.1.1. Khái niệm cơ bản
2.1.1.1. Khái niệm web
World Wide Web (www), gọi tắt là web, là một không gian thông tin toàn
cầu mà mọi người có thể truy nhập (gửi và nhận thông tin) qua các máy tính
nối với mạng Internet. Thuật ngữ này thường được hiểu nhầm là từ đồng nghĩa
với chính thuật ngữ Internet. Nhưng web thực ra chỉ là một trong các dịch vụ
chạy trên Internet.
Các tài liệu trên web được lưu trữ trong một hệ thống siêu văn bản
(hypertext) đặt tại các máy chủ nối mạng Internet. Người dùng phải sử dụng
một chương trình được gọi là trình duyệt web (web browser) để xem các siêu
văn bản này. Chương trình này sẽ nhận thông tin tại ô địa chỉ URL do người sử
dụng yêu cầu, sau đó trình duyệt sẽ tự động gửi thông tin đến máy chủ (web
server) và hiển thị trên màn hình máy tính của người xem. Người dùng có thể
theo các liên kết siêu văn bản (hyperlink) trên mỗi trang web để nối với các tài
liệu khác hoặc gửi thông tin phản hồi lên máy chủ trong một quá trình tương
tác. Hoạt động truy tìm thông tin theo các siêu liên kết thường được gọi là duyệt
web.
Quá trình này cho phép người dùng có thể lướt các trang web để lấy thông
tin. Tuy nhiên độ chính xác và chứng thực của thông tin tùy thuộc vào uy tín
của các website đưa ra thông tin đó.
2.1.1.2. Hoạt động của web
Thông qua trình duyệt, người dùng cuối sẽ kết nối đến máy chủ phục vụ
web bằng địa chỉ URL. Tại đây, máy chủ phục vụ web sẽ xử lý kết nối và gửi
yêu cầu đến ứng dụng web. Tùy theo yêu cầu, ứng dụng web sẽ truy vấn đến
cơ sở dữ liệu và nhận kết quả trả về, sau đó sẽ gửi phản hồi về máy chủ phục
19
vụ web. Cuối cùng máy chủ phục vụ web sẽ gửi dữ liệu về trình duyệt dưới
dạng siêu văn bản và người dùng cuối sẽ nhận thông tin hiển thị trên trình duyệt.
2.1.1.3. Trình duyệt web
Trình duyệt web (web browser) là một phần mềm ứng dụng cho phép
người sử dụng xem và tương tác với các văn bản, hình ảnh, đoạn phim, nhạc,
trò chơi và các thông tin khác ở trên một trang web của một địa chỉ web trên
mạng toàn cầu hoặc mạng nội bộ. Trình duyệt web cho phép người sử dụng
truy cập các thông tin trên các trang web một cách nhanh chóng và dễ dàng, nó
đọc định dạng HTML, CSS, XML,… để hiển thị, do vậy một trang web có thể
hiển thị khác nhau trên các trình duyệt khác nhau.
Một số trình duyệt web phổ biến hiện nay bao gồm Internet Explorer,
Mozilla Firefox, Safari, Google Chrome, Opera,…
2.1.1.4. Địa chỉ URL
Địa chỉ URL (Uniform Resource Locator) được dùng để tham chiếu tới
tài nguyên trên Internet. URL mang lại khả năng siêu liên kết cho các trang
mạng, các tài nguyên khác nhau.
Giao thức (ví dụ: http, ftp) nhưng cũng có thể là một cái tên khác (ví dụ:
Một URL gồm các thành phần sau:
Tên miền (ví dụ: example.com.vn, abc.vn).
Cổng (ví dụ: 80, 8080), tuy nhiên thành phần này có thế không bắt buộc.
Đường dẫn tuyệt đối trên máy phục vụ của tài nguyên (ví dụ:
news, mailto).
thumuc/trang).
20
2.1.1.5. Giao thức HTTP và HTTPS
- HTTP (Hypertext Transfer Protocol), là giao thức thuộc lớp ứng dụng
trong mô hình tham chiếu OSI. Hoạt động thông thường ở cổng (port) 80 và là
giao thức hướng kết nối.
GET /page/index.php HTTP/1.1
Phương thức: GET
Tên miền: securitydaily.net
Đường dẫn: /page/index.php
Phiên bản: HTTP/1.1
GET: Phương thức lấy một đối tượng hoặc tài nguyên nào đó trên máy
- Các phương thức hoạt động của HTTP:
POST: Phương thức mà máy trạm (Client) sử dụng để gửi thông tin đến
chủ (server).
PUT: Phương thức dùng để máy trạm (Client) tải dữ liệu lên (upload) Server.
DELETE: Phương thức giúp Client xoá các đối tượng, tài nguyên từ các
các Server.
HEAD: Phương thức xác minh rằng một đối tượng có tồn tại hay không.
TRACE: Phương thức được sử dụng để gọi từ xa một lớp ứng dụng trở lại.
máy chủ (server).
- HTTPS (HTTP over SSL/TLS).
Là một sự kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay
TLS cho phép trao đổi thông tin một cách bảo mật trên Internet. Các kết nối
HTTPS thường được sử dụng cho các giao dịch thanh toán trên Web và cho các
giao dịch nhạy cảm trong các hệ thống thông tin, khi dữ liệu cần phải được bảo
vệ an toàn.
Khi một HTTPS được thiết lập nó sẽ giúp bảo mật thông tin truyền giữa
hai máy tính. Vậy, cứ thông tin nào cần bảo mật trên nền web thì có thể sử dụng
21
nó. Nhưng đi kèm với quá trình bảo mật có nghĩa là hệ thống phải xử lý nhiều
hơn.
2.1.1.6. Tên miền
Mục đích chính của tên miền là để cung cấp một hình thức đại diện, hay
nói cách khác, dùng những tên dễ nhận biết, thay cho những tài nguyên Internet
mà đa số được đánh số bằng địa chỉ IP rất khó nhớ. Việc dịch từ tên miền sang
địa chỉ IP và ngược lại do hệ thống DNS trên toàn cầu thực hiện.
Tên miền có chiều dài tối đa 67 ký tự và chỉ bao gồm các ký tự chữ cái
thông thường và các ký tự số.
Tên miền Quốc gia quy định theo Quốc gia của bạn, ví dụ: Việt Nam là
Tên miền gồm hai dạng là tên miền Quốc gia và tên miền Quốc tế.
Tên miền Quốc tế: được dùng khắp trên thế giới như: .com; .net; .org; .edu.
.vn; Nhật Bản là .jp; Anh là .uk; Mỹ là .us ….
.com: Dành cho các công ty thương mại.
.net: Dành cho các công ty về mạng (network) hay cung cấp dịch vụ
Ý nghĩa một số tên miền mở rộng thông dụng:
.org: Dành cho các tổ chức, nhóm.
.gov: Dành cho các tổ chức chính phủ.
.edu: Dành cho các tổ chức giáo dục, trường học.
.biz: Dành cho các công ty thương mại trực tuyến.
mạng.
2.1.1.7. Web Server
Web Server là máy chủ cài đặt các chương trình phục vụ các ứng dụng
web. Web Server có khả năng tiếp nhận yêu cầu từ các trình duyệt web và gửi
phản hồi đến máy khách những trang web thông qua môi trường mạng Internet
qua giao thức HTTP hoặc các giao thức khác.
Một số Web Server thông dụng hiện nay:
22
Hình 2.1. Một số Web Server thông dụng
Web Application là nơi các kịch bản hay mã nguồn phát triển ra ứng dụng
web được thực thi. Lớp này sẽ biên dịch các mã nguồn tương ứng và thực hiện
các truy vấn đến cơ sở dữ liệu dựa vào mã nguồn ứng dụng.
Trong giai đoạn khởi đầu của website, có rất nhiều ngôn ngữ lập trình
được sử dụng như: JSP, ASP, PHP, ASP.NET,… Nhưng hiện tại có hai ngôn
ngữ được dùng phổ biến là PHP và ASP.NET.
2.1.1.8. Database Server
Cơ sở dữ liệu máy chủ (Database Server) lưu trữ tất cả các dữ liệu liên
quan đến website. Bất kỳ người sử dụng nào trên mạng máy tính, tại các thiết
bị đầu cuối, về nguyên tắc có quyền truy nhập khai thác toàn bộ hay một phần
dữ liệu theo quyền hạn hay tương tác mà không phụ thuộc vào vị trí địa lý.
23
2.1.2. Một số mô hình kiến trúc web
Mô hình của một ứng dụng web được phân theo các lớp của hệ thống.
Việc hiểu rõ các lớp trong một ứng dụng web giúp người phát triển dễ dàng
phòng thủ hệ thống cũng như khi xâm nhập, đánh giá hệ thống.
2.1.2.1. Mô hình kiến trúc web 1 lớp
Trong mô hình 1 lớp, các máy chủ phục vụ web, ứng dụng web, máy chủ cơ
sở dữ liệu đều được thiết lập trên cùng một tài nguyên máy chủ như hình 2.2.
Ưu điểm: Dễ dàng cài đặt và không tốn nhiều tài nguyên.
Nhược điểm: Khi một lớp bị tin tặc tấn công và chiếm quyền kiểm soát có
thể dẫn đến các lớp khác cũng bị ảnh hưởng theo. Tuy nhiên, sẽ gặp nhiều khó
khăn trong quá trình vận hành và triển khai các biệp pháp bảo vệ cho ứng dụng.
Hình 2.2. Mô hình kiến trúc web 1 lớp
24
2.1.2.2. Mô hình kiến trúc web 2 lớp
Khác với mô hình 1 lớp, trong mô hình 2 lớp này các máy chủ phục vụ
web, ứng dụng web được thiết lập trên cùng một máy chủ, còn máy chủ cơ sở
dữ liệu được thiết lập trên một máy chủ khác như hình 2.3.
Ưu điểm: Không tốn quá nhiều tài nguyên nhưng vẫn đảm bảo được một
phần nào đó quá trình vận hành và bảo mật.
Nhược điểm: Máy chủ phục vụ web và ứng dụng web vẫn còn đặt chung
trên một máy chủ nên khi máy chủ phục vụ web bị tin tặc tấn công và chiếm
quyền kiểm soát, mã nguồn ứng dụng web bị lộ, điều này có thể dẫn đến máy
chủ cở sở dữ liệu cũng có thể bị kiểm soát.
Hình 2.3. Mô hình kiến trúc web 2 lớp
2.1.2.3. Mô hình kiến trúc web 3 lớp
Trong mô hình 3 lớp này, các máy chủ phục vụ web, ứng dụng web và
máy chủ cơ sở dữ liệu đều được thiết lập trên mỗi máy chủ độc lập như
hình 2.4.
Ưu điểm: Dễ dàng vận hành hệ thống và chủ động phòng, chống các nguy
cơ tấn công từ tin tặc.
25
Nhược điểm: Tốn kém nhiều tài nguyên và quá trình cài đặt.
Hình 2.4. Mô hình kiến trúc web 3 lớp
2.1.2.4. Mô hình kiến trúc web N lớp
Trong mô hình N lớp, mỗi máy chủ phục vụ web, ứng dụng web và máy
chủ cơ sở dữ liệu đều được thiết lập trên mỗi cụm máy chủ độc lập như hình
2.5. Đối với những hệ thống cung cấp dịch vụ lớn, đòi hỏi phải có nhiều tài
nguyên mới đủ phục vụ người dùng thì mô hình này là giải pháp tốt.
Ưu điểm: Cung cấp dịch vụ rộng lớn với nhiều người sử dụng.
Nhược điểm: Tài nguyên nhiều, chi phí cài đặt và vận hành cao.
26
Hình 2.5. Mô hình kiến trúc web N lớp
2.1.2.5. Ý nghĩa của việc phân lớp
Qua việc phân tích các mô hình trên cho thấy, nếu giữa các lớp không có
sự tách biệt rõ ràng thì khi một lớp bị tin tặc tấn công và chiếm quyền kiểm soát
có thể dẫn đến các lớp khác cũng bị ảnh hưởng theo.
Ví dụ trường hợp tất cả ứng dụng web, cơ sở dữ liệu đều được đặt trên
máy chủ phục vụ web thì khi tin tặc tấn công vào máy chủ phục vụ web có thể
dẫn đến mã nguồn và cơ sở dữ liệu của ứng dụng đó bị xâm phạm. Do vậy, khi
triển khai thực tiễn nên thiết kế tách biệt độc lập theo mô hình 3 lớp để tránh
tình trạng một lớp bị tấn công và chiếm quyền kiểm soát dẫn đến các lớp khác
bị ảnh hưởng.
Việc phân loại độc lập 3 lớp như trên sẽ tạo điều kiện thuận lợi cho việc
vận hành, bảo trì hệ thống cũng như dễ dàng áp dụng các biện pháp bảo vệ đối
với mỗi lớp riêng biệt.
27
2.1.3. Mô tả Website và cách hoạt động
Website là một “trang web” trên mạng Internet, đây là nơi giới thiệu những
thông tin, hình ảnh về doanh nghiệp và sản phẩm, dịch vụ của doanh nghiệp
(hay giới thiệu bất cứ thông tin gì) để khách hàng có thể truy cập ở bất kỳ nơi
đâu, bất cứ lúc nào.
Website là tập hợp nhiều trang [web page]. Khi doanh nghiệp xây dựng
website nghĩa là đang xây dựng nhiều trang thông tin, nhiều loại sản phẩm, dịch
vụ....Để tạo nên một website cần phải có 3 yếu tố cơ bản:
- Cần phải có tên miền (domain).
- Nơi lưu trữ website (hosting).
- Nội dung các trang thông tin [web page].
Một số thuật ngữ cơ bản:
Website động (Dynamic website) là website có cơ sở dữ liệu, được cung
cấp công cụ quản lý website (Admin Tool). Đặc điểm của website động là tính
linh hoạt và có thể cập nhật thông tin thường xuyên, quản lý các thành phần
trên website dễ dàng. Loại website này thường được viết bằng các ngôn ngữ
lập trình như PHP, Asp.net, JSP, Perl,..., quản trị Cơ sở dữ liệu bằng SQL hoặc
MySQL...
Website tĩnh do lập trình bằng ngôn ngữ HTML theo từng trang, không
có cơ sở dữ liệu và không có công cụ quản lý thông tin trên website. Thông
thường website tĩnh được thiết kế bằng các phần mềm như FrontPage,
Dreamwaver,... Đặc điểm của website tĩnh là ít thay đổi nội dung, sự thay đổi
nội dung này thường liên quan đến sự thay đổi các văn bản đi kèm thể hiện nội
dung trên đó.
Hiện nay, hầu hết các doanh nghiệp đều sử dụng website động, thế hệ
công nghệ website được mọi người biết đến là web 2.0.
28
- Tên miền (domain): Tên miền chính là địa chỉ website, trên internet
chỉ tồn tại duy nhất một địa chỉ (tức là tồn tại duy nhất một tên miền). Có
2 loại tên miền:
- Tên miền Quốc tế: là tên miền có dạng .com; .net; .org; .biz; .name ...
- Tên miền Việt Nam: là tên miền có dạng .vn; .com.vn; .net.vn; org.vn;
.gov.vn;...
- Lưu trữ website: Dữ liệu thông tin của website phải được lưu trữ trên
một máy tính máy chủ (server) luôn hoạt động và kết nối với mạng Internet.
Một máy chủ cung cấp dịch vụ web có thể lưu trữ nhiều website, nếu máy chủ
này bị sự cố chẳng hạn tắt trong một thời điểm nào đó thì không ai có thể truy
cập được những website lưu trữ trên máy chủ tại thời điểm bị sự cố.
- Tùy theo nhu cầu lưu trữ thông tin mà doanh nghiệp có thể thuê dung
lượng thích hợp cho website [thuê dung lượng máy chủ cung cấp dịch vụ -host].
- Dung lượng host: Là nơi để lưu cơ sở trữ dữ liệu của website (hình
ảnh, thông tin …), đơn vị đo dung lượng thường là Mb hoặc Gb.
- Băng thông hay dung lượng đường truyền truyền: Là tổng số Mb dữ liệu
tải lên máy chủ hoặc tải về từ máy chủ (download, upload) nơi đặt website,
đơn vị đo thông thường là Mb/Tháng.
2.1.4. Các dịch vụ và ứng dụng trên nền web
Với công nghệ hiện nay, website không chỉ đơn giản là một trang tin cung
cấp các tin bài đơn giản. Những ứng dụng viết trên nền web không chỉ được
gọi là một phần của website nữa, giờ đây chúng được gọi là phần mềm viết trên
nền web. Có rất nhiều phần mềm chạy trên nền web như chương trình xử lý
văn bản Google word, chương trình xử lý bảng tính Google spreadsheets, thư
điện tử (Email)…
Một số ưu điểm của phần mềm hay ứng dụng chạy trên nền web:
- Mọi người đều có trình duyệt và bạn chỉ cần trình duyệt để chạy phần mềm.
29
- Phần mềm luôn luôn được cập nhật vì chúng chạy trên máy chủ (server)
- Luôn sẵn sàng 24/7
- Dễ dàng sao lưu (backup) dữ liệu thường xuyên
- Có thể truy cập mọi lúc, mọi nơi, miễn là bạn có mạng
- Chi phí triển khai cực rẻ so với phần mềm chạy trên máy tính bàn (desktop).
Hãy hình dung bạn có một phần mềm quản lý bán hàng hay quản lý công
việc ở công ty. Không phải lúc nào bạn cũng ở công ty, với phần mềm viết trên
nền web, bạn có thể vào kiểm tra, điều hành ở bất cứ đâu, thậm chí bạn chỉ cần
một chiếc điện thoại chạy được trình duyệt như IPhone mà không cần đến một
chiếc máy tính.
2.2. Một số phương pháp đảm bảo an ninh Web
2.2.1. Đảm bảo an ninh hệ điều hành Webserver
Tất cả các Webserver phổ biến hiện nay đều hoạt động trên một hệ điều
hành (HĐH) có mục đích chung. Nhiều vấn đề bảo mật có thể tránh được nếu
các HĐH của những Webserver đó được cấu hình thích hợp. Bởi vì các nhà sản
xuất không biết hết các nhu cầu an ninh của mỗi cơ quan, nên mỗi quản trị viên
Webserver phải cấu hình các máy chủ mới để phản ánh các yêu cầu an ninh của
cơ quan mình và cấu hình lại chúng theo sự thay đổi những yêu cầu đó.
5 bước cơ bản cần thiết để duy trì an ninh HĐH cơ bản:
Lập kế hoạch cài đặt và triển khai của HĐH máy chủ và các thành phần
khác cho Webserver đó.
Vá và cập nhật HĐH máy chủ theo yêu cầu.
Hardening (cứng hóa) và cấu hình HĐH máy chủ để giải quyết tương
xứng vấn đề an ninh.
Cài đặt và cấu hình các kiểm soát bảo mật bổ sung (additional security
controls), nếu cần thiết.
30
Kiểm tra HĐH máy chủ để đảm bảo rằng bốn bước trước đó giải quyết
đầy đủ tất cả các vấn đề an ninh.
2.2.2. Bảo đảm an ninh nội dung Web
Hai thành phần chính của đảm bảo an ninh Web là đảm bảo an ninh ứng
dụng máy chủ bên dưới và HĐH, và đảm bảo an ninh nội dung thật sự của Web.
Trong số này, bảo đảm an ninh nội dung Web thường bị bỏ qua.
2.2.2.1. Công bố thông tin trên Website công khai
Nhiều tổ chức không có một quy trình hoặc chính sách công khai nội dung
web nhằm xác định loại thông tin nào công bố công khai, thông tin nào công
bố với truy cập bị giới hạn, và thông tin nào nên được bỏ đi từ bất kỳ kho lưu
trữ nào có thể truy cập công khai. Đây là rắc rối bởi vì các website là một trong
những nơi đầu tiên mà các thực thể độc hại tìm kiếm thông tin có giá trị.
Một Website công khai không nên chứa các thông tin sau:
Các bản ghi phân loại (classified records).
Các luật và thủ tục cá nhân nội bộ.
Thông tin nhạy cảm và riêng tư (có sở hữu).
Thông tin cá nhân về nhân sự hoặc người dùng của một cơ quan tổ chức.
Số điện thoại, địa chỉ e-mail, hoặc các danh sách chung của nhân viên
trừ khi cần thiết để hoàn thành yêu cầu cơ quan.
Và các thông tin riêng của tổ chức và cá nhân.
2.2.2.2. Theo dõi các quy định về thu thập thông tin cá nhân
Nhiều cơ quan chính phủ đã ban hành các luật và quy định về việc thu thập
thông tin về người dùng truy cập vào các Website công khai. Các tổ chức chính
phủ và cơ quan nên nhận thức các luật, các quy định, và các hướng dẫn thích
hợp có thể áp dụng này cũng như nắm bắt được sự thay đổi các yêu cầu pháp
lý, quy định, và hợp đồng.
31
2.2.2.3. Giảm nhẹ các cuộc tấn công gián tiếp trên nội dung
Các tấn công nội dung gián tiếp là không trực tiếp tấn công vào Webserver
hoặc nội dung của nó. Chúng can dự qua các phương tiện trung gian nhằm có
được thông tin người dùng, đó là những người thường hay truy cập vào trang
Web mà được bảo vệ và duy trì trên webserver đó. Các đề tài phổ biến của các
tấn công này là ép buộc người dùng truy cập vào một website độc hại do kẻ tấn
công thiết lập và tiết lộ thông tin cá nhân trong niềm tin rằng họ đã truy cập vào
trang web hợp pháp. Hai loại tấn công gián tiếp phổ biến được mô tả là phishing
và pharming.
2.2.3. Sử dụng kỹ thuật xác thực và mã hóa
Các Webserver công khai thường hỗ trợ một loạt các kỹ thuật nhận dạng
và xác thực người dùng với các đặc quyền khác nhau cho các thông tin truy
cập. Một số kỹ thuật này dựa trên các hàm mật mã có thể cung cấp một kênh
mã hóa giữa client trình duyệt và webserver.
Không có xác thực người dùng, các tổ chức sẽ không thể hạn chế truy cập
đến các thông tin rõ ràng cho các người dùng đã được phân quyền. Tất cả các
thông tin cư trú trên Webserver công khai sẽ có thể truy cập bởi bất kỳ ai có
quyền truy cập vào server đó. Ngoài ra, không có một số quy trình xác thực
server, người dùng sẽ không thể xác định liệu máy chủ đó là webserver “đích
thực” hay là một phiên bản giả mạo được điều hành bởi đối tượng độc hại.
Mã hóa có thể được sử dụng để bảo vệ thông tin đi qua kết nối giữa client
trình duyệt web và webserver công khai. Không có mã hóa, bất kì ai có quyền
truy cập vào giao thông mạng đều có thể định rõ (và có thể thay đổi) nội dung
thông tin nhạy cảm, ngay cả khi người dùng truy cập vào các thông tin đã được
xác thực một cách cẩn thận. Điều này có thể vi phạm tính bảo mật và tính toàn
vẹn của thông tin quan trọng.
32
2.2.3.1. Xác định các yêu cầu xác thực và mã hóa
Các cơ quan tổ chức nên định kỳ kiểm tra tất cả các thông tin có thể truy
cập vào Webserver công khai và xác định các yêu cầu an ninh cần thiết. Trong
khi làm vậy, cơ quan nên định rõ các thông tin mà chia sẻ các yêu cầu anh ninh
và bảo vệ tương đương. Đối với các thông tin nhạy cảm, cơ quan nên xác định
người dùng và nhóm người dùng có quyền truy cập tới mỗi tập tài nguyên
2.2.3.2. Xác thực dựa trên địa chỉ
Kỹ thuật xác thực đơn giản nhất được hỗ trợ bởi hầu hết các Webserver là
xác thực dựa trên địa chỉ. Kiểm soát truy cập dựa trên địa chỉ IP và/hoặc tên
máy chủ (hostname) của thông tin yêu cầu. Mặc dù dễ dàng triển khai cho một
nhóm nhỏ người dùng, xác thực địa chỉ có thể khó sử dụng cho các webserver
mà có lượng người dùng tiềm năng lớn (tức là, hầu hết webserver công khai).
Nó dễ nhiễm một vài loại tấn công, bao gồm giả mạo IP và đầu độc DNS.
2.2.3.3. Xác thực cơ bản
Kỹ thuật xác thực cơ bản sử dụng cấu trúc thư mục của nội dung
webserver. Tất cả các tập tin trong cùng thư mục được cấu hình với cùng các
đặc quyền truy cập. Một người dùng có yêu cầu sẽ được cung cấp một ID (nhận
dạng) và password đã được chấp nhận để truy cập vào những tập tin trong một
thư mục đã cho. Kiểm soát truy cập hạn chế nhiều hơn có thể được thực thi ở
mức một tập tin đơn trong một thư mục nếu phần mềm webserver cung cấp khả
năng này.
Từ góc độ an ninh, nhược điểm chính của kỹ thuật này là tất cả thông tin
password được truyền đi dưới dạng encode (lập mã) chứ không phải dạng
encrypt (mã hóa). Bất kì ai biết nguyên tắc lập mã đã được tiêu chuẩn hóa này
đều có thể giải mã (decode) password sau khi sao chụp nó bằng một chương
trình nghe lén mạng. Hơn nữa, bất cứ nội dung web nào đều được truyền đi như
là bản rõ, do đó nội dung này cũng bị sao chụp, xâm phạm tính bảo mật. Những
33
hạn chế này có thể được khắc phục bằng cách sử dụng xác thực cơ bản kết hợp
với SSL/TLS.
2.2.4. Triển khai cơ sở hạ tầng mạng an ninh
Cơ sở hạ tầng mạng (hỗ trợ Webserver) đóng một vai trò quan trọng trong
vấn đề đảm bảo an ninh Webserver. Trong hầu hết các cấu hình, cơ sở hạ tầng
mạng là tuyến phòng vệ đầu tiên giữa Internet và một Webserver công cộng.
2.2.4.1. Thành phần và cấu trúc mạng
Các firewall và router là những thiết bị hay hệ thống kiểm soát luồng giao
thông (traffic) mạng giữa các mạng với nhau. Chúng có thể bảo vệ Webserver
từ các lỗ hổng cố hữu trong bộ giao thức TCP/IP và giúp giảm vấn đề an ninh
liên quan tới sự mất an toàn của các ứng dụng và các HĐH.
Thành phần và cấu trúc mạng là khía cạnh đầu tiên trong nhiều khía cạnh
có quyết định quan trọng nhất tác động tới vấn đề đảm bào an ninh Webserver
bởi vì chúng xác định những yếu tố hạ tầng mạng nào bảo vệ Webserver. Ví
dụ, nếu Webserver đặt trước firewall chính của cơ quan, thì sau đó firewall
không thể được sử dụng để điều khiển traffic đến và đi khỏi Webserver. Thành
phần và cấu trúc mạng cũng định rõ các phần khác nào của mạng là dễ bị tổn
thương nếu Webserver bị thỏa hiệp.
2.2.4.2. Cấu hình phần tử mạng
Một khi Webserver đã được đặt vào mạng thì các phần tử cơ sở hạ tầng
mạng nên được cấu hình để hỗ trợ và bảo vệ nó. Các phần tử chính của một cơ
sở hạ tầng mạng mà có ảnh hưởng tới việc đảm bảo an ninh Webserver là
firewall, router, IDS, IPS, switch, load-balancer, và proxy ngược. Mỗi một phần
tử cá một vai trò quan trọng và là then chốt trong chiến lược tổng quan bảo vệ
Webserver theo phòng vệ chiều sâu. Một mình firewall hoặc IPS đơn lẻ không
thể bảo vệ đầy đủ một Webserver từ các mối đe dọa hoặc các cuộc tấn công.
34
2.2.5. Quản trị Webserver
2.2.5.1. Logging
Nắm bắt được dữ liệu chính xác trong các bản ghi nhật kí (log) và sau đó
theo dõi chặt chẽ những bản ghi đó là điều sống còn. Log mạng (nhật kí mạng)
và log hệ thống (nhật kí hệ thống) rất quan trọng, đặc biệt là log hệ thống trong
trường hợp giao tiếp HTTPS, trong đó giám sát mạng là ít hiệu quả hơn. Phần
mềm Webserver có thể cung cấp dữ liệu log bổ sung liên quan tới các sự kiện
Web cụ thể. Tương tự như vậy, các ứng dụng Web cũng có thể duy trì log riêng
về các hoạt động của chúng.
Log của Webserver cung cấp:
Cảnh báo các hoạt động đáng ngờ mà yêu cầu điều tra kỹ hơn.
Theo dõi các hoạt động của kẻ tấn công.
Hỗ trợ khôi phục hệ thống.
Hỗ trợ điều tra sau sự kiện.
Yêu cầu các thông tin cho việc tố tụng pháp lý.
2.2.5.2. Thủ tục sao lưu Webserver
Một trong những chức năng quan trọng nhất của quản trị viên Webserver
là duy trì tính toàn vẹn dữ liệu trên Webserver. Điều này là quan trọng bởi vì
Webserver thường là một số trong những server bị phơi bày ra nhất và quan
trọng nhất trong mạng của một tổ chức cơ quan. Có hai thành phần chính để
sao chép dữ liệu trên Webserver: sao chép thường lệ dữ liệu và HĐH trên
Webserver, và duy trì một bản sao có thẩm quyền được bảo vệ tách biệt của nội
dung Web cơ quan.
2.2.5.3. Kiểm tra bảo mật Webserver
Kiểm tra an ninh định kỳ Webserver công cộng là rất quan trọng. Nếu
không có kiểm tra định kỳ, không có đảm bảo rằng các biện pháp bảo vệ hiện
35
tại đang làm việc hoặc bản vá an ninh được áp dụng bởi quản trị viên Webserver
là hoạt động như đã được báo trước.
Mặc dù đang tồn tại rất nhiều kỹ thuật kiểm tra an ninh, nhưng quét lỗ
hổng là phổ biến nhất. Quét lỗ hổng giúp một quản trị viên Webserver xác định
các lỗ hổng xác minh liệu rằng các biện pháp an ninh hiện có có hiệu quả hay
không. Thử nghiệm thâm nhập cũng được sử dụng, nhưng nó thường ít được
sử dụng thường xuyên hơn và thường chỉ như là một phần của một thử nghiệm
thâm nhập tồng thể của mạng cơ quan.
2.3. Sử dụng dấu vân của tài liệu (Document Fingerprint) trong việc theo
dõi sự thay đổi nội dung trang Web
Hiện nạy, việc sử dụng Web nói chung và các dịch vụ trên nền Web nói
riêng là hiển nhiên, bắt buộc đối với người dùng cá nhân cũng như các tổ
chức. Làm thế nào để đảm bảo đảm bảo tính an toàn cũng như bảo toàn nội
dung trang là một vấn đề đối với những người quản trị web. Có một khái
niệm được đưa ra nhằm phục vụ cho việc bảo đảm tính toàn vẹn của nội dung
tài liệu – Dấu vân tay tài liệu (Document Fingerprint).
Trong khoa học máy tính, dấu vân tay xác định duy nhất các dữ liệu ban
đầu cho tất cả các mục đích thực tế cũng như nhận diện dấu vân tay của con
người cho các mục đích thực tế khác nhau. Một dấu vân tay tài liệu là một
tập hợp các số nguyên đại diện cho một số nội dung của tài liệu. Mỗi số
nguyên được gọi là một giá trị băm.
Thông thường, một dấu vân tay tài liệu được tạo ra bằng cách chọn chuỗi
con từ các văn bản và áp dụng một hàm toán học cho mỗi chuỗi con lựa chọn.
Chức năng này, là một hàm băm để tạo ra một số nguyên (giá trị băm). Số
nguyên sau đó được lưu trữ trong một cơ sở dữ liệu (CSDL) để truy cập nhanh
khi truy vấn . Khi một tài liệu được truy vấn sẽ được so sánh các số nguyên với
các số nguyên của tài liệu gốc đã được lưu trữ trong CSDL, các dấu vân tài liệu
36
cho các truy vấn được tạo ra. Đối với mỗi giá trị băm trong dấu vân tài liệu, chỉ
số truy vấn và danh sách các dấu vân kết hợp được lấy ra. Số điểm chung (giá
trị băm) của tài liệu cần truy vấn và giá trị băm của tài liệu gốc được lưu trong
CSDL là điểm để xác định tài liệu tương ứng với nhau không?
2.4. Thuật toán kiểm tra dấu vân tay tài liệu - Rabin Fingerprint
Thuật toán Rabin Fingerprint là một trong những thuật toán tính dấu vân
tay thực hiện khóa công khai.
Thuật toán vân tay điển hình của Rabin tạo ra các số nguyên (giá trị băm)
từ các chuỗi trong các trang web, bởi vì đó là một giải pháp nhanh và dễ dàng
thực hiện, và đi kèm với nó là sự phân tích toán học chính xác của các xác suất
va chạm (hai tập tin có dấu vân tay giống nhau). Thuật toán của Rabin
Fingerprint được sử dụng trong hệ thống như sau:
Đầu vào: Các tập tin văn bản hoặc phần nội dung trích từ trang web
Đầu ra: Các số nguyên (giá trị băm) của văn bản
Bước 1: Bắt đầu.
Bước 2: Xử lý văn bản, xoá hết tất cả khoảng trắng từ trang web, các ký
tự đặc biệt (như:<>,%,!,…).
Bước 3: Chia văn bản thành các khối văn bản con có chiều dài là K. Số
chuỗi con và số mã băm của các chuỗi con phải bằng m-K+1 với m là kích
thước của văn bản.
Bước 4: Tính giá trị băm H(P) cho các chuỗi con như sau:
Khởi tạo:
Count=K;
Tr = T[r..r+n-1]
H(S) = S(n)+2*S(n-1)+4*S(n-2)+ … + 2n-1*S(1)
Do while count>0
Tính Hp(P) = H(P) mod p // là một giá trị băm của P
37
Tính Hp(Tr) = [2*Hp(Tr-1)-(2nmodp)*T[r-1]+T[r+n-1]]mod p//Tính giá
trị băm cho các chuỗi con tiếp theo.
Until count=1
Bước 5: Lưu lại tất cả các giá trị băm của văn bản.
Bước 6: Kết thúc.
Hình 2.6. Minh hoạ giải thuật Rabin Fingerprint
2.5 Kết luận chương 2
Trong chương 2 luận văn đã phân tích đánh giá một số khái niệm cơ bản,
mô hình Web. Vấn đề bảo mật Web. Tiếp cận cách sử dụng Dấu vân tay tài liệu
(Document Fingerprint) trong việc theo dõi sự thay đổi nội dung trang Web.
Trong chương tiếp theo, tác giả đề xuất xây dựng hệ thống phát hiện thay đổi
nội dung trang web dựa trên cải tiến thuật giải của Rabin Fingerprint.
38
Chương 3. XÂY DỰNG HỆ THỐNG PHÁT HIỆN THAY ĐỔI
NỘI DUNG TRANG WEB
3.1. Đề xuất cải tiến giải thuật Rabin Fingerprint
Thuật toán cải tiến của Rabin Fingerprint được đề xuất trong hệ thống như sau:
Đầu vào: Các tập tin văn bản hoặc phần nội dung trích từ trang web
Đầu ra: Các số nguyên (giá trị băm) của văn bản
Bước 1: Bắt đầu.
Bước 2: Xử lý văn bản, xoá hết tất cả khoảng trắng từ trang web, các ký
tự đặc biệt (như:<>,%,!,…).
Bước 3: Chia văn bản M thành K khối, mỗi khối con có kích thước là n.
K=m/n với m là kích thước của văn bản M, n là số nguyên dương cho trước là
kích thước của mỗi chuỗi con.
Bước 4: Tính mã băm H(P) cho các chuỗi con như sau:
Khởi tạo:
Tr = T[r..r+n-1];
K=0;
H(S) = S(n)+2*S(n-1)+4*S(n-2)+ … + 2n-1*S(1)
while (K { for (r=K*n; r<=K*n+n; r++) { Hp(Tr)= (Hp(Tr)+T[r]) mod p //Tính giá trị băm cho các chuỗi con, p là số nguyên tố lớn. } K++; } Bước 5: Lưu lại tất cả các giá trị băm của văn bản. 39 Bước 6: Kết thúc. Hình 3.1. Minh hoạ cải tiến giải thuật Rabin Fingerprint 3.2. Hệ thống phát hiện thay đổi nội dung trang Web Mục đích chính của hệ thống là để phát hiện bất kỳ các cuộc tấn công thay đổi web nào và đưa ra những cảnh bảo kịp thời cho người quản trị để có cách xử lý phù hợp. Để đạt được nhiệm vụ này, hệ thống giám sát website được thiết kế và triển khai trên 2 máy chủ: máy chủ Web và máy chủ giám sát. Với các hệ thống con (subsystem) được tích hợp và cơ sở dữ liệu tập trung. Các hệ thống con này và chức năng chính của chúng như sau: 40 Thứ tự Tên hệ thống con Chức năng Công bố trang web đã cho và duy trì Hệ thống cung cấp danh mục kiểm tra bao gồm các tên tập I trang web (Builder) tin website với các thuộc tính của chúng và giá trị băm. Hệ thống đa kiểm tra Theo dõi tính toàn vẹn những trang web II (Multi-Checker) đã được công bố. Hệ thống tự theo dõi Thẩm tra trạng thái của hệ thống đa kiểm III (Self-Watcher) tra. Hệ thống quản trị Điều khiển toàn bộ hệ thống giám sát IV (Admin) Website Là một CSDL chứa các tập tin cùng với Hệ thống lưu trữ CSDL V giá trị băm, các thuộc tính, và các (Check-List Database) khoảng thời gian (interval times). Các bản sao mới nhất của các trang web được lưu trữ trong một khu vực bên ngoài máy chủ web (Web-server), trên một máy chủ khác đặt tại một vùng mạng khác. Các thành phần đó và mối quan hệ giữ chúng được thể hiện trong sơ đồ sau: 41 Hình 3.2. Sơ đồ kiến trúc hệ thống giám sát website 3.2.1. Hệ thống Builder Hệ thống Builder hoạt động tại máy chủ giám sát khi hệ thống Admin thêm vào, chỉnh sửa, hoặc loại bỏ các trang web. Hệ thống Builder hoạt động như sau: - Tính toán giá trị băm và các thuộc tính (tên, kích thước của tập tin, loại, ngày chỉnh sửa) của các trang web đã cho (trang web mới được thêm vào hoặc trang web được chỉnh sửa). - Lưu những thông tin tính toán vào trong danh sách lưu trữ CSDL, và hệ thống cung cấp trang web (hệ thống Builder) có nhiệm vụ duy trì bảo quản danh sách này. - Công bố các trang web đã cho ở thư mục Intpub tại máy chủ web (Web- server). 3.2.2. Hoạt động Multi-checker Hệ thống con Multi-checker (đa kiểm tra) là trái tim của hệ thống giám sát website, nó chứa vài kiểm tra làm việc bên cạnh thư mục Intpub tại Web- server. Hệ thống sẽ thường xuyên kiểm tra định kỳ tính toàn vẹn của các trang web được công bố, và các trang web quan trọng như trang chủ (index.htm, 42 index.html, default.asp, default.aspx, start.php, home.php, default.asp). Do đó có một khoảng thời gian liên quan tới mỗi tập tin để kiểm tra lại tính toàn vẹn. Hệ thống hoạt động phụ thuộc vào một trong hai chế độ sau: - Chế độ kiểm tra cơ bản (basic mode): Khi hệ thống đa kiểm tra bắt đầu hoạt động, hệ thống sẽ kiểm tra các thuộc tính (tên, kích thước của tập tin, loại, và ngày chỉnh sửa) cho trang we hiện tại (trang web được lưu trong Intpub) và so sánh nó với trang web đã được lưu trữ trước của chính nó trong CSDL. Hình 3.3. Các thuộc tính cơ bản của tập tin - Chế độ kiểm tra nâng cao (advanced mode): Khi hệ thống Multi-checker bắt đầu hoạt động, hệ thống sẽ tính toán tìm giá trị băm (sử dụng thuật toán cải tiến Rabin Fingerprint) cho các trang web được công bố (được lưu trữ trên thư mục Intpub) và so sánh nó với trang web đã được lưu trữ trước của chính nó trong CSDL. Hệ thống Multi-checker đã triển khai bao gồm hai checker hoạt động tại chế độ “”basic mode” (checkerB01 và checkerB02) và hai checker hoạt động tại chế độ “advanced mode” (checkerA01 và checkerA02). Các trạng thái kiểm tra của hệ thống như sau: • Nếu trang web hiện không được liệt kê trong danh sách được lưu trữ trong CSDL, có nghĩa là các trang web này là một tập tin không hợp pháp có thể là tập tin mã độc hoặc virus... Hệ thống kiểm tra đưa ra cảnh báo “Không tồn tại trang web này trong CSDL hoặc có thể là tập tin độc hại”, người quản 43 trị trang web kiểm tra lại và đưa ra xử lý kịp thời. Nếu là trang web mới thì sẽ tính giá trị băm và các thuộc tính lưu vào CSDL. Nếu là tập tin mã độc hoặc virus thì loại nó ra khỏi hệ thống và tiếp tục kiểm tra các trang web tiếp theo. • Nếu như giá trị băm (trong chế độ kiểm tra nâng cao) hoặc bất kỳ thuộc tính nào (trong chế độ kiểm tra cơ bản) của trang web hiện tại khác so với bản gốc được lưu trữ ở CSDL, điều này có nghĩa là các trang web hiện tại đã bị sửa đổi về nội dung. Hệ thống kiểm tra đưa ra cảnh báo “Trang web đã bị sửa đổi về nội dung”, và tiếp tục kiểm tra các trang web tiếp theo. • Nếu tên trang web đã tồn tại trong CSDL và không tồn tại trong thư mục Intpub, có nghĩa là các trang web bị xóa khỏi thư mục Intpub công bố, và hệ thống kiểm tra đưa ra cảnh báo “Trang web đã bị xoá”, và tiếp tục kiểm tra các trang web tiếp theo. • Nếu thực hiện các kiểm tra không có vấn đề gì, hệ thống kiểm tra đưa ra cảnh báo “Không phát hiện sự thay đổi”, và tiếp tục kiểm tra các trang web tiếp theo. 3.2.3. Hệ thống Self-watcher Hệ thống tự theo dõi (Self-watcher) theo dõi từng checker của hệ thống đa kiểm tra (Multi-checker) để đảm bảo rằng các checker đang ở trạng thái hoạt động. Hệ thống Self-watcher làm việc để thẩm tra các trạng thái của các checker. Do đó nếu bất kì một checker nào không đúng chức năng với bất cứ lý do gì (như là bị tấn công) thì hệ thống chính sẽ có giá trị an ninh cục bộ hoặc không còn giá trị về mặt an ninh nữa. Hệ thống Self-watcher làm việc để đảm bảo rằng các checker đang hoạt động và đúng chức năng bằng thủ tục “Call-Back tự động” nhằm xác minh các trạng thái của các checker. Trong mỗi khoảng thời gian đã cho, hệ thống Self- watcher quay số gọi tới một checker bằng cách gửi một số ngẫu nhiên, checker đó ngắt liên lạc. Và checker này gọi lại cho Self-watcher. 44 Nếu như hệ thống Self-watcher không nhận được cuộc gọi trong khoảng thời gian timeout đã cho thì nó sẽ gọi lại theo như cách cũ. Nếu không có trả lời trong thời gian timeout lớn nhất đã cho, (điều đó có nghĩa là checker đó bị hỏng hoặc kết nối giữa hai server bị đứt liên kết), hệ thống Self-watcher se gửi một cảnh báo “failed-alarm” tới hệ thống quản trị (Admin). 3.2.4. Hệ thống Admin Quản trị viên của hệ thống phát hiện thay đổi nội dung trang web có thể điều khiển các thành phần khác nhau của các hệ thống phụ này. Ví dụ, thêm một trang web mới, chỉnh sửa một trang web đang tồn tại, hoặc xóa bỏ trang web khỏi CSDL và tập tin khôi phục. Bằng cách sử dụng hệ thống Admin, người quản trị có thể thiết lập khoảng thời gian kiểm tra cho mỗi trang web và khởi tạo các thông điệp cảnh báo và thông báo. 3.3. Cài đặt và thử nghiệm chương trình 3.3.1. Cài đặt chương trình Chương trình thử nghiệm được phát triển bằng ngôn ngữ C# và hệ quản trị CSDL Microsoft SQL Server 2012. Với cấu hình máy sử dụng là: - Bộ xử lý: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz - Bộ nhớ Ram: 6.00 GB. - Hệ điều hành: Windows 10 Professional 64-bit. Web-server được cài đặt trên hệ thống máy ảo VirtualBox và những website đã được công bố trên mạng Internet như 24h.com.vn, viettel.com.vn,… Giao diện chính của chương trình sau khi cài đặt: 45 Hình 3.4. Giao diện chính của hệ thông theo dõi thay đổi nội dung trang web Chức năng một số nút lệnh: - Nút File: Mở một tập tin đã được lưu trữ. - Nút Hash: Tính giá trị băm. - Nút Add CSDL: Lưu các thuộc tính và giá trị băm vào cơ sở dữ liệu. - Nút Del CSDL: Xoá các thuộc tính và giá trị băm khỏi CSDL. - Nút Multi Checker Basic mode: Kiểm tra các trang web dựa trên các thuộc tính. - Nút Multi Checker Advance mode: Kiểm tra các trang web dựa trên giá trị băm. - ListWeb: Lưu danh sách các trang web cần giám sát theo dõi. - Trang web được chọn: Cho biết những trang web nào đang được giám sát. - Nút Multi Thread: Bắt đầu chế độ giám sát đa luồng (nhiều website cùng lúc). - Nút Start: Bắt đầu giám sát một website. - Nút Stop: Dừng giám sát. - Web 1, Web2, Web3, Web4: Cho biết thông tin khi xử lý đa tiến trình. 46 3.3.2. Thử nghiệm chương trình Chương trình được thử nghiệm kiểm tra về thời gian xử lý của thuật toán Rabin Fingerprint và thuật toán cải tiến Rabin Fingerprint với dữ liệu vào là 4 website (sử dụng hàm stopwatch() trong C# để đo thời gian xử lý của thuật toán). - Kết quả thử nghiệm của chương trình với 4 trang web về thời gian tính toán của thuật toán Rabin Fingerprint và cải tiến thuật toán Rabin Fingerprint như bảng biểu sau: Cải tiến Rabin Kích Rabin fingerprint Website fingerprint (Thời thước (Thời gian) gian) (kí tự) 24h.com.vn 00:07:52.2659048 00:00:00.0179612 197342 bongda.com.vn 00:10:56.6508695 00:00:00.0237493 260318 viettel.com.vn 00:00:29.7748576 00:00:00.0053756 34798 tmasolutions.com 00:00:07.4765326 00:00:00.0032503 96819 Chương trình được thử nghiệm kiểm tra về thời gian xử lý của hệ thống kiểm tra cơ bản và kiểm tra chi tiết với dữ liệu vào là 5 trang web. - Kết quả thử nghiệm của hệ thống kiểm tra cơ bản và kiểm tra nâng cao như bảng sau: Kích Basic mode Advanced mode Website thước (Thời gian) (Thời gian) (kí tự) 24h.com.vn 00:00:00.0013731 00:00:00.0038273 197342 bongda.com.vn 00:00:00.0021435 00:00:00.0042867 260318 viettel.com.vn 00:00:00.0058100 00:00:00.0026037 34798 tmasolutions.com 00:00:00.0010857 00:00:00.0026319 96819 vnexpress.net 00:00:00.0017357 00:00:00.0047003 272277 47 Chương trình được thử nghiệm theo dõi giám sát đa luồng, cùng một lúc theo dõi 4 website. Chức năng Multi-thread đã hoạt động tốt, đưa ra được cảnh báo khi có sự thay đổi nội dung trang web. Hình 3.5. Chương trình theo dõi 4 website đồng thời Chương trình được thử nghiệm kiểm tra ở chế độ nâng cao, đã chỉ ra được vị trí thay đổi của nội dung trang web. Hình 3.6. Hoạt động của chức năng Advanced Mode 48 3.3.3. Nhận xét kết quả - Thời gian xử lý của thuật toán cải tiến Rabin Fingerprint là nhanh hơn rất nhiều so với thuật toán Rabin Fingerprint (đặc biệt khi kích thước trang web lớn). - Thời gian xử lý của hệ thống Multi-checker ở hai chế độ kiểm tra cơ bản (basic mode) và kiểm tra nâng cao (advanced mode) là tương đương nhau vì cùng độ phức tạp thuật toán. - Chương trình đã giám sát được sự thay đổi bất thường của website khi theo dõi đơn tiến trình (một website) cũng như đa tiến trình (nhiều website đồng thời), và đã đưa ra được cảnh báo hợp lý. - Ở chế độ Advaced Mode đã chỉ ra được vị trí thay đổi của nội dung trang web. 3.4. Kết luận chương 3 Trong chương này luận văn đề xuất xây dựng hệ thống phát hiện thay đổi nội dung trang web dựa trên cải tiến thuật toán của Rabin Fingerprint và xây dựng hệ thống theo dõi giám sát dựa trên các thay đổi bất thường nội dung trang web, đưa ra cảnh báo kịp thời có ý nghĩa. Xây dựng chương trình phát hiện thay đổi nội dung trang web, thử nghiệm phân tích đánh giá kết quả đạt được. 49 KẾT LUẬN VÀ KHUYẾN NGHỊ 1. Kết luận Luận văn đã đánh giá được tình hình mất an toàn, an ninh trên nền web hiện nay, nghiên cứu cách thức thường sử dụng để bảo toàn các tài liệu trên Internet, mô tả ngắn gọn cách các lỗ hổng web và một số tấn công nhằm vi phạm tính toàn vẹn của các trang web cụ thể như: phân tích, tìm hiểu, nghiên cứu về các loại hình tấn công như: Sql Injection, XSS, DOS thông dụng hiện nay, và các hình thức tấn công mới trên lĩnh vực an ninh mạng. Đề xuất phương pháp giúp ngăn chặn tấn công Sql Injection, XSS và tấn công DOS. Luận văn đề xuất xây dựng hệ thống phát hiện thay đổi nội dung trang web dựa trên cải tiến thuật toán của Rabin Fingerprint và xây dựng một chương trình theo dõi giám sát dựa trên các thay đổi bất thường nội dung trang web, đưa ra cảnh báo kịp thời có ý nghĩa. Tuy nhiên chương trình còn một số hạn chế như sau: Hiện tại chương trình chỉ dừng lại ở thử nghiệm trên hệ thống mạng cục bộ (LAN-Local Area Network), máy chủ cung cấp dịch vụ web cục bộ (hostlocal). Kiểm tra theo dõi giám sát trực tiếp trang web dựa trên phát hiện các thay đổi bất thường đang còn ở mức độ đơn giản. 2. Khuyến nghị Do điều kiện nghiên cứu còn nhiều hạn chế nên kết quả nghiên cứu chưa thực sự như mong muốn. Tác giả tiếp tục nghiên cứu để tiếp tục phát triển hoàn thiện chương trình được tốt hơn như: - Cải tiến thuật toán để tăng tốc độ xử lý. - Xây dựng hệ thống phục hồi trang Web Trên đây là toàn bộ luận văn thạc sỹ kỹ thuật của tác giả. Trong quá trình thực hiện không tránh khỏi những thiếu sót, tác giả rất mong nhận được sự đóng góp ý kiến của thầy cô và các bạn. 50 TÀI LIỆU THAM KHẢO Tiếng Việt: 1. Lê Đình Duy (2003) “Tấn Công Kiểu SQL Injection – Tác Hại Và Cách Phòng Tránh” Đại học Khoa Học Tự Nhiên TPHCM. 2. Nguyễn Thanh Nghị, HVA-2008 “Tấn công từ chối dịch vụ Dos, Ddos, DRDos”. Tiếng Anh: 3. Dr. Mazin S. Al-Hakeem “ANTI WEB SITE DEFACEMENT SYSTEM (AWDS)”. 4. Abdulkader A. Alfantookh, College of Computer and information Sciences, King Saud University, Saudi Arabia, 2006 "WHDRM". 5. Selvitri F, 2004 “High Performance Issues in Web Search Engines”, 6. V.A.Narayana, P.Premchnd, IEEE International Advance Computing Conference (IACC2009), Patiala, India, 6-7 March 2009 “A Novel and Efficient Approach for Near Duplicate Page Detection in Web Crawling”,. 7. A. Z. Broder, Springer-Verlag, 1993 "Some Applications of Rabin's Fingerprinting Method". 8. Rabin-Karp Algorithm, February 18, 2011. “Rolling Hash” 9. Tushar Kanti, Vineet Richariya, Vivek Richariya 2011 “Implementing a Web Browser with Web Defacement Detection Techniques”. 10. B. J. Mckenzie, R. Harries AND T. Bell, “Selecting a Hashing Algorithm”. 11. http://wikipedia.org