Bài tập lớn học phần an ninh mạng phân loại mã độc sử dụng học máy

25 14 0
Bài tập lớn học phần an ninh mạng phân loại mã độc sử dụng học máy

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN HỌC PHẦN AN NINH MẠNG PHÂN LOẠI MÃ ĐỘC SỬ DỤNG HỌC MÁY Giảng viên hướng dẫn : Lê Thị Anh Nhóm : 10 Lớp : 20224IT6070001 Sinh viên thực : Trần Việt Anh Đỗ Đức Phú Nguyễn Tuấn Anh Nguyễn Trọng Hoàng – 2020600594 Hà Nội - 2023 MỤC LỤC MỤC LỤC DANH MỤC HÌNH ẢNH .2 LỜI CẢM ƠN LỜI NÓI ĐẦU CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI 1.1 Giới thiệu đề tài 1.2 Machine Learning gì? 1.3 Machine Learning thực tế .8 1.3.1 Xử lý ảnh 1.3.2 Phân tích văn 1.3.3 Khai phá liệu .10 1.3.4 Trò chơi điện tử & Robot 11 1.4 Phân loại thuật toán machine learning 11 1.4.1 Học có giám sát 11 1.4.2 Học không giám sát 12 CHƯƠNG 2: CÁC THUẬT TOÁN 13 2.1 Hồi quy logistic .13 2.1.1 Mơ hình hồi quy logistic 13 2.1.2 Sigmoid function 15 2.1.3 Hàm mát 16 2.1.4 Tối ưu hàm mát 17 2.1.5 Công thức cập nhật cho logistic sigmoid regression 21 2.1.6 Phân loại hồi quy logistic .21 2.1.7 Ưu nhược điểm hồi quy logistic 22 CHƯƠNG 3: KẾT QUẢ THỬ NGHIỆM 25 3.1 Phương pháp sử dụng 25 3.2 Chương trình 25 3.3 Kết thực nghiệm trường hợp 28 3.4 Kết thực nghiệm trường hợp 29 3.5 Kết thực nghiệm trường hợp 31 TÀI LIỆU THAM KHẢO 35 DANH MỤC HÌNH ẢNH Hình Các activation function khác 11 Hình Tại Linear Regression không phù hợp? 12 Hình Kết thực nghiệm trường hợp 23 Hình Biểu đồ kết thực nghiệm so với kết thực tế trường hợp 24 Hình Kết thực nghiệm trường hợp 25 Hình Biểu đồ kết thực nghiệm so với kết thực tế trường hợp 26 Hình Kết thực nghiệm trường hợp 27 Hình Biểu đồ kết thực nghiệm so với kết thực tế trường hợp 28 LỜI CẢM ƠN Những kiến thức an ninh mạng, học máy chủ đề nghiên cứu "Phân loại mã độc (virus, worm, trojan, backdoor, ransomware,…) sử dụng học máy" mang đến cho chúng em hội quý báu để tìm hiểu khám phá sâu lĩnh vực bảo mật mạng học máy Chúng em xin bày tỏ lòng biết ơn đến tất thầy bạn bè hỗ trợ đóng góp vào đề tài Chúng em xin chân thành cảm ơn hướng dẫn, dẫn hỗ trợ từ giảng viên, người sát cánh bên chúng em trình nghiên cứu thực dự án Những kiến thức động viên từ quý thầy cô giúp chúng em vượt qua khó khăn phát triển kỹ nghiên cứu Chúng em xin gửi lời cảm ơn đến bạn nhóm dự án Những nỗ lực, cống hiến tinh thần làm việc đồng đội làm cho dự án trở nên thành công hữu ích Cuối cùng, chúng em xin cảm ơn tất người đọc quan tâm đến dự án chúng em Hy vọng báo cáo cung cấp giá trị thơng tin hữu ích cho quan tâm đến lĩnh vực phân loại mã độc học máy Chúng em xin chân thành cảm ơn!!! LỜI NÓI ĐẦU Trong thời đại số hóa liệu lớn ngày nay, khả phân tích sử dụng liệu trở thành yếu tố quan trọng để đưa định thông minh nhiều lĩnh vực Trong lĩnh vực bảo mật mạng phòng chống mã độc, học máy trở thành công cụ quan trọng để phân loại phát loại mã độc Bài tập lớn tập trung vào đề tài "Phân loại mã độc (virus, worm, trojan, backdoor, ransomware,…) sử dụng học máy." Trong tập lớn này, chúng em khám phá cách sử dụng học máy để phân loại loại mã độc khác Đây chủ đề quan trọng lĩnh vực bảo mật mạng, việc phân loại mã độc giúp phát ngăn chặn công mạng độc hại Chủ đề bao gồm chương Chương 1: Giới thiệu tổng quát nội dung đề tài: Chương giới thiệu tầm quan trọng việc phân loại mã độc đề tài phần quan trọng lĩnh vực bảo mật mạng Đồng thời xác định mục tiêu phạm vi nghiên cứu Chương 2: Chi tiết nội dung thực đề tài: Chương tập trung vào khía cạnh thực dự án Chúng em xem xét cách thu thập liệu mã độc, tiền xử lý liệu, xây dựng huấn luyện mơ hình học máy đánh giá hiệu suất mơ hình Chương 3: Demo kết thực với hình ảnh minh họa: Trong chương cuối cùng, chúng em trình bày kết dự án minh họa chúng hình ảnh Chúng em thấy cách mơ hình học máy có khả phân loại loại mã độc làm chúng áp dụng thực tế Chúng em hy vọng tập lớn cung cấp kiến thức thú vị hữu ích cách sử dụng học máy để phân loại mã độc, đồng thời giúp hiểu rõ tầm quan trọng bảo mật mạng giới kỹ thuật số ngày CHƯƠNG I: GIỚI THIỆU VỀ MÃ ĐỘC VÀ HỌC MÁY 1.1.Mã độc ? Mã độc hay “Malicious software” loại phần mềm tạo chèn vào hệ thống cách bí mật với mục đích thâm nhập, phá hoại hệ thống lấy cắp thông tin, làm gián đoạn, tổn hại tới tính bí mật, tính tồn vẹn tính sẵn sàng máy tính nạn nhân 1.2 Tác hại mã độc Không tự nhiên mà người ta gọi phần mềm định mã độc Chúng xem mối nguy hại hàng đầu toàn giới Nhiều loại mã độc nguy hiểm khó lường, nhiều chuyên gia công nghệ bị chúng làm đau đầu Nhìn chung, máy tính bị dính mã độc có tác hại hậu sau:  Làm chậm tốc độ máy tính: Mã độc xâm nhập vào hệ thống, chiếm dụng tài nguyên gây tê liệt tồn hệ thống máy tính Các thiết bị bị nhiễm mã độc hoạt động chậm nhiều so với ban đầu  Tình trạng treo máy tính: Mã độc cịn khiến máy tính bị vơ hiệu hóa Người dùng khơng thể sử dụng máy tính Để sử dụng trở lại, người dùng phải bỏ khoản chi phí lớn  Ảnh hưởng đến liệu cá nhân: Tùy vào loại mã độc có mục đích ý đồ khác ảnh hưởng phá hoại mức độ khác Mức độ nhẹ bị xâm nhập vào máy tính đọc trộm liệu Trường hợp khác đánh cắp thông tin để sử dụng cho mục đích phạm pháp tình trạng “ăn” liệu khiến thông bị bị  Tác động đến ứng dụng: Những phần mềm độc hại tác động lên ứng dụng phần mềm khác có máy tính Chúng khiến giao diện thay đổi thao tác, tình trạng cửa sổ quảng cáo liên tục bật lên khiến người dùng khó chịu 1.3.Các Loại mã độc phổ biến Backdoor: Backdoor chương trình độc hại cho phép kẻ cơng từ xa truy cập vào máy tính nạn nhân Downloader: Mục đích trình tải xuống tải xuống chương trình độc hại khác đơi thực thi Keylogger: Keylogger chương trình liên tục theo dõi thao tác gõ phím người dùng Điều giúp kẻ công đánh cắp thông tin tiềm địa email, mật khẩu, v.v., Miners: Chương trình độc hại sử dụng tài nguyên máy tính nạn nhân để khai thác tiền điện tử nhằm kiếm tiền từ ví kẻ công Rouge software: Phần mềm Rouge dường hoạt động giống phần mềm gốc, chẳng hạn phần mềm chống vi-rút lừa người dùng mua dịch vụ mà cuối họ trả tiền cho kẻ công Trojan: Trojan phần mềm hoạt động giống chương trình hợp pháp lại thực hoạt động độc hại chế độ Trojan tự liên kết với tệp thực thi hình ảnh, tệp âm thanh, v.v Chúng đánh lừa người dùng cách có biểu tượng tương tự tệp PDF, tệp hình ảnh, vơ tình thực thi chúng Ransomware: Một chương trình độc hại mã hóa tệp người dùng (hình ảnh, tài liệu, v.v.) yêu cầu tiền chuộc để giải mã Tiền chuộc thường thu thông qua tiền điện tử Bitcoin, Dash, v.v., 1.4 Machine Learning gì? Machine learning (ML) hay máy học nhánh trí tuệ nhân tạo (AI), lĩnh vực nghiên cứu cho phép máy tính có khả cải thiện thân chúng dựa liệu mẫu (training data) dựa vào kinh nghiệm (những học) Machine learning tự dự đốn đưa định mà khơng cần lập trình cụ thể Bài tốn machine learning thường chia làm hai loại dự đoán (prediction) phân loại (classification) Các toán dự đoán dự đoán giá nhà, giá xe… Các toán phân loại nhận diện chữ viết tay, nhận diện đồ vật… 1.5 Machine Learning thực tế Okay, chẳng có hồn hảo hết Machine learning có giới hạn Chúng ta khơng thể xây dựng cỗ máy thông minh để học liệu từ cổ chí kim tới Tuy nhiên, có ứng dụng thực tế mà machine learning làm tốt Sau lĩnh vực phổ biến mà machine learing góp mặt: 1.5.1 Xử lý ảnh Bài toán xử lý ảnh (Image Processing) giải vấn đề phân tích thơng tin từ hình ảnh hay thực số phép biến đổi Một số ví dụ là:  Gắn thẻ hình ảnh (Image Tagging), giống Facebook, thuật tốn tự động phát khn mặt bạn bạn bè ảnh Về bản, thuật toán học từ ảnh mà bạn tự gắn thẻ cho trước  Nhận dạng ký tự (Optical Character Recognition), thuật toán chuyển liệu giấy tờ, văn thành liệu số hóa Thuật tốn phải học cách nhận biết ảnh chụp ký tự ký tự  Ơ tơ tự lái (Self-driving cars), phần chế sử dụng xử lý ảnh Một thuật toán machine learning giúp phát mép đường, biển báo hay chướng ngại vật cách xem xét khung hình video từ camera 1.5.2 Phân tích văn Phân tích văn (Text analysis) cơng việc trích xuất phân lọi thơng tin từ văn Các văn facebook posts, emails, đoạn chats, tài liệu,… Một số ví dụ phổ biến là:  Lọc spam (Spam filtering), ứng dụng phân loại văn biết sử dụng nhiều Ở đây, phân loại văn xác định chủ đề cho văn Bộ lọc spam học cách phân loại email có phải spam khơng dựa nội dung tiêu đề email  Phân tích ngữ nghĩa (Sentiment Analysis), học cách phân loại ý kiến tích cực, trung tính hay tiêu cực dựa nội dung văn người viết  Khai thác thông tin (Information Extraction), từ văn bản, học cách để trích xuất thơng tin hữu ích Chẳng hạn trích xuất địa chỉ, tên người, từ khóa, … 1.5.3 Khai phá liệu Khai phá liệu(Data mining) q trình khám phá thơng tin có giá trị đưa dự đốn từ liệu Định nghĩa bao quát, bạn nghĩ việc tìm kiếm thơng tin hữu ích từ bảng liệu lớn Mỗi ghi đối tượng cần phải học, cột đặc trưng Chúng ta dự đoán giá trị cột ghi dựa ghi học Hoặc phân nhóm ghi Sau ứng dụng khai phá liệu:  Phát bất thường (Anomaly detection), phát ngoại lệ, ví dụ phát gian lận thẻ tín dụng Bạn phát giao dịch khả nghi dựa giao dịch thông thường người dùng  Phát quy luật (Association rules), ví dụ, siêu thị hay trang thương mại điện tử Bạn khám phá khách hàng 10 thường mua hàng Dễ hiểu hơn, khách hàng bạn mua hàng A thường mua kèm hàng nào? Các thơng tin hữu ích cho việc tiếp thị sản phẩm  Gom nhóm (Grouping), ví dụ, tảng SaaS, người dùng phân nhóm theo hành vi thông tin hồ sơ họ  Dự đoán (Predictions), cột giá trị(của ghi database) Ví dụ, bạn dự đốn giá hộ dựa liệu giá hộ bạn có 1.6 Phân loại thuật tốn machine learning Có hai loại phương pháp học máy chính: Học có giám sát(Supervised learning) Học khơng giám sát(Unsupervised learning) Sự khác lớn thuật toán cách mà cung cấp tập liệu huấn luyện cho mơ hình, cách thuật tốn sử dụng liệu loại vấn đề mà chúng giải 1.6.1 Học có giám sát Trong học có giám sát, thuật tốn machine learning thực q trình “chuyển liệu đầu vào thành đầu mong muốn” Trong ML, đầu vào gọi input, đầu gọi label(nhãn) Tập liệu huấn luyện gọi training set Mỗi mẫu liệu tập huấn luyện gọi training example Thuật toán machine learning cần học cách để chuyển đổi input (đầu vào) thành label (kết quả) tương ứng Do vậy, mẫu liệu huấn luyện tập liệu huấn luyện cần phải biết trước label 1.6.2 Học không giám sát 11 Học không giám sát nhánh machine learning Các mẫu liệu học không giám sát cần input (đầu vào) mà khơng cần label (đầu ra) Nó sử dụng nhiều việc khám phá cấu trúc mối quan hệ liệu Một thuật tốn điển hình tốn phân cụm (clustering algorithm); Nó học cách để tìm mẫu liệu tương tự nhóm vào thành cụm(cluster) Một số thuật toán phân cụm K-means học cách phân cụm học từ tập liệu đầu vào 12 CHƯƠNG 2: PHÂN LOẠI MÃ ĐỘC VÀ THUẬT TOÁN 2.1 Phân loại mã độc 2.2 Thuật toán CNN CHƯƠNG 3: KẾT QUẢ THỬ NGHIỆM 3.1 Phương pháp sử dụng - Sử dụng thuật toán Stochastic Gradient Descent (SGD) - Phương pháp: sử dụng lớp SGDClassifier thư viện Scikit-learn để tạo mô hình logistic regression với thuật tốn SGD sử dụng phương thức để huấn luyện đánh giá mô hình hỗ trợ SGD:  fit(X, y): huấn luyện mơ hình với liệu đầu vào X nhãn tương ứng y  predict(X): dự đoán lớp cho liệu đầu vào X  predict_proba(X): tính xác suất lớp cho liệu đầu vào X  score(X, y): tính điểm số mơ hình tập liệu X với nhãn tương ứng y 3.2 Chương trình %matplotlib inline import import import import pandas as pd pylab numpy as np sklearn 13 from sklearn import linear_model import sklearn.preprocessing as preprocessing import sklearn.metrics as metrics import matplotlib.pyplot as plt from statsmodels.stats import proportion from google.colab import drive features = ["Age", "Workclass", "fnlwgt", "Education", "Education-Num", "Martial Status",         "Occupation", "Relationship", "Race", "Sex", "Capital Gain", "Capital Loss",         "Hours per week", "Country", "Target"] train_url = 'https://archive.ics.uci.edu/ml/machine-learningdatabases/adult/adult.data' test_url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult test' original_train = pd.read_csv(train_url, names=features, sep=r'\s*,\s*',                              engine='python', na_values="?") original_test = pd.read_csv(test_url, names=features, sep=r'\s*,\s*',                             engine='python', na_values="?", skiprows=1) num_train = len(original_train) original = pd.concat([original_train, original_test]) roc_original = original labels = original['Target'] labels = labels.replace('50K', 1) labels = labels.replace('50K.', 1) # Redundant column del original["Education"] # Remove target variable del original["Target"] def                 data_transform(df): """Normalize features.""" binary_data = pd.get_dummies(df) feature_cols = binary_data[binary_data.columns[:-2]] scaler = preprocessing.StandardScaler() 14     data = pd.DataFrame(scaler.fit_transform(feature_cols), columns=feature_cols.columns)     return data data = data_transform(original) train_data = data[:num_train] train_labels = labels[:num_train] test_data = data[num_train:] test_labels = labels[num_train:] clf = SGDClassifier(loss='log', learning_rate='constant', eta0=1.5, max_iter=100, tol=1e-3) clf.fit(train_data, train_labels) print(clf.n_iter_) predictions = cls.predict(test_data) scores = cls.predict_proba(test_data)[:, 1] d                               } =                               {'target' : test_labels.values,  'score' : scores,  'prediction' : predictions,  'race' : original_test['Race'],  'gender' : original_test['Sex'],  'age': original_test['Age'],  'workclass': original_test['Workclass'],  'fnlwgt': original_test['fnlwgt'],  'Education-Num': original_test['Education-Num'],  'Martial Status': original_test['Martial Status'],  'Occupation': original_test['Occupation'],  'Relationship': original_test['Relationship'],  'Capital Gain': original_test['Capital Gain'],  'Capital Loss': original_test['Capital Loss'],  'Hours per week': original_test['Hours per week'],  'Country': original_test['Country'], marginals = pd.DataFrame(data=d, columns=['target', 'score', 'prediction', 'race', 'gender','age','workclass','fnlwgt','EducationNum','Martial Status','Occupation','Relationship', 'Capital Gain', 'Capital Loss','Hours per week','Country']) marginals.head(20) count_1 = np.count_nonzero(predictions) percentages = [len(predictions) - count_1, count_1] 15 count_2 = np.count_nonzero(test_labels.values) percentages_1 = [len(test_labels.values) - count_2, count_2] labels = ['0', '1'] colors = ['pink', 'violet'] plt.subplot(1, 2, 1) plt.pie(percentages, labels=labels, colors=colors, autopct='%1.1f%%') plt.title('Predictions Pie Chart') plt.subplot(1, 2, 2) plt.pie(percentages_1, labels=labels, colors=colors, autopct='%1.1f%%') plt.title('Target Pie Chart') plt.show() accuracy = np.mean(np.equal(predictions, test_labels.values)) * 100 print(accuracy) 3.3 Kết thực nghiệm trường hợp - Các tham số:  eta =  max_iter = 100  tol = 1e -4 - Kết quả: 16 Hình Kết thực nghiệm trường hợp 17 Hình Biểu đồ kết thực nghiệm so với kết thực tế trường hợp - Độ xác: 78,07% 3.4 Kết thực nghiệm trường hợp - Các tham số:  eta = 0.5  max_iter = 1000  tol = 1e -4 - Kết quả: 18 Hình Kết thực nghiệm trường hợp 19 Hình Biểu đồ kết thực nghiệm so với kết thực tế trường hợp - Độ xác: 80,6% 3.5 Kết thực nghiệm trường hợp - Các tham số:  eta = 0.001  max_iter = 1000  tol = 1e -5 - Kết quả: 20 Hình Kết thực nghiệm trường hợp 21 Hình Biểu đồ kết thực nghiệm so với kết thực tế trường hợp - Độ xác: 85.17% 22 3.1 3.2 3.3 3.4 KẾT LUẬN Để thực đề tài “Sử dụng mơ hình Logistic Regression tốn phân loại thu nhập” nhóm chúng em cần phải tìm hiểu mơ hình Logistic Regression qua tìm hiểu lựa chọn thuật tốn phù hợp để áp dụng vào mơ hình, để khả dự đốn mơ hình có độ xác cao cần phải có phương pháp lựa chọn tham số phù hợp từ cho kết tốt Qua q trình thực đề tài nhóm chúng em tìm hiểu, nghiên cứu mơ hình Logistic Regression tìm hiểu ba thuật tốn sử dụng mơ hình là: Gradient Descent, Stochatic Gradient Descent Mini-batch Gradient Descent Qua tìm hiểu phân tích thuật tốn Stochatic Gradient Descent phù hợp với đề tài nhóm định xây dựng chương trình dựa theo thuật tốn Sau thử nghiệm với tham số khác cho kết tốt với độ xác đạt 85% Tuy nhiên q trình làm nhóm em gặp vài khó khăn việc lựa chọn eta cho phù hợp Trong báo cáo việc lựa chọn eta hoàn toàn thủ công việc ước lượng chủ quan, chưa tìm hiểu phương pháp để lựa chọn eta cách xác kết chưa phải tối ưu Sau đề tài chúng em nghiên cứu sâu mơ hình Logistic Regression phương pháp lựa chọn eta để dự đốn cách xác 23 TÀI LIỆU THAM KHẢO [1] https://viblo.asia/p/learning-rate-nhung-dieu-co-the-ban-da-bo-quagGJ59BV9KX2 [2] https://aiwithmisa.com/2020/12/21/aml-bai8/ [3] https://aniket-mishra.github.io/projects/Adult-UCI-Dataset-Analysis.html [4] https://fairmlbook.org/code/adult.html [5] https://machinelearningcoban.com/2017/01/27/logisticregression/ [6] https://machinelearningcoban.com/2017/01/16/gradientdescent2/#-stochasticgradient-descent 24

Ngày đăng: 20/09/2023, 15:47

Tài liệu cùng người dùng

Tài liệu liên quan