iOS Security Testing Framework: needle

Needle là một mã nguồn mở, modular framework để sắp xếp quy trình tiến hành đánh giá bảo mật của ứng dụng iOS.

iOS Security Testing Framework needle

Đánh giá sự an toàn của một ứng dụng iOS thường đòi hỏi rất nhiều công cụ, từng được phát triển cho một nhu cầu cụ thể và tất cả với chế độ hoạt động khác nhau và cú pháp. Trong thực tế Android có hàng tá công cụ để giải quyết các vấn đề này trong số đó kể đến là “Drozer” trong khi đó iOS không có một công cụ tương đương.

Needle là nguồn mở dạng modular framework nhằm đơn giản hóa toàn bộ quá trình tiến hành đánh giá bảo mật của các ứng dụng iOS và đóng vai trò như một điểm trung tâm để giải quyết vấn đề trên. Với cách tiếp cận module của nó, Needle là dễ dàng mở rộng và module mới có thể được thêm vào trong các hình thức của kịch bản python. Needle được thiết kế để có ích không chỉ cho các chuyên gia bảo mật, mà còn cho các nhà phát triển tìm cách để đảm bảo đoạn mã của họ. Một vài ví dụ về các khu vực thử nghiệm bao phủ bởi Needle bao gồm: lưu trữ dữ liệu, quá trình liên lạc, truyền thông mạng, phân tích mã tĩnh, hooking và bảo vệ nhị phân. Yêu cầu duy nhất để chạy Needle có hiệu quả là một thiết bị jailbroken.

Needle là phần mềm mã nguồn mở, duy trì bởi MWR Infosecurity.

$ python needle.py
      __  _ _______ _______ ______         ______
      | \ | |______ |______ | \     |      |______
      | \_| |______ |______ |_____/ |_____ |______
                  Needle v0.0.3 [mwr.to/needle] 
    [MWR InfoSecurity (@MWRLabs) - Marco Lancini (@LanciniMarco)]

[needle] > help
Commands (type [help|?] <topic>):
---------------------------------
back exit info kill pull reload search shell show use
exec_command help jobs load push resource set shell_local unset

[needle] > show options
Name          Current Value   Required   Description
------------  -------------   --------   -----------
APP                            no        Bundle ID of the target application (e.g., com.example.app). Leave empty to launch wizard
DEBUG         False            yes       Enable debugging output
IP            127.0.0.1        yes       IP address of the testing device (set to localhost to use USB)
PASSWORD      alpine           yes       SSH Password of the testing device
PORT          2222             yes       Port of the SSH agent on the testing device (needs to be != 22 to use USB)
PROXY                          no        Proxy server (address:port)
SETUP_DEVICE  True             yes       Set to true to enable auto-configuration of the device (installation of all the tools needed)
USERNAME      root             yes       SSH Username of the testing device
VERBOSE       True             yes       Enable verbose output

[needle] >

Quá trình cài đặt

Yêu cầu cài đặt

  • Workstation: Needle đã được thử nghiệm thành công trên cả hai nền tảng Kali Linux và OSX
  • Thiết bị: cả iOS 8 và 9 hiện đang được hỗ trợ

Yêu cầu thiết bị

Các điều kiện tiên quyết chỉ là một thiết bị Jailbroken, với các gói sau được cài đặt:

  • Cydia
  • OpenSSH
  • Apt 0.7 Strict

Yêu cầu trước khi cài đặt

Gõ câu lệnh bên dưới để lấy Needle về:

git clone https://github.com/mwrlabs/needle.git

Tiến hành cài đặt

Kali Linux

# Unix packages
sudo apt-get install python2.7 python2.7-dev sshpass sqlite3 libimobiledevice4 libimobiledevice-utils lib32ncurses5-dev

# Python packages
sudo pip install readline
sudo pip install paramiko
sudo pip install sshtunnel
sudo pip install frida
sudo pip install mitmproxy

MAC OSX

# Core dependencies
brew install python
brew install libxml2
xcode-select --install

# Python packages
sudo -H pip install --upgrade --user readline
sudo -H pip install --upgrade --user paramiko
sudo -H pip install --upgrade --user sshtunnel
sudo -H pip install --upgrade --user frida

# sshpass
brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb

# mitmproxy
wget https://github.com/mitmproxy/mitmproxy/releases/download/v0.17.1/mitmproxy-0.17.1-osx.tar.gz
tar -xvzf mitmproxy-0.17.1-osx.tar.gz
sudo cp mitmproxy-0.17.1-osx/mitm* /usr/local/bin/

# libimobiledevice4
brew install -v --fresh automake autoconf libtool wget libimobiledevice
brew install -v --HEAD --fresh --build-from-source ideviceinstaller

Có thể tham khảo chi tiết tại đây và tải phần mềm tại đây

n0where