Luận văn thạc sĩ: Xây dựng hệ thống giám sát và cảnh báo sự thay đổi nội dung trang web - Pdf 63

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Ngọc Khánh

XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO
SỰ THAY ĐỔI NỘI DUNG TRANG WEB

LUẬN VĂN THẠC SĨ

Hà Nội – 2018


XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN NGỌC KHÁNH

XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO
SỰ THAY ĐỔI NỘI DUNG TRANG WEB

Ngành: Công nghệ thông tin
Chuyên ngành: Kỹ thuật Phần mềm
Mã số: 60480103

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hướng dẫn khoa học: Tiến sĩ Lê Quang Minh

Hà Nội – 2018

học vừa qua.
Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho
phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Em rất mong nhận
được sự góp ý, tận tình chỉ bảo của quý thầy cô.
HỌC VIÊN

Nguyễn Ngọc Khánh

4


XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB

MỤC LỤC

5


XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB

DANH MỤC HÌNH ẢNH

6


XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB

DANH MỤC BẢNG

7


8


XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB

quản trị web biết được có sự thay đổi bất thường và đưa ra các biện pháp làm
cho hệ thống bảo mật tốt hơn.
3. Bố cục luận văn:
Chương 1: Tổng quan về website.
Trong chương 1 luận văn nêu lên một số các khái niệm cơ bản về web, thực
trạng an ninh Web trên thế giới và tại Việt Nam, một số lỗ hổng an ninh trên
Website, một số điểm yếu bảo mật và kỹ thuật tấn công Website.
Chương 2: Tấn công thay đổi nội dung và một số thuật toán phát hiện sự
thay đổi
Trong chương 2 luận văn nêu khái niệm tấn công thay đổi nội dung,
nguyên nhân và cách khắc phục cùng với một số thuật toán phát hiện sự thay đổi
đó.
Chương 3: Xây dựng hệ thống giám sát và cảnh báo sự thay đổi nội dung
nội dung trang web.
Trong chương này, dựa trên những kiến thức ở chương 1 và chương 2, tác
giả đã mô tả các bước để xây dựng hệ thống giám sát những thay đổi về nội
dung trang web và đưa ra cảnh báo kịp thời khi phát hiện có sự thay đổi.

9


XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB

CHƯƠNG 1: CÔNG NGHỆ WEB VÀ MỘT SỐ VẤN ĐỀ AN NINH


- Website động là website được xây dựng kèm theo một bộ công cụ để
người quản trị có thể tùy biến nội dung dành cho người quản trị có thể dễ dàng
thay đổi nội dung, hình ảnh. Website động thường được thiết kế bưởi những
người lập trình với các công nghệ, ngôn ngữ như PHP, ASP.NET, Java,...
1.1.3. Trình duyệt Web
Như đã nêu, trình duyệt Web là phần mềm cho phép người dùng truy cập
các trang web, tương tác với nội dung các trang web như văn bản, hình ảnh,
đoạn phim, nhạc, trò chơi và các thông tin khác. Trong một trang web có thể
chứa những liên kết tới những nội dung khác hoặc những trang web khác. Để
hiển thị nội dung web, các trang web phải được định dạng dưới dạng HTML.
Trình duyệt web và máy chủ web thường giao tiếp với nhau bằng việc sử
dụng giao thức HTTP để truyền thông tin trang web. HTTP được sử dụng rộng
rãi nhất là HTTP/1.1. Các trang được định vị bằng cách thức của một URL (bộ
định vị tài nguyên chung), được coi như là một địa chỉ, bắt đầu bằng cụm http:
để truy cập HTTP.
Định dạng của một trang web thường là file HTML (ngôn ngữ đánh dấu
siêu văn bản), sử dụng giao thức HTTP và sử dụng kiểu nội dung MIME. Hầu
hết các trình duyệt đều hỗ trợ nhiều định dạng file khác ngoài HTML, như các
định dạng ảnh JPEG, GIF, PNG, PDF... ngoài ra nếu sử dụng các plug-in, các
định dạng có thể mở rộng để hỗ trợ nhiều hơn.
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,…
1.1.4. Địa chỉ URL
URL là viết tắt của Uniform Resource Locator (dịch là Định vị Tài nguyên
thống nhất), URL dùng trong Internet và để tham chiếu tới tài nguyên nào đó, nó
mang lại khả năng liên kết cho các trang mạng. Các tài nguyên nhau sử dụng địa

11


12


XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB

