Skip to content

Security: ibrahmsql/IoTStrike

Security

SECURITY.md

Security Policy

Supported Versions

We actively support the following versions of the IoTStrike Hardware Security Framework with security updates:

Version Supported
1.0.x
< 1.0

Reporting a Vulnerability

Security Contact Information

If you discover a security vulnerability in the IoTStrike Hardware Security Framework, please report it responsibly:

  • Email: [[email protected]]
  • Subject: [SECURITY] IoTStrike Vulnerability Report
  • PGP Key: Available upon request

What to Include in Your Report

Please provide the following information in your security report:

  1. Vulnerability Description: Clear description of the security issue
  2. Affected Components: Which modules/files are affected
  3. Attack Vector: How the vulnerability can be exploited
  4. Impact Assessment: Potential consequences of exploitation
  5. Proof of Concept: Steps to reproduce (if safe to do so)
  6. Suggested Fix: If you have ideas for remediation
  7. Disclosure Timeline: Your preferred disclosure timeline

Response Timeline

  • Initial Response: Within 48 hours of report
  • Vulnerability Assessment: Within 7 days
  • Fix Development: Within 30 days (depending on severity)
  • Public Disclosure: Coordinated with reporter

Severity Classification

We use the following severity levels:

Critical (CVSS 9.0-10.0)

  • Remote code execution without authentication
  • Privilege escalation to root/system
  • Hardware damage potential
  • Mass exploitation potential

High (CVSS 7.0-8.9)

  • Authentication bypass
  • Local privilege escalation
  • Sensitive data exposure
  • Denial of service attacks

Medium (CVSS 4.0-6.9)

  • Information disclosure
  • Limited privilege escalation
  • Cross-site scripting (if web interface)
  • Input validation issues

Low (CVSS 0.1-3.9)

  • Minor information leaks
  • Configuration issues
  • Non-security bugs with security implications

Security Best Practices

For Users

  1. Run with Minimal Privileges:

    # Use sudo only when necessary
    sudo ./iotstrike --hardware
    
    # Drop privileges after initialization when possible
    ./iotstrike --drop-privileges
  2. Secure Configuration:

    {
      "security": {
        "level": "high",
        "memory_protection": true,
        "privilege_dropping": true,
        "secure_logging": true
      }
    }
  3. Network Security:

    • Use isolated networks for testing
    • Implement proper firewall rules
    • Monitor network traffic during tests
  4. Hardware Protection:

    • Use current-limited power supplies
    • Implement hardware watchdogs
    • Monitor temperature and voltage

For Developers

  1. Secure Coding Practices:

    // Always validate input
    if (input_size > MAX_BUFFER_SIZE) {
        return IOTSTRIKE_ERROR_INVALID_INPUT;
    }
    
    // Use secure memory functions
    memset_s(sensitive_data, sizeof(sensitive_data), 0, sizeof(sensitive_data));
    
    // Check return values
    if (hardware_init() != IOTSTRIKE_SUCCESS) {
        log_error("Hardware initialization failed");
        return IOTSTRIKE_ERROR_HARDWARE;
    }
  2. Memory Safety:

    • Use stack canaries
    • Implement buffer overflow protection
    • Zero sensitive memory after use
    • Validate all array bounds
  3. Error Handling:

    • Never ignore return values
    • Log security-relevant events
    • Fail securely (deny by default)
    • Provide minimal error information to users

Known Security Considerations

Hardware Access Requirements

⚠️ Root Privileges: The framework requires root access for hardware interfaces. This is necessary for:

  • Direct hardware register access
  • Memory-mapped I/O operations
  • Real-time scheduling priorities
  • Raw socket operations

Mitigation: The framework implements privilege dropping after initialization.

Wireless Security

⚠️ Monitor Mode: Wireless testing requires monitor mode, which can:

  • Interfere with normal network operations
  • Expose sensitive network traffic
  • Trigger intrusion detection systems

