Skip to content

Latest commit

 

History

History
56 lines (49 loc) · 4.63 KB

File metadata and controls

56 lines (49 loc) · 4.63 KB

Attack Surface Analysis for betamaxteam/betamax

  • Description: Cassettes (recorded HTTP interactions) may contain sensitive information.
    • Betamax Contribution: Betamax's core function is to record all HTTP traffic, including sensitive data, unless explicitly configured otherwise.
    • Example: A cassette records a request with an Authorization: Bearer <JWT> header, exposing a valid authentication token.
    • Impact:
      • Compromise of user accounts.
      • Unauthorized access to protected resources.
      • Data breaches and regulatory violations (e.g., GDPR, CCPA).
      • Reputational damage.
    • Risk Severity: Critical
    • Mitigation Strategies:
      • Data Redaction: Use Betamax's filtering capabilities (matchers, placeholders, custom filters) to remove or replace sensitive data (API keys, tokens, PII, etc.) before it's written to the cassette. Prioritize headers like Authorization and Cookie, and sensitive data within request/response bodies.
      • Secure Storage: Store cassettes in a secure, access-controlled location. Never commit them to public repositories. Use environment variables or secure configuration for access control.
      • Cassette Encryption: Encrypt cassettes at rest, especially if complete redaction is impossible.
      • Regular Audits: Regularly review cassette contents to ensure no sensitive data is present.
      • Short-Lived Cassettes: Delete cassettes when they are no longer needed.
      • Placeholder Usage: Employ Betamax's placeholder feature to substitute sensitive data with consistent, non-sensitive values.
  • Description: Attackers could modify recorded cassettes to alter application behavior during testing.
    • Betamax Contribution: Betamax replays exactly what's in the cassette, making it vulnerable to manipulation if the cassette is not protected.
    • Example: An attacker modifies a cassette to inject a successful authentication response, bypassing login checks in tests.
    • Impact:
      • False positives in testing (tests pass when they shouldn't).
      • Masking of security vulnerabilities.
      • Potential for introducing vulnerabilities through manipulated responses.
      • Denial of service by injecting large or malformed responses.
    • Risk Severity: High
    • Mitigation Strategies:
      • Restricted Write Access: Store cassettes in a location with strictly limited write access. Use file system permissions, ACLs, or other security mechanisms.
      • Integrity Checks: Implement checksums (e.g., hashing) or digital signatures to verify cassette integrity before use.
      • Read-Only Mode: Configure Betamax to use cassettes in read-only mode whenever possible.
      • Limited Scope: Use separate cassettes for different test scenarios to minimize the impact of a single compromised cassette.
  • Description: Recording mode interacts with real external services, potentially causing unintended side effects.
    • Betamax Contribution: Betamax's recording mode sends requests to the actual configured endpoints.
    • Example: A test run in recording mode against a production payment gateway accidentally processes a real transaction.
    • Impact:
      • Modification of production data.
      • Triggering of unintended actions (e.g., sending emails, financial transactions).
      • Consumption of API rate limits.
      • Data exfiltration to real services.
    • Risk Severity: High
    • Mitigation Strategies:
      • Dedicated Test Environments: Never record against production systems. Use isolated testing or staging environments.
      • Mocking: For critical services, use mocking frameworks alongside Betamax to prevent any real interaction during recording.
      • Careful Test Design: Avoid tests that perform destructive actions during recording.
      • Rate Limit Awareness: Be mindful of API rate limits and avoid exceeding them.
      • record_mode: :none Default: Configure Betamax to default to a non-recording mode, requiring explicit enabling for recording.