thẻ đóng và dữ liệu được khai báo sẽ nằm trong các thuộc tính (ví dụ như thẻ
<img>).
Một tập tin HTML sẽ bao gồm các phần tử HTML và được lưu lại dưới
đuôi mở rộng là .html hoặc .htm.
Khi một tập tin HTML được hình thành, việc xử lý nó sẽ do trình duyệt
web đảm nhận. Trình duyệt sẽ đóng vai trò đọc hiểu nội dung HTML từ các thẻ
bên trong và sẽ chuyển sang dạng văn bản đã được đánh dấu để đọc, nghe hoặc
hiểu (do các bot máy tính hiểu).
1.1.6. Tên miền
Tên miền là dịch vụ có mục đích chính của là cung cấp một hình thức đại
diện, dùng những tên dễ nhận biết, dễ nhớ thay cho những tài nguyên Internet
mà đa số là những địa chỉ bằng số. Với cách này có thể cho phép bất kỳ tài
nguyên nào nói chung, website nói riêng có thể được di chuyển đến một địa chỉ
vật lý khác trong cấu trúc liên kết địa chỉ mạng, có thể là toàn cầu hoặc chỉ cục
bộ trong một mạng intranet. Việc dịch từ các tên miền sang địa chỉ IP và ngược
lại là do hệ thống DNS trên toàn cầu thực hiện (Theo wikipedia.org).
Với việc sử dụng các địa chỉ dạng chữ cái thay cho các địa chỉ IP, tên miền
cho phép người dùng Internet có thể nhớ dễ dàng và dễ dàng tìm kiếm các trang
web. Ngoài ra, tính uyển chuyển của mình, trong hệ thống tên miền, nhiều địa
chỉ IP có thể cùng được gán cùng vào một tên miền, và ngược lại, nhiều tên
miền đều cùng chỉ đến một địa chỉ IP. Theo quy định, một tên miền chỉ có thể có
tối đa 67 ký tự, các ký tự đó chỉ gồm các chữ cái, chữ số và 1 vài ký tự đặc biệt.
Phân loại theo miền mở rộng, một số tên miền mở rộng thông dụng:
.com: Dùng cho các tổ chức, công ty thương mại.
.net: Dùng cho các tổ chức, công ty về mạng, dịch vụ mạng.


Trước đây, trong những ngày đầu phát triển, có rất nhiều ngôn ngữ lập trình
cho website như JSP, ASP, PHP, ASP.NET... tuy nhiên với những ưu thế vượt
trội, hiện tại có hai ngôn ngữ được dùng phổ biến nhất là PHP và ASP.NET.
1.3. Tổng quan về an ninh mạng
1.3.1. Khái niệm về an toàn và an ninh mạng
Trước đây, nói đến an ninh thông tin người ta thường nói đến các biện pháp
bảo mật vật lý sử dụng để bảo vệ cho những thông tin quan trọng khỏi bị truy
cập trái phép và để bảo vệ nó chống lại thay đổi hoặc tiêu hủy. Các biện pháp
như lưu trữ tài liệu có giá trị trong kết sắt hoặc ở những nơi an toàn à hạn chế
việc truy cập vật lý đến các tài liệu đó. Ngày nay, với sự phát triển của CNTT, sự
phổ biến của máy tính và internet, cách truy cập dữ liệu đã thay đổi, các phương
pháp bảo vệ dữ liệu đã thay đổi đáng kể.
Với một chiếc máy tính thường chỉ yêu cầu các công bảo vệ dữ liệu trên
máy tính đó như phần mềm diệt virus hay phần quyền truy cập hệ thống của
người dùng, nhưng với một hệ thống máy tính nối mạng thì cần đòi hỏi nhiều
hơn, ví dụ như dữ liệu vào hệ thống đó được bảo vệ không chỉ từ truy cập địa
phương mà còn từ các truy cập từ xa trái phép và cần phát hiện và ngăn chặn các
thay đổi dữ liệu trong quá trình truyền giữa các hệ thống. An ninh mạng ở dây
không phải là một quy trình, sản phẩm, hay chính sách mà là sự kết hợp của các
sản phẩm và quy trình có hỗ trợ một chính sách quy định.
1.3.2. Sự cần thiết phải bảo vệ thông tin
Trong thời đại công nghệ thông tin, bất cứ doanh nghiệp hay tổ chức nào
cũng có các yếu tố quan trong, cần được bảo vệ như:
- Tài nguyên: con người, hệ thống và đường truyền.
- Dữ liệu.
- Danh tiếng của công ty.

15


16


XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB

