1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp An toàn thông tin: Phương pháp tạo mã độc đột biến chống lại trình phát hiện mã độc hộp đen sử dụng GANs

69 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Phương pháp tạo mã độc đột biến chống lại trình phát hiện mã độc hộp đen sử dụng GANs
Tác giả Đỗ Trường An, Nguyễn Hoàng Quốc Án
Người hướng dẫn TS. Phạm Văn Hậu, THS. Phan Thế Duy
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia TP.HCM
Chuyên ngành An toàn thông tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 69
Dung lượng 37,1 MB

Nội dung

60Bảng 12: Điểm dự đoán trung bình trước Trình phát hiện hộp đen và điểm dương tính của VirusTotal Engine của các mẫu thử nghiệm khi đào tạo RL ở các ngưỡng giống nhau là 0.8 chỉ sử dung

Trang 1

ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MANG MAY TÍNH VÀ TRUYEN THONG

KHOA LUAN TOT NGHEP

Phuong pháp tao mã độc đột biến chống lại

trình phát hiện mã độc hộp đen sử dụng

GANs

Crafting mutation of malware against blackbox

malware detector using GANs

KY SU NGANH AN TOAN THONG TIN

TP HO CHI MINH, 2021

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MANG MÁY TÍNH VÀ TRUYÈN THÔNG

KHOA LUAN TOT NGHEP

Phương pháp tao mã độc đột biến chống lại

trình phát hiện mã độc hộp đen sử dụng

GANs

Crafting mutation of malware against blackbox

malware detector using GANs

KY SU NGANH AN TOAN THONG TIN

GIANG VIEN HUONG DAN

TS PHAM VAN HAUTHS PHAN THE DUY

TP HO CHÍ MINH, 2021

Trang 3

THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số

"¬ eee e eae eeneeeeaeees ngày của Hiệu trưởng Trường Dai hoc

Công nghệ Thông tin.

Trang 4

LỜI CẢM ƠN

Nhóm thực hiện khóa luận chân thành cảm ơn thầy TS Phạm Văn Hậu,

cùng với ThS Phan Thế Duy đã theo sát quá trình thực hiện đề tài, đóng góp

những ý kiến hữu ich dé nhóm có thé hoàn thành dé tài khóa luận một cách

Xin chân thành cảm ơn!

TP.Hồ Chí Minh, ngày 31 tháng 12 năm 2021

Nhóm tác giả

Đỗ Trường An

Nguyễn Hoàng Quốc Án

Trang 5

Mục lục

TOM TAT KHÓA LUAN 2- << se ©2s£se©ss£ss£zseeseezeessezscre 15

Chương 1: TONG QUANN << c<5sSseEseEseEsEseEseetsetsetserserssrsscse 16

n1 16INRG)oiii i0 iä 1 4 16 1.2 Các nghiên cứu liên quan - <5 << 33311 E +33 EE**EE+Esereeskeereeerereere 17

1.2.1 GANS — 17 50 17 1.2.3 Tính Ứng dụng - c1 k1 HH nh nưư 17

IZ S010 1 171.2 Mục tiêu, đối tượng và phạm vi nghiên cứu -«+++-ss>++ss+++ 18

1.2.1 Mục tIÊU - G c2 0011111 S ST SH TS ng kg kg kg và 181.2.2 Đối tượng và phạm vi nghiên cứu -¿¿22s+s+zs+zxzszee 181.2.3 Cau trúc Khóa luận tốt nghiệp -2- 2 2+2 x+E++£++£z+E+rxzzszxez 18

Chương 2: CƠ SỞ LÝ THUYET -.2- 5° 2£ ©s2©ss©seesse+ssesssessessee 19

Tóm tắt Ẩn X> @Z / 192.1 Tập tin thực tH1 - - - + c 3S 1231123113211 835111 111 11 91111 1H ng ng ng tr 19 2.2 Mô hình hoc tăng Cường - - << 11v 1 vn ngư 21

2.2.1 TAC tr (AQONL) ececcccccccecccceescceseceeeeseecesneeeeaeeceeaeecsacecssaeecseneeeseeeseneeeaes 21 2.2.2 Môi trường (ETVITOIN€TI{) 5 2 2 3332111335 ESEEEEsrsersrreerrrere 21

2.3.3 Không gian hành động (Action space) - 55s ++s sex 24

2.3.4 Phần thưởng (ÑeW@ïFd]) - - 5e +E‡EEEEEEEEEEEEEEEEEEEEEEEkerkerkerrree 27

Trang 6

VInWE.s 00.20 nudtÕ45 29

2.3 Generative Adversarial NĐ€tWOTKS - Ă cv net 33

2.3.1 Giới thiệu tổng quan 2-2 2+ESE+SE£EE£E£EE£EESEEEEEEEErEerkerkrrrrei 332.3.2 Trình tạo sinh (Generator) 5c 13132 131111 1115555EEx2 34

2.3.3 Trinh phát hiện hộp đen (Black-box DetecfOr) -‹ -«« 35

2.3.4 Trình phân biệt (D1SCriminatfOT) -csss<sss+ssviseeererserrreere 35

“9-0001 36

"Co 36 2.4.2 MG inh 36 2.5 Các cơng trình nghiên cứu liên quan -. +5 55+ ++<£+++see++seee+zsss 38

Chương 3: MƠ HÌNH ĐỘT BIEN MÃ ĐỘC -s scsscssecsee 40

4.1.1 Trình phát hiện mã độc - - - 55c 2S *++EE+eEseeseesreeereeerss 47

4.1.2 ¿chu ho an 494.1.3 Hệ thống tạo đột biến - 2-2 + E+SE+EE+ESEEEEESEEEEEEEEEEErEerkrrkrree 534.2 Kết quả thí nghiệm 2 ¿- + sS£ SE E£+E£EE#EEEEEEEEEEEEEEEEEEEEEEEEErkrrkrrree 54

4.2.1 Hiệu năng của trình phát hiện hộp đen khi đào tạo với các khơng gian hành động khác nhau -. - c2 331132132 EEEEEEEErrerrsrerrrerrre 54

4.2.2 Quá trình đào tao RL cùng hiệu năng của mơ hình khi dao tạo RL với các tùy chọn khác nhau được đánh giá bởi các trình phát hiện hộp đen 56

