You are on page 1of 63

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

PHẠM NGỌC THỌ

KIẾN TRÚC NHIỀU TẦNG CHO PHÁT HIỆN VÀ


NGĂN CHẶN TRANG WEB LỪA ĐẢO

LUẬN VĂN THẠC SĨ AN TOÀN THÔNG TIN

Hà Nội - 2019
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

PHẠM NGỌC THỌ

KIẾN TRÚC NHIỀU TẦNG CHO PHÁT HIỆN VÀ


NGĂN CHẶN TRANG WEB LỪA ĐẢO

Chuyên ngành: An toàn thông tin


Mã số: 8480102.01

LUẬN VĂN THẠC SĨ AN TOÀN THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. LÊ ĐÌNH THANH

Hà Nội - 2019
1
LỜI CAM ĐOAN
Tôi xin cam đoan các kết quả nghiên cứu trong luận văn này là sản phẩm
của cá nhân tôi dưới sự hướng dẫn của thầy giáo TS. Lê Đình Thanh. Các số
liệu, kết quả được công bố là hoàn toàn trung thực. Những điều được trình bày
trong toàn bộ luận văn này là những gì do tôi tự nghiên cứu hoặc là được tổng
hợp từ nhiều nguồn tài liệu khác nhau. Các tài liệu tham khảo có xuất xứ rõ ràng
và được trích dẫn đầy đủ, hợp pháp.

Tôi xin hoàn toàn chịu trách nhiệm trước lời cam đoan của mình.

Hà Nội, ngày 18 tháng 11 năm 2019


Người cam đoan

Phạm Ngọc Thọ


2
LỜI CẢM ƠN
Lời đầu tiên tôi xin được gửi lời biết ơn sâu sắc tới thầy giáo TS. Lê Đình
Thanh, Phòng Thí nghiệm An toàn Thông tin, Khoa Công nghệ Thông tin,
Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội, người thầy đã luôn tận
tình chỉ bảo, giúp đỡ và hướng dẫn tôi trong suốt quá trình nghiên cứu luận văn.

Tôi xin chân thành cảm ơn các thầy, cô giáo trong Khoa Công nghệ Thông
tin, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội đã luôn tận tâm
truyền dạy cho tôi những kiến thức bổ ích trong thời gian tôi tham gia học tập và
nghiên cứu tại nhà trường.

Tôi cũng xin gửi lời cám ơn tới Ban Lãnh đạo và các đồng nghiệp Bộ môn
Toán - Tin học, Học viện Cảnh sát Nhân dân, nơi tôi công tác đã tạo điều kiện
giúp đỡ tôi trong quá trình học tập.

Học viên

Phạm Ngọc Thọ


3
MỤC LỤC

LỜI CAM ĐOAN ................................................................................................. 1


LỜI CẢM ƠN ....................................................................................................... 2
MỤC LỤC ............................................................................................................ 3
DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT ............................................ 5
DANH MỤC CÁC BẢNG ................................................................................... 7
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ............................................................... 8
MỞ ĐẦU ............................................................................................................ 10
CHƯƠNG 1. GIỚI THIỆU ................................................................................ 12
1.1. Thực trạng đáng báo động của các trang web lừa đảo ............................ 12
1.2. Các giải pháp đã có nhằm ngăn chặn trang web lừa đảo ......................... 15
1.2.1. Giải pháp dựa vào cộng đồng ........................................................... 15
1.2.2. Giải pháp dựa vào học máy .............................................................. 18
1.3. Tiếp cận của chúng tôi ............................................................................. 22
1.4. Kết quả đạt được và khả năng ứng dụng ................................................. 23
CHƯƠNG 2. THIẾT KẾ KIẾN TRÚC NHIỀU TẦNG CHO PHÁT HIỆN VÀ
NGĂN CHẶN TRANG WEB LỪA ĐẢO......................................................... 24
2.1. Tổng quan ................................................................................................ 24
2.2. Tầng một và tầng hai ............................................................................... 26
2.2.1. Nhiệm vụ sàng lọc ............................................................................ 26
2.2.2. Phương pháp phát hiện dựa vào học máy ......................................... 27
2.2.3. Kiểm soát tỉ lệ dương tính giả .......................................................... 35
2.3. Tầng ba và tầng bốn................................................................................. 35
2.3.1. Nhiệm vụ chuẩn đoán ....................................................................... 35
2.3.2. Tự động cập nhật Blacklist ............................................................... 37
2.3.3. Tham vấn dịch vụ PhishTank ........................................................... 38
2.3.4. Tham vấn dịch vụ Google Safe Browsing ........................................ 40
CHƯƠNG 3. CÀI ĐẶT THỬ NGHIỆM ........................................................... 42
3.1. Cài đặt ...................................................................................................... 42
3.1.1. Kỹ thuật xây dựng chương trình ....................................................... 42
3.1.2. Tầng một và tầng hai ........................................................................ 43
3.1.3. Tầng ba ............................................................................................. 51
3.1.4. Tầng bốn ........................................................................................... 52
3.2. Đánh giá ................................................................................................... 53
4
3.2.1. Phương pháp đánh giá ...................................................................... 53
3.2.2. Kết quả so sánh ................................................................................. 55
3.3. Triển khai thử nghiệm ............................................................................. 56
KẾT LUẬN ........................................................................................................ 59
TÀI LIỆU THAM KHẢO .................................................................................. 60
5
DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT

Ký hiệu Chữ viết tắt Ý nghĩa


OTP One Time Password Mật khẩu sử dụng một lần
RF Random Forest Thuật toán Random Forest
Tổ chức làm việc chống tội
APWG Anti Phishing Working Group
phạm mạng lừa đảo
URL Universal Resource Locator Định vị tài tuyên hợp nhất
Application Programming
API Giao diện lập trình ứng dụng
Interface
TLD Top Level Domain Tên miền cấp cao
IP Internet Protocol Giao thức Internet
DNS Domain Name System Hệ thống phân giải tên miền
Ngôn ngữ định kiểu tài liệu
CSS Cascading Style Sheet
web
LR Decision Tree Thuật toán cây quyết định
NB Naive Bayes Thuật toán Naive Bayes
SVM Support Vector Machine Thuật toán máy hỗ trợ vector
Trường đại học Irvine của
UCI University of California, Irvine
California
Ngôn ngữ đánh dấu siêu văn
HTML Hyper Text Markup Language
bản
Ngôn ngữ lập trình web động
PHP Personal Home Page
PHP
Giao thức truyền tải siêu văn
HTTP HyperText Transfer Protocol
bản
Giao thức truyền tải siêu văn
HyperText Transfer Protocol
HTTPS bản kết hợp với giao thức bảo
Secure
mật TLS và SSL
WWW World Wide Web Không gian thông tin toàn cầu
CSDL Cơ sở dữ liệu
TP True Positive Dương tính thật
FP False Positive Dương tính giả
6
TN True Negative Âm tính thật
FN False Negative Âm tính giả
TPR True Positive Rate Tỉ lệ dương tính thật
FPR False Positive Rate Tỉ lệ dương tính giả
7
DANH MỤC CÁC BẢNG

Bảng 1.1. Thống kê số lượng trang web lừa đảo từ quý IV năm 2018 đến quý II
năm 2019 ............................................................................................................ 12
Bảng 1.2. Bảng mô tả ưu/ nhược điểm các giải pháp đã có cho phát hiện trang
web lừa đảo ......................................................................................................... 22
Bảng 2.1.Các đặc trưng được trích chọn sử dụng để xây dựng mô hình ........... 27
Bảng 3.1.Thông tin kỹ thuật sử dụng trong chương trình thực nghiệm ............. 42
Bảng 3.2. Bảng đánh giá dựa trên phương pháp Confusion Matrix .................. 54
Bảng 3.3. Kết quả thực nghiệm trên các mô hình đối với tầng một................... 55
Bảng 3.4. Kết quả thực nghiệm trên các mô hình đối với tầng hai .................... 55
8
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Biểu đồ thống kê số lượng trang web lừa đảo từ 10/2018 đến
Hình 1.1. (13)
06/2019
Biểu đồ tỉ lệ phần trăm các lĩnh vực là mục tiêu của tấn công
Hình 1.2. (13)
lừa đảo
Hình 1.3. Tiến trình tấn công lừa đảo (14)

Hình 1.4. Mô phỏng siêu phẳng trong không gian hai chiều và ba chiều (20)

Hình 1.5. Sơ đồ giải thuật rừng ngẫu nhiên (21)
Mô hình kiến trúc đa tầng cho phát hiện và ngăn chặn trang
Hình 2.1. (24)
web lừa đảo

Hình 2.2. Giải thuật Rừng ngẫu nhiên (34)


Luật bình chọn số đông cho gán nhãn ở nút lá của cây quyết
Hình 2.3. định, nút lá có nhãn làvuông, nên điểm p và q đều được phân (35)
lớp vuông

Hình 2.4. Giao diện website của PhishTank (38)

Hình 2.5. Chức năng báo cáo trang web lừa đảo của PhishTank (39)

Hình 2.6. Chức năng bỏ phiếu trang web lừa đảo của PhishTank (40)
Chức năng kiểm tra trạng thái trang web của Google Safe
Hình 2.7. (41)
Browsing

Hình 2.8. Trang web chứa tập API của Google Safe Browsing (41)
Tám đặc trưng được lựa chọn để huấn luyện và xây dựng mô
Hình 3.1. (43)
hình phát hiện trên tầng một
Chín đặc trưng được lựa chọn để huấn luyện và xây dựng mô
Hình 3.2. (44)
hình phát hiện trên tầng hai
Chương trình huấn luyện và xây dựng mô hình phát hiện trên
Hình 3.3. (45)
tầng một
Chương trình huấn luyện và xây dựng mô hình phát hiện trên
Hình 3.4. (46)
tầng hai
9

Hình 3.5. Kiến trúc extension của Chrome (47)


Cấu trúc tập tin của extension được lập trình, cài đặt trên
Hình 3.6. (47)
trình duyệt

Hình 3.7. Extension thực hiện trích xuất đặc trưng trên trang web (47)
Extension gửi vector đặc trưng của URL một lên máy chủ
Hình 3.8. (48)
web

Hình 3.9. Extension gửi vector đặc trưng của Content lên máy chủ web (49)

Máy chủ web đưa dữ liệu đã nhận được qua mô hình phát
Hình 3.10. (49)
hiện

Hình 3.11. So sánh kết quả trả về với giá trị ngưỡng của tầng một (50)

Hình 3.12. Tiến trình ngăn chặn trang web khi phát hiện có lừa đảo (50)

Hình 3.13. Lưu URL của trang web lừa đảo vào Blacklist (50)

Hình 3.14. Gửi URL lên máy chủ web phát hiện trên tầng ba (51)

Hình 3.15. Thực hiện kiểm tra URL trong CSDL của Blacklist (51)

Hình 3.16. API key được đăng ký từ Google Cloud Platform (52)

Hình 3.17. API key được đăng ký từ PhishTank (52)

Hình 3.18. Kiểm tra URL trên API của Google Safe Browsing (53)

Hình 3.19. Kiểm tra URL trên API của PhishTank (53)

Hình 3.20. Cài đặt Extension vào trình duyệt (56)

Hình 3.21. Cài đặt máy chủ web trên Server (56)

Hình 3.22. Dữ liệu cho tiến hành thử nghiệm (57)

Hình 3.23. Trang web cho người dùng truy vấn URL trực tuyến (58)
10
MỞ ĐẦU
Ngày nay, mạng Internet đã và đang mang đến một sự thay đổi to lớn trên
mọi phương diện của cuộc sống, giúp con người có thể kết nối nhau và kết nối
với thế giới trong mọi lĩnh vực: Kinh tế, chính trị, văn hoá, giáo dục, .... nhằm
trao đổi, chia sẻ thông tin một cách nhanh chóng. Đặc biệt, trong kỷ nguyên
công nghệ số - thời kỳ của nền công nghiệp 4.0 hướng tới mọi hệ thống, thiết bị,
phương tiện và con người có thể giao tiếp với nhau một cách dễ dàng.

