Malware Detect System
1 產品介紹
惡意代碼檢測系統。
2 產品描述
2.1 產品功能
功能點 | 詳細描述 |
---|---|
注冊賬號 | 未注冊用戶注冊成為產品用戶,從而具備享有產品各項服務的資格 |
登錄賬號 | 用戶登錄產品,獲得產品提供的各項服務 |
上傳惡意樣本 | 用戶可以將上傳自己的收集到的惡意樣本及其樣本屬性,網站會對該惡意樣本進行保存 |
獲取惡意樣本檢測結果 | 用戶手動上傳或使用oss方式上傳待檢測的惡意樣本,系統檢測樣本后返回該樣本屬性 |
樣本威脅分析報告 | 系統返回用戶根據檢測結果,樣本本身行為特征,并將其可視化。以報告的方式返回結果 |
訓練檢測模型 | 系統每天固定時間點對惡意代碼檢測模型進行重新訓練 |
分類所有惡意樣本 | 系統可以每天固定時間點計算惡意樣本之間的相似度信息,進而對所有樣本進行大類、家族分類 |
更新惡意代碼榜單 | 用戶可查看該系統過去一段時間檢測過的文件以及相關分析結果 |
|
2.2 產品約束
約束 | 約束解釋 |
---|---|
編程語言 | 前端采用的語言為:HTML,CSS,JavaScript,前端采用的框架是:Vue;后端采用的語言為Golang,后端采用的框架為Gin |
響應時間 | 網頁的響應時間應在1s以內(存疑) |
算法模型 | 算法訓練的惡意代碼檢測模型的訓練時間在2個小時以內,能對足夠多種惡意代碼家族種類進行檢測,響應時間控制1分鐘以內 |
界面友好性 | 產品的界面應能體現對用戶用戶好性,具有一定的美觀性 |
代碼可讀性 | 產品的的代碼應符合命名規范,命名與實際意義掛鉤,具有可讀性 |
代碼健壯性 | 產品的代碼應避免過度耦合,以便后續迭代優化,對現有功能的擴展以及增添新的功能 |
項目計劃 | 產品的研發應嚴格遵循項目的管理流程,各階段任務應避免延期,對后續階段的開發造成影響 |
3. 具體需求
3.1 外部接口需求
3.1.1 用戶界面
- 注冊登陸界面
(扎心了,這一段還沒有寫前端log out的邏輯)
-
首頁
-
上傳惡意代碼界面
-
分析報告界面
-
惡意代碼行為可視化界面
(扎心了,這一段還沒有還沒來及用element UI畫一個動態的圖出來,假裝有一個這樣的界面吧, 可視化內容大概長下面這個亞子)
3.1.2 軟件接口
- MacOS 操作系統;
- Aapche Kafka;
- etcd v3.4.15;
- Nginx 1.19.8。
3.1.3 通信接口
HTTPS協議、TCP/IP協議。
3.2 功能需求
3.2.1 web模塊
3.2.1.1 注冊賬號
用例名 | 注冊賬號 |
---|---|
基本事件流 | (1) 用戶打開注冊頁面 (2) 用戶填寫密碼,用戶名等身份信息(A-1)(A-2) (3) 用戶點擊注冊按鈕 (4) 系統驗證該用戶信息是否符合規范 (5) 系統驗證該用戶名是否被注冊過 (6) 系統返回注冊結果 |
備選事件流 | A-1 用戶信息不符合規范 (1) 系統提示信息不符合規范 (2) 用戶重新輸入 A-2 用戶被注冊過 (1) 系統提示用戶用戶名重復 (2) 用戶重新輸入 |
補充約束 - 數據約束 | (1) 密碼不能為空 (2) 電話不能為空 |
補充約束 - 非功能需求 | 系統響應時間不超過15秒 |
3.2.1.2 登錄賬號
用例名 | 注冊賬號 |
---|---|
基本事件流 | (1) 用例起始于未登錄用戶想要登錄系統 (2) 未登錄用戶點擊【登錄】按鈕,系統跳轉到登錄頁面(A-1) (3) 用戶在登錄頁面填入相關信息(D-1),點擊【登錄】(A-2)(A-3)(A-4) |
備選事件流 | A-1 系統繁忙或網絡出現問題 (1) 系統提示:系統繁忙,請稍后再試 A-2 用戶的賬戶未注冊 (1) 系統提示:該賬戶不存在,請注冊后再使用 (2) 系統跳轉到注冊頁面 A-3 用戶登錄成功 (1) 系統提示:登錄成功 (2) 系統跳轉到主頁或用戶之前瀏覽的頁面 A-4 用戶登錄失敗 (1) 系統提示:登錄信息不正確,請重新輸入 |
補充約束 - 數據約束 | D-1 提交的數據需要包含賬戶名,密碼 |
補充約束 - 非功能需求 | 無 |
3.2.1.3 上傳惡意樣本
用例名 | 注冊賬號 |
---|---|
基本事件流 | (1) 點擊上傳 (2) 系統提示上傳成功并修改數據庫(A-1) |
備選事件流 | A-1 系統繁忙或網絡出現問題 系統提示:系統繁忙,請稍后再試 |
補充約束 - 數據需求 | 提交數據包括用戶字段和惡意樣本 |
補充約束 - 非功能需求 | 暫無 |
3.2.1.4 獲取惡意樣本檢測結果與樣本威脅分析報告
用例名 | 獲取推薦 |
---|---|
基本事件流 | (1) 用戶注冊后進入上傳樣本界面 (2) 可在頁面上查看本次或歷史檢測結果(A-1) (3) 點擊查看報告,可返回樣本分析報告(A-2) |
備選事件流 | A-1、A-2 系統繁忙或網絡出現問題 系統提示:系統繁忙,請稍后再試 |
補充約束- 數據需求 | 提交的數據包括用戶字段和用戶本次上傳的樣本id |
補充約束- 非功能需求 | 暫無 |
3.2.1.5 更新惡意代碼榜單
記錄用戶的檢測記錄
3.2.2 算法模塊
訓練生成模型、分類所有樣本和樣本預測三個部分
3.2.2.1 訓練生成模型
用例名 | 訓練生成模型 |
---|---|
基本事件流 | (1) 讀取模型參數 (2) 惡意樣本特征預處理 (3)構造出異構圖, 并使用三種數據增強方式進行正負樣本的生成 (4) 微調模型參數并保存 |
3.2.2.2 分類所有樣本
用例名 | 分類所有樣本 |
---|---|
基本事件流 | (1) 將樣本構造成異構圖的形式 (2) 加載既有的對比學習模型,生成異構圖的表征 (3) 根據表征,對異構圖進行分類 |
3.2.2.3 樣本預測
用例名 | 分類所有樣本 |
---|---|
基本事件流 | (1) 將待預測的樣本構造成異構圖的形式 (2) 加載既有的對比學習模型,生成異構圖的表征 (3) 根據表征,對異構圖進行分類 |
3.2.3 調度模塊
3.2.3.1 觸發訓練任務
通過定時任務觸發訓練任務,將訓練任務元數據序列化并存入任務隊列
用例名 | 分類所有樣本 |
---|---|
基本事件流 | (1)用例起始于每天凌晨02:00自動運行 (2)將待預測的樣本編號序列化后,推送至任務隊列 (3)從任務狀態隊列中輪訓任務狀態(A-2) |
補充約束-數據約束 | 元數據要求符合數據庫約束,同時限制任務大小。 |
補充約束-業務約束 | 任務提交失敗時需要自動跳過錯誤數據并重試。 |