4.2.3 Kết quả thực nghiệm của mơ hình với mẫu dữ liệu thực tế 61

Chương 5: KET LUẬN VA HƯỚNG PHÁT TRIEN - 64

¡0 Ữ:11ạ 64 5.1 Kết luận -¿ 22++t HH 64 5.2 Hướng phát triỂn -2- 22 2 £+EE+EE+EE£EEEEEEEEEEEEEEEEEE2E111 2xx crveeg 65

Trang 7

Tài liệu tham khảo 5 s55 <5 s5 5595155 E555 sessssseseoe OO

Trang 8

Danh sách hình vẽ

Hình 1: Các thành phần của tệp PE ¿- ¿©2222 ©++Ex£E++rxezrxerxrrresred 19Hình 2: Tổng quan của R 2-2 + +++E£+E£+EE+EE+EE£EEtEEEEEEEEEEEEExerkrrkervee 21

Hình 3: Tổng quan học sâu tăng cường cccscssesssesssessesssesseessecstsesesssessecsseeseesses 22

Hình 4: Cấu trúc mô hình DQEAE -2¿c++c+++errttErkkrrrtrrrrrrrrrre 24Hình 5: Định dạng tệp PE và các hành động dé sửa đổi nội dung 26Hình 6: Biéu đồ tính toán Phần thưởng - ¿5£ ©5£+££+££+£++£x+rxerxersee 28Hình 7: Sơ đồ mạng dao tạo DQEAIE - G12 112v S11 11111111 ri 31

Hình 8: Ví dụ của OpenAL ym - -<G SH HH HH nu 33

Hình 9: Sơ đồ cau trúc của MalGAN ¿- 2c 52+cxc2xvExerrrerkrrrerkeerxees 34 Hình 10: Sơ đồ cau trúc của MalCOnxv -¿- 2c 52©2+2x+£x2zvrxezrxerxeerxees 37

Hình 11: Phần trăm TPR (Ti lệ phát hiện) mẫu ban đầu và mẫu đối nghịch khi

MalGAN và Trinh phát hiện hộp đen được đào tạo cùng tap di liệu 39

Hình 12: Tổng quan mô hình dé xuất - 2 +¿++++++z++zx++zxerxezzxeex 4IHình 13: Các tùy chọn trích xuất tính năng - 2 + ©++cxz+zs+cxeezxees 46Hình 14: Tổng quan VirusTotal Engine -2 s:2 s+2s++cx++zx+rxezzxees 50Hình 15: Quá trình quét của VirusTotal Engine - «+ «se £++£eeeess 50Hình 16: Báo cáo tổng quan của VirusTotal Engine - 2 2 s+cs+czzsz 51Hình 17: Báo cáo chi tiết vủa VirusTotal Engine s- 2 2+secs+zs+zszez 52

Trang 9

Danh sách công thức

Công thức 1: Xác định Phan thưởng tại một thời gian nhất định (4) 27Công thức 2: Phương thức xác định tông Phan thưởng trong suốt quá trình dao

tạo Reve cccccccccccccccccccccccccccccceccececceeesesesesessesesessessssesesesesesseseseeeeeeeeeeseeeeeeees 28

Công thức 3: Phuong thức xác định Loss function s55 «<++s+++ 29

Công thức 4: Dinh nghĩa smooth function I - ‹- - «+ +seeseeesseess 35Công thức 5: Công thức tính điểm dự đoán trung bình -5¿¿ 55Công thức 6: Công thức tính điểm trung bình của VirusTotal Engine 57

Trang 10

Danh sách bảng:

Bang 1: Tập dữ liệu huấn luyện GANS và RL -.2 2¿©2¿©2s2cz2zxczzesred 46Bang 2: Tập dữ liệu của huấn luyện trình phát hiện hộp đen 47

Bang 3: Chi tiết các dit liệu kiểm thử và thực tẾ -¿ 2- s+cs+cs+zxcse+ 41

Bảng 4: Tỉ lệ phát hiện các mẫu độc hại ban đầu của các trình phát hiện hộp đen

¬— 49

Bảng 5: Chi tiết không gian hành động được sử dụng dé đào tạo RL 53Bang 6: Các trường hop kiêm thử khi đảo tạo RL .2 2¿©2255z55s=s2 55

Bang 7: Điểm dự đoán trung bình của các mẫu thực tế trước các Trình phát hiện

hộp đen khi dao tạo RL sử dung và không sử dụng thông tin từ GANs 56

Bảng 8: Số lượng các biến thé lân tránh được tìm thấy trong quá trình huấn

luyện, trong đó chúng tôi đã cung cấp cho đặc vụ ngân sách 50K đột biến 57Bang 9: Điểm dự đoán trung bình trước Trình phát hiện hộp đen và điểm dương

tính của VirusTotal Engine trên các mẫu thử nghiệm khi đào tạo RL ở các

ngưỡng khác nhau chỉ sử dụng 4 hành động với tập dữ liệu V'T 57Bảng 10: Điểm dự đoán trung bình trước Trình phát hiện hộp đen và điểm

dương tính của VirusTotal Engine của các mẫu thử nghiệm khi đào tạo RL ở

các ngưỡng giống nhau là 0.8 chỉ sử dụng 4 hành động với tập dữ liệu VT 59

Bảng 11: Điểm dự đoán trung bình trước Trình phát hiện hộp đen và điểm

dương tính của VirusTotal Engine của các mẫu thử nghiệm khi đào tạo RL ở

các ngưỡng khác nhau chỉ sử dụng 4 hành động với tập dữ liệu VS 60Bảng 12: Điểm dự đoán trung bình trước Trình phát hiện hộp đen và điểm

dương tính của VirusTotal Engine của các mẫu thử nghiệm khi đào tạo RL ở

các ngưỡng giống nhau là 0.8 chỉ sử dung 4 hành động với tập dữ liệu VS 61 Bảng 13: Tổng số mẫu thực tế được nhận dạng là mã độc với RL được đào chỉ

su dung 4 hamh dOng 5 17ẼẺ77 62

Bang 14: Điểm dự đoán trung bình mẫu thực tế trước và sau đột biến với RL