- Lỗ hổng loại A: Các lỗ hổng loại này cho phép người sử dụng ở ngoài có
thể truy nhập vào hệ thống bất hợp pháp, có thể thay đổi, xóa hoặc làm phá hủy
toàn bộ hệ thống.
1.5. Một số điểm yếu bảo mật và kỹ thuật tấn công Website
1.5.1. Tấn công SQL Injection
1.5.1.1. SQL Injection là gì
Khi thiết kế và triển khai hệ thống website trên Internet, nhiều khi người
lập trình vẫn nghĩ rằng bảo đảm an ninh và bảo mật để giảm thiểu khả năng tấn
công của hacker là các vấn đề như: như chọn hệ điều hành, quản lý cơ sở dữ
liệu, máy chủ web sẽ chạy ứng dụng... nhưng ngay cả bản thân website đó cũng
có thể có một lỗ hổng bảo mật lớn. Một trong những lỗ hổng này là SQL
Injection.
SQL injection có thể hiểu là một cách tấn công, khi đó những kẻ tấn công
lợi dụng lỗ hổng khi xử lý dữ liệu nhập trong các trang web để "tiêm vào"
(inject) các câu lênh SQL bất hợp pháp và thi hành các câu lệnh đó.
Hậu quả của việc này thường rất nghiêm trọng vì những kẻ tấn công có thể
dựa vào đó thực hiện các câu lệnh thêm, sửa, xóa... trên cơ sở dữ liệu (Lê Đình
Duy, 2003)
.

17


XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB



Thoạt nhìn, đoạn mã dường như không chứa bất cứ một lỗ hổng về an toàn
nào. Người dùng không thể đăng nhập mà không có tên đăng nhập và mật khẩu
hợp lệ. Tuy nhiên, đoạn mã này thực sự không an toàn và là tiền đề cho một lỗi
SQL injection. Chính điều này đã cho phép những kẻ tấn công có thể điều khiển
câu truy vấn tiếp theo sẽ được thực hiện. Ví dụ, nếu nhập chuỗi sau vào trong ô
nhập liệu username và password của trang login.htm là:
' OR ' ' = ' '. Lúc này, câu truy vấn sẽ được gọi thực hiện là:
SELECT * FROM T_USERS WHERE USR_NAME ='' OR ''='' and

19


XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB

USR_PASSWORD= '' OR ''=''
Câu truy vấn này là hợp lệ và sẽ trả về tất cả các bản ghi của T_USERS và

XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB

SELECT * FROM T_NEWS WHERE NEWS_ID=abc or 1=1
Một trường hợp khác, ví dụ như trang tìm kiếm, đây là trang cho phép
người dùng tìm kiếm các thông tin như họ, tên, ngày sinh..., ví dụ:
CODE

Nếu trang tìm kiếm sử dụng đoạn mã trên, kẻ tấn công có thể tìm ra sơ hở
và nhập vào ô tên giá trị:
' UNION SELECT ALL SELECT OtherField FROM OtherTable
WHERE ' '='
Lúc này, ngoài câu truy vấn đầu không thành công, chương trình sẽ thực
hiện thêm lệnh tiếp theo sau từ khóa UNION nữa. Tất nhiên các ví dụ nói trên,
dường như không có gì nguy hiểm, nhưng kẻ tấn công có thể xóa toàn bộ cơ sở
dữ liệu bằng cách chèn vào các đoạn lệnh nguy hiểm như lệnh DROP TABLE.
+ Dạng tấn công sử dụng câu lệnh INSERT:
Các ứng dụng trên web muốn lưu thông tin người sử dụng thường có chức
năng tạo tài khoảng cho người dùng, người dùng có thể đăng ký thông tin khi
tạo tài khoản hoặc điều chỉnh sau khi đăng ký thành công. Trong những việc
này, kẻ tấn công cũng có thể lợi dụng để tấn công SQL injection khi mà hệ thống

trị hệ thống), nó có thể điều khiển toàn bộ hệ quản trị cơ sở dữ liệu và với quyền
hạn rộng lớn như vậy nó có thể tạo ra các tài khoản người dùng bất hợp pháp để
điều khiển hệ thống của bạn. Để phòng tránh, ta có thể thực hiện ở hai mức:
- Kiểm soát chặt chẽ dữ liệu nhập vào.

22


XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB

Chúng ta có thể kiểm soát chặt chẽ dữ liệu nhập vào bằng cách bảo vệ các
câu lệnh SQL như kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ các
đối

tượng

Request

(Request,

Request.QueryString,

Request.Cookies,

Request.Form, Request.ServerVariables). Ví dụ, ta có thể giới hạn chiều dài của
chuỗi nhập liệu, hoặc xây dựng hàm EscapeQuotes để thay thế các dấu nháy đơn
bằng 2 dấu nháy đơn như:
CODE


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status