You are on page 1of 37

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM

BÁO CÁO MÔN HỌC

PHÂN TÍCH DỮ LIỆU LỚN

Ngành: Công Nghệ Thông Tin

Giảng viên hướng dẫn: TS. Huỳnh Quốc Bảo


Học viên thực hiện:
Đinh Thị Hoài Hương - MSHV: 2041860004
Trịnh Văn Quynh - MSHV: 2041860015

TP. Hồ Chí Minh, 2021


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM

ĐỀ TÀI

ỨNG DỤNG KỸ THUẬT DỮ LIỆU LỚN CHO BÀI


TOÁN NHẬN DIỆN MÃ ĐỘC VỚI XGBOOST VÀ
DASK

Ngành: Công Nghệ Thông Tin

Giảng viên hướng dẫn: TS. Huỳnh Quốc Bảo


Học viên thực hiện: Trịnh Văn Quynh
MSHV: 2041860015

TP. Hồ Chí Minh, 2021


MỤC LỤC

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.

1.1. Giới thiệu về mã độc


Mã độc (tên tiếng anh là malware – được viết tắt từ malicious software) là
loại phần mềm bất kỳ được thiết kế có mục đích để gây tổn hại cho một máy
tính, máy chủ, máy khách hoặc mạng máy tính. Các chương trình độc hại này có
thể thực hiện nhiều chức năng, bao gồm ăn cắp, mã hóa hoặc xóa dữ liệu nhạy
cảm, thay đổi hoặc chiếm đoạt các chức năng tính toán lõi và giám sát hoạt động
máy tính của người dùng mà không được sự cho phép của họ. Mã độc chỉ gây
thiệt hại sau khi được cấy hoặc đưa vào máy tính mục tiêu và có thể ở dạng mã
lệnh thực thi, tập lệnh, nội dung hoạt động và phần mềm khác. Mã độc có mục
đích xấu, hoạt động trái phép với người dùng máy tính bình thường vì vậy mã
độc không bao gồm phần mềm gây ra tác hại vô ý do một số thiếu sót liên quan
đến lỗi phần mềm.

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. Phân loại mã độc


Có nhiều cách tiếp cận khác nhau để phân loại mã độc thành một số loại
nhật định với các đặc điểm cụ thể như: tính nhân bản, sự nhiễm độc, tàng hình,
lệnh và điểu khiển (C&C), các kỹ thuật che dấu, tập hợp các hành vi
được thể hiện trong quá trình chạy trên hệ điều hành. Hơn nữa, ngày càng khó
xác định các phần mềm độc hại vì ngày nay tác giả của phần mềm độc hại có thể
dễ dàng tiếp cận mã nguồn của một số mẫu phần mềm độc hại và kết hợp các
chức năng của chúng để tạo ra các mẫu mới có cơ chế tự mở rộng khả năng và
nhỏ gọn hơn. Mặc dù không có sự thống nhất chung về việc phân loại phần mềm
độc hại, các loại phần mềm độc hại dựa trên mục đích và hành vi của chúng có
thể được phân loại như sau:

1.2.1. Virus.

1.2.1.1. Khái niệm


Virus máy tính là một loại phần mềm độc hại phổ biến nhất, được ẩn dấu trong
một chương trình có vẻ vô hại, có thể tự tạo ra các bản sao và lây lan vào các
chương trình khác hoặc các tệp (file) khác để thực hiện một hành vi độc hại như
xóa file, sao chép nội dung, mã hóa file...

1.2.1.2. Thành phần


Một virus máy tình gồm 03 thành phần:

 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.

 WannaLocker: mã độc này là một loại khác của ransomware


