Skip to content
Back to skills

Network Data Services

ASecurity

Assess databases (MySQL, Postgres, MSSQL, Oracle), NoSQL/document stores (MongoDB, CouchDB, Cassandra), caches (Redis, Memcached), and search/analytics engines (Elasticsearch, InfluxDB, Kibana, Splunk) with bounded query budgets, synthetic canary verification, cleanup receipts, and data privilege candidate routing.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 15, 2026
securitypythonrustgoshellbashsqlapidatabasesecurity

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 15, 2026

npx -y skills add sodejm/copilot-operation-plugin-for-security --skill network-data-services --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Network Data Services?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Network Data Services
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sodejm-network-data-services/badge)](https://www.skillsdirectory.com/skills/sodejm-network-data-services)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: network-data-services
description: Assess databases (MySQL, Postgres, MSSQL, Oracle), NoSQL/document stores (MongoDB, CouchDB, Cassandra), caches (Redis, Memcached), and search/analytics engines (Elasticsearch, InfluxDB, Kibana, Splunk) with bounded query budgets, synthetic canary verification, cleanup receipts, and data privilege candidate routing.
---

# Database, Cache, and Search Services Assessment

Execute authorized, bounded exposure and configuration assessments across relational databases, NoSQL stores, in-memory caches, and search/analytics engines under strict Rules of Engagement and operational boundaries.

## Core Capabilities

1. **Protocol-Specific Coverage**:
   - **Relational Databases**:
     - **MySQL (3306)**: Assesses unauthenticated root/anonymous accounts, empty passwords, native password vs caching sha2 authentication, and bind-address exposure.
     - **PostgreSQL (5432)**: Detects `trust` authentication method, unauthenticated `postgres` superuser access, and client certificate enforcement.
     - **Microsoft SQL Server (1433)**: Probes blank `sa` password, SQL Server vs Windows Integrated Authentication, and `xp_cmdshell` configuration exposure.
     - **Oracle Database (1521)**: Evaluates TNS listener security, default SID/Service Name exposure (e.g. `ORCL`, `XE`), and default administrative accounts (`SYS`, `SYSTEM`).
   - **NoSQL & Document Stores**:
     - **MongoDB (27017)**: Detects missing authentication (`--auth` disabled), open cluster access, and unauthenticated database listing.
     - **CouchDB (5984)**: Detects Admin Party mode (unauthenticated admin role on `/_all_dbs`), basic auth vs cookie session enforcement.
     - **Cassandra (9042)**: Assesses default superuser credentials (`cassandra`/`cassandra`), `AllowAllAuthenticator` vs `PasswordAuthenticator`.
   - **In-Memory & Caches**:
     - **Redis (6379)**: Detects missing `requirepass`, dangerous command execution (`CONFIG`, `FLUSHALL`, `MODULE LOAD`), and unauthenticated data exfiltration/poisoning.
     - **Memcached (11211)**: Probes ASCII/binary protocol without SASL authentication, unauthenticated stats inspection, and item dumping.
   - **Search & Analytics Engines**:
     - **Elasticsearch (9200)**: Detects disabled security features (`xpack.security.enabled: false`), open cluster API access (`/_cluster/health`, `/_cat/indices`), and unauthenticated search index queries.
     - **InfluxDB (8086)**: Evaluates HTTP API ping and query endpoints without mandatory token or user/password authentication.
     - **Kibana (5601)**: Probes open web analytics dashboards exposing saved objects, visualizations, and index patterns without authentication.
     - **Splunk (8089)**: Detects management port exposure with default administrative credentials (`admin`/`changeme`) or unencrypted API management.

2. **Bounded Query Budgets & Zero Bulk Extraction**:
   - Technical probes strictly enforce a bounded query budget (default 5 rows/documents) to verify schema, table/collection presence, and access controls.
   - **Zero Bulk Extraction**: Bulk table dumps, full collection scans, and unconstrained production record retrieval are strictly prohibited and architecturally blocked.

3. **Crucial Truth Boundary: Inaccessible != Secure**:
   - If a database, cache, or search service is timed out, connection-refused, filtered, or unreachable from the probe vantage, it is strictly recorded as `inaccessible` with `auth_prerequisite: unknown` and explicit uncertainty notes.
   - A service is **NEVER** reported as `protected` or `hardened` merely because it failed to respond. Only positive verification of authentication enforcement or access rejection warrants a `protected` status.

4. **Canary Validation and Verifiable Cleanup Receipts**:
   - Uses non-destructive canary identifiers (e.g. `canary_audit_table`, `canary_cache_key`) to verify write boundaries and probe containment.
   - Every assessment verifying canary artifacts generates a cryptographically hashed `CleanupReceipt` confirming that temporary artifacts were removed and the system state was restored (`verified_removed`).

5. **Data Privilege Candidate Routing**:
   - Discovered misconfigurations and weak boundaries are structured as `DataPrivilegeCandidate` records:
     - `redis_no_auth` / `redis_config_set`: Unauthenticated Redis allowing cache poisoning or remote code execution.
     - `elasticsearch_open_cluster`: Open cluster API allowing index data exfiltration.
     - `mongodb_no_auth`: Open MongoDB cluster enabling database takeover.
     - `memcached_no_auth`: Unauthenticated memory cache allowing key/value extraction.
     - `mysql_no_auth`: Unauthenticated root or anonymous MySQL user.
     - `postgres_trust_auth`: PostgreSQL `trust` authentication enabling database takeover.
     - `mssql_blank_sa`: Microsoft SQL Server blank `sa` password.
     - `couchdb_admin_party`: CouchDB Admin Party mode enabling administrative takeover.
     - `cassandra_default_superuser`: Cassandra default `cassandra`/`cassandra` superuser.
     - `influxdb_no_auth`: Open InfluxDB HTTP API enabling analytics tampering.
     - `kibana_no_auth`: Open Kibana analytics dashboard.
     - `splunk_default_creds`: Splunk management daemon with default credentials.
   - Binds cryptographic evidence hashes, auth prerequisites, and privilege impact ratings (`remote_code_execution`, `database_takeover`, `credential_harvesting`, `data_exfiltration`, `cache_poisoning`, `analytics_tampering`) for handoff to host and lateral movement specialists (`cops-pentest-specialist`, `cops-redteam-operator`).

## CLI Usage

### 1. Assess Database, Cache, and Search Services
```bash
python3 -m cops data-services assess \
  --targets "198.51.100.30,db01.corp.internal" \
  --vantage internal \
  --canary-id "canary_audit_probe" \
  --query-budget 5 \
  --output data_assessment.json
```

Or via the discovery namespace:
```bash
python3 -m cops discovery data assess \
  --targets "198.51.100.30,db01.corp.internal" \
  --vantage internal \
  --output data_assessment.json
```

### 2. Export Data Privilege Candidates for Lateral Movement Workflows
```bash
python3 -m cops data-services candidates data_assessment.json \
  --output data_candidates.json
```

### 3. Export Verified Cleanup Receipts
```bash
python3 -m cops data-services cleanup data_assessment.json \
  --output cleanup_receipts.json
```

### 4. Inspect Summary, Privilege Candidates, and Truth-in-Advertising Metrics
```bash
python3 -m cops data-services inspect data_assessment.json
```

Files in this skill

  • SKILL.md6.4 KB
  • tests/test_skill.py13 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.