được đào chỉ sử dụng 4 hành động - ¿+ + E3 *Esseseeererseeree 63

10

Trang 11

Danh sách biểu đồ

Biểu đồ 1: Điểm dự đoán trung bình của các mẫu độc hại trước trình phát hiện

hộp đen ở 2 không gian hành động khác nhau với tập dữ liệu kiêm thử 55

11

Trang 12

Danh mục thuật toán

Thuật toán 1: Thao tác với Se€CfIOI - << 5 S212 11 vn 1x vrrrec 26 Thuật toán 2: Quá trình đào tạo GAT]Ns Q Q SH HS ng re, 43 Thuật toán 3: Thuật toán đào tạo ]RÌ ¿+ c2 +22 EEEkeeeezsseeeeeees 45

Thuật toán 4: Thuật toán kiêm thử RL sau khi đào tạo ¿-s5s+5ssss2 45

12

Trang 13

Danh mục từ viết tắt:

RL Reinforcement Learning

GANs Generative adversarial network

DQEAF Deep Q-network anti-malware Engines Attacking Framework

SVM Support vector machine

Trang 15

TOM TAT KHÓA LUẬN

Trong hai thập ky qua, nhiều nghiên cứu đã được tiễn hành về việc sử dung

AI dé phát hiện phần mềm độc hại bang cách trích xuất các tính năng và sau đóphân loại chúng băng các thuật toán học máy Như Hu và Tan đã chỉ ra [5], điều

này đã khiến một số tác giả phần mềm độc hại tập trung thời gian và nỗ lực của

họ dé tan công các kỹ thuật phát hiện phần mềm độc hại như vậy, nhóm của chúng tôi đặt mục tiêu đạt được điều tương tự Mục đích của khóa luận này là sử dụng

trí thông minh nhân tạo dé biến đổi một mẫu phần mềm độc hại nhằm vượt qua

các Anti-Virus (AV) trong khi vẫn giữ nguyên chức năng của nó Trong quá khứ,

công việc đáng chú ý đã được thực hiện trong lĩnh vực này với các nhà nghiên

cứu xem xét học tập tăng cường (RL) hoặc mạng đối thủ chung (GANs) như vũkhí lựa chọn của họ đề sửa đôi trạng thái của phần mềm độc hại có thể thực thinhằm đánh lừa các AV

Sau khi nghiên cứu về việc sử dung RL và GANs trong lĩnh vực nay, chúngtôi lưu ý một số hạn chế nay sinh khi cố gắng triên khai các giải pháp này mộtcách độc lập Giải pháp mà chúng tôi đề xuất trong tài liệu này nhăm mục đíchkhắc phục những hạn chế đó bằng cách triên khai một cách tiếp cận sáng tạo và

mới lạ đối với việc tạo ra phần mềm độc hại có khả năng lần tránh trước các trình

phát hiện mã độc sử dụng Machine Learning (ML) băng cách sử dụng kết hợp học tăng cường (RL) và mạng sinh đối kháng (GANS).

15

Trang 16

Chương 1: TONG QUAN

Tóm tắt

Trong chương này, nhóm chúng tôi xin trình bày tóm tắt về phương pháp tạo mã

độc đột biến chống lại trình phát hiện mã độc hộp den sử dụng GANs và RL cũng

như các nghiên cứu liên quan, các ứng dụng trong thực tế và các thách thức màbài toán đang gặp phải Đồng thời đưa ra mục tiêu và phạm vi nghiên cứu cũng

như cấu trúc của khóa luận tốt nghiệp.

1.1 Giới thiệu bài toán

Vào năm 2017, mã độc Ransomware đã làm cả thế giới khủng hoảng vì cuộc tấn

công mạng tầm vĩ mô gây ảnh hưởng tê liệt hàng triệu hệ thống trên toàn thế giới, bao gồm cả những công ty hàng đầu Từ thông tin cá nhân, bí mật doanh nghiệp,

đòi tiền chuộc, tống tiền v.v mã độc WannaCry đúng nghĩa đã làm nhiều doanhnghiệp tồn that rất lớn và nhà đầu tư phải phá sản vì nó

Trong bối cảnh đấy, nhiều nhà nghiên cứu đã ứng dụng ML vào bên trong công

việc phát hiện mã độc, sự khác biệt giữa việc sử dụng ML thay cho các mô hình

trước đó đã được đề xuất ở (1) Thông qua việc dao tạo với lượng dit liệu không

lồ cùng thuật toán và mô hình hợp lí thì phương pháp này đã đưa ra được tỉ lệphát hiện hiệu quả đến 97% (2), hoặc việc sử dụng trích xuất và dựa trên sự lựachọn các thuật toán hợp lí đề tìm ra các họ malware dùng cho việc phát hiện được

đề cập trong (3).

Như Hu và Tan đã chỉ ra (4), với các hệ thống phát hiện như vậy thì việc không cập nhật các mẫu mã độc mới nhất sẽ ảnh hưởng rất lớn đến các phán đoán của

Detector Điều này đã khiến một số tác giả phần mềm độc hại tập trung thời gian

và nỗ lực của họ dé tan công các kỹ thuật phát hiện phần mềm độc hại như vậy

thông qua các phương pháp như: Encryption, Oligomorphism, Polymorphism,

(5), hoặc tìm cách lần tránh mô hình phát hiện mã độc thông qua phương phápphân tích tĩnh tệp tin băng việc sử dung RL (6) và cũng như là việc áp dụng GANsvào mục đích lần tránh (4), nhóm của chúng tôi đặt mục tiêu đạt được điều tương

tự.

Sau khi tham khảo các bài báo và nghiên cứu liên quan đến việc lân tránh bộ trình phát hiện sử dụng ML thì nhóm của chúng tôi quyết định xây dựng một mô hình

16

Trang 17

tăng cường tỉ lệ lân tránh của các tệp Portable Excutable (PE) độc hại với sự kếthợp giữa GANs và RL.

1.2 Các nghiên cứu liên quan

1.2.1 GANs

GAN&s thuộc nhóm mô hình sinh dữ liệu (generative model) Generative là tính

từ nghĩa là khả năng sinh ra, model nghĩa là mô hình Vậy hiểu đơn giản