Wannacry, ban đầu nhắm đến người dùng Android ở Trung Quốc và
mở rộng ra toàn thế giới. Mã độc này lây nhiễm các tệp tin (files) trên
bộ lưu trữ của thiết bị và mã hóa các tệp tin bằng thuật toát mã hóa
AES. Khi các tệp tin bị mã hóa, mã độc sẽ hiện lên một thông báo đòi
tiền chuộc tương tự như WannaCry, nó cung cấp thông tin về dữ liệu
đã được mã hóa và các khả năng đê phục hội chúng bằng ngôn ngữ
tiếng trung. WannaLocker yêu cầu số tiền chuộc là 40 Renmibi Trung
Quốc và cách liên lạc để thực hiện giao dịch chuyển tiền và khôi
phục dữ liệu.

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.

1.3. Mục đích phân tích mã độc


Khái niệm: phân tích phần mềm độc hại là quá trình xác định chức năng
và mục đích của mẫu phần mềm độc hại đã cho là virus, worm, Trojan Horse ..
hay biến thể của mã độc đã biết hoặc mã độc mới.

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:

 Kỹ thuật phát hiện dựa trên chữ ký (signature-based detection


technique) còn gọi là khớp mẫu hoặc chuỗi hoặc mặt nạ hoặc kỹ thuật
dấu vân tay. Chữ ký là một chuỗi các bit được người viết phần mềm
độc hại chèn vào chương trình ứng dụng được viết bởi những người
phát triển mã độc và cho phép nhận ra một loại mã độc cụ thể. Để phát
hiện phần mềm độc hại trong mã của chương trình, người rà soát mã
độc hại sẽ tìm kiếm một số chữ ký đã được định nghĩa trước đó trong
mã chương trình. Ví dụ, các từ khóa được tìm kiếm như địa chỉ IP, lời
gọi chương trình….
 Kỹ thuật phát hiện heuristic (heuristic detection technique) được biết
như là kỹ thuật chủ động. Có nhiều sự tương đồng giữa kỹ thuật phân
tích chữ ký số và kỹ thuật heuristic tuy nhiên có một sự khác nhau rõ
ràng của kỹ thuật phân tích heuristic là việc thay cho tìm kiềm một chữ
ký cụ thể trong đoạn mã chương trình thì người kiểm tra mã độc sẽ tìm
những lệnh và chỉ thị mà không có trong chương trình. Thuận lợi chính
của kỹ thuật này là có thể dễ dàng phát hiện ra các biến thể mới của mã
độc mà chưa được phát hiện trước đây.

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.

1.5.2. Các loại đặc trưng

Có 8 loại đặc trưng điển hình bao gồm:

 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

2.1 Giới thiệu XGBoost


XGBoost là một thuật toán Học máy tổng hợp dựa trên cây quyết định sử dụng
khung tăng cường độ dốc . Trong các bài toán dự đoán liên quan đến dữ liệu phi cấu
trúc (hình ảnh, văn bản, v.v.), mạng nơ-ron nhân tạo có xu hướng hoạt động tốt hơn
tất cả các thuật toán hoặc khuôn khổ khác. Tuy nhiên, khi nói đến dữ liệu dạng bảng
có cấu trúc vừa và nhỏ, các thuật toán dựa trên cây quyết định được coi là tốt nhất
hiện nay. Vui lòng xem biểu đồ bên dưới để biết sự phát triển của các thuật toán dựa
trên cây qua các năm.

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.

2.2 Phương pháp XGBoost tối ưu hóa hệ thống


Giải thuật Máy học tăng cường XGBoost và Gradient (GBM) đều là phương
pháp cây tổng hợp áp dụng nguyên tắc thúc đẩy những người học yếu (nói chung là
CART) sử dụng kiến trúc gradient descent. Tuy nhiên, XGBoost cải tiến dựa trên
khung GBM cơ bản thông qua việc tối ưu hóa hệ thống và cải tiến thuật toá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)

2.3 Giới thiệu DASK


