CHƯƠNG 3. ỨNG DỤNG SO KHỚP ĐỒ THỊ TRONG QUÁ TRÌNH PHÁT HIỆN CÁC TRANG WEB GIẢ MẠO
3.4 Thuật toán đề xuất về ứng dụng so khớp đồ thị vào so khớp DOM-tree . 107
3.4.3. Phát hiện giả mạo dựa trên cây DOM
Như phân tích ở trên, một trang Web (hay trang HTML) có thể được biểu diễn dưới dạng một DOM – tree và ngược lại người ta có thể cập nhật các trang Web dễ dàng bằng việc sửa đổi DOM-Tree của nó. Do vậy, việc xem xét hai trang Web có giống nhau hay không, chúng ta hoàn toàn có thể so sánh xem hai DOM-Tree tương ứng của chúng.
Lí do về sử dụng so khớp đồ thị trong luận án có thể là:
- Một tư liệu Web được biểu diễn qua cây DOM, và người dùng có thể thay đổi nội dung, nên kẻ xấu có thể lợi dụng, làm mất an toàn dữ liệu, hay tấn công giả mạo mạng máy tính. Tuy nhiên các tấn công để lại vết trên cây DOM. Người ta có thể nhận dạng như nguy cơ này qua cây DOM.
- Một khi có mẫu về truy cập trái phép, thể hiện trên cây DOM, người ta có thể so sánh mẫu này với các đối tượng khác, để phát hiện những truy cập không hợp lệ, hay có nguy cơ gây mấy an toàn dữ liệu. Vậy, bài toán so khớp cây DOM là một trong những biện pháp an toàn mạng máy tính, đáng được nghiên cứu và ứng dụng. Mô hình đối tượng tư liệu, DOM, là giao diện chương trình cho các tư liệu HTML, XML và SVG. Nó đảm bảo việc biểu diễn có cấu trúc của tư liệu, hay cây tư liệu, và xác định cách để các chương trình truy cập cấu trúc này. Các chương trình có thể thay đổi cấu trúc, phong cách và nội dung tư liệu. Mô hình DOM biểu diễn tư liệu như nhóm các nút có cấu trúc và các đối tượng. Đối với ngôn ngữ XML, DOM đối với XML xác định cách truy cập và xử lí các tư liệu XML; DOM thể hiện tư liệu XML như cấu trúc cây.
- Mặt khác, các kết quả về toán học trong việc so khớp đồ thị và các ứng dụng của về so khớp đồ thị, cây, có thể áp dụng cho cây DOM. Mặt khác, cây chỉ là một dạng đặc biệt của đồ thị. Vì vậy, để tổng quát, luận án sẽ nghiên cứu bài toán so khớp đồ thị.
Hai trang Web có DOM- Tree giống nhau sẽ phải có cách bố trí tương tự nhau.
Tuy nhiên nó vẫn có thể xảy ra trường hợp hai trang Web có DOM- Tree không hoàn
toàn giống nhau nhưng lại có cùng cách bố trí giống nhau. Điều này là các người quản trị đã thay đổi một số cấu trúc của trang Web đã được sao chép để trông giống với trang Web gốc, nghĩa là, trang Web này có thể là một trang lừa đảo.
Đưa ra hai DOM- Tree, chúng ta có thể so sánh sự tương đồng của chúng theo hai cách khác nhau:
- Thứ nhất, có thể so sánh các thẻ (tag) của hai trang;
- Thứ hai, có thể so sánh các đồ thị con được trích từ hai DOM-Tree đó.
Trong việc làm này, chúng tôi tập trung vào cách tiếp cận thứ hai.
Hình 3.23 Biểu diễn 2 trang web thật và giả mạo dưới dạng cây DOM
Chúng tôi giả định đưa ra một đồ thị G(V,E) và một bộ các mẫu Ω, tìm các đồ thị con của G sao cho ∀Gi∈ Ω các tương đồng lớn hơn ngưỡng δ.
Sau đây là mã giả của thuật toán 3.2.
Thuật toán Phishing Detect, thuật toán 3.2.
Input: - GP = (VP, EP)
- Tập đồ thị mẫu Ω = {G1,..,GN} - Threshold δ
Output: - R Gi |SGi
Begin
R ;
for (i = 1; i< = N; i++)
if (Computing similarity(Gi)>δ) R R Gi ; Return R;
End.
Thuật toán của chúng tôi được viết bằng ngôn ngữ C. Chúng tôi kiểm tra cách tiếp cận của chúng tôi trên một tập 5 trang Web ví dụ (ký hiệu là p1,p2, p3, p4 và p5) với ba kích thước khác nhau (DOM-Tree ít hơn 10 nút, DOM-Tree từ 10 đến 20 nút, và DOM-Tree lớn hơn 20 nút) và 10 trang Web mẫu (ký hiệu là T1,T2,...,T10) với ba kích thước khác nhau (DOM-Tree ít hơn 20 nút, từ 20 đến 50 nút, và lớn hơn 50 nút) để tính toán sự tương tự giữa các trang ví dụ và trang mẫu.
Chúng tôi so sánh thuật toán của chúng tôi với thuật toán so khớp cây STM (Simple Tree Matching) đưa ra trong [24].
Bảng 3.10. Kết quả so sánh giữa GA và STM (%)
P1 P2 P3 P4 P5
GA STM GA STM GA STM GA STM GA STM T1 72 64 61 61 87 83 93 93 100 100
T2 32 12 23 20 41 34 68 68 54 61
T3 52 43 28 13 76 62 27 18 39 34
T4 65 58 55 40 90 80 54 49 27 18
T5 99 90 29 22 63 57 67 59 83 68
T6 79 68 83 70 76 68 79 70 40 32
T7 71 61 87 80 100 85 76 62 51 43
T8 49 41 91 86 61 51 41 31 92 81
T9 80 71 61 51 78 69 74 62 97 86
T10 88 83 37 29 71 59 91 82 46 33
Chúng tôi cũng thực hiện thuật toán với tập các trang Web giả mạo được liệt kê trên trang phishtank.com [25] – được biết như là trang cập nhật các trang Web giả mạo thực trên internet. Kết quả chỉ ra trong bảng 16, ngưỡng cao là nguy hiểm vì kẻ tấn công có thể bắt chước các trang Web hợp pháp băng việc thay đổi sự biếu DOM-Tree
của các trang Web giả mạo. Trong thực nghiệm, chúng đôi đặt ngưỡng δ từ 0.1 tới 0.9.
Chúng tôi đã phát hiện được 100 Web trong tập dữ liệu phishtank bao gồm: Lừa đảo (valid phishing), không lừa đảo (novalid phishing) và chưa xác định (unknow).
Chúng ta có thể nhìn từ bảng 16 các kết quả là liên quan chặt chẽ đến việc phát hiện trang Web giả mạo với ngưỡng δ = 0.6. Trong thực tế, nếu các trang Web hợp pháp chữa nhiều thành phần đặc biệt trong DOM-Tree, nó dễ dàng được phân biệt từ các trang Web khác.
Bảng 3.11. Tỷ lệ % phát hiện đúng, sai với các ngưỡng khác nhau δ 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 Nhận dạng đúng (%) 75 63 57 35 22 17 0 0 1 Nhận dạng sai (%) 0 0 0 0 0 0 21 48 92