Skip to content

A modern web application that aggregates threat intelligence data from multiple sources including AbuseIPDB, VirusTotal, and Shodan. The application provides both a command-line interface (CLI) and a web dashboard for threat intelligence analysis

abriljordan/threat_intel_aggregtor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ Threat Intelligence Aggregator with Network Monitoring

Python Flask License Status

A comprehensive security monitoring solution that combines external threat intelligence with real-time local network monitoring. The application provides a unified web dashboard for threat intelligence analysis and local security monitoring.

πŸš€ Features

πŸ” Threat Intelligence

  • Multi-source Integration: AbuseIPDB, VirusTotal, Shodan, and HttpBL
  • IP Reputation Checking: Real-time IP reputation analysis
  • Malware Detection: File hash analysis and malware scanning
  • Network Intelligence: Port scanning and service detection
  • MITRE ATT&CK Integration: Threat correlation with MITRE framework

🌐 Network Monitoring

  • Real-time Connection Tracking: Monitor all network connections
  • Process Monitoring: Track system processes and their network activity
  • YARA-based Malware Detection: Local malware scanning using YARA rules
  • Threat Correlation: Automatically correlate local events with external threat intelligence

πŸ“Š Unified Dashboard

  • Interactive Web Interface: Real-time updates via WebSocket
  • Comprehensive Alerts: Combined alerts from local and external sources
  • Risk Scoring: Intelligent threat scoring based on multiple factors
  • Historical Analysis: Track and analyze security events over time
  • Database-backed Reports: PostgreSQL storage with JSONB support

πŸ“Έ Screenshots

πŸ” Authentication & User Management

Feature Screenshot
Login Page Login Page
Create Account Create Account

πŸ“Š Dashboard & Analytics

Feature Screenshot
Main Dashboard Dashboard
Advanced Dashboard Advanced Dashboard

πŸ” Threat Intelligence & Search

Feature Screenshot
IP Search Interface Search
Threat Intelligence Threat Intelligence
MITRE ATT&CK Integration MITRE ATT&CK

πŸ“° News & Reports

Feature Screenshot
Security News Feed News
Reports View Reports

🌐 Network Monitoring

Feature Screenshot
Network Monitoring Dashboard Network Monitoring

πŸ“‹ Prerequisites

  • Python 3.9 or higher
  • PostgreSQL database
  • API Keys for:

πŸ› οΈ Installation

1. Clone the Repository

git clone https://github.com/yourusername/threat_intel_aggregator.git
cd threat_intel_aggregator

2. Set Up Virtual Environment

python -m venv venv
source venv/bin/activate

3. Install Dependencies

pip install -r requirements.txt

4. Configure Environment Variables

Create a .env file in the project root:

# API Keys
ABUSEIPDB_API_KEY=your_abuseipdb_key_here
VIRUSTOTAL_API_KEY=your_virustotal_key_here
SHODAN_API_KEY=your_shodan_key_here
HTTPBL_ACCESS_KEY=your_httpbl_key_here

# Flask Configuration
FLASK_SECRET_KEY=your_secret_key_here
FLASK_ENV=development

# Database Configuration
DATABASE_URL=postgresql://username:password@localhost/threat_intel_db

5. Set Up Database

# Create PostgreSQL database
createdb threat_intel_db

# Run database migrations
python add_reports_table.py

πŸš€ Quick Start

Start the Web Server

python run.py

Access the Dashboard

  1. Open your browser and navigate to http://localhost:5000
  2. For new users: Click "Register" to create an account
  3. For existing users: Log in with your credentials
  4. Default admin account:
    • Username: admin
    • Password: admin123

User Management

Self-Registration

New users can create accounts through the web interface:

  1. Click "Register" in the navigation bar
  2. Fill out the registration form with:
    • Username (3-20 characters, alphanumeric with underscore/dash)
    • Email address
    • Strong password (8+ chars, uppercase, lowercase, number, special char)
    • Password confirmation
    • Terms of service agreement
  3. Click "Create Account"
  4. Log in with your new credentials

Administrative User Management

Use the command-line tool for user administration:

# List all users
python manage_users.py list

# Create a new user
python manage_users.py create username email@example.com Password123!

# Delete a user
python manage_users.py delete username

# Reset user password
python manage_users.py reset-password username NewPassword123!

# Show user details
python manage_users.py show username

Security Features

  • Password Requirements: Minimum 8 characters with uppercase, lowercase, number, and special character
  • Username Validation: 3-20 characters, alphanumeric with underscore/dash
  • Email Validation: Proper email format required
  • Duplicate Prevention: Username and email must be unique
  • Terms Agreement: Users must agree to Terms of Service and Privacy Policy
  • Admin Protection: Default admin account cannot be deleted