generative model nghĩa là mô hình có khả năng sinh ra dữ liệu Hay nói cách khác, GANs là mô hình có khả năng sinh ra dữ liệu mới.

1.2.2 RL

Trong lĩnh vực trí tuệ nhân tạo nói chung và lĩnh vực học máy nói riêng thì RL là

một cách tiếp cận tập trung vào việc học hỏi dé hoàn thành được mục tiêu băng

việc tương tác trực tiếp với Moi trường (Enviroment)

1.2.3 Tính ứng dụng

Đề tài nghiên cứu này sẽ giúp xây dựng một giải pháp vượt qua được AV hiệu quả hơn phương pháp truyền thống nhờ vào sự phát triển mạnh mẽ của trí

tuệ nhân tạo ngày nay.

Đề tài tập trung vào xây dựng một mô hình cũng như phát triển tệp PE để

vượt qua được khả năng phát hiện của AV Tiềm năng và tính nổi trội khi ứngdụng phương pháp học sâu dé vượt qua được AV

Đa dang hóa các mẫu đối nghịch được tao ra thông qua đó gây khó khăn

đối với các trình phát hiện hộp đen và cải thiện tỉ lệ lần tránh của chúng khi chạmchán các AV.

17

Trang 18

1.2 Mục tiêu, đối tượng và phạm vi nghiên cứu

1.2.1 Mục tiêu

Ứng dụng GANs va RL dé phát triển file PE vượt qua AV, từ đó cải tiễn và phát

triên AV trong tương lai.

1.2.2 Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu:

1.2.3 Cấu trúc Khóa luận tốt nghiệp

Qua những gì đã giới thiệu về tông quan của đề tài thực hiện trong khóa luận tốt

nghiệp, tôi xin đưa ra nội dung của Khóa luận tốt nghiệp sẽ được tô chức như sau:

e_ Chương 1: Giới thiệu tông quan về khóa luận va các nghiên cứu liên quan

e Chương 4: Trình bảy môi trường thực nghiệm, tập dữ liệu, phương pháp

đánh giá và kết quả thực nghiệm

e Chương 5: Kết luận và hướng phát triển của khóa luận.

18

Trang 19

Chương 2: CƠ SỞ LÝ THUYÉT

Tóm tắt

Trong chương này, nhóm chúng tôi sẽ trình bày các kiến thức nền tảng và cơ sở

lý thuyết có liên quan đến đề tài

2.1 Tập tin thực thi

Đối với phạm vi của khóa luận này, chúng tôi chỉ tập trung vào các tệp nhịphân (Portable Executable — PE files), tuy nhiên, chúng tôi suy đoán rằng mô hình

mà chúng tôi đã đề xuất có khả năng tạo ra kết quả tương tự trên các định dạng

thực thi khác như ELF, MachO và các định dang Android như OAT, DEX, VDEX

va ART Do đó, việc thực hiện trên các định dạng tệp khác nhau sé là hướng phát

triển tiếp theo của chúng tôi, tuy nhiên chúng tôi đặc biệt khuyến khích người đọc đọc qua cau trúc của tệp PE được thể hiện chi tiết ở Hình 1 dé hiểu rõ hơn về cách

các phần khác nhau của tệp nhị phân có thé được khai thác và ở mức độ nào (7)

Cũng cần lưu ý rằng trong khi có gắng sửa đổi vẫn phải giữ nguyên chức năng thực sự của phần mềm độc hại.

Trang 20

Sau khi nghiên cứu về cau trúc và chức năng của các thành phần khác nhau

trong tệp PE và thảo luận với nhau, chúng tôi quyết định rằng chỉ thực hiện sửa đổi đối với bảng Sections (với tiêu đề Section) và các hàm Imports có trong các

ngăn của tệp nhi phân.

Bảng Sections bao gồm nhiều hàng tiêu đề Sections và chứa thông tin liên

quan đến các phần khác nhau có sẵn trong tệp thực thi, chăng hạn như Section

Name, Virtual Size, Virtual Address, kích thước của Raw Data, con trỏ đến Raw Data và đặc điểm của những phần khác (8) Trong quá trình thử nghiệm, một tập lệnh đã được chạy để thu thập tất cả các tên Sections và các hàm Imports duy nhất xuất hiện trong tập dữ liệu lành tính và phần mềm độc hại Quan sát thấy rằng có

một số phần thường xuyên xuất hiện trong các tệp nhị phân PE như text, data,

.rdata, idata, reloc, rsrc và debug Một số thao tác khác như là việc đồi tên các

Sections hiện có, thêm các bit ngẫu nhiên vào các phần hiện có và thêm các

Sections không sử dụng trong tệp PE không chỉ làm giảm tỷ lệ dương tính thực

của phần mềm độc hại mà còn giữ nguyên chức năng của nó Những thực nghiệm

này cũng đã được thực hiện bởi Anderson và cộng sự (6).

Một cách tiếp cận phô biến khác được nêu bởi Anderson và cộng sự dé

giảm tỉ lệ dương tính thực ( True Positive Rate - TPR) của phần mềm độc hại đã

thêm các chức năng không sử dụng bang Imports trong Section idata Mục đích

chính của bang Imports là làm cho module đơn giản hon Mặc dù việc sửa đôi các

bang Imports góp phan đáng ké vào việc giảm TPR, nhưng nó không làm quá tốt

trong việc g1ữ nguyên chức năng của tệp độc hai Dựa trên thử nghiệm của mình,

chúng tôi đã đi đến kết luận rằng phần mềm độc hại thực hiện hành động LEA

trên Bang địa chỉ nhập (IAT) không hoạt động tốt khi thêm các Imports bồ sung

Ngoài ra, có những hành động khác như thêm các byte ngẫu nhiên vào tệp

nhị phân, đóng gói và giải nén tệp PE, xóa chữ ký và tải đường dẫn cấu hình cóthê được thực hiện đề giảm TPR của phần mềm độc hại Những hành động này

cũng đã được nghiên cứu trong giải pháp của chúng tôi.

Trong giai đoạn thử nghiệm, khi dao tao Tac tr của RL (RL’s Agent),

chúng tôi nhận ra rằng trong số tất cả các hành động, 7ác tw (Agent) sẽ chọn một