Mitigation: Use isolated test networks and proper authorization.

Memory Safety

⚠️ C Language: Core framework is written in C, which requires careful memory management:

  • Buffer overflow vulnerabilities
  • Use-after-free conditions
  • Memory leaks
  • Integer overflow issues

Mitigation: Comprehensive testing, static analysis, and runtime protection.

Hardware Damage Risk

⚠️ Direct Hardware Access: Framework can directly control hardware:

  • GPIO voltage levels
  • SPI/I2C communication
  • UART configuration
  • USB device interaction

Mitigation: Built-in hardware protection mechanisms and validation.

Security Features

Built-in Protections

  1. Memory Protection:

    • Stack canary protection (-fstack-protector-strong)
    • Address Space Layout Randomization (ASLR)
    • Non-executable stack (NX bit)
    • Secure heap management
  2. Input Validation:

    • Bounds checking on all inputs
    • Format string protection
    • Integer overflow detection
    • Path traversal prevention
  3. Privilege Management:

    • Automatic privilege dropping
    • Capability-based security
    • Resource limiting (ulimit)
    • Sandboxed execution
  4. Secure Communication:

    • TLS encryption for network operations
    • Authentication mechanisms
    • Secure key storage
    • Certificate validation

Compile-time Security

# Security-focused compiler flags
SECURITY_CFLAGS = -fstack-protector-strong \
                  -D_FORTIFY_SOURCE=2 \
                  -fPIE \
                  -Wformat \
                  -Wformat-security \
                  -Werror=format-security

SECURITY_LDFLAGS = -pie \
                   -Wl,-z,relro \
                   -Wl,-z,now \
                   -Wl,-z,noexecstack

Runtime Security

// Example security checks
int secure_hardware_init(void) {
    // Check for hardware protection
    if (!check_hardware_protection()) {
        log_security_event("Hardware protection not available");
        return IOTSTRIKE_ERROR_SECURITY;
    }
    
    // Drop privileges after initialization
    if (drop_privileges() != 0) {
        log_security_event("Failed to drop privileges");
        return IOTSTRIKE_ERROR_SECURITY;
    }
    
    return IOTSTRIKE_SUCCESS;
}

Responsible Disclosure

Our Commitment

  • We will acknowledge receipt of vulnerability reports within 48 hours
  • We will provide regular updates on remediation progress
  • We will credit researchers in security advisories (unless anonymity is requested)
  • We will not pursue legal action against researchers who follow responsible disclosure

Hall of Fame

We maintain a security researchers hall of fame for those who help improve the security of IoTStrike:

No entries yet - be the first!

Security Updates

Notification Channels

  • GitHub Security Advisories: Primary channel for security updates
  • Mailing List: [[email protected]] (planned)
  • RSS Feed: Security-only updates feed (planned)
  • Twitter: [@IoTStrike] for major security announcements (planned)

Update Process

  1. Security patches are released as soon as possible
  2. Version bumps follow semantic versioning
  3. Backports to supported versions when applicable
  4. Migration guides for breaking security changes

Legal and Ethical Use

Authorized Use Only

The IoTStrike Hardware Security Framework is designed for:

  • Authorized penetration testing
  • Security research
  • Educational purposes
  • Vulnerability assessment
  • Hardware security analysis

Prohibited Uses

Unauthorized access to systems you don't own ❌ Malicious attacks on production systems ❌ Privacy violations or data theft ❌ Disruption of critical infrastructure ❌ Commercial exploitation without proper licensing

Legal Compliance

Users must:

  • Obtain proper authorization before testing
  • Comply with local, state, and federal laws
  • Respect privacy and data protection regulations
  • Follow responsible disclosure practices
  • Maintain appropriate insurance coverage

Contact Information

For security-related inquiries:


Last Updated: January 15, 2024 Next Review: April 15, 2024

There aren’t any published security advisories