Hướng dẫn phân tích mã độc trên nền tảng Android

Thảo luận trong 'Virus/Malware' bắt đầu bởi Malware, 16/03/15, 01:03 PM.

  1. Malware

    Malware Wh------

    Tham gia: 08/01/15, 11:01 AM
    Bài viết: 56
    Đã được thích: 35
    Điểm thành tích:
    48
    Phân tích mã độc trên Android OS

    Có 2 phương thức phân tích mã độc Android:
    - Phân tích động - Dynamic Analysic:
    Công cụ:
    Droidbox( https://code.google.com/p/droidbox/ ), androidAuditTools (tìm hiểu thêm tại https://intrepidusgroup.com/insight/2011/05/androidaudittools/)
    Quá trình phân tích động nhằm giám sát và kiểm tra hành vi của ứng dụng (mã độc), như ứng dụng đó được thực thi trên hệ thống (thiết bị Android), bằng cách sử dụng Virtual Machine hoặc Sandbox. Quá trình phân tích bao gồm việc thực thi ứng dụng độc hại và theo dõi system log. Net work log.

    - Phân tích tĩnh - Static Analysic:
    Công cụ: IDA 6 Pro, APK Inspector, Dex2Jar, Dexdump, ApkTool
    Phân tích tĩnh bằng cách decompile một ứng dụng Android thành smali (sẽ được nhắc tới sau ) hoặc java code để tiến hành theo dõi sự hoạt động của ứng dụng cũng như những tương tác của nó tới hệ thống.
    Đối với các thư viện lib.so của ứng dụng Android Apps (Android NDK Applications), ta có thể tiến hành phân tích tĩnh với IDA Pro.


    Trong bài viết này chúng ta tập trung vào việc sử dụng các static analysis tools, để phân tích mã độc Android.


    Phân tích bằng phương pháp tĩnh
    Ứng dụng Android thường được viết bằng Java và thực thi trên Virtual Machine, byte code chạy trên Dalvik Virtual Machine (DVM) được chuyển đổi từ JVM byte code truyền thống sang dex-format (.dex file) bởi convertion tool dx (lưu trữ tại android-sdk/platforms/android-X/tools/lib/ với các phiên bản trước đây, ở phiên bản Android SDK mới nhất được lưu tại android-sdk/platform-tools/lib/)
    Mã code thực thi trên DVM được gọi là mã Smali, có tập lệnh phức tạp giống như Assembly trên Windows.( Tham khảo Dalvik opcodes table: http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html )

    Để thực hiện phân tích tĩnh ta phải decompile ứng dụng thành mã code có thể đọc được: thành mã JVM bytecode hoặc Smali code.
    Trước tiên, chúng ta cùng nhau phân tích ứng dụng dưới dạng JVM byte code vì sử dụng nó đơn giản hơn nhiều so với việc phân tích với Smali (Sẽ trình bày trong các bài viết sau).
    JVM byte code rất giống với ngôn ngữ Java thông thường, các file byte-code kết thúc với .class còn các file Java kết thúc với .java.

    Để phân tích dưới dạng JVM byte-code ta có thể kết hợp sử dụng Dex2jarJD-GUI:
    Dex2jar: Một công cụ được xây dựng để đọc Dalvik Executable (.dex/.odex) format
    convert từ .dex → JVM byte code (.jar file)
    (Tìm hiểu thêm và download tại https://code.google.com/p/dex2jar/ )

    JD-GUI: Công cụ có giao diện được xây dựng để đọc các file JVM byte code (.class), dựa vào nó người dùng có thể hiểu được cách thức hoạt động của các phương thức và biến trong chương trình.
    (Tìm hiểu thêm và download tại http://jd.benow.ca )




    Phân tích chi tiết 1 mẫu Android Malware
    Công cụ sử dụng: Dex2jar và JD-GUI.
    Thông tin mẫu:
    SHA256: 550b3c6b8766fca70d3a8f7d5e00cf50527a3df208e6e2812e7eab8f1bd55ec2
    File name: 550b3c6b8766fca70d3a8f7d5e00cf50527a3df208e6e2812e7eab8f1bd55ec2.apk
    Tiến hành hân tích:


    Sử dụng Dex2jar

    Android Packages được đóng gói với thuật toán ZIP nên ta có thể giải nén file APK như giải nén file ZIP thông thường (sử dụng 7zip hoặc với Winrar thì cần đổi tên file .apk thành .zip)

    • Commands convert file classes.dex trong thư mục giải nén với dex2jar tool , chuyển đổi dex-format thành file .jar chứa các java byte code .class
    Chạy cmd (Windows + R và gõ cmd -> Enter):

    [​IMG]

    Kết quả sau khi convert sẽ được lưu tại thư mục người dùng hiện tại của máy tính với tên classes-dex2jar.



    Phân tích ứng dụng với JD-GUI (Java decompiler)

    Tải JD-GUI tại: http://jd.benow.ca/
    Run file jd-gui và mở classes-dex2jar.


    [​IMG]


    • Quá trình phân tích tĩnh thường hướng theo các từ khóa gắn với tên của các hàm API có khả năng tác động xấu tới người dùng như: “Send”, “Get”
    Hoặc “License” và “Donate” … đối với dòng mã độc tống tiền.

    • Phân tích dựa theo các ReceiverService: Tiến hành phân tích các hành vi thực hiện bên trong hàm onReceive hoặc onStartCommand đề lần theo các lời gọi hàm và tìm ra hành vi độc hại.
    Chọn Search trên toolbar hoặc Ctrl + Shift+ S và nhập từ khóa cần tìm.


    [​IMG]




    • Với từ khóa “send” ta tìm được:


    Lời gọi hàm sendSMS trong file
    com.dloader.Main.class

    [​IMG]

    Lần ngược theo dấu vết gọi hàm sendSMS ta tìm được trình tự gọi hàm như sau:


    onCreate → loadConfig() → initData() → showDialogConfirm → handleAction → handleActionASMS → sendSMS.


    KẾT LUẬN: Ứng dụng gửi tin nhắn tới đầu số tính phí.



    Trên đây là bài phân tích Android Malware cơ bản của mình theo phương pháp phân tích tĩnh bằng cách đọc JVM byte-code.
    Trong các bài viết sau mình sẽ viết về phân tích tĩnh – đọc Smali , phân tích các mẫu Android sử dụng Proguard khi đóng gói (Tìm hiểu thêm tại Code protection: http://proguard.sourceforge.net/ ) hoặc phân tích động Android Malware.

    Bài phân tích có thể còn nhiều thiếu sót, rất mong nhận được sự góp ý của các bạn !.



    Địa chỉ tải mẫu phân tích: http://www.mediafire.com/download/k...0cf50527a3df208e6e2812e7eab8f1bd55ec2.apk.zip
    pass giải nén: whitehat.vn

     
    Last edited by a moderator: 21/03/15, 08:03 AM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  2. e gà lắm

    e gà lắm W-------

    Tham gia: 21/10/13, 12:10 PM
    Bài viết: 18
    Đã được thích: 0
    Điểm thành tích:
    16
    Re: Hướng dẫn phân tích mã độc trên nền tảng Android

    Bị die mất 2 cái ảnh rồi thớt ơi
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  3. sunny

    sunny VIP Members

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,894
    Đã được thích: 868
    Điểm thành tích:
    113
    Re: Hướng dẫn phân tích mã độc trên nền tảng Android

    Mình vẫn thấy có ảnh mà.
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  4. whf

    whf Super Moderator Thành viên BQT

    Tham gia: 06/07/13, 03:07 AM
    Bài viết: 1,110
    Đã được thích: 729
    Điểm thành tích:
    113
    Re: Hướng dẫn phân tích mã độc trên nền tảng Android

    Bạn xem bằng Firefox nhé, Chrome không xem được 2 ảnh đấy. [​IMG][​IMG][​IMG]
     
    Last edited by a moderator: 20/03/15, 12:03 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  5. sunny

    sunny VIP Members

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,894
    Đã được thích: 868
    Điểm thành tích:
    113
    Re: Hướng dẫn phân tích mã độc trên nền tảng Android

    Bạn xem được bài này có mấy ảnh, mình dùng Chrome xem được 4 ảnh. Chưa thấy thiếu ảnh nào.
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  6. whf

    whf Super Moderator Thành viên BQT

    Tham gia: 06/07/13, 03:07 AM
    Bài viết: 1,110
    Đã được thích: 729
    Điểm thành tích:
    113
    Re: Hướng dẫn phân tích mã độc trên nền tảng Android

    Trong bài có 4 ảnh. 2 ảnh dùng imgur.com hiển thị bình thường, 2 ảnh dùng uphinhnhanh.com không hiển thị được trên Chrome. Trên Firefox hiển thị đầy đủ cả 4 ảnh. Không chỉ bài viết này mà các bài viết khác dùng uphinhnhanh.com đều gặp vấn đề tương tự.
    Báo cáo hết ạ!
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  7. sunny

    sunny VIP Members

    Tham gia: 30/06/14, 10:06 PM
    Bài viết: 1,894
    Đã được thích: 868
    Điểm thành tích:
    113
    Re: Hướng dẫn phân tích mã độc trên nền tảng Android

    Vấn đề hiển thị ảnh mình đã đưa về WhiteHat để khắc phục lỗi.

    Cảm ơn các bạn và mong được "soi" nhiều hơn nữa. ;)
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  8. hamhoc

    hamhoc W-------

    Tham gia: 23/07/16, 06:07 PM
    Bài viết: 6
    Đã được thích: 2
    Điểm thành tích:
    3
    bai viet hay qua. cam on tac gia
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  9. khoaigiaocau

    khoaigiaocau New Member

    Tham gia: 25/11/19, 03:11 AM
    Bài viết: 1
    Đã được thích: 0
    Điểm thành tích:
    1
    Bác ơi giải thích thêm cho em đoạn này được ko ạ
    Em chưa hiểu rõ lắm tại sao lại vậy, cảm ơn bác chủ thread

    Lần ngược theo dấu vết gọi hàm sendSMS ta tìm được trình tự gọi hàm như sau:

    onCreate → loadConfig() → initData() → showDialogConfirm → handleAction → handleActionASMS → sendSMS.
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan