期末專題構想書: 惡意軟件預測 隊伍資訊 隊名:迷路的小孩 成員(學號、姓名): 107830039 許浩哲 107830050 賴宗宏 107830054 蔡政宏 動機與目的 在現在的網路世界中惡意軟件遍地都是,傳統安全措施可能都無法攔下。一旦我們的電腦感染了惡意軟件,犯罪分子就可以在很多方面傷害我們和企業,造成我們財產及個資的損失或者是公司的機密資料被竊取等等。 例如:微軟,因為擁有超過十億的企業和消費者客戶,所以非常重視此問題,並在提高安全性方面投入了大量資金。 所以微軟有一策略,就是為Kagglers提供了前所未有的惡意軟件數據集,以鼓勵大家在預測惡意軟件發生率的技術上有更進一步的突破,而且也能使微軟能使用該技術預防惡意軟體。 遇到的挑戰 1.實際使用:用於創建此數據集的抽樣方法是為了滿足某些業務限制,例如用戶隱私以及機器運行時間方面的限制,所以如果之後用在微軟上面時,其遭受到的惡意軟體會與抽樣出來的數據不同,也許平台提供的數據只是實際世界的冰山一角而已。 2.機型:惡意軟件檢測本身可能是一個簡單的問題,但是由於有如:new machines, online machines and offline machines, receive patches, machines machines, receive new operating systems machines,各式各樣的微軟機器,所以使惡意軟件檢測變得複雜。 資料提供來源 因為Windows機器有很多不同特性,所以要主要目的預測Windows計算機被各種惡意軟件感染的可能性。而這些這些特性和機器感染的數據是通過由Microsoft端點的保護解決方案(Windows Defender)收集之威脅報告組合生成的。 所以kaggle平台上的數據來自微軟惡意軟件預測。此數據集中的每一行對應於一台機器,也就是個人機器ID。HasDetections表明在機器上檢測到惡意軟體。然後我們使用(train.csv)去訓練,最後再使用test.csv並預測每台機器的HasDetections值。 MachineIdentifier-個人ID HasDetections-機器上檢測到的惡意軟體 train.csv-訓練數據 test.csv-測驗數據 ProductName- 防禦狀態資訊,例如 win8 防禦者 IsBeta- 防禦狀態資訊,例如虛假 DefaultBrowsersIdentifier-機器默認瀏覽器的ID AVProductStatesIdentifier- 使用者防病毒軟體特定配置的 ID 模型與方法 方法 用以下5種探索性數據分析和特徵工程用lightgbm和自訂義堆疊分類器當訓練模型 1.空值分析: 作為探索性數據分析和數據預處理的一部分,首先確定了多少個要素(哪些列)包含超過70%的空值,因為具有70%的空值的要素對模型的貢獻不大訓練。並從數據集中刪除了這些功能。 2.功能類型: 從訓練數據中刪除空值之後,從數據集中提取了特徵類型,並根據特徵類型將其提取為預處理數據。 3.填寫缺失值: 在找出給定數據集中的不同類型的要素並刪除了具有超過70%的空值的要素之後,仍然需要有一些具有空值的要素,因此填充了那些缺失的值並清理了分類類別為了減少分類特徵的基數。 4.從數據中刪除異常值: 有時數據集中存在的離群值可能會降低模型的性能,需要檢測和消除異常值。 5.查找特徵和目標變量之間的相關性: 探索性數據分析的這一部分可以改善模型性能,特徵與目標變量的相關性找出哪些特徵會影響模型,以預測地面真實性或目標變量 6.使用wdft_isgamer和firewall這兩種功能,有助於預測是否感染到惡意軟體。 分別用自訂義堆疊分類器與lightgbm來訓練模型,比較最終的預測概率 模型 1.lightgbm 以高速和較少的內存使用而聞名,可以很好地處理包含更多分類特徵的數據。 2.自定義堆疊分類器 它結合了來自兩個或兩個以上基礎學習者或機器學習算法的預測,並使用這些預測來訓練元模型並預測最終概率。用sklearn庫GridSearchCV調整了基礎學習者的數量,並選擇了最佳基礎學習者的數量,用GridSearchCV進行調整之後,訓練自定義堆疊分類器得到測試數據的最終預測,獲得機器被惡意軟件感染的預測概率。 在進行了探索性數據分析和特徵工程之後使用lightgbm來訓練模型 為了調整lightgbm的參數使用了optuna庫來選擇給出最佳參數。 調整參數後,將測試數據傳遞到訓練的lightgbm模型中,獲得了最終的預測概率 比較自訂義堆疊分類器與lightgbn,lightgbn的預測機器被惡意軟件感染概率優於自訂義堆疊分類器。 因此我們選擇的lightgbm 模型作為最佳模型。 預期成果 在連網環境部署加快腳步的趨勢下,在現今高度網路連結世界,相對地也為網路罪犯創造更多有機可趁的漏洞管道與誘騙新手法。 所以不論是個人行動裝置用戶、各種規模企業用戶,每個IT連網環境都是資安防護的潛在目標,所以如果我們能用此方法檢測出潛藏的惡意軟體,則能有個進一步的防護。 參考資料 https://www.kaggle.com/c/microsoft-malware-prediction https://www.kaggle.com/vanshjatana/microsoft-malware-prediction https://kknews.cc/zh-tw/tech/nl4no98.html https://3c.ltn.com.tw/news/38542 https://medium.com/swlh/microsoft-malware-prediction-using-classical-machine-learning-algorithms-5ade962ca73a