Tuy nhiên, kéo theo đó là những nguy cơ mất toàn thông tin có thể xảy ra
bất cứ lúc nào. Một trong những mối đe dọa hiện hữu, đã tác động trực tiếp tới
con người chính là vấn đề lừa đảo. Lừa đảo là một hình thức tấn công của các
đối tượng tội phạm mạng nhằm chiếm đoạt thông tin nhạy cảm của người dùng
như: Tên đăng nhập, mật khẩu, mã số thẻ tín dụng, thông tin tài khoản ngân
hàng, mã xác thực một lần (One Time Password - OTP) dưới hình thức tạo lập
những trang web giả mạo với trang web của các tổ chức hợp pháp.

Do đó, việc nghiên cứu phát hiện và ngăn chặn các trang web lừa đảo luôn
là một chủ đề được các tổ chức và cộng đồng người dùng Internet đặc biệt quan
tâm. Đồng thời, cũng đã có nhiều giải pháp được đề xuất bởi một số nhà nghiên
cứu nhằm ngăn chặn tối đa các cuộc tấn công lừa đảo; song những kẻ tấn công
lừa đảo luôn tìm cách thay đổi phương thức hoạt động nhằm ngăn cản sự phát
hiện. Vì vậy, đề xuất một giải pháp có sự tiến hoá được xem là một phương
pháp hiệu quả trong việc phát hiện và ngăn chặn trang web lừa đảo.

Luận văn “Kiến trúc nhiều tầng cho phát hiện và ngăn chặn trang web lừa
đảo” được thực hiện nhằm đề xuất và thử nghiệm một giải pháp hiệu quả trong
việc phát hiện và ngăn chặn trang web lừa đảo. Ngoài các phần mở đầu và kết
luận, luận văn bao gồm 3 chương:

Chương 1. Giới thiệu

Chương này trình bày thực trạng đáng báo động của các trang web lừa đảo
trên thế giới nói chung và tại Việt Nam nói riêng. Trình bày các giải pháp phát
hiện đã có dựa vào cộng đồng và phương pháp học máy trong phát hiện trang
web lừa đảo. Chương 1 cũng trình bày tóm tắt cách tiếp cận của luận văn; tóm
tắt kết quả đạt được và khả năng ứng dụng của nghiên cứu.
11
Chương 2. Thiết kế kiến trúc nhiều tầng cho phát hiện và ngăn chặn
trang web lừa đảo

Trình bày tổng quan kiến trúc nhiều tầng cho phát hiện và ngăn chặn trang
web lừa đảo. Sau phần tổng quan là trình bày phương pháp học máy sử dụng
trên thuật toán rừng ngẫu nhiên (Random Forest - RF) tùy biến tham số, tự điều
chỉnh tỉ lệ dương tính giả trong phát hiện trang web lừa đảo, thực hiện nhiệm vụ
sàng lọc cho tầng một và tầng hai của kiến trúc. Cuối chương này trình bày các
phương pháp phát hiện dựa trên hệ chuyên gia, danh sách đen (blacklist) trên
tầng ba và gọi API của PhishTank, Google Safe Browsing trên tầng bốn.

Chương 3. Cài đặt thử nghiệm

Là chương kết thúc của luận văn, trình bày kỹ thuật cài đặt thử nghiệm và
các bước được triển khai trên mỗi tầng. Lựa chọn phương pháp và tiến hành
đánh giá, so sánh kết quả thử nghiệm. Đồng thời, nghiên cứu và triển khai thử
nghiệm tích hợp kết quả nghiên cứu vào một tiện ích mở rộng (extension) cài
đặt vào trình duyệt của người dùng.

Trong quá trình thực hiện luận văn không tránh khỏi những thiếu sót trong
nội dung cũng như trong trình bày. Với mong muốn được phát triển hơn nữa
trong lĩnh vực đang nghiên cứu, tác giả của luận văn rất mong nhận được sự
đóng góp ý kiến của các thầy cô giáo và của các anh/chị học viên.
12
CHƯƠNG 1. GIỚI THIỆU
1.1. Thực trạng đáng báo động của các trang web lừa đảo
Trang web lừa đảo được tạo ra bởi các đối tượng tội phạm nhằm mục đích
chiếm đoạt những thông tin nhạy cảm của người dùng như tên đăng nhập, mật
khẩu, mã số thẻ tín dụng, mã xác thực OTP và các thông tin liên quan tới tài
khoản ngân hàng, ...Với sự kết hợp giữa hai yếu tố chính, đó là: Sử dụng kỹ
thuật tạo trang web giả mạo với trang web của các tổ chức hợp pháp và yếu tố
tác động tâm lý của người dùng (hay còn được biết đến là Social Engineering -
Kỹ nghệ xã hội) đã góp phần thành công giúp các đối tượng tội phạm thực hiện
hành vi lừa đảo.

Trên thế giới, theo số liệu báo cáo của tổ chức APWG [1] (Anti Phishing
Working Group), trong quý II năm 2019 đã phát hiện có tổng số 182.465 trang
web lừa đảo. Con số này tăng lên đáng kể so với quý I năm 2019 phát hiện là
180.768 và quý IV năm 2018 là 138.328 trang web lừa đảo.

Bảng 1.1. Thống kê số lượng trang web lừa đảo từ quý IV năm 2018 đến quý II
năm 201

Quý IV - Năm 2018 Quý I - Năm 2019 Quý II - Năm 2019

Tháng Tháng Tháng Tháng Tháng Tháng Tháng Tháng Tháng


10 11 12 1 2 3 4 5 6

56.815 35.719 45.794 48.663 50.983 81.122 59.756 61.820 60.889

(Tổng hợp số liệu trích từ nguồn của APWG)

Tuy nhiên, khi một trang web lừa đảo được tạo ra, các đối tượng tội phạm
lập tức tiến hành thay đổi thành hàng nghìn các biến thể địa chỉ URL của những
trang web đó trước khi phát tán tới người dùng. Do đó, khi người dùng truy cập
vào những địa chỉ này thì sẽ đều được điều hướng tới cùng một trang đích lừa
đảo. Số liệu mà APWG đã tiến hành thống kê số lượng được dựa vào tính duy
nhất của các trang web lừa đảo (không tính đến những URL biến thể của cùng
một trang web).

Qua số liệu được báo cáo từ APWG có thể dễ dàng nhận thấy, số lượng các
trang web lừa đảo xuất hiện trong những năm trở lại đây ngày càng có xu hướng
13
gia tăng mà không có dấu hiệu giảm xuống. Điều này gây ra những tổn thất
nặng nề cho nền kinh tế thế giới nói chung và những nguy cơ mất an toàn thông
tin nói riêng đối với các tổ chức, doanh nghiệp và đặc biệt là với cá nhân.

Số lượng trang web lừa đảo từ Quý IV - 2018 đến Quý II - 2019
90,000
80,000
70,000
60,000
50,000
40,000
30,000
20,000
10,000
0
Tháng Tháng Tháng Tháng Tháng Tháng Tháng Tháng Tháng
10/2018 11/2018 12/2018 1/2019 2/2019 3/2019 4/2019 5/2019 6/2019

Hình 1.1. Biểu đồ thống kê số lượng trang web lừa đảo từ 10/2018 đến 06/2019

Mục tiêu của các cuộc tấn công lừa đảo được các đối tượng hướng tới chủ
yếu tập trung vào một số lĩnh vực như: Phần mềm dưới dạng dịch vụ, dịch vụ
webmail, dịch vụ thanh toán, dịch vụ của các tổ chức tài chính, thương mại điện
tử, dịch vụ lưu trữ trực tuyến, ...

Hình 1.2. Biểu đồ tỉ lệ phần trăm các lĩnh vực là mục tiêu của tấn công lừa đảo
14
Tại Việt Nam, theo số liệu thống kê của Bộ Thông tin và Truyền thông tại
thời điểm 6 tháng đầu năm 2019, trong tổng số 3.159 cuộc tấn công mạng vào
hệ thống thông tin, có 968 cuộc tấn công thay đổi giao diện (Deface), 635 cuộc
tấn công cài cắm mã độc (Malware) và đặc biệt đối với loại hình tấn công lừa
đảo (Phishing) có tới 1.556. Trong đó, các cuộc tấn công lừa đảo chủ yếu được
tiến hành thông qua việc xây dựng các trang web giả mạo với các tổ chức hợp
pháp hoạt động trong các lĩnh vực tài chính, ngân hàng, mạng xã hội, ... nhằm
lừa gạt người dùng cung cấp thông tin nhạy cảm cá nhân hòng chiếm đoạt
chúng.

Để thực hiện thành công hành vi lừa đảo, đối tượng tấn công sẽ tiến hành
những cách thức như sau:

Hình 1.3. Tiến trình tấn công lừa đảo

- Tạo một trang web giả mạo: Là một phần kế hoạch của cuộc tấn công
lừa đảo, những đối tượng tấn công tạo ra một trang web giả mạo có giao diện và
tương tác tương tự với trang web gốc. Chúng sử dụng những tính năng chính
của trang web gốc như logo, bố cục và nội dung của trang web để người dùng
không phát hiện đấy là trang web giả mạo.

- Liên kết một trang web giả mạo qua email: Sau khi tạo ra trang web
giả mạo, đối tượng tấn công tạo ra những email với nhiều nội dung khác nhau
như gây tính tò mò, sự kích thích về tâm lý của người dùng như: cập nhật thông
15
tin tài khoản trong các dịch vụ tài chính - ngân hàng, khai báo thông tin cá nhân
tham gia chương trình trúng thưởng, ...Sau đó, chúng gửi hàng nghìn email kiểu
này đến người dùng và làm cho người nhận (người dùng) kích vào một URL để
chuyển hướng đến trang web giả mạo.

- Kích chuột vào một URL độc hại: Người dùng không biết URL độc hại
được cung cấp trong email, lập tức kích chuột vào và dễ dàng bị chuyển hướng
đến trang web giả mạo do đối tượng lừa đảo đã tạo ra. Tại đây, một cuộc tấn
công lừa đảo bắt đầu diễn ra.

- Nhập thông tin nhạy cảm: Khi người dùng được chuyển hướng đến
trang web giả mạo, các thông tin nhạy cảm như tên đăng nhập, mật khẩu, mã số
thẻ tín dụng và các thông tin khác được người dùng lần lượt nhập trên trang web
do những đối tượng lừa đảo đã tạo ra.

- Tập hợp dữ liệu sau khi đánh cắp và sử dụng nó: Khi người dùng đã
nhập những thông tin nhạy cảm, tất cả những dữ liệu này sẽ được những đối
tượng lừa đảo thu thập, tổng hợp để thực hiện những mục đích riêng như: Bán
dữ liệu người dùng, giao dịch bất hợp pháp, thực hiện hoạt động rửa tiền.

1.2. Các giải pháp đã có nhằm ngăn chặn trang web lừa đảo
1.2.1. Giải pháp dựa vào cộng đồng
Hiện nay, có nhiều giải pháp dựa trên cộng đồng được đề xuất để phát hiện
và ngăn chặn trang web lừa đảo. Một số giải pháp được tiếp cận bao gồm:
PhishTank, Google Safe Browsing, PhishNet, PhishGuard, SpoofGuard,
BaitAlarm.

- PhishTank: Là một giải pháp giúp cộng đồng người dùng có thể dễ dàng
phát hiện những trang web nghi ngờ có dấu hiệu lừa đảo. PhishTank được xây
dựng và phát triển bởi tổ chức OpenDNS [2], nó cung cấp một hệ thống xác
minh lừa đảo dựa vào cộng đồng nơi người dùng gửi URL của những trang web
bị nghi ngờ lừa đảo và những người dùng khác “bỏ phiếu”cho URL đó có hay
khôg sự lừa đảo. Thực chất, giải pháp của PhishTank chính là việc duy trì một
danh sách đen (blacklist) bởi người sử dụng. Dữ liệu tại đây được cung cấp miễn
phí để tải xuống hoặc truy cập thông qua lệnh gọi API, gồm cả cho mục đích
thương mại.
16
- Google Safe Browsing: Đây là giả pháp sử dụng các URL trong danh
sách đen để khám phá các cuộc tấn công lừa đảo [3]. Mỗi URL cần kiểm tra
được sử dụng làm dữ liệu đầu vào và thực hiện kiểm tra URL đó trong kho danh
sách đen. Nếu URL có trong kho danh sách đen thì xác định đây là trang web
lừa đảo; ngược lại, trang web là lành tính. Với giải pháp này, điểm hạn chế
chính là không có khả phát hiện những trang web có URL không tồn tại trong
danh sách đen, điểm này sẽ làm tăng tỉ lệ dương tính giả trong phát hiện trang
web lừa đảo.

