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

Nhóm 69 Ứng dụng học máy trong phát hiện tấn công lừa đảo thông qua phân loại url

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 (2.1 MB, 72 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

BAN CƠ YẾU CHÍNH PHỦ

<b>HỌC VIỆN KỸ THUẬT MẬT MÃ</b>

<b>CHUYÊN ĐỀ KỸ NGHỆ</b>

<b>Ứng dụng học máy trong phát hiện tấn công lừađảo thông qua phân loại URL</b>

Ngành: An tồn thơng tin

<i>Sinh viên thực hiện:</i>

<b>Lê Mạnh Huy – AT170425Đặng Văn Sâm – AT170442</b>

<i>Giảng viên hướng dẫn:</i>

<b>TS. Nguyễn Mạnh Thắng</b>

Khoa An tồn thơng tin – Học viện Kỹ thuật mật mã

Hà Nội, 2023

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>LỜI CẢM ƠN</b>

Để hoàn thành tốt báo cáo này, ngoài sự nỗ lực của bản thân, chúng em còn nhận được sự quan tâm, giúp đỡ của nhiều cá nhân và tập thể.

Nhóm chúng em xin chân thành cảm ơn các thầy cơ trường Học viện Kỹ thuật mật mã nói chung, q thầy cơ của khoa An tồn thơng tin nói riêng đã tận tình dạy bảo, truyền đạt kiến thức cho chúng em trong suốt q trình học.

Kính gửi đến thầy Nguyễn Mạnh Thắng lời cảm ơn chân thành và sâu sắc, cảm ơn thầy đã tận tình theo sát và chỉ dẫn cho nhóm chúng em trong quá trình thực hiện đề tài này. Thầy khơng chỉ hướng dẫn chúng em những kiến thức chuyên ngành, mà còn giúp chúng em học thêm những kĩ năng, tinh thần, thái độ khi làm việc nhóm.

Trong q trình tìm hiểu nhóm em cũng xin cảm ơn các anh chị đi trước, các bạn cùng khóa đã góp ý, giúp đỡ nhóm em rất nhiều trong q trình tìm hiểu và làm đề tài.

Do kiến thức còn nhiều hạn chế nên khơng thể tránh khỏi những thiếu sót trong cách xây dựng ứng dụng, lỗi trình bày, ... Nhóm chúng em rất mong nhận được sự đóng góp ý kiến của quý thầy cô để đề tài của em đạt được kết quả tốt hơn.

Chúng em xin chân thành cảm ơn!

<b>T/M NHÓM SINH VIÊN THỰC HIỆN ĐỒ ÁN</b>

Thành viên

Đặng Văn Sâm

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

LỜI NÓI ĐẦU...9

CHƯƠNG 1: Tổng quan về tấn công Phishing và học máy...10

1.1 Tổng quan về tấn công phishing...10

1.1.1 Sự phổ biến của tấn công phishing...10

1.1.2 Một số kiểu tấn công phishing phổ biến...11

1.1.3 Các thành phần tạo nên một cuộc tấn công phishing URLs...11

2.2 Xây dựng mơ hình thực nghiệm...33

2.2.1 Huấn liệu dữ liệu...34

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

2.2.2 So sánh các mơ hình...45

2.2.2 Xử lí các URL...46

Kết luận chương 2...48

CHƯƠNG 3: Thực nghiệm triển khai giải pháp...49

3.1 Xây dựng web phát hiện tấn công lừa đảo thông qua phân loại URL.49

3. Hướng đi tiếp theo của nghiên cứu...52

Tài liệu tham khảo...53

Phụ lục...55

DANH MỤC HÌNH ẢNH

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Hình 1.1 Số lượng trang web phishing trong giai đoạn từ 2008 đến 2019.. .10

Hình 1.2 Sơ đồ cấu trúc cơ bản của URL...12

Hình 1.3 Các trang web phishing sử dụng HTTPS theo quý...13

Hình 2.7 Biểu đồ cặp cho các tính năng cụ thể...26

Hình 2.8 Accuracy, f1_score, Recall, precision của Logistic regression...34

Hình 2.9 Tính tốn phân loại báo cáo của mơ hình Logistic regression...35

Hình 2.10 Accuracy, f1_score, Recall, precision của KNN...35

Hình 2.11 Tính tốn phân loại báo cáo của mơ hình KNN...36

Hình 2.12 Tìm n_estimators của KNN...36

Hình 2.13 Accuracy, f1_score, Recall, precision của SVM...37

Hình 2.14 Tính tốn phân loại báo cáo của mơ hình SVM...37

Hình 2.15 Accuracy, f1_score, Recall, precision của Native Bayes...38

Hình 2.16 Tính tốn phân loại báo cáo của mơ hình Native Bayes...38

Hình 2.17 Accuracy, f1_score, Recall, precision của Decision Tree...39

Hình 2.18 Tính tốn phân loại báo cáo của mơ hình Decision Tree...39

Hình 2.19 Tìm max_depth của Decision Tree...39

Hình 2.20 Accuracy, f1_score, Recall, precision của Random Forest...40

Hình 2.21 Tính tốn phân loại báo cáo của mơ hình Random Forest...40

Hình 2.22 Tìm n_estimators của Random Forest...41

Hình 2.23 Accuracy, f1_score, Recall, precision của Gradient Boosting...42

Hình 2.24 Tính tốn phân loại báo cáo của mơ hình Gradient Boosting...42

Hình 2.25 Tìm learning_rate của Gradient Boosting...42

Hình 2.26 Tìm max_depth của Gradient Boosting...43

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Hình 2.27 Accuracy, f1_score, Recall, precision của CatBoost...44

Hình 2.28 Tính tốn phân loại báo cáo của mơ hình Catboost...44

Hình 2.29 Tìm learning_rate của Catboost...44

Hình 2.30 Dữ liệu chính xác của các thuật tốn...45

Hình 2.31 Biểu đồ cột độ chính xác...45

Hình 2.32 Tương quan các feature trong model...46

Hình 2.33 Hàm xử lí URL 1...47

Hình 2.34 Hàm xử lí URL 2...47

Hình 3.1 Giao diện Web...50

Hình 3.2 Kết quả URL an tồn...51

Hình 3.2 Kết quả URL khơng an tồn...51

Hình phụ lục 1 Tạo Jupyter Notebook...56

Hình phụ lục 2 Tải về Dataset...56

Hình phụ lục 3 Tổng quan Dataset...57

Hình phụ lục 4 Accuracy, f1_score, Recall, precision của GB...61

Hình phụ lục 5 Phân loại báo cáo của Gradient Boosting...61

Hình phụ lục 6 Learning_rate của Gradient Boosting...63

Hình phụ lục 7 Max_depth của Gradient Boosting...64

Hình phụ lục 8 Hàm của các feature trên Github...70

Hình phụ lục 9 Khởi chạy Flask...71

<b>DANH MỤC BẢN</b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Bảng 1 Phân loại của phishing trên Internet...11 Bảng 2 Tổng quan về cấu trúc của bộ dữ liệu...24 Bảng 3 Công nghệ sử dụng...50

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>DANH MỤC VIẾT TẮT</b>

URL Uniform Resource Locator APWG Anti-Phishing Working Group

HTTP Hypertext Transfer Protocol HTTPS Hypertext Transfer Protocol

FTP File Transfer Protocol

SNI Server name indications SVM Support Vector Clasifier

API Application Programming Interface

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>LỜI NĨI ĐẦU</b>

Tính cấp thiết của đề tài

Tấn cơng lừa đảo (Phishing) là hình thức tấn cơng phi kỹ thuật được tội phạm mạng sử dụng nhiều nhằm đánh cắp dữ liệu bí mật từ máy tính hay một mạng máy tính của người dùng, sau đó sử dụng dữ liệu cho nhiều mục đích khác nhau, như lấy cắp tiền của nạn nhân hoặc bán lại dữ liệu đã đánh cắp. Trong đó, URL phishing (lừa đảo qua đường link) là một cuộc tấn công phishing qua URL, kẻ tấn công thường tạo ra các đường link giả mạo, giống hệt với các trang web chính thức, và gửi chúng qua email, tin nhắn, hoặc các phương tiện truyền thông xã hội. Người nhận thông điệp có thể bị đánh lừa để nhấp vào đường link và nhập thơng tin cá nhân của mình trên các trang web giả mạo này, tưởng rằng họ đang truy cập đến trang web chính thức. Khi thơng tin này được thu thập, kẻ tấn cơng có thể sử dụng nó để thực hiện các hành động gian lận hoặc truy cập trái phép vào tài khoản của người dùng. Hiện nay trên thế giới có nhiều tổ chức, cá nhân đã phát triển các phần mềm phát hiện URL Phishing như THREATCOP, EASTDMARC để bảo vệ người dùng, đặc biệt là Bộ Thông tin và Truyền thông cũng đã đưa ra công cụ kiểm tra URL Phishing.

Mục tiêu thực hiện đồ án

Tìm hiểu các phương pháp tấn cơng lừa đảo thơng qua URL và giải pháp phịng chống. Tìm hiểu các thuật tốn học máy xem xét và đánh giá chúng. Qua đó, thực nghiệm mơ hình phân tích phát hiện URL phishing.

Tên đề tài “Ứng dụng học máy trong phát hiện tấn công lừa đảo thông qua phân loại URL”

Bài tốn cần giải quyết

 Mơ tả các thành phần của một cuộc tấn công URLs phishing  Lựa chọn phương pháp học máy và thu thập dataset

 Các thuật tốn sử dụng trong q trình training

 Nghiên cứu xây dựng công cụ ứng dụng học máy trong phát hiện tấn công lừa đảo thông qua phân loại URL

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>CHƯƠNG 1: Tổng quan về tấn công Phishing và học máy1.1 Tổng quan về tấn công phishing</b>

Trong chương này, chúng tôi sẽ cung cấp một tổng quan về tình hình hiện tại của các cuộc tấn cơng phishing dựa trên Internet. Phần đầu tiên sẽ trình bày các số liệu thống kê về quy mô và lượng tấn cơng phishing trên Internet. Sau đó, chúng tơi sẽ cung cấp một phân loại cơ bản. Phần ba sẽ giải thích các phương pháp lừa đảo kỹ thuật được sử dụng để thao tác URL.

<i>1.1.1 Sự phổ biến của tấn công phishing</i>

Cuộc tấn công phishing đã tồn tại từ khi Internet ra đời. Dữ liệu hiện có cho thấy rằng khi Internet phát triển, những kẻ tấn công phishing cũng tiến hóa chiến thuật của họ và xây dựng những cuộc tấn công phức tạp hơn. Điều này được chứng minh bằng các số liệu sau đây, thể hiện xu hướng trong phishing từ góc độ của một tổ chức nổi tiếng: APWG.

Anti-Phishing Working Group (APWG) là một liên minh quốc tế có hơn 2200 thành viên, thống nhất phản ứng toàn cầu đối với tội phạm mạng trên các lĩnh vực cơng nghiệp, chính phủ, cơng an, và tổ chức phi chính phủ. Bên cạnh các hoạt động khác, nỗ lực nghiên cứu của họ tạo ra Báo cáo Xu hướng Hoạt động Phishing hàng quý, phân tích các cuộc tấn cơng phishing được báo cáo bởi các thành viên của APWG. Hình 1.1 thể hiện các con số hàng năm về số lượng trang web phishing duy nhất được phát hiện bởi APWG.

Hình 1.1 Số lượng trang web phishing trong giai đoạn từ 2008 đến 2019.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Mặc dù quan trọng để lưu ý rằng APWG đã có nhiều thành viên mới trong suốt 12 năm (hầu hết trong số đó hợp tác trong các nỗ lực phát hiện phishing), đường hồi quy được vẽ qua các giá trị thể hiện rõ xu hướng tăng. APWG đề cập trong báo cáo của họ rằng họ "tiếp tục làm rõ phương pháp theo dõi và báo cáo của mình và tích hợp nguồn dữ liệu mới vào các báo cáo của chúng tôi."Một điểm quan trọng khác cần đề cập là có thể có nhiều cuộc tấn công phishing thực hiện thông qua hàng ngàn URL tùy chỉnh, tất cả đều dẫn đến cùng một miền đích.

<i>1.1.2 Một số kiểu tấn cơng phishing phổ biến</i>

Có nhiều loại phishing trên Internet được nhận diện. Bảng phân loại cơ bản được cung cấp trong bảng sau cùng với mô tả ngắn gọn.

Bulk phishing Loại phishing phổ biến và truyền thống nhất, nhắm đến một loạt các nạn nhân tiềm năng.

Spear phishing Cuộc tấn công được hướng vào cá nhân cụ thể.

Whaling Một phân loại của spear phishing, chuyên sâu vào các mục tiêu nổi tiếng (chính trị gia nổi tiếng, các nhà quản lý cấp cao, người nổi tiếng).

Clone phishing Sửa đổi email/tin nhắn đã gửi trước đó, chứa liên kết phishing. Kẻ tấn cơng sau đó gửi lại cho nạn nhân mà không bị phát hiện, giả mạo là một phiên bản cập nhật của mục.

Bảng 1 Phân loại của phishing trên Internet

<i>1.1.3 Các thành phần tạo nên một cuộc tấn công phishing URLs</i>

Bất kể phisher chọn phương pháp nào được hiển thị ở trên, ở trái tim của hầu hết các cuộc tấn công phishing đều nằm việc can thiệp vào liên kết. Đây là một kỹ thuật mà những kẻ tấn công sử dụng để làm cho URL mà một liên kết trỏ đến trở nên đáng tin cậy. Phần này sẽ mô tả các phương pháp khác nhau được sử dụng bởi những kẻ tấn công để can thiệp vào các thành phần cá nhân của URL để che giấu tính độc hại của nó.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Địa chỉ URL (Uniform Resource Locator) được sử dụng để đặc biệt tham chiếu đến một tài nguyên cụ thể có sẵn trên mạng như Internet. Khi nói đến việc phát hiện phishing, việc nhận biết một URL độc hại là một yếu tố quan trọng của việc bảo vệ chống lại phishing, vì nó cung cấp một "đường phịng" trước bất kỳ cơ chế bảo mật nào khác, chẳng hạn như kiểm tra nội dung trang, được triển khai.

Phần này sẽ tập trung vào các thành phần giao thức, tên máy chủ và đường dẫn của URL. Nên lưu ý rằng cũng có các thành phần tùy chọn bổ sung khác của URL, cụ thể là cổng, truy vấn, thông tin người dùng và phần đoạn. Tuy nhiên, việc kiểm tra chúng thường khơng cung cấp đầu vào đủ hữu ích cho nhiệm vụ phát hiện phishing.

Hình 1.2 Sơ đồ cấu trúc cơ bản của URL a, Protocol

Giao thức được cung cấp trong khu vực "scheme" của URL chỉ định cách thông tin giữa các đối tác truyền thơng, ví dụ như giữa một máy khách và một máy chủ, được trao đổi. Hầu hết người dùng chủ yếu quen với HTTP và HTTPS, nhưng FTP, mailto, file, và các giao thức khác cũng được cho phép. Trong lĩnh vực phishing, thành phần này của URL trải qua một biến đổi đáng kể.

Một trong những khuyến nghị an tồn chính đối với người sử dụng Internet là tìm kiếm biểu tượng khóa bên cạnh URL, biểu thị việc sử dụng kết nối an toàn được cung cấp bởi giao thức HTTPS. Quy tắc này đã hoặc ít đã đủ để tránh bị lừa đảo cho đến những năm gần đây. Để sử dụng HTTPS trên trang web của họ, chủ sở hữu hoặc người vận hành cần có một chứng chỉ SSL/TLS được cấp bởi một cơ quan uy tín. Tuy nhiên, những kẻ tấn công dường như đang tận dụng sự phát triển gần đây về sự dễ dàng tiếp cận các chứng chỉ thông qua một cơ quan chứng nhận như Let’s Encrypt. Với một chứng chỉ hợp lệ, họ cố gắng lừa dối những nạn nhân

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

tiềm năng bằng cách sử dụng giao tiếp "được bảo mật". PhishLabs, một trong những đóng góp cho APWG, theo dõi phần trăm trang web phishing được bảo vệ bằng mật mã HTTPS. Nhờ vào những nỗ lực này, Báo cáo Xu hướng Hoạt động Phishing được xuất bản hàng quý bởi APWG cho thấy rằng 74% cuộc tấn công phishing được phát hiện trong quý 4 năm 2019 sử dụng TLS/SSL. Biểu đồ sau thể hiện sự phát triển đáng kể trong việc áp dụng HTTPS trong các trang web phishing.

Hình 1.3 Các trang web phishing sử dụng HTTPS theo quý

Kết luận là mặc dù chúng ta có thể vẫn xem xét việc sử dụng giao thức khơng an tồn là một chỉ số của một cuộc tấn cơng phishing có thể (có lẽ khơng phải là phức tạp), nhưng chúng ta chắc chắn khơng thể chỉ tin vào "khóa" để bảo vệ nữa.

b, Hostname

Phần quyền lực của URL là nơi mà tên máy chủ được chỉ định. Nó bao gồm một tên miền đã đăng ký, và các tên miền con hoặc một địa chỉ IPv4 theo cách viết dấu chấm thông thường (IPv6 cần được bọc trong dấu ngoặc vng "[]"). Phần này xác định một máy tính duy nhất, chẳng hạn như một máy chủ trong mạng. Tên miền đã đăng ký được hình thành theo quy tắc của Hệ thống Tên Miền (DNS).

Vùng tên máy chủ cung cấp một không gian cho những kẻ tấn công để đặt "sáng tạo" của họ vào sử dụng để lừa dối người dùng vào bẫy của họ. Trong số những kỹ thuật phổ biến nhất được sử dụng là cybersquatting và typosquatting.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Cybersquatting (hoặc domain squatting) là việc lạm dụng tên miền kết nối với một nhãn hiệu thuộc sở hữu của một thực thể khác để đạt được lợi nhuận bất hợp pháp. Như một ví dụ trực tiếp, một kẻ tấn cơng có thể nhận thấy rằng một công ty thành công sử dụng tên miền "bestcompany.com" để tự giới thiệu. Họ có thể cố gắng đăng ký các tên miền như "bestcompany.biz" hoặc "bestcompany.co.uk." Những tên miền này sau đó có thể được sử dụng để thiết lập một trang web phishing, giả mạo mình như là một trang web chính thức của "Bestcompany."

Typosquatting, còn được biết đến là URL hijacking, tuân theo một mơ hình tương tự nhưng khai thác tính chất sai lầm của người dùng. Một kẻ tấn cơng có thể tận dụng các tên miền mà gần giống với các trang web hoặc thương hiệu phổ biến. Một trang web phishing của loại này thường đi kèm với giao diện người dùng giống với giao diện của trang web chính thức. Như một hậu quả, người dùng nếu nhập sai "google.com" thành "goggle.com" có thể bị chuyển hướng đến một trang phishing giống như trang thực và tiếp tục gửi thông tin đăng nhập vào tay của kẻ tấn công.

Cho đến nay, chúng ta đã thảo luận về các kỹ thuật khai thác tên miền cấp độ cao và cấp độ thấp (TLDs và SLDs). Những thứ này ít nhất là được quy định một phần bởi một Registrar, một cơ quan cung cấp dịch vụ đăng ký tên miền. Tuy nhiên, các tên miền con và tên của chúng hoàn toàn do chủ sở hữu quyết định. Điều này ngụ ý rằng một kẻ tấn cơng có thể dễ dàng thiết lập một cuộc tấn công phishing trên một URL như " Điều này có thể khơng khó để đánh lừa nhiều người dùng thông thường chỉ chú ý đến một vài từ đầu tiên "secure" và "paypal", đặc biệt nếu URL dài và rối bời. Do đó, các nạn nhân có thể khơng nhận ra rằng họ đang truy cập vào trang của anydomainname.com thay vì trang web chính thức của PayPal.

c, Path

Phần đường dẫn xác định vị trí của tài nguyên trong phạm vi của quyền lực đã được chỉ định, ví dụ, một máy chủ. Nó sử dụng một cấu trúc giống như hệ thống tệp, với chuỗi các đoạn được phân tách bằng dấu gạch chéo "/". Tương tự như phần

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

tên miền con của URL, sự phức tạp của đường dẫn nằm trong quyền lực của người tấn cơng. Như đã đề cập trước đó, các URL phức tạp có thể dễ dàng đánh lừa người dùng để họ không chú ý đến cấu trúc của chúng. Do đó, những kẻ tấn cơng thường thích sử dụng đường dẫn không ý nghĩa, dài để làm tăng chiều dài tổng cộng của URL. Cũng có khả năng, mặc dù ít phổ biến hơn, sử dụng các kỹ thuật tương tự như việc can thiệp vào phần tên miền con mô tả ở đoạn trước.

<b>1.2 Tổng quan về học máy</b>

<i>1.2.1 Tổng quan về học máy</i>

Học máy là một lĩnh vực nghiên cứu dựa vào các thuật tốn và mơ hình tốn học để giải quyết các nhiệm vụ máy tính khác nhau mà khơng sử dụng chỉ dẫn rõ ràng để giải quyết vấn đề. Thay vì sử dụng chỉ dẫn rõ ràng trong mã nguồn, các thuật toán học bằng cách sử dụng các mơ hình và suy luận.

Để định nghĩa cách một chương trình "học", chúng ta sử dụng một định nghĩa chính xác và phổ biến hơn: Một chương trình máy tính được cho là học từ trải nghiệm E liên quan đến một nhiệm vụ T và một độ đo hiệu suất P, nếu hiệu suất của nó trên T, được đo bằng P, cải thiện với trải nghiệm E. Một ví dụ thích hợp là một công cụ lọc thư rác học được nhận diện thư rác (Nhiệm vụ T) bằng cách nhận ra các mẫu trong các thư điện tử trước đó (trải nghiệm E). Một đo lường hiệu suất P có thể là tỷ lệ thư được phân loại đúng so với tổng số thư nhận được.

Ngày nay, với sự gia tăng của các phương pháp dựa trên dữ liệu cả trong nghiên cứu khoa học và thương mại, học máy được ứng dụng rộng rãi trong nhiều lĩnh vực. Từ nghiên cứu khoa học đến nhận dạng giọng nói trong ngành cơng nghiệp máy tính và phát hiện giao dịch gian lận trong ngành ngân hàng.

<i>1.2.2 Phân loại các kỹ thuật học máy</i>

Chúng ta có thể phân loại các thuật tốn học máy dựa trên các tiêu chí sau, các tiêu chí này khơng phải là đối thủ của nhau:

 Sự giám sát của con người trong quá trình đào tạo:  Học có giám sát (Supervised learning)

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

 Học không giám sát (Unsupervised learning)  Học bán giám sát (Semi-supervised learning)  Học củng cố (Reinforcement learning)

 Khả năng học tăng dần:  Học lô (Batch learning)

 Học trực tuyến (Online learning)  Phương pháp học:

 Học dựa trên ví dụ (Instance-based learning)  Học dựa trên mơ hình (Model-based learning)

a, Phân loại dựa trên sự giám sát của con người trong quá trình đào tạo  Học có giám sát (Supervised learning)

Chúng ta thường sử dụng các thuật tốn có giám sát để dự đốn một hạng mục (nhiệm vụ phân loại) hoặc một giá trị (nhiệm vụ hồi quy). Chúng ta cung cấp thuật toán với các trường hợp dữ liệu đào tạo. Mỗi trường hợp đào tạo bao gồm nhãn chính xác của hạng mục hoặc giá trị, và chúng ta cố gắng dự đốn cho các trường hợp mới, chưa biết. Một ví dụ về nhiệm vụ học có giám sát là phân loại thư điện tử, trong đó các hạng mục chúng ta dự đốn là thư rác và thư bình thường. K-nearest neighbors (KNN), Decision Trees, Support Vector Machines và Neural Networks đều thuộc gia đình các thuật tốn học có giám sát.

 Học khơng giám sát (Unsupervised learning)

Ngược lại, học không giám sát sử dụng dữ liệu không được gán nhãn. Lý do sử dụng các trường hợp không được gán nhãn có thể là chúng ta khơng biết nhãn chính xác, hoặc chúng ta cố gắng tìm một nhãn tốt hơn. Loại hình học này có một loạt các ứng dụng. Trong số chúng, có phân nhóm, giảm chiều, phát hiện ngoại lệ, khai thác luật kết hợp. Một ví dụ về nhiệm vụ phân nhóm là phân nhóm khách hàng. Chúng ta muốn xác định các nhóm người có các mơ hình mua hàng tương tự, nhưng chúng ta có thể chưa xác định những mơ hình này. Tương tự, chúng ta có thể khơng biết có bao nhiêu nhóm trước. Một số thuật tốn khơng giám sát nổi tiếng bao gồm K-Means và phân tích thành phần chính.

 Học bán giám sát (Semi-supervised learning)

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Học bán giám sát cung cấp một cách để học bằng cách sử dụng dữ liệu được đánh giá một phần. Kịch bản phổ biến là một tập dữ liệu lớn, trong đó có một tỷ lệ nhỏ dữ liệu được đánh giá nhãn và một tỷ lệ lớn dữ liệu khơng được đánh giá nhãn. Nó phổ biến trong các nhiệm vụ nơi việc gán nhãn cho các điểm dữ liệu đòi hỏi một lượng thời gian/nguồn lực con người khơng nhỏ, ví dụ, việc gán nhãn các bản ghi được sử dụng cho phân tích giọng nói. Các thuật toán trong danh mục này thường kết hợp cả phương pháp có giám sát và khơng giám sát. Một ví dụ về sự kết hợp như vậy là thuật toán Deep Belief Network (DBN).

 Học củng cố (Reinforcement learning)

Học củng cố sử dụng một tác nhân để học một chiến lược bằng cách nhận thưởng hoặc phạt. Một tác nhân là một hệ thống quan sát và tương tác với mơi trường mà nó được triển khai. Dựa trên các hành động mà nó thực hiện, nó nhận thưởng hoặc phạt. Mục tiêu là tối đa hóa thưởng bằng cách học chiến lược tốt nhất, một chính sách. Một trong những ứng dụng đáng chú ý gần đây của học củng cố là AlphaGo của DeepMind, đã đánh bại nhà vơ địch thế giới trong một trị chơi cờ gọi là Go.

b, Phân loại dựa trên khả năng học tăng dần  Học lơ (Batch learning)

Thuật tốn học lô, hoặc học offline, học bằng cách sử dụng tất cả dữ liệu có sẵn một lần. Chúng khơng thể tự cập nhật dựa trên các điểm dữ liệu mới. Để thích ứng với dữ liệu mới được thu thập, toàn bộ hệ thống cần được đào tạo lại bằng cách sử dụng bộ dữ liệu được cập nhật. Phương pháp học lô không phù hợp cho các môi trường thay đổi nhanh chóng hoặc ứng dụng có giới hạn tài ngun đáng kể. Vì việc đào tạo lại tồn bộ hệ thống có thể là một cơng việc địi hỏi tài nguyên, đó trở thành một nhược điểm của các hệ thống học lơ. Tuy nhiên, có thể thỏa thuận để đào tạo lại trên dữ liệu mới theo chu kỳ (ví dụ, một lần mỗi ngày/tuần/tháng).

 Học trực tuyến (Online learning)

Các thuật toán học trực tuyến đang học theo chuỗi. Khi dữ liệu mới được cung cấp vào hệ thống ngay lập tức, mơ hình được cập nhật. Vì một bước học chi phí thấp về việc học về điểm dữ liệu mới nhanh chóng, những kỹ thuật này phù

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

hợp cho các ứng dụng cần thích ứng nhanh chóng với hồn cảnh mới hoặc có yêu cầu phần cứng nghiêm ngặt. Tốc độ học là một trong những tham số quan trọng nhất của học trực tuyến. Càng cao tốc độ học, hệ thống sẽ thích ứng nhanh chóng với dữ liệu mới và "quên" dữ liệu cũ. Các thuật toán học trực tuyến dễ bị ảnh hưởng bởi dữ liệu nhiễu, đặc biệt nếu tốc độ học là cao, dữ liệu khơng chính xác có thể làm suy giảm hiệu suất. Như một biện pháp phịng ngừa, q trình học có thể được tắt nếu có sự suy giảm hiệu suất hoặc nếu phát hiện dữ liệu bất thường.

c, Phân loại dựa trên phương pháp học

 Học dựa trên ví dụ (Instance-based learning)

Học dựa trên ví dụ là một phương pháp trực tiếp, trong bản chất, phụ thuộc vào việc nhớ các dữ liệu đào tạo có sẵn. Khi một điểm dữ liệu mới chưa biết được giới thiệu, nó được so sánh với các điểm dữ liệu đã biết, và các giả định về nó được xây dựng dựa trên các phương pháp đo lường sự tương đồng đã chọn. Một ví dụ điển hình là thuật tốn KNN.

 Học dựa trên mơ hình (Model-based learning)

Các phương pháp học dựa trên mơ hình cố gắng tổng hợp từ các dữ liệu có sẵn thay vì nhớ tất cả các trường hợp. Khi tạo một mơ hình, cần có một độ đo hiệu suất để đánh giá chất lượng của mơ hình. Chúng ta đo lường độ gần nhau của các dự đoán của mơ hình đối với dữ liệu có sẵn. Một ví dụ tiêu biểu là hồi quy tuyến tính. Nó cố gắng vừa vặn một đường vào dữ liệu. Phương pháp bình phương ít nhất có thể được sử dụng làm chỉ số chất lượng cho đường.

<i>1.2.3 Ứng dụng của học máy</i>

<b>Kết luận chương 1</b>

Trong chương đầu tiên của đồ án này, chúng em đã đưa ra tổng quan tấn cơng phishing và sự phổ biến của nó trên khơng gian mạng cũng như một số kiểu tấn công phổ biến, các thành phần cơ bản tạo nên một cuộc tấn công. Chương một cũng nêu lên tổng quan về học máy và một số kỹ thuật học máy phổ biến, cũng là phương pháp được chúng em lựa chọn để phát hiện tấn công này

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>CHƯƠNG 2: Khảo sát vấn đề và xây dựng mơ hình thực nghiệm2.1 Khảo sát vấn đề</b>

<i>2.1.1 Dataset</i>

Dữ liệu là cơ sở cho tất cả các bước tiếp theo trong quá trình phân tích dữ liệu. Bất kỳ bước phức tạp nào chúng ta thực hiện trong quá trình chọn đặc trưng và đào tạo mơ hình, nếu khơng có dữ liệu đào tạo chính xác, hệ thống sẽ khơng thể tổng quát tốt trên dữ liệu mới. Ưu tiên cho thí nghiệm này là việc thu thập dữ liệu từ các nguồn liên quan cung cấp biểu đồ chính xác về sự xuất hiện của các loại URL khác nhau trên Internet. Chú trọng vào việc tạo ra một tập dữ liệu cân bằng càng nhiều càng tốt để tránh thiên lệch về bất kỳ danh mục nào. Kích thước của tập dữ liệu cũng đóng một vai trị quan trọng, vì lựa chọn sử dụng một tập dữ liệu nhỏ sẽ tăng tốc q trình nhưng lại thiếu tính tổng quát.

a. Thu thập URL lừa đảo

Các URL lừa đảo đã được thu thập từ nhiều nguồn khác nhau để đạt được biểu đồ đa dạng, cân bằng đặc trưng của chúng. Một khía cạnh quan trọng cần xem xét là việc sử dụng các URL mới nhất để theo dõi xu hướng mới nhất mà những người lừa đảo sử dụng ngày nay trong những nỗ lực của họ.

[PhishTank]( là một cộng đồng cho phép bất kỳ ai đó gửi, xác nhận, theo dõi và chia sẻ dữ liệu lừa đảo. Nó cung cấp một cơ sở dữ liệu miễn phí về các trang web lừa đảo hợp lệ cũng như một API miễn phí để kiểm tra xem một URL cụ thể có phải là lừa đảo khơng (theo cơ sở dữ liệu của họ). Nó cũng có một lưu trữ lừa đảo có sẵn trên trang web của họ. Tuy nhiên, tại thời điểm viết luận văn này, lưu trữ không thể truy cập thông qua API. Một ưu điểm của tập dữ liệu của PhishTank là tất cả các URL được gửi và được xem xét là hợp lệ đã được xác minh bởi các thành viên trong cộng đồng. Do đó, đây là một nguồn dữ liệu chất lượng cao và đáng tin cậy.

OpenPhish là một nền tảng tự động cung cấp các dịch vụ thơng tin lừa đảo. Nó xác định các trang web lừa đảo và thực hiện phân tích thơng tin theo thời gian thực mà không cần sự can thiệp của con người và không sử dụng bất kỳ nguồn tài nguyên ngoại vi nào. Nó thu thập hàng triệu URL được cung cấp bởi mạng lưới đối

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

tác tồn cầu của mình. OpenPhish cung cấp cả dịch vụ cơ bản và dịch vụ cao cấp. Luồng tải về cơ bản miễn phí của họ được cập nhật mỗi 12 giờ và bao gồm các URL từ ba ngày trở lại đây.

PhishStats, được thành lập vào năm 2014, là một dịch vụ tụ tập, cải thiện và chia sẻ thơng tin lừa đảo với cộng đồng an tồn thông tin. Họ cung cấp quyền truy cập vào dữ liệu lừa đảo qua nhiều kênh, tất cả đều miễn phí. Luồng tải xuống CSV của họ có sẵn để tải xuống mỗi 90 phút và chứa các URL từ 30 ngày trở lại đây. Hiện tại, cơ sở dữ liệu của họ có hơn ba triệu bản ghi và bạn có thể thực hiện truy vấn phức tạp trên nó bằng cách sử dụng API Feed của họ. Cuối cùng, dịch vụ Public Dashboard của họ cho phép tìm kiếm theo IP, host, tên miền hoặc URL đầy đủ. Hơn nữa, họ cũng cung cấp thống kê hữu ích về các đặc điểm khác nhau của các cuộc tấn công lừa đảo được phát hiện.

b. Thu thập URL không độc hại

Là nguồn chính của các URL khơng độc hại, hai loại bộ dữ liệu đã được trích xuất từ giao thông mạng của một mạng đại học trong một ngày bằng cách sử dụng Flowmon Netflow Collector và chức năng NFDUMP của nó (một bộ cơng cụ xử lý dữ liệu Netflow). Bộ dữ liệu đầu tiên bao gồm các URL đầy đủ từ các yêu cầu HTTP. Bộ dữ liệu thứ hai bao gồm các SNI (server name indications) từ các yêu cầu HTTPS. SNI là một tiện ích mở rộng của giao thức TLS (bảo mật lớp vận chuyển) mà HTTPS sử dụng. Sử dụng SNI, một máy khách chỉ ra máy chủ mà nó đang cố kết nối trong giai đoạn đầu giao tiếp được gọi là bắt tay. Khi một kết nối HTTPS an toàn giữa máy khách và máy chủ đã được thiết lập, URL tồn bộ sẽ được mã hóa; do đó, những URL này khơng thể được trích xuất. Để bù lại điều này, một công cụ thu thập đơn giản được sử dụng để trích xuất một số URL đầy đủ từ một số SNI có sẵn để xấp xỉ sơ bộ việc duyệt web của người dùng trên những trang web này.

Đối với thí nghiệm này, đã có một giả định rằng các URL được thu thập bằng cách sử dụng các phương pháp được mô tả ở trên đều thực sự không độc hại. Tuy nhiên, nếu đối với một URL nào đó, giả định này là sai, thì có thể dẫn đến một đánh giá khơng chính xác - một điểm dữ liệu được đánh giá là giả mạo tích cực có

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

thể, trong thực tế, là một giả mạo tích cực thực sự. Nếu điều này xảy ra, chúng ta có thể kiểm tra thủ cơng các dự đốn được phân loại là tích cực và thuộc lớp không độc hại.

c. Tổng quan về Bộ dữ liệu

Bộ sưu tập URL trang web cho hơn 11000 trang web. Mỗi mẫu có 30 thơng số trang web và nhãn lớp xác định nó có phải là trang web lừa đảo hay không. Bộ dữ liệu được lấy từ Kaggle ( được xây dựng vào tháng 5 năm 2020.

Mơ tả dataset

Hình 2.1 Mơ tả Dataset Sau khi thực hiện ta có được:

 Có 11054 trường hợp và 31 đặc trưng trong bộ dữ liệu.

 Trong số đó, có 30 đặc trưng độc lập và 1 đặc trưng phụ thuộc.  Mỗi đặc trưng đều thuộc kiểu dữ liệu int, nên không cần sử dụng

 Khơng có giá trị khác trong bộ dữ liệu.  Khơng có giá trị thiếu trong bộ dữ liệu. Danh sách tiêu đề (tên cột) như sau:

[ 'UsingIP', 'LongURL', 'ShortURL', 'Symbol@', 'Redirecting//', 'PrefixSuffix-', 'SubDomains', 'HTTPS', 'DomainRegLen ', 'Favicon',

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

'NonStdPort', 'HTTPSDomainURL', 'RequestURL', 'AnchorURL', 'LinksInScriptTags', 'ServerFormHandler', 'InfoEmail', 'AbnormalURL', 'WebsiteForwarding', 'StatusBarCust', 'DisableRightClick',

'Sử dụngPopupWindow', 'IframeRedirection', 'AgeofDomain', 'DNSRecording', 'WebsiteTraffic', 'PageRank', 'GoogleIndex', 'LinksPointingToPage', 'StatsReport', 'class' ]

Biểu đồ Heatmap hay còn gọi là bản đồ nhiệt là cách thể hiện dữ liệu một cách trực quan thông qua màu sắc với 2 loại màu nóng – lạnh. Màu nóng là nơi có giá trị cao nhất, quan trọng nhất, hoặc mạnh nhất (dữ liệu càng tăng khi màu càng đi về phía gam màu nóng), màu lạnh sẽ mang ý nghĩa ngược lại. Hình 2.2 là bản đồ nhiệt hiển thị ma trận tương quan của các tính năng này. Phạm vi tương quan tiêu chuẩn là từ −1 đến +1, trong đó −1 là tương quan âm thấp nhất và +1 là tương quan dương cao nhất. Mối tương quan âm được hiển thị trong dải màu sáng hơn, trong khi mối tương quan dương được hiển thị trong dải màu tối hơn. Đặc biệt trong tập dữ liệu này, ánh xạ của hai đối tượng địa lý khác nhau, có tên Favicon và popUpWindow, cho thấy màu tối nhất, có nghĩa là 35 chúng có tương quan cao hoặc thuận. Tương quan tích cực có nghĩa là một đối tượng địa lý đánh dấu URL là lừa đảo và đối tượng địa lý khác cũng vậy. Trong khi các mối tương quan phủ định có nghĩa là một tính năng đánh dấu URL là độc hại, trong khi tính năng kia thì khơng.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

Hình 2.2 Bản đồ nhiệt

UsingIP (categorical - signed numeric) { -1,1 } LongURL (categorical - signed numeric) { 1,0,-1 } ShortURL (categorical - signed numeric) { 1,-1 } Symbol@ (categorical - signed numeric) { 1,-1 } Redirecting// (categorical - signed numeric) { -1,1 } PrefixSuffix- (categorical - signed numeric) { -1,1 } SubDomains (categorical - signed numeric) { -1,0,1 } HTTPS (categorical - signed numeric) { -1,1,0 } DomainRegLen (categorical - signed numeric) { -1,1 }

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

Favicon (categorical - signed numeric) { 1,-1 } NonStdPort (categorical - signed numeric) { 1,-1 } HTTPSDomainURL (categorical - signed numeric) { -1,1 } RequestURL (categorical - signed numeric) { 1,-1 } AnchorURL (categorical - signed numeric) { -1,0,1 }

Bảng 2 Tổng quan về cấu trúc của bộ dữ liệu

Số lượng URL Phishing trong biểu đồ hình trịn. Ở bộ dữ liệu chia làm 2 nhãn 1 là URL hợp pháp, -1 là URL lừa đảo

Hình 2.3 Số lượng URL Phishing

Để kiểm tra đặc tính của bộ dữ liệu, tiến hành quan sát một số thuộc tính như: UsingIP, HTTPS, AnchorURL, WebsiteTraffic Sau khi quan sát thu được kết quả như các hình dưới đây

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

Hình 2.4 Đặc tính UsingIP

Hình 2.5 Đặc tính HTTPS

Hình 2.6 Đặc tính AnchorURL

Với mỗi thuộc tính, quan sát các đặc điểm như miêu tả về tổng số dữ liệu hợp lệ, giá trị trung bình, độ lệch chuẩn, giá trị nhỏ nhất, từ giá trị của dữ liệu trở xuống chiếm 25%, 50% và 75%, giá trị lớn nhất. Cụ thể, lấy ví dụ trường hợp của thuộc tính UsingIP, ta có giá trị valid thể hiện số lượng dữ liệu hợp lệ là 11,100 dịng chiếm tỉ lệ 100%, khơng có dịng nào bị mất mát hoặc sai lệch dữ liệu. Giá trị trung bình của thuộc tính là 31, độ lệch chuẩn là 95. Các thuộc tính khác ta xem xét tương tự

Biểu đồ cặp cho các tính năng cụ thể

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

Hình 2.7 Biểu đồ cặp cho các tính năng cụ thể

<i>2.1.2 Thuật tốn sử dụng</i>

Vấn đề của chúng em bao gồm việc gán nhãn (lừa đảo hoặc không lừa đảo) cho mỗi điểm dữ liệu URL, điều này có nghĩa là chúng em đang giải quyết một vấn đề phân loại. Do đó, chúng em sẽ lựa chọn các thuật toán học máy giám sát và học máy hàng loạt. Cả hai loại thuật toán dựa trên các trường hợp và dựa trên mơ hình sẽ được sử dụng. Ở các đoạn văn tiếp theo, chúng em sẽ xem xét các thuật toán áp

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

dụng để huấn luyện các mơ hình của mình. Chúng em cũng sẽ thảo luận về ưu điểm và điểm yếu của chúng.

a, Logistic Regression

Thuật toán hồi quy logistic thường được sử dụng cho các nhiệm vụ phân loại nhị phân (Ví dụ: 0-1). Các ví dụ thực tế về việc sử dụng hồi quy logistic bao gồm dự đốn khả năng ai đó nhấp vào quảng cáo hoặc liệu ai đó có thể đủ điều kiện vay tiền hay khơng.

Hồi quy logistic mơ hình hóa xác suất của một tập hợp dữ liệu đầu vào thuộc về một lớp hoặc sự kiện, chẳng hạn như gian lận giao dịch hoặc vượt qua/khơng đạt một kỳ thi. Nó cũng là một mơ hình tuyến tính như hồi quy tuyến tính và đầu ra của nó là sự kết hợp tuyến tính của các đầu vào khác nhau. Tuy nhiên, vì hồi quy tuyến tính khơng phải lúc nào cũng tạo ra một số từ 0 đến 1 (khi cần cho xác suất), nên hồi quy logistic được sử dụng để trả về giá trị từ 0 đến 1 để biểu thị xác suất. Biểu diễn đằng sau hồi quy logistic là tìm một đường thẳng hoặc mặt phẳng/siêu phẳng có thể phân tách rõ ràng hai tập hợp điểm dữ liệu càng nhiều càng tốt. Công thức sau đây

là hàm cho hồi quy logistic, trong đó X là tổ hợp tuyến tính của các biến đầu vào B+XW−1 . Ở đây, W là hệ số hồi quy:

Tương tự như hồi quy tuyến tính, lợi thế của hồi quy logistic là tốc độ đào tạo nhanh và khả năng diễn giải của nó. Hồi quy logistic là một mơ hình tuyến tính, vì vậy nó khơng thể được sử dụng cho các bài toán với các mối quan hệ phi tuyến tính phức tạp.

b, Bộ phân loại K-Nearest Neighbors (KNN)

Bộ phân loại K-nearest neighbors (KNN) là một trong những mơ hình dự đốn phi tham số học được sử dụng trong dự án của chúng tôi. Cụ thể, đây là một trong những thuật toán đơn giản nhưng thực tế nhất. Q trình huấn luyện của thuật tốn đơn giản là ghi nhớ tất cả các vector đặc trưng và nhãn tương ứng của chúng. Q trình dự đốn đầu tiên tính tốn k trường hợp gần nhất (tính theo khoảng cách) đến trường hợp mới, không xác định và gán nhãn bằng nguyên tắc đa

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

số phiếu bầu của các hàng xóm được tính tốn. Theo khoảng cách, chúng ta thường hiểu là khoảng cách Euclidean giữa các vector đặc trưng của hai trường hợp. Tuy nhiên, cũng có thể sử dụng các phương pháp đo khoảng cách khác nhau..

Ưu điểm chính của phương pháp này là sự đơn giản. Một nhược điểm đáng chú ý là có thể có sự suy giảm đáng kể về hiệu suất nếu có các đặc trưng khơng liên quan. Một điểm quan trọng khác cần xem xét là quy mô của các đặc trưng cá nhân phải nhất quán với tầm quan trọng của chúng để dự đoán một cách chính xác.

c. Máy Vector Hỗ trợ (SVM)

Máy Vector Hỗ trợ (SVMs) là một họ thuật tốn học có giám sát phù hợp cho một loạt các nhiệm vụ bao gồm phân loại, hồi quy và phát hiện ngoại lệ. Đơn giản, thuật tốn cố gắng tìm một siêu phẳng, hoặc trong hầu hết các trường hợp, một tập hợp các siêu phẳng, để phân chia dữ liệu thành các nhóm. Nếu khơng gian mơi trường của một khơng gian con có chiều n, thì một siêu phẳng là một khơng gian con có chiều n − 1.

d, Naive Bayes

Các phương pháp Naive Bayes là những thuật toán máy học có từ rất lâu. Những thuật tốn này dựa trên định lý xác suất của Bayes, với giả định "ngây thơ" rằng tất cả các cặp đặc trưng đều độc lập có điều kiện với biến lớp. Giả định này, tất nhiên, hiếm khi đúng trong các kịch bản thực tế. Tuy nhiên, các thuật toán Naive Bayes đã chứng tỏ là một công cụ hiệu quả cho các vấn đề phân loại như lọc thư rác.

Định lý của Bayes cho biết xác suất của một điểm dữ liệu E = (x1, x2, · · · , xn) thuộc lớp c (giả sử vấn đề phân loại nhị phân) là:

Sau đó, E được phân loại là tích cực nếu và chỉ nếu:

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

trong đó fb(E) là bộ phân loại Bayes. Giả sử tất cả các thuộc tính đều độc lập với biến lớp, chúng ta có được bộ phân loại Naive Bayes:

Các bộ phân loại Bayes có một lợi thế quan trọng về tốc độ so với các phương pháp phức tạp hơn. Một nhược điểm đối với một số nhiệm vụ sử dụng ước lượng xác suất là xác suất ước lượng của các mô hình Bayes được biết là khơng chính xác.

e, Cây Quyết Định (Decision Tree)

Cây quyết định là mơ hình dự đốn được sử dụng rộng rãi trong học máy, cũng như trong các lĩnh vực như thống kê và khai thác dữ liệu. Cây quyết định là một phương pháp học máy giám sát không tham số. Một cấu trúc cây, một mơ hình dự đốn, được xây dựng bằng cách suy luận ra các quy tắc từ các điểm dữ liệu bao gồm các vector đặc trưng. Các nút nội tại đại diện cho "quyết định" trong khi các nút lá đại diện cho các lớp dự đoán. Hầu hết các thuật toán sử dụng phương pháp từ trên xuống để xây dựng cây quyết định. Một thuật toán bắt đầu từ nút gốc và đưa ra "quyết định" tốt nhất, tức là chọn một đặc trưng + một tiêu chí, thơng qua đó các trường hợp cịn lại được chia thành các nút con cho đến khi khơng cịn đặc trưng nào để chọn hoặc một nút là thuần túy. Nút là thuần túy nếu nó chỉ bao gồm các trường hợp từ một lớp duy nhất, trong trường hợp này, nó trở thành một nút lá.

Có nhiều cách triển khai cây quyết định khác nhau, chẳng hạn như ID3, C4.5 (C5.0). Chúng tôi sẽ làm việc với một triển khai của thuật toán CART (Cây phân loại và hồi quy). Thuật toán này sử dụng một đại lượng được gọi là Độ không chắc chắn Gini để đo lường chất lượng của các phân nhánh. Độ không chắc chắn Gini là một đo lường về khả năng xếp sai của một trường hợp ngẫu nhiên từ tập hợp nếu nó được phân loại ngẫu nhiên. Độ khơng chắc chắn Gini cho n lớp, trong đó p<small>i.k đại</small> diện cho tỷ lệ các nút được gắn nhãn là lớp "k" trong nút thứ i, được tính theo cơng thức:

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

# Ưu điểm:

- Dễ hiểu, gần với cách tiếp cận của con người trong giải quyết vấn đề phân loại.

- Triển khai đơn giản.

- Hiểu kết quả một cách dễ dàng, giải thích tại sao một trường hợp cụ thể thuộc về một danh mục dự đoán chỉ liên quan đến việc sử dụng logic boolean đơn giản.

- Khả năng trực quan hóa cây.

- Khả năng mở rộng cho các vectơ đặc trưng có số chiều cao và các bộ mẫu có số lượng lớn. Mặc dù độ phức tạp thời gian trong trường hợp xấu nhất có thể là bậc hai đối với số lượng đặc trưng và bộ mẫu, thực tế, độ phức tạp thường là tuyến tính.

# Nhược điểm:

- Xây dựng cây quá phức tạp dẫn đến quá mức khớp với dữ liệu huấn luyện. Sự thiếu tổng quát này gây ra hiệu suất kém trên dữ liệu kiểm thử.

- Xây dựng cây có độ chệch nếu một danh mục cụ thể chiếm ưu thế trong tập dữ liệu. Vấn đề này có thể tránh được bằng cách sử dụng một tập dữ liệu huấn luyện cân bằng.

- Không ổn định. Một sự khác biệt đáng kể trong cây kết quả có thể được quan sát ngay cả với biến động nhỏ trong dữ liệu.

f, Random Forest

Random Forest là một thuật toán phân loại, sử dụng nhiều cây quyết định hoạt động như một bộ tổ hợp. Mỗi cây quyết định đưa ra dự đốn độc lập về dữ liệu, và thơng qua ngun tắc bầu cử đa số, dự đốn có số phiếu nhiều nhất trở thành dự đoán thực tế của mơ hình. Sức mạnh của các bộ phân loại tổ hợp nằm trong ý tưởng gọi là "sự hiểu biết của đám đơng". Nếu chúng ta có thể tìm cách tạo ra một khu rừng cây quyết định mà tất cả đều đưa ra quyết định không tương quan,

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

chúng ta có thể loại bỏ các lỗi do các cây cá nhân gây ra. Khía cạnh ít tương quan quan trọng vì, nếu thiếu nó, chúng ta chỉ sẽ lặp lại quyết định giống nhau nhiều lần. Trong rừng ngẫu nhiên, chúng ta có thể đảm bảo sự ít tương quan giữa các bộ phân loại bằng cách sử dụng hai kỹ thuật - bagging và tính ngẫu nhiên của đặc trưng.

Nhìn chung, cây quyết định nhạy cảm đối với dữ liệu huấn luyện - một biến đổi nhỏ giữa dữ liệu đầu vào có thể tạo ra cấu trúc cây khác biệt đáng kể. Bagging tận dụng tính chất này - thay vì sử dụng một tập hợp cố định các mẫu huấn luyện, mỗi cây được huấn luyện trên một mẫu ngẫu nhiên với việc lựa chọn có thay thế. Tính ngẫu nhiên của đặc trưng đơn giản hóa việc chọn đặc trưng để phân chia -trong q trình phân chia, chỉ có một tập con của các đặc trưng được xem xét

g, Gradient Boosting

Gradient Boosting là một kỹ thuật học máy thuộc họ ensemble learning, trong đó một loạt các mơ hình yếu (weak learners) được kết hợp để tạo ra một mơ hình mạnh mẽ hơn. Gradient Boosting là một trong những phương pháp phổ biến và mạnh mẽ trong machine learning, đặc biệt là cho các tác vụ phân loại và hồi quy.

Gradient Boosting hoạt động tốt với các bộ dữ liệu mất cân bằng và nó phù hợp với các trường hợp thực tế như quản lý rủi ro và phát hiện gian lận trong đó tập dữ liệu có xu hướng mất cân bằng. Một thiếu sót lớn của Gradient Boosting là nó khơng song song hóa khi nó tạo ra các cây một cách tuần tự. Nó cũng dễ bị nhiễu, chẳng hạn như các ngoại lệ trong dữ liệu và có thể dễ dàng overfitting do điều này.

Thuật tốn Gradient Boosting là một cơng cụ mạnh mẽ cho nhiều vấn đề học máy và được ưa chuộng trong cộng đồng do hiệu suất và khả năng xử lý các loại dữ liệu đa dạng.

h, Catboost

CatBoost là một thuật toán học máy được phát triển chủ yếu để xử lý các tác vụ phân loại và hồi quy trên dữ liệu có cấu trúc, như bảng dữ liệu (tabular data). Được phát triển bởi nhóm Yandex, CatBoost nổi bật với khả năng xử lý các dữ liệu

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

có chứa các biến hạng mục mà không cần phải chuyển đổi chúng thành biểu diễn số.

CatBoost triển khai cây đối xứng (symmetric trees) giúp giảm thời gian dự đốn và nó cũng có độ sâu của cây nông hơn theo mặc định (sáu)

CatBoost tận dụng các hốn vị ngẫu nhiên tương tự như cách XGBoost có một tham số ngẫu nhiên

Tuy nhiên, không giống như XGBoost, CatBoost xử lý các tính năng phân loại một cách thanh lịch hơn, sử dụng các khái niệm như tăng cường theo thứ tự (ordered boosting) và mã hóa phản hồi (response coding)

<i>2.1.3 Phương pháp Training</i>

Chung quy, toàn bộ quá trình khoa học dữ liệu, hoặc trong trường hợp này, một thí nghiệm máy học tuân theo một mẫu đa năng, có thể được mơ tả theo bảy bước sau:

1. Định nghĩa một câu hỏi/vấn đề cụ thể. 2. Tải dữ liệu lên

3. Phân tích khám phá dữ liệu 4. Trực quan hóa dữ liệu 5. Training dữ liệu

6. So sánh các mơ hình Training

7. Đưa ra kết luận chọn mơ hình phù hợp

Bốn bước đầu tiên đã được đề cập trong các đoạn trước đó. Do đó, chương này sẽ mô tả các phương pháp được sử dụng cho ba bước cịn lại.

<i>2.1.4 Phương pháp đánh giá</i>

Độ chính xác (hay còn gọi là accuracy) sẽ được sử dụng trong trường hợp này. Độ chính xác là một thước đo để đánh giá các mơ hình phân loại. Nói chính xác hơn thì độ chính xác là một phần nhỏ của các dự đốn mà mơ hình đã đúng. Về mặt hình thức, độ chính xác được định nghĩa là bằng tỉ lệ giữa số lượng dự đốn chính xác và tổng tất cả các dự đốn, cơng thức như sau:

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 =

<i><sup>Number of correct predictions</sup><sub>Total number of predictions</sub></i>

Đối với phân loại nhị phân, độ chính xác cũng có thể được tính theo mặt tích cực (Positive) và tiêu cực (Negative) với công thức như sau:

𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 =

<i><sub>TP+ TN+ EP+ FN</sub><sup>TP+TN</sup></i>

Cụ thể:

• TP (True Positive): đối tượng ở lớp Positive, mơ hình phân đối tượng vào lớp Positive (dự đốn đúng)

• TN (True Negative): đối tượng ở lớp Negative, mơ hình phân đối tượng vào lớp Negative (dự đốn đúng)

• FP (False Positive): đối tượng ở lớp Negative, mơ hình phân đối tượng vào lớp Positive (dự đốn sai)

• FN (False Negative): đối tượng ở lớp Positive, mơ hình phân đối tượng vào lớp Negative (dự đốn sai)

True/False thể hiện cho tính chính xác khi phân loại của mơ hình, True đồng nghĩa với việc mơ hình phân loại đúng và ngược lại. Positive/Negative là lớp mà đối tượng được mơ hình xếp vào, Positive có nghĩa rằng mơ hình phân đối tượng vào lớp Positive và ngược lại.

Ngồi ra ta cịn đánh giá theo Precision, F1_Score, Recall

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<b>2.2 Xây dựng mô hình thực nghiệm</b>

Để thực nghiệm, đồ án sử dụng bộ data được công bố và Jupyter Notebook, Python để xây dựng một số mơ hình Machine Learning. Ngơn ngữ lập trình được viết bằng mã Python với sự trợ giúp của gói NumPy, Pandas, Matplotlib, Scikit-learn. Các bước xử lí dữ liệu sẽ là:

 Huấn luyện dữ liệu

 So sánh các mơ hình huấn luyện => Chọn mơ hình huấn luyện tốt nhất  Xử lí URL

<i>2.2.1 Huấn liệu dữ liệu </i>

Các mơ hình học máy có giám sát được sử dụng để huấn luyện bộ dữ liệu là:

Logistic regression dự đoán kết quả của một biến phụ thuộc phân loại. Do đó, kết quả phải là một giá trị phân loại hoặc rời rạc. Logistic Regression tương tự như Linear Regression trừ việc cách chúng được sử dụng. Linear Regression được sử dụng để giải quyết các vấn đề hồi quy, trong khi Logistic Regression được sử dụng để giải quyết các vấn đề phân loại.

Tính tốn accuracy, f1_score, Recall, precision của model

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

Hình 2.8 Accuracy, f1_score, Recall, precision của Logistic regression Tính tốn phân loại báo cáo của mơ hình

Hình 2.9 Tính tốn phân loại báo cáo của mơ hình Logistic regression

<i>2. K-Nearest Neighbors</i>

K-Nearest Neighbor là một trong những thuật toán Machine Learning đơn giản nhất dựa trên kỹ thuật Học có giám sát. Thuật toán K-NN giả định sự giống nhau giữa trường hợp mới

Tính tốn accuracy, f1_score, Recall, precision của model

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

Hình 2.10 Accuracy, f1_score, Recall, precision của KNN Tính tốn phân loại báo cáo của mơ hình

Hình 2.11 Tính tốn phân loại báo cáo của mơ hình KNN

Vẽ sơ đồ độ chính xác trong quá trình huấn luyện và kiểm tra cho n_estimators từ 1 đến 20

</div>

×