Tải bản đầy đủ (.docx) (30 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 30 trang )

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


liên kết cho các trang mạng. Các tài nguyên nhau sử dụng địa
chỉ để tham chiếu, đó là URL, còn tên gọi nữa là địa chỉ
mạng, liên kết mạng hay gọn là liên kết.
1.1.5. HTML
HTML là chữ viết tắt của cụm từ HyperText Markup
Language (Ngôn ngữ đánh dấu siêu văn bản) được sử dụng để
tạo một trang web, trên một website có thể sẽ chứa nhiều
trang và mỗi trang được quy ra là một tài liệu HTML. Cha đẻ
của HTML là Tim Berners-Lee, cũng là người khai sinh ra
World Wide Web và chủ tịch của World Wide Web
Consortium (W3C – tổ chức thiết lập ra các chuẩn trên môi
trường Internet).
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).
1.2. Tổng quan về Webserver
Webserver (máy chủ web) là từ được dùng để chỉ phần
mềm máy chủ, hoặc phần cứng dành riêng để chạy các phần
mềm trên máy chủ, để từ đó có thể cung cấp các dịch vụ
World Wide Web. Một máy chủ web xử lí các yêu cầu
2



(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ỏ:

- Tốn kém chi phí.
- Tốn kém thời gian.
- Ảnh hưởng đến tài nguyên hệ thống.
- Ảnh hưởng đến danh dự, uy tín của doanh nghiệp.
- Mất cơ hội kinh doanh.
1.4. Một số lỗ hổng an ninh trên Website
Các lỗ hổng bảo mật có trên một hệ thống là các điểm
yếu mà dựa vào đó, kẻ tấn công có thể tấn công hệ thống,
thêm quyền hoặc cho phép các truy nhập không hợp pháp vào
hệ thống. Các lỗ hổng bảo mật có thể ở nhiều nơi trong hệ
thống, có thể ở ngay trong các dịch vụ, tiện ích như web,
mail, file... hoặc ở ngay trong các ứng dụng, ngay trên hệ điều
hành.
- Lỗ hổng loại C: các lỗ hổng loại này cho phép thực
hiện các phương thức tấn công từ chối dịch vụ theo (DoS Dinal of Services). Loại lỗ hổng này có mức độ nguy hiểm
thuộc loại thập, đa phần chỉ ảnh hưởng đến tốc độ và chất
4


lượng của dịch vụ, nặng hơn có thể làm gián đoạn hoạt động
của hệ thống, nhưng không gây mất, hỏng dữ liệu hay chiếm
quyền tuy cập bất hợp pháp
- Lổ hổng loại B: các lỗ hổng loại này có thể gây ra hiện
tượng người sử dụng có thêm các quyền bất hợp pháp không
cần kiểm tra hợp lệ.
- 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ì
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ĩ

thuật tấn công mà kẻ tấn công sẽ chèn vào các website động
những đoạn mã có thể thực thi một câu lênh bất hợp pháp.
Các đoạn mã đó thường được viết bằng JavaScript, DHTML,
JScript và cũng có thể là cả các thẻ HTML.
1.5.2.2. Tấn công XSS
+ Nhận biết website bị mắc lỗi XSS:

6


Thường thì XSS có thể xảy ra tại những nơi mà người
dùng có thể nhập dữ liệu vào, sau đó sẽ nhận được một kết
quả gì đó. Nên thường chúng ta sẽ kiểm tra ở những ô đăng
nhập (login form) đầu vào. Khi nhập một chuỗi kí tự nào đó
mà kết quả của server trả về có dính tới chuỗi mà bạn nhập
thì rất có khả năng trang đó bị mắc lỗi XSS .

Hình 3. Mô hình tấn công XXS (Cross-Site Scripting)
1.5.2.3. Phòng chống tấn công bằng XSS
Nếu sử dụng các mã nguồn được xây dựng sẵn, có thể
truy
cập
các
trang
web
securityfocus.com,
securiteam.com,...để tham khảo danh sách các lỗ hổng bảo
mật. Tuy nhiên không thể áp dụng phương pháp trên nếu tự
viết mã nguồn các website. Trong trường hợp này cần dùng
đến các chương trình dò tìm kiếm (scanner) tự động. Nếu sử

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:

+ Tấn công chiếm dụng tài nguyên (Resource
Depletion):
+ Tấn công SYN:

Hình 5. Mô hình tấn công SYNFlood Attack
+ Tấn công chiếm dụng băng thông:
1.5.3.4. Phòng chống tấn công DOS
- Giai đoạn ngăn ngừa gồm: tối thiểu hóa lượng Agent,
tìm và vô hiệu hóa các Handler.
- Giai đoạn đối đầu: đó là khi phát hiện ra cuộc tấn công,
lúc đó cần ngăn chặn, làm suy giảm, dừng hoặc chuyển
hướng cuộc tấn công.

9


- Giai đoạn sau khi tấn công: sau khi cuộc tấn công sảy
ra cần phân tích các dữ liệu để tìm các chứng cứ và rút kinh
nghiệm để phòng chống các cuộc tấn công sau.

10


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 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.

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.


Hình 6. Giao diện Website Sở KH&CN BR- VT bị tấn công
(Ảnh: ictnews.vn)
2.4. Làm thế nào để phát hiện bị Deface?
Nếu một cuộc tấn công thông thường, tấn công Deface
thay đổi hoàn nội dung trang web, người sử dụng sẽ phát hiện
khi thấy sự thay đổi của website.
Nhưng nếu hacker chỉ thay đổi một phần rất nhỏ, hoặc
không thay đổi giao diện, chỉ thay đổi các đường dẫn, thậm
chí tải các mã độc lên trang web thì người sử dụng khó thể
12


phát hiện. Đây cũng là một vấn đề mà khá nhiều trang web
đang gặp phải và chưa có giải pháp nào thực sự tối ưu.
Hiểu được thực trạng đó, 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.
2.5. Các bước xử lý khi phát hiện bị Deface
Bước 1. Cách ly website
Bước 2. Khôi phục lại hoạt động của website.
Bước 3. Làm sạch website
Bước 4: Điều tra nguyên nhân website bị hack
2.6. Một số lời khuyên để website an toàn hơn
Thường xuyên kiểm tra dữ liệu website.
Có kế hoạch backup dữ liệu cụ thể, định kì.
Luôn đặt mật khẩu phức tạp để đăng nhập và đổi mật

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

+ Gọi H là trạng thái có kích thước n bit,
+ Gọi f là hàm dùng để trộn khối dữ liệu với trạng thái
hiện hành
 - Khởi tạo, gán H0 bằng một vector khởi tạo nào đó
 - Hi = f(Hi-1 ,Mi) với i = 1, 2, 3, …,s
+ Hs chính là thông điệp rút gọn của thông điệp M ban
đầu
14


Hình 7. Sơ đồ Merkel-Damgard
2.7.2. Thuật toán đối sánh chuỗi
2.7.2.1. Khái niệm đối sánh chuỗi
Đối sánh chuỗi là việc so sánh một hoặc vài chuỗi
(thường được gọi là mẫu hoặc pattern) với toàn bộ văn bản
để tìm ra nơi và số lần xuất hiện của chuỗi đó trong văn
bản.
2.7.2.2. Phân loại thuật toán đối sánh chuỗi
- Theo thứ tự đối sánh:
+ Từ trái sang phải
+ Từ phải sang trái
+ Đối sánh tại vị trí cụ thể
+ Không theo thứ tự nhất định
- Theo số lượng pattern:
+ Đối sánh chuỗi đơn pattern
+ Đối sánh đa chuỗi pattern
- Theo độ sai khác đối sánh:
+ Đối sánh chuỗi chính xác
+ Đối sánh chuỗi gần đúng
15



- 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)

