Repository navigation
[security-observability] Daily Security Observability Report — 2026-11-10 #76556
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Daily Security Observability Report. A newer discussion is available at Discussion #76905. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Executive Summary
This report is partial coverage, not a full seven-day census. Startup found 84 eligible completed runs and capped the audit at 20 (newest first). All 20 audits succeeded (0 failed, 0 budget-stopped, 64 omitted). The sample comes from 2026-11-10 only. 14 of the 20 runs are from the firewall dataset and 6 are from the DIFC dataset.
Firewall: The 20 audited runs made 856 network requests. 855 were allowed and 1 was blocked, a 0.12% block rate. The only block was an unattributed
(unknown)destination in Daily Fact. All allowed traffic went to expected infrastructure: Copilot/GitHub APIs, OpenAI, Sentry and Grafana telemetry, and Go and GCS package hosts. No policy rule-level denials were recorded.DIFC: The 6 DIFC-dataset runs produced 74 filtered events, all on 2026-11-10 and all from the
githubMCP server. 73 events (98.6%) were integrity filters, where the agent cannot read data below the "approved" integrity level. 1 event was a secrecy filter.search_issuesalone caused 60 events (81%). Daily Documentation Updater was the largest source (44 events).Cross-cutting: No workflow had a firewall block and DIFC filtering in the same run, except that Daily Fact has both. It had the only firewall block (1) and 11 DIFC events. The two signals are otherwise independent. Network egress is clean, and the filtering activity is read-time integrity filtering on public, unapproved GitHub content.
🔥 Firewall Analysis
Key Firewall Metrics
(unknown)block)Coverage: 20 selected, 20 audited, 0 failed, 64 omitted by the audit cap (84 eligible). This is partial coverage.
📈 Firewall Request Trends
The bounded audit sample covers only 2026-11-10, so a 30-day time series isn't possible. The chart shows per-run allowed vs. blocked volume instead. Request volume is steady, at roughly 20–110 requests per run. The heaviest are the Matt Pocock Skills Reviewer runs (90 and 109). The single block appears in Daily Fact (run 42831945709).
Top Blocked Domains
With only one block, the chart shows the top domains by total request volume (log scale, blocked in red). The firewall did not attribute the lone block to a hostname. That pattern is usually a non-HTTP(S) or malformed request, or a connection that never completed a CONNECT/SNI handshake.
Most Frequently Blocked Domains
(unknown)Policy Rule Attribution
📋 Policy: 9–11 rules, SSL Bump disabled, DLP disabled (varies by workflow).
policy_analysis.rule_hitswas empty in all 20 audits, anddenied_countwas 0. No rule-level attribution is available this period.View Detailed Request Patterns by Workflow
View Allowed Domain Volumes (all domains observed)
🔒 Firewall Security Recommendations
(unknown)block in Daily Fact run 42831945709. Check the raw squid/AWF logs for the request that carried no hostname, and confirm it isn't a legitimate tool needing an allowlist entry.policy_analysisis correctly populated from the firewall logs. All 20 runs reported 0 rule hits despite 856 requests.🔒 DIFC Integrity Analysis
Key DIFC Metrics
The restored warm-start snapshot (
updated_at2026-11-10T16:04:30Z) is valid. The DIFC dataset lists 200 runs from the last ~18 days, 70 of them from the last 7 days. Only the 6 runs that overlap the bounded audit sample were audited for event detail.📈 DIFC Events Over Time
All audited events fall on 2026-11-10, because the cap selects the newest runs. The chart shows hourly distribution (UTC). Daily trends can't be inferred from this sample.
🔧 Top Filtered Tools
search_issuesdominates with 60 events (81%). Agents running cross-repo or broad issue searches return results authored by non-members, which are taggednone:publicorunapproved:public. Next areget_discussion_comments(10) and single events each forget_discussion,get_code_scanning_alert,list_code_scanning_alertsandlist_issues.🏷️ Filter Reasons and Tags
Integrity filtering accounts for 73 events and secrecy for 1. The integrity tags are
none:public(74),unapproved:public(63) andapproved:public(1). The twoprivatesecrecy tags appear onlist_code_scanning_alertsandget_code_scanning_alert. The agent doesn't hold private-scope authorization in those runs.📋 Per-Workflow DIFC Breakdown
📋 Per-Server DIFC Breakdown
👤 Per-User DIFC Breakdown
The audit output (
mcp_tool_usage.filtered_events) did not includeauthor_loginorauthor_association, so a per-user breakdown is unavailable. Each event instead carries a resource reference (issue:owner/repo#N,discussion:...,security-alert:...) and anhtml_url.💡 DIFC Tuning Recommendations
search_issuesusage in Daily Documentation Updater (44 events). Scope queries withauthor_association-friendly filters (for examplerepo:github/gh-awplusis:issue label:...), or prefetch the relevant data in a pre-agent step.approvedintegrity floor is intended for the read-only reporting workflows (Daily Fact, Daily CLI Performance Agent, Go Fan). If they must read community-authored content, evaluate loweringmin-integrityper workflow. Otherwise accept that the filtered content is excluded by design.get_discussion/get_discussion_commentsin Daily Fact (11 events). One event reportsdiscussion:github/gh-aw#unknown, which suggests a resource-labeling gap worth reporting upstream.author_loginandauthor_associationon filtered events, per-user tuning isn't possible.Generated by the Daily Security Observability workflow (consolidated from Daily Firewall Reporter + Daily DIFC Analyzer)
Analysis window: Last 7 days (bounded sample: 20 of 84 eligible runs) | Repository: github/gh-aw
Run: https://github.com/github/gh-aw/actions/runs/42849033654
All reactions