trong các hành động sau đây bất kế đầu vào là gì, bao gồm thêm vào Sections, đổi tên Sections, thêm Imports và thêm byte ngẫu nhiên vào nhị phân Do đó, chúng tôi quyết định tiếp tục đào tạo lai Tac tur chỉ với 4 thao tác này, tuy nhiên chúng tôi cũng đưa ra các trường hợp sử dụng các hành động khác ở mục 4.2 Kết

quả thí nghiệm

20

Trang 21

2.2 Mô hình học tăng cường

Hoc tăng cường (Reinforcement Learning — RL) là một nhánh của ML nơi

các Tác f học cách đưa ra các hành động một cách tối ưu nhất bằng cách tích lũy

tối đa hóa Phần thưởng (Reward) Quá trình này cần sự tương tác của Môi trường

và Tac tw được thé hiện chỉ tiết ở Hình 2.

Trong RL có rất nhiều các thuật ngữ khác nhau (như hình trên) Sau đây

chúng tôi sẽ trình bày các thuật ngữ thông dụng và ý nghĩa của từng thuật ngữ

đó:

2.2.1 Tác tử (Agent)

Trong RL có một thuật ngữ gọi là Tac tw - được định nghĩa là máy quan sát Môi trường và sinh ra Hành động tương ứng.

2.2.2 Môi trường (Enviroment)

Môi trường là không gian xung quanh của Tác tr, nơi ma Tác tw tôn tại va

tương tác.

2.2.3 Hành động (Action)

Hanh động là phương thức của Tdc tu cho phép nó tương tác với Môi

trường và thay d6i Môi trường Dựa trên Trạng thái S(t) của Môi trường hiện tại

mà Tác tw sẽ đưa ra Hành động a(t).

2.2.4 Quan sát (Observation)

Sau khi nhận được sự tương tác từ Tác tu thì Môi trường có sự chuyên đôi

trạng thái đối với Tác tử.

2.2.5 Trạng thai (State)

Là trạng thái của Moi rường ma Tác tw nhận được hoặc có thể hiểu bằng cách khác là Trang thái sẽ mô tả tình hình hiện tại Ví dụ cụ thé như: Đối với

21

Trang 22

robot dang tập di, Trang thái là vị trí của hai chân của nó Đôi với chương trình

cờ vây, Trang thái là vi trí của tat cả các quân cờ trên ban cờ.

2.2.6 Phần thưởng (Reward)

Ở mỗi Hành động, Môi trường gửi đến cho Tác tử một Phần thưởng xác

định Mục tiêu của Tac ti là tối đa hóa tổng Phan thưởng ma nó nhận được trong một thời gian dài Tín hiệu Phần thưởng (reward signal) giúp xác định đâu là sự

kiện tốt và xấu đối với Tác tv, đồng thời nó cũng là cơ sở chính dé thay đồi chínhsách Nếu một hành động được lựa chọn bởi chính sách mang đến Phần thưởng

thấp, thì chính sách đó có thể bị thay đôi Tác tử sẽ lựa chọn các Hành động khác

trong các tình huéng tương tự ở tương lai

2.3 Mô hình học sâu tăng cường

Mô hình học sâu tăng cường (Deep Reinforcement Learning) là sự kết hợp

của học tăng cường (reinforcement learning) va học sâu (deep learning) được

trình bày chỉ tiết ở Hình 3 và nó cũng là lĩnh vực học máy thịnh hành nhất tại thời điểm này bởi vì nó có thể giải quyết một loạt các nhiệm vụ ra quyết định phức

tạp ma trước đây máy móc không có khả năng giải quyết các vấn đề trong thế

giới thực giống như trí thông minh của con người.

Hình 3: Tổng quan học sâu tăng cường

22

Trang 23

2.3.1 Deep Q-network anti-malware Engines Attacking Framework

(DQEAF)

Chúng tôi ứng dung mô hình DQEAF (9) vào mô hình tạo đột biến mã độc

trong dé tài của mình Công dụng của Mồi rưởng trong DQEAF là quan sát và đánh giá Phan thưởng, cụ thé Trạng thái (mô tả về giai đoạn hiện tại) và Phan

thưởng (giá trị đánh giá hành động) cho Tac tir Tác tử bao gồm các tham số vàthuật toán dé xác định hành động cần thực hiện tiếp theo Vì vậy, đầu vào của RL

là Phân thưởng và Trạng thái khi quan sát Môi trường Đầu ra là chién lược lựa chọn hành động của Tac tw cho một SỐ trường hợp nhất định.

Trong khóa luận này, chúng tôi tập trung vào sự đơn giản hóa của DQEAF,

có thê phù hợp với lý thuyết phân tích đồng thời nắm bắt đầy đủ khía cạnh trên.

Cụ thê, chúng tôi đơn giản hóa kỹ thuật phat lại trải nghiệm (experience replay)với giả định độc lập (independence assumption) va tập trung vào các mạng thankinh sâu (deep neural networks) với đơn vi tuyến tính (ReLU) (10) và kích thước

lớn Với cài đặt này, mạng thần kinh DQEAF được giảm xuống và tính bằng thuật

toán Q-iteration (FQI) (11) và kỹ thuật nhăm đến mạng mục tiêu Q có thé đượctruyền dưới dạng lặp giá trị Quan trọng hơn, bằng cách điều chỉnh các kết quả

gần đúng đối với các mạng ReLU để phân tích toán tử Bellman, chúng tôi thiết

lập thuật toán và thống kê tỷ lệ hội tụ cho chuỗi chính sách lặp lại mà DQEAF

thu được.

Sử dụng RL để giải quyết các van dé chống AV, chúng ta cần có định nghĩa

phù hợp về Môi trường, Hành động, Phan thưởng và Tác tử trong DQEAF Chitiết toàn bộ kiến trúc của DQEAF được thé hiện ở Hình 4 và các mục bên dưới

23

Trang 24

MODIFIER Q TARGET

PE FEATURE EXTRACTOR

BLACK-BOX DETECTOR

.———

MALWARE DATASET

Hình 4: Cau trúc mô hình DOEAF

2.3.2 Môi trường (Enviroment)

Trong DQEAF, Moi truvong được sử dụng dé quan sát biéu hiện và thành

phần của các mẫu phần mềm độc hại PE.

