Xây dựng hệ thống giám sát và cảnh báo sự thay đổi nội dung trang web tt - Pdf 50

CHƯƠNG 1: CÔNG NGHỆ WEB VÀ MỘT SỐ
VẤN ĐỀ AN NINH
1.1. Tổng quan về Website
1.1.1. Khái niệm Web
Web là viết tắt của World Wide Web, là mạng lưới toàn
cầu mà mọi người có thể truy cập (đọc và viết) qua máy tính
hoặc các thiết bị kết 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 thực ra web chỉ là một trong các dịch vụ chạy
trên Internet (Theo wikipedia.org).
1.1.2. Hoạt động của Web
Thông qua trình duyệt, người và máy chủ sẽ kết nối với
nhau bằng địa chỉ URL. Tùy theo những yêu cầu khác nhau,
ứng dụng web sẽ gửi những yêu cầu đó đến máy chủ, máy
chủ sẽ xử lý và gửi dữ liệu về trình duyệt, sau đó người dùng
sẽ nhận được những thông tin hiển thị trên trình duyệt.
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.
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à
1


để tham chiếu tới tài nguyên nào đó, nó mang lại khả năng

(request) từ các client (trong mô hình server - client) thông
qua giao thức HTTP và một số giao thức liên quan khác.
Một số Webserver thông dụng hiện nay:

Hình 1. Một số Webserver thông dụng
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
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.
3


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.
Nếu không thực sự xác định được tầm quan trọng của
vấn đề an toàn thông tin thì khi gặp phải sự cố, tác hại đến
doanh nghiệp không nhỏ:

1.5.1. Tấn công SQL Injection
1.5.1.1. SQL Injection là gì
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 đó.

5


