Skip to content

Document Threat Model and Risk Mitigations #5

@lidel

Description

@lidel

Overview

Let's assume IPFS nodes fetch autoconfig.json from URLs configured during app init (e.g. ipfs init), typically from https://config.ipfs-mainnet.org/autoconfig.json. This dynamic configuration mechanism introduces security considerations that need to be documented and addressed.

Current Implementation

  • Nodes fetch config from HTTPS URLs only (no HTTP)
  • No authentication or verification mechanism
  • Config contains routing systems, bootstrap nodes, DNS resolvers, and delegated endpoints
  • Cached up to 24 hours (CacheTTL: 86400)

Threat Model

graph TD
    A[IPFS Node] -->|HTTPS Request| B[config.ipfs-mainnet.org]
    A -->|DNS Query| C[DNS Resolver]

    B -.->|MITM Attack| D[Attacker-Controlled Server]
    C -.->|DNS Hijacking| E[Malicious DNS Response]

    D -->|Inject| F[Malicious Bootstrap Nodes]
    D -->|Inject| G[Malicious Delegated Endpoints]
    D -->|Inject| H[Malicious DNS Resolvers]
    D -->|Send| I[Malformed/Oversized Response]

    F -->|Result| J[Node joins attacker's swarm]
    G -->|Result| K[Traffic routed through attacker]
    H -->|Result| L[DNS queries intercepted]
    I -->|Result| M[DoS/Resource exhaustion]

    style D fill:#f96,stroke:#333,stroke-width:2px
    style E fill:#f96,stroke:#333,stroke-width:2px
    style J fill:#faa,stroke:#333,stroke-width:2px
    style K fill:#faa,stroke:#333,stroke-width:2px
    style L fill:#faa,stroke:#333,stroke-width:2px
    style M fill:#faa,stroke:#333,stroke-width:2px
Loading

The website should include Security section with FAQ how to deal with the above threats.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions