Documentation
Everything you need to install, configure, and operate NetScope across all three products.
What is NetScope?
NetScope is a full-stack network observability platform built for security and operations teams. It consists of three products that work independently or together: a native Desktop App for live packet capture, a headless Capture Agent for server and cloud deployments, and a SaaS Hub that aggregates flows from any number of agents into a searchable, alerting-capable analytics platform.
The entire pipeline — from raw packets to searchable flows — is designed for high throughput with minimal overhead. The capture core is written in Rust; the Hub backend uses Go with ClickHouse for storage, giving you sub-second query times even on hundreds of millions of flows.
How the products connect
NetScope Desktop
A native macOS and Windows application that turns your laptop or workstation into a real-time packet analyser. No tcpdump, no Wireshark filters — just open the app, pick an interface, and see enriched, decoded flows in milliseconds.
Rust Capture Core
Zero-copy packet processing with libpcap bindings. Sub-millisecond first-packet latency at line rate on a MacBook.
Deep Protocol Decode
Full reassembly and decode for DNS, TLS 1.2/1.3, HTTP/1.1, HTTP/2, gRPC, ICMP, and ARP out of the box.
GeoIP Enrichment
Every external IP is tagged with country, ASN, and org automatically using bundled MaxMind GeoLite2 databases.
Threat Intel Badges
IPs are cross-referenced against bundled threat feeds. Malicious or suspicious hosts surface a coloured threat badge instantly.
Process Attribution
On macOS, each flow is annotated with the originating process name and PID — no guesswork about which app is making that connection.
Hub Connect Mode
One toggle streams all captured flows to your NetScope Hub, letting you centralise data from every machine in your team.
Installation
NetScope Desktop ships as a signed .dmg (macOS) and .exe installer (Windows). Download from the download page and run the installer — no additional runtime dependencies required.
| Platform | Requirement | Notes |
|---|---|---|
| macOS 13+ | Apple Silicon or Intel, 4 GB RAM | Notarization pending — use right-click Open |
| Windows 10/11 | x64, Npcap or WinPcap installed | Download Npcap free edition if not already installed |
Live Capture
Select any available network interface (en0, Wi-Fi, Ethernet, VPN tunnel) from the interface picker at the top of the window. Capture starts immediately. You can switch interfaces without restarting the application.
The flow table refreshes in real time. Each row represents a completed or active TCP/UDP flow with protocol, source/dest IPs and ports, packet/byte counts, duration, and any decoded application data. Scroll back through the session history — flows are retained in memory until the session is cleared or the app restarts.
Protocol Support
NetScope decodes the following application-layer protocols with full field extraction:
| Protocol | Decoded Fields | Notes |
|---|---|---|
| DNS | Query name, type (A/AAAA/MX/TXT/…), response IPs, TTL, RCODE | UDP & TCP DNS, DoT detection |
| TLS | SNI hostname, cipher suite, TLS version, cert SANs, issuer, expiry | TLS 1.0–1.3; certificate sidebar on click |
| HTTP/1.1 | Method, URI, Host header, status code, response size, user-agent | Full request/response in detail pane |
| HTTP/2 | Method, :authority, :path, status, HPACK headers, stream IDs | ALPN negotiation-based detection |
| gRPC | Service, method, status code, content-type, frame metadata | Detected on HTTP/2 + application/grpc content-type |
| ICMP | Type, code, echo id/seq for ping traffic | IPv4 and IPv6 |
| ARP | Operation (request/reply), sender/target IP and MAC | Layer-2 visibility for LAN monitoring |
Threat Intelligence
Every external IP is checked against bundled threat intelligence feeds on first observation. Matching IPs receive a coloured badge in the flow table:
| Badge | Meaning |
|---|---|
| HIGH | Known malware C2, active botnet node, or confirmed threat actor IP |
| MED | Suspicious — tor exit node, scanning host, or grey-listed IP |
| LOW | Watchlisted — VPN endpoint, proxy, or data centre IP with no active threat |
Feeds are embedded in the application binary and updated with each release. When Hub Connect Mode is active, the Hub's live threat feed is used instead, giving you real-time intelligence updates without waiting for a new app version.
UI Panes
The Desktop UI uses a three-pane layout. Each pane is resizable and can be collapsed to focus on what matters.
| Pane | Contents |
|---|---|
| Flow List (left) | Scrollable, real-time table of all captured flows. Click any row to select it and populate the detail panes. |
| Flow Detail (top right) | Full decoded fields for the selected flow — protocol headers, decoded payload, GeoIP, threat badge, and process name. |
| Analytics / TLS Sidebar (bottom right) | Context-sensitive: shows the TLS certificate chain for TLS flows, HTTP analytics (top hosts, methods, status codes) for HTTP flows, and a service dependency graph for all traffic. |
Hub Connect Mode
Enable Hub Connect Mode in Settings → Hub Connection. Enter your Hub URL and an API token generated in Hub Settings → Tokens. Once connected, all flows captured on this machine are streamed to the Hub in real time.
# Settings → Hub Connection
Hub URL : https://your-hub.example.com
API Token : nst_xxxxxxxxxxxxxxxxxxxx
Auto-start : ✓ (reconnect on app launch)
Label : Alice-MacBook # appears in Hub Fleet view
The connection is a persistent WebSocket over TLS. If the Hub is temporarily unreachable, the Desktop buffers up to 50,000 flows in memory and replays them on reconnect.
NetScope Capture Agent
A lightweight, headless capture daemon designed for servers, cloud VMs, Kubernetes nodes, and network appliances. Deploy it once and it reports flows to the Hub continuously — no GUI, no manual intervention, zero local storage.
Dual Capture Modes
Choose libpcap for maximum compatibility or eBPF for kernel-level capture with near-zero CPU overhead on Linux 5.8+.
One-Line Enrollment
A single curl command downloads, installs, and enrolls the agent. The Hub generates a unique token per agent for secure identification.
Multi-Interface
Capture on any number of interfaces simultaneously. Useful for tap ports, SPAN sessions, and bonded NICs.
Cloud VPC Support
Ingest VPC Flow Logs from AWS, GCP, and Azure directly in the Hub, complementing agent-based capture for cloud workloads.
Remote Config Push
Update capture filters, interface selection, or sampling rate from the Hub Fleet page — no SSH required.
Cluster Labels
Tag agents with environment, region, or role labels. Filter flows in the Hub by any label combination.
Installation
The quickest path is the Hub-hosted install script. Navigate to Hub → Fleet → Add Agent and copy the generated command:
# Generated by Hub — includes your token automatically
curl -sSL "https://your-hub.example.com/api/v1/agents/install?token=nst_xxx" | sudo bash
This script detects your OS and architecture, downloads the correct binary, installs it to /usr/local/bin/netscope-agent, writes a systemd unit (Linux) or launchd plist (macOS), and starts the service automatically.
Capture Modes
pcap mode (default)
Uses libpcap to capture packets from network interfaces. Works on all platforms. Suitable for moderate traffic volumes. Root or CAP_NET_RAW capability required.
netscope-agent \
--hub https://hub.example.com \
--token nst_xxxxxxxxxxxxxxxx \
--iface eth0 \
--mode pcap \
--filter "not port 22" # exclude SSH
eBPF mode (Linux 5.8+)
Attaches an XDP / TC eBPF program directly in the kernel's network stack. Dramatically lower CPU usage at high packet rates. No buffer drops under sustained 10 Gbps. Requires Linux kernel 5.8+ and root.
netscope-agent \
--hub https://hub.example.com \
--token nst_xxxxxxxxxxxxxxxx \
--iface eth0 \
--mode ebpf
Enrollment & Tokens
Each agent authenticates to the Hub using a unique enrollment token. Tokens are generated in the Hub under Fleet → Add Agent or via the API. Tokens can be revoked at any time from the Fleet page without restarting the agent — it will receive a 401 and stop forwarding flows.
| Token Scope | Description |
|---|---|
| agent-enroll | One-time token used during initial enrollment to exchange for a long-lived agent credential |
| agent-write | Long-lived credential stored on the agent. Used for ongoing flow submission |
| api-read | For Hub API read access from external tools or scripts |
| api-admin | Full Hub API access including agent management and configuration |
Configuration
The agent can be configured via command-line flags, environment variables, or a YAML config file at /etc/netscope/agent.yaml.
hub: https://hub.example.com
token: nst_xxxxxxxxxxxxxxxx
mode: ebpf # pcap | ebpf
ifaces:
- eth0
- eth1
filter: "not port 22"
labels:
env: production
region: us-east-1
role: web
batch_size: 500 # flows per HTTP push
flush_interval: 2s # max wait before push
log_level: info # debug | info | warn | error
Remote Config Push
From Hub → Fleet → [Agent] → Configure, you can remotely update the filter expression, interface list, or labels without restarting the agent. Configuration changes are pushed over the existing WebSocket connection and applied within seconds.
NetScope Hub
The Hub is the central brain of a NetScope deployment. It receives flows from any number of agents and Desktop instances, stores them in ClickHouse, and exposes a rich web UI and REST API for search, alerting, anomaly detection, compliance, and more.
ClickHouse Storage
MergeTree-based columnar storage. Sustains millions of flows per second with sub-second query latency on billions of rows.
Flow Search
Full-text and structured search over every flow field. Filter by protocol, IP, port, country, ASN, process, label, and more.
Alerting
Rule-based alerts with conditions on any flow field. Deliver to email, Slack, PagerDuty, or any webhook.
AI Copilot
Natural-language interface over your flow data, powered by Claude. Ask questions, get SQL, get answers — in plain English.
Custom Dashboards
Drag-and-drop widget builder. Stat tiles, time-series charts, pie charts, top-talker tables, alert and anomaly feeds.
Compliance Reports
One-click exports for SOC 2, PCI-DSS, ISO 27001, and HIPAA. Covers TLS hygiene, unencrypted traffic, and anomalies.
Deployment
The Hub is distributed as a single Go binary plus a ClickHouse database. The quickstart script handles both:
curl -sSL https://netscope.io/hub-quickstart.sh | sudo bash
# → installs ClickHouse, downloads hub binary, creates systemd service
# → hub available at http://localhost:8080 within ~60 seconds
Environment Variables
CH_ADDR=localhost:9000
CH_DB=netscope
APP_URL=https://hub.example.com
FRONTEND_URL=https://hub.example.com
SESSION_SECRET=change-me-64-random-chars
LICENSE_KEY=ENT-xxxx-xxxx-xxxx # omit for Community tier
ANTHROPIC_API_KEY=sk-ant-… # required for AI Copilot
PRODUCTION=true # sets Secure cookies
Flows & Analytics
All flows from all agents land in the Hub's flows ClickHouse table. The Flows page provides a real-time view with powerful search and filter controls.
Searching Flows
| Filter | Example | Notes |
|---|---|---|
| src_ip / dst_ip | 10.0.0.1 | Exact or CIDR match |
| protocol | TLS, DNS, HTTP | Case-insensitive |
| port | 443, 8080 | Matches src or dst port |
| country | CN, RU | ISO 3166-1 alpha-2 |
| label | env=production | Agent label key=value |
| threat | high, medium | Threat badge filter |
| bytes | >1MB | Filter large transfers |
| time range | Last 1h / 24h / 7d / custom | Applied to all queries |
Services View
The Services page automatically groups flows by (src_service, dst_service, protocol) and shows a dependency graph. Useful for discovering undocumented service relationships or lateral movement patterns.
Cloud VPC Ingestion
Import VPC Flow Logs from AWS (S3 or CloudWatch Logs), GCP (Cloud Logging), or Azure (Network Watcher) under Cloud Flows. The Hub normalises all formats into the same flow schema for unified analysis.
Security Features
Alerting
Create alert rules under Alerts → Rules. Each rule specifies a condition (e.g. any flow to a HIGH-threat IP in the last 5 minutes), a severity, and one or more notification channels.
| Condition Type | Example |
|---|---|
| Threshold | Bytes out > 100 MB in 10 min from single host |
| Geo-based | Any outbound connection to country CN, RU, KP, IR |
| Threat badge | Any flow touching a HIGH threat IP |
| Protocol anomaly | DNS query count > 1000/min from single source |
| New destination | First-ever flow to this IP (zero-day baseline) |
| Port scan | >20 distinct dst ports from single src in 60 seconds |
Sigma Detection Rules
NetScope Hub implements a Sigma-compatible rule engine (Detection page). Import standard Sigma YAML rules or write custom ones. Rules are evaluated continuously against the incoming flow stream, with matches creating incidents automatically.
title: Suspicious DNS Tunnelling
id: netscope-dns-tunnel-001
status: stable
level: high
detection:
selection:
protocol: DNS
query_len|gte: 60
bytes_out|gte: 4096
condition: selection
falsepositives:
- AAAA record lookups for long CDN hostnames
Anomaly Detection
The anomaly engine builds a statistical baseline for each (src_ip, dst_ip, protocol) tuple over a rolling 7-day window. Deviations from the baseline — in bytes, flow count, or inter-arrival time — generate anomaly events visible on the Anomalies page. Each anomaly has a severity score and a natural-language description generated by the AI Copilot.
Threats
The Threats page aggregates all flows touching IPs from the threat intelligence feeds, grouped by threat actor and severity. Drill down into any threat entry to see the full timeline of connections, source agents, and associated alert history.
Incidents
Incidents are auto-created from high-severity alert or Sigma rule matches. Each incident gets a unique ID, a severity (P1–P4), and a status (open / in-progress / resolved). Assign incidents to team members, add investigation notes, and close with a resolution summary. Full audit trail is maintained.
Certificates
The Certs page shows every TLS certificate seen in flows, with expiry date, issuer, SANs, and the set of hosts that presented it. Expired or soon-to-expire certificates are highlighted. Certificate changes (e.g. unexpected issuer rotation) can trigger alerts.
Policies
Define network policies — permitted and denied communication paths — under the Policies page. NetScope automatically flags policy violations as they occur in the flow stream.
AI Copilot
The AI Copilot is a natural-language interface to your flow data, powered by Anthropic's Claude. Click AI Copilot in the sidebar to open the chat panel.
| You can ask… | What happens |
|---|---|
| "Show me all DNS queries to .ru domains in the last hour" | Copilot writes a ClickHouse SQL query, executes it, and returns a formatted table |
| "Which host sent the most bytes yesterday?" | Aggregation query over the flows table, result returned as a ranked list |
| "Explain this anomaly" | Copilot pulls the anomaly context and provides a plain-English explanation with recommended next steps |
| "Is this IP suspicious?" | Looks up threat intel, GeoIP, and recent flow history for the IP |
| "Write a Sigma rule for port scan detection" | Generates a valid Sigma YAML rule you can paste into the Detection page |
The Copilot enforces a row-limit cap on all generated SQL (default 1,000 rows) to prevent accidental full-table scans. Administrators can raise this limit per-user from Settings.
Custom Dashboards
Build any view you need from the My Dashboards page. Each dashboard is a collection of widgets arranged on a 12-column grid.
Available Widgets
| Widget | Description | Config |
|---|---|---|
| Stat | Single big-number KPI with trend indicator | Metric: total flows, active agents, bytes (24h), anomaly count, alert count |
| Time Series | Line chart of flow volume or bytes over time | Window: 1h / 6h / 24h |
| Protocol Pie | Donut chart of top protocols by flow count | — |
| Top Talkers | Ranked list of busiest source IPs | Window, rank by flows or bytes, top N (5/10/20) |
| Alert Feed | Live feed of recent alert events | Max rows (5/8/15) |
| Anomaly Feed | Live feed of recent anomaly events | Max rows, severity filter (all/high/medium+/low+) |
Widget Sizes
Each widget can be resized independently to Small (⅓ width), Medium (½ width), or Full Width using the resize controls that appear on hover in edit mode. Use the arrow buttons to reorder widgets within the grid.
Enterprise Features
The following features require an Enterprise license (LICENSE_KEY environment variable):
| Feature | Description |
|---|---|
| SSO / SAML ENT | SAML 2.0 and OIDC identity provider integration. Supports Okta, Azure AD, Google Workspace, and any standards-compliant IdP. |
| Teams & RBAC ENT | Organise users into teams. Assign dashboard, alert, and data access permissions per team. |
| Compliance Reports ENT | Automated PDF/CSV reports for SOC 2, PCI-DSS, ISO 27001, HIPAA. Schedule weekly delivery to stakeholders. |
| Integrations ENT | Pre-built integrations for Splunk, Elastic SIEM, Datadog, PagerDuty, and custom webhook targets for alert and anomaly events. |
| External Storage ENT | Route ClickHouse cold data to S3-compatible object storage for long-term retention beyond 90 days. |
| Audit Log ENT | Immutable audit trail of all user actions — login events, configuration changes, data exports, and API key usage. |
API Reference
The Hub exposes a REST API at /api/v1/. All endpoints require a bearer token via the Authorization header.
curl -H "Authorization: Bearer nst_xxx" \
https://hub.example.com/api/v1/flows?limit=50&protocol=TLS
| Endpoint | Method | Description |
|---|---|---|
| /api/v1/flows | GET | Query flows with filter params |
| /api/v1/flows/ingest | POST | Bulk ingest flows (agent use) |
| /api/v1/stats | GET | Aggregate stats (counts, bytes) |
| /api/v1/timeseries | GET | Time-bucketed flow/byte counts |
| /api/v1/alerts | GET | List alert events |
| /api/v1/alerts/rules | GET POST | Manage alert rules |
| /api/v1/anomalies | GET | List anomaly events |
| /api/v1/agents | GET | List registered agents |
| /api/v1/agents/install | GET | Generates install script for agent |
| /api/v1/dashboards | GET POST | List / create dashboards |
| /api/v1/dashboards/:id | GET PUT DELETE | Get / update / delete dashboard |
| /api/v1/sigma | GET POST | Manage Sigma detection rules |
| /api/v1/incidents | GET POST | List / create incidents |
| /api/v1/copilot | POST | AI Copilot chat (SSE streaming) |