- PhishNet: Giải pháp này có thể khắc phục các vấn đề liên quan đến danh
sách đen. Giải pháp bao gồm hai bước chính: Tạo ra các biến thể URL so với
các biến thể ban đầu để phát triển danh sách đen và cấu trúc dữ liệu gán từng
điểm số cho URL dựa trên sự tương đồng của URL hiện có [4]. Trong bước thứ
nhất, nó sử dụng các phương pháp phỏng đoán khác nhau để tạo các URL mới
thay thế tên miền cấp cao nhất (TLD - Top level domain), tương đương địa chỉ
IP, tương tự cấu trúc thư mục, thay thế chuỗi truy vấn, tương đương với tên
thương hiệu. Trong bước thức hai gồm, kỹ thuật đối sách giúp kiểm tra địa chỉ
IP, tên máy chủ, ...

- PhishGuard: Đây là giải pháp thực hiện trên thuật toán ObURL để đánh
giá các trang web đáng ngờ dựa trên sự xuất hiện trực quan của các trang web
[5]. Thuật toán này được xác định bằng cách: Kiểm tra danh sách đen và danh
sách trắng (whitelist), kiểm tra địa chỉ IP, kiểm tra sử dụng dịch vụ rút gọn
URL, kiểm tra DNS và kiểm tra trên khuôn mẫu.

+ Kiểm tra danh sách đen và danh sách trắng: Trong thử nghiệm này, tất
cả các URL lần lượt được xác minh trong danh sách đen và danh sách trắng.
Người dùng an toàn khi URL được tìm thấy trong sách trắng; đồng thời, người
dùng sẽ được cảnh báo nếu URL mà họ truy cập được tìm thấy trong danh sách
đen.

+ Kiểm tra sử dụng dịch vụ rút gọn URL: Với thử nghiệm này, nếu đối
tượng tấn công sử dụng dịch vụ rút gọn URL thì người dùng sẽ nhận được thông
báo giúp đưa ra cảnh báo trước nguy cơ của cuộc tấn công lừa đảo.
17
+ Kiểm tra DNS: Trong thử nghiệm này, được thực hiện trích xuất và kiểm
tra giá trị của neo (anchor) và các liên kết. Nếu cả hai giá trị không giống nhau,
người dùng sẽ nhận được thông báo rằng cả hai DNS là đều khác nhau.

+ Kiểm tra trên khuôn mẫu: Trong thử nghiệm này, siêu liên kết và neo
được xác minh cho từng URL, nếu cả hai giống hệt nhau, người dùng sẽ không
được thông báo; trong khi cảnh báo được hiển thị cho người dùng nếu cả hai
không giống nhau.

- SpoofGuard: Trong giải pháp này [6], các đặc tính lừa đảo được kiểm tra
đối với các trang web đáng ngờ để phân loại xem một trang web là trang web
hợp pháp hay lừa đảo. Một số phương pháp phỏng đoán bao gồm: Kiểm tra hình
ảnh; kiểm tra liên kết; kiểm tra URL và kiểm tra trường mật khẩu. Tất cả các
dấu hiệu này được đưa ra một trọng số, dựa trên đó trang web được phân loại
phù hợp. Nếu tổng số điểm của các dấu hiệu lừa đảo được liệt kê ở trên vượt quá
ngưỡng, thì nó được phân loại là trang web lừa đảo; ngược lại được phân loại là
một trang web hợp pháp. Cách tiếp cận này có thể phát hiện cuộc tấn công zero-
day. Tuy nhiên, phương pháp này cũng có nhược điểm là cho ra tỷ lệ dương tính
giả cao trong phát hiện. Giải pháp được mô tả như sau:

+ Kiểm tra tên miền: Đặc tính này được sử dụng để xác minh tên miền của
URL đã thử trong lịch sử trình duyệt. Sự giống nhau được đánh giá bởi khoảng
cách chỉnh sửa của hai miền. Khoảng cách chỉnh sửa được định nghĩa là số
lượng ký tự được thêm hoặc xóa để chuyển đổi từ tên miền này sang tên miền
khác.

+Kiểm tra URL: Kiểm tra URL sẽ được kích hoạt nếu có bất kỳ vấn đề nào
liên quan đến tên miền, tên đăng nhập và số cổng của một URL cụ thể.

+ Kiểm tra hình ảnh: Đặc tính này được sử dụng để so sánh các hình ảnh
trong một trang web mới với hình ảnh trên các trang web trước đó. Quá trình
này được thực hiện bằng cách thu thập mọi hình ảnh, tính toán hàm băm và so
sánh giá trị băm với các giá trị trước đó. Sau khi tất cả các kiểm tra được thực
hiện, các trọng số từ mỗi vòng được tính toán để so sánh với giá trị ngưỡng để
xác định xem có nên hiển thị cảnh báo cho người dùng hay không.

- BaitAlarm: Giải pháp này sử dụng để phát hiện trang web lừa đảo dựa
trên hình ảnh, trong đó đối tượng tấn công sử dụng cùng một kiểu CSS
18
(Cascading Style Sheet) để giả mạo các trang web gốc [7]. Trong phương pháp
này, việc so sánh kiểu CSS đã được thực hiện với các trang web trong danh sách
trắng với các trang web đáng ngờ để phát hiện các cuộc tấn công lừa đảo.

1.2.2. Giải pháp dựa vào học máy


Với giải pháp dựa vào học máy, có nhiều thuật toán phân lớp được áp dụng
để huấn luyện mô hình dự đoán cho bài toán phát hiện trang web lừa đảo. Trong
phần này, luận văn tìm hiểu một số thuật toán học máy phổ biến như: Hồi quy
Logistic (Logistic Regression - LR), cây quyết định (Decision Tree - DT), Naive
Bayes (NB), máy vector hỗ trợ (Support Vector Machine - SVM), rừng ngẫu
nhiên (Random Forest - RF).

1.2.2.1. Hồi quy Logistic (Logistic Regression -LR)

Phương pháp Hồi quy Logistic là một phương pháp sử dụng mô hình hồi
quy nhằm dự đoán giá trị đầu ra rời rạc y ứng với một véc-tơ đầu vào x. Phương
pháp này thường được sử dụng để dự báo sự có hay không có mặt của biến phụ
thuộc y dựa vào giá trị của biến độc lập x.

Theo mô hình Hồi quy Logistic, quan hệ giữa xác suất trang web lừa đảo
(y=1) và các yếu tố ảnh hưởng được thể hiện:

