Tải bản đầy đủ (.pdf) (20 trang)

Luận văn Thạc sĩ Hệ thống thông tin: Ứng dụng mô hình học máy trong phát hiện nguy cơ mã độc trên nền tảng Android - TRƯỜNG CÁN BỘ QUẢN LÝ GIÁO DỤC THÀNH PHỐ HỒ CHÍ MINH

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 (359.88 KB, 20 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>LỜI CAM ĐOAN </b>


Tôi xin cam đoan các kết quả nghiên cứu trong luận văn này là sản
phẩm của cá nhân tôi dưới sự hướng dẫn của thầy giáo PGS. TS. Phạm
Thanh Giang. Các số liệu, kết quả được cơng bố là hồn tồn trung thực.
Những nội dung trình bày trong luận văn này là do tôi nghiên cứu, tổng
hợp từ nhiều nguồn tài liệu khác nhau. Các tài liệu tham khảo có xuất xứ
rõ ràng, và được trích dẫn đầy đủ, hợp pháp.


Tơi xin hồn tồn chịu trách nhiệm trước lời cam đoan của mình.


<i>Hà Nội, ngày tháng 9 năm 2020 </i>


<b>Người cam đoan </b>


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>LỜI CẢM ƠN </b>


Lời đầu tiên, tôi xin được gửi lời biết ơn sâu sắc tới thầy giáo PGS.
TS. Phạm Thanh Giang, Trưởng phòng Tin học viễn thông, Viện Công
nghệ thông tin, Viện Hàn lâm Khoa học và Công nghệ Việt Nam người
thầy đã ln khuyến khích, tận tình chỉ bảo, hướng dẫn và hỗ trợ tơi trong
suốt q trình nghiên cứu.


Tôi xin dành lời cảm ơn chân thành tới các thầy cô giáo của Viện
Công nghệ thông tin đã tận tình đào tạo, cung cấp cho tơi những kiến thức
vô giá, tạo điều kiện tốt nhất cho tôi trong q trình học tập, nghiên cứu.
Tơi cũng xin gửi lời cảm ơn tất cả những người thân yêu trong gia
đình tơi cùng tồn thể bạn bè, đặc biệt là bạn Nguyễn Việt Đức, cán bộ
Phòng Tin học viễn thông, Viện Công nghệ thông tin đã ln giúp đỡ,
động viên tơi những khi khó khăn, trở ngại.



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>MỤC LỤC </b>


LỜI CAM ĐOAN ... i


LỜI CẢM ƠN ... ii


MỤC LỤC ... iii


DANH MỤC CÁC KÝ HIỆU VIẾT TẮT ... iv


DANH MỤC CÁC BẢNG BIỂU ... v


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ... vi


MỞ ĐẦU ... 1


CHƯƠNG 1. TỔNG QUAN ... 4


1.1. NGHIÊN CỨU LIÊN QUAN ... 4


1.2. GIỚI THIỆU VỀ NỀN TẢNG ANDROID ... 5


1.2.1. Lịch sử hình thành và phát triển ... 5


1.2.2. Một số phương pháp lây nhiễn mã độc trên nền tảng Android . 8
1.3. PHÂN TÍCH MÃ ĐỘC ... 9


1.3.1. Các phương pháp phân tích mã độc trên Android ... 10


1.3.2. Ưu và Nhược điểm của phân tích tĩnh và phân tích động ... 16



1.4. GIỚI THIỆU VỀ HỌC MÁY ... 17


1.4.1. Phân loại các thuật toán học máy ... 19


1.4.2. Giới thiệu một số thuật toán học máy hiệu quả với bài toán ... 20


CHƯƠNG 2. ỨNG DỤNG MƠ HÌNH HỌC MÁY TRONG PHÁT HIỆN
NGUY CƠ MÃ ĐỘC TRÊN NỀN TẢNG ANDROID ... 25


2.1. PHƯƠNG PHÁP THU THẬP DỮ LIỆU THÔ ... 25


2.1.1. Thu thập dữ liệu ... 25


2.1.2. Giải thích cấu tạo file APK ... 25


2.1.3. Thực hiện dịch ngược file APK để lấy thuộc tính với apktool 28
2.1.4. Trích xuất feature từ dữ liệu thô được dịch ngược từ apktool . 30
2.2. PHƯƠNG PHÁP CHUẨN HĨA TẬP THUỘC TÍNH ... 31


2.2.1. Tập thuộc tính ... 31


2.2.2. Chuyển dữ liệu sang khơng gian vector ... 34


CHƯƠNG 3. ĐỀ XUẤT MƠ HÌNH, ĐÁNH GIÁ ... 37


CHƯƠNG 4. KẾT LUẬN ... 45


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>DANH MỤC CÁC KÝ HIỆU VIẾT TẮT </b>



<b>KÝ HIỆU </b> <b>Ý NGHĨA </b>


OS Operating system – Hệ điều hành
APK Android Package Kit


FN False Negative
FP False Positive
TN True Negative


TP True Positive


FNR False Negative Rate
FPR False Positive Rate
TNR True Negative Rate


TPR True Positive Rate


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<b>DANH MỤC CÁC BẢNG BIỂU </b>


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<b>DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ </b>


Hình 2.1. Sơ đồ quy trình học máy cơ bản ... 18


Hình 2.2. Mơ hình phân lớp nhị phân của SVM ... 21


Hình 3.1. Cách đóng gói file APK ... 28


Hình 3.2. Thư mục chứa dữ liệu giải nén từ file APK ... 29


Hình 3.3. Biểu đồ F1 – Score của các thuộc tính S1 đến S8 ... 39



Hình 3.4. Biểu đồ Accuracy của các thuộc tính S1 đến S8 ... 39


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<b>MỞ ĐẦU </b>


Ngày nay cùng với sự phát triển mạnh mẽ của công nghệ thông tin
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 nguy hiểm và khó lường hơn, trong đó mã độc hại
(malware) là một trong những mối hiểm họa nghiêm trọng trên Internet.
Mã độc ngày càng tiến hóa với những biến thể đa dạng từ virus máy tính,
worm, botnet…với các hình thức xâm nhập, che dấu ngày càng tinh vi.
Số lượng và hình thái đa dạng của mã độc ngày càng tăng, trong khi các
phần mềm phịng chống mã độc khơng thể phát hiện, ngăn chặn được hết
dẫn đến hàng triệu máy tính bị nhiễm mã độc. Ở Việt Nam, theo số liệu
thống kê của BKAV thì năm 2017 có đến 15 triệu máy tính ở Việt Nam
bị nhiễm mã độc tương ứng thiệt hại khoảng 12.300 tỷ đồng. Ngoài ra,
ngày nay để phát triển một mã độc mới không yêu cầu nhiều kỹ năng cao
do tính sẵn có các cơng cụ tấn cơng trên internet. Tính sẵn sàng cao của
các kỹ thuật chống phát hiện cũng như khả năng mua phần mềm độc hại
trên thị trường chợ đen dẫn đến cơ hội trở thành một kẻ tấn công cho bất
kỳ ai, không phụ thuộc vào cấp độ kỹ năng và trình độ chun mơn. Do
đó, bảo vệ hệ thống máy tính khỏi các phần mềm độc hại trên Intenet là
một trong những nhiệm vụ quan trọng nhất về an ninh mạng cho người
dùng, doanh nghiệp. Một cuộc tấn cơng đơn lẻ có thể dẫn đến dữ liệu bị
xâm phạm và gây ra những hậu quả to lớn. Sự mất mát lớn và các cuộc
tấn công thường xuyên đặt ra yêu cầu cần thiết phải có các phương pháp
phát hiện chính xác và kịp thời.


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

nên vấn đề an tồn, bảo mật nói chung và mã độc nói riêng trong hệ thống
Android ln là chủ đề nóng.



Phát hiện mã độc là một bước quan trọng để có thể ngăn chặn và
tiêu diệt hồn tồn mã độc ra khỏi thiết bị hoặc hệ thống mạng; khôi phục
lại hiện trạng của thiết bị, hệ thống mạng; truy tìm nguồn gốc tấn cơng.
Hầu hết mã độc ở dạng các chương trình, dịch vụ khơng thể đọc thơng
thường. Các cách phát hiện mã độc chính là: sử dụng các công cụ và các
kĩ thuật phân tích. Có hai kĩ thuật phân tích chính là Phân tích tĩnh (khơng
cần chạy mã độc trong hệ thống) và Phân tích động (thực hiện khi mã độc
chạy trong hệ thống).


Học máy là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc
nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động
từ dữ liệu để giải quyết những vấn đề cụ thể.


Ứng dụng học máy trong phát hiện mã độc là chủ đề đang thu hút
nhiều sự quan tâm trong thời gian qua; khắc phục những nhược điểm của
các phương pháp so sánh mẫu dựa trên cơ sở dữ liệu mã độc được xây
dựng và định nghĩa từ trước là khơng có khả năng phát hiện ra các mẫu
mã độc mới, số lượng dữ liệu mã độc ngày càng gia tăng làm cho cơ sở
dữ liệu mẫu trở nên ngày càng lớn.


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9></div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<b>CHƯƠNG 1. TỔNG QUAN </b>
1.1. NGHIÊN CỨU LIÊN QUAN


Hiện nay, nhằm thay thế phương pháp đối chiếu chữ ký số cũ với
những hạn chế trong việc xử lý các mẫu mã độc mới, các nghiên cứu
thường tập trung phân tích sâu hơn vào mỗi tập tin apk để tìm ra đặc điểm
riêng. Hai cơ chế chính là cơ chế phân tích tĩnh và cơ chế phân tích động.
Trong đó, cơ chế thứ nhất là phương pháp trích xuất đặc trưng từ mã
nguồn của tập tin cài đặt. Cơ chế còn lại là thu thập các luồng thông tin


nhập xuất trong thời gian thực thi của ứng dụng. Các đặc trưng được rút
ra từ hai phương pháp này chính là thuộc tính đầu vào của phương pháp
học máy[1].


Crowdroid, AMDA và MADAM nằm trong số các cơng trình nghiên
cứu thực hiện phát hiện phần mềm độc hại android thơng qua cơ chế phân
tích động. Trình theo dõi Crowdroid ghi lại tất cả cuộc gọi hệ thống và
sử dụng các kỹ thuật phân cụm để xây dựng mơ hình phân loại. AMDA
chỉ tập trung theo dõi các hành vi lành tính qua15 lệnh gọi hệ thống để
nhận biết mã độc. MADAM đã đề xuất một khung phát hiện kết hợp các
tính năng ở cấp lõi và cấp ứng dụng MADAM nhận thấy rằng có 11 lệnh
gọi hệ thống ở cấp độ kernel có thể mô tả tốt nhất hành vi của thiết bị.
Tuy nhiên, các đặc trưng được rút ra từ phân tích động thường rất tốn
kém và thiếu tính khái quát.


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

đạt số lượng nhỏ là 29. Cũng với sử dụng 3 bộ thuộc tính như bài báo
nhưng Drebin đã mở rộng chúng thành 8 bộ thuộc tính chi tiết hơn (quyền,
thành phần ứng dụng, bộ lọc intent, kết nối phần cứng, hàm API bị hạn
chế, quyền thực dụng, API đáng ngờ, địa chỉ mạng). Có thể thấy 8 bộ
thuộc tính này là rất phong phú và đầy đủ để chúng tối sử dụng và tiến
hành so sánh và đánh giá.


1.2. GIỚI THIỆU VỀ NỀN TẢNG ANDROID
<b>1.2.1. Lịch sử hình thành và phát triển </b>


Hệ điều hành Android cách đây 13 năm bởi Andy Rubin, người
sáng lập công ty Android .Inc năm 2003. Hiện nay, nó đã trở thành hệ
điều hành di động phổ biến nhất trên thế giới, đánh bại nhiều đối thủ như
Symbian, BlackBerry, Palm OS, webOS và Windows Phone[3]. Ban đầu,
Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux do


công ty Android Inc. Năm 2005, Android Inc. được google mua lại và
phát triển.


Tháng 11 năm 2007, hàng điện thoại và khai thác mạng không dây
TMobile của Mỹ công bố chiếc điện thoại Android đầu tiên mang tên
TMobile G1. Cùng thời điểm, Google công bố ra mắt phiên bản Android
SDK release Candidate 1.0.


Cuối năm 2008, Google cho ra mắt một thiết bị cầm tay tên là
Android Dev Phone 1 có khả năng chạy các ứng dụng Android độc lập
mà không bị ràng buộc với các nhà cung cấp mạng điện thoại di động như
T-Mobie. Đồng thời, Google phát hành bản vá lỗi Android 1.1.


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

và cho phép bên thứ ba phát triển bàn phím. Đây cũng là phiên bản đầu
tiên Google đặt tên riêng cho phiên bản của Android theo tên các loại
bánh kẹo.


Tháng 9/2009, Google nhanh chóng tung ra Android 1.6 Donut.
Cập nhật quan trọng nhất trong phiên bản này là việc hỗ trợ cho các nhà
mạng sử dụng mạng CDMA. Điều này đã thúc đẩy việc các điện thoại
Android có thể vươn ra trên toàn cầu.


Tháng 10/2009, Android 2.0 Eclair được cập nhật. Đây là phiên bản
đầu tiên tính năng chuyển văn bản thành giọng nói (Text – to – speech)
được đưa vào cùng nhiều tính năng, cải tiến khác.


Tháng 5/2010, Android 2.2 Froyo được ra mắt. Các cập nhật đáng
chú ý của phiên bản này là tính năng phát sóng di động Wi-Fi, hỗ trợ
flash, Android Cloud.



Tháng 9/2010, Android 2.3 Gingerbread được google tung ra. Cho
đến nay, đây là phiên bản thấp nhất Google còn liệt kê trong các phiên
bản cập nhật. NFC lần đầu tiên được đưa vào Android. Đây cũng là phiên
bản đặt nền móng cho việc chụp ảnh selfie, hỗ trợ nhiều camera, hỗ trợ
Google Talk.


Tháng 02/2011, Android 3.0 Honeycomb được giới thiệu. Đây là
phiên bản Google tập trung phát triển dành cho máy tính bảng hoặc các
thiết bị di động có màn hình lớn.


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

phản hồi cảm ứng được cải thiện rất nhiều. Tính năng chụp hình HDR và
kết nối Miracast cũng được hỗ trợ.


Tháng 9/2013, Android 4.4 Kitkat xuất hiện. Kitkat khơng thật sự
có nhiều tính năng nổi trội mới nhưng đây là phiên bản được tối ưu hóa
để chạy trên các smartphone với chỉ 512MB Ram. Điều này cho phép các
nhà sản xuất cài đặt Kitkat trên các điện thoại chi phí thấp hơn, góp phần
tích cực vào việc phổ biến Android trên toàn thế giới.


Tháng 9/2014, Android 5.0 Lollipop ra mắt đánh dấu một bước thay
đổi lớn về giao diện Hệ điều hành. Trong phiên bản này, ngôn ngữ
Material Design của Google được sử dụng, nổi bật với các hiệu ứng ánh
sáng và bóng tối tự do.


Tháng 10/2015, Android 6.0 Marshmallow được phát hành. Nó bao
gồm nhiều tính năng mới như: Google Now trên Tap, ngăn kéo ứng dụng
di chuyển dọc, mở khóa bằng phương pháp sinh trắc học, hỗ trợ USB
Type-C, tích hợp Android Pay, và nhiều tính năng hơn nữa.


Tháng 8/2016, Android 7.0 Nougat được tung ra. Một số tính năng


mới trong phiên bản này gồm các chức năng đa tác vụ tốt hơn đối với
điện thoại thơng minh có màn hình lớn như chia màn hình và việc chuyển
đổi nhanh giữa các ứng dụng.


Tháng 3/2017, Android 8.0 Oreo được công bố. Hệ điều hành được
bổ sung, nâng cấp nhiều thay đổi trực quan trong menu Cài đặt. Ngồi ra,
Oreo cịn hỗ trợ chế độ ảnh-trong-ảnh, các kênh thông báo, API tự động
điền mới để quản lý mật khẩu và điền dữ liệu tốt hơn.


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

Tháng 9/2019, Android 10.0 chính thức phát hành. Khơng giống
các phiên bản trước đây, phiên bản 10.0 này Google không sử dụng tên
các loại bánh kẹo, được sắp xếp theo alphabet như trước đây nữa. Android
10.0 ra mắt đi kèm nhiều tính năng mới như chế độ tối toàn diện, thao tác
điều hướng mới, tăng cường bảo mật và riêng tư, chế độ Focus Mode, tối
ưu cho các sản phẩm màn hình gập.


Android đã có một chặng đường dài phát triển và hồn thiện. Đến
nay, Hệ điều hành Android đang trở nên phổ biến nhất thế giới, tiếp cận
đến đầy đủ các đối tượng khách hàng, phân khúc khác nhau. Bằng chất
lượng, tính đa dạng của mình, Android chắc chắn sẽ còn phát triển hơn
nữa trong tương lai, phổ biến sâu, rộng hơn trong các thiết bị điện tử,
không chỉ đối với điện thoại thông minh.


<b>1.2.2. Một số phương pháp lây nhiễn mã độc trên nền tảng </b>
<b>Android </b>


Từ năm 2015 đến nay, mỗi ngày thế giới phát hiện thêm khoảng
230.000 chương trình, phần mềm độc hại[4]. Phần mềm độc hại có hành
vi nguy hiểm, có thể bao gồm cài đặt phần mềm mà không cần sự đồng ý
của người dùng. Người dùng đôi khi không nhận ra rằng các tệp có thể


tải xuống của họ là phần mềm độc hại, do đó các tệp này có thể được vơ
tình lưu trữ.


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

ứng dụng mới và đưa ra thị trường ứng dụng Android chính thức hoặc
của bên thứ ba. Người dùng có thể dễ dàng cài đặt các ứng dụng này do
bị dụ dỗ để tải về và cài đặt các ứng dụng bị nhiễm mã độc. Đã có khoảng
86,0% ứng dụng hợp pháp bị đóng gói lại bao gồm cả các mã độc hại sau
khi phân tích hơn 1.200 mẫu phần mềm độc hại Android [5].


<b>- Khai thác các lỗ hổng trên ứng dụng Android: Có thể là một </b>
lỗi trong các ứng dụng của người dùng. Những kẻ tấn cơng có thể sử dụng
lỗ hổng này để xâm nhập vào điện thoại và cài đặt phần mềm độc hại trên
thiết bị.


<b>- Ứng dụng giả mạo: Có những ứng dụng giả mạo là các phần mềm </b>
độc hại cho phép kẻ tấn công truy cập vào thiết bị di động của bạn. Những
kẻ tấn công tải lên trên thị trường ứng dụng các ứng dụng giả mạo là các
phần mềm chứa mã độc của kẻ tấn cơng. Ví dụ: Kẻ tấn cơng tải lên một
phần mềm có tên Facebook nhưng thực tế đó lại là phần mềm do kẻ tấn
cơng viết và có chứa mã độc trong đó.


<b>- Cài đặt từ xa: Các phần mềm độc hại có thể được cài đặt từ xa </b>
lên điện thoại của người dùng. Nếu kẻ tấn cơng có thể lấy được các thông
tin của người sử dụng và vượt qua chúng trên chợ ứng dụng, sau đó trong
trường hợp này, các phần mềm độc hại sẽ được cài đặt vào thiết bị mà
không cần sự can thiệp từ phía người dùng[6]. Ứng dụng này sẽ chứa mã
độc hại cho phép kẻ tấn công truy cập dữ liệu cá nhân như danh sách liên
lạc, tin nhắn,...


1.3. PHÁT HIỆN MÃ ĐỘC



</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

dụng máy,... Bất kỳ phần mềm nào cũng bị xem là mã độc nếu có một
trong biểu hiện như phá hoại, thay đổi trái phép, phá vỡ hoặc làm mất
tính bảo mật, tồn vẹn của dữ liệu người dùng.


Tùy thuộc hình thức, cơ chế hoạt động, lây lan và kiểu phá hoại mà
phân loại các kiểu mã độc như: spyware, virus, backdoor, trojan,
adware,...


Ngày nay, Internet phát triển mạnh mẽ tạo điều kiện cho việc tiếp
cận có chủ đích và tạo ra mã độc càng trở nên dễ dàng hơn mà không cần
các kiến thức quá sâu về công nghệ thông tin[7]. Chính vì vậy, thách thức
bảo vệ an tồn, an ninh thông tin trước bị đổi mới, biến thể không ngừng
của mã độc càng trở nên khó khăn.


<b>1.3.1. Các phương pháp phát hiện mã độc trên Android </b>


Phát hiện mã độc là một bước quan trọng trong để có thể ngăn chặn
và tiêu diệt hồn tồn mã độc ra khỏi máy tính và hệ thống mạng; khơi
phục lại hiện trạng của mạng như ban đầu; truy tìm nguồn gốc tấn cơng.


Trước tiên cần xác định được chính xác chuyện gì đã xảy ra với
tồn bộ hệ thống, tìm được tồn bộ các thiết bị, tệp, ứng dụng đã bị lây
nhiễm.


Trong quy trình phát hiện mã độc, chúng ta cần xác định được chính
xác những gì mã độc có thể thực hiện, cách thức phát hiện mã độc trong
hệ thống mạng, phương pháp đo lường thiệt hại nó có thể gây ra. Và quan
trọng nhất cần tìm ra qui luật đặc trưng (Mã nhận diện – signatures) để
nhận diện mã độc, diệt mã độc và khôi phục hệ thống.



</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

+ Phân tích tĩnh (Phân tích mà khơng cần mã độc chạy trong hệ
thống): Thực hiện việc dịch ngược mã độc bằng các công cụ
Disassembler, xem nội dung và cấu trúc[8] mã nguồn để xác định xem
mã độc làm gì. Đặc trưng của phương pháp này yêu cầu kiến thức về dịch
ngược, hệ thống, tập lệnh.


+ Phân tích động (Phát hiện mã độc chạy thật trong hệ thống): Sử
dụng các trình debugger để nghiên cứu và xem cách thức thực thi của mã
độc trong môi trường thật. Từ đó trích xuất thơng tin chi tiết về mã độc:
nguồn gốc, cách thức lây nhiễm, các đoạn mã, các hàm quan trọng. Để có
thể thực hiện được phương pháp này cần trang bị kiến thức chuyên sâu
về kĩ thuật, thành thạo việc sử dụng các cơng cụ và nhiều kĩ năng để có
thể vượt qua các kĩ thuật của mã độc.


<b>Một số quy tắc chính khi phân tích mã độc: </b>


- Khơng nên tập trung quá vào những tiểu tiết, hầu hết các mã độc
đều có lượng mã nguồn rất lớn, phức tạp và có chứa nhiều mã rác. Do đó,
chúng ta nên tập trung vào các tính năng chính để tránh mất nhiều thời
gian chi tiết hóa các thơng tin không cần thiết.


- Mỗi công cụ hỗ trợ phân tích có những chức năng riêng, cần vận
dụng linh hoạt và hiệu quả dựa trên điểm mạnh của từng cơng cụ để q
trình phân tích nhanh hơn, chính xác hơn.


- Có nhiều chiến thuật phân tích khác nhau, do đó cần thay đổi chiến
thuật một cách linh hoạt để hiệu quả phân tích tốt hơn.


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

nghệ mới nhất, ngoài ra cũng cần có sự sáng tạo để q trình phân tích


nhanh, hiệu quả hơn.


<i>1.3.1.1. Phương pháp phân tích tĩnh: </i>


Đặc điểm của phương pháp phân tích tĩnh này là sẽ kiểm tra, phân
tích Malware mà khơng thực thi mã độc. Cơ bản của việc phân tích tĩnh
bao gồm các bước kiểm tra các file thức thi mà không cần các hướng dẫn
thực tế. Qua bước phân tích tĩnh sẽ xác nhận cho chúng ta liệu file đó có
phải là mã độc hay khơng, cung cấp thơng tin về chức năng của chúng,
đôi khi những thông tin này sẽ cung cấp cho người dùng những dấu hiệu
nhận dạng các loại Malware.


Là phương pháp đơn giản và có thể thực hiện một cách nhanh
chóng. Tuy nhiên phương pháp này lại khơng có hiệu quả trong việc phân
tích những loại Malware phức tạp và do đó chúng ta có thể bỏ qua những
hành vi quan trọng mà Malware gây ra.


Trong mức này chúng ta chưa quan tâm tới việc thực thi File
Malware, trong phần này tôi sẽ tập trung vào việc phân tích mã, cấu trúc,
header của chương trình để xác định các chức năng:


- Sử dụng Hash để xác định Malware.


- Xác định các thông tin từ string, header, function của file


Mỗi kỹ thuật sẽ cung cấp các thơng tin khác nhau tùy thuộc mục
đích nghiên cứu. Tôi sẽ sử dụng một vài kỹ thuật sao cho thu thập được
càng nhiều thông tin càng tốt[10].


<i> </i> <i>Sử dụng Hash để xác định Malware </i>



</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

một chuỗi ký tự (chuỗi ký tự này được coi như là vân tay của Malware).
Mỗi chuỗi hash xác định ra các Malware duy nhất[11], có thể chia sẻ các
mẫu hash này để giúp cho những người phân tích xác định Malware.


<i>Sử dụng việc tìm kiếm chuỗi </i>


Một chương trình thường chứa các chuỗi nếu nó in ra một message,
kết nối tới một đường dẫn URL hoặc copy một file đến một vị trí xác
định.


Nghiên cứu các chuỗi cũng là một phương pháp đơn giản để chúng
ta có thêm những thơng tin về chức năng của chương trình. Ví dụ, chương
trình này thường in xuất ra màn hình để cung cấp cho người dùng một
cập nhật trạng thái, hoặc để cho biết rằng một lỗi đã xảy ra. Những chuỗi
trạng thái và chuỗi lỗi kết thúc có thể nhúng trong tập tin thực thi của
chương trình và có thể vơ cùng hữu ích trong việc phân tích phần mềm
độc hại.


Việc bóc tách các chuỗi có trong các phần mềm độc hại được thực
hiện bằng các công cụ như Hex Editor, PeiD[12]. Cho dù sử dụng bất kỳ
cơng cụ gì để bóc tách các String thì các string có thể được thể hiện dưới
dạng mã ASCII hoặc Unicode. Nhưng việc phân tích chuỗi cần phải hết
sức cẩn thận vì có thể chuỗi đó được người viết Malware cố tình chèn
vào để đánh lừa người phân tích.


Việc thực hiện phân tích chuỗi có thể giúp chúng ta phát hiện ra
một số loại Malware được lưu dưới một định dạng khác để đánh lửa người
dùng như ví dụ sau: Malware netcat là một file thực thi, nhưng chúng
được lưu lại dưới định dạng là một file nén để lừa người dùng có dạng là


nc.rar.


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

có các byte định dạng là MZ (được thể hiện dưới dạng hex: 4D 5A), các
file nén có định dạng là PK (được thể hiện dưới dạng hex: 50 4B).


Để kiểm tra xem file này có thật sự là một file nén hay là một file
thực thi được lưu dưới dạng của một file nén[13], chúng ta có thể sử dụng
các cơng cụ như Hex Editor hay PEiD để kiểm tra vấn đề này.


Trình soạn thảo cho phép bạn tìm kiếm chuỗi byte cụ thể trong bản
thân file. Nó sẽ cho bạn biết liệu Malware download về như trong hình
minh hoạ ở trên có thực sự là file winzip hay khơng. Người dùng khơng
cần lo lắng liệu mình có vơ tình khiến Malware này phát huy tác dụng
hiệu quả của nó ngay bây giờ. Đơn giản là vì trong trình soạn thảo Hex,
chúng ta chỉ có thể xem được nội dung mà khơng thể kích hoạt file thực
thi.


<i>1.3.1.2. Phương pháp phân tích động: </i>


Đặc điểm của phương pháp phân tích động này là sẽ kiểm tra, phân
tích Malware bằng việc thực thi mã độc:


- Basic dynamic analysis: là phương pháp thực thi mã độc và giám
sát các hành vi của chúng trên hệ thống để tìm cách loại bỏ chúng, tìm ra
các dấu hiệu để nhận biết Malware. Tuy nhiên, chúng ta cần phải xây
dựng môi trường an toàn để cho phép chạy và nghiên cứu Malware mà
không gây tổn hại đến hệ thống hoặc môi trường mạng. Cũng giống với
basic static analysis thì phương pháp basic dynamic analysis thường được
sử dụng kể cả với những người khơng am hiểu về kiến thức lập trình. Và
phương pháp này cũng không hiệu quả trong việc phân tích các loại


Malware phức tạp[14].


</div>

<!--links-->

×