Skip to main content

Firebase security scanner for iOS apps

Project description

🔥🐕 Firehound Firebase Security Scanner

PyPI version Python 3.8+

Automated Firebase security scanner for iOS applications

Firehound downloads iOS apps from the App Store, extracts Firebase configurations, and systematically tests for security misconfigurations across Realtime Database, Firestore, Storage, Functions, and Hosting services.

🚀 Quick Start

Installation

# Install from PyPI  
pip install firehound-scanner

# Or with pipx (recommended for tools)
pipx install firehound-scanner

Prerequisites

Install ipatool for App Store downloads:

# macOS
brew install majd/repo/ipatool

# Linux - download from releases
# https://github.com/majd/ipatool/releases

Setup & Usage

# 1. One-time setup with Apple ID
ipatool auth login --email your@email.com

# 2. Set environment variables
export FIREHOUND_EMAIL='your@email.com'
export FIREHOUND_KEYCHAIN_PASSPHRASE='your_passphrase'
export FIREHOUND_APPLE_ID_PASSWORD='your_password'

# 3. Start scanning!
firehound --search "banking apps" -l 3      # Search and scan
firehound --bundle-id com.example.app       # Scan specific app
firehound --ids-file app-list.txt           # Batch scan
firehound --directory /path/to/app          # Scan extracted app

🏗️ How It Works

graph LR
    A[🔍 App Store Search] --> B[📱 Download iOS App]
    B --> C[📋 Extract Firebase Config]
    C --> D[🧪 Test Firebase Services]
    D --> E[📊 Generate Report]
    
    subgraph "Firebase Services"
        F[🔥 Realtime Database]
        G[📄 Firestore]
        H[📦 Storage Buckets]
        I[⚡ Cloud Functions]
        J[🌐 Hosting]
    end
    
    D --> F
    D --> G
    D --> H
    D --> I
    D --> J

✨ Key Features

  • 🔍 Automated Discovery: Search App Store or scan specific apps
  • 🏗️ Complete Coverage: Tests all major Firebase services
  • 🔐 Authentication Testing: Attempts anonymous and email auth
  • 📊 Detailed Reports: JSON reports with evidence and proof-of-concept
  • Fast & Efficient: Concurrent testing with smart retries
  • 🧹 Responsible Testing: Cleans up test data automatically

🎯 What It Finds

🚨 Critical Issues

  • Public write access to databases or storage
  • Exposed security rules configuration
  • Admin endpoints accessible without auth

⚠️ Security Issues

  • Public read access to sensitive data
  • Directory listing enabled on storage
  • Unauthenticated API endpoints

Detection Coverage

graph TD
    A[Firebase App] --> B{Services Found}
    
    B --> C[🔥 Realtime Database]
    B --> D[📄 Firestore]  
    B --> E[📦 Storage]
    B --> F[⚡ Functions]
    B --> G[🌐 Hosting]
    
    C --> C1[Read Rules Exposure]
    C --> C2[Public Read Access]
    C --> C3[Public Write Access]
    
    D --> D1[Collection Access]
    D --> D2[Document Creation]
    D --> D3[Query Permissions]
    
    E --> E1[Object Listing]
    E --> E2[File Upload]
    E --> E3[Public Downloads]
    
    F --> F1[Endpoint Discovery]
    F --> F2[Unauthenticated Access]
    
    G --> G1[Web App Access]
    G --> G2[Config Exposure]

📚 Documentation

🤝 Contributing

  1. Fork the repository
  2. Create feature branch: git checkout -b feature/amazing-feature
  3. Commit changes: git commit -m 'Add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open a Pull Request

⚖️ Legal & Ethics

  • Test only apps you own or have permission to test
  • Follow responsible disclosure for found vulnerabilities
  • Respect rate limits and terms of service
  • Do not test apps without authorization

📄 License

MIT License - see LICENSE file for details.


Built with ❤️ for the security community

App Store Search Process

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

firehound_scanner-2.0.0.tar.gz (25.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

firehound_scanner-2.0.0-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file firehound_scanner-2.0.0.tar.gz.

File metadata

  • Download URL: firehound_scanner-2.0.0.tar.gz
  • Upload date:
  • Size: 25.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for firehound_scanner-2.0.0.tar.gz
Algorithm Hash digest
SHA256 f9a1a564161c92146f1273852994cf1b65f7c1018e21de59e8531d06aa40e0f5
MD5 909226b12d36a319efe380851c76b9b2
BLAKE2b-256 0d2fd4d0510873f6288d8b045ee5624a89581190ee6b3dce9c314e6749ff212b

See more details on using hashes here.

Provenance

The following attestation bundles were made for firehound_scanner-2.0.0.tar.gz:

Publisher: pypi-publish.yml on covertlabsaus/firehound

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file firehound_scanner-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for firehound_scanner-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44bf3b534775aff8f9aded98833e2490813944ccb0b9d13bf36f9c8be469acf3
MD5 6e58019f74e53415f2592e897def4469
BLAKE2b-256 f9de88109480a68298367b72307e2f3809a8ad9a177af680fca7ada3ba6389e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for firehound_scanner-2.0.0-py3-none-any.whl:

Publisher: pypi-publish.yml on covertlabsaus/firehound

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page