Tải bản đầy đủ (.docx) (38 trang)

Ứ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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (667.94 KB, 38 trang )

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

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
TỐ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

TP. Hồ Chí Minh, 2021


MỤC LỤC



3


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ể hồ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.
4


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 tồ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 tồ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 u cầu cần có hệ thống máy tính đủ mạnh để phân tích và
tính tố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 ngun như bộ nhớ ngồi, bộ nhớ
trong, năng lực tính tốn để đáp ứng 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.

5


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 tố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.

6


DANH MỤC HÌNH ẢNH

7


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 tố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

8



đượ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.
9


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


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 hồn tồ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
11


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 tồ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
sốt. Khi đó, mã độc qt tồ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ó
12


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
13


bộ lưu trữ của thiết bị và mã hóa các tệp tin bằng thuật tố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 sốt tồ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
14


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


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 số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à q 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
16



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à số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 tồ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 tồ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.
17


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ó:

18


 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ụ chun 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 tn 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
Q 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.
Ngồ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 tốn hoặc khn 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 tố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ự đố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 tố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 tố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 q 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 tố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 tốn kết hợp
hồ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 tốn.

Hình 2.2: Phương pháp XGBoost tối ưu hóa thuật tố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ể hố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 ngồ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 tố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 hồn thành
vịng lặp bên trong (địi hỏi tính tốn nhiều hơn trong hai vịng lặp), vịng lặp bên
ngồ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 qt tồ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 tốn bằng cách bù đắp bất kỳ chi phí song song nào trong tính tốn.
Tỉa cây: Tiêu chí dừng việc tách cây trong khn 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
tốn.
Tối ưu hóa phần cứng: Thuật tố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 tốn 'ngồ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 tố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.


×