MÔ PHỎNG VÀ KIỂM THỬ

Một phần của tài liệu (LUẬN văn THẠC sĩ) phân tích mức độ an toàn của ứng dụng android dựa trên học máy (Trang 53 - 57)

Cho tới nay, đã có rất nhiều những nghiên cứu hay phương pháp được đề ra để phát hiện phần mềm nguy hại. Trong đó, phương pháp cổ điển và từng được sử dụng nhiều nhất là kỹ thuật chữ ký điện tử. Chữ ký sẽ được chiết ghi vào một kho dữ liệu đối chiếu liên quan tới dấu hiệu mã độc. Sau đó, chúng được sử dụng với mục đích so sánh và kiểm tra các ứng dụng cần quan tâm. Có thể thấy, đây là một kỹ thuật rất hiệu quả trong việc phát hiện các mã độc sẵn có, tuy nhiên, lại rất hạn chế trong việc đối phó với những mã độc mới. Do đó, việc kết hợp thêm các cơ chế khác nhằm cải thiện tính linh hoạt và hiệu quả với các ý tưởng phương pháp sẵn có là điều cần thiết.

Hai loại cơ chế phân tích chính hiện nay được sử dụng trong nghiên cứu phát hiện phần mềm độc hại gồm: phân tích động và phân tích tĩnh.

Cơ chế phân tích động: là thử nghiệm và đánh giá các chương trình bằng cách thực thi dữ liệu trong môi trường thực hóa. Mục tiêu để tìm ra, theo dõi liên tục những thay đổi trong thành phần chương trình ngay khi đang chạy. Qua đó có thể tìm ra lỗi mà không cần đọc, kiểm tra các đoạn mã nghi ngờ. Các bước cụ thể như sau: đưa mã độc trong một môi trường biệt lập thực hóa (Sandbox) sau đó quan sát hành vi của mã độc… Droidbox là một trong những công cụ phổ biến nhất áp dụng cơ chế này.

Rất nhiều những nghiên cứu đã thực hiện dựa trên nền tảng của phương pháp này. Vào tháng 10 năm 2010, phương pháp đầu tiên áp dụng cơ chế này đã được công bố, với cái tên: AASandbox [4]( Android Application Sandbox). Thomas Bl”asing đưa các mẫu độc hại vào môi trường thực thi để xâm nhập và tương tác với các tầng lớp sâu của hệ thống, qua đó có thể phân tích sâu hơn rồi thu về những bản ghi dữ liệu hệ thống này. Tiếp theo, AASandbox sử dụng một phương pháp tiếp cận với dữ liệu thu được là “footprinting” để phát hiện ra các ứng dụng đáng ngờ. Đây là một phương

thức khá cổ và vẫn được duy trì đến tận bây giờ. Sau đó, William Enck đã tiếp bước khi xây dựng hệ thống Taint Droid [5]với kỹ thuật truy vết. Với ý tưởng về “ đánh dấu đối tượng”, những dữ liệu thu thập được từ nguồn mã hay phần mềm đáng ngờ sẽ được đánh dấu. Từ đây, ta thu về những mẫu đối chiếu được gọi là “vết nhơ”. Tiếp đến, tất cả các dữ liệu được đánh nhãn sẽ phải vượt qua các trạm kiểm soát của Taint Droid trước khi được truyền đi khắp mạng hệ. Có thể thấy đây là một cách xử lý dữ liệu thông tin đáng ngờ rất triệt để, tuy nhiên cũng vì vậy mà rất dễ xác định phán đoán sai một ứng dụng lành thành ác.

Với những đặc điểm nêu trên, phương pháp phân tích động mang lại ưu thế phát hiện ngay lập tức các hành vi sai trái của phần mềm ngay khi chương trình được khởi chạy. Mặt khác, nhiều khó khăn còn tồn tại như: những khó khăn trong việc xây dựng được một môi trường thực thi hoàn chỉnh, ngoài ra hiện đã có rất nhiều mã độc có thể lách qua khâu kiểm tra trong môi trường thực thi này.

Phân tích tĩnh: Phân tích mã thông qua việc đọc và phân tích mã trực tiếp của một chương trình thay vì chạy thử nó. Công cụ hỗ trợ phương pháp này thường là: IDA Pro 6, Apk Inspector, Dex2Jar, Dexdump, ApkTool. Đây là những công cụ với nhiệm vụ thực hiện biên dịch ngược các phần mềm, hỗ trợ cho việc soi mã code.

Đối với cơ chế này, DroidMat [6]là một hệ thống tiêu chuẩn trong việc cung cấp mô hình phân tích tĩnh để nhận ra phần mềm độc hại Android. Wu đánh giá dựa trên các siêu chí sau: quyền điều khoản, các đối tượng thành phần( intent actions, intent categories) và các đường dẫn API, tất cả đều được chứa các tập tin manifest hay smali. Tuy nhiên, số lượng tài nguyên cần thiết để phục vụ cho nghiên cứu là không nhỏ. Mặt khác, chúng ta có Ryo Sato [7], người đề xuất một phương pháp đơn giản hơn khi chỉ phân tích trên các tập