Đầu ra: Dấu vân tay tài liệu (các giá trị băm của tài liệu
đó)
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 và
các kí tự đặc biệt (như: <, >, %, !, …) từ mã
HTML (mã trang web) để thu được một khối
văn bản thuần túy (pure text block).
Bước 3: Từ văn ban M, chia ra thành K khối với kích
thước n mỗi khối (n nguyên dương)
Bước 4: Tính mã băm cho các chuỗi con:
Bước 5: Lưu lại các giá trị băm.
Bước 6: Kết thúc.
17


Hình 9. Minh hoạ cải tiến giải thuật
2.7.6. Thuật toán tìm sự khác nhau của hai văn bản
"An O(ND) Difference Algorithm"
Thuật toán này được xuất bản lần đầu tiên cách đây 30
năm dưới tựa đề "An O(ND) Difference Algorithm and its
Variations" của Eugene Myers, trong cuốn Algorithmica Vol.
1 số 2, 1986, trang 251. Trong bài này, tác giả có đề cập đến
định nghĩa của thuật toán theo cách đệ quy, và sử dụng một số
mã của ngôn ngữ lập trình hiện có.
2.7.7. Thuật toán tìm sự khác nhau của hai hình ảnh
Việc tìm sự khác nhau của hai hình ảnh cơ bản là sự so
sánh trực tiếp các điểm ảnh của hai ảnh.