Quan sát càng toàn diện, kết quả đào tạo càng dé dàng đạt được tỷ lệ mong

đợi Do đặc thù của RL nên không cần xử lý trước các mau (Xử lí tiền dữ liệu).

Chúng tôi xác định tinh năng nhị phân thô (raw features) là Moi rường vì nó có

thể đại diện cho một cái nhìn tổng thể về các mẫu phần mềm độc hại và yếu tố để

có thé lựa chọn với từng Hanh động Chúng tôi đếm biểu đồ byte (byte histogram

normalized), được thực hiện băng cách đếm số lần xuất hiện của mỗi giá tri của

toàn bộ tệp nhị phân.

2.3.3 Không gian hành động (Action space)

Sau khi Tac tw quan sát Trang thái của Môi trường, nó phải chon một hành

Trang 25

bảo răng việc sửa đôi tệp càng đơn giản càng tôt đê đảm bảo việc sửa đôi thành

công.

Chúng tôi phải chắc chăn rằng quá trình sửa đổi sẽ không dẫn đến những

kết quả không mong muốn, chang hạn như sự phá vỡ cau trúc sẵn có của phần mềm độc hại do sửa đổi trực tiếp (Hành động bắt buộc) Những thất bại trong quá trình sửa đổi được đề cập ở trên sẽ làm gián đoạn quá trình dao tao, vì vậy chúng tôi chọn các hành động đơn giản nhất như sau:

e© ARBE: Nối các byte ngẫu nhiên vào cuối tệp PE

e ARI Nối một thư viện được đặt tên ngẫu nhiên với tên hàm ngẫu nhiên

vào bang dia chi import của tệp PE.

e ARS Nối một phan được đặt tên ngẫu nhiên vào bảng phan của tệp PE

Các loại phần sau được đặt ngẫu nhiên dé có thêm dữ liệu.

a.

h.

ARS-BSS Đặt cho loại section BSS Phần BSS, đề cập đến "BlockStart with Symbol", lưu trữ bat kỳ biến tĩnh và biến toan cục chưa

được khởi tạo nào.

ARS-UNKNOWN Đặt cho loại section không xác định.

ARS-IDATA Đặt cho loại section thành IDATA Phần IDATA

chứa thông tin về các chức năng (và dữ liệu) mà mô-đun nhập từ cácDLL khác.

ARS-RELOCATION Đặt cho loại section thành RELOC Phần

RELOC chứa một bảng các vi tri cơ sở.

ARS-RESOURCE Đặt cho loại section thành RSRC Phan RSRC

chứa tất cả các tài nguyên cho mô-đun.

ARS-TEXT Đặt cho loại section thành TEXT Phần TEXT là phần

mặc định cho mã.

ARS-TLS Đặt cho loại section thành TLS Phần TLS, đề cập đến

"lưu trữ cục bộ chuỗi", có liên quan đến họ TIsAlloc của các hàmWin32.

RS Xóa chữ ký khỏi bảng chứng chỉ của thư mục dữ liệu.

Ban đầu, Tac / đọc nội dung của tệp PE nhị phân gốc, sau đó nối thêm

hoặc xóa nội dung tai vi trí được chỉ định va sửa đôi địa chỉ ảo (Virtual Address)

tương đối cho mẫu mà vẫn đảm bảo tính toàn vẹn của tệp Chỉ tiết quá trình thác

táo với Section sẽ được trình bày ở Thuật toán 1.

25

Trang 26

Ngoài ra, cân phải đảm bảo răng chức năng gôc của tệp không bị hỏng sau các hành động sửa đôi đó Điêu cân thiệt là các hành động trên sẽ không có bât

ky tác động nào đên câu trúc va chức năng của tệp PE.

ARS-UNKNOWN rsrC

Section Table(Array of IMAGE_ Section_HEADERs)

Export Table Import Table Resource Table Exception Table Certificate_Table

Se 7 a a ee ey

vl

Data Directory

IMAGE_OPTIONAL_HEADER IMAGE_NT_HEADERs

IMAGE_FILE_HEADER

*PE\0\0" PE signature

= N MS-DOS Header

Hình 5: Dinh dạng tệp PE và các hành động dé sửa đồi nội dung!

Thuật toán 1: Thao tác với Section

1: Phân tích nội dung gốc tệp nhị phân gốc bin,

2: Tao | section mới chưa sử dụng Sectionney

3: Điền nội dung vào Sectionney

4: Sửa đổi địa chỉ RVA

RVAsectionnew = MAX RVApin, sections

5: Sectionnew + bin, = bins

6: return bin,,,

Thuật toán I: Thao tác với Section

! https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=867603 |

26

Trang 27

2.3.4 Phan thưởng (Reward)

Phan thưởng là một yêu tỗ giúp phan biệt RL với các loại học máy khác

Làm thé nào dé chọn Phẩn thưởng thích hợp cho một hành động nhất định là một van đề chưa được giải đáp trong RL truyền thống Chúng tôi mong muốn Tac tir

có thé chọn Phan fhưởng của riêng mình, thay vì yêu cầu một tác giả xác định

nó.

Trình phát hiện được sử dụng dé đánh giá quan sắt, đầu ra là một nhãn (độchại hoặc lành tính) được định nghĩa là Phân thưởng Sau khi một hành động a

được thực thi, Trình phát hiện sé trả về một nhãn theo Môi trưởng hiện tai Vì

mục đích là tránh bị phát hiện và thực hiện ít hành động nhất có thê, chúng tôixác định Phần thưởng cho mỗi khóa đào tạo “TURN” dựa trên nhãn từ Black-box Detector và số lượng hành động được thực hiện Phan thưởng là 0 nếu nhãn

là "độc hại" và được tính băng Công thức | khi nhãn là "lành tính" Xu hướng

của công thức này được thé hiện trong Hình 6, có nghĩa là “TURN” càng nhỏ,Phan thưởng càng lớn “MAXTURN” được xác định khi Tac tv yêu cầu khôngthành công nếu “MAXTURN” đã thực hiện các bước sửa đổi và Phan thưởngvẫn bằng 0 Bat cứ khi nào Phần thưởng > 0 được trả lại, có nghĩa là tệp độc hạitrốn tránh thành công, quá trình sẽ kết thúc và Tac ti có thé học hỏi từ đó