Dask là một thư viện linh hoạt cho tính toán song song trong Python. Dask hỗ trợ
người lập trình chuyển từ lập trình tính toán tuần tự sang song song với rất ít thay đổi
về cách thức làm việc.
Dask gồm hai thành phần chính:
- Lập và tối ưu các tác vụ tính toán
- Sử lý dữ liệu lớn trên mảng, dữ liệu kiểu bảng, danh sách. Dask cho phép
xử lý dữ liệu lớn hơn bộ nhớ trong hoặc mở rộng xử lý dữ liệu trên môi
trường phân tán.
Dask phát triển tập trung vào một số tính chất sau:
Quen thuộc: Cung cấp các hàm, thủ tục trên môi trường song song tương tự
như làm việc với đối tượng mảng NumPy và dữ liệu kiểu bảng Pandas trên môi
trường tuần tự.
Linh hoạt: Cung cấp giao diện lập kế hoạch và có khả năng tủy chỉnh cho các
tác vụ cũng như khả năng dễ dàng tích hợp với các dự án khác.
Hỗ trợ sâu: Cho phép tính toán phân tán trong Python với quyền truy cập vào
ngăn xếp PyData
Nhanh: Chi phí tính toán cho hệ thống thấp, độ trễ thấp và tối thiểu thời gian đồng bộ
cho các thuật toán số học
Khả năng mở rộng: Có khả năng mở rộng thành cụm máy tính có tổng số đơn vị tính
toán lên đến1000 nhân
Khả năng thu hẹp: Có thể cài đặt và triển khai trên máy tính cá nhân chỉ có một CPU
Khả năng đáp ứng: Được thiết kế với tính toán tương tác, nó cung cấp phản hồi và
chẩn đoán nhanh chóng để hỗ trợ người dùng.

Hình 2.4: Mô hình hoạt động của DASK

2.4 DASK Array


Dask Array hoạt động trên các mảng rất lớn, bằng cách chia chúng thành các khối
và thực thi các khối đó song song.

Hình 2.5: DASK Array


2.5 DASK DataFrame
Một Dask DataFrame được hiểu là một DataFrame lớn gồm có nhiều Pandas
DataFrames nhỏ hơn phân chia theo chỉ mụ. Mỗi tác vụ trên Dask DataFrame sẽ yêu
cầu các tác vụ trên các Pandas DataFrames con tương ưng. Nói một cách đơn giản thì
một Dask DataFrame thì được tạo thành từ nhiều Pandas DataFrames và có khả năng
lưu trữ phân tán trên nhiều máy trạm trong cụm.

Hình 2.6: DASK Dataframe

2.6 DASK Bag


Dask Bag có thể được hiểu là các tính toán song song trên một tập lớn các đối
tượng của Python mà tập các đối tượng này thông thường không vừa với bộ nhớ
trong. Bag thường được chọn để xử lý các data liên quan đến dữ liệu nhật ký hệ thống
hoặc các định dạng json.

2.7 DASK Delay


Hỗ trợ việc song song hóa các tác vụ bằng cách xây dựng sơ đồ tác vụ trước rồi
mới thực thi tác vụ khi được yêu cầu.
Hình 2.7: Sơ đồ tác vụ trong DASK

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()

2.8 DASK Futures


Dask future hỗ trợ mở rộng thư viện concurrent.futures của Python. Thư viện này rất
tốt cho việc lập lịch tác vụ tùy ý như dask.delayed, nhưng các tác vụ thực hiện ngay
lập tức thay vì thực hiện khi được yêu cầu, mang lại một số tính linh hoạt hơn trong
các tình huống mà việc tính toán yêu cầu trong thời gian thực.

CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ

3.1 Dữ liệu thực nghiệm


Báo cáo sử dụng bộ dữ liệu kiểm tra trong EMBER [3] với 200 ngàn mẫu được
phân chia thành 2 bộ dữ liệu cho huấn luyện và kiểm tra. Bộ dữ liệu huấn luyện bao
gồm 160 ngàn mẫu trong đó 80 ngàn mẫu được gán nhãn là mã độc, 80 ngàn mẫu
được gán nhãn là lành tính và 40 ngàn mẫu còn được sử dụng cho tập kiểm tra.

3.2 Chương trình thực nghiệm


3.2.1 Môi trường cài đặt

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