1
𝑃(𝑦 = 1|𝑥; 𝑤, 𝑏) = 𝜎(𝑤 𝑇 𝑥 + 𝑏) = 𝑇 𝑥+𝑏) (1)
1 + 𝑒 −(𝑤

Tối ưu hàm Hồi quy Logistic có thể được tính toán theo công thức:
𝑇
1
(𝑤, 𝑏) ← 𝑎𝑟𝑔𝑤,𝑏 𝑚𝑖𝑛 ∑ − (𝑦𝑡 log 𝜎𝑡 + (1 − 𝑦𝑡 ) log(1 − 𝜎𝑡 ) (2)
𝑇
𝑡=1

Trong đó, T là kích cỡ tập dữ liệu trang web lừa đảo, yt là lớp tương ứng
của dữ liệu thứ t trong tập dữ liệu 𝜎(𝑤 𝑇 𝑥 + 𝑏).

1.2.2.2. Cây quyết định (Decision Tree - DT)

Cây quyết định là một dạng đặc biệt của cấu trúc cây được xây dựng để trợ
giúp việc ra quyết định dựa trên các câu hỏi. Kỹ thuật học máy sử dụng việc xây
dựng cây quyết định trên tập dữ liệu được gọi là học bằng cây quyết định hay
đơn giản chỉ là cây quyết định. Mỗi nút bên trong của cây tương ứng với một
19
đặc trưng, các nút lá đại diện cho các phân loại và các cành đại diện cho các kết
hợp của các đặc trưng dẫn tới phân loại đó. Các cành được phân tách dựa trên
giá trị của các đặc trưng.

Quá trình học cây quyết định gồm 3 giai đoạn:

1- Tạo cây: Sử dụng thuật toán phân lớp để phân chia dữ liệu sao cho mọi
nút lá đều có cùng một giá trị trên thuộc tính quyết định. Việc lựa chọn đặc
trưng cho mỗi nút được dựa trên độ lợi thông tin của các đặc trưng trên bộ huấn
luyện. Có rất nhiều thuật toán phân lớp dựa trên cây quyết định như: C4.5 [8],
CART [9], ...

2 - Cắt tỉa cây: Là việc làm nhằm khắc phục những khuyết điểm của cây
như loại bỏ nhánh không phù hợp (nhánh lỗi).

3 - Kiểm định kết quả: Đánh giá độ chính xác trước khi sử dụng.

1.2.2.3. Naive Bayes (NB)

Naive Bayes là một thuật toán dựa trên định lý Bayes về lý thuyết xác suất
để đưa ra các phán đoán cũng như phân loại dữ liệu. Naive Bayes giả định rằng
tất cả các đặc trưng của x là độc lập với nhau. P(x|y) biểu thị xác suất có điều
kiện của véc-tơ đặc trưng cho một lớp, giả định độc lập ngụ ý rằng 𝑃(𝑥|𝑦) =
∏𝑑𝑖=1 𝑃(𝑥𝑖 |𝑦) với d là số lượng đặc trưng. Bằng cách áp dụng lý thuyết Bayes, ta
có thể tính xác suất để một véc-tơ đặc trưng x là một trang lừa đảo bằng cách:

𝑃(𝑥|𝑦 = 1)
𝑃(𝑦 = 1|𝑥 ) = (3)
𝑃(𝑥|𝑦 = 1) + 𝑃(𝑥|𝑦 = −1)

Thuật toán Naive Bayes phân loại dễ dàng nhất bằng cách tính xác suất có
điều kiện P(xi|y) từ ước lượng hợp lý cực đại (Maximum Likehood Estimation)
[10].

1.2.2.4. Máy vector hỗ trợ (Support Vector Machine - SVM)

Máy vector hỗ trợ (SVM) là một thuật toán học máy có giám sát phổ biến
dùng để phân chia dữ liệu thành các nhóm riêng biệt. Thuật toán sẽ tìm một
đường thẳng (trong không hai chiều) hoặc mặt phẳng (trong không gian đa
chiều) cũng được gọi là siêu phẳng sẽ phân tách hiệu quả nhất hai lớp. Siêu
20
phẳng này sau đó được dùng để phân lớp cho các dữ liệu chưa biết cần tiên
đoán.

Hình 1.4. Mô phỏng siêu phẳng trong không gian hai chiều và ba chiều

Siêu phẳng tối ưu là siêu phẳng có khoảng cách với hai điểm dữ liệu gần
nhất tương ứng với hai lớp là lớn nhất. Phương trình chứa các điểm dữ liệu này
gọi là các lề (margin). Do đó, siêu phẳng tối ưu là siêu phẳng có khoảng cách
giữa nó và lề là xa nhất.

Siêu phẳng trong không gian d chiều được biểu diễn bằng công thức:

WTx + b = 0

Khi đó khoảng cách được tính bằng công thức:

|𝑊 𝑇 𝑥0 + 𝑏|
ℎ=
(4)
√∑𝑑𝑖=1 𝑤𝑖2

SVM luôn cố gắng cực đại hoá khoảng cách này, từ đó thu được một siêu
phẳng tạo khoảng cách xa nhất. Bài toán tối ưu là bài toán tìm w và b sao cho:
𝑇
1
(𝑤, 𝑏) ← 𝑎𝑟𝑔𝑤,𝑏 𝑚𝑖𝑛 ∑ max(0,1 − 𝑦𝑡 (𝑤. 𝑥𝑡 + 𝑏)) + 𝜆||𝑤|| 22 (5)
𝑇
𝑡=1

Nhờ đó mà SVM có thể giảm thiểu việc phân lớp sai đối với dữ liệu mới
đưa vào.

1.2.2.5. Rừng ngẫu nhiên (Random Forest - RF)

Rừng ngẫu nhiên [11] tạo ra một tập hợp các cây quyết định không cắt
nhánh, mỗi cây được xây dựng dựa trên tập mẫu ngẫu nhiên có hoàn lại
21
(bootstrap). Các thuộc tính tại mỗi nút con được chọn ngẫu nhiên từ không gian
thuộc tính ban đầu.

Thủ tục xây dựng rừng ngẫu nhiên gồm ba pha: Tạo dữ liệu (tạo vector
ngẫu nhiên); Xây dựng các cây cơ sở; Kết hợp các cây cơ sở theo phương thức
bỏ phiếu.

Hình 1.5. Sơ đồ giải thuật rừng ngẫu nhiên

Thuật toán xây dựng rừng ngẫu nhiên:

Đầu ra của hệ cho đối tượng x sẽ là:


1
- Đối với bài toán hồi quy: 𝐶 (𝑥 ) = 𝐿 ∑𝐿𝑘=1 𝐶𝑘 (𝑥)

1
- Đối với bài toán phân lớp: 𝐶(𝑥) = [𝐿 ∑𝐿𝑘=1 𝐶𝑘 (𝑥)]
22
1.3. Tiếp cận của chúng tôi
Hiện nay, trên thế giới có nhiều giải pháp khác nhau trong cách thức tiếp
cận cho phát hiện, ngăn chặn trang web lừa đảo và đã được công bố trên phương
diện nghiên cứu khoa học và đã được triển khai thực nghiệm. Điển hình trong số
đó là hai nhóm giải pháp: Phát hiện trang web lừa đảo dựa vào cộng đồng và
phát hiện bằng phương pháp học máy.

Tuy nhiên, ở mỗi nhóm giải pháp, bên cạnh những ưu điểm đã đạt được thì
vẫn còn tồn tại những hạn chế nhất định. Cụ thể, ưu/nhược điểm của hai phương
pháp được tóm tắt trong bảng sau:

Bảng 1.2. Bảng mô tả ưu/ nhược điểm các giải pháp đã có cho phát hiện trang
web lừa đảo
Giải
pháp
Ưu/ Dựa vào cộng đồng Dựa vào phương pháp học máy
Nhược
điểm
- Phát hiện chính xác - Là một phương pháp tiếp cận hiện đại
trang web lừa đảo. dựa trên nền tảng của trí tuệ nhân tạo.
- Dễ dàng sử dụng và có - Có thể dễ dàng tuỳ biến các thuật toán
Ưu điểm thể tích hợp vào những học máy trong quá trình nghiên cứu và
công cụ được phát triển mở rộng.
riêng biệt bởi các tổ - Có thể phát hiện những trang web lừa
chức và cá nhân. đảo mới được tạo ra.
- Khả năng cập nhật cơ - Khó tiếp cận đối những người mới
sở dữ liệu chậm. nghiên cứu phương pháp học máy.
Nhược
- Không thể phát hiện - Kết quả phát hiện có tỉ lệ sai sót
điểm
những trang web lừa (dương tính giả và âm tính giả) nhất
đảo mới được tạo ra. định

Xuất phát từ những ưu và nhược điểm của hai nhóm giải pháp đã nêu ở
trên, chúng tôi tiến hành kết hợp những ưu điểm của cả hai giải pháp; đồng thời,
đề xuất tạo nên kiến trúc nhiều tầng cho phát hiện và ngăn chặn trang web lừa
đảo. Kiến trúc mà chúng tôi đề xuất được chia thành bốn tầng. Cụ thể:
23
- Tầng một và tầng hai: Cài đặt mô hình học máy đã được thiên vị hoá,
thực hiện nhiệm vụ sàng lọc nhanh trang web lừa đảo.

- Tầng ba và tầng bốn: Thực hiện tham vấn dịch vụ blacklist và hỏi
chuyên gia nhằm tiến hành chuẩn đoán trang web lừa đảo.

1.4. Kết quả đạt được và khả năng ứng dụng


- Sử dụng thuật toán học máy trên tầng một và tầng hai của kiến trúc đề
xuất, thiên vị hóa thuật toán học máy nhằm đảm bảo tỉ lệ dương tính giả rất thấp
(gần như bằng 0) giúp cho việc sàng lọc chính xác.

- Xây dựng kho blacklist chứa URL của các trang web lừa đảo, cung cấp
giải pháp website cho người dùng tại Việt Nam có thể dễ dàng tra cứu và sử
dụng trong phát hiện, ngăn chặn trang web lừa đảo.

- Kết nối thành công, sử dụng API (Application Programming Interface)
của các hệ chuyên gia PhishTank và Google Safe Browsing, được thực hiện trên
tầng bốn của kiến trúc.

- Đánh giá và so sánh kết quả thử nghiệm của nghiên cứu.

- Sử dụng kết quả của nghiên cứu, tiến hành cài đặt, tích hợp thành công
công cụ phát hiện và ngăn chặn trang web lừa đảo vào trình duyệt web của
người dùng.
24
CHƯƠNG 2. THIẾT KẾ KIẾN TRÚC NHIỀU TẦNG CHO PHÁT HIỆN
VÀ NGĂN CHẶN TRANG WEB LỪA ĐẢO
2.1. Tổng quan
Việc xây dựng kiến trúc nhiều tầng cho phát hiện và ngăn chặn trang web
lừa đảo nhằm phân tách nhiệm vụ cụ thể trên mỗi tầng khác nhau, giúp giảm
thiểu quá trình xử lý dữ liệu, tăng hiệu xuất cho phát hiện trang web lừa đảo.
Trong đó, tầng một và tầng hai có nhiệm vụ sàng lọc những dấu hiệu lừa đảo
dựa vào các đặc trưng được trích xuất từ URL và Content của trang web. Tầng
ba và tầng bốn có nhiệm vụ chuẩn đoán thông qua kỹ thuật sử dụng Blacklist và
tham vấn dịch vụ từ các chuyên gia PhishTank và Safe Browsing của Google.

Hình 2.1. Mô hình kiến trúc đa tầng cho phát hiện và ngăn chặn
trang web lừa đảo
Quy trình hoạt động của kiến trúc nhiều tầng cho phát hiện và ngăn chặn
trang web lừa đảo được tích hợp vào một Plug-in trên phần mềm trình duyệt,
25
hay còn được biết đến là một extension. Trong đó, tầng một và tầng hai được
hoạt động như sau:

Khi người dùng truy cập tới một URL của trang web bất kỳ, extension sẽ
trích xuất các đặc trưng có trên URL, kết quả sau khi trích xuất được tập hợp
thành một vector đặc trưng. Tiếp theo, extension gửi vector đặc trưng lên máy
chủ PhishSer. Ngay khi nhận được dữ liệu cần xử lý, máy chủ PhishSer sẽ đưa
qua mô hình phát hiện đã được huấn luyện bằng thuật toán Random Forest
(được tùy biến) trên tập dữ liệu (dataset) gồm 11.055 bản ghi dữ liệu từ nguồn
UCI[12][13][14][15]. Kết quả của quá trình phát hiện sẽ được trả về, xác định
URL đó có hay không lừa đảo; nếu đó là URL lừa đảo, extension trên trình
duyệt của người dùng sẽ kích hoạt chức năng ngăn chặn không cho người dùng
truy cập tới nó và hiển thị thông báo cho người dùng biết. Đồng thời, cập nhật
URL lừa đảo này vào Blacklist (danh sách đen). Trong giai đoạn này, tầng một
và tầng hai của kiến trúc cơ chế hoạt động là như nhau. Điểm khác biệt giữa hai
tầng trong kiến trúc mà chúng tôi đề xuất là nhóm đặc trưng được trích xuất dựa
vào giá trị của URL tồn tại trên thanh địa chỉ của trình duyệt (Address bar) là 8
được thực hiện trên tầng một và nhóm đặc trưng dựa trên sự bất thường của mã
HTML, JavaScript (gọi là đặc trưng dựa trên Content) là 9 (cụ thể sẽ được đặc tả
trong mục 2.2 của chương này) được thực hiện trên tầng hai. Ngược lại, nếu
không phát hiện được URL là lừa đảo sẽ chuyển tiếp URL sang tầng ba và tầng
bốn để kiểm tra.

Trong tầng ba, với URL cần kiểm tra, máy chủ PhishSer sẽ thực hiện tham
chiếu trong cơ sở dữ liệu PhishSer blacklist (kho dữ liệu chứa các URL lừa đảo
được chúng tôi xây dựng bằng công nghệ PHP và MySQL). Máy chủ web trả về
kết quả, nếu URL này đã tồn tại trong Blacklist, extension sẽ tiến hành chặn
URL này và thông báo tới người dùng như trên tầng một và tầng hai. Ngược lại,
tiếp tục chuyển tiếp URL sang tầng bốn để kiểm tra.

Tại tầng bốn, URL sẽ được tham vấn với các dịch vụ của của các hệ
chuyên gia PhishTank và Google Safe Browsing. Hai dịch vụ này đều cung cấp
cho người dùng tập thư viện hàm API (Application Programming Interface) có
thể tham vấn nhanh và dễ dàng bằng nhiều ngôn ngữ lập trình khác nhau. Kết
quả ngay sau khi hệ chuyên gia trả về sẽ được kiểm tra, nếu URL là lừa đảo,
extension sẽ chặn URL này và thông báo tới người dùng và cập nhật URL này
26
vào PhishSer blacklist. Ngược lại, nếu không xác định được URL là lừa đảo, sẽ
cho phép người dùng truy cập tới URL mà họ mong muốn.

2.2. Tầng một và tầng hai


2.2.1. Nhiệm vụ sàng lọc
Được thực hiện trên tầng một và tầng hai, nhiệm vụ sàng lọc là hoạt động
giúp hệ thống có thể phát hiện nhanh và chính xác một số trang web lừa đảo.
Chức năng sàng lọc được phép “bỏ sót” các trang lừa đảo nhưng không được
“bắt nhầm” các trang lành tính. Nói cách khác, một trang web đã bị phát hiện ở
tầng một và tầng hai chắc chắn là trang lừa đảo, trong khi trang web không được
phát hiện ở tầng một và tầng hai có thể là trang lừa đảo hoặc lành tính. Những
trang lừa đảo đã được phát hiện ở tầng một và tầng hai sẽ không phải xử lý thêm
ở các tầng ba, tầng bốn mất nhiều thời gian, do vậy hiệu năng của tổng thể hệ
thống được nâng lên. Những trang lừa đảo không bị phát hiện ở tầng một và
tầng hai sẽ được xử lý tiếp và phát hiện ở tầng ba và tầng bốn.

Quá trình sàng lọc được chia làm hai pha: Pha huấn luyện thực hiện trên
tập dữ liệu (dataset) được tải về từ kho dữ liệu học máy UCI để xây dựng mô
hình phát hiện và pha phát hiện được tích hợp trên một Plug-in (extension) của
trình duyệt người dùng.

Tại pha huấn luyện, luận văn thực hiện các công việc sau:

- Lựa chọn các đặc trưng phù hợp trên tập dữ liệu được tải từ UCI để xây
dựng mô hình phát hiện.

- Sử dụng ngôn ngữ Python huấn luyện dữ liệu bằng thuật toán Random
Forest tiến hành xây dựng mô hình phát hiện.

- Kiểm soát tỉ lệ dương tính giả (trang web là lành tính nhưng phát hiện là
lừa đảo) để đưa ra giá trị ngưỡng làm căn cứ cho việc phát hiện lừa đảo.

- Lưu trữ mô hình phát hiện trên máy chủ PhishSer phục vụ việc đối chiếu
và so sánh khi có yêu cầu từ extension trên máy người dùng.

Tại pha phát hiện trên extension của trình duyệt:


27
- Sử dụng ngôn ngữ JavaScript trích xuất các đặc trưng có trên URL và từ
mã HTML, mã JavaScript của trang web cần kiểm tra. Tập hợp kết quả thành
một vector đặc trưng gửi lên máy chủ PhishSer.

- Máy chủ PhishSer tiến hành đưa vector đặc trưng qua mô hình phát hiện
đã được huấn luyện tại pha trước.

- Thực hiện so sánh kết quả trả về từ mô hình phát hiện với giá trị ngưỡng
được sinh ra trên mô hình phát hiện, nếu vượt quá ngưỡng cho phép thì kết luận
trang web đó là lừa đảo, đồng thời kích extenstion kích hoạt tính năng ngăn chặn
và cảnh báo tới người dùng. Ngược lại, chuyển tiếp để phát hiện trên các tầng
tiếp theo.

2.2.2. Phương pháp phát hiện dựa vào học máy


2.2.2.1. Trích chọn đặc trưng
Hoạt động trích chọn đặc trưng tiến hành trên URL và Content căn cứ theo
30 đặc trưng của tập dữ liệu (dataset) được tải từ kho lưu trữ UCI . Tập dữ liệu
từ UCI gồm 11.055 bản ghi dữ liệu, trong đó có 7.262 bản ghi dữ liệu được gán
nhãn lừa đảo và 3.793 bản ghi dữ liệu gán nhãn lành tính. Số lượng đặc trưng
được chúng tôi đề xuất trong luận văn sau khi trích chọn lại là 17, đây là các đặc
trưng chắc chắn sẽ trích xuất được từ trình duyệt web. Mỗi đặc trưng được thử
nghiệm trên trình duyệt để có thể trích xuất nó mà không cần sử dụng bất kỳ
dịch vụ web từ bên ngoài hoặc từ bên thứ ba nào. Tuy nhiên, số lượng đặc trưng
càng nhiều sẽ làm tăng độ chính xác trong việc phát hiện. Ngược lại, sẽ làm
chậm quá trình xử lý do số lượng đặc trưng cần trích chọn là nhiều hơn.

Các đặc trưng cần trích chọn được phân loại thành hai nhóm: Đặc trưng có
trong giá trị của URL tồn tại trên thanh địa chỉ (Address bar), đặc trưng bất
thường có trong mã HTML và mã JavaScript của trang web. Dưới đây là danh
sách các đặc trưng được trích chọn:

Bảng 2.1.Các đặc trưng được trích chọn sử dụng để xây dựng mô hình

Đặc trưng được trích chọn Nhóm đặc


TT Mô tả tóm tắt
từ Dataset trưng
1 Having_IP_Address Có địa chỉ IP trong URL Address
2 URL_Length URL có độ dài bài bất bar
28
thường
Sử dụng dịch vụ rút gọn
3 Shortining_Service
URL
4 Having_At_Symbol Có biểu tượng “@”
5 Double_Slash_Redirecting Điều hướng với kí tự “//”
Có kí tự “-” trong tên
6 Prefix_Suffix
miền
Vượt quá số lượng sub
7 Having_Sub_Domain
domain theo quy định
Thêm HTTPS vào domain
8 HTTPS_token
của URL
Favicon được liên kết từ
9 Favicon
domain khác
Hình ảnh, video được tải
10 Request_URL
từ domain khác
Có nhiều liên kết bằng thẻ
<a> tới domain khác hoặc
11 URL_of_Anchor
không có giá trị của thuộc
tính href
Sử dụng nguồn trong các
12 Links_in_tags thẻ <meta>, <script>, Bất thường
<link> từ domain khác trong mã
Thuộc tính action trong HTML và
13 SFH (Server Form Handler)
các <form> có giá trị rỗng JavaScript
Có chức năng gửi email
14 Submitting_to_email
trên trang web (mailto)
Tắt tính năng trên thanh
15 On_mouseover trạng thái trình duyệt khi
đưa chuột qua liên kết
Tắt tính năng kích chuột
16 RightClick
phải
Sử dụng Iframe thu thập
17 Iframe
dữ liệu
29
Với mỗi đặc trưng được trích chọn trong Bảng 2.1, chúng tôi sẽ sử dụng
chúng cho việc đề xuất quy tắc tương ứng được sử dụng trong giai đoạn thử
nghiệm. Các đặc trưng [16] trong tập dữ liệu của UCI được mô tả cụ thể như sau
(với tất cả các quy tắc có thể quy ước thành: Lừa đảo là 1; Lành tính là -1; Nghi
ngờ là 0):

- Địa chỉ IP: Địa chỉ IP là một mã định danh duy nhất được gắn với một
thiết bị hoạt động trên môi trường mạng. Đối tượng lừa đảo sử dụng địa chỉ IP
thay vì tên miền để lừa người dùng web. Bất kỳ URL hợp pháp nào cũng được
hình thành bằng cách sử dụng tên máy chủ (host name) và tên đường dẫn (path
name) nhưng không sử dụng địa chỉ IP.

IP tồn tại trong URL → 1


Quy tắc: Nếu {
Không tồn tại → −1

- Độ dài của URL: URL là một chuỗi ký tự chữ và số được sử dụng để
truy cập tài nguyên mạng trên World Wide Web (WWW). URL là sự kết hợp
của giao thức mạng, tên máy chủ và đường dẫn. Độ dài của URL là một trong
những tính năng chính được trích xuất trong khi phát hiện các URL lừa đảo. Đối
tượng lừa đảo lợi dụng độ dài của URL để che dấu những nội dung nghi ngờ mà
người dùng web khó có thể phát hiện.

Độ 𝑑à𝑖 𝑈𝑅𝐿 < 54 → −1


Quy tắc: Nếu { 𝑁𝑔ượ𝑐 𝑙ạ𝑖 𝑛ế𝑢 Độ 𝑑à𝑖 𝑈𝑅𝐿 ≥ 54 𝑣à ≤ 75 → 0
𝑁𝑔ượ𝑐 𝑙ạ𝑖 → 1

- Sử dụng dịch vụ rút gọn URL “TinyURL”: Rút gọn URL là một
phương pháp trên Web World Wide Web, trong đó một URL có thể được làm
gọn hơn đáng kể về chiều dài và vẫn dẫn đến trang web bắt buộc. Phương pháp
này được thực hiện bằng “HTTP Redirect” trên một tên miền ngắn, liên kết đến
trang web có URL dài. Ví dụ: URL là http://portal.hud.ac.uk/ có thể rút ngắn
thành bit.ly/19DXSk4.

TinyURL → 1
Quy tắc: Nếu {
Ngược lại → −1

- Biểu tượng “@”: Biểu tượng “@” được sử dụng bởi những kẻ tấn công
để làm cho trình duyệt web bỏ qua mọi thứ trước nó và chuyển hướng người
dùng đến liên kết được nhập sau nó.
30
Url có kí tự @ → 1
Quy tắc: Nếu {
Ngược lại → −1

- Ký tự “//”: Sự tồn tại của ký tự “//” trong URL có nghĩa là người dùng sẽ
được chuyển hướng đến một trang web khác. Một ví dụ về URL như vậy là:
http://www.legitimate.com//http://www.phishing.com. Chúng tôi kiểm tra vị trí
xuất hiện của “//” và thấy rằng nếu URL bắt đầu với HTTP, điều này có nghĩa là
“//” sẽ xuất hiện ở vị trí thứ sáu. Tuy nhiên, nếu URL sử dụng HTTPS thì “//” sẽ
xuất hiện ở vị trí thứ bảy.

Vị trí cuối cùng xuất hiện “//”trong URL > 7 → 1


Quy tắc: Nếu {
Ngược lại → −1

- Ký tự “-”: Kí tự dấu “-” thường không được sử dụng trong các URL hợp
pháp. Những đối tượng lừa đảo có xu hướng thêm tiền tố hoặc hậu tố được phân
tách bằng (-) vào tên miền để người dùng nhầm tưởng họ đang xử lý một trang
web hợp pháp. Ví dụ: http://www.confirme-paypal.com/.

Trong tên miền chứa kí tự (−) → 1


Quy tắc: Nếu {
Ngược lại → −1

-Số lượng tên miền phụ vượt quá quy định: Giả sử có liên kết sau:
“https://www.bidv.com.vn/doanh-nghiep”. Một tên miền có thể bao gồm các tên
miền cấp cao nhất theo mã quốc gia (ccTLD - country-code Top-level
Domains), trong liên kết trên là “vn”. Phần “com” giúp xác định tổ chức hoặc cá
nhân hoạt động trong lĩnh vực thương mại, sự kết hợp của “.com.vn” được gọi là
tên miền cấp hai (SLD - Second Level Domain); “bidv” là tên thực tế của tên
miền. Để tạo quy tắc trích xuất tính năng này, trước tiên chúng ta phải bỏ qua
(www.) Từ URL thực tế là một tên miền phụ (Sub domain); sau đó, chúng ta
phải loại bỏ (ccTLD) nếu nó tồn tại; cuối cùng, chúng tôi đếm các chấm “.” còn
lại.

Dấu (. ) trong phần tên miền = 1 → −1


Quy tắc: Nếu { Dấu (. ) trong phần tên miền = 2 → 0
Dấu (. ) trong phần tên miền > 2 → 1

- HTTPS token: Đối tượng lừa đảo có thể thêm giao thức HTTPS vào
phần tên miền của URL để lừa người dùng. Ví dụ: “http://https-www-paypal-it-
webapps-mpp-home.soft-hair.com/”.
31
Sử dụng HTTPS trong tên miền của URL → 1
Quy tắc: Nếu {
Ngược lại → −1

- Favicon: Favicon là một hình ảnh đồ hoạ được kết hợp với một trang web
cụ thể. Hay favicon còn gọi là biểu tượng của trang web, là một hình icon được
hiển thị phía góc trên cùng của tab trình duyệt. Khi người dùng truy cập vào
trang web bất kỳ sẽ nhìn thấy biểu tượng này như một logo đại diện cho chính
trang web đó. Do đó, nếu favicon được tải từ tên miền khác với tên miền được
hiển thị trên thanh địa chỉ thì có thể xác định là lừa đảo.

Favicon được tải từ tên miền khác → 1


Quy tắc: Nếu {
Ngược lại → −1

- Request URL: Đối với hầu hết các trang web hợp pháp thường sử dụng
các đối tượng hình ảnh, âm thanh và video được liên kết từ bên ngoài trang. Tuy
nhiên, những đối tượng liên kết ngoài này luôn đảm bảo được nằm trên cùng
một tên miền. Từ tính chất này của Request URL, có thể sử dụng đặc trưng này
để phân loại các trang web.

Tỉ lệ yêu cầu liên kết tới tên miền khác < 22% → −1
Quy tắc: Nếu { Tỉ lệ % ≥ 22% và ≤ 61% → 0
Ngược lại tỉ lệ % > 61% → 1

- Anchor (neo) trong thẻ <a>: Thẻ <a> trong HTML giúp tạo ra các liên
kết giữa các trang trong cùng website. Do đó, nếu:

Giá trị của thuộc tính “href” trong thẻ <a> khác với tên miền của website
thì trường hợp này cũng giống như đặc trưng Request URL;

Neo không liên kết đến bất kỳ trang web nào. Ví dụ: <a href=“#”> hoặc <a
href=“#content”> hoặc <a href=“#skip”> hoặc <a href=“JavaScript::void(0)”>

Tỉ lệ % Anchor < 31% → −1


Quy tắc: Nếu { Tỉ lệ % Anchor ≥ 31% và ≤ 67% → 0
Ngược lại → 1

- Sử dụng tài nguyên <script>, <link>, <meta> từ tên miền khác: Với
trang web hợp pháp, sử dụng thẻ <meta> để cung cấp siêu dữ liệu (metadata)
cho trang web, thẻ <script> để tạo tập lệnh JavaScript phía máy khách hoặc liên
kết tới tập tin script, thẻ <link> để liên kết tới tập tin “.css” trong cùng tên miền.
32
Quy tắc:

Nếu
Tỉ lệ % của liên kết trong(< 𝑀𝑒𝑡𝑎 >, < 𝑆𝑐𝑟𝑖𝑝𝑡 > 𝑣à < Link>) < 17% → −1
{Tỉ lệ % của liên kết trong(< 𝑀𝑒𝑡𝑎 >, < 𝑆𝑐𝑟𝑖𝑝𝑡 > 𝑣à < Link>) ≥ 17% và ≤ 81% → 0
Ngược lại → 1

- SFH (Server Form Handler): Thẻ <form> giúp tạo ra một biểu mẫu
cung cấp cho người dùng web không gian nhập thông tin để gửi về máy chủ
web. Trong thẻ <form> có thuộc tính “action” nhằm xác định trang web đích mà
dữ liệu của người dùng sẽ được gửi tới. Với trang web hợp pháp trang web đích
sẽ nằm trong cùng tên miền. Tuy nhiên, với trang web lừa đảo các đối tượng đã
thay đổi giá trị của thuộc tính “action” là một chuỗi rỗng hoặc “about:blank”
hoặc trang đích là từ một tên miền khác.

SFH là “about: blank” hoặc Is Empty → 1


Quy tắc: Nếu { SFH tham chiếu đến một tên miền khác → 0
Ngoài ra → −1

- Gửi thông tin qua email (mailto): Biểu mẫu (form) trong trang web cho
phép người dùng gửi thông tin cá nhân tới một máy chủ để xử lý. Tuy nhiên, đối
tượng lừa đảo có thể chuyển hướng thông tin của người dùng tới địa chỉ email
cá nhân của chúng bằng phương pháp sử dụng chức năng “mailto:” trong trang
web và sử dụng hàm mail() ở phía máy chủ để kích hoạt chức năng gửi mail.

Sử dụng “mail()”hoặc“mailto:”để gửi thông tin → 1


Quy tắc: Nếu {
Ngoài ra → −1

- Tắt sự kiện onMouseOver: Đối tượng lừa đảo có thể sử dụng JavaScript
để hiển thị URL giả mạo trong thanh trạng thái cho người dùng. Để trích xuất
đặc trưng này chúng ta khai thác trong mã nguồn của trang web, đặc biệt là sự
kiện onMouseOver và kiểm tra xem nó có thực hiện bất kỳ thay đổi nào trong
thanh trạng thái hay không.

Sự kiện onMouseOver thay đổi thanh trạng thái → 1


Quy tắc: Nếu {
Không thay đổi thanh trạng thái → −1

- Vô hiệu hoá chức năng chuột phải: Nhằm che dấu hành động kiểm tra
mã nguồn của người dùng, đối tượng lừa đảo tiến hành vô hiệu hoá tính năng
33
kích chuột phải trên trang web thông qua bằng sự kiện onMouseOver để ẩn liên
kết hoặc thêm sự kiện “event.button==2” vào mã nguồn của trang web.

Tính năng chuột phải bị vô hiệu hoá → 1


Quy tắc: Nếu {
Ngoài ra → −1

- Sử dụng IFrame thu thập dữ liệu: IFrame là một thẻ trong HTML,
được sử dụng để hiển thị một trang web bổ sung vào trong trang web hiện tại.
Đối tượng lừa đảo sử dụng IFrame với tùy biến khung viền của nó nhằm che dấu
sự quan sát trực quan và làm cho người dùng khó có thể phát hiện.

Sử dụng iframe → 1
Quy tắc: Nếu {
Ngoài ra → −1

2.2.2.2. Thuật toán Random Forest


Giải thuật học máy rừng ngẫu nhiên (Random Forests - RF[11]) thực hiện
huấn luyện mô hình phân lớp (Hình 2.2) qua các bước chính như sau:

- Từ tập dữ liệu huấn luyện có m phần tử và n biến (thuộc tính), xây dựng T
cây quyết định một cách độc lập nhau.

- Mô hình cây quyết định thứ T được xây dựng trên tập mẫu Bootstrap thứ
T. Mẫu Bootstrap thứ T gồm m phần tử được lấy ngẫu nhiên có hoàn lại từ tập
huấn luyện (tức là mỗi cây quyết định không được xây dựng trên cùng một tập
dữ liệu).

- Tại nút trong, chọn ngẫu nhiên n’ biến (n’<<n) và tính toán phân hoạch
tốt nhất dựa trên n’ biến này.

- Cây được xây dựng đến độ sâu tối đa không cắt nhánh.

- Kết thúc quá trình xây dựng T mô hình cơ sở. Một phần tử mới đến x
được phân lớp dựa vào bình chọn số đông của T mô hình cơ sở phân lớp phần tử
x.
34

Hình 2.2. Giải thuật Rừng ngẫu nhiên

Tuy nhiên, nếu chúng ta trở lại luật gán nhãn ở nút lá của các cây quyết
định trong rừng ngẫu nhiên, hai giải thuật cây quyết định phổ biến là CART [17]
và C4.5 [18] thường dùng chiến lược bình chọn số đông. Thời điểm xây dựng
cây quyết định, nếu nút lá có chứa các phần tử dữ liệu của các lớp không thuần
nhất, việc gán nhãn cho nút lá được tính cho nhãn của lớp có số lượng phần tử
lớn nhất chứa trong nút lá. Xét ví dụ như hình 2.3, nút lá có chứa 14 phần tử
trong đó lớp hình vuông có 9 phần tử và lớp hình tròn có 5 phần tử. Nút lá sẽ
được gán nhãn là hình vuông do số phần tử lớp hình vuông nhiều hơn hình tròn.
Chiến lược gán nhãn này làm cho luật quyết định không được chính xác. Khi
phân lớp, phần tử nào rơi vào nút lá đều được gán nhãn của nút lá. Vì vậy, phần
tử p, q được gán nhãn là vuông. Hiệu quả phân lớp không cao (phần tử p có thể
sai).
35

Hình 2.3. Luật bình chọn số đông cho gán nhãn ở nút lá của cây quyết định, nút
lá có nhãn là vuông, nên điểm p và q đều được phân lớp vuông

2.2.3. Kiểm soát tỉ lệ dương tính giả


Mục đích của tầng một và tầng hai là để sàng lọc, được phép “bỏ sót” các
trang web lừa đảo nhưng không được “bắt nhầm” các trang lành tính. Do đó
chúng tôi mong muốn tỉ lệ dương tính giả thật thấp (tức là tỉ lệ một trang web
lành tính bị gán nhầm là lừa đảo thật thấp) ở các tầng này. Để kiểm soát được tỉ
lệ dương tính giả thay vì chọn ra số đông như thuật toán rừng ngẫu nhiên được
nêu ở mục 2.2.2.2, chúng tôi sử dụng các xác suất lừa đảo cho mỗi dữ liệu (mỗi
trang web sẽ có một xác suất lừa đảo trong đoạn [0,1], xác suất càng lớn thì khả
năng lừa đảo càng cao và ngược lại). Cách phát hiện được tiến hành như sau:

- Nếu xác suất lừa đảo đủ lớn hơn một ngưỡng thì chúng tôi mới coi đó là
lừa đảo thực sự, ngược lại là lành tính.

- Nếu chọn ngưỡng quá bé thì tất cả các dữ liệu đưa vào sẽ bị dự đoán là
lừa đảo hết. Ngược lại, nếu chọn ngưỡng quá lớn thì sẽ bỏ sót tất cả các trang
web lừa đảo. Như vậy mô hình sẽ không có ý nghĩa gì nữa. Ở đây chúng tôi
kiểm soát ngưỡng để đảm bảo tỉ lệ dương tính giả đủ thấp ở một mức kỳ vọng
đã đặt ra, trong khi vẫn có khả năng phát hiện được một số trang web lừa đảo
thực sự.

2.3. Tầng ba và tầng bốn


2.3.1. Nhiệm vụ chuẩn đoán
Quá trình sàng lọc trang web lừa đảo được diễn ra tại tầng một và tầng hai.
Tuy nhiên, các đối tượng tấn công sử dụng nhiều biện pháp khác nhau với
những kỹ thuật che dấu lừa đảo ngày càng tinh vi. Trong khi tại tầng một và
36
tầng hai chỉ đóng vai trò sàng lọc trong kiến trúc của hệ thống; bên cạnh việc
mang lại độ chính xác cao trong phát hiện lừa đảo thì tỉ lệ phát hiện vẫn chưa đạt
được như kỳ vọng. Do vậy, tại tầng ba và tầng bốn của kiến trúc có nhiệm vụ
chuẩn đoán URL của trang web dựa vào Blacklist (danh sách đen) và tham vấn
dịch vụ PhishTank. Cụ thể, cơ chế hoạt động tại hai tầng này được thực hiện
như sau:

Cơ chế hoạt động của tầng ba:

- Khi có yêu cầu của người dùng gửi URL của trang web để kiểm tra có
hay không lừa đảo, tầng một và tầng hai sử dụng kỹ thuật học máy tiến hành
phát hiện. Nếu quá trình phát hiện cho rằng trang web cần kiểm tra không phải
là trang web lừa đảo, URL của trang web đó sẽ được chuyển tiếp sang tầng thứ
ba để phát hiện.

- Tại tầng ba của kiến trúc, URL sẽ được tiến hành truy vấn trong danh
sách đen (đây là một tập dữ liệu chứa các URL của trang web lừa đảo do chúng
tôi xây dựng và được tự động cập nhật trên máy chủ PhishSer của chúng tôi).
Nếu kết quả trả về URL này đã tồn tại trong danh sách đen, kết luận đây là trang
web lừa đảo; đồng thời, extension tại trình duyệt của người dùng tiến hành ngăn
chặn và đưa ra cảnh báo cho người dùng.

Cơ chế hoạt động của tầng bốn:

- Quá trình phát hiện trang web lừa đảo trong tầng bốn được thực hiện khi
tầng ba của kiến trúc không phát hiện được, URL của trang web tiếp tục được
gửi lên tầng bốn để kiểm tra.

- Tại đây, chúng tôi tiến hành mở kết nối tới hệ chuyên gia của PhishTank
và Google Safe Browsing thông qua tập API mà họ đã cung cấp miễn phí; đồng
thời, gửi URL thực hiện tham vấn từ hệ chuyên gia này. Nếu kết quả trả về cho
extension của người dùng được xác minh là có lừa đảo, lập tức sẽ ngăn chặn,
đưa ra cảnh báo cho người dùng và cập nhật URL đó vào danh sách đen được
triển khai trong tầng ba. Ngược lại, trường hợp xác định đó trang web lành tính
thì cho phép người dùng truy cập tới trang web như việc truy cập tới một trang
web hợp pháp.
37
2.3.2. Tự động cập nhật Blacklist
Danh sách đen là tập hợp dữ liệu được tạo ra dưới hình thức lập chỉ mục
các URL, domain và địa chỉ IP đã được xác định là lừa đảo. Các phần tử của
danh sách đen được lưu trữ trong một cơ sở dữ liệu và nó cung cấp một cơ chế
cho các ứng dụng hoặc người dùng muốn truy cập để kiểm tra.

Danh sách đen của trang web lừa đảo được xem là một nguồn dữ liệu quan
trọng được các công cụ (Toolbar) phòng chống lừa đảo sử dụng để tham vấn và
đưa ra thông báo cho người dùng; đồng thời, ngăn chặn quyền truy cập của họ
vào các trang web lừa đảo. Ngày nay, phương pháp sử dụng danh sách đen được
áp dụng hầu hết trên các trình duyệt như: Internet Explorer, Netscape, Chrome,
FireFox (được tích hợp Toolbar của Google Safe Browsing) nhằm phát hiện các
trang web lừa đảo trước khi người dùng bị điều hướng tới nó. Phương pháp này
rất dễ triển khai và dễ sử dụng, nhưng danh sách đen chỉ có hiệu quả nếu cơ sở
dữ liệu được cập nhật thường xuyên và kịp thời.

Tuy nhiên, trên thực tế để có thể duy trì một cơ sở dữ liệu được cập nhật
liên tục cần đòi hỏi phải có đội ngũ nhân sự làm việc thường xuyên, kéo theo sự
tốn kém về chi phí hoạt động. Mặt khác, cũng trên thực tế, để làm được như vậy
là không khả thi bởi nhiều trang web lừa đảo mới ngày càng gia tăng nhanh
chóng. Hơn nữa, những kẻ tấn công có thể loại bỏ trang web lừa đảo khỏi danh
sách đen một cách dễ dàng bằng cách đăng ký những tên miền mới, thay đổi nơi
lưu trữ của mã nguồn web; do đó, các URL và địa chỉ IP cũng có thể thay đổi
theo.

Xuất phát từ việc khó có thể cập nhật tức thời danh sách đen của các nhà
cung cấp (PhishTank1, OpenPhish2, Safe Browsing3), tại tầng thứ ba của kiến
trúc đa tầng cho phát hiện và ngăn chặn trang web lừa đảo, chúng tôi đề xuất
giải pháp xây dựng một danh sách đen riêng biệt, giúp tự động cập nhật danh
sách đen khi phát hiện có trang web lừa đảo diễn ra tại tầng một và tầng hai của
kiến trúc. Ngoài ra, quá trình tự động cập nhật danh sách đen của chúng tôi còn
tiếp tục được diễn ra trên tầng thứ tư của hệ thống ngay sau khi có kết quả trả về
từ hệ chuyên gia nếu trang web người dùng đang truy cập là lừa đảo.

1https://www.phishtank.com/
2https://openphish.com/
3https://safebrowsing.google.com/
38
2.3.3. Tham vấn dịch vụ PhishTank
PhishTank là một dự án từ OpenDNS hỗ trợ việc xác thực, kiểm tra và gửi
báo cáo về các trang web lừa đảo. OpenDNS là một dịch vụ cung cấp dịch vụ
phân giải tên miền, cũng như ngăn chặn các trang web bị nghi ngờ có tên miền
là lừa đảo. PhishTank là một dịch vụ hoạt động độc lập của cùng một công ty.
OpenDNS tuyên bố đây là một cơ sở dữ liệu riêng biệt và nó không được sử
dụng với cơ sở dữ liệu của PhishTank khi giải quyết các tên miền trang web.
Điều đó có nghĩa là hai cơ sở dữ liệu - một cho OpenDNS và một cho
PhishTank. Về cơ bản PhishTank là một dịch vụ cung cấp cho người dùng dễ
dàng kiểm tra một trang web bất kỳ thông qua URL có phải là lừa đảo hay
không.

Hình 2.4. Giao diện website của PhishTank

PhishTank được ra mắt vào tháng 10 năm 2006 bởi David Ulevitch với tư
cách là một nhánh của OpenDNS. Công ty cung cấp một hệ thống xác minh lừa
đảo dựa vào cộng đồng, nơi người dùng gửi những URL của trang web nghi ngờ
lừa đảo và những người dùng khác “bỏ phiếu” nếu đó là lừa đảo hay không.

PhishTank cung cấp các dịch vụ bao gồm:

- Tìm kiếm trang web lừa đảo: Người dùng có thể tìm kiếm trực tiếp
thông qua chức năng tìm kiếm của website bằng cách nhập URL của trang web
cần kiểm tra vào hộp tìm kiếm. Hoặc trong trường hợp các cá nhân, doanh
39
nghiệp muốn xây dựng riêng một công cụ bảo mật có thể sử dụng dữ liệu của
PhishTank thông qua API của nó, bằng cách đăng ký một tài khoản dành cho
nhà phát triển trên website. Đặc biệt, với hai phương thức này PhishTank cung
cấp dịch vụ là hoàn toàn miễn phí cho người dùng.

- Báo cáo trang web lừa đảo cho PhishTank: Để thực hiện báo cáo trang
web lừa đảo (thêm trang web lừa đảo vào cơ sở dữ liệu của PhishTank), người
dùng cần phải đăng ký tài khoản để trở thành thành viên nếu chưa có. Quá trình
đăng ký tài khoản không quá phức tạp, điều cần nhất mà PhishTank yêu cầu
người dùng là cung cấp một địa chỉ email cho việc kích hoạt tài khoản và hệ
thống đảm bảo rằng đấy là một người dùng cụ thể. Sau khi đăng ký thành công,
người dùng tiến hành đăng nhập vào website và cung cấp thông tin về trang web
lừa đảo hoặc trang web mà người dùng nghi ngờ là lừa đảo; đặc biệt, bắt buộc
phải nhập địa chỉ URL của các trang web đó để PhishTank tiến hành phân tích.

Hình 2.5. Chức năng báo cáo trang web lừa đảo của PhishTank

Sau khi người dùng gửi báo cáo về trang web được nghi ngờ là lừa đảo,
hệ thống sẽ cung cấp danh sách cho phép những thành viên khác vào xác minh
và “bỏ phiếu” về tính chất lừa đảo của trang web.
40

Hình 2.6. Chức năng bỏ phiếu trang web lừa đảo của PhishTank

2.3.4. Tham vấn dịch vụ Google Safe Browsing


Google Safe Browsing là một dịch vụ của Google cho phép người dùng
hoặc các ứng dụng từ phía máy khách (máy người dùng) kiểm tra địa chỉ URL
của trang web nghi ngờ lừa đảo dựa trên danh sách các tài nguyên web không an
toàn được cập nhật bởi Google. Các tài nguyên không an toàn có thể bao gồm:
Các trang web lừa đảo; trang web chứa phần mềm mã độc; trang web chứa các
phần mềm không mong.

Với người dùng, Google Safe Browsing cung cấp một dịch vụ kiểm tra
trạng thái của trang web. Cho phép người dùng nhập địa chỉ URL của trang web
cần kiểm tra trực tiếp trên trang web có địa chỉ
“https://transparencyreport.google.com/safe-browsing/search”, cụ thể giao diện
như sau:
41

Hình 2.7. Chức năng kiểm tra trạng thái trang web của Google Safe Browsing

Với các ứng dụng được cài đặt tại máy người dùng, Google Safe Browsing
cung cấp một tập API cho phép ứng dụng mở kết nối; đồng thời, gửi URL thực
hiện tham vấn từ hệ chuyên gia này.

Hình 2.8. Trang web chứa tập API của Google Safe Browsing
42
CHƯƠNG 3. CÀI ĐẶT THỬ NGHIỆM
3.1. Cài đặt
3.1.1. Kỹ thuật xây dựng chương trình
Chương trình thực nghiệm được lập trình trên các ngôn ngữ chính là
Python, JavaScript, PHP với cơ sở dữ liệu MySQL. Trong đó:

- Python đóng vai trò chạy thuật toán học máy Random Forest xây dựng
mô hình phát hiện;

- JavaScript để xây dựng extension cắm vào trình duyệt web, có nhiệm vụ
trích xuất các đặc trưng trên trang web cần kiểm tra và gửi các tập kết quả lên
máy chủ web;

- PHP nhận tập giá trị của các đặc trưng từ extension, đưa qua mô hình phát
hiện. Nếu phát hiện có lừa đảo, gửi yêu cầu về extension để ngăn chặn, thông
báo người dùng và cập nhật vào Blacklist được tổ chức trong cơ sở dữ liệu
MySQL. Ngược lại, gửi URL để truy vấn trong Blacklist và hỏi chuyên gia.

Bảng 3.1.Thông tin kỹ thuật sử dụng trong chương trình thực nghiệm

- Processor: Intel(R) Core(TM) i5-5257U CPU @


2.70GHz
- Memory (Ram): 4 GB
Môi trường thực nghiệm
- System type: 64-bit Operating System, x64-
basedprocessor
- OS: Windows 10 Pro N

Ngôn ngữ sử dụng Python, JavaScript, PHP, HTML, CSS, Jquery

Máy chủ web Apache

Hệ quản trị CSDL MySQL

Công cụ lập trình (IDE) Sublime Text

Thư viện và các gói cài


scikit-learn, numpy, pickle
đặt chính
43
3.1.2. Tầng một và tầng hai
- Tải tập dữ liệu trang web lừa đảo đã được phân lớp từ kho dữ liệu học
máy của UCI [16]. Trên tổng số 11.055 dữ liệu của trang web có trong tập dữ
liệu, tiến hành chia làm hai phần, phần một gồm 9.055 dữ liệu (trong đó 5.488
dữ liệu được gán nhãn lừa đảo và 3.567 dữ liệu được gán nhãn lành tính) được
sử dụng làm dữ liệu huấn luyện, phần còn lại là 2000 dữ liệu (trong đó 1.774 dữ
liệu được gán nhãn lừa đảo và 226 dữ liệu gán nhãn lành tính) độc lập với dữ
liệu sử dụng huấn luyện để đánh giá mô hình.

- Với giải pháp được chúng tôi đề xuất để phát hiện trang web lừa đảo trên
tầng một chỉ trích xuất dữ liệu phục vụ huấn luyện để xây dựng mô hình với 8
đặc trưng và trên tầng hai là 9 đặc trưng trên tổng số 30 đặc trưng của tập dữ
liệu ban đầu.

Hình 3.1.Tám đặc trưng được lựa chọn để huấn luyện và xây dựng mô hình phát
hiện trên tầng một
44

Hình 3.2. Chín đặc trưng được lựa chọn để huấn luyện và xây dựng mô hình
phát hiện trên tầng hai
45
- Thực hiện huấn luyện và xây dựng mô hình phát hiện trang web lừa đảo
bằng thuật toán Random Forest cho tầng một:

Hình 3.3. Chương trình huấn luyện và xây dựng mô hình phát hiện
trên tầng một
46
- Thực hiện huấn luyện và xây dựng mô hình phát hiện trang web lừa đảo
bằng thuật toán Random Forest cho tầng hai:

Hình 3.4. Chương trình huấn luyện và xây dựng mô hình phát hiện
trên tầng hai

- Sử dụng ngôn ngữ JavaScript lập trình extension tích hợp vào trình duyệt
của người dùng.
47

Hình 3.5. Kiến trúc extension của Chrome

Hình 3.6. Cấu trúc tập tin của extension được lập trình, cài đặt trên trình duyệt

- Extension tiến hành trích xuất các đặc trưng của URL khi người dùng gửi
yêu cầu truy cập vào một trang web bất kỳ, bằng cách tạo ra các hàm trong
JavaScript truy cập vào cấu trúc DOM của trang web để kiểm tra:

Hình 3.7. Extension thực hiện trích xuất đặc trưng trên trang web
48
- Tập hợp kết quả được trả về từ các hàm ở trên thành một vector kết quả
của các đặc trưng (với ý nghĩa của giá trị “1” là lừa đảo; “0” là nghi ngờ và “-1”
là lành tính). Ví dụ: feature_url = [1, -1, 1, 1, 1, -1, 0, 1]. Đồng thời, gửi vector
đặc trưng này lên máy chủ web để đưa qua mô hình phát hiện dựa trên URL,
tiến hành kiểm tra.

- Kết quả từ máy chủ web trả về cho extension chính là giá trị của xác suất
phát hiện của chính vector đặc trưng vừa được gửi lên. Sử dụng giá trị này thực
hiện so sánh với giá trị ngưỡng (threshold) được lựa chọn trong pha xây dựng
mô hình phát hiện. Nếu lớn hơn giá trị ngưỡng (tức đây là trang web lừa đảo) thì
sẽ gửi yêu cầu cho “background.js” của extension xử lý ngăn chặn, thông báo
cho người dùng không nên truy cập và dừng tiến trình phát hiện ngay trên tầng
một. Ngược lại, thực hiện tương tự đối các đặc trưng được trích xuất trong
content của trang web (chủ yếu các đặc trưng bất thường trong mã HTML và
JavaScript).

Hình 3.8. Extension gửi vector đặc trưng của URL một lên máy chủ web
49

Hình 3.9. Extension gửi vector đặc trưng của Content lên máy chủ web

Hình 3.10. Máy chủ web đưa dữ liệu đã nhận được qua mô hình phát hiện

- Xử lý kết quả trả về sau khi đưa qua mô hình phát hiện: Nếu URL cần
kiểm tra là của một trang web lừa đảo, thực hiện ngăn chặn và lưu URL trang
web đó vào Blacklist. Ngược lại, chuyển tiếp sang tầng ba để tiếp tục phát hiện:
50

Hình 3.11. So sánh kết quả trả về với giá trị ngưỡng của tầng một

Hình 3.12. Tiến trình ngăn chặn trang web khi phát hiện có lừa đảo

Hình 3.13. Lưu URL của trang web lừa đảo vào Blacklist
51
3.1.3. Tầng ba
Ngay khi hoạt động phát hiện và ngăn chặn trang web lừa đảo lần lượt diễn
ra ở tầng một và tầng hai không thành công, URL của trang web cần kiểm tra
được gửi lên tầng ba để tiếp tục phát hiện. Tầng ba được chúng tôi xây dựng
một Blacklist chứa các trang web lừa đảo, giúp cung cấp cho người dùng một
kênh để tham chiếu, truy vấn và kiểm tra thông qua phần mềm ứng dụng hoặc
tra cứu trực tiếp trên website của chúng tôi.

Hình 3.14. Gửi URL lên máy chủ web phát hiện trên tầng ba

Hình 3.15.Thực hiện kiểm tra URL trong CSDL của Blacklist

Kết quả được trả về tại tầng ba, nếu URL đã tồn tại trong Blacklist,
extension tiến hành xử lý ngăn chặn không cho người dùng truy cập tới URL
của trang web hiện tại. Ngược lại, tiếp tục thực hiện kiểm tra URL này trên tầng
bốn.
52
3.1.4. Tầng bốn
Tại tầng bốn, chúng tôi lần lượt sử dụng API của PhishTank và Google
Safe Browsing để kiểm tra URL được gửi lên từ tầng ba.

- Đăng ký một project để sử dụng API key trên Google Cloud Platform
trước khi kiểm tra bằng Google Safe Browsing:

Hình 3.16. API key được đăng ký từ Google Cloud Platform

- Đăng ký một project để sử dụng API key trước khi kiểm tra trên
PhishTank:

Hình 3.17. API key được đăng ký từ PhishTank


53
- Sử dụng API của Google Safe Browsing tiến hành kiểm tra:

Hình 3.18. Kiểm tra URL trên API của Google Safe Browsing

Hình 3.19. Kiểm tra URL trên API của PhishTank

3.2. Đánh giá


3.2.1. Phương pháp đánh giá
Phương pháp đánh giá của luận văn được dựa trên phương pháp ma trận
nhầm lẫn (Confusion Matrix).
54
Một mô hình phát hiện được đánh giá là tốt nếu tỉ lệ TP (True Positive) và
TN (True Negative) lớn; đồng thời, tỉ lệ FP (False Positive) và FN (False
Negative) nhỏ (tức là tỉ lệ TP, TN tỉ lệ nghịch với FP, FN). Trong đó:

- TP: Số lượng các mẫu thuộc lớp dương được phân loại chính xác vào lớp
dương.

- FP: Số lượng các mẫu không thuộc lớp dương bị phân loại nhầm vào lớp
dương.

- TN: Số lượng các mẫu không thuộc lớp dương được phân loại đúng.

- FN: Số lượng các mẫu thuộc lớp dương bị phân loại nhầm vào các lớp
không phải lớp dương.

Bảng 3.2. Bảng đánh giá dựa trên phương pháp Confusion Matrix

Lớp dự đoán (Predicted class)

+ -

+ TP - True Positive FN - False Negative


Lớp thực tế
(True class)
- FP - False Positive TN - True Negative

Xuất phát từ nhiệm vụ phát hiện trang web lừa đảo đối tầng một và tầng hai
với mục đích sàng lọc. Do đó, chúng tôi tiến hành tính toán những giá trị sau
làm căn cứ cho việc đánh giá mô hình:

- Với một cách xác định một lớp là Positive (lớp dương), Precision được
định nghĩa là tỉ lệ số điểm True Positive trong số những điểm được phân loại là
Positive (TP + FP). Giá trị của Precision cao đồng nghĩa với độ chính xác của
các điểm tìm được là cao:

𝑇𝑃
Precision =
𝑇𝑃+ 𝐹𝑃
55
- Recall được định nghĩa là tỉ lệ số điểm True Positive trong số những điểm
thực sự là positive (TP + FN). Giá trị của Recall cao đồng nghĩa với việc True
Positive Rate cao, tức tỉ lệ bỏ sót các điểm thực sự Positive là thấp:

𝑇𝑃
Recall =
𝑇𝑃+ 𝐹𝑁

3.2.2. Kết quả so sánh


Tiến hành đánh giá mô hình phát hiện trang web lừa đảo trên tập 2000 dữ
liệu còn lại từ nguồn dữ liệu của UCI. Kết quả của đánh giá dựa trên phương
pháp ma trận nhầm lẫn (Confusion Matrix), trong đó coi lớp dương (Positive) là
trang web lừa đảo, lớp âm (Negative) là trang web lành tính.

So sánh kết quả thực nghiệm giữa các mô hình dựa trên các thuật toán học
máy khác nhau:

Bảng 3.3. Kết quả thực nghiệm trên các mô hình đối với tầng một

Số lượng đặc
Mô hình Precision Recall
trưng
SVM 8 87,3% 53,1%
RF 8 79,6% 63,0%
Tầng 1 8 99,1% 30,3%

Bảng 3.4. Kết quả thực nghiệm trên các mô hình đối với tầng hai

Số lượng đặc
Mô hình Precision Recall
trưng
SVM 9 79,1% 99,5%
RF 9 84,7% 97,0%
Tầng 2 9 99,2% 43,2%

Nhận xét: Như vậy, dựa vào kết quả thử nghiệm được thực hiện trên tầng
một và tầng hai có thể thấy độ đo Precision (tỉ lệ chính xác trong phát hiện đúng
trang web lừa đảo) trên mô hình của chúng tôi so với mô hình của hai thuật toán
SVM và Random Forest là vượt trội hơn hẳn. Trong đó, độ chính xác trong phát
56
hiện của tầng một là 99,1% và tầng hai là 99,2%. Đồng nghĩa với việc không có
phát hiện nhầm xảy ra. Bên cạnh đó, giá trị của Recall (hiệu xuất phát hiện trang
web lừa đảo) không cao, do trong nghiên cứu của chúng tôi cho phép “bỏ sót”
trên tầng một và tầng hai. Tuy nhiên, nhiệm vụ này sẽ tiếp tục tiến hành phát
hiện trên tầng ba và tầng bốn của kiến trúc hệ thống đã được đề xuất.

3.3. Triển khai thử nghiệm


- Cài đặt Extension “PPA Phishing Detector” trên trình duyệt của máy tính
người dùng.

Hình 3.20. Cài đặt Extension vào trình duyệt

- Cài đặt môi trường và các dịch vụ máy chủ web trên hệ thống máy chủ.

Hình 3.21. Cài đặt máy chủ web trên Server


57
- Chuẩn bị dữ liệu thử nghiệm.

Hình 3.22. Dữ liệu cho tiến hành thử nghiệm

- Kết quả thử nghiệm.

Hình 3.22. Cảnh báo khi phát hiện có trang web lừa đảo
58

Hình 3.23. Trang web cho người dùng truy vấn URL trực tuyến
59
KẾT LUẬN
Luận văn đã trình bày một hướng tiếp cận có hiệu quả trong đó kết hợp
giữa hai nhóm giải pháp kỹ thuật: Kỹ thuật học máy và kỹ thuật dựa vào cộng
đồng trong việc phát hiện và ngăn chặn trang web lừa đảo. Đồng thời, đề xuất
một kiến trúc nhiều tầng cho tiến hành thực nghiệm, cụ thể: Tầng một và tầng
hai thực hiện sàng lọc nhanh trang web lừa đảo bằng cách cài đặt mô hình học
máy đã được thiên vị hoá; Tầng ba và tầng bốn thực hiện chuẩn đoán trang web
lừa đảo thông qua hoạt động tham vấn dịch vụ blacklist và hỏi chuyên gia.
Quá trình nghiên cứu luận văn đã đạt được một số kết quả chính sau đây:
- Tìm hiểu các giải pháp đã có trong phát hiện trang web lừa đảo thông qua
các giải pháp cộng đồng. Đồng thời, trình bày tóm tắt cơ sở lý thuyết của các
thuật toán phân lớp trong kỹ thuật học máy bao gồm: Hồi quy Logistic, cây
quyết định, Naive Bayes, máy vector hỗ trợ (SVM), rừng ngẫu nhiên (Random
Forest) cho phát hiện trang web lừa đảo.
- Tiến hành đề xuất kiến trúc nhiều tầng trong phát hiện và ngăn chặn trang
web lừa đảo.
- Đề xuất được giải pháp lựa chọn các đặc trưng tốt nhất đảm bảo hiệu quả,
hiệu suất cho xây dựng mô hình phát hiện.
- Tùy biến thuật toán Random Forest nhằm thiên vị hoá trong việc xây
dựng mô hình phát hiện trang web lừa đảo được thực hiện trên tầng một và hai.
- Nghiên cứu cơ chế kết nối, cách thức làm việc với API của các hệ chuyên
gia của Google Safe Browsing và PhishTank.
- Tiến hành cài đặt và thử nghiệm, đánh giá và so sánh kết quả.
- Sử dụng kết quả của nghiên cứu, tiến hành cài đặt, tích hợp thành công
công cụ phát hiện và ngăn chặn trang web lừa đảo vào trình duyệt web của
người dùng.
Hướng phát triển tiếp theo:
Nghiên cứu mở rộng phương pháp với nhiều hướng tiếp cận trong phát
hiện trang web lừa đảo hơn. Tiếp tục nghiên cứu lựa chọn, bổ sung thêm các đặc
trưng của trang web lừa đảo cho huấn luyện và sinh mô hình phát hiện nhằm
nâng cao hiệu quả hiệu suất của mô hình phát hiện.
60
TÀI LIỆU THAM KHẢO

[1] APWG, "Phishing Activity Trends Report," APWG, 2019.

[2] D. Ulevitch, "OpenDNS," Cisco, 1 November 2005. [Online]. Available:


https://www.opendns.com/.

[3] "Google Safe Browsing API," [Online]. Available:


http://code.google.com/apis/safebrowsing/developersguide.html.

[4] P. Prakash, M. Kumar, R.R. Kompella and M. Gupta, "Phishnet: Predictive


Blacklisting to Detect Phishing Attacks," in Proceedings IEEE, 2010.

[5] Y. Joshi, S. Saklikar, D. Das and S. Saha, "Phish Guard: A Browser Plug-In
for protection from phishing web sites,," in Published in 2nd International
Conference on Internet Multimedia Services Architecture and Applications,
2008.

[6] N. Chou, R. Ledesma, Y. Teraguchi and J. Mitchell, "Client-Side Defense


Against Web-Based Identity Theft," in NDSS, 2004.

[7] J. Mao, P. Li, K. Li, T. Wei and Z. Liang, "Bait alarm: Detecting Phishing
Sites using Similarity in Fundamental Visual Features," in Intelligent
Networking and Collaborative Systems, 2013.

[8] S. L. Salzberg, C4.5: Programs for Machine Learning by J. Ross Quinlan,


KLuwer Academic, 1993.

[9] L. Breiman, Classification and Regression Trees, New York, CA:


Wadsworth International Group, 1984.

[10] J. Ma, L. K. Saul, S. Savage and G. M. Voelker, "Beyond Blacklists:


Learning to Detect Malicious Website from Suspicious URLs," in KDD'09,
Paris, France, 2009.

[11] L. Breiman, "Random Forests," in Machine Learning, vol. 45, California,


Statistics DepartmentUniversity of CaliforniaBerkeley, 2001, pp. 5-32.

[12] Mohammad, Rami, McCluskey, Thabtah and Fadi, "An Assessment of


Features Related to Phishing Websites using an Automated Technique," in
International Conferece For Internet Technology And Secured
Transactions, London, UK, 2012.

[13] Mohammad, Rami, Thabtah, F. Abdeljaber and McCluskey, "Predicting


phishing websites based on self-structuring neural network," Neural
61
Computing and Applications, pp. 443-458, 2014.

[14] Mohammad, Rami, McCluskey, T. a. Thabtah and F. Abdeljaber,


"Intelligent Rule based Phishing Websites Classification," IET Information
Security, pp. 153-160, 2014.

[15] M. Karabatak and T. Mustafa, "Performance comparison of classifiers on


reduced phishing website dataset," in 2018 6th International Symposium on
Digital Forensic and Security (ISDFS), Antalya, Turkey, 2018.

[16] R. M. A. Mohammad, L. McCluskey and F. Thabtah, "UCI Machine


Learning Repository," 26 03 2015. [Online]. Available:
https://archive.ics.uci.edu/ml/datasets/phishing+websites.

[17] Breiman, L., J. H. Friedman, R. A. Olshen and C. J. Stone, "Classification


and Regression Trees," Belmont, CA: Wadsworth International Group,
1984.

[18] J. Quinlan, C4.5: Programs for Machine Learning, Morgan Kaufmann,


1993.

You might also like