h= 2Q~(TURN—1)/MAXTURN * 100

Công thức 1: Xác định Phan thưởng tại một thoi gian nhất định (4)

27

Trang 28

Hình 6: Biểu do tính toán Phan thưởng

Ngoài ra, do Môi trường có nhiều biến, chúng ta không bao giờ có thé chắc chắn liệu mình có thê nhận được Phan thưởng tương tự sau cùng một hành động

tiếp theo hay không Càng nhiều lần, sự khác biệt càng nhiều Do đó, chúng ta

nên sử dụng các chiết khấu ưu đãi tương lai (Discount Future Incentives) Gia tri

Phan thưởng được tinh theo Công thức 2 ở bước t Hệ số chiết khấu từ 0 đến 1

và càng xa thời điểm hiện tại, Phần thưởng càng it

Dễ dàng nhận thấy răng giá trị của chiết khấu phần thưởng tương lai(Discounted Future Reward) ở bước t có thé được thé hiện theo cách tương tự

như trong bước t + 1.

Trang 29

các hành động giống nhau luôn dẫn đến cùng một Phần thirdng, thì chúng ta có

thé xác định hệ số chiết khấu là = 1.

2.3.5 Tác tử (Agent)

Tác tử có thé chứa thuật toán hoặc chi đơn giản là cung cấp sự phối hợp

cho thuật toán và Moi rường Trong trường hợp này, Téc / quyết định xem

DQEAF sẽ chọn con đường dao tạo nào Chúng tôi quan tâm đến giá trị của cácHành động khác nhau trong Trạng thái nhất định Nếu chúng ta biết giá trị củamỗi Hanh động, chúng ta có thể chọn hành động có giá tri cao nhất đề thực hiện

Chúng tôi đã sử dụng thiết kế một mạng Q tích chập (deep convolutional

Q-network) (12) đóng vai trò như một Tac ti, thực hiện các hành động hiệu quả

dé sửa đôi phần mềm độc hại nhằm tránh bị phát hiện bởi AV Mạng tích chập (convolutional network) là một loại mạng nơ-ron nhân tạo sâu, chuyên tiếp sử dụng biến thé của các perceptron (13) nhiều lớp được thiết kế dé xử lí yêu cầu.

Khi kích thước của dir liệu tăng lên, các tài nguyên cần thiết dé dao tạo và tính

toán sẽ tăng lên theo cấp số nhân Tuy nhiên, mạng nơ ron nhân tạo (articial neuralnetwork) có thê tong quát hóa từ dir liệu đầu vào

Mang sâu Q trong DQEAF là một phan mở rộng của mạng nơ-ron tíchchập, băng cách thêm một số tính năng mới với giá trị hành động Q (Qvalue) và

giá tri hành động mục tiêu ^ Q (Qtarget) anh xạ Trang (hái với các tiện ích hành

động (là giá trị của mỗi Hành động theo Trạng thái hoặc Quan sát) dé đượcthưởng lâu dài.

Hai mạng Q và mạng sâu Q đã sử dụng Qvalue và Qtarget riêng biệt trong

Computing Loss Function Loss function được định nghĩa trong Công thức 3.

1 (r¡ — Qvatue)? Ket thúc episode tại ¡ + 1

OSS; =

‘ (7, + VQtarget — Qvatue) Nguoc lai

Công thức 3: Phương thức xác định Loss function

Tại mỗi lần lặp lại Mạng sâu Q, một loạt nhỏ các Trạng thái, các Hành

động, Phan thưởng và Trạng thái tiếp theo được lay mau từ bộ nhớ phát lại dưới

dạng các Quan sát đề đào tạo Mạng Q, gần đúng với hàm giá trị hành động Trựcgiác sau lần huấn luyện lại là đạt được sự 6n định bằng cách phá vỡ sự phụ thuộc

về thời gian giữa các quan sát được sử dụng trong đào tao mạng noron sâu

29

Trang 30

Ngoài mạng Q nói trên, mạng sâu Q sử dụng một mạng nơ-ron khác có tên

mạng mục tiêu Q để có được một ước lượng không chệch của lỗi Bellman (14) bình phương trung bình được sử dụng trong việc huấn luyện mạng Q Mạng mục tiêu Q được đồng bộ hóa với mạng Q sau mỗi khoảng thời gian lặp lại, dẫn đến

sự kết hợp giữa hai mạng.

Trong ngữ cảnh tránh phát hiện phần mềm độc hại, các mạng lấy các tính

năng được trích xuất từ luồng nhị phân thô (raw binary) của mẫu phần mềm độc hại làm đầu vảo, sau đó tạo ra hành động tiếp theo mà Tac tir sẽ thực hiện Đối với lớp đầu ra của mạng, chúng tôi quy định nó thành không gian hành động Trong bối cảnh này, thứ nguyên đầu ra bằng 4, đề cập đến tổng thứ nguyên của

không gian hành động.

Cu thé hon, các lớp an (hidden layers), các giá trị không được quan sát

trong tập huấn luyện, được thiết kế thành 2 lớp Lớp đầu tiên bao gồm một lớp tích chập (convolutional layer) với 256 bộ lọc sử dụng chức năng kích hoạt tuyến

tính (linear activation function,), một lớp chuẩn hóa hàng loạt normalization layer) và một ham đơn vi tuyén tính được chỉnh lưu (ReLU) Lớp

