Mô hình sử dụng GAN và ANN trong phát hiện mã độc

Một phần của tài liệu NGHIÊN CỨU KỸ THUẬT PHÁT HIỆN MÃ ĐỘC TRÊN HỆ ĐIỀU HÀNH ANDROID (Trang 57 - 68)

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.

Một phần của tài liệu NGHIÊN CỨU KỸ THUẬT PHÁT HIỆN MÃ ĐỘC TRÊN HỆ ĐIỀU HÀNH ANDROID (Trang 57 - 68)

Tải bản đầy đủ (DOCX)

(75 trang)
w