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