Hình 2. Mô hình tấn công SQL Injection
1.5.1.2. Các dạng tấn công bằng SQL Injection
SQL Injection có 4 dạng tấn công thường gặp, đó là: sử
dụng câu lệnh INSERT, sử dụng câu lệnh SELECT, vượt qua
kiểm tra lúc đăng nhập, sử dụng các stored-procedures.
1.5.1.3. Cách phòng chống tấn công SQL
Như vậy, có thể thấy lỗi SQL injection khai thác những
bất cẩn của các lập trình viên phát triển ứng dụng web khi xử
lí các dữ liệu nhập vào để xây dựng câu lệnh SQL. Tác hại từ
lỗi SQL injection tùy thuộc vào môi trường và cách cấu hình
hệ thống. Nếu ứng dụng sử dụng quyền dbo (quyền của người
sở hữu cơ sở dữ liệu - owner) khi thao tác dữ liệu, nó có thể
xóa toàn bộ các bảng dữ liệu, tạo các bảng dữ liệu mới, …
Nếu ứng dụng sử dụng quyền sa (quyền quản 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.
1.5.2. Tấn công XSS (Cross Site Scripting)
1.5.2.1. XSS là gì
XSS là viết tắt của Cross-Site Scripting, đây là một kĩ

dụng trong môi trường Windows, có những chương trình quét
tìm chất lượng như AppScan hay N-Stealth, nó không tìm ra
những lỗi XSS mà nó còn có thể kiểm tra các lỗi khác trong
website đó.
7


1.5.3. Tấn công từ chối dịch vụ DOS (Denial of
Service)
1.5.3.1. Khái niệm
Tấn công DOS là một kiểu tấn công mà kẻ tấn công làm
cho 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ể so với bình thường, bằng cách làm quá
tải tài nguyên của hệ thống.
1.5.3.2. Mục đích của tấn công DOS
Hầu hết những cuộc tấn công DOS đều chiếm băng
thông mạng và làm ngập (flood) hệ thống mạng, khi đó
những yêu cầu dịch vụ bình thường hệ thống sẽ không còn
khả năng đáp ứng, chúng còn gây ra sự ngắt kết nối giữa các
máy tính, quá trình truy cập vào dịch vụ cũng bị gián đoạn.

Hình 4. Một mô hình tấn công từ chối dịch vụ DOS

8


1.5.3.3. Tấn công từ chối dịch vụ DOS
Là phương thức xuất hiện đầu tiên, giản đơn nhất trong
kiểu tấn công từ chối dịch vụ. Các kiểu tấn công thuộc
phương thức này rất đa dạng:

Với những lỗ hổng an ninh đó đều có thể làm tiền đề cho
những cuộc tấn công vào hệ thống website, trong đó có Tấn
công thay đổi nội dung (Deface website).
2.1. Khái niệm Tấn công thay đổi nội dung (Deface
website)
Deface website được định nghĩa là tấn công thay đổi nội
dung website, thông qua một điểm yếu nào đó của website,
hacker sẽ thay đổi nội dung website của nạn nhân.
2.2. Vì sao website bị Deface?
Có rất nhiều nguyên nhân bị Deface, chủ yếu nhất là
website tồn tại điểm yếu bảo mật nghiêm trọng như đã nêu
trong mục "Một số lỗ hổng an ninh trên Website" hoặc có thể
do một số nguyên nhân khác:
2.3. Thực trạng tấn công thay đổi nội dung tại Việt
Nam
Đã có hơn 1.500 sự cố tấn công mạng nhắm vào Việt
Nam trong hai tháng đầu năm 2018. Trung tâm Ứng cứu khẩn
cấp máy tính Việt Nam (VNCERT) công bố số liệu vừa nêu
hôm 7 tháng 3 năm 2018.

11


Theo VNCERT trong số 1.500 trường hợp tấn công, có
962 tấn công giao diện (deface), 324 trường hợp dùng mã độc
tấn công (malware) và 218 tấn công lừa đảo (phishing).
Cũng theo thống kê của VNCERT, các sự cố mạng tại
Việt Nam tăng mạnh từ năm 2017 với tổng cộng 134.375 sự
cố tấn công mạng trong năm 2017, bao gồm cả 3 loại hình
phổ biến nhất hiện nay là Deface, Malware và Phishing.

khẩu định kỳ.
Không nên cài đặt các theme, module, plugin, extension,
… bản null, không thật sự cần thiết và không rõ nguồn gốc.
Thường xuyên update mã nguồn lên phiên bản mới nhất
để hạn chế các lỗi bảo mật trong các phiên bản trước.
Sử dụng phần mềm phát hiện và cảnh báo khi bị tấn
công.

13


2.7. Một số thuật toán phát hiện sự thay đổi
2.7.1. Hàm băm
2.7.1.1. Giới thiệu hàm băm
Hàm băm (hash function) là giải thuật với đầu vào là
những khối dữ liệu và kết quả đầu ra là các giá trị băm tương
ứng với mỗi giá trị đầu vào. Ở đây giá trị băm có thể được coi
như một khóa để phân biệt các dữ liệu với nhau, tuy vẫn còn
hiện tượng trùng khóa hay còn gọi là đụng độ nhưng điều này
vẫn được chấp nhận và mọi người vẫn đang tìm cách để cải
thiện giải thuật nhằm giảm thiểu sự đụng độ đó. Để giảm chi
phí tính toán khi tìm một khối dữ liệu trong một tập hợp,
người ta sử dụng bảng băm.
2.7.1.3. Cấu trúc hàm băm
Các hàm băm hầu hết đều có chung cấu trúc giải thuật
như sau:
+ Cho dữ liệu đầu vào M có độ dài bất kỳ. Có thể thêm
vào M một số bit để nhận được dữ liệu có độ dài là bội của
hằng số cho trước. Chia nhỏ thông điệp thành từng khối có
kích thước bằng nhau: M1, M2, …Ms



- Theo sự thay đổi của pattern và văn bản
+ Pattern thay đổi, văn bản cố định
+ Pattern cố định, văn bản thay đổi
+ Pattern thay đổi, văn bản thay đổi
2.7.3. Dấu vân tay tài liệu (Document Fingerprint)
Trong khoa học máy tính, dấu vân tay nhận dạng duy
nhất dữ liệu gốc cho tất cả các mục đích thực tiễn giống như
là việc nhận dạng duy nhất dấu vân tay người trong thực tế.
Dấu vân của tài liệu là tập hợp các mã được sinh ra tù các
khóa nội dung của tài liệu đó. Mỗi mã đó được gọi là một
giá trị băm.
2.7.4. Thuật toán Rabin Fingerprint
Thuật toán Rabin Fingerprint là một trong nhiều thuật
toán Fingerprint thực hiện khóa công khai sử dụng các đa
thức trên một trường giới hạn.
Thuật toán Rabin Fingerprint điển hình tạo ra một giá trị băm
từ chuỗi con trong các trang web (web pages), bởi vì đây là một
thuật toán nhanh và dễ để thực thi, và nó cũng đi kèm với một
phân tích chính xác toán học của xác suất đụng độ (hai tập tin có
dấu vân tay giống nhau).

16


Hình 8. Mô tả thuật toán Rabin Fingerprint
2.7.5. Thuật toán Rabin Fingerprint cải tiến
Thuật toán cải tiến được đề xuất trong hệ thống như sau:
Đầu vào: Tài liệu (trang web công khai)


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 TRANG
WEB
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 đó.
Từ những thuật toán đó, tôi đã nghiên cứu xây dựng hệ
thông giám sát và cảnh báo sự thay đổi nội dung trang web
được giới thiệu ở Chương 3.
3.1. Giới thiệu
Luận văn đã đề xuất xây dựng hệ thống giám sát website
nhằm phát hiện kịp thời các cuộc tấn công (như đã nêu) bằng
hệ thống đa kiểm tra dựa trên nhiều thuật toán nhằm phát hiện
thay đổi để đảm bảo tính toàn vẹn của trang web đồng thời
tạo ra thông điệp cảnh báo có ý nghĩa và phục hồi lại các
trang web đã bị tấn công.
3.2. Xác định mô hình phát triển
Mô hình phát triển phần mềm là một thể hiện trừu tượng
của quy trình phần mềm. Nó biểu diễn các đặc tả về quy trình
từ những khía cạnh cụ thể; do đó, nó chỉ cung cấp một phần
thông tin về quy trình phần mềm.
Các pha của mô hình thác nước bao gồm:
- Phân tích và xác định các yêu cầu
- Thiết kế hệ thống và phần mềm
- Cài đặt và kiểm thử đơn vị
- Tích hợp và kiểm thử hệ thống
- Vận hành và bảo trì.
19


Hình 13. Biểu đồ trình tự so sánh nội dung
3.6. Thiết kế cơ sở dữ liệu
Để lưu dữ liệu trong quá trình giám sát web, chương
trình sử dụng cơ sở dữ liệu SQLite, với 2 bảng là Web và
LichSu
3.7. Công cụ và môi trường phát triển
3.7.1. Kiến trúc .NET framework
.NET Framework là một sản phẩm của Microsoft, đây
vừa là một nền tảng dành cho lập trình và cũng là một nền
tảng dành cho thực thi, các ứng dụng .NET Framework chủ
yếu chay trên hệ điều hành Microsoft Windows.
22


.NET framework chưa các thư viện lập trình lớn, những
thư viện này hỗ trợ rất nhiều việc xây dựng các chương trình
phần mềm như lập trình giao diện; truy cập, kết nối cơ sở dữ
liệu; ứng dụng web; các giải thuật, cấu trúc dữ liệu; giao tiếp
mạng....
3.7.2. Ngôn ngữ C#
C# (đọc là "C thăng" hay "C sharp" ("xi-sáp")) cũng là
một sản phẩm của Microsoft, là một ngôn ngữ lập trình
hướng đối. Microsoft phát triển C# dựa trên C++ và Java, vì
vậy nhiều người nhận xét C# là ngôn ngữ có sự cân bằng giữa
C++, Java và Visual Basic.
3.7.3. SQLite
SQLite là sản phẩm của Richard Hipp, đây là một hệ
thống cơ sở dữ liệu quan hệ. Đặc điểm của SQLite là tính nhỏ
gọn, hoàn chỉnh, có thể cài đặt bên trong các trình ứng dụng
khác dưới dạng thư viện.

3.8.4. Hệ thống Quản lý thời gian thực
Sử dụng công cụ Timer trong c# để liên tục kiểm tra sự
thay đổi

24


3.9. Thiết kế giao diện

Hình 14. Giao diện phần mềm

Hình 15. Giao diện thêm trang web

25



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