HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THÔNG
Bạch Thanh Tùng
SU DỤNG PHƯƠNG PHÁP PHAN TÍCH ĐỘNG PHAN TÍCH MALWARE TREN HỆ DIEU HANH ANDROID
Chuyén nganh: Khoa Hoc May TinhMã số: 60.48.01.01
TOM TAT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2015
Trang 2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: TS Phạm Thanh Giang
Phản biện Ì: CC C0000 201201201121 HE nh nh na
Phản biện 2:_ Q02 002012 2n SH n ĐT ng ng nh nh xy
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ
Bưu chính Viễn thông
Vào lúc: gIỜ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3I MO DAU 1 Tính cấp thiết của đề tài
Android đang là hệ điều hành thống trị thị trường với thị phần 78% trong Q1/2015 [5] Với đà phát triển như hiện nay, sẽ có tới 1 tỉ thiết bị hoạt động trên nền tảng Android
vào năm 2017 [6] Sự phổ biến của Android và bản chất mở của thị trường ứng dụng
(Google Play) dẫn đến sự gia tăng một cách tự nhiên của tội phạm Tác giả của các phần mềm độc hại này có thể tự do đưa ứng dụng lên Google Play và chờ đợi người dùng tải về và cài đặt chúng Ngoài ra nhiều chợ ứng dụng của bên thứ ba cũng làm cho việc cung cấp ứng dụng độc hại trở nên dễ dàng hơn.
Các nhà nghiên cứu phát hiện Malware trên Android đang tăng một cách báo động
trong những năm 2012 đến năm 2015 (Với tỉ lệ tương ứng trên thị trường chính thức và không chính thức so với các ứng dụng khác là 0,02% và 0.2%) [7] Để có thể kiểm soát khoảng 1000 ứng dụng Android mới mỗi ngày [7] Cần có một hình thức phân tích động dé nhanh chóng phát hiện và cô lập các phần mềm độc hại.
2 Tổng quan về vẫn đề nghiên cứu
Luận văn này tập trung vào nghiên cứu hệ thống android, các loại malware, hành vi của chúng cũng như tác hại của từng loại malware gây ra đối với người sử dụng thiết bị
chạy trên hệ điều hành Android Và phương pháp phân tích malware, mà ở đây chủ yếu là
sử dụng phương pháp phân tích động.
Các hướng nghiên cứu đã có của một số tác giả:
- Thang 10/2010, Blasing et al là người đầu tiên trình bày về một nền tảng phân
tích động cho ứng dụng Android có tên là AASandbox [8].
Van dé tồn tại : Tuy trình bày về nền tang phân tích động, nhưng thực tế thì nó
vẫn sử dụng phân tích tĩnh để quét phần mềm dựa vào các mẫu độc hại sẵn có và sau đó mới
sử dụng phân tích động Và do chỉ sử dụng trên nhân Linux nên khi sử dụng AASandbox
không thể lấy chỉ tiết về các thành phần thực thi Java.
- Thang 2/2012, Google công bố Bouncer [9] Với tuyên bố rằng mỗi ứng dụng được tải về từ Google Play Store đang chạy trên cơ sở hạ tầng điện toán đám mây của
Google được mô phỏng như đang chạy trên một thiết bị Android thật.
Vấn đề tồn tại : Kể từ khi ra mắt, Bouncer được Google cung cấp rất ít các thông tin về kiến trúc, cách hoạt động Và theo một nghiên cứu của Xuxian Jiang Chỉ có 193 trong tông
số 1260 mẫu Malware được phát hiện bằng cách này.
Trang 43 Kết cầu của đề tài
Bồ cục của luận văn gồm 3 chương với nội dung như sau:
e_ Chương 1: Van dé an ninh trên nền tảng android
e Chương 2: Phương pháp phân tích malware
e Chương 3: Ung dụng phân tích động phát hiện malware
Trang 5CHUONG 1: VAN DE AN NINH TREN NEN TANG ANDROID
1.1 Kiến trúc hệ điều hành Android
Mô hình kiến trúc sau thé hiện các thành phần của hệ điều hành Android:
Contacts Phone Browser
APPLICATION FRAMEWORK
Activity Window Content View Notification
Manager Manager Providers System Manager
Package Telephony Resource Location XMPPManager Manager Manager Manager Service
LIBRARIES ANDROID RUNTIMESurface Media Core
Manager Framework Libraries
OpenGL|ES FreeType
LINUX KERNEL
= Aud dio Drivers Managementˆ
Hình 1.1: Mô hình kiến trúc nền tảng Android [10]
Trang 71.2.2 Intent
Intent được sử dụng với phương thức startActivity() để mở một Activity, và dùng
với broadcastIntent để gởi nó đến bất kì BroadcastReceiver liên quan nào, và dùng
với startService(Intent), bindService(Intent, ServiceConnection, int) dé giao tiép với
các Service chạy dưới nền.
Intent cung cấp một chức năng cho phép kết nối hai chương trình khác nhau trong
quá trình thực thi (runtime) (Cung cấp khả năng cho phép hai chương trình khác nhau giao tiếp với nhau) Chức năng quan trọng và được sử dụng nhiều nhất của một Intent là mở
một Activity, nơi mà nó có thêđược dùng như một vật kết nối các Activity lại với nhau
(Truyền thông tin giữa hai Activity khác nhau).
Là nơi lưu trữ và cung cấp cách truy cập dữ liệu do các ứng dụng tạo nên Đây là cách duy nhất mà các ứng dụng có thé chia sẻ dữ liệu của nhau.
1.2.5 View
View là thành phần cơ bản để xây dựng giao diện người dùng cho 1 ứng dung Android View là 1 lớp căn ban của widgets (widgets được dùng dé tạo các nút nhấn,
text fields, ).
Trang 81.2.6 Share Preferences
Android có nhiều cách dé lưu trữ dữ liệu Một cách đơn giản nhất là sử dung hệ thống preferences.
1.2.7 LogCats
LogCats là phương pháp được sử dụng trên các thiết bi dựa trên Android dé hién thi
các thông điệp hoặc các bản ghi tương tự như các câu lệnh System.out.printlnQ của Java.
1.3 Vấn đề mã độc trên Android
Malware là chữ viết tắt của Malicious Software, tạm dịch là phần mềm mã độc Hiện có khá nhiều loại malware, từ virus, sâu máy tính (worm), trojan cho đến phần mềm gián điệp (spyware), trình quảng cáo (adware) và nhiều thứ khác Trong hầu hết các trường hợp,
người ta tạo ra malware dé kiếm tiền bất hợp pháp Tùy vào loại malware lây nhiễm vào
thiết bi mà chúng ta có thé gặp một số van dé sau:
Máy chạy chậm hơn bình thường
Thông tin cá nhân bị đánh cắp
Bị mắt tiền từ tài khoản điện thoại
Tiếp tục lây nhiễm malware cho các máy khác
1.3.1 Các loại malware thường thấy trên Android
1.3.1.1 Phần mềm âm thầm trừ tiền vào tài khoản điện thoại
1.3.1.2 Ransomware
1.3.1.3 Lỗ hồng Web View
1.3.1.4 Điện thoại tắt nhưng thật ra không tắt
1.3.1.5 App nhìn có vẻ "vô hai" nhưng lại chứa mã độc
1.3.1.6 Tống tiền
1.3.1.7 Lỗ hồng Android Installer Hijacking
1.3.2 Bao mật trên Android
1.3.2.1 Các hộp cát, các tiễn trình và các quyền hạn
Trang 9Android application/process space
App Sandbox: Linux user ID: 12345
App Sandbox: Linux user ID: 54321
Linux user ID: 12345 Resources
Linux user ID: 54321
Android application/process space (_ xpsanba Uneelo tAĐ
Application Application
Linux user ID: 12345 Linux user ID: 12345
Two applications signed using the same digital signature and assigned the
same Linux user-id
Hình 1.8: Hai ứng dung Android, chạy trên cùng một tiến trình [12]
Trang 101.3.2.2 Các trường hợp sử dung của nha phát triển
Android and security
- Phat hiện ra nếu các ứng dụng đã thay đổi.
- _ Xây dựng sự tin cậy giữa các ứng dụng.
Căn cứ vào mối quan hệ tin cậy này, các ứng dụng có thé chia sẻ mã và dit liệu theo
cách an toàn.
Việc ký mã trong Android được thực hiện theo một cách đơn giản hơn nhiều so với
các nền tảng di động khác Trong Android, chứng chỉ này có thể tự ký, có nghĩa là, không cần phải có người có thầm quyền chứng nhận Cách tiếp cận này làm đơn giản hóa quá trình
xuât bản và các chi phí liên quan.
Trang 111.4 Kết luận chương
Trong chương này giới thiệu tổng quan về hệ điều hành android, kiến trúc hệ điều
hành, các thành phần cơ bản của ứng dụng Android Ngoài ra còn giới thiệu về mã độc trên
Android, đưa ra định nghĩa, cách phân loại, lược sử cũng như tác hại của các loại mã độc.Và giới thiệu vê bảo mật trên Android, các hộp cát, tiên trình và quyên hạn.
Trang 12CHƯƠNG 2: PHƯƠNG PHAP PHAN TÍCH MALWARE
Phân tích phân mêm độc hại là quá trình thực hiện các biện pháp nghiệp vụ dé thu thập, tìm hiểu nghiên cứu mọi thông tin về mã độc từ đó xác định đặc tính, hành vi của mã độc, cũng như ảnh hưởng và tác hại của nó để dua ra các biện pháp phòng chống và ngăn
Mục đích của phân tích mã độc là để cung cấp các thông tin đây đủ nhất về mã độc,
từ đó xây dựng biện pháp xử lý Cụ thé, phân tích phan mém độc hại dé xác định chính xác những gì đã xảy ra, chúng làm việc gì, gây ảnh hưởng thé nào đến hệ thong đến điện thoại
Các phương pháp phân tích phan mêm độc hại: có hai phương pháp cơ bản dé phân tích phan mém độc hai: phân tích tĩnh và phân tích động (static and dynamic analysis).
Phân tích tĩnh không liên quan đến việc thực thi mã hoặc chạy file apk (phân tích động),
hoặc kỹ thuật dịch ngược mã thông qua giải mã hoặc gỡ lỗi Phân tích tĩnh chủ yếu liên quan đến việc xác định và truy vấn giá trị băm mật mã, chẳng hạn như MD5, strings, và metadata dé thu thập thông tin liên quan đến các phan mém độc hại mà không cần chạy
nó Ngược lại phân tích động tìm hiểu phan mêm độc hai thông qua việc chạy nó.
2.1 Phương pháp phân tích tĩnh
2.1.1 Giới thiệu
Phân tích tĩnh là phương pháp phân tích linh hoạt nhất vì nó có thé được thực hiện từ vô số các hệ điều hành chứ không chỉ phụ thuộc vào hệ điều hành Android.
2.1.2 Các kỹ thuật phân tích tĩnh cơ bản
2.1.2.1 Sử dụng các công cụ Anti-virus quét chữ ký của phần mềm độc hại 2.1.2.2 Sử dụng hàm băm sinh chữ ký cho phần mềm được phân tích
2.1.2.3 Các kỹ thuật đóng gói và xáo trộn mã của phần mềm độc hai và các phương
pháp vượt qua nó
2.1.2.4 Phân tích một file APK
Giải nén một file APK
Giải nén một file APK là đơn giản trong bất kỳ hệ điều hành nào Bằng cách sử dụng các công cụ như Winzip, Unzip, và 7z Sau khi giải nén sẽ có rất nhiều thành phan dé
phân tích.
Các thành phần bên trong một file APK được giải nén
Thong tin chứng chi (Certificate)
Trang 13Nếu ở phương pháp phân tích tĩnh tập trung thu thập tìm kiếm thông tin sau đó thông qua các hàm các thư viện liên kết phóng đoán chức năng của phần mềm độc hại, ngược lại phân tích động sẽ cho chúng ta cái nhìn rõ ràng và chuan xác hơn về chức năng của phan mềm độc hại thông qua việc thực thi chúng.
Các bước trong quá trình thực hiện phân tích động:
- _ Thiết lập môi trường ảo phân tích.
- Su dụng Sandbox.
- _ Thực thi phan mềm nghi ngờ độc hại.
- _ Giám sát tiễn trình của phần mềm nghi ngờ độc hai - _ Giám sát mạng khi chạy phần mềm nghi ngờ độc hai.
2.2.2 Các bước trong qua trình phan tích động
2.2.2.1 Thiết lập môi trường phân tích
Sử dụng thiết bị thật điểm bất lợi là sẽ không hề đơn giản khi muốn loại bỏ phần mềm độc hại đó khỏi thiết bị của ban Thông thường dé giảm thiểu nguy cơ, hầu hết khi thử nghiệm phần mềm độc hại trên các thiết bị sẽ được cài lại hệ điều hành khi đã hoàn thành
phân tích.
Sử dụng máy ảo Hiện nay có rất nhiều phần mềm hỗ trợ ảo hóa hệ điều hành ngay
trên máy tính của bạn như Android Emulator, BlueStacks, GenyMotion 2.2.2.2 Sử dụng Sandbox
Hiện tại có rất nhiều các phần mềm sandbox khác nhau như AndroTotal, Mobile Malware Sandbox, Mobile Sanbox, VirusThreat, và Dexter đa phần là các phần mềm miễn phí Norman SandBox và GFI Sandbox là 2 phần mềm phô biến nhất trong các Sandbox bảo
mật máy tính.
2.2.2.3 Thực thi phần mềm nghi ngờ độc hại
Thực thi phần mềm độc hại là một trong những bước quan trọng trong quá trình phân tích động Trong quá trình chạy file apk các hoạt động của hệ thống (đọc, ghi file), các hành
vi mang (đóng, mở kết nối), các hành vi mã hóa, gọi điện, gửi tin nhắn chúng ta đều phải
giành sự quan tâm rât lớn.
Trang 142.2.2.4 Giám sát tiễn trình của phần mềm nghi ngờ độc hại
Sau khi thực thị phần mềm nghi ngờ độc hai, các nhà phân tích cần giám sát tiễn trình hoạt động của nó Sẽ đọc, ghi file ở những thời điểm nào, đường dẫn file, và các tác
động lên file.
2.2.2.5 Giám sát mạng khi chạy phần mềm nghi ngờ độc hại
Với sự phát triển của internet ngày nay, việc giám sát mạng khi thực thi một phần mềm nghỉ ngờ độc hai là rất cần thiết Mục đích là theo dõi lưu lượng mạng bắt gói tin cũng
như hiện thi thông tin chi tiết các gói tin, dia chi nguồn, địa chỉ đích, giao thúc 2.3 So sánh các phương pháp phân tích phần mềm độc hại
Đối với mỗi phương pháp phân tích chúng đều có các ưu nhược điểm khác nhau Rõ
ràng các phương pháp đều có hỗ trợ bổ khuyết cho nhau, không thé dùng một phương pháp
duy nhất mà cần kết hợp tat cả lại dé từ đó thu được hiệu quả cao nhất.
Trang 162.4.1.1 Core Framework
z Event before emulator start
APK Initialization Start Emulation
Eventbefore simulation start Eventbefore app install
fe stom Cal] Static
Stop Emulation Fill Database
Event before emulator stop Event before database
Eventbefore report
2.4.1.2 Plugins
Dé biến ANANAS thành một công cụ phân tích hữu ich, Plugins cho các phương pháp phân tích khác nhau được phát triển Nó đại diện các cho kỹ thuật phân tích tĩnh và động Một số trong số đó đã được phát triển bởi nhóm phát trién ANANAS.
File System Diff
Phân tích mạng
Systemcall Logging / LKMAPKIL / APIMonitor
VirusTotal Query
2.4.2 Dữ liệu thu được sau quá trình phân tích
Cấu trúc file JSON DroidBox:
- _ accessedFiles — Danh sách các file ứng dụng nhận quyên truy cập
- apkName — Tên của file apk được phân tích
Trang 17- closenet —Cac hoạt động đóng socket
- cryptousage —Các hoạt động liên quan đến cryptAPIAndroid - dataleaks —Tiét lộ các dữ liệu cá nhân của người dùng
- dexclass —Hoat động với các lớp DEX
- _ enfperm —Thém các quyền (không được phép) cho ứng dụng
- fdaccess — Hoạt động liên quan đến các file
- hashes —Ham băm MD5-, SHA-1 và SHA-256 của phân tích APK
- opennet —Cac hoạt động mở socket
- phonecalls —Goi điện
- recvnet —Nhận qua mạng
- recvaction —M6t danh sách các intents mà ứng dụng sẽ phản hồi - sendnet —cac hoạt động trao đôi với mạng
- sendsms — Gửi tin nhắn
- _ §ervicestart — Các hoạt động của dịch vụ
2.4.3 Đánh giá độ an toàn dựa trên dữ liệu thu được
Ta sẽ chia các section theo mức độ nguy hiểm va gan điểm cho từng section từ 1-5 Trong đó điểm số càng cao thì càng nguy hiểm tương ứng như bảng sau :
Bang 2.2: Diém sô của các section
Section Name Score
Trang 18Trong đó :
- S là điểm số của phan mềm
- P là tập hợp các section được gọi trong phan mềm :
+Pi=0, nếu phần mềm không thực hiện section này +P¡= I, nếu phần mềm có thực hiện section này
- T; là điểm số của từng section tương ứng trong bang
Trang 192.5 Mô hình phân loại theo cây quyết định
Cây quyết định (decision tree) là một phương pháp rất mạnh và phô biến cho cả hai
nhiệm vụ của khai phá dữ liệu là phân loại và dự báo
Cây quyết định có thé được mô tả như là sự kết hợp của các kỹ thuật toán học và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu cho trước.
2.6 Kết luận chương
Trong toàn bộ chương đã nêu rõ cách phát hiện Malware băng phương pháp phân
tích động, Cách thức hoạt động của framework phân tích Malware, cách phân tích dữ liệu
JSON sau khi thực hiện phân tích phần mềm Và cách đánh giá phần mềm dựa vào điểm số.
Ngoài ra còn giới thiệu về cây quyết định, đây là giải pháp để đánh giá độ hiểu quả của
chương trình.
Trang 20CHƯƠNG 3: UNG DUNG PHAN TÍCH ĐỘNG PHÁT HIỆN
3.1 Dữ liệu thử nghiệm
Tính xác thực của bất kỳ hệ thống phát hiện phần mềm độc hại phụ thuộc vào chất
lượng đữ liệu đang được sử dụng để kiểm tra hệ thống Luận văn sử dụng 200 ứng dụng từ
các nguồn khác nhau Ứng dụng lành tính được lấy từ thị trường Android chính thức và độc
hại được lấy từ một số nguồn khác Trong đó bao gồm 100 ứng dụng lành tính và 100 ứng
dung Malware.
Bang 3.1: Bộ dữ liệu thử nghiệm
Dữ liệu học tập Dữ liệu thử nghiệm Tổng SỐ
Một số chỉ số thông dụng được dùng dé đánh giá một giải thuật học máy :
- True Positive (TP): Số lượng các ứng dụng lành tính được xác định một cách chính
Trang 21Trong phần này sẽ chỉ trình bày kết quả phân tích chỉ tiết của một ứng dụng (dựa vào
dữ liệu hình 2.4) các ứng dụng còn lại cũng thực hiện việc phân tích như vậy.
Sử dụng Malware: B2B7D5999DCE0559D13AB06D30C2C6EC(MDS) Princer.apk
dé phân tích
Bước 1: Lấy dữ liệu các hành động của file hệ thống Bước 2: Lấy dữ liệu các hành động về mạng
Bước 3: Lấy dữ liệu các hoạt động mã hóa
Bước 4: Sắp xếp các hành động của ứng dụng theo thời gian
Bước 5: Vẽ biểu đồ
Bước 6 : Tính điểm số của ứng dụng
Đánh giá: Sau khi thực hiện việc phân tích 100 mẫu (gồm 50 mẫu lành tính, 50 mẫu Malware) Dựa vào công thức tính điểm (2.1), ta thu được điểm số của từng ứng dụng Áp dụng phương phương cây quyết định, ta có kết luận:
- Các ứng dung có điểm số >13 là Malware
- Các ứng dụng có điểm số <=13 là lành tính