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.
Tổng quan về tấn công Phishing và học máy
Tổng quan về tấn công phishing
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.
1.1.1 Sự phổ biến của tấn công phishing
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.
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.
1.1.2 Một số kiểu tấn công phishing phổ biến
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
1.1.3 Các thành phần tạo nên một cuộc tấn công phishing URLs
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ó. Đị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 toà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 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 toà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 vuông "[]") 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.
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
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.
Tổng quan về học máy
1.2.1 Tổng quan về học máy
Học máy là một lĩnh vực nghiên cứu dựa vào các thuật toán và mô hình toá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.
1.2.2 Phân loại các kỹ thuật học máy
Chúng ta có thể phân loại các thuật toá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)
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 trực tuyến (Online learning)
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 toán có giám sát để dự đoá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ự đoá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ự đoá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 toá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 toá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)
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
Thuật toá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 nguyên đáng kể Vì việc đào tạo lại toà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ù hợp cho các ứng dụng cần thích ứng nhanh chóng với hoà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, quá 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 toá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.
1.2.3 Ứng dụng của học máy
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
Khảo sát vấn đề và xây dựng mô hình thực nghiệm
Khảo sát vấn đề
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 quá 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](https://www.phishtank.com/) 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 tác toà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 toà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 toà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ó 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ự đoá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 (https://www.kaggle.com/eswarchandt/phishing- website-detector) được xây dựng vào tháng 5 năm 2020.
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 LabelEncoder.
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',
'LinksInScriptTags', 'ServerFormHandler', 'InfoEmail', 'AbnormalURL', 'WebsiteForwarding', 'StatusBarCust', 'DisableRightClick',
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.
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 }
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
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ể
Hình 2.7 Biểu đồ cặp cho các tính năng cụ thể
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 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ự đoá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: f(x)+e−x
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)
Xây dựng mô hình thực nghiệm
Để 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à:
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
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à:
Ta đến với model đầu tiên
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 toán accuracy, f1_score, Recall, precision của model
Hình 2.8 Accuracy, f1_score, Recall, precision của Logistic regression Tính toán phân loại báo cáo của mô hình
Hình 2.9 Tính toán phân loại báo cáo của mô hình Logistic regression
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 toán accuracy, f1_score, Recall, precision của model
Hình 2.10 Accuracy, f1_score, Recall, precision của KNN Tính toán phân loại báo cáo của mô hình
Hình 2.11 Tính toá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
Hình 2.12 Tìm n_estimators của KNN
Support Vector Machine hay SVM là một trong những thuật toán Học máy giám sát phổ biến nhất, được sử dụng cho cả các vấn đề Phân loại và Hồi quy Mục tiêu của thuật toán SVM là tạo ra đường ranh giới (decision boundary) tốt nhất có thể để phân tách không gian n chiều thành các lớp, từ đó chúng ta có thể đặt điểm dữ liệu mới vào đúng danh mục một cách dễ dàng trong tương lai.
Tính toán accuracy, f1_score, Recall, precision của model
Hình 2.13 Accuracy, f1_score, Recall, precision của SVM Tính toán phân loại báo cáo của mô hình
Hình 2.14 Tính toán phân loại báo cáo của mô hình SVM
Thuật toán Naive Bayes là một thuật toán học máy giám sát, dựa trên Định lý Bayes và được sử dụng để giải quyết các vấn đề phân loại Nó chủ yếu được sử dụng trong việc phân loại văn bản, hình ảnh có tập dữ liệu đào tạo có số chiều cao.
Bộ phân loại Naive Bayes là một trong những thuật toán phân loại đơn giản và hiệu quả nhất, giúp xây dựng các mô hình học máy nhanh chóng có thể đưa ra dự đoán nhanh chóng.
Tính toán accuracy, f1_score, Recall, precision của model
Hình 2.15 Accuracy, f1_score, Recall, precision của Native Bayes Tính toán phân loại báo cáo của mô hình
Hình 2.16 Tính toán phân loại báo cáo của mô hình Native Bayes
Decision Tree là một kỹ thuật học máy giám sát có thể được sử dụng cho cả các vấn đề phân loại và hồi quy, nhưng thường được ưa chuộng hơn để giải quyết các vấn đề phân loại Nó là một bộ phân loại có cấu trúc cây, trong đó các nút nội tại biểu thị các đặc trưng của một tập dữ liệu, các nhánh biểu thị các quy tắc quyết định và mỗi nút lá biểu thị kết quả.
Tính toán accuracy, f1_score, Recall, precision của model
Hình 2.17 Accuracy, f1_score, Recall, precision của Decision Tree Tính toán phân loại báo cáo của mô hình
Hình 2.18 Tính toán phân loại báo cáo của mô hình Decision Tree
Vẽ sơ đồ độ chính xác trong quá trình huấn luyện và kiểm tra cho max_depth từ 1 đến 30
Hình 2.19 Tìm max_depth của Decision Tree
Random Forest là một thuật toán máy học phổ biến thuộc kỹ thuật học máy giám sát Nó có thể được sử dụng cho cả các vấn đề Phân loại và Hồi quy trong
ML Dựa trên khái niệm của học tổ hợp, đó là quá trình kết hợp nhiều bộ phân loại để giải quyết một vấn đề phức tạp và cải thiện hiệu suất của mô hình.
Tính toán accuracy, f1_score, Recall, precision của model
Hình 2.20 Accuracy, f1_score, Recall, precision của Random Forest Tính toán phân loại báo cáo của mô hình
Hình 2.21 Tính toán phân loại báo cáo của mô hình Random Forest
Vẽ sơ đồ độ chính xác trong quá trình huấn luyện cho n_estimators từ 1 đến20
Hình 2.22 Tìm n_estimators của Random Forest
Gradient Boosting là một nhóm thuật toán máy học kết hợp nhiều mô hình học yếu lại với nhau để tạo ra một mô hình dự đoán mạnh mẽ Các cây quyết định thường được sử dụng khi thực hiện gradient boosting Các thuật toán tăng cường (boosting) đóng một vai trò quan trọng trong việc xử lý sự cân bằng giữa sai số chệch và sai số phương sai Khác với các thuật toán bagging, chỉ kiểm soát độ phương sai cao trong một mô hình, boosting kiểm soát cả hai khía cạnh (sự chệch và độ phương sai), và được coi là hiệu quả hơn.
Tính toán accuracy, f1_score, Recall, precision của model
Hình 2.23 Accuracy, f1_score, Recall, precision của Gradient Boosting Tính toán phân loại báo cáo của mô hình
Hình 2.24 Tính toán phân loại báo cáo của mô hình Gradient Boosting
Vẽ sơ đồ độ chính xác trong quá trình huấn luyện cho lr từ 0.1 đến 1
Hình 2.25 Tìm learning_rate của Gradient Boosting
Vẽ sơ đồ độ chính xác trong quá trình huấn luyện cho max_depth 1-10
Hình 2.26 Tìm max_depth của Gradient Boosting
CatBoost là một thuật toán máy học được Yandex công bố gần đây Nó có thể tích hợp dễ dàng với các framework học sâu như TensorFlow của Google và Core ML của Apple CatBoost có khả năng làm việc với nhiều loại dữ liệu khác nhau để giúp giải quyết một loạt các vấn đề mà doanh nghiệp đang đối mặt hiện nay.
Tính toán accuracy, f1_score, Recall, precision của model
Hình 2.27 Accuracy, f1_score, Recall, precision của CatBoost
Tính toán phân loại báo cáo của mô hình
Hình 2.28 Tính toán phân loại báo cáo của mô hình Catboost
Vẽ sơ đồ độ chính xác trong quá trình huấn luyện cho learning_rate từ 0.1-1
Hình 2.29 Tìm learning_rate của Catboost
2.2.2 So sánh các mô hình Để so sánh hiệu suất của mô hình, một khung dữ liệu được tạo Các cột của khung dữ liệu này là danh sách được tạo để lưu trữ kết quả của mô hình.
Sắp xếp dữ liệu theo độ chính xác
Hình 2.30 Dữ liệu chính xác của các thuật toán
Hình 2.31 Biểu đồ cột độ chính xácLưu model tốt nhất, trước hết ta tạo thư mục pickle để xuất thông tin vào fileKiểm tra 1 số feature quan trong trong model
Hình 2.32 Tương quan các feature trong model
- Mục đích cuối cùng của dự án này là khám phá các mô hình học máy khác nhau, thực hiện Phân tích dữ liệu khám phá trên tập dữ liệu phishing và hiểu các tính năng của chúng.
- Việc tạo sổ ghi chép này đã giúp em tìm hiểu nhiều về các tính năng ảnh hưởng đến mô hình để phát hiện xem URL có an toàn hay không, đồng thời tôi cũng biết cách điều chỉnh mô hình và cách chúng ảnh hưởng đến hiệu suất của mô hình.
- Kết luận cuối cùng về tập dữ liệu Phishing là một số tính năng như
"HTTTPS", "AnchorURL", "WebsiteTraffic" có tầm quan trọng hơn trong việc phân loại URL phishing.
- Trình phân loại tăng cường độ dốc phân loại hiện tại URL lên tới 97,4% các
Thực nghiệm triển khai giải pháp
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
Bảng 3 Công nghệ sử dụng
Ta chạy file run.py để chạy chương trình