18



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 10. Mô hình thác nước
3.3. Khảo sát
Tác giả đã khảo sát tại một số công ty, doanh nghiệp,
những người quản lý website để tìm hiểu những nhu cầu thực
tế về phần mềm.
3.4. Mô tả yêu cầu hệ thống
3.4.1. Các yêu cầu chức năng
+ Quản lý danh sách trang web: gồm các thông tin về địa
chỉ và tên trang web, thời gian kiểm tra, khu vực kiểm tra.
+ Giám sát:
+ Hiển thị kết quả:
+ Cảnh báo
+ Quản lý dữ liệu hệ thống:
3.4.2. Các yêu cầu phi chức năng
+ Ổn định, chạy được lâu dài
+ Tương thích với các phiên bản của Windows
20


+ Giao diện đẹp, thân thiện, dễ sử dụng
3.5. Biểu đồ

Hình 11. Biểu đồ usecase

Hình 12. Biểu đồ trình tự kiểm tra trang web

21



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. Xây dựng hệ thống
Bằng cách sử dụng các thuật toán đã nghiên cứu, tôi đã
xây dựng các hàm để thực hiện các công việc cụ thể:
3.8.1. Hệ thống So sánh thay đổi nội dung mã nguồn
web
Việc so sánh thay đổi nội dung mã nguồn, có thể so sánh
toàn bộ mã nguồn hoặc chỉ so sánh một phần nội dung (VD:
những nội dung xuất hiện trên giao diện, bỏ qua các thẻ...).
Hai phần này đều có chung quy trình, chỉ khác so sánh một
phần nội dung cần có thêm bước tiền xử lý.

23


Sau khi có phần văn bản cần so sánh sử dụng thuật toán
Rabin Fingerprint cải tiến để lấy giá trị băm của văn bản để
so sánh chúng với nhau, nếu giá trị băm khác nhau thì hai văn
bản khác và đã có sự thay đổi.
Nếu phát hiện sử thay đổi, sử dụng Thuật toán tìm sự
khác nhau của hai văn bản để tìm những chỗ thay đổi.
3.8.2. Hệ thống chuyển đổi Trang web thành hình
ảnh
Trong c# có hỗ trợ công cụ giúp chuyển đổi Trang web
thành hình ảnh
3.8.3. Hệ thống So sánh thay đổi nội dung hình ảnh
trang web
Sau khi đã có hình ảnh trang web, sử dung Thuật toán
tìm sự khác nhau của hai hình ảnh đã cải tiến để tìm sự khác
nhau giữa hai ảnh, giá tri trả về là một ảnh được bôi đỏ những
chỗ thay đổi

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


×