Test the Integration

python test_integration.py

πŸ“ Project Structure

threat_intel_aggregator/
β”œβ”€β”€ πŸ“‚ api_clients/              # Threat intelligence API clients
β”‚   β”œβ”€β”€ abuseipdb_client.py
β”‚   β”œβ”€β”€ virustotal_client.py
β”‚   β”œβ”€β”€ shodan_client.py
β”‚   └── base.py
β”œβ”€β”€ πŸ“‚ network_monitoring/       # Network monitoring components
β”‚   β”œβ”€β”€ connection_monitor.py
β”‚   β”œβ”€β”€ process_monitor.py
β”‚   β”œβ”€β”€ threat_detector.py
β”‚   β”œβ”€β”€ yara_scanner.py
β”‚   └── πŸ“‚ yara_rules/          # YARA malware detection rules
β”œβ”€β”€ πŸ“‚ integration/              # Integration layer
β”‚   β”œβ”€β”€ event_correlator.py
β”‚   β”œβ”€β”€ unified_alerter.py
β”‚   └── network_monitor_manager.py
β”œβ”€β”€ πŸ“‚ web_dashboard/            # Web application
β”‚   β”œβ”€β”€ πŸ“‚ templates/           # HTML templates
β”‚   β”œβ”€β”€ πŸ“‚ static/             # Static files (CSS, JS)
β”‚   β”œβ”€β”€ models.py              # Database models
β”‚   └── routes.py              # Route handlers
β”œβ”€β”€ πŸ“‚ threat_intelligence/      # MITRE ATT&CK integration
β”œβ”€β”€ πŸ“‚ reports/                 # Generated reports
β”œβ”€β”€ πŸ“‚ cache/                   # Cached threat intelligence data
β”œβ”€β”€ run.py                     # Web server entry point
β”œβ”€β”€ requirements.txt           # Project dependencies
└── README.md                 # This file

πŸ”Œ API Integration

The application integrates with four major threat intelligence APIs:

API Purpose Features
AbuseIPDB IP Reputation IP reputation checking, abuse confidence scoring, country/ISP info
VirusTotal Malware Detection Malware detection, network activity analysis, community reputation
Shodan Network Intelligence Port scanning, service detection, vulnerability assessment
HttpBL DNS Blacklist DNS-based blacklist checking, threat scoring, visitor classification

πŸ”§ Configuration

Alert Thresholds

Configure alert sensitivity in the integration components:

  • Network connection threat score threshold
  • Process risk level thresholds
  • YARA match thresholds
  • Correlation score thresholds

Monitoring Settings

  • Connection monitoring interval
  • Process monitoring frequency
  • YARA scan frequency
  • Cache TTL settings

πŸ›‘οΈ Security Features

Real-time Monitoring

  • Connection Tracking: Monitor all TCP/UDP connections
  • Process Analysis: Track processes and their network activity
  • YARA Scanning: Local malware detection using YARA rules
  • Behavioral Analysis: Detect suspicious process behavior

Threat Correlation

  • Automatic Enrichment: Correlate local events with external threat intelligence
  • Risk Scoring: Calculate comprehensive threat scores
  • Alert Generation: Generate alerts based on correlation results
  • Cache Management: Efficient caching of threat intelligence results

Data Privacy

  • Local Processing: Network monitoring runs locally
  • Secure Storage: Encrypted storage of sensitive data
  • API Rate Limiting: Respect API rate limits
  • Cache Management: Automatic cache expiration

πŸ› Troubleshooting

Common Issues

Issue Solution
Import Errors Ensure all dependencies are installed: pip install -r requirements.txt
API Errors Verify API keys are correct and have sufficient quota
Permission Errors Network monitoring may require elevated privileges
Database Errors Check PostgreSQL connection and run migrations

Debug Mode

Enable debug logging:

import logging
logging.basicConfig(level=logging.DEBUG)

🀝 Contributing

We welcome contributions! Please follow these steps:

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

Development Guidelines

  • Follow PEP 8 style guidelines
  • Add tests for new features
  • Update documentation as needed
  • Ensure all tests pass before submitting

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“ž Support

If you encounter any issues or have questions:

  • Open an Issue
  • Check the Wiki for detailed documentation

⭐ Star this repository if you find it useful!

About

A modern web application that aggregates threat intelligence data from multiple sources including AbuseIPDB, VirusTotal, and Shodan. The application provides both a command-line interface (CLI) and a web dashboard for threat intelligence analysis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published