Security model
Scout's security posture is a direct consequence of its extension architecture. Running inside your browser means your data, sessions, and credentials never leave your machine.
Security principles
Every architectural decision in Scout was made with security as a first-class constraint, not an afterthought.
No remote browser infrastructure
Scout runs in your browser. No traffic routes through third-party servers. No screenshots of your pages stored on external infrastructure. Your data stays in your browser.
No credential forwarding
Your authenticated sessions, cookies, and tokens are never transmitted to Scout's servers. The extension operates locally within your browser's security context.
Least-privilege permissions
Scout requests only the Chrome extension permissions it needs: debugger API for CDP access, tabs for tab management. No blanket permissions, no content script injection by default.
URL scheme firewall
Governance layer blocks navigation to sensitive URL schemes (chrome://, file://, chrome-extension://). Configurable allowlists prevent automation from reaching internal browser pages.
Credit-based rate limiting
Built-in governance prevents runaway automation. Credit limits cap the number of tool calls per time period. No accidental infinite loops consuming resources.
Session isolation
Each CDP session is scoped to a single tab. Sessions cannot access other tabs' content, cookies, or execution contexts. Clean teardown on disconnect.
End-to-end encryption
All communication between the extension and orchestration server uses WSS (WebSocket Secure). TLS encryption for all data in transit.
Deterministic error handling
Failed operations return explicit errors, never silently succeed. The agent always knows the true state of browser interactions.
Extension permissions
Chrome extension permissions Scout requires, with rationale and risk assessment for each.
debuggerAllows using chrome.debugger to attach CDP sessions to tabs.
Why: Core CDP access. Cannot be scoped further.
High power, low risk — isolated per session.
tabsAccess the list of open tabs and their URLs and titles.
Why: Required for browser-tabs and browser-attach tools.
Read-only metadata. No tab content access.
activeTabAccess the active tab when the user invokes the extension.
Why: Scoped tab access on user gesture.
Only active tab, only on invocation.
storageStore local session state, connection metadata, and settings.
Why: Extension needs to persist connection config across restarts.
Local only. Never synced to Scout servers.
identityOAuth2 authentication for user identity.
Why: Google sign-in for account linking.
Standard OAuth flow. No raw credential access.
clipboardRead/WriteRead from and write to the system clipboard.
Why: Required for browser-clipboard tool.
Only triggered by explicit tool calls.
scriptingInject scripts into web pages programmatically.
Why: Content script injection for in-page features.
Scoped to active page context.
sidePanelShow the side panel for session status and monitoring.
Why: User-visible UI only. No data collection.
UI surface only.
cookiesRead and write browser cookies for any domain.
Why: Required for browser-cookies tool.
Scoped per tool call. No bulk access.
webNavigationObserve navigation events across tabs.
Why: Track page lifecycle for session management.
Read-only navigation events.
contextMenusAdd items to the browser context menu.
Why: Quick-access actions from right-click menu.
UI surface only.
downloadsMonitor and manage file downloads.
Why: Required for browser-download tool.
Scoped to downloads initiated by tool calls.
notificationsShow browser notifications.
Why: Alert user to completed jobs or errors.
User-visible alerts only.
tabGroupsOrganize tabs into groups.
Why: Tab organization for multi-session workflows.
UI management only.
Threat model
Known attack vectors, scenarios of concern, and the mitigations Scout applies.
Malicious prompt instructs Scout to exfiltrate data
MitigationsAttacker intercepts or replays WebSocket commands
MitigationsAgent enters an infinite loop consuming browser resources
MitigationsOne agent session accesses another session's data
MitigationsSecurity disclosure
If you discover a security vulnerability in Scout, please report it via responsible disclosure. We aim to respond within 48 hours and provide a fix within 14 days for critical issues.
security@scout.i.ng