CHƯƠNG 3. ĐỀ XUẤT KỸ THUẬT KẾT HỢP ANN VÀ GAN TRONG PHÁT HIỆN MÃ ĐỘC
3.2. Đề xuất mô hình kết hợp ANN và GAN trong phát hiện mã độc
3.2.2. Mô hình sử dụng GAN và ANN trong phát hiện mã độc
3.2.2.1. Giới thiệu mô hình
Mạng ANN được sử dụng có hiệu quả trong các bài toán phân loại, đặc biệt là các bài toán phân loại với kết quả nhị phân. Trong khi mạng GAN có khả năng tạo các mẫu giả có độ chân thật cao, có khả năng đánh lừa được các hệ thống nhận diện, xác thực. Do đó nhóm nghiên cứu đề xuất kết hợp 2 mạng GAN và ANN trong phát hiện mã độc bằng cách sử dụng mạng GAN để sinh các mẫu giả đưa vào sử dụng làm dữ liệu mẫu huấn luyện cho mạng ANN, làm tăng hiệu quả và độ chính xác tron phát hiện mã độc cho mạng ANN. Mạng ANN dựa trên mẫu giả sinh từ mạng GAN kết hợp với bộ dữ liệu huấn luyện được trích chọn từ các ứng dụng Android thục tế để đưa vào huấn luyện, sau đó sử dụng cho kiểm tra, phát hiện mã độc.
Như vậy, mô hình đề xuất gồm 3 giai đoạn lồng nhau:
- Giai đoạn 1: Mạng ANN sử dụng bộ dữ liệu huấn luyện gồm các đặc trưng được chọn từ các ứng dụng APK thực tế để huấn luyện mạng.
- Giai đoạn 2: Mạng GAN dựa vào trình tạo Generator và trình phân biệt Discriminator, tạo ra các mẫu giả để tiếp tục đưa vào huấn luyện lại cho mô hình mạng ANN.
- Giai đoạn 3: Mạng ANN thực hiện quá trình huấn luyện lại từ dữ liệu đầu vào là các mẫu giả sinh từ mạng GAN. Việc này giúp nâng cao hiệu quả và tính chính xác cho mạng ANN.
Hình 3.2.2.1.1. Mô hình sử dụng mạng ANN kết hợp GAN phát hiện tập tin APK độc hại
3.2.2.2. Input và Output của mô hình
Tại bước huấn luyện, đầu vào vào đầu ra của mạng ANN như sau:
- Input: 357 đặc trưng được trích chọn từ file APK, trong đó mỗi đặc trưng có giá trị 1 hoặc 0, tương ứng với việc ứng dụng có sử dụng quyền hoặc hành động, dịch vụ đó hay không.
Để có được đầu vào cho mạng ANN, từ file APK ban đầu cần trích chọn các đặc trưng và chuẩn hoá dữ liệu. Danh sách 357 đặc trưng đầu vào bao gồm:
TT Đặc trưng TT Đặc trưng
1 android.permission.INTERNET 180 android.intent.action.BATTERY_OK
AY 2 android.permission.ACCESS_NETWORK_
STATE 181 android.intent.action.DEVICE_STOR
AGE_LOW 3 android.permission.READ_PHONE_STAT
E 182 android.intent.action.DEVICE_STOR
AGE_OK 4 android.permission.MOUNT_UNMOUNT_
FILESYSTEMS 183 android.intent.action.ACTION_BOOT
_COMPLETED 5 android.permission.WRITE_EXTERNAL_
STORAGE 184 android.intent.action.NOTIFICATION
_UPDATE 6 android.permission.ACCESS_WIFI_STAT
E 185 android.intent.action.CLOSE_SYSTE
M_DIALOGS 7 android.permission.SEND_SMS 186 android.intent.action.CONFIGURATI
ON_CHANGED 8 android.permission.RECEIVE_SMS 187 android.intent.action.EXTERNAL_AP
PLICATIONS_AVAILABLE 9 android.permission.WAKE_LOCK 188 android.intent.action.BATTERY_CH
ANGED_ACTION
UNTED 11 android.permission.READ_SMS 190 android.intent.action.MEDIA_REMO
VED 12 android.permission.MODIFY_PHONE_ST
ATE 191 android.intent.action.MEDIA_EJECT
13 android.permission.CALL_PHONE 192 android.intent.action.MEDIA_BAD_R
EMOVAL 14 android.permission.PROCESS_OUTGOIN
G_CALLS 193 android.intent.action.HEADSET_PLU
G 15 android.permission.WRITE_CONTACTS 194 android.intent.action.ALARM_CHAN
GED 16 android.permission.READ_CONTACTS 195 android.intent.action.CHECK 17 android.permission.RECEIVE_BOOT_CO
MPLETED 196 android.intent.action.PACKAGE_FIR
ST_LAUNCH 18 android.permission.BATTERY_STATS 197 android.intent.action.HEART_CODE 19 android.permission.BLUETOOTH 198 android.intent.action.UNINSTALL_P
ACKAGE 20 android.permission.CAMERA 199 android.intent.action.MEDIA_SHARE
D 21 android.permission.FLASHLIGHT 200 android.intent.action.MEDIA_SCANN
ER_STARTED 22 android.permission.VIBRATE 201 android.intent.action.MEDIA_SCANN
ER_FINISHED 23 android.permission.GET_TASKS 202 android.intent.action.VIEW 24 android.permission.SET_WALLPAPER 203 android.intent.action.DOCK_EVENT
25 android.permission.ACCESS_COARSE_L OCATION 204 android.intent.action.media_checking 26 android.permission.RAISED_THREAD_P
RIORITY 205 android.intent.action.RUN
27 android.permission.WRITE_SECURE_SET
TINGS 206 android.intent.action.JUMP_TICKER_
LOCAL 28 android.permission.CHANGE_WIFI_STAT
E 207 android.intent.action.gg_903.c2dm_no
tification 29 android.permission.CHANGE_NETWORK
_STATE 208 android.intent.action.c2dm_notificatio
n.gg_1331 30 android.permission.WRITE_APN_SETTIN
GS 209 android.intent.action.c2dm_rereceve.g
g_1331 31 android.permission.RECEIVE_MMS 210 android.intent.action.ACTION_BATT
ERY_LOW 32 android.permission.RECEIVE_WAP_PUS
H 211 android.intent.action.CAMERA_BUT
TON 33 android.permission.WRITE_SETTINGS 212 android.intent.action.PACKAGE_AD
DED 34 android.permission.GET_ACCOUNTS 213 android.intent.action.PROXY_CHAN
GE 35 android.permission.WRITE_SMS 214 android.intent.action.PACKAGE_RE
MOVED 36 android.permission.INSTALL_PACKAGE
S 215 android.intent.action.PACKAGE_CH
ANGED 37 android.permission.ACCESS_FINE_LOCA
TION 216 android.intent.action.PACKAGE_INS
TALL 38 android.permission.ACCESS_COARSE_U
PDATES 217 android.intent.action.BATTERY_CH
ANGED
40 android.permission.RESTART_PACKAGE
S 219 android.intent.action.MEDIA_CHECK
ING 41 android.permission.KILL_BACKGROUND
_PROCESSES 220 android.intent.action.MEDIA_UNMO
UNTED 42 android.permission.READ_LOGS 221 android.intent.action.HEADSET_PLU
G 43 android.permission.RECEIVE_USER_PRE
SENT 222 android.intent.action.MEDIA_MOUN
TED 44 android.permission.SYSTEM_OVERLAY_
WINDOW 223 android.intent.action.MEDIA_REMO
VED 45 android.permission.READ_EXTERNAL_S
TORAGE 224 android.intent.action.MEDIA_BUTTO
N 46 android.permission.MODIFY_AUDIO_SE
TTINGS 225 android.intent.action.MEDIA_SHARE
D 47 android.permission.DISABLE_KEYGUAR
D 226 android.intent.action.SCREEN_OFF
48 android.permission.BIND_APPWIDGET 227 android.intent.action.USER_PRESEN
T 49 android.permission.EXPAND_STATUS_B
AR 228 android.intent.action.TIME_SET
50 android.permission.SET_WALLPAPER_HI
NTS 229 android.intent.action.TIMEZONE_CH
ANGED 51 android.permission.FORCE_STOP_PACK
AGES 230 android.intent.action.TIME_TICK
52 android.permission.RECORD_AUDIO 231 android.intent.action.AIRPLANE_MO
DE 53 android.permission.ACCESS_LOCATION
_EXTRA_COMMANDS 232 android.intent.action.MEDIA_SCANN
ER_FINISHED 54 android.permission.MANAGE_ACCOUNT
S 233 android.intent.action.NEW_OUTGOI
NG_CALL 55 android.permission.ACCOUNT_MANAGE
R 234 android.intent.action.PHONE_STATE
56 android.permission.AUTHENTICATE_AC
COUNTS 235 android.intent.action.SCREEN_ON
57 android.permission.CLEAR_APP_CACHE 236 android.intent.action.MEDIA_BAD_R
EMOVAL 58 android.permission.WRITE_INTERNAL_S
TORAGE 237 android.intent.action.MEDIA_EJECT
59 android.permission.DELETE_CACHE_FIL
ES 238 android.intent.action.MEDIA_SCANN
ER_STARTED 60 android.permission.BROADCAST_STICK
Y 239 android.intent.action.CLOSE_SYSTE
M_DIALOGS 61 android.permission.CHANGE_CONFIGUR
ATION 240 android.intent.action.LOCALE_CHA
NGED 62 android.permission.DEVICE_POWER 241 android.intent.action.EXTERNAL_AP
PLICATIONS_AVAILABLE 63 android.permission.WRITE_OWNER_DA
TA 242 android.intent.action.BOOT_COMPL
ETED 64 android.permission.DOWNLOAD_WITHO
UT_NOTIFICATION 243 android.intent.action.WALLPAPER_C
HANGED 65 android.permission.UPDATE_DEVICE_ST
ATS 244 android.intent.action.ACTION_POWE
R_DISCONNECTED 66 android.permission.GET_PACKAGE_SIZE 245 android.intent.action.PACKAGE_REP
LACED 67 android.permission.REORDER_TASKS 246 android.intent.action.DEVICE_STOR
AGE_LOW 68 android.permission.ACCESS_LOCATION 247 android.intent.action.ACTION_POWE
R_CONNECTED 69 android.permission.ACCESS_GPS 248 android.intent.action.ANY_DATA_ST
ATE 70 android.permission.ACCESS_MOCK_LOC
ATION 249 android.intent.action.SERVICE_STAT
E 71 android.permission.BLUETOOTH_ADMI
N 250 android.intent.action.BATTERY_OK
AY 72 android.permission.WRITE_SYNC_SETTI
NGS 251 android.intent.action.BATTERY_LO
W 73 android.permission.READ_OWNER_DAT
A 252 android.intent.action.ALARM_CHAN
GED 74 android.permission.CLEAR_APP_USER_
DATA 253 android.intent.action.DOWNLOAD_C
OMPLETE 75 android.permission.READ_CALL_LOG 254 android.intent.action.PACKAGE_RES
TARTED 76 android.permission.MOUNT_FORMAT_FI
LESYSTEMS 255 android.intent.action.update
77 android.permission.WRITE_CALL_LOG 256 android.intent.action.DATE_CHANG
ED 78 android.permission.READ_PROFILE 257 android.intent.action.DOWNLOAD_N
OTIFICATION_CLICKED 79 android.permission.BIND_DEVICE_ADMI
N 258 android.intent.action.ACTION_SHUT
DOWN 80 android.permission.DUMP 259 android.intent.action.BCAST_UPDAT
E_NOTE 81 android.permission.FORCE_BACK 260 android.intent.action.VIEW
82 android.permission.SET_ALWAYS_FINIS
H 261 android.intent.action.DEVICE_STOR
AGE_OK 83 android.permission.SET_DEBUG_APP 262 android.intent.action.PACKAGE_FIR
ST_LAUNCH 84 android.permission.SET_PREFERRED_AP
PLICATIONS 263 android.intent.action.MY_PACKAGE
_REPLACED 85 android.permission.SET_TIME_ZONE 264 android.intent.action.CAMERA_BUT
TON 86 android.permission.STATUS_BAR 265 android.intent.action.PROVIDER_CH
ANGED 87 android.permission.USE_CREDENTIALS 266 android.intent.action.UMS_CONNEC
TED 88 android.permission.USE_SIP 267 android.intent.action.DATA_SMS_RE
CEIVED 89 android.permission.CHANGE_WIFI_MUL
TICAST_STATE 268 android.intent.action.REBOOT 90 android.permission.READ_SYNC_SETTIN
GS 269 android.intent.action.PACKAGE_DA
TA_CLEARED 91 android.permission.READ_CALENDAR 270 android.intent.action.PACKAGE_FUL
LY_REMOVED 92 android.permission.WRITE_CALENDAR 271 android.intent.action.DOCK_EVENT 93 android.permission.INTERACT_ACROSS_
USERS_FULL 272 android.intent.action.ggee.ticketloader.
update.903 94 android.permission.READ_SYNC_STATS 273 android.intent.action.ggee.ticketloader.
update.1331
96 android.permission.ACCESS_SUPERUSE
R 275 android.intent.action.UNINSTALL_P
ACKAGE 97 android.permission.NFC 276 getSimSerialNumber
98 android.permission.SUBSCRIBED_FEEDS
_WRITE 277 getDeviceId
99 android.permission.RECORD_VIDEO 278 getNetworkOperatorName
100 android.permission.BAIDU_LOCATION_S
ERVICE 279 getLine1Number
101 android.permission.USE_FINGERPRINT 280 getSimCountryIso
102 android.permission.ACCESS_WEATHERC
LOCK_PROVIDER 281 getSubscriberId
103 android.permission.GET_ACCOUNTS_PR
IVILEGED 282 getNetworkCountryIso
104 android.permission.CONTROL_INCALL_
EXPERIENCE 283 getNetworkOperator
105 android.permission.FOREGROUND_SER
VICE 284 getMacAddress
106 android.permission.READ_APP_BADGE 285 getSimOperatorName
107 android.permission.PACKAGE_USAGE_S
TATS 286 getDeviceSoftwareVersion
108 android.permission.BIND_ACCESSIBILIT
Y_SERVICE 287 android_telephony_TelephonyManage
r_getLine1Number 109 android.permission.BROADCAST_PACK
AGE_ADDED 288 android_telephony_TelephonyManage
r_getDeviceId 110 android.permission.INSTALL_SHORTCU
T 289 android_app_SharedPreferencesImpl_
EditorImpl_putString 111 android.permission.ACCESS_WIMAX_ST
ATE 290 java_lang_reflect_Method_invoke
112 android.permission.BACKUP 291 java_net_ProxySelectorImpl_select
113 android.permission.SEND_DOWNLOAD_
COMPLETED_INTENTS 292 android_telephony_TelephonyManage
r_getNetworkOperatorName 114 android.permission.MOVE_PACKAGE 293 android_telephony_TelephonyManage
r_getSimSerialNumber 115 android.permission.START_BACKGROU
ND_SERVICE 294 org_apache_http_impl_client_Abstract
HttpClient_execute 116 android.permission.SENDTO 295 android_app_ContextImpl_registerRec
eiver 117 android.permission.CAPTURE_SECURE_
VIDEO_OUTPUT 296 java_io_File_exists
118 android.permission.CAPTURE_VIDEO_O
UTPUT 297 android_app_SharedPreferencesImpl_
EditorImpl_putLong 119 android.permission.ACCESS_ALL_DOWN
LOADS 298 libcore_io_IoBridge_open
120 android.permission.UPDATE_APP_OPS_S
TATS 299 java_net_URL_openConnection
121 android.permission.REQUEST_INSTALL_
PACKAGES 300 android_os_SystemProperties_get
122 android.permission.READ_USER_DICTIO
NARY 301 android_app_SharedPreferencesImpl_
EditorImpl_putInt 123 android.permission.WRITE_USER_DICTI
ONARY 302 android_telephony_SmsManager_send
TextMessage 124 android.permission.TYPE_KEYGUARD_D
IALOG 303 android_app_Activity_startActivity
125 android.permission.MANAGE_DOCUME
304 android_app_ApplicationPackageMan
126 android.permission.PROCESS_INCOMIN
G_CALLS 305 android_webkit_WebView_setWebVi
ewClient 127 android.permission.WRITE_SETTING 306 android_app_SharedPreferencesImpl_
EditorImpl_putBoolean 128 android.permission.ALLOCATE_AGGRES
SIVE 307 android_webkit_WebView_addJavascr
iptInterface 129 android.permission.GET_INTENT_SENDE
R_INTENT 308 android_telephony_TelephonyManage
r_getSimCountryIso 130 android.permission.LOCATION_HARDW
ARE 309 android_telephony_TelephonyManage
r_getSubscriberId 131 android.permission.NETWORK_STACK 310 android_content_ContextWrapper_star
tService 132 android.permission.CONFIGURE_SIP 311 android_content_ContentValues_put 133 android.permission.EXT 312 android_content_ContentResolver_ins
ert 134 android.permission.SHOW_WHEN_LOCK 313 android_webkit_WebView_setWebCh
romeClient 135 android.permission.LOCATION 314 android_content_ContentResolver_que
ry 136 android.permission.PREVENT_POWER_K
EY 315 android_util_Base64_decode
137 android.intent.action.NEW_OUTGOING_C
ALL 316 android_telephony_TelephonyManage
r_getNetworkCountryIso 138 android.intent.action.BOOT_COMPLETED 317 dalvik_system_DexFile_openDexFile 139 android.intent.action.USER_PRESENT 318 android_telephony_TelephonyManage
r_getNetworkOperator 140 android.intent.action.PHONE_STATE 319 android_content_ContextWrapper_sen
dBroadcast 141 android.intent.action.AIRPLANE_MODE 320 android_app_NotificationManager_not
ify 142 android.intent.action.SERVICE_STATE 321 javax_crypto_Cipher_doFinal
143 android.intent.action.ACTION_POWER_C
ONNECTED 322 android_app_ActivityManager_getRun
ningTasks 144 android.intent.action.ACTION_POWER_D
ISCONNECTED 323 dalvik_system_DexClassLoader_dalvi
k_system_DexClassLoader 145 android.intent.action.PACKAGE_ADDED 324 android_app_ApplicationPackageMan
ager_getInstalledPackages 146 android.intent.action.PACKAGE_REMOV
ED 325 dalvik_system_DexFile_loadDex
147 android.intent.action.DATA_SMS_RECEI
VED 326 dalvik_system_DexFile_dalvik_syste
m_DexFile 148 android.intent.action.QUICKBOOT_POWE
RON 327 javax_crypto_Mac_doFinal
149 android.intent.action.PACKAGE_REPLAC
ED 328 android_util_Base64_encode
150 android.intent.action.MEDIA_BUTTON 329 android_util_Base64_encodeToString
151 android.intent.action.DOWNLOAD_NOTI FICATION_CLICKED 330 android_content_ContentResolver_reg
isterContentObserver 152 android.intent.action.DOWNLOAD_COMP
LETE 331 javax_crypto_spec_SecretKeySpec_ja
vax_crypto_spec_SecretKeySpec 153 android.intent.action.MEDIA_MOUNTED 332 android_app_AlarmManager_set 154 android.intent.action.UMS_CONNECTED 333 dalvik_system_BaseDexClassLoader_f
indResource
156 android.intent.action.PACKAGE_RESTAR
TED 335 android_content_ContextWrapper_ope
nFileOutput 157 android.intent.action.PACKAGE_INSTAL
L 336 java_lang_Runtime_exec
158 android.intent.action.PACKAGE_DATA_C
LEARED 337 java_io_FileInputStream_read
159 android.intent.action.WALLPAPER_CHA
NGED 338 dalvik_system_BaseDexClassLoader_f
indLibrary 160 android.intent.action.SCREEN_ON 339 android_telephony_TelephonyManage
r_listen 161 android.intent.action.SCREEN_OFF 340 android_location_Location_getLatitud
e 162 android.intent.action.USER_INITIALIZE 341 android_content_ContextWrapper_star
tActivity 163 android.intent.action.DATE_CHANGED 342 android_telephony_TelephonyManage
r_getSimOperatorName 164 android.intent.action.SIG_STR 343 android_app_ActivityManager_getRun
ningAppProcesses 165 android.intent.action.MEDIA_CHECKING 344 android_app_ActivityThread_handleR
eceiver 166 android.intent.action.BATTERY_CHANG
ED 345 android_location_Location_getLongitu
de 167 android.intent.action.TIME_TICK 346 android_telephony_TelephonyManage
r_getDeviceSoftwareVersion 168 android.intent.action.TIME_SET 347 android_app_SharedPreferencesImpl_
EditorImpl_putFloat 169 android.intent.action.TIMEZONE_CHANG
ED 348 dalvik_system_BaseDexClassLoader_f
indResources 170 android.intent.action.ACTION_EXTERNA
L_APPLICATIONS_AVAILABLE 349 android_accounts_AccountManager_g
etAccountsByType 171 android.intent.action.ANY_DATA_STATE 350 java_lang_ProcessBuilder_start 172 android.intent.action.REBOOT 351 android_content_ContentResolver_del
ete 173 android.intent.action.ACTION_SHUTDO
WN 352 java_io_FileOutputStream_write
174 android.intent.action.LOCALE_CHANGE
D 353 dalvik_system_DexFile_loadClass
175 android.intent.action.BATTERY_LOW 354 android_os_Debug_isDebuggerConne
cted 176 android.intent.action.MY_PACKAGE_REP
LACED 355 dalvik_system_PathClassLoader_dalvi
k_system_PathClassLoader 177 android.intent.action.PACKAGE_FULLY_
REMOVED 356 java_lang_Runtime_load
178 android.intent.action.PROVIDER_CHANG
ED 357 android_accounts_AccountManager_g
etAccounts 179 android_media_AudioRecord_startRecordin
g
- Output: Giá trị 1 tương ứng với việc xác định file APK đó là phần mềm độc hại. Giá trị 0 tương ứng với việc file APK không phải là phần mềm độc hại.
Trọng số của mạng ANN phù hợp cho xác định tập tin APK có phải là phần mềm độc hại hay không.
Đối với mạng GAN:
- Input: Danh sách 357 đặc trưng; dữ liệu đặc trưng trích xuất từ các tập tin APK độc hại và tập tin APK bình thường.
- Output: Các dữ liệu mẫu mã độc giả sinh từ mạng GAN Đối với bước kiểm tra:
- Input: 357 đặc trưng thu được từ file APK cần kiểm tra.
- Output: Giá trị 1 tương ứng với việc xác định file APK đó là phần mềm độc hại. Giá trị 0 tương ứng với việc file APK không phải là phần mềm độc hại.
3.2.2.3. Cấu hình mạng ANN trong mô hình đề xuất
- Các lớp:
+ Lớp đầu vào: Input_dim = 357 + Lớp ẩn 1: 300 nút, hàm kích hoạt: ReLU + Lớp ẩn 2: 200 nút, hàm kích hoạt: ReLU + Lớp ẩn 3: 80 nút, hàm kích hoạt: ReLU + Lớp đầu ra: 1 nút, hàm kích hoạt: Sigmoid - Optimizer (trình tối ưu hóa): Adam
- tỉ lệ học learning_rate = 0.001 - Batch_size = 100
Batch_size là số lượng mẫu được random trong cả tập dữ liệu, được đưa vào huấn luyện cùng lúc mỗi epoch
- Epochs = 700
Epochs được hiểu là số vòng lặp. Trong mỗi vòng lặp, mô hình random batch_size feature vector trong tập dữ liệu để đưa vào huấn luyện. Số vòng lặp càng lớn, mô hình huấn luyện đưa ra tỉ lệ phát hiện càng chuẩn.
3.2.2.4. Cấu hình mạng GAN trong mô hình đề xuất
Thông số đầu vào:
- Test_size = 0.25 - Trình tối ưu hóa: Adam - Learning_rate = 0.001 - features_dims = 357
Noise_dims là số chiều nhiễu, dùng trong việc gây nhiễu các tính năng đầu vào để tạo ra những feature vector mới.
- hide_layers = 700
Số nút ẩn khác nhau có thể tạo ra các biến thể của đầu ra trong mạng Gernerator khác nhau.
- epochs = 1000 - batch_size = 300
Kết quả huấn luyện mô hình:
Hình 3.2.2.4.1. Kết quả huấn luyện mô hình GAN Original Train TPR (True Positive Rate) là tỷ lệ giữa số lượng dữ liệu dương tính (positive) được mô hình dự đoán đúng và tổng số dữ liệu dương tính trong tập dữ liệu huấn luyện gốc (original training data).
TPR là một chỉ số đánh giá khả năng của mô hình trong phát hiện các trường hợp dương tính một cách chính xác. Trong trường hợp này, Original Train TPR đo lường khả năng của mô hình trong phát hiện các trường hợp dương tính trên tập dữ liệu huấn luyện gốc.
Giá trị Original Train TPR và Original Tets TPR xấp xỉ 0.974 cho biết mô hình đã dự đoán đúng khoảng 97.4% các trường hợp dương tính trong tập dữ liệu huấn luyện gốc. Điều này cho thấy mô hình có hiệu suất tốt trong việc phát hiện các trường hợp dương tính trên dữ liệu huấn luyện gốc.
Giá trị Adver Train TPR và Adver Test TPR xấp xỉ 0.001 cho biết mô hình chỉ dự đoán đúng khoảng 1% các trường hợp dương tính trong tập dữ liệu huấn luyện đã qua quá trình tấn công hoặc biến đổi. Điều này cho thấy mô hình gặp khó khăn trong việc phát hiện và nhận diện các trường hợp dương tính trên dữ liệu huấn luyện đã bị biến đổi.
Mô hình GAN đã tạo ra được 1500 mẫu malware, cung cấp cho quá trình huấn luyện ANN.
3.2.2.5. Cơ sở dữ liệu mẫu dùng để huấn luyện và kiểm tra, đánh giá
Đề tài sử dụng cơ sở dữ liệu mẫu thu thập từ website Kaggle [17]. Bộ dữ liệu bao gồm các vectơ đặc trưng của 357 thuộc tính được trích xuất từ 6.180
ứng dụng (3.090 ứng dụng phần mềm độc hại từ dự án Drebin và 3.090 ứng dụng lành tính). Bộ dữ liệu đã được sử dụng để phát triển và đánh giá phương pháp hợp nhất phân loại đa cấp để phát hiện phần mềm độc hại Android, được xuất bản trong bài báo IEEE Transactions on Cybernetics 'DroidFusion: A Novel Multilevel Classifier Fusion Approach for Android Malware Detection.
Cách thức thu thập, trích chọn đặc trưng được thực hiện như sau: Từ rất nhiều các tập tin apk khác nhau bao gồm cả mẫu lành tính và mẫu độc hại, thông qua việc dịch ngược, sử dụng ide hoặc sử dụng tools để trích xuất được toàn bộ đặc trưng của ứng dụng. Những đặc trưng này chỉ có 2 trạng thái là có hoặc không, được biểu diễn tương ứng với 1 và 0. Mỗi ứng dụng với những đặc trưng khác nhau sẽ được so sánh với 1 bộ đặc trưng đã xác định trước, nếu tính năng đó xuất hiện sẽ được biểu diễn bởi 1 và ngược lại là 0 nếu tính năng không xuất hiện. Từ đó, mỗi ứng dụng này sẽ được biểu diễn bằng 1 vector gọi là Vector đặc trưng có số chiều bằng số chiều của bộ đặc trưng xác định trước cộng với một (chiều này xuất hiện ở cuối cùng, biểu hiện ứng dụng là lành tính – 1 hay độc hại – 0). Sau khi tổng hợp tất cả Vector đặc trưng lại ta được tập dữ liệu dataset.
- Từ bộ cơ sở dữ liệu trên, nhóm nghiên cứu sử dụng 80% dữ liệu để dùng cho bước huấn luyện và 20% cho việc kiểm tra kết quả của mô hình.
Như vậy, mô hình sử dụng 0.2*3090 = 618 mẫu độc hại và 0.2*3090 = 618 mẫu lành tính cho việc phân loại đánh giá mô hình.
Với ANN, tập dữ liệu train sẽ trực tiếp tham gia vào quá trình huấn luyện mô hình còn tập dữ liệu test sẽ được đưa vào thử nghiệm, tính toán độ chính xác của mô hình sau khi được phân loại.
Với ANN kết hợp GAN, tập dữ liệu train vẫn tham gia vào quá trình huấn luyện mô hình. Tuy nhiên, một phần khác của dataset được mang vào huấn luyện và thử nghiệm GAN. GAN sẽ sinh ra các bộ dữ liệu mới có tính chất phức tạp hơn (tương tự như các ứng dụng khó phát hiện ra là lành tính hay độc hại).
Các bộ dữ liệu sinh ra bởi GAN (Adversarial) được coi là bản nâng cấp của các bộ dữ liệu thường, sẽ được đưa thêm vào dữ liệu dùng để huấn luyện ANN. Nhờ vậy, ANN có thể nâng cao tỉ lệ phát hiện mã độc và nâng cao tỉ lệ dự đoán đúng phần mềm lành tính hay độc hại. Ngoài ra, dữ liệu được đưa vào huấn luyện và thử nghiệm GAN cũng được bổ sung vào tập dữ liệu thử nghiệm ANN, nâng cao độ chính xác tỉ lệ dự đoán của ANN.