mirror of
https://github.com/SHOGGOTH-SECTOR/sica-fondt.git
synced 2026-08-01 16:40:24 +00:00
Place useful parts of the surrounding repos into sica-fondt by layer, per the
body model (Ada = membrane; brain/endocrine/capabilities/knowledge non-Ada):
- brain/ LLM reasoning + providers (dapr, hermes, MoMoA)
- capabilities/ REPRAG sidecars: hermes tools/skills, dapr tools, parallel
dispatch, A51 channels, and the OSINT cluster
- knowledge/ LORAG corpus: 754 cyber-skills, agency personas, secure-coding,
MITRE ATT&CK data
- reference/ defensive threat-reference (C3, shhbruh doc) + AdaYaml parser
License handling: AGPL sources (worldosint, advanced_evolution, mercury,
Reticulum) and GPL DeTTECT are SPEC-only clean-room/port descriptions — no
copyleft code copied. MIT/Apache/data parts copied as working trees.
Safety: shhbruh escape/persistence material and C3 covert-C2 kept as reference
only, not wired into the running organism. See CONSOLIDATION.md.
https://claude.ai/code/session_01UehUqEXXJJCsHoA4voCU5c
170 lines
5.1 KiB
Markdown
170 lines
5.1 KiB
Markdown
# API Reference: Kubernetes Pod Security Admission Controller
|
|
|
|
## Libraries Used
|
|
|
|
| Library | Purpose |
|
|
|---------|---------|
|
|
| `kubernetes` | Official Kubernetes Python client for cluster API access |
|
|
| `json` | Parse and format admission review payloads |
|
|
| `yaml` | Read and write Pod Security Standard label configurations |
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
pip install kubernetes pyyaml
|
|
```
|
|
|
|
## Authentication
|
|
|
|
```python
|
|
from kubernetes import client, config
|
|
|
|
# In-cluster (running inside a pod)
|
|
config.load_incluster_config()
|
|
|
|
# Local kubeconfig
|
|
config.load_kube_config(context="my-cluster")
|
|
|
|
v1 = client.CoreV1Api()
|
|
```
|
|
|
|
## Pod Security Standards Levels
|
|
|
|
| Level | Description |
|
|
|-------|-------------|
|
|
| `privileged` | Unrestricted — no restrictions applied |
|
|
| `baseline` | Minimally restrictive — prevents known privilege escalation |
|
|
| `restricted` | Heavily restricted — follows hardening best practices |
|
|
|
|
## Namespace Label API
|
|
|
|
Pod Security Admission is configured via namespace labels:
|
|
|
|
| Label | Purpose |
|
|
|-------|---------|
|
|
| `pod-security.kubernetes.io/enforce` | Reject pods that violate the policy |
|
|
| `pod-security.kubernetes.io/enforce-version` | Pin policy to specific k8s version |
|
|
| `pod-security.kubernetes.io/audit` | Log violations in audit log |
|
|
| `pod-security.kubernetes.io/audit-version` | Pin audit policy version |
|
|
| `pod-security.kubernetes.io/warn` | Show warnings to kubectl users |
|
|
| `pod-security.kubernetes.io/warn-version` | Pin warning policy version |
|
|
|
|
## Core Operations
|
|
|
|
### List Namespaces with PSA Labels
|
|
```python
|
|
namespaces = v1.list_namespace()
|
|
for ns in namespaces.items:
|
|
labels = ns.metadata.labels or {}
|
|
enforce = labels.get("pod-security.kubernetes.io/enforce", "none")
|
|
audit = labels.get("pod-security.kubernetes.io/audit", "none")
|
|
warn = labels.get("pod-security.kubernetes.io/warn", "none")
|
|
print(f"{ns.metadata.name}: enforce={enforce} audit={audit} warn={warn}")
|
|
```
|
|
|
|
### Apply PSA Labels to a Namespace
|
|
```python
|
|
body = {
|
|
"metadata": {
|
|
"labels": {
|
|
"pod-security.kubernetes.io/enforce": "restricted",
|
|
"pod-security.kubernetes.io/enforce-version": "latest",
|
|
"pod-security.kubernetes.io/audit": "restricted",
|
|
"pod-security.kubernetes.io/warn": "restricted",
|
|
}
|
|
}
|
|
}
|
|
v1.patch_namespace(name="production", body=body)
|
|
```
|
|
|
|
### Audit All Namespaces for Missing PSA Labels
|
|
```python
|
|
def audit_psa_labels():
|
|
findings = []
|
|
namespaces = v1.list_namespace()
|
|
for ns in namespaces.items:
|
|
name = ns.metadata.name
|
|
labels = ns.metadata.labels or {}
|
|
if name in ("kube-system", "kube-public", "kube-node-lease"):
|
|
continue
|
|
enforce = labels.get("pod-security.kubernetes.io/enforce")
|
|
if not enforce:
|
|
findings.append({"namespace": name, "issue": "no enforce label"})
|
|
elif enforce == "privileged":
|
|
findings.append({"namespace": name, "issue": "enforce=privileged"})
|
|
return findings
|
|
```
|
|
|
|
### Check Pod Violations Against a Level
|
|
```python
|
|
def check_pod_security(namespace, level="restricted"):
|
|
pods = v1.list_namespaced_pod(namespace=namespace)
|
|
violations = []
|
|
for pod in pods.items:
|
|
for container in pod.spec.containers:
|
|
sc = container.security_context
|
|
if not sc:
|
|
violations.append({
|
|
"pod": pod.metadata.name,
|
|
"container": container.name,
|
|
"issue": "no securityContext defined",
|
|
})
|
|
continue
|
|
if sc.privileged:
|
|
violations.append({
|
|
"pod": pod.metadata.name,
|
|
"container": container.name,
|
|
"issue": "privileged=true",
|
|
})
|
|
if sc.run_as_non_root is not True:
|
|
violations.append({
|
|
"pod": pod.metadata.name,
|
|
"container": container.name,
|
|
"issue": "runAsNonRoot not set",
|
|
})
|
|
caps = sc.capabilities
|
|
if level == "restricted" and (not caps or not caps.drop or "ALL" not in caps.drop):
|
|
violations.append({
|
|
"pod": pod.metadata.name,
|
|
"container": container.name,
|
|
"issue": "capabilities.drop does not include ALL",
|
|
})
|
|
return violations
|
|
```
|
|
|
|
## kubectl Equivalents
|
|
|
|
```bash
|
|
# Label a namespace with restricted enforcement
|
|
kubectl label namespace production \
|
|
pod-security.kubernetes.io/enforce=restricted \
|
|
pod-security.kubernetes.io/warn=restricted \
|
|
--overwrite
|
|
|
|
# Dry-run to test impact before enforcing
|
|
kubectl label --dry-run=server --overwrite namespace production \
|
|
pod-security.kubernetes.io/enforce=restricted
|
|
|
|
# Check which namespaces have PSA labels
|
|
kubectl get namespaces -L pod-security.kubernetes.io/enforce
|
|
```
|
|
|
|
## Output Format
|
|
|
|
```json
|
|
{
|
|
"namespace": "production",
|
|
"enforce_level": "restricted",
|
|
"audit_level": "restricted",
|
|
"warn_level": "restricted",
|
|
"pod_violations": [
|
|
{
|
|
"pod": "legacy-app-7f8b9c",
|
|
"container": "app",
|
|
"issue": "privileged=true"
|
|
}
|
|
],
|
|
"compliant": false
|
|
}
|
|
```
|