HIGH missing tlschidynamodb

Missing Tls in Chi with Dynamodb

Missing Tls in Chi with Dynamodb — how this specific combination creates or exposes the vulnerability

When a Chi service in a F# application communicates with Amazon DynamoDB without Transport Layer Security (TLS), credentials, session tokens, and query parameters can be exposed in transit. This scenario commonly occurs when the HTTP client used by Chi does not enforce HTTPS or when a developer uses an HTTP endpoint for DynamoDB in a production environment. Because Chi routes HTTP requests through its middleware pipeline, any weak or missing transport security in those routes can expose data before it reaches DynamoDB.

In a black-box scan, middleBrick tests unauthenticated attack surfaces and flags Missing TLS as a high-severity finding under Data Exposure and Encryption checks. For example, if a Chi endpoint forwards requests to http://dynamodb.us-east-1.amazonaws.com instead of https://dynamodb.us-east-1.amazonaws.com, the scan detects that data-in-transit is not cryptographically protected. Attackers on shared networks or via compromised access points can observe or tamper with requests and responses, including potentially sensitive item keys used in BOLA/IDOR tests that middleBrick also runs in parallel.

Because DynamoDB supports TLS 1.2 on its standard endpoints, failing to enforce it in Chi violates common compliance mappings such as OWASP API Top 10:2023 — API1:2023 Broken Object Level Authorization and GDPR requirements around data-in-transit protection. middleBrick correlates findings across its 12 checks, so Missing TLS often appears alongside findings from Property Authorization and Data Exposure, highlighting how insecure transport can weaken authorization boundaries. The scanner does not assume internal network safety; it validates that every external call from Chi to DynamoDB uses encrypted channels, which is especially important when environment variables or configuration files mistakenly point to non-TLS endpoints during deployment.

Dynamodb-Specific Remediation in Chi — concrete code fixes

To remediate Missing TLS in Chi, ensure all DynamoDB endpoint URLs use HTTPS and that the HTTP client enforces secure communication. Below is a complete, realistic F# example using the official AWS SDK for .NET, configured within a Chi endpoint. This approach guarantees that requests to DynamoDB are encrypted and that certificate validation is enforced.

open Amazon.DynamoDBv2
open Amazon.DynamoDBv2.Model
open Amazon.Runtime
open System
open Felicity

// Secure client configuration with enforced TLS 1.2
let createSecureDynamoClient () =
    let config = new AmazonDynamoDBConfig(
        ServiceURL = "https://dynamodb.us-east-1.amazonaws.com", // HTTPS enforced
        UseHttp = false,
        Timeout = TimeSpan.FromSeconds(10.)
    )
    // Use the default chain or explicit credentials; avoid anonymous clients in production
    new AmazonDynamoDBClient(config)

// Example Chi GET handler that reads an item securely
let getItemHandler (client: IAmazonDynamoDB) (req: HttpRequest) =
    asyncResult {
        let! pk = req.queryStringString "id"
        if String.IsNullOrWhiteSpace pk then
            return! RequestErrors.BAD_REQUEST "Missing id query parameter" None
        let! response =
            client.GetItemAsync(
                new GetItemRequest(
                    TableName = "middlebrick_audit_log",
                    Key = dict [ "Id", new Amazon.DynamoDBv2.Model.AttributeValue(S: pk) ]
                )
            )
        match response.IsItemSet with
        | true -> return OK (response.Item)
        | false -> return NOT_FOUND "Item not found" None
    }

// Integration in Chi pipeline
let app = 
    choose [
        GET >> path "/api/log" >> getItemHandler (createSecureDynamoClient())
        setStatusCode 404 >> text "Not found"
    ]

For the CLI and CI/CD use cases, developers can run middlebrick scan <url> to detect Missing TLS across endpoints, including those proxied through Chi. If you integrate the GitHub Action, you can fail builds automatically when risk scores drop below your threshold, ensuring that insecure HTTP calls to DynamoDB are caught before deployment. The MCP Server allows similar checks directly from IDEs, so scanning aligns with development workflows without requiring manual configuration.

Pro plans provide continuous monitoring and configurable schedules, so any regression in TLS enforcement for Chi-to-DynamoDB traffic triggers Slack or email alerts. This is valuable because environment misconfigurations can inadvertently revert secure settings during updates. Unlike tools that only inspect static code, middleBrick validates runtime behavior against DynamoDB endpoints, which helps teams maintain encryption in transit as part of broader OWASP API Top 10 and compliance mappings.

Related CWEs: encryption

CWE IDNameSeverity
CWE-319Cleartext Transmission of Sensitive Information HIGH
CWE-295Improper Certificate Validation HIGH
CWE-326Inadequate Encryption Strength HIGH
CWE-327Use of a Broken or Risky Cryptographic Algorithm HIGH
CWE-328Use of Weak Hash HIGH
CWE-330Use of Insufficiently Random Values HIGH
CWE-338Use of Cryptographically Weak PRNG MEDIUM
CWE-693Protection Mechanism Failure MEDIUM
CWE-757Selection of Less-Secure Algorithm During Negotiation HIGH
CWE-261Weak Encoding for Password HIGH

Frequently Asked Questions

Does middleBrick test TLS enforcement for DynamoDB endpoints accessed through Chi?
Yes. During a scan, middleBrick validates that all external calls from the target API, including Chi routes that reach DynamoDB, use HTTPS and enforce TLS 1.2. Missing TLS is reported as a high-severity finding under Data Exposure and Encryption.
Can I fail my CI/CD pipeline automatically if Chi endpoints communicate with DynamoDB without TLS?
Yes. With the Pro plan, you can use the GitHub Action to set a security score threshold. If a scan detects Missing TLS or related encryption issues in Chi-to-DynamoDB traffic, the build fails, preventing insecure deployments.