3.2.2 Đánh giá hiệu quả thuật toán


Trong phạm vi của báo cáo này chúng em áp dụng phương pháp ma trận nhầm lẫn
(confusion maxtrix) để đánh giá hiệu quả của mô hình.

Lớp được dự đoán bởi hệ thống


Lớp 𝐶𝑖
Lành tính Mã độc
Lành tính 𝑇𝑃𝑖 𝐹𝑁𝑖
Phân lớp thực sự (đúng)
Mã độc 𝐹𝑃𝑖 𝑇𝑁𝑖

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)

5 97.67 15.3 4.5


7 97.67 17.9 4.5

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.2: Biểu đồ đường cong ROC


Hình 3.2: Ma trận hỗ loạn đã chuẩn hóa

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.

 Các kết quả chính đạt được của báo cáo:


- Tìm hiểu về mã độc các phương pháp phân tích, phân loại và phát hiện mã độc
- Trình bày ứng dụng thuật toán XGBoost trong bài toán phân lớp
- Trình bày ứng dụng thư viện DASK trong bài toán tính toán song song cho mô hình
phân lớp.
- Nghiên cứu và thực hiện việc ứng dụng kỹ thuật học máy vào giải quyết bài toán
phát hiện mã độc.
- Tiến hành thực nghiệm và đánh giá, so sánh các kết quả giữa các phân cụm.

 Hướng phát triển tiếp theo của nghiên cứu:


Mở rộng phương pháp với nhiều hướng tiếp cận phân tích mã độc hơn như phân
tích động, phân tích dựa trên kinh nghiệm từ đó phối hợp với các thuật toán học máy
vào quá trình xây dựng các hệ thống có khả năng tự động nhận diện với đa dạng mã
độc một cách chính xác, đồng thời tiếp tục nghiên cứu, phối hợp phát triển và áp dụng
nhiều hơn các kỹ thuật trích chọn đặc trưng nhằm nâng cao hiệu quả hiệu suất của mô
hình dự đoán. Thực hiện kiểm tra tính chính xác của mô hình với mẫu mã độc hoàn
toàn mới trong môi trường thật.
TÀI LIỆU THAM KHẢO

[1] AVTest, 2021. Malware Statistics by AV-test.org.

https://portal.av-atlas.org/malware?
s=1ef56b5f65960fc14ee3dd8f20068779740b96c5&c=eyJrZXkiOiJuZXdNYWx3YXJ
lUGFzdDE0RGF5cyJ9 [Accessed May 12, 2021].

[2] The (ISC)² Cybersecurity Workforce Study

https://www.isc2.org/Research/Workforce-Study# [Accessed May 12, 2021].

[3] Elastic Malware Benchmark for Empowering Researchers


https://github.com/elastic/ember [Accessed Jan 10, 2021].

[4] VirusShare is a repository of malware samples

http://tracker.virusshare.com:6969/ [Accessed Mar 01, 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

[12] Hoda El Merabet. A First Approach to Malware Detection using Residual


Networks. ISSN 1737-930X

[13] Imad Abdessadki and Saiida Lazaar. A New Classification Based Model for
Mali-cious PE Files Detection. DOI: 10.5815/ijcnis.2019.06.01

[14] Jason Brownlee. Master Machine Learning Algorithms

[15] XGBoost Documentation. https://xgboost.readthedocs.io/en/latest/ [Accessed


Feb 10, 2021].

[16] Takuya Akiba, Shotaro Sano, Toshihiko Yanase, Takeru Ohta and Masanori
Koyama. 2019. Optuna: A Next-generation Hyperparameter Optimization Framework.
In KDD.

[17] DASK Documentation. https://distributed.dask.org/en/latest/ [Accessed Aug


10, 2021].

[18] Danny Meijer, Mastering Big Data Analytics with PySpark.


https://www.packtpub.com/product/mastering-big-data-analytics-with-pyspark-
video/9781838640583. [Accessed Aug, 2021].

You might also like