(batch-thứ hai bao gồm một lớp tích chập với số bộ lọc là 64, một lớp chuan hóa hàng

loạt (batch-normalization layer) và một hàm đơn vị tuyến tính lặp lại (ReLU) Ởđây, chúng tôi sử dụng chuẩn hóa hàng loạt (batch normalization) dé cải thiệntính tổng quát với việc chọn bỏ qua (Dropout) mạng và bắt đầu huấn luyện với

tốc độ cao dé tăng tốc quá trình đào tạo Hơn nữa, lợi thế của các hàm đơn vị

tuyến tính được chỉnh lưu là hội tụ nhanh hơn trong SGD (15), giảm bớt van đề

thiếu hụt trong độc dốc (16) và thực hiện đơn giản Các lớp này hợp tác thành

một mạng mạnh dé tính toán từ các tinh năng đầu vao của phần mềm độc hại đếnmục hành động đầu ra Sơ đồ mạng được thé hiện như Hình 7

30

Trang 31

(1, 256), Roat32

(1, 256), Roat32

b: (64), float32 W: (64, 256), fluat32 (1, 256), foat32

Hình 7: Sơ đồ mang dao tao DQEAF.

Dropout là giải pháp tối ưu với việc có thé loại bỏ kha năng phục hồi cao

hơn đối với dir liệu không hoàn hảo hoặc dữ liệu ban (thường xảy ra khi trích xuất các tính năng từ phần mềm độc hại tương tự đã được biên dịch hoặc đóng gói

31

Trang 32

băng phần mềm khác nhau) Các đơn vị tuyến tính được chỉnh lưu (ReLU) đã

được chứng minh là tăng tốc đáng kể việc đào tao mạng so với các chức năng

kích hoạt sigmoid (17) truyền thống

2.3.6 CartPole-vl

Cartpole - còn được gọi là Con lắc ngược là một con lắc có trọng tâm năm trên điểm trục của nó và được xây dựng bởi OpenAI Gym Nó không ổn định, nhưng

có thé được kiêm soát bằng cách di chuyên điểm trục dưới tâm khối lượng Mục

đích là để giữ cân bằng cho Cartpole bằng cách tác dụng các lực thích hợp lên

một điểm trục Từ trò chơi này chúng ta có thé thay được ứng dụng của RL một

cách thực tế nhất Với RL thì thường chúng ta sẽ quan tâm khá nhiều về Không

gian hành động của nó và ở đầy Không gian hành động của Cartpole có 2 giá trị

là L (trái) và R (phải) và Tác tr cùng Môi trường sẽ làm việc với nhau dé có thé dat được Phan thưởng tôi đa.

Cụ thể, Một cực được gan bang một khớp không truyền động vào một xe

đây, khớp này di chuyền đọc theo một đường ray không ma sát Hệ thống được điều khiến bằng cách tác dụng một lực +1 hoặc -1 vào cart Con lắc bắt đầu thang đứng, và mục dich là dé nó không bi đồ Phần thưởng +1 được cung cấp cho mỗi

bước thời gian ma cột van thăng đứng Tập kết thúc khi cột lệch hơn 15 độ so với

phương thăng đứng hoặc xe đây cách tâm hơn 2,4 đơn vị và chỉ tiết Hình 8.

32

Trang 33

Hình 8: Ví dụ của OpenA] Gym?

2.3 Generative Adversarial Networks

2.3.1 Giới thiệu tong quan

Trong những năm gần đây, việc sử dụng ML đã được dé xuất dé phát hiệnphần mềm độc hại, những thuật toán ML này trích xuất các tính năng từ chươngtrình và sử dụng trình phát hiện hộp đen dé phân loại chương trình giữa chươngtrình lành tính và phần mềm độc hại Kiến trúc MalGAN (4) được đề xuất bởi Hu

và Tan (4) được thé hiện chỉ tiết trong Hình 9 có thể thực hiện khả năng vượt mặtcác trình phát hiện sử dụng ML trong thuật toán của họ.

Trình phát hiện hộp đen là một hệ thống bên ngoài sử dụng các thuật toánphát hiện phần mềm độc hại dựa trên ML Chúng tôi giả định rằng điều duy nhất

mà các tác giả phần mềm độc hại biết về trình phát hiện hộp đen là loại tính năng

mà nó sử dụng chứ không biết nó sử dụng thuật toán ML nào và không có quyền

truy cập vào các tham số của mô hình được đào tạo Toàn bộ mô hình củaMalGAN chứa một Trình tạo sinh (Generator) và một Trình phán biệt(Discriminator), cả hai đều là mạng nơ-ron có nguồn cấp dữ liệu chuyên tiếp

? https://gym.openai.com/envs/CartPole-v L/

33

Trang 34

Trình tạo sinh và Trinh phân biệt làm việc cùng nhau dé tan công một trình pháthiện phần mềm độc hại sử dung ML.

BENIGN FEATURE

VECTOR

MALWARE FEATURE VECTOR

BENIGN &

ADVERSARIAL MALWARE EXAMPLES WITH LABELS

2.3.2 Trình tạo sinh (Generator)

Trình tạo sinh được sử dụng dé chuyén đôi vecto đặc điểm của phần mềm

độc hại thành phiên bản đối thủ của nó Nó là sự kết hợp của một vectơ đặc trưngcủa phần mềm độc hại m và một vectơ nhiễu z làm đầu vào m là một vectơ nhịphân M chiều Mỗi phần tử của m tương ứng với sự có mặt hoặc văng mặt của

một đối tượng đặc trưng z là vectơ Z chiều, trong đó Z là siêu tham số Mỗi phần

tử của z là một số ngẫu nhiên được lay mẫu từ một phân phối đều trong phạm vi

[0, 1) Tác dụng của z là cho phép Trinh tao sinh tạo ra các vi dụ đối nghịch đa dang từ một vectơ đặc điểm duy nhất của phần mềm độc hại.

Vectơ đầu vào được đưa vào mạng nơ-ron chuyền tiếp nhiều lớp với trọng

số 6 Lớp đầu ra (Output layer) của mang nay có M nơ-ron và hàm kích hoạt được sử dụng bởi lớp cuối cùng là sigmoid (17), và được giới hạn trong phạm vi

(0, 1) Đầu ra của mạng này được ký hiệu là o Vì các giá trị đặc trưng của phanmềm độc hại là nhị phân, nên phép biến đồi nhị phân được áp dụng cho ø tùy theo

phan tử có lớn hơn 0,5 hay không và quá trình nay tạo ra một vecto nhị phân o’.

Khi tạo các mẫu đối nghịch cho các tính năng phần mềm độc hại nhị phân, chúng tôi cũng xem xét thêm một số tính năng không liên quan vào phần mềm

độc hại hoặc xóa một tính năng không ảnh hưởng đến phần mềm độc hại Tuynhiên nếu việc chỉnh sửa vô tình ảnh hưởng đến tính năng của phần mềm độc hại

có thể làm hư hại nó Ví dụ nếu API “Write File” bị xóa khỏi chương trình,

34

Ngày đăng: 23/10/2024, 01:50