🔥🐕 Firehound Firebase Security Scanner
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
- 🌐 Complete Documentation: https://firehound.covertlabs.io
- 🐛 Issues & Support: https://github.com/covertlabsaus/firehound/issues
🤝 Contributing
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - 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
Metadata
Release files for firehound-scanner 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| firehound_scanner-2.0.0.tar.gz | 25.5 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| firehound_scanner-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.9 kB
Release files / firehound_scanner-2.0.0.tar.gz
| Download URL | firehound_scanner-2.0.0.tar.gz |
|---|---|
| Size | 25.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f9a1a564161c92146f1273852994cf1b65f7c1018e21de59e8531d06aa40e0f5
|
|
BLAKE2b-256 checksum How to use checksums |
0d2fd4d0510873f6288d8b045ee5624a89581190ee6b3dce9c314e6749ff212b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 22, 2025.
Transparency logRelease files / firehound_scanner-2.0.0-py3-none-any.whl
| Download URL | firehound_scanner-2.0.0-py3-none-any.whl |
|---|---|
| Size | 25.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
44bf3b534775aff8f9aded98833e2490813944ccb0b9d13bf36f9c8be469acf3
|
|
BLAKE2b-256 checksum How to use checksums |
f9de88109480a68298367b72307e2f3809a8ad9a177af680fca7ada3ba6389e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 22, 2025.
Transparency logSecurity for firehound-scanner 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for firehound_scanner-2.0.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 22, 2025.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.