{
  "timestamp": "2026-05-01T03:05:38Z",
  "mode": "monitoring",
  "isFirstRun": false,
  "baselineMessage": "",
  "totalDomains": 1,
  "averageSecurityScore": 0,
  "contentChanges": 0,
  "dnsChanges": 0,
  "newVendors": 7,
  "criticalChanges": [],
  "scorecard": [
    {
      "area": "DNS health",
      "status": "Pass",
      "summary": "DNS records are monitored for additions, removals, and sensitive changes.",
      "categories": [
        "DNS"
      ],
      "findingIds": [],
      "findingCount": 0
    },
    {
      "area": "Website security headers",
      "status": "Action Needed",
      "summary": "Browser security headers and exposed hosting headers are checked.",
      "categories": [
        "Website",
        "Hosting"
      ],
      "findingIds": [
        "45a1d648f6f1",
        "65ccb2cef65c",
        "1e117f00b0b5",
        "494a65d3913f",
        "8c955274cc70",
        "a7160675f47b",
        "4a4527c1b6de"
      ],
      "findingCount": 7
    },
    {
      "area": "Email authentication",
      "status": "Action Needed",
      "summary": "SPF, DKIM, DMARC, MX provider, and spoofing risk are reviewed.",
      "categories": [
        "Email"
      ],
      "findingIds": [
        "fa0a3e943fc7",
        "9121d4d0df7c",
        "d8d45f74a50d"
      ],
      "findingCount": 3
    },
    {
      "area": "Vendor exposure",
      "status": "Watch",
      "summary": "Third-party hosts are categorized and unknown vendors are flagged.",
      "categories": [
        "Vendor"
      ],
      "findingIds": [
        "2a89b4319f41",
        "a61d69a450a9",
        "0b2da65658db"
      ],
      "findingCount": 3
    },
    {
      "area": "External vulnerability scan",
      "status": "Pass",
      "summary": "Nikto findings are promoted into customer-readable findings.",
      "categories": [
        "Nikto"
      ],
      "findingIds": [],
      "findingCount": 0
    }
  ],
  "findings": [
    {
      "id": "45a1d648f6f1",
      "domain": "cybersecuritypilot.org",
      "category": "Website",
      "baselineObservation": false,
      "title": "CSP header is missing",
      "summary": "cybersecuritypilot.org does not publish the content-security-policy header.",
      "impact": "Missing CSP can reduce browser-side protection for visitors.",
      "recommendation": "Add a content-security-policy header at the web server, CDN, or hosting layer.",
      "severity": "High",
      "owner": "Website",
      "effort": "Low",
      "confidence": "High",
      "evidence": {
        "name": "CSP",
        "header": "content-security-policy",
        "present": false,
        "value": null,
        "description": "Limits where scripts, frames, and other active content may load from."
      }
    },
    {
      "id": "fa0a3e943fc7",
      "domain": "cybersecuritypilot.org",
      "category": "Email",
      "baselineObservation": false,
      "title": "DMARC record is missing",
      "summary": "cybersecuritypilot.org does not publish a DMARC policy.",
      "impact": "Mailbox providers get less guidance on how to handle spoofed mail.",
      "recommendation": "Publish a _dmarc TXT record, starting with p=none for monitoring and moving toward quarantine or reject.",
      "severity": "High",
      "owner": "Email",
      "effort": "Medium",
      "confidence": "High",
      "evidence": {
        "present": false,
        "records": [],
        "policy": "missing"
      }
    },
    {
      "id": "9121d4d0df7c",
      "domain": "cybersecuritypilot.org",
      "category": "Email",
      "baselineObservation": false,
      "title": "Email spoofing risk is high",
      "summary": "cybersecuritypilot.org is missing both SPF and DMARC.",
      "impact": "Customers, staff, or vendors may receive convincing spoofed messages that appear to come from this domain.",
      "recommendation": "Add SPF and DMARC records, then validate them with a follow-up scan.",
      "severity": "High",
      "owner": "Email",
      "effort": "Medium",
      "confidence": "High",
      "evidence": {
        "mxPresent": true,
        "mxRecords": [
          "1 smtp.google.com."
        ],
        "mxProvider": "Google Workspace",
        "spf": {
          "present": false,
          "records": [],
          "valid": false
        },
        "dmarc": {
          "present": false,
          "records": [],
          "policy": "missing"
        },
        "dkim": {
          "selectorsChecked": [
            "google",
            "selector1",
            "selector2",
            "default",
            "k1",
            "mail",
            "s1",
            "s2"
          ],
          "records": [
            {
              "selector": "google",
              "records": [
                "\"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3I1SGJRu7zlU/1p9fUJDxwri711fDE+Yhlahu2r/Xkg8R5lzNXO1V8K0UzLFO2dVWvyx9QKGI65iaLIfWc4AlKWHmc7p6iMF+cQckOGxkRRQen8uePF6JIqJQWh9PZYnK7VU2I2UnTSnGWC3xF7sHRPRB9xN1NENOimk6B3+mizau6TzQA9fpIzMYSE60SbxeVUwSsuQkHDv0JCkFOhcjpnENhEFB2dCs8MXBPQrluhP/njpGIR/r00hml8Yfv3NNDGe5l+5MeWEuJzdkBUJpA0+9Qyvb/R7QCw+brtVwnGsaxl9+Gh0iHYXEjOMEG2vMutTQ5WbrGagyj5RKtt3kQIDAQAB\""
              ]
            }
          ],
          "present": true
        },
        "health": {
          "overall": "Action Needed",
          "spf": {
            "status": "Action Needed",
            "label": "SPF",
            "summary": "SPF record missing",
            "whyItMatters": "SPF tells receiving mail servers which systems may send mail for this domain."
          },
          "dkim": {
            "status": "Pass",
            "label": "DKIM",
            "summary": "1 selector(s) discovered",
            "whyItMatters": "DKIM cryptographically signs outbound mail so receivers can verify message authenticity."
          },
          "dmarc": {
            "status": "Action Needed",
            "label": "DMARC",
            "summary": "DMARC record missing",
            "whyItMatters": "DMARC tells receivers what to do when SPF or DKIM authentication fails."
          }
        },
        "spoofingRisk": "High",
        "discovered": [],
        "commonAliases": [
          "admin@cybersecuritypilot.org",
          "contact@cybersecuritypilot.org",
          "hello@cybersecuritypilot.org",
          "info@cybersecuritypilot.org",
          "security@cybersecuritypilot.org",
          "support@cybersecuritypilot.org",
          "webmaster@cybersecuritypilot.org"
        ],
        "totalPublicEmails": 0
      }
    },
    {
      "id": "65ccb2cef65c",
      "domain": "cybersecuritypilot.org",
      "category": "Website",
      "baselineObservation": false,
      "title": "HSTS header is missing",
      "summary": "cybersecuritypilot.org does not publish the strict-transport-security header.",
      "impact": "Missing HSTS can reduce browser-side protection for visitors.",
      "recommendation": "Add a strict-transport-security header at the web server, CDN, or hosting layer.",
      "severity": "High",
      "owner": "Website",
      "effort": "Low",
      "confidence": "High",
      "evidence": {
        "name": "HSTS",
        "header": "strict-transport-security",
        "present": false,
        "value": null,
        "description": "Forces browsers to use HTTPS after the first successful visit."
      }
    },
    {
      "id": "d8d45f74a50d",
      "domain": "cybersecuritypilot.org",
      "category": "Email",
      "baselineObservation": false,
      "title": "SPF record is missing",
      "summary": "cybersecuritypilot.org does not publish an SPF record.",
      "impact": "Attackers may have an easier time spoofing mail from this domain.",
      "recommendation": "Publish a TXT record beginning with v=spf1 that includes authorized mail senders.",
      "severity": "High",
      "owner": "Email",
      "effort": "Medium",
      "confidence": "High",
      "evidence": [
        "1 smtp.google.com."
      ]
    },
    {
      "id": "1e117f00b0b5",
      "domain": "cybersecuritypilot.org",
      "category": "Website",
      "baselineObservation": false,
      "title": "Referrer-Policy header is missing",
      "summary": "cybersecuritypilot.org does not publish the referrer-policy header.",
      "impact": "Missing Referrer-Policy can reduce browser-side protection for visitors.",
      "recommendation": "Add a referrer-policy header at the web server, CDN, or hosting layer.",
      "severity": "Medium",
      "owner": "Website",
      "effort": "Low",
      "confidence": "High",
      "evidence": {
        "name": "Referrer-Policy",
        "header": "referrer-policy",
        "present": false,
        "value": null,
        "description": "Controls how much referrer data leaves the site."
      }
    },
    {
      "id": "2a89b4319f41",
      "domain": "cybersecuritypilot.org",
      "category": "Vendor",
      "baselineObservation": false,
      "title": "Unknown third-party vendor observed",
      "summary": "cybersecuritypilot.org loads content from cdn.tailwindcss.com, which is not categorized yet.",
      "impact": "Unreviewed third-party scripts or assets can introduce availability, privacy, or security risk.",
      "recommendation": "Validate the vendor purpose and categorize it as approved or remove it if unnecessary.",
      "severity": "Medium",
      "owner": "Vendor",
      "effort": "Low",
      "confidence": "Medium",
      "evidence": {
        "name": "cdn.tailwindcss.com",
        "type": "Unknown",
        "category": "Unknown",
        "riskLabel": "Watch",
        "reason": "No known category pattern matched",
        "url": "https://cdn.tailwindcss.com"
      }
    },
    {
      "id": "a61d69a450a9",
      "domain": "cybersecuritypilot.org",
      "category": "Vendor",
      "baselineObservation": false,
      "title": "Unknown third-party vendor observed",
      "summary": "cybersecuritypilot.org loads content from techmore.github.io, which is not categorized yet.",
      "impact": "Unreviewed third-party scripts or assets can introduce availability, privacy, or security risk.",
      "recommendation": "Validate the vendor purpose and categorize it as approved or remove it if unnecessary.",
      "severity": "Medium",
      "owner": "Vendor",
      "effort": "Low",
      "confidence": "Medium",
      "evidence": {
        "name": "techmore.github.io",
        "type": "Unknown",
        "category": "Unknown",
        "riskLabel": "Watch",
        "reason": "No known category pattern matched",
        "url": "https://techmore.github.io/TM-NMapUI-www/"
      }
    },
    {
      "id": "0b2da65658db",
      "domain": "cybersecuritypilot.org",
      "category": "Vendor",
      "baselineObservation": false,
      "title": "Unknown third-party vendor observed",
      "summary": "cybersecuritypilot.org loads content from techmore.github.io, which is not categorized yet.",
      "impact": "Unreviewed third-party scripts or assets can introduce availability, privacy, or security risk.",
      "recommendation": "Validate the vendor purpose and categorize it as approved or remove it if unnecessary.",
      "severity": "Medium",
      "owner": "Vendor",
      "effort": "Low",
      "confidence": "Medium",
      "evidence": {
        "name": "techmore.github.io",
        "type": "Unknown",
        "category": "Unknown",
        "riskLabel": "Watch",
        "reason": "No known category pattern matched",
        "url": "https://techmore.github.io/tm-external-baseline/"
      }
    },
    {
      "id": "494a65d3913f",
      "domain": "cybersecuritypilot.org",
      "category": "Website",
      "baselineObservation": false,
      "title": "XCTO header is missing",
      "summary": "cybersecuritypilot.org does not publish the x-content-type-options header.",
      "impact": "Missing XCTO can reduce browser-side protection for visitors.",
      "recommendation": "Add a x-content-type-options header at the web server, CDN, or hosting layer.",
      "severity": "Medium",
      "owner": "Website",
      "effort": "Low",
      "confidence": "High",
      "evidence": {
        "name": "XCTO",
        "header": "x-content-type-options",
        "present": false,
        "value": null,
        "description": "Prevents MIME sniffing in supported browsers."
      }
    },
    {
      "id": "8c955274cc70",
      "domain": "cybersecuritypilot.org",
      "category": "Website",
      "baselineObservation": false,
      "title": "XFO header is missing",
      "summary": "cybersecuritypilot.org does not publish the x-frame-options header.",
      "impact": "Missing XFO can reduce browser-side protection for visitors.",
      "recommendation": "Add a x-frame-options header at the web server, CDN, or hosting layer.",
      "severity": "Medium",
      "owner": "Website",
      "effort": "Low",
      "confidence": "High",
      "evidence": {
        "name": "XFO",
        "header": "x-frame-options",
        "present": false,
        "value": null,
        "description": "Reduces clickjacking risk by controlling frame embedding."
      }
    },
    {
      "id": "a7160675f47b",
      "domain": "cybersecuritypilot.org",
      "category": "Hosting",
      "baselineObservation": false,
      "title": "server header is exposed",
      "summary": "cybersecuritypilot.org exposes server: GitHub.com.",
      "impact": "Technology disclosure can help attackers fingerprint hosting or application components.",
      "recommendation": "Review whether the server header is needed and remove or reduce it when possible.",
      "severity": "Low",
      "owner": "Hosting",
      "effort": "Low",
      "confidence": "Medium",
      "evidence": {
        "header": "server",
        "value": "GitHub.com"
      }
    },
    {
      "id": "4a4527c1b6de",
      "domain": "cybersecuritypilot.org",
      "category": "Hosting",
      "baselineObservation": false,
      "title": "via header is exposed",
      "summary": "cybersecuritypilot.org exposes via: 1.1 varnish.",
      "impact": "Technology disclosure can help attackers fingerprint hosting or application components.",
      "recommendation": "Review whether the via header is needed and remove or reduce it when possible.",
      "severity": "Low",
      "owner": "Hosting",
      "effort": "Low",
      "confidence": "Medium",
      "evidence": {
        "header": "via",
        "value": "1.1 varnish"
      }
    }
  ],
  "remediation": [
    {
      "id": "147068059301",
      "domain": "cybersecuritypilot.org",
      "task": "Add a content-security-policy header at the web server, CDN, or hosting layer.",
      "sourceFinding": "45a1d648f6f1",
      "severity": "High",
      "owner": "Website",
      "effort": "Low",
      "evidence": {
        "name": "CSP",
        "header": "content-security-policy",
        "present": false,
        "value": null,
        "description": "Limits where scripts, frames, and other active content may load from."
      }
    },
    {
      "id": "1d45e6a52daa",
      "domain": "cybersecuritypilot.org",
      "task": "Publish a _dmarc TXT record, starting with p=none for monitoring and moving toward quarantine or reject.",
      "sourceFinding": "fa0a3e943fc7",
      "severity": "High",
      "owner": "Email",
      "effort": "Medium",
      "evidence": {
        "present": false,
        "records": [],
        "policy": "missing"
      }
    },
    {
      "id": "9a7c7ad6d818",
      "domain": "cybersecuritypilot.org",
      "task": "Add SPF and DMARC records, then validate them with a follow-up scan.",
      "sourceFinding": "9121d4d0df7c",
      "severity": "High",
      "owner": "Email",
      "effort": "Medium",
      "evidence": {
        "mxPresent": true,
        "mxRecords": [
          "1 smtp.google.com."
        ],
        "mxProvider": "Google Workspace",
        "spf": {
          "present": false,
          "records": [],
          "valid": false
        },
        "dmarc": {
          "present": false,
          "records": [],
          "policy": "missing"
        },
        "dkim": {
          "selectorsChecked": [
            "google",
            "selector1",
            "selector2",
            "default",
            "k1",
            "mail",
            "s1",
            "s2"
          ],
          "records": [
            {
              "selector": "google",
              "records": [
                "\"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3I1SGJRu7zlU/1p9fUJDxwri711fDE+Yhlahu2r/Xkg8R5lzNXO1V8K0UzLFO2dVWvyx9QKGI65iaLIfWc4AlKWHmc7p6iMF+cQckOGxkRRQen8uePF6JIqJQWh9PZYnK7VU2I2UnTSnGWC3xF7sHRPRB9xN1NENOimk6B3+mizau6TzQA9fpIzMYSE60SbxeVUwSsuQkHDv0JCkFOhcjpnENhEFB2dCs8MXBPQrluhP/njpGIR/r00hml8Yfv3NNDGe5l+5MeWEuJzdkBUJpA0+9Qyvb/R7QCw+brtVwnGsaxl9+Gh0iHYXEjOMEG2vMutTQ5WbrGagyj5RKtt3kQIDAQAB\""
              ]
            }
          ],
          "present": true
        },
        "health": {
          "overall": "Action Needed",
          "spf": {
            "status": "Action Needed",
            "label": "SPF",
            "summary": "SPF record missing",
            "whyItMatters": "SPF tells receiving mail servers which systems may send mail for this domain."
          },
          "dkim": {
            "status": "Pass",
            "label": "DKIM",
            "summary": "1 selector(s) discovered",
            "whyItMatters": "DKIM cryptographically signs outbound mail so receivers can verify message authenticity."
          },
          "dmarc": {
            "status": "Action Needed",
            "label": "DMARC",
            "summary": "DMARC record missing",
            "whyItMatters": "DMARC tells receivers what to do when SPF or DKIM authentication fails."
          }
        },
        "spoofingRisk": "High",
        "discovered": [],
        "commonAliases": [
          "admin@cybersecuritypilot.org",
          "contact@cybersecuritypilot.org",
          "hello@cybersecuritypilot.org",
          "info@cybersecuritypilot.org",
          "security@cybersecuritypilot.org",
          "support@cybersecuritypilot.org",
          "webmaster@cybersecuritypilot.org"
        ],
        "totalPublicEmails": 0
      }
    },
    {
      "id": "f7f4e21faed8",
      "domain": "cybersecuritypilot.org",
      "task": "Add a strict-transport-security header at the web server, CDN, or hosting layer.",
      "sourceFinding": "65ccb2cef65c",
      "severity": "High",
      "owner": "Website",
      "effort": "Low",
      "evidence": {
        "name": "HSTS",
        "header": "strict-transport-security",
        "present": false,
        "value": null,
        "description": "Forces browsers to use HTTPS after the first successful visit."
      }
    },
    {
      "id": "6b9156644ff9",
      "domain": "cybersecuritypilot.org",
      "task": "Publish a TXT record beginning with v=spf1 that includes authorized mail senders.",
      "sourceFinding": "d8d45f74a50d",
      "severity": "High",
      "owner": "Email",
      "effort": "Medium",
      "evidence": [
        "1 smtp.google.com."
      ]
    },
    {
      "id": "a1f881ad1ea2",
      "domain": "cybersecuritypilot.org",
      "task": "Add a referrer-policy header at the web server, CDN, or hosting layer.",
      "sourceFinding": "1e117f00b0b5",
      "severity": "Medium",
      "owner": "Website",
      "effort": "Low",
      "evidence": {
        "name": "Referrer-Policy",
        "header": "referrer-policy",
        "present": false,
        "value": null,
        "description": "Controls how much referrer data leaves the site."
      }
    },
    {
      "id": "6fda7fe2301f",
      "domain": "cybersecuritypilot.org",
      "task": "Validate the vendor purpose and categorize it as approved or remove it if unnecessary.",
      "sourceFinding": "2a89b4319f41",
      "severity": "Medium",
      "owner": "Vendor",
      "effort": "Low",
      "evidence": {
        "name": "cdn.tailwindcss.com",
        "type": "Unknown",
        "category": "Unknown",
        "riskLabel": "Watch",
        "reason": "No known category pattern matched",
        "url": "https://cdn.tailwindcss.com"
      }
    },
    {
      "id": "d9d19edacab3",
      "domain": "cybersecuritypilot.org",
      "task": "Validate the vendor purpose and categorize it as approved or remove it if unnecessary.",
      "sourceFinding": "a61d69a450a9",
      "severity": "Medium",
      "owner": "Vendor",
      "effort": "Low",
      "evidence": {
        "name": "techmore.github.io",
        "type": "Unknown",
        "category": "Unknown",
        "riskLabel": "Watch",
        "reason": "No known category pattern matched",
        "url": "https://techmore.github.io/TM-NMapUI-www/"
      }
    },
    {
      "id": "0db47ac6a1e8",
      "domain": "cybersecuritypilot.org",
      "task": "Validate the vendor purpose and categorize it as approved or remove it if unnecessary.",
      "sourceFinding": "0b2da65658db",
      "severity": "Medium",
      "owner": "Vendor",
      "effort": "Low",
      "evidence": {
        "name": "techmore.github.io",
        "type": "Unknown",
        "category": "Unknown",
        "riskLabel": "Watch",
        "reason": "No known category pattern matched",
        "url": "https://techmore.github.io/tm-external-baseline/"
      }
    },
    {
      "id": "c48b3ab11210",
      "domain": "cybersecuritypilot.org",
      "task": "Add a x-content-type-options header at the web server, CDN, or hosting layer.",
      "sourceFinding": "494a65d3913f",
      "severity": "Medium",
      "owner": "Website",
      "effort": "Low",
      "evidence": {
        "name": "XCTO",
        "header": "x-content-type-options",
        "present": false,
        "value": null,
        "description": "Prevents MIME sniffing in supported browsers."
      }
    },
    {
      "id": "1c284c5312e5",
      "domain": "cybersecuritypilot.org",
      "task": "Add a x-frame-options header at the web server, CDN, or hosting layer.",
      "sourceFinding": "8c955274cc70",
      "severity": "Medium",
      "owner": "Website",
      "effort": "Low",
      "evidence": {
        "name": "XFO",
        "header": "x-frame-options",
        "present": false,
        "value": null,
        "description": "Reduces clickjacking risk by controlling frame embedding."
      }
    },
    {
      "id": "e78cbf240ee5",
      "domain": "cybersecuritypilot.org",
      "task": "Review whether the server header is needed and remove or reduce it when possible.",
      "sourceFinding": "a7160675f47b",
      "severity": "Low",
      "owner": "Hosting",
      "effort": "Low",
      "evidence": {
        "header": "server",
        "value": "GitHub.com"
      }
    },
    {
      "id": "d60740c7033d",
      "domain": "cybersecuritypilot.org",
      "task": "Review whether the via header is needed and remove or reduce it when possible.",
      "sourceFinding": "4a4527c1b6de",
      "severity": "Low",
      "owner": "Hosting",
      "effort": "Low",
      "evidence": {
        "header": "via",
        "value": "1.1 varnish"
      }
    }
  ],
  "changes": [],
  "vendorTypes": {
    "Analytics": 0,
    "Advertising": 0,
    "Social": 0,
    "Fonts": 3,
    "Payment": 0,
    "Marketing": 0,
    "CDN": 1,
    "Libraries": 0,
    "Unknown": 3
  },
  "securityHeaders": {
    "HSTS": 0,
    "CSP": 0,
    "XFO": 0,
    "XCTO": 0,
    "Referrer-Policy": 0
  },
  "recentChanges": [],
  "dnsRecords": [
    {
      "domain": "cybersecuritypilot.org",
      "type": "A",
      "value": "185.199.108.153",
      "lastChange": "2026-05-01T03:05:37Z"
    },
    {
      "domain": "cybersecuritypilot.org",
      "type": "A",
      "value": "185.199.109.153",
      "lastChange": "2026-05-01T03:05:37Z"
    },
    {
      "domain": "cybersecuritypilot.org",
      "type": "A",
      "value": "185.199.110.153",
      "lastChange": "2026-05-01T03:05:37Z"
    },
    {
      "domain": "cybersecuritypilot.org",
      "type": "A",
      "value": "185.199.111.153",
      "lastChange": "2026-05-01T03:05:37Z"
    },
    {
      "domain": "cybersecuritypilot.org",
      "type": "MX",
      "value": "1 smtp.google.com.",
      "lastChange": "2026-05-01T03:05:37Z"
    },
    {
      "domain": "cybersecuritypilot.org",
      "type": "NS",
      "value": "ns1.hover.com.",
      "lastChange": "2026-05-01T03:05:37Z"
    },
    {
      "domain": "cybersecuritypilot.org",
      "type": "NS",
      "value": "ns2.hover.com.",
      "lastChange": "2026-05-01T03:05:37Z"
    },
    {
      "domain": "cybersecuritypilot.org",
      "type": "TXT",
      "value": "\"CSP-verification-a88fbb45fe6aec95d98c16e7872475515611af44a9267eb2c89c6b49891efcf6\"",
      "lastChange": "2026-05-01T03:05:37Z"
    },
    {
      "domain": "cybersecuritypilot.org",
      "type": "TXT",
      "value": "\"google-site-verification=-F7YSQ9ZuWrJxLZM95edc8mIYfxp6YwTq87QR90RgRE\"",
      "lastChange": "2026-05-01T03:05:37Z"
    }
  ],
  "vendors": [
    {
      "name": "unpkg.com",
      "type": "CDN",
      "firstSeen": "2026-05-01T03:05:38Z",
      "lastChange": "2026-05-01T03:05:38Z",
      "status": "observed",
      "siteCount": 1
    },
    {
      "name": "fonts.googleapis.com",
      "type": "Fonts",
      "firstSeen": "2026-05-01T03:05:38Z",
      "lastChange": "2026-05-01T03:05:38Z",
      "status": "observed",
      "siteCount": 1
    },
    {
      "name": "fonts.gstatic.com",
      "type": "Fonts",
      "firstSeen": "2026-05-01T03:05:38Z",
      "lastChange": "2026-05-01T03:05:38Z",
      "status": "observed",
      "siteCount": 1
    },
    {
      "name": "cdn.tailwindcss.com",
      "type": "Unknown",
      "firstSeen": "2026-05-01T03:05:38Z",
      "lastChange": "2026-05-01T03:05:38Z",
      "status": "observed",
      "siteCount": 1
    },
    {
      "name": "techmore.github.io",
      "type": "Unknown",
      "firstSeen": "2026-05-01T03:05:38Z",
      "lastChange": "2026-05-01T03:05:38Z",
      "status": "observed",
      "siteCount": 1
    }
  ],
  "sites": [
    {
      "domain": "cybersecuritypilot.org",
      "lastChange": "2026-05-01T03:05:37Z",
      "dnsChanges": 0,
      "vendorCount": 7,
      "status": 200,
      "reportFile": "external_domain_baseline_20260501_030538.html"
    }
  ],
  "sections": [
    {
      "id": "dns",
      "title": "DNS Records",
      "summary": "9 records observed",
      "items": [
        {
          "label": "A",
          "value": "185.199.108.153"
        },
        {
          "label": "A",
          "value": "185.199.109.153"
        },
        {
          "label": "A",
          "value": "185.199.110.153"
        },
        {
          "label": "A",
          "value": "185.199.111.153"
        },
        {
          "label": "MX",
          "value": "1 smtp.google.com."
        },
        {
          "label": "NS",
          "value": "ns1.hover.com."
        },
        {
          "label": "NS",
          "value": "ns2.hover.com."
        },
        {
          "label": "TXT",
          "value": "\"CSP-verification-a88fbb45fe6aec95d98c16e7872475515611af44a9267eb2c89c6b49891efcf6\""
        },
        {
          "label": "TXT",
          "value": "\"google-site-verification=-F7YSQ9ZuWrJxLZM95edc8mIYfxp6YwTq87QR90RgRE\""
        }
      ]
    },
    {
      "id": "website",
      "title": "Website Status, Headers, Vendors",
      "summary": "HTTP 200 with 7 third-party hosts",
      "items": [
        {
          "label": "Final URL",
          "value": "https://cybersecuritypilot.org"
        },
        {
          "label": "HTTP status",
          "value": 200
        },
        {
          "label": "TLS",
          "value": "TLSv1.3"
        },
        {
          "label": "HSTS",
          "value": "Missing"
        },
        {
          "label": "CSP",
          "value": "Missing"
        },
        {
          "label": "XFO",
          "value": "Missing"
        },
        {
          "label": "XCTO",
          "value": "Missing"
        },
        {
          "label": "Referrer-Policy",
          "value": "Missing"
        },
        {
          "label": "CDN",
          "value": "unpkg.com - https://unpkg.com/lucide@latest"
        },
        {
          "label": "Fonts",
          "value": "fonts.googleapis.com - https://fonts.googleapis.com"
        },
        {
          "label": "Fonts",
          "value": "fonts.googleapis.com - https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter:wght@300;400;500;600;700;800&display=swap"
        },
        {
          "label": "Fonts",
          "value": "fonts.gstatic.com - https://fonts.gstatic.com"
        },
        {
          "label": "Unknown",
          "value": "cdn.tailwindcss.com - https://cdn.tailwindcss.com"
        },
        {
          "label": "Unknown",
          "value": "techmore.github.io - https://techmore.github.io/TM-NMapUI-www/"
        },
        {
          "label": "Unknown",
          "value": "techmore.github.io - https://techmore.github.io/tm-external-baseline/"
        }
      ]
    },
    {
      "id": "nikto",
      "title": "Nikto Exposure Scan",
      "summary": "Nikto not installed",
      "items": [
        {
          "label": "Status",
          "value": "skipped"
        }
      ]
    },
    {
      "id": "email",
      "title": "Email Authentication Health",
      "summary": "Action Needed: SPF Action Needed, DKIM Pass, DMARC Action Needed",
      "items": [
        {
          "label": "MX provider",
          "value": "Google Workspace"
        },
        {
          "label": "SPF",
          "value": "SPF record missing"
        },
        {
          "label": "DKIM",
          "value": "1 selector(s) discovered"
        },
        {
          "label": "DMARC",
          "value": "DMARC record missing"
        },
        {
          "label": "Spoofing risk",
          "value": "High"
        },
        {
          "label": "Common alias",
          "value": "admin@cybersecuritypilot.org"
        },
        {
          "label": "Common alias",
          "value": "contact@cybersecuritypilot.org"
        },
        {
          "label": "Common alias",
          "value": "hello@cybersecuritypilot.org"
        },
        {
          "label": "Common alias",
          "value": "info@cybersecuritypilot.org"
        },
        {
          "label": "Common alias",
          "value": "security@cybersecuritypilot.org"
        },
        {
          "label": "Common alias",
          "value": "support@cybersecuritypilot.org"
        },
        {
          "label": "Common alias",
          "value": "webmaster@cybersecuritypilot.org"
        }
      ]
    }
  ],
  "domains": {
    "cybersecuritypilot.org": {
      "timestamp": "2026-05-01T03:05:37Z",
      "dns": {
        "A": [
          "185.199.108.153",
          "185.199.109.153",
          "185.199.110.153",
          "185.199.111.153"
        ],
        "AAAA": [],
        "MX": [
          "1 smtp.google.com."
        ],
        "NS": [
          "ns1.hover.com.",
          "ns2.hover.com."
        ],
        "TXT": [
          "\"CSP-verification-a88fbb45fe6aec95d98c16e7872475515611af44a9267eb2c89c6b49891efcf6\"",
          "\"google-site-verification=-F7YSQ9ZuWrJxLZM95edc8mIYfxp6YwTq87QR90RgRE\""
        ],
        "CAA": []
      },
      "website": {
        "url": "https://cybersecuritypilot.org",
        "status": 200,
        "error": null,
        "headers": {
          "connection": "close",
          "content-length": "21945",
          "server": "GitHub.com",
          "content-type": "text/html; charset=utf-8",
          "last-modified": "Fri, 01 May 2026 02:47:50 GMT",
          "access-control-allow-origin": "*",
          "etag": "\"69f41456-55b9\"",
          "expires": "Fri, 01 May 2026 03:01:11 GMT",
          "cache-control": "max-age=600",
          "x-proxy-cache": "MISS",
          "x-github-request-id": "2C5C:206406:B9537:CC56D:69F4151E",
          "accept-ranges": "bytes",
          "age": "0",
          "date": "Fri, 01 May 2026 03:05:37 GMT",
          "via": "1.1 varnish",
          "x-served-by": "cache-ewr-kewr1740041-EWR",
          "x-cache": "HIT",
          "x-cache-hits": "0",
          "x-timer": "S1777604738.666695,VS0,VE18",
          "vary": "Accept-Encoding",
          "x-fastly-request-id": "d32cf8dbb3cd185b2832efc031f6cbf14c064f62"
        },
        "securityHeaders": {
          "HSTS": null,
          "CSP": null,
          "XFO": null,
          "XCTO": null,
          "Referrer-Policy": null
        },
        "securityAnalysis": {
          "checks": [
            {
              "name": "HSTS",
              "header": "strict-transport-security",
              "present": false,
              "value": null,
              "description": "Forces browsers to use HTTPS after the first successful visit."
            },
            {
              "name": "CSP",
              "header": "content-security-policy",
              "present": false,
              "value": null,
              "description": "Limits where scripts, frames, and other active content may load from."
            },
            {
              "name": "XFO",
              "header": "x-frame-options",
              "present": false,
              "value": null,
              "description": "Reduces clickjacking risk by controlling frame embedding."
            },
            {
              "name": "XCTO",
              "header": "x-content-type-options",
              "present": false,
              "value": null,
              "description": "Prevents MIME sniffing in supported browsers."
            },
            {
              "name": "Referrer-Policy",
              "header": "referrer-policy",
              "present": false,
              "value": null,
              "description": "Controls how much referrer data leaves the site."
            }
          ],
          "present": 0,
          "missing": [
            {
              "name": "HSTS",
              "header": "strict-transport-security",
              "present": false,
              "value": null,
              "description": "Forces browsers to use HTTPS after the first successful visit."
            },
            {
              "name": "CSP",
              "header": "content-security-policy",
              "present": false,
              "value": null,
              "description": "Limits where scripts, frames, and other active content may load from."
            },
            {
              "name": "XFO",
              "header": "x-frame-options",
              "present": false,
              "value": null,
              "description": "Reduces clickjacking risk by controlling frame embedding."
            },
            {
              "name": "XCTO",
              "header": "x-content-type-options",
              "present": false,
              "value": null,
              "description": "Prevents MIME sniffing in supported browsers."
            },
            {
              "name": "Referrer-Policy",
              "header": "referrer-policy",
              "present": false,
              "value": null,
              "description": "Controls how much referrer data leaves the site."
            }
          ],
          "exposedHeaders": [
            {
              "header": "server",
              "value": "GitHub.com"
            },
            {
              "header": "via",
              "value": "1.1 varnish"
            }
          ]
        },
        "ssl": {
          "version": "TLSv1.3",
          "cipher": "TLS_AES_128_GCM_SHA256",
          "issuer": {
            "countryName": "US",
            "organizationName": "Let's Encrypt",
            "commonName": "R12"
          },
          "subject": {
            "commonName": "cybersecuritypilot.org"
          },
          "notBefore": "May  1 01:24:24 2026 GMT",
          "notAfter": "Jul 30 01:24:23 2026 GMT"
        },
        "vendors": [
          {
            "name": "unpkg.com",
            "type": "CDN",
            "category": "CDN",
            "riskLabel": "Observed",
            "reason": "Matched cdn pattern",
            "url": "https://unpkg.com/lucide@latest"
          },
          {
            "name": "fonts.googleapis.com",
            "type": "Fonts",
            "category": "Fonts",
            "riskLabel": "Observed",
            "reason": "Matched fonts pattern",
            "url": "https://fonts.googleapis.com"
          },
          {
            "name": "fonts.googleapis.com",
            "type": "Fonts",
            "category": "Fonts",
            "riskLabel": "Observed",
            "reason": "Matched fonts pattern",
            "url": "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter:wght@300;400;500;600;700;800&display=swap"
          },
          {
            "name": "fonts.gstatic.com",
            "type": "Fonts",
            "category": "Fonts",
            "riskLabel": "Observed",
            "reason": "Matched fonts pattern",
            "url": "https://fonts.gstatic.com"
          },
          {
            "name": "cdn.tailwindcss.com",
            "type": "Unknown",
            "category": "Unknown",
            "riskLabel": "Watch",
            "reason": "No known category pattern matched",
            "url": "https://cdn.tailwindcss.com"
          },
          {
            "name": "techmore.github.io",
            "type": "Unknown",
            "category": "Unknown",
            "riskLabel": "Watch",
            "reason": "No known category pattern matched",
            "url": "https://techmore.github.io/TM-NMapUI-www/"
          },
          {
            "name": "techmore.github.io",
            "type": "Unknown",
            "category": "Unknown",
            "riskLabel": "Watch",
            "reason": "No known category pattern matched",
            "url": "https://techmore.github.io/tm-external-baseline/"
          }
        ],
        "nikto": {
          "available": false,
          "status": "skipped",
          "findings": [],
          "findingCount": 0
        }
      },
      "email": {
        "mxPresent": true,
        "mxRecords": [
          "1 smtp.google.com."
        ],
        "mxProvider": "Google Workspace",
        "spf": {
          "present": false,
          "records": [],
          "valid": false
        },
        "dmarc": {
          "present": false,
          "records": [],
          "policy": "missing"
        },
        "dkim": {
          "selectorsChecked": [
            "google",
            "selector1",
            "selector2",
            "default",
            "k1",
            "mail",
            "s1",
            "s2"
          ],
          "records": [
            {
              "selector": "google",
              "records": [
                "\"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3I1SGJRu7zlU/1p9fUJDxwri711fDE+Yhlahu2r/Xkg8R5lzNXO1V8K0UzLFO2dVWvyx9QKGI65iaLIfWc4AlKWHmc7p6iMF+cQckOGxkRRQen8uePF6JIqJQWh9PZYnK7VU2I2UnTSnGWC3xF7sHRPRB9xN1NENOimk6B3+mizau6TzQA9fpIzMYSE60SbxeVUwSsuQkHDv0JCkFOhcjpnENhEFB2dCs8MXBPQrluhP/njpGIR/r00hml8Yfv3NNDGe5l+5MeWEuJzdkBUJpA0+9Qyvb/R7QCw+brtVwnGsaxl9+Gh0iHYXEjOMEG2vMutTQ5WbrGagyj5RKtt3kQIDAQAB\""
              ]
            }
          ],
          "present": true
        },
        "health": {
          "overall": "Action Needed",
          "spf": {
            "status": "Action Needed",
            "label": "SPF",
            "summary": "SPF record missing",
            "whyItMatters": "SPF tells receiving mail servers which systems may send mail for this domain."
          },
          "dkim": {
            "status": "Pass",
            "label": "DKIM",
            "summary": "1 selector(s) discovered",
            "whyItMatters": "DKIM cryptographically signs outbound mail so receivers can verify message authenticity."
          },
          "dmarc": {
            "status": "Action Needed",
            "label": "DMARC",
            "summary": "DMARC record missing",
            "whyItMatters": "DMARC tells receivers what to do when SPF or DKIM authentication fails."
          }
        },
        "spoofingRisk": "High",
        "discovered": [],
        "commonAliases": [
          "admin@cybersecuritypilot.org",
          "contact@cybersecuritypilot.org",
          "hello@cybersecuritypilot.org",
          "info@cybersecuritypilot.org",
          "security@cybersecuritypilot.org",
          "support@cybersecuritypilot.org",
          "webmaster@cybersecuritypilot.org"
        ],
        "totalPublicEmails": 0
      }
    }
  },
  "recentReports": [
    {
      "date": "2026-05-01T03:05:38Z",
      "domains": 1,
      "url": "external_domain_baseline_20260501_030538.html"
    }
  ]
}