tin mainfest ( thay vì bao gồm cả smali). Dù ý tưởng của ông đã giảm tải nhiều về nhu cầu sử dụng tài nguyên, một số thành phần không cần thiết đối với cách thực hiện phương pháp những vẫn được đưa vào, ví dụ như intent actions, intent categories,… Trên thực tế, bất kỳ hoạt động của một ứng dụng chỉ có thể được thực hiện sau khi được cấp quyền giấy phép, intent filter vì vậy là đối tượng không cần xét tới. Phương pháp PAMP [13] đã tập trung khai thác tối đa vào mảng “quyền” khi đưa ra 13 quyền đáng chú ý kềm trọng số của từng quyền đó. Mặc dù vậy, 13 quyền được xét là một con số quá ít đối với tổng số quyền mà hệ thống Android hiện có.

Áp dụng kỹ thuật phân tích tĩnh, các nhà nghiên cứu có thể hiểu được hoạt động của phần mềm độc hại một cách chi tiết. Đây thực sự là một phương pháp rất cụ thể và đem lại nhiều hiệu quả. Tuy nhiên, khi phải giải quyết các phần mềm độc hại phức tạp, đọc toàn bộ mã thực thi lúc này chắc chắn là một thách thức lớn.

Với nhận thức về tầm quan trọng của quyền điều khoản trong an toàn an ninh hệ điều hành Android, đề tài này sẽ tập trung vào việc vận dụng cơ chế phân tích tĩnh như công cụ để khai thác thuộc tính “quyền” trong tập tin Mainfest.

“Quyền” trong Android giữ vai trò như giấy phép kiểm soát phạm vi thực thi của các đoạn mã cũng như khả năng can thiệp vào dữ liệu thiết bị. Những quyền hạn này nếu bị lợi dụng vào sai mục đích hoàn toàn có thể gây ra ảnh hưởng tiêu cực tới trải nghiệm của người dùng. Với lý do nêu trên, ý tưởng của chúng tôi chính là đánh giá mức độ nguy hại của một ứng dung Android dựa trên thuộc tính “quyền” của ứng dụng đó. Ngoài ra, vì từng quyền lại có các cấp độ khả năng can thiệp vào hệ thống riêng, chúng tôi đã nghĩ quyết định đặt điểm cho từng mức độ đó, hay còn gọi là điểm trọng số. Với hướng đi, tối giản hóa chi phí tài nguyên nhưng đồng thời lại tối đa hóa

những tiêu chí nghiên cứu, tuy đơn giản, đây hoàn toàn có thể là một đóng góp lớn, mang lại sự hiệu quả của lĩnh vực phân tích phát hiện mã độc.

3.1 Mô phỏng (Phương pháp thực hiện)

Trong các cách tiếp cận cơ chế phân tích tĩnh, để đánh giá mức độ an toàn của thiết bị Android, chúng tôi áp dụng phương pháp được trình bày trong bài báo[13] chọn phương án “Phân tích mã nguồn”. Để đi theo phương án này, sau khi thu thập đủ mẫu tập tin apk (android packages) – dùng để cài đặt ứng dụng android, một trình biên dịch ngược sẽ được sử dụng để thu về mã gốc chứa trong tập tin, ở đây, đó chính là công cụ “biên dịch ngược Dalvik”. Sau đó, tiếp tục sử dụng một công cụ khác là ReadMainfest.exe để đọc các tập tin xml, qua đó thu về được thông tin về “quyền”, phục vụ cho mục đích tính toán nghiên cứu.

Hình 3.1: Phân tích mã nguồn

3.1.1 Phương thức tính điểm

1) Risk-score và Protection- score

Dựa vào những thông tin về bảo mật Android thu thập được trên mạng, để có thể đưa ra mức điểm cho mỗi quyền, chúng tôi quyết định đánh giá và cho điểm dựa trên 2 phương diện:

 Risk-level: Mức độ nguy hiểm trực tiếp mà quyền có khả năng gây ra khi được lợi dụng để thực hiện ý đồ xấu.

 Protection-level: Mỗi quyền đều có một protection level để xác định mức độ can thiệp sâu vào hệ điều hành.

Bảng 1 và 2 dưới dây là thang điểm về Risk- score và Protection- score dành cho mỗi quyền:

Ứng dụng Đánh giá nguy hại Biên dịch ngược Phân tích tĩnh

Một phần của tài liệu (LUẬN văn THẠC sĩ) phân tích mức độ an toàn của ứng dụng android dựa trên học máy (Trang 53 - 57)

Tải bản đầy đủ (PDF)

(70 trang)