Professional Documents
Culture Documents
Bao Cao Mon Hoc-20SCT11-Huong Quynh
Bao Cao Mon Hoc-20SCT11-Huong Quynh
ĐỀ TÀI
MỤC LỤC......................................................................................................................................1
LỜI CẢM ƠN.................................................................................................................................4
GIỚI THIỆU..................................................................................................................................5
CHƯƠNG 1: TỔNG QUAN VỀ MÃ ĐỘC.................................................................................8
1.1. Giới thiệu về mã độc...........................................................................................................8
1.2. Phân loại mã độc.................................................................................................................8
1.2.1. Virus.................................................................................................................................9
1.2.2. Worm..............................................................................................................................11
1.2.3. Ransomware..................................................................................................................12
1.2.4. Trojan.............................................................................................................................14
1.2.5. Backdoor........................................................................................................................14
1.2.6. Rootkits..........................................................................................................................15
1.3. Mục đích phân tích mã độc..............................................................................................16
1.4. Phương pháp phân tích mã độc.......................................................................................16
1.5. Trích xuất đặc trưng và các loại đặc trưng....................................................................19
1.5.1. Trích xuất đặc trưng.....................................................................................................19
1.5.2. Các loại đặc trưng.........................................................................................................20
CHƯƠNG 2: THUẬT TOÁN XGBOOST và DASK...............................................................22
2.1 Giới thiệu XGBoost...........................................................................................................22
2.2 Phương pháp XGBoost tối ưu hóa hệ thống...................................................................24
2.3 Giới thiệu DASK...............................................................................................................26
2.4 DASK Array......................................................................................................................27
2.5 DASK DataFrame.............................................................................................................28
2.6 DASK Bag..........................................................................................................................28
2.7 DASK Delay.......................................................................................................................28
2.8 DASK Futures...................................................................................................................29
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ......................................................................30
3.1 Dữ liệu thực nghiệm..........................................................................................................30
3.2 Chương trình thực nghiệm..............................................................................................30
CHƯƠNG 4: KẾT LUẬN...........................................................................................................35
TÀI LIỆU THAM KHẢO...........................................................................................................36
NHẬN XÉT CỦA GIẢNG VIÊN
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
LỜI CẢM ƠN
Trước tiên chúng em xin gửi lời cảm ơn sâu sắc nhất đến thầy TS. Huỳnh Quốc
Bảo, đã tận tâm, tận lực hướng dẫn, định hướng phương pháp nghiên cứu khoa học
cho em; đồng thời, cũng đã cung cấp nhiều tài liệu và tạo điều kiện thuận lợi trong
suốt quá trình học tập và nghiên cứu để chúng em có thể hoàn thành báo cáo này.
Em xin được gửi lời cảm ơn đến các thầy, cô trong Khoa Công nghệ thông tin,
Trường Đại học Công nghệ - Thành phố Hồ Chí Minh đã nhiệt tình giảng dạy và
truyền đạt những kiến thức, kinh nghiệm quý giá trong suốt thời gian chúng em học
tập tại trường.
Em xin gửi lời cảm ơn đến các bạn học viên lớp 20SCT11, những người đồng
hành trong suốt khóa học và có nhiều góp ý bổ ích cho chúng em. Cảm ơn gia đình,
bạn bè đã quan tâm và động viên giúp chúng em có nghị lực phấn đấu để hoàn thành
tốt báo cáo này.
GIỚI THIỆU
Trong nền kinh tế số ngày nay, hầu hết các doanh nghiệp và cá nhân đều phụ thuộc
vào mạng máy tính và hệ thống thông tin để xử lý và lưu trữ dữ liệu . Không chỉ các
doanh nghiệp hiện đại đang chuyển đổi nội dung trên giấy của họ thành các hình thức kỹ
thuật số mà còn tạo ra các mô hình kinh doanh mới dựa trên tài sản kỹ thuật số.
Facebook, Netflix và các công ty tương tự là những ví dụ điển hình về các doanh nghiệp
hiện đại như vậy. Song song với sự bùng nổ mạnh mẽ của công nghệ thông tin, dữ liệu
và sự phát triển của Internet toàn cầu là các nguy cơ mất an toàn thông tin đang trở
nên trầm trọng và nguy hiểm hơn, trong đó mã độc hại đang là các hiểm họa hàng đầu
bởi khả năng có thể lây lan phát tán trên các hệ thống máy tính và thực hiện các hành
vi tấn công bất hợp pháp. Hơn nữa, mã độc đang ngày càng tiến hóa với những biến
thể đa dạng, với những cách thức che dấu ngày càng tinh vi hơn. Theo AV-TEST[1],
tính đến tháng 5 năm 2021, tổng số phát hiện mã độc mới trên toàn thế giới lên tới
826,37 triệu và 214,37 triệu phần mềm tiềm tàng các nguy cơ mất an toàn thông tin.
Và cứ mỗi giây sẽ xuất hiện trung bình 4,9 mã độc mới. Với sự gia tăng nhanh, biến
hóa phức tạp và nhân lực hạn chế [2], phát hiện mã độc mới là một thách thức đối với các
doanh nghiệp, chính phủ và người dùng đầu cuối. Sự phụ thuộc vào phát hiện dựa trên
chữ ký đã được chứng minh là không hiệu quả với các mã độc mới hoặc các biến thể
mới. Các chuyên gia và nhà nghiên cứu đã cố gắng sử dụng các kỹ thuật học máy để phát
hiện chính xác mã độc mới.
Với sự bùng nổ mã độc yêu cầu cần có hệ thống máy tính đủ mạnh để phân tích và
tính toán trong thời gian thực giúp kịp thời nhận diện các nguy cơ an ninh mới, lúc này
một máy tính mạnh nhất hiện tại cũng không thể đủ tài nguyên như bộ nhớ ngoài, bộ nhớ
trong, năng lực tính toán để đáp ứng yêu cầu. Trong báo cáo này chúng em sẽ tiếp cận
ứng dụng kỹ thuật phân tích dữ liệu lớn vào học máy. Báo cáo xây dựng hệ thống giản
lập trên 7 máy trạm có mỗi máy trạm mỗi máy có bộ nhớ trong 6GB nhằm giải quyét bài
toán học máy yêu cầu bộ nhớ trong khoảng 18GB cho giai đoạn huấn luyện.
Trong khuôn khổ báo cáo này chúng em chỉ nghiên cứu ứng dụng thuật toán và
thư viện vào nhận diện mã độc và tính toán song song mà không đi sâu vào nghiên
cứu thuật toán. Nội dung báo cáo được chia ra làm 4 phần như sau:
Chương 1: Chương này nghiên cứu tổng quan về mã độc trình bày các kiến thức
chung nhất liên quan đến mã độc, phân loại mã độc cũng như các kỹ thuật phân tích
và phát hiện mã độc hiện nay.
Chương 2: Trình bày về thuật toán XGBoost và các ưu điểm của thuật toán cũng
như thư viện DASK.
Chương 3: Trình bày về quá trình thực nghiệm và đánh giá, các kết quả được
thực nghiệm và so sánh với các kết quả của các công trình đã công bố.
Chương 4: Tổng kết, đánh giá những kết quả đạt được cũng như những vấn đề
cần cải tiến và đề xuất hướng nghiên cứu tiếp theo.
DANH MỤC HÌNH ẢNH
Hình 2.1: Sự phát triển của thuật toán XGBoost từ cây quyết định.......................................22
Hình 2.2: Phương pháp XGBoost tối ưu hóa thuật toán GBM tiêu chuẩn............................24
Hình 2.3: XGBoost so với Các thuật toán ML khác sử dụng Bộ dữ liệu
Make_Classification của SKLearn (20 thuộc tính, 1 triệu dòng)............................................26
Hình 2.4: Mô hình hoạt động của DASK...................................................................................27
Hình 2.5: DASK Array................................................................................................................27
Hình 2.6: DASK Dataframe........................................................................................................28
Hình 2.7: Sơ đồ tác vụ trong DASK...........................................................................................29
CHƯƠNG 1: TỔNG QUAN VỀ MÃ ĐỘC
Chương này giới thiệu khái niệm về mã độc, phân loại mã độc, mục đích
phân tích mã độc và các kỹ thuật phân tích mã độc.
Các chương trình được cung cấp chính thức bởi các công ty có thể được
coi là phần mềm độc hại nếu họ bí mật hành động chống lại lợi ích của người
dùng máy tính. Ví dụ, tại một thời điểm, đĩa nhạc Compact của hãng Sony đã bí
mật cài đặt một rootkit trên máy tính người mua với đích ngăn chặn sự sao chép
bất hợp pháp nhưng đồng thời cũng thu thập thông tin về thói quen nghe nhạc
của người dùng và vô tình tạo ra các lỗ hổng bảo mật. Các giải pháp như phần
mềm antivirus, tường lữa…thường được sử dụng để kiểm tra sự tồn tại, các hoạt
động độc hại cũng như ngăn chặn phần mềm độc hại truy cập vào máy tính.
1.2.1. Virus.
Cơ chế lây nhiễm: các phương tiện mà virus lây lan, cho phép tự
nhân bản, cơ chế này gọi là vec-tơ lây nhiễm
Bộ kích khởi (trigger): sự kiện hay điều kiện mà quyết định khi nào
tải (payload) được kích hoạt
Payload: một đoạn mã được chạy trên máy nạn nhân, dùng để thực
hiện một số hoạt động phá hoại hoặc có thể liên quan đến hoạt động
lành tính nào đó nhưng đáng chú ý.
1.2.1.3. Vòng đời của Virus
Vòng đời của Virus, thường bao gồm 04 giai đoạn sau:
Giai đoạn ngủ đông: Giai đoạn này virus không hoạt động, Virus
được kích hoạt bởi một số sự kiện như: như ngày, sự có mặt của
chương trình khác hoặc tệp tin hoặc dung lượng ổ đĩa vượt quá giới
hạn. Không phải tất cả các virus đều có giai đoạn này.
Giai đoạn nhân bản: Virus sao chép bản sao của chính nó vào chương
trình khác hoặc vào các vùng của hệ thống trên ổ cứng. Bản sao của
nó có thể không giống với phiên bản lan truyền, virus thường biến
hình để tránh phát hiện. Mỗi chương trình đã bị nhiễm sẽ chứa một
bản sao của virus, bản thân virus sẽ bước vào giai đoạn nhân bản.
Giai đoạn kích hoạt: Virus sẽ được kích hoạt để thực hiện chức năng
mà nó đã dự định. Cũng như giai đoạn không hoạt động, giai đoạn
kích hoạt có thể được thực hiện bởi một loạt các sự kiện hệ thống,
bao gồm số lần bản sao của virus đã tạo ra các bản sao của chính nó.
Giai đoạn thực thi: Chức năng của virus được thực hiện, chức năng
có thể vô hại như một thông báo trên màn hình hoặc phá hoại chương
trình và các tệp dữ liệu
1.2.1.4. Phân loại virus:
Virus cơ bản được phân làm hai loại: theo loại mục đích mà virus cố gắng lây
nhiễm và theo phương pháp mà virus sử dụng để che dấu bản thân nhằm tránh phát
hiện bởi người dùng và các phần mềm chống virus. Phân loại theo mục đích bao gồm
các loại sau:
Lây nhiễm vào vùng khởi động (Boot sector infector): lây nhiễm một
bản ghi khởi động chính hoặc bản khi khởi động và lây lan khi một
hệ thống được khởi động từ đĩa chứa virus.
Lây nhiễm têp tin (file infector): lây nhiễm vào các tệp tin của hệ
điều hành hoặc shell được thực thi.
Macro virus: lây nhiễm các tệp tin với mã macro được biên dịch bởi
một ứng dụng.
Phân loại theo phương pháp mà Virus sử dụng bao gồm các loại sau:
Virus được mã hóa (Encrypted virus): phương pháp được thực hiện
như sau. Một phần của virus tạo ra một khóa mã hóa ngẫu nhiên và
mã hóa phần còn lại của virus. Khóa được lưu với virus. Khi một
chương trình bị nhiễm được gọi, virus sử dụng khóa ngẫu nhiên được
lưu trữ để giải mã virus. Khi virus nhân bản, một khóa ngẫu nhiên
khác nhau được lựa chọn. Bởi vì phần lớn virus được mã hóa bằng
một khóa khác nhau cho mỗi trường hợp dẫn đến không có mẫu bit
cố định để quan sát.
Virus tàng hình (Stealth virus): một hình thức của virus được thiết kế
để che dấu bản thân nó khỏi sự phát hiện của phần mềm chống virus.
Virus đa hình (Polymorphic virus): một loại virus biến đổi theo mọi
lây nhiễm, khiến cho việc phát hiện virus bằng chữ ký trở nên không
thể.
Virus biến hóa (Metamorphic virus): giống như một virus biến hình,
một virus biến hóa biến đổi với mọi sự lây nhiễm. Sự khác biệt là một
virus biến hóa tự viết lại hoàn toàn ở mỗi vòng lặp để tăng độ khó
phát hiện. Virus biến hóa có thể thay đổi hành vi, cũng như ngoại
hình của chúng.
1.2.2. Worm
Sâu (Worm) là một chương trình có thể tự sao chép và gửi các bản sao từ máy tính
này sang máy tính khác qua các kết nối mạng. Khi đến nơi, worm có thể được kích
hoạt và nhân bản lần nữa. Ngoài việc nhân bản, worm thường thực hiện một số chức
năng không mong muốn như thu thập thông tin hệ thống, tìm kiếm lỗ hổng bảo mật...
Worm là một loại phần mềm độc hại được ẩn náu trong máy tính, nhưng nó không
phải là virus vì nó không được nhúng vào chương trình khác.Worm lây nhiễm từ máy
tính này đến máy tính khác bằng cách khai thác lổ hổng bảo mật hoặc lỗ hổng do
chính tác giả tạo ra. Để tự nhân bản, một worm mạng sử dụng một số phương tiện
mạng như sau:
Chức năng thư điện tử (Electronic mail facility): worm thư điện tử
gửi bản sao của nó đến hệ thống khác, mã của nó được kích hoạt khi
thư điện tử hoặc tệp đính kèm nhận được hoặc xem.
Khả năng thực thi từ xa (Remote execution capability): worm thực thi
bản sao của chính nó trên hệ thống khác bằng cách sử dụng một cơ
chế thực thi từ xa hoặc bằng cách khai thác lỗ hổng chương trình của
một dịch vụ mạng để phá hủy hoạt động của chúng.
Khả năng truy cập từ xa (Remote login capability): worm đăng nhập
vào hệ thống từ xa như một người dùng, sau đó sử dụng các lệnh để
sao chép chính nó từ hệ thống này đến hệ thống khác và thực thi lệnh.
Ví dụ, một trong những sâu máy tính nổi tiếng nhất trong lịch sử máy tính có tên là
Confiker. Confiker mục tiêu tấn công vào hệ điều hành Microsoft Window, phiên bản
đầu tiên của sâu Confiker được phát hiện vào tháng 10 năm 2008 và đã lây nhiễm
hàng triệu máy tính trên thế giới. Confiker khai thác một lỗ hổng về dịch vụ mạng
được xây dựng trên hệ điều hành Window, bao gồm tất các các phiên bản từ Window
2008 đến Windows server 2008 được nhân bản qua Internet. Lỗ hổng này có tên là
MS08_067, cho phép một kẻ tấn cống thực thi mã lệnh từ xa và chiếm toàn bộ quyền
điều khiển máy tính từ xa.
1.2.3. Ransomware
Ransomware (mã độc tống tiền) gồm nhiều lớp phần mềm độc hại với
mục đích hạn chế truy cập đến hệ thống máy tính mà nó đã lây nhiễm và đòi hỏi
phải trả một khoản tiền cho kẻ tấn công nhằm xóa bỏ hạn chế truy cập mà nó đã
tạo ra trước đó. Một vài dạng của ransomware mã hóa tệp tin, dữ liệu trên ổ đĩa
cứng nhằm tống tiền, trong khi một vài dạng khác thì đơn giản hơn như chúng
khóa hệ thống lại và hiển thị một thông báo để thuyết phục nạn nhân trả tiền. Mã
độc tống tiền thường lan truyền qua email với các file đính kèm, như các virus
máy tính khác, khi mở file đính kèm này thì máy tính của người dùng sẽ bị kiểm
soát. Khi đó, mã độc quét toàn bộ ổ đĩa của máy tính và mã hóa các file bằng mã
hóa công khai. Hầu hết các tập tin quan trọng trên máy tính người dùng với định
dạng .doc, pdf, xls, zip... sẽ không mở được nữa. Để giải mã bắt buộc phải có
khóa bí bật, mà khóa bí mật chỉ có kẻ tấn công mới có và nạn nhân sẽ nhận được
thông báo trên màn hình (desktop) đòi tiền chuộc nếu muốn giải mã file. Một số
loại mã độc ransomware như sau:
Charger: mã độc này sẽ sao chép tất cả các dữ liệu từ tin nhắn dạng
text, danh bạ, nhật ký ...và tìm kiếm quyền admin từ người dùng. Nếu
người dùng chấp nhận yêu cầu của mã độc, thì phần mềm mềm độc
hại sẽ tấn công người dùng và một tin nhắn cảnh báo cho người dùng
biết là thiết bị của người dùng đã bị khóa và các dữ liệu cá nhân sẽ
được bán trên thị trường nếu người dùng không chấp nhận trả tiền
chuộc. Các nạn nhân của mã độc Charger sẽ yêu cầu phải trả khoảng
0.2 bitcoins (khoảng 8000$ USD) nếu muốn mở khóa (unblock) thiết
bị.
Jisut: Không giống như những mã độc ransomware khác thường yêu
cầu tiền chuộc thì Jisut tiếp cận theo một cách khác và không quan
tâm về sự nặc danh. Trên màn hình xuất hiện con ngựa con bao gồm
thông tin liên quan trên mạng xã hội QQ ở Trung Quốc và thuyết
phục nạn nhân liên hệ với tác giả để lấy lại các tệp tin của họ. Nếu
thông tin trên QQ là đúng thì chủ nhân của mã độc là các thanh niên
từ 16 đến 21 tuổi sẽ xuất hiện. Các biến thể đầu tiên của Jisut
Android/LockScreen xuất hiện nữa đầu năm 2014, từ thời điểm 2014
đến bây giờ đã phát hiện hàng trăm biến thể của Jisut với các hành vi
khác nhau hoặc các tin nhắn đòi tiền chuộc khác nhau nhưng tất cả
dựa trên cùng một mẫu mã độc. Khi mã độc Jisut được kích hoạt thì
nó sẽ tạo ra một màn hình hoạt động được hiện lên với đầy đủ màn
hình với màu đen, nếu người dùng thay đổi giao diện hoặc tắt, khởi
động lại thiết bị thì một thông báo sẽ được hiển thị lên hoặc một bài
hát sẽ được thực thi.
1.2.4. Trojan
Trojan là một loại phần mềm giả mạo phổ biến, chúng thường ẩn náu
trong chương trình phần mềm hữu ích để thực hiện các nhiệm vụ mong muốn và
hợp pháp nhưng thực chất là thực hiện một số chức năng độc hại như xóa file,
thu thập thông tin hệ thống và gửi cho máy chủ điều khiển, ăn cắp thông tin tài
khoản người dùng Những chức năng mong muốn và hợp pháp chỉ là phần bề mặt
giả tạo nhằm che dấu cho các thao táo độc hại. Không giống như virus, trojan
không có chức năng tự sao chép nhưng lại có chức năng phá hoại tương tự virus.
Một số dạng Trojans cơ bản như sau:
Remote Access Trojans: cho phép kẻ tấn công kiểm soát toàn bộ
hệ thống từ xa
Data-Sending Trojans: Trojan gửi thông tin nhạy cảm của nạn
nhân cho kẻ tấn công
Destructive Trojans: Trojan phá hủy hệ thống
Denied-of-Service – DoS Attack Trojan: Trojan phục vụ tấn công
Ddos
HTTP, FTP Trojans: Trojan tự tạo thành HTTP hay FTP server để
kẻ tấn công khai thác lỗi
Security Software Disable Trojan: Có tác dụng tắt tính năng bảo
mật trong các máy tính nạn nhân
1.2.5. Backdoor
Backdoor (cửa hậu) là một loại phần mềm độc hại cung cấp cho kẻ tấn
công quyền truy cập từ xa vào máy nạn nhân. Backdoor là loại phần mềm độc hại
phổ biến nhất và chúng có đủ hình dạng, kích cỡ với khả năng khác nhau. Mã
backdoor thường thực hiện đầy đủ các khả năng, vì vậy khi sử dụng backdoor kẻ
tấn công thường không cần tải thêm các phần mềm độc hại khác hoặc mã chương
trình. Backdoor thường cho phép kẻ tấn công kết nối đến máy tính từ xa với ít
quyền hoặc không cần xác thực và đi kèm với một số chức năng phổ biến như
khả năng thao tác các khóa registry, liệt kê các cửa sổ hiện thị, tạo thư mục, tìm
kiếm tập tin, truy cập từ xa bằng tài khoản riêng, thực thi lệnh hệ thống Một số
loại backdoor như sau:
Reverse Shell: là một kết nối bắt nguồn từ một máy bị nhiễm và
cung cắp quyền truy cập shell cho kẻ tấn công vào máy tính đó.
Khi ở trong reverse shell, kẻ tấn công có thể thực thi các lệnh trên
máy của nạn nhân ngay trên máy của kẻ tấn công.
RATs: công cụ quản trị từ xa (RAT) được sử dụng để quản lý các
máy tính từ xa. RAT thường được sử dụng trong các cuộc tấn
công có chủ đích với mục tiêu cụ thể, chẳng hạn như đánh cắp
thông tin.
Botnet: là tập hợp các máy chủ bị xâm nhập, được gọi là zombie,
được điểu khiển bởi máy chủ botnet. Mục tiêu của botnet là tạo ra
một mạng lưới zombie lớn để botnet phát tán mềm mềm độc hại
hoặc thực hiện tấn công từ chối dịch vụ (DDoS).
1.2.6. Rootkits
Rootkit là một bộ công cụ phần mềm do kẻ xâm nhập đưa vào máy tính
nạn nhân nhằm mục đích cho phép mình quay lại xâm nhập máy tính đó và dùng
nó cho các mục đích xấu mà không bị phát hiện. Một số mục đích của kẻ xâm
nhập khi sử dụng rootkit bao gồm:
Thu thập dữ liệu về các máy tính trong cùng mạng và thông tin
của người dùng như mật khẩu, thông tin tài chính.
Tạo hoặc chuyển tiếp spam.
Gây lỗi hoặc sai trong hoạt động của máy tính.
Rootkit được thiết kế tốt có khả năng che giấu hoặc xóa bỏ bất cứ dấu vết
nào của việc nó truy cập vào máy tính, sự tồn tại và hoạt động của nó. Ví dụ, nó
có thể sữa nhật ký (log) của hệ thống để hệ điều hành không ghi hoặc xóa bỏ tất
cả các thông tin liên quan đến việc nó đăng nhập vào máy, thông tin các lần truy
cập tiếp theo của kẻ xâm nhập, thông tin về các chương trình mà rootkit chạy.
Rootkit không phải là virus do nó không tự nhân bản và không có cơ chế hoạt
động tự chủ. Rootkit nằm hoàn toàn dưới quyền kiểm soát của kẻ tấn công.
Các mục đích của phân tích mã độc: có ba mục đích chính trong việc phân
tích mã độc bao gồm phát hiện mã độc, phân tích sự tương tự giữa các phần mềm
độc hại và phân loại các phần mềm độc hại. Chi tiết ba mục đích của phân tích
mã độc như sau:
Phát hiện mã độc nhằm mục đích phát hiện một tập tin có phải là
mã độc hay không.
Phân tích sự tương tự giữa các phần mềm độc hại nhằm mục đích
kiểm tra sự giống nhau, khác nhau giữa các phần mềm độc hại để
phát hiện biến thể của mã độc đã biết hoặc lớp mã độc mới.
Phân loại phần mềm độc hại: cho phép phân loại phần mềm độc
hại vào các nhóm phần mềm đọc hại khác nhau như nhóm virus,
rootkit...
1.4. Phương pháp phân tích mã độc
Hiện tại có một số kỹ thuật được dùng để phân tích mã độc, gồm có phân
tích tĩnh, phân tích động và phân tích lai, chi tiết các các kỹ thuật như sau:
Phân tích tĩnh là phương pháp phân tích phần mềm mà không cần thực thi
chúng. Các thông tin thu được có thể bao gồm các metadata của chương trình,
định dạng, dung lượng…các chuỗi ký tự xuất hiên trong mã nguồn, các thư viện
được thêm vào (import), các lời gọi hàm có thể được sử dụng, mã nguồn chương
trình dưới dạng Assembly…Ưu điểm của phương pháp này là có thể biết được
tất cả các khả năng thực hiện có thể của chương trình, tuy nhiên đối với mã độc
thì việc phân tích tĩnh thường gặp khó khăn do việc mã hóa (Encrypt), đóng gói
(Packed), ngụy trang (Obfuscated). Một số kỹ thuật được sử dụng cho phân tích
tĩnh bao gồm:
Phân tích động là phương pháp theo dõi, phân tích hành vi thực hiện, các
tương tác của phần mềm với môi trường thông qua việc thực thi các phần mềm
đó. Khi phân tích động mã độc cũng đồng nghĩa với việc ta phải chạy mã độc đó,
do vậy chúng ta cần có một môi trường an toàn để tránh các tác hại đối với hệ
thống cũng như bên ngoài. Hộp cát (Sandbox) là một cơ chế bảo mật để chạy các
chương trình không đáng tin cậy trong một môi trường an toàn mà không sợ làm
hệ thống "thực". Ưu điểm của phương pháp phân tích này đó là có thể theo dõi
các hành động thực sự được thực hiện bởi mã độc trong khi đối với phân tích
tĩnh, khi gặp rẽ nhánh chúng ta không thể biết mã độc sẽ đi theo nhánh nào.
Thách thức của phương pháp này là môi trường sandbox phải an toàn, tránh bị
phát hiện đồng thời phải đáp ứng được các điều kiện để mã độc bộc lộ tối đa
hành vi của mình. Có hai cách tiếp cận chính cho phương pháp phân tích động
gồm có:
Phân tích sự khác biệt giữa các thời điểm được xác định: với
phương pháp này, mẫu phần mềm độc hại đã được phân tích trong
một khoảng thời gian nhất định, sau đó thay đổi cấu hình hệ thống
và phân mềm độc hại sẽ được phân tích lại như ban đầu
Quan sát hành vi thời gian chạy: theo cách tiếp cận này, phần
mềm độc hại sẽ thực hiên các hành động độc hại được giám sát
các hành vi bằng công cụ chuyên dụng
Phân tích lai (hybrid): kỹ thuật phân tích này là sự kết hợp giữa
phân tích tĩnh và phân tích động, thường tuân theo một quy trình
đơn giản ban đầu kiểm tra bất kỳ chữ ký trong mã chương trình,
nếu phát hiện bất kỳ chữ ký nào xuất hiện thì sẽ giám sát hành vi
của mã này
1.5. Trích xuất đặc trưng và các loại đặc trưng
1.5.1. Trích xuất đặc trưng
Quá trình trích xuất đặc trưng được thực hiện bằng việc phân tích tĩnh hoặc
phân tích động hoặc cả hai loại phân tích tĩnh và phân tích động. Cách tiếp cận dựa
trên phân tích tĩnh được thực hiện bằng cách xem xét nội dung của các mẫu mã độc
mà không cần chúng thực thi (không cần chạy chương trình), trong khi cách tiếp cận
dựa trên phân tích động được thực hiện dựa trên các mẫu mã được được thực thi để
kiểm tra các hành vi của nó. Mốt số kỹ thuật có thể được sử dụng cho phân tích
động như: trình sữa lỗi (debugger) được sử dụng cho việc phân tích các lớp chỉ thị
(instruction), các bộ mô phỏng (simulators) biểu diễn và hiện thị các hành vi tương
tự như trong môi trường thật của mã độc, trong khi các bộ giả lập (emulators) nhân
bản hành vi của một hệ thống với độ chính xác cao hơn nhưng yêu cầu nhiều tài
nguyên hơn. Sandboxes là các hệ điều hành được ảo hóa cung cấp một môi trường
đánh tin cậy và cô lập để kích hoạt các mã độc. Các dấu vết thực thi (excution
traces) thường được sử dụng để trích xuất các đặc trưng khi sử dụng phân tích động.
Ngoài ra, một số công cụ và kỹ thuật khác thường được sử dụng để trích xuất đặc
như: các mã disassembly và biều đồ luồng dữ liệu (dataflow) và điều khiển
(control). Mã dịch ngược assembly là thành phần quan trọng cho việc trích xuất các
byte tuần tự (Byte sequence và Opcode), trong khi biểu đồ luồng dữ liệu và điều
khiển được sử dụng để trích xuất các lời gọi hệ thống (system calls) và API.
Chuỗi byte (bytes sequence): phân tích các chuỗi byte cụ thể trong tệp
tin nhị phân được sử dụng phổ biến trong phân tích tĩnh. Một số công
trình sử dụng chuỗi các byte với kích thước cụ thể và đa số công trình
khác sử dụng n-grams (n-grams là một chuỗi các byte).
Opcodes: opcodes xác định các hoạt động (operation) ở mức máy được
thực thi bởi một file thực thi và có thể được trích xuất thông qua phân
tích tĩnh bằng cách kiểm tra các mã assembly. Chuỗi tuần tự opcode là
một trong những đặc trưng phổ biến được sử dụng, nó đếm số lần xuất
hiện của opcode cụ thể trong assemby.
API và các lời gọi hệ thống (System calls): tương tự opcodes, API và
các lời gọi hệ thống cho phép phân tích hành vi của mã độc nhưng ở
mức cao. Chúng có thể được trích xuất bằng phân tích tĩnh hoặc phân
tích động bằng cách phân tích mã assembly được dịch ngược hoặc một
danh sách các lời gọi hệ thống. Một trong những cấu trúc dữ liệu phổ
biến để biểu diễn hành vi PE và trích xuất cấu trúc chương trình là đồ
thị luồng điều khiển (control flow graph).
Hoạt động mạng (Network activity): một số lượng lớn các thông tin
chính có thể thu được bằng cách quan sát việc tương tác mã thực thi với
mạng. Địa chỉ kết nối và lưu lượng được tạo ra có thể rất có giá trị như
kết nối với một lệnh và trung tâm điều khiển. Một số đặc trưng được sử
dụng như giao thức, cổng TCP/UDP, các yêu cầu HTTP, kết nối
DNS....
File system: các hành động của file được thực thi bởi các mã độc là
thành phần cơ bản khi thu thập chứng cứ về sự tương tác của mã độc
với môi trường, ví dụ loại file gì được thêm, sữa, xóa, thay đổi; file gì bị
nhiễm mã độc và file chưa bị nhiễm mã độc.
Các thanh ghi CPU (CPU Registers): cách các thanh ghi trong CPU
được sử dụng có thể có giá trị như thanh ghi ẩn nào được sử dụng và
các giá trị gì được lưu trong các thanh ghi, đặc biệt là các cờ (Flasgs).
Các đặc điểm file PE (PE file characteristics): phân tích tĩnh một PE có
thể mang lại tập hợp các thông tin có giá trị như các phần (sections),
các nhập (imports), các ký hiệu (symbols),
Chuỗi ký tự (Strings): một PE có thể được kiểm tra bằng cách tìm kiếm
các ký tự cụ thể như dấu hiệu tác giả, tên file, thông tin hệ thống.
CHƯƠNG 2: THUẬT TOÁN XGBOOST và DASK
Hình 2.1: Sự phát triển của thuật toán XGBoost từ cây quyết định
Thuật toán XGBoost được phát triển từ một dự án nghiên cứu tại Đại học
Washington. Tianqi Chen và Carlos Guestrin đã trình bày bài báo của họ tại Hội nghị
SIGKDD vào năm 2016 và khiến thế giới Machine Learning bùng nổ. Kể từ khi được
giới thiệu, thuật toán này không chỉ được ghi nhận là đã chiến thắng nhiều cuộc thi
trên Kaggle mà còn là động lực cho một số ứng dụng tiên tiến trong ngành. Do đó, có
một cộng đồng mạnh mẽ gồm các nhà khoa học dữ liệu đóng góp cho các dự án mã
nguồn mở XGBoost với ~ 350 cộng tác viên và ~ 3.600 cam kết trên GitHub. Thuật
toán cho thấy sự khác biệt của nó bởi các yếu tố sau:
Một loạt các ứng dụng: Có thể được sử dụng để giải quyết các vấn đề hồi quy,
phân loại, xếp hạng và dự đoán do người dùng xác định.
Tính linh hoạt: Chạy mượt mà trên Windows, Linux và OS X.
Ngôn ngữ: Hỗ trợ tất cả các ngôn ngữ lập trình chính bao gồm C ++,
Python, R, Java, Scala và Julia.
Tích hợp đám mây: Hỗ trợ các cụm AWS, Azure và Yarn và hoạt động
tốt với Flink, Spark và các hệ sinh thái khác.
Cây quyết định, ở dạng đơn giản nhất, là các thuật toán dễ hình dung và khá dễ
hiểu nhưng việc xây dựng trực giác cho thế hệ tiếp theo của các thuật toán dựa trên
cây có thể hơi phức tạp.
Giả sử bạn là người tuyển dụng đang phỏng vấn một số ứng viên có trình độ
xuất sắc. Mỗi bước phát triển của thuật toán dựa trên cây có thể được xem như một
phiên bản của quá trình phỏng vấn.
Cây quyết định: Mỗi người tuyển dụng đều có một bộ tiêu chí như trình độ
học vấn, số năm kinh nghiệm, kết quả phỏng vấn. Cây quyết định tương tự như việc
người quản lý tuyển dụng phỏng vấn các ứng viên dựa trên các tiêu chí của riêng họ.
Bagging: Bây giờ hãy tưởng tượng thay vì một người phỏng vấn duy nhất, bây
giờ có một bảng phỏng vấn nơi mỗi người phỏng vấn có một phiếu bầu. Tổng hợp
bagging hoặc bootstrap bao gồm việc kết hợp các đầu vào từ tất cả những người
phỏng vấn để đưa ra quyết định cuối cùng thông qua một quy trình bỏ phiếu dân chủ.
Rừng ngẫu nhiên: Đây là một thuật toán dựa trên tính năng đóng gói với sự
khác biệt chính, trong đó chỉ một tập hợp con các tính năng được chọn ngẫu nhiên.
Nói cách khác, mọi người phỏng vấn sẽ chỉ kiểm tra người được phỏng vấn về các
bằng cấp được lựa chọn ngẫu nhiên nhất định (ví dụ: phỏng vấn kỹ thuật để kiểm tra
kỹ năng lập trình và phỏng vấn hành vi để đánh giá kỹ năng phi kỹ thuật).
Thúc đẩy: Đây là một cách tiếp cận thay thế mà mỗi người phỏng vấn thay đổi
các tiêu chí đánh giá dựa trên phản hồi từ người phỏng vấn trước. Điều này 'tăng
cường' hiệu quả của quá trình phỏng vấn bằng cách triển khai một quy trình đánh giá
năng động hơn.
Tăng cường độ dốc: Một trường hợp tăng cường đặc biệt trong đó các lỗi
được giảm thiểu bằng thuật toán giảm độ dốc, ví dụ: các công ty tư vấn chiến lược tận
dụng bằng cách sử dụng các cuộc phỏng vấn tình huống để loại bỏ các ứng viên kém
chất lượng hơn.
XGBoost: hay còn được gọi là 'Extreme Gradient Boost'. Thuật toán kết hợp
hoàn hảo giữa các kỹ thuật ở trên nhằm tối ưu hóa phần mềm và phần cứng để mang
lại kết quả vượt trội bằng cách sử dụng ít tài nguyên máy tính hơn vày tốc độ huấn
luyện nhanh hơn.
Hình 2.2: Phương pháp XGBoost tối ưu hóa thuật toán GBM tiêu
chuẩn
Song song hóa: XGBoost tiếp cận quá trình xây dựng cây tuần tự bằng cách sử
dụng thực hiện song song . Điều này có thể xảy ra do tính chất có thể hoán đổi cho
nhau của các vòng lặp được sử dụng để xây dựng người học cơ sở; vòng lặp bên ngoài
liệt kê các nút lá của cây và vòng lặp bên trong thứ hai tính toán các đối tượng địa lý.
Việc lồng các vòng lặp này hạn chế việc song song hóa bởi vì nếu không hoàn thành
vòng lặp bên trong (đòi hỏi tính toán nhiều hơn trong hai vòng lặp), vòng lặp bên
ngoài không thể được bắt đầu. Do đó, để cải thiện thời gian chạy, thứ tự các vòng
được thay đổi cho nhau bằng cách sử dụng khởi tạo thông qua quét toàn cục tất cả các
phiên bản và sắp xếp bằng cách sử dụng các luồng song song. Công tắc này cải thiện
hiệu suất thuật toán bằng cách bù đắp bất kỳ chi phí song song nào trong tính toán.
Tỉa cây: Tiêu chí dừng việc tách cây trong khuôn khổ GBM có bản chất là
tham lam và phụ thuộc vào tiêu chí mất mát tiêu cực tại thời điểm tách. XGBoost sử
dụng tham số 'max_depth' như được chỉ định thay vì tiêu chí trước tiên và bắt đầu cắt
tỉa cây về phía sau. Cách tiếp cận 'theo chiều sâu' này cải thiện đáng kể hiệu suất tính
toán.
Tối ưu hóa phần cứng: Thuật toán này được thiết kế để sử dụng hiệu quả tài
nguyên phần cứng. Điều này được thực hiện nhờ nhận thức bộ nhớ cache bằng cách
phân bổ bộ đệm nội bộ trong mỗi luồng để lưu trữ thống kê gradient. Các cải tiến khác
như tính toán 'ngoài lõi' tối ưu hóa dung lượng ổ đĩa khả dụng trong khi xử lý các
khung dữ liệu lớn không vừa với bộ nhớ.
Quy tắc: Nó phạt mô hình phức tạp hơn thông qua cả hai Lasso (L1) và Ridge
(L2) quy tắc để ngăn chặn overfitting.
Nhận thức về độ thưa thớt: XGBoost tự nhiên thừa nhận các tính năng thưa
thớt cho đầu vào bằng cách tự động 'học' giá trị còn thiếu tốt nhất tùy thuộc vào sự
mất mát trong quá trình đào tạo và xử lý các loại mẫu độ thưa thớt khác nhau trong dữ
liệu hiệu quả hơn.
Phác thảo lượng tử có trọng số: XGBoost sử dụng thuật toán Phác thảo lượng
tử có trọng số phân tán để tìm hiệu quả các điểm phân tách tối ưu giữa các tập dữ liệu
có trọng số.
Xác thực chéo: Thuật toán đi kèm với phương pháp xác thực chéo được tích
hợp sẵn ở mỗi lần lặp, loại bỏ nhu cầu lập trình rõ ràng tìm kiếm này và chỉ định số
lần lặp thúc đẩy chính xác được yêu cầu trong một lần chạy.
Hình 2.3: XGBoost so với Các thuật toán ML khác sử dụng Bộ dữ liệu
Make_Classification của SKLearn (20 thuộc tính, 1 triệu dòng)
Ví dụ minh họa: Trong ví dụ bên dưới ở bước 1, 2, 3 máy tính mới thực thi việc xây
dựng sơ đồ tác vụ. Bước 4 hệ thống mới thực sự thực thi việc tính toán.
1. x = dask.delayed(inc)(1)
2. y = dask.delayed(inc)(2)
3. z = dask.delayed(add)(x, y)
4. z.compute()
5
5. z.visualize()
Mô hình đề xuất được huấn luyện trên cụm máy tính 8 máy tính như sơ đồ bên
dưới:
Phần mềm và thư viện sử dụng trên môi trường Anaconda 2020:
Python 3.7.7
DASK
XGBoost
NumPy
LIEF
Pandas
MatPlotLib
Scikit-Learn
Optuna
và một số thư viện khác hỗ trợ cho các thư viện ở trên
Hình 3.1: Cụm máy tính thực nghiệm
Các thông tin trong ma trận nhầm lẫn ta có các thông tin như:
TP𝑖 (True Positive): Số lượng mẫu thuộc lớp dương được phân chính xác vào lớp
dương
FP𝑖 (False Positive): Số lượng mẫu không thuộc lớp dương bị phân loại nhầm vào
lớp dương
TN𝑖 (True Negative): Số lượng các mẫu không thuộc lớp dương được phân loại đúng
FN𝑖 (False Negative): Số lượng mẫu thuộc lớp dương được phân vào lớp âm (phân
loại sai).
3.2.3 Kết quả thực nghiệm
Phần thực nghiệm, chúng em sử dụng toàn bộ 2381 thuộc tính của tập dữ liệu gốc và
huấn luyện mô hình lặp 100 vòng.
Bảng 1: So sánh kểt quả và thời gian mô hình huấn trên những số lượng máy trạm
khác nhau.
Tổng dung
Số lượng máy Thời gian huấn
Tỉ lệ phát hiện(%) lượng bộ nhớ
trạm luyện(phút)
sử dụng(GB)
Nhận xét: Từ bảng kết quả chạy trên cụm máy tính với 5 máy trạm và 7 máy trạm
với mô hình đề xuất thì kết quả cho độ chính xác như nhau và thời gian cũng tương
đương. Do vậy, việc phân chia tài nguyên trong trường hợp 7 máy trạm là lãng phí.
Phân chia tài nguyên trên cụm không có công thức nhất định, việc phân chia và tối ưu
chi phí tính toán cũng như thời gian này phụ thuộc vào từng bài toán cụ thể và từng
cụm cụ thể.
Hình 3.3: Biểu đồ giám sát hoạt động cụm máy tính DASK
Hình 3.3: Biểu đồ giám sử dụng tài nguyên trên máy trạm
CHƯƠNG 4: KẾT LUẬN
Đề tài đã trình bày một hướng tiếp cận có hiệu quả trong đó ứng dụng kỹ thuật
học máy trên cụm máy tính vào việc nhận diện và phát hiện mã độc nhằm giảm thiểu
thời gian tính toán.
https://portal.av-atlas.org/malware?
s=1ef56b5f65960fc14ee3dd8f20068779740b96c5&c=eyJrZXkiOiJuZXdNYWx3YXJ
lUGFzdDE0RGF5cyJ9 [Accessed May 12, 2021].
[5] Hyrum S. Anderson and Phil Roth. EMBER: An Open Dataset for Training
Static PE Malware Machine Learning Models. arXiv:1804.04637v2
[6] Hyrum S. Anderson and Phil Roth. EMBER2018 base line model
https://github.com/elastic/ember/blob/master/resources/ember2018-notebook.ipynb
[Accessed Mar 15, 2021].
[7] Yoshihiro Oyama, Takumi Miyashita and Hirotaka Kokubo. Identifying Useful
Features for Malware Detection in the Ember Dataset. DOI:
10.1109/CANDARW.2019.00069
[8] Michael Sikorski and Andrew Honig. Practical Malware Analysis. ISBN:
9781593272906
[9] Tianqi Chen and Carlos Guestrin. XGBoost: A Scalable Tree Boosting System.
arXiv:1603.02754v3
[10] Aarshay Jain. Complete Guide to Parameter Tuning in XGBoost with codes in
Python.
[11] Colin Galen and Robert Steele. Evaluating Performance Maintenance and
Deterioration Over Time of Machine Learning-based Malware Detection Models on
the EMBER PE Dataset. DOI: 10.1109/SNAMS52053.2020.9336538
[13] Imad Abdessadki and Saiida Lazaar. A New Classification Based Model for
Mali-cious PE Files Detection. DOI: 10.5815/ijcnis.2019.06.01
[16] Takuya Akiba, Shotaro Sano, Toshihiko Yanase, Takeru Ohta and Masanori
Koyama. 2019. Optuna: A Next-generation Hyperparameter Optimization Framework.
In KDD.