kkmookhey/ciso-copilot
GitHub: kkmookhey/ciso-copilot
Stars: 1 | Forks: 1
# Shasta by Transilience
**Live:** [shasta.transilience.cloud](https://shasta.transilience.cloud) ·
**Status:** v2 shipping daily · **Owner:** [Transilience.ai](https://www.transilience.ai)
## The thesis
A modern CISO juggles fragmented tools: Wiz for cloud, Sentinel for SIEM,
Defender for endpoints, Drata for compliance, Snyk for code, plus a
growing pile of AI-specific scanners that don't talk to any of them. Each
tool has its own findings model, its own identity graph, its own
compliance crosswalk, its own UI. The CISO becomes the integration
layer — which doesn't scale, and breaks every time something changes.
**Shasta is the opposite bet.** One unified findings model. One identity
graph. One compliance crosswalk that maps to NIST AI RMF, ISO 42001, EU
AI Act, SOC 2, ISO 27001, PCI, FedRAMP, and CIS — automatically. One
front door, accessible from a web console, an iOS app, a real-time voice
interface, and an MCP-driven chat surface. Every signal flows through
the same pipeline, carries the same metadata, and surfaces in the same
place.
The thesis: **Full Stack Security OS**. Start with cloud + AI + SOC +
compliance because that's where the unfair advantage is today — the
Shasta open-source scanner gives us a head start on cloud + AI
detection, and the 10 AI-specific repo detectors in `ai_scanner/` cover
ground no upstream tool addresses cleanly. Extend the OS into DSPM,
CTEM, Cloud MDR, compliance wizards, privacy posture, and safety
posture once the foundation is rock-solid.
One platform. Every signal a CISO needs.
## What Shasta covers today
### Cloud security
- **AWS scanner** — CloudFormation-onboarded, ECR-hosted scanner images,
findings tagged across 8 frameworks. Quick / Medium / Deep tiers.
- **Azure scanner** — Activity Log + Resource Graph + Microsoft Cloud
Security Benchmark + Defender (when on). No Sentinel dependency.
- **GCP scanner** — Cloud Asset Inventory + IAM + Cloud Audit Logs +
Security Command Center (when on).
- **Entra scanner** — Microsoft Graph: conditional access, MFA
enforcement, identity governance, sign-in risk events.
### AI security
- **AI workload discovery** — Bedrock, SageMaker, Cognitive Services,
OpenAI / Anthropic-bound resources surfaced as first-class entities.
- **AI SaaS visibility** — Entra sign-in pass against a 30-app catalog
(ChatGPT, Claude, Cursor, Copilot, Perplexity, Gemini, Mistral, …)
with per-tier classification.
- **AI code scanner** — GitHub App connector + 9 detectors walking
connected repos: model usage (OpenAI / Anthropic / Bedrock calls),
embeddings, frameworks (LangChain / LlamaIndex), vector DBs, MCP
servers, prompt files, secrets-in-AI-code, agentic workflows,
cross-domain (AI code touching cloud OIDC).
- **AI-specific frameworks** — NIST AI RMF, ISO 42001, EU AI Act, MITRE
ATLAS, OWASP LLM, NIST AI 600-1 mapped automatically.
- **Unified `/ai` view** — family-grouped tiles, drill-down to findings,
top-AI-users table.
### SOC
- **AWS Config drift events** in real time — every config change against
a customer-onboarded account flows through.
- **EventBridge → router → SQS → enrichment Lambda** pipeline with
per-tenant rate limit + per-tenant daily LLM spend cap.
- **AI-enriched events** — LiteLLM → Claude Sonnet writes a narrative,
an anomaly score, three suggested next-step CLI commands, MITRE
technique, and a confidence rating per event.
- **Threat-intel substrate** — 5,726 IOCs across AbuseCH Feodo +
ThreatFox, CISA KEV, and Tor exit nodes. GreyNoise on-demand fallback
for unmatched IPs.
- **Per-event provenance** — every enrichment records the rule IDs that
fired and the TI sources that matched.
- **`/soc` console** with timeline + filter chips (severity / source) +
detail pane (narrative + anomaly score + next-step commands + features
disclosure + related findings + 👍/👎 feedback).
### Compliance
- **Compliance Mapping Engine v2** — two-stage normalize → augment
pipeline. ~65 rewrite rules + 13 canonical augment rules.
- **8 frameworks tagged automatically**: NIST AI RMF, ISO 42001, EU AI
Act, SOC 2, ISO 27001, PCI DSS, FedRAMP, CIS Benchmarks, NIST AI 600-1.
- **Family-grouped tiles** on `/ai` and the dashboard (security / AI /
industry).
- **Per-finding provenance** — every finding records the rule IDs that
applied (`_registry_rule_ids`), so an auditor can ask "why is this
finding tagged with PCI 8.3?" and get a real answer.
- **`/findings?framework=` filter** with the "Mapping only — not a
compliance attestation" disclaimer on every tile + chip.
## The four surfaces
Shasta is built so a CISO can choose the surface that matches the moment.
| Surface | Best at | Tech |
|---------|---------|------|
| **Web** | The analyst console — findings, `/ai`, `/soc`, `/compliance`, `/connect`. Dense, keyboard-driven. | Vite + React + TypeScript + Tailwind, served from S3 + CloudFront |
| **iOS** | The alerting + handoff companion. Push notifications when something demands attention, a quick read on the go, a one-tap handoff to a teammate. | SwiftUI (iOS 17+), Cognito OAuth via `ASWebAuthSession`, APNs push |
| **Voice** | Hands-free walk-through. "What changed in AWS yesterday?" "Show me Entra users who logged into ChatGPT this week." | WebRTC real-time (not WebSocket — the platform AEC prevents the speakerphone echo loop), OpenAI / Gemini realtime models |
| **Chat** | The question-answer surface. Streaming responses with tool calls into the underlying data. Replaces the home-page dashboard for many users. | Lambda Web Adapter for streaming on managed Python Lambda, LiteLLM for model abstraction |
| **MCP** | (Future) Outbound action layer — Shasta drafts the Slack message, the JIRA ticket, the M365 share, all approval-gated. | MCP servers per integration, see [ROADMAP.md](ROADMAP.md) §M5 |
## Sub-projects shipped
Each row is a sub-project: brainstorm → design spec → implementation
plan → vertical-slice execution → review → deploy → verify. Specs live
in `docs/superpowers/specs/`; plans in `docs/superpowers/plans/`.
| Date | Module | Status |
|------|--------|--------|
| 2026-05-16 | v1 KEV Brief (Cloudflare Worker — pivoted in week 1) | Sunset |
| 2026-05-18 | v2 platform foundation — AWS CDK, Aurora Postgres, Cognito, scanner pipeline | Shipped |
| 2026-05-19 | SP4 chat-first front door — streaming chat with tool calls | Shipped |
| 2026-05-20 | AI Discovery cloud-AI connector + Findings overhaul (Fail / Partial / Pass tiles + grouping) | Shipped |
| 2026-05-22 | Azure scanner uplift v2 + GCP scanner uplift Slices 1–2 | Shipped |
| 2026-05-22 | AI Visibility v2 Slice 1 — Azure-AI cloud pass + unified `/ai` view | Shipped |
| 2026-05-23 | AI Visibility v2 Slice 2 — Entra AI sign-in pass (30-app catalog) | Shipped |
| 2026-05-24 | AI Visibility v2 Slice 2.1 — Entra Free-tier licensing banner | Shipped |
| 2026-05-24 | Compliance Mapping Engine v2 — 8 frameworks, two-stage normalize → augment | Shipped |
| 2026-05-25 | SOC Slice 1 — AWS Config drift + AI enrichment + `/soc` console | Shipped |
| 2026-05-26 | SOC Slice 1c — Threat-intel substrate (5,726 IOCs) | Shipped |
| Next | "Shasta by Transilience" branding + capability gating + billing module | In progress |
| Next | SOC Slice 2 — Identity drift (AWS IAM + Entra audit logs) | Planned |
## How this was built
Shasta is built AI-natively. We use [Claude Code](https://claude.com/claude-code)
and the Anthropic SDK as a daily development surface, the same way an
earlier generation of engineers used `vim` + `git` + a REPL. That's
worth naming explicitly because the velocity above isn't an accident, and
it isn't magic either. It's the product of a few principles we hold to
hard:
- **Plan-first, spec-first.** Every sub-project starts as a brainstorm,
becomes a design spec under `docs/superpowers/specs/`, becomes an
implementation plan under `docs/superpowers/plans/`, and only then
becomes code. The specs are committed before the implementation. If
it isn't worth writing down, it isn't worth building.
- **Vertical slices, not horizontal phases.** Each slice crosses every
layer (DB + service + API + UI) and ships end-to-end. Slice 1
vibrating an iPhone is shippable; "phase 1 = all DB work" is not.
- **Evidence before assertions.** Nothing is "shipped" until it has been
manually run end-to-end against a real cloud account and a screenshot
or log line backs it up. The HANDOFF.md "verified" tags are not
performative.
- **Wrap OSS, don't reinvent.** The Shasta open-source cloud + AI
scanner sub-package is consumed today. The threat-intel and SBOM
roadmap will pull in Trivy / Syft / OSV.dev / NVD when we ship M1.
Where we *do* build custom detection (the 10 AI repo detectors,
the AI SaaS sign-in catalog), it's because no upstream tool covers
the AI-shaped problem cleanly. We add the platform layer
(multi-tenant, unified findings, compliance crosswalk, surfaces) on
top — that's the value.
- **Honest gotchas.** Every load-bearing decision that bit us in
production is captured in [ARCHITECTURE.md](ARCHITECTURE.md) as an ADR.
The Cognito federation subject-extraction bug, the EventBridge
`source` filter that silently dropped management events, the LiteLLM
Anthropic `response_format` quirk — all on record so the next
engineer (human or AI) doesn't pay the same cost.
The codebase looks the way it does because we treated AI-augmented
development as engineering discipline, not as a shortcut.
## Try it
**The fastest path:** sign in at
[shasta.transilience.cloud](https://shasta.transilience.cloud) with a
Google or Microsoft account. You'll land on the onboarding flow and can
connect an AWS, Azure, GCP, or Entra tenant in a few minutes. Approval
is manual for now (the platform is in friends-and-family mode).
**For Transilience team members:** ping Team Transilience directly for
the test-tenant shortcut.
## Tech stack
| Layer | Stack |
|-------|-------|
| Infrastructure | AWS CDK (TypeScript), single-AWS-account multi-tenant |
| Backend | Python Lambda (managed + containerised), Aurora PostgreSQL 16 (Data API), EventBridge, SQS, ECR scanner images |
| Identity | Amazon Cognito with Google + per-tenant Microsoft federation |
| Frontend | Vite + React 18 + TypeScript + Tailwind CSS, S3 + CloudFront |
| iOS | SwiftUI (iOS 17+), WebRTC SPM, Cognito OAuth via ASWebAuthSession, APNs |
| Voice | WebRTC real-time data + audio, OpenAI / Gemini realtime models |
| LLM abstraction | LiteLLM (default: `claude-sonnet-4-6`; swappable per call) |
| OSS leverage | Shasta scanner sub-package (cloud + AI), with Trivy / Syft / OSV.dev / Semgrep / gitleaks landing via the M1 threat-intel roadmap |
## Run it locally
Shasta is a multi-tenant SaaS-shaped codebase. There is no
`docker-compose up` path today — running it end-to-end requires an AWS
account, a Cognito user pool, an Aurora Postgres cluster, an ECR
repository for scanner images, and Microsoft + Google OAuth app
registrations.
**If you want to try Shasta the easy way:** sign in at
[shasta.transilience.cloud](https://shasta.transilience.cloud).
**If you want to deploy your own copy:** the deployment commands live in
[CLAUDE.md §"Common commands"](CLAUDE.md). The current state of every
deployed surface lives in [HANDOFF.md](HANDOFF.md). A proper
"deploy your own Shasta" guide is on the [ROADMAP.md](ROADMAP.md) — not
today. You'll need to read the CDK stacks in `platform/lib/` and the
scanner images in `platform/lambda/shasta_runner_*/` to fill in the
gaps. Pull requests welcome once OSS opens up; until then, ping
Team Transilience.
## Repository layout
platform/ AWS CDK (TypeScript) + Lambda Python + Docker scanner images
bin/ CDK app entry
lib/ one stack per file (network, data, auth, ecr, static, events, scan, api)
lambda/ one Lambda per directory; each has main.py + (optional) build.sh
cfn/ customer-facing artifacts (aws-onboard.yaml, azure/onboard.sh, gcp/onboard.sh)
sql/ Aurora schema migrations
.env ENTRA_*, GOOGLE_*, DOMAIN, APPROVAL_RECIPIENT (not checked in)
ios/ SwiftUI app, iOS 17+, WebRTC SPM dep, Cognito OAuth via ASWebAuthSession
CISOCopilot/ Services, Views, RootView, App entry
project.yml xcodegen source — regenerate xcodeproj from this
web/ Vite + React + TS + Tailwind; deployed to S3 + CloudFront
src/routes/ SignIn, Callback, PendingApproval, Welcome, ConnectClouds, Findings, AISummary, SOC, …
src/lib/ cognito.ts (OAuth) + api.ts (HTTP)
docs/ Brainstorm specs + implementation plans (all sub-projects)
superpowers/specs/ one spec per sub-project, YYYY-MM-DD--design.md
superpowers/plans/ one plan per sub-project, YYYY-MM-DD--plan.md
HANDOFF.md Current state of every deployed surface — read first
ARCHITECTURE.md Design decisions and ADRs
ROADMAP.md Where the OS extends next
BACKLOG.md Open items, triage codes, decisions pending
TEST_PLAN.md Current end-to-end manual test script
CLAUDE.md Instructions for AI-augmented development in this repo
CISOBrief-v2.md v2 PRD (the executable spec we build against)
CISOBrief.md v1 PRD (Cloudflare-only KEV brief, retained for reference)
## Documentation index
- **[ARCHITECTURE.md](ARCHITECTURE.md)** — the load-bearing design
decisions, ADRs, system overview.
- **[ROADMAP.md](ROADMAP.md)** — where Shasta extends next: SOC slices,
M1–M7 heavy lifts, the OS-extension arenas (DSPM, CTEM, MDR, …), and
the anti-roadmap (what we explicitly won't build).
- **[HANDOFF.md](HANDOFF.md)** — source of truth for what's live right
now. Read this first every session.
- **[BACKLOG.md](BACKLOG.md)** — open items, triage codes, decisions
pending.
- **[CISOBrief-v2.md](CISOBrief-v2.md)** — the v2 PRD / spec we build
against. The contract.
- **[CLAUDE.md](CLAUDE.md)** — engineering conventions, common commands,
things you must not do.
## License
[MIT](LICENSE) — software should be free. The repository is private
today; it goes public once the secrets audit completes (post-billing
module, see [ROADMAP.md](ROADMAP.md)). The MIT terms apply from day
one for any code Transilience or its team members run on their own.
## Contact
- **Team Transilience:** hello@transilience.ai — for general inquiries,
test-tenant access, design-partner pilots, and commercial questions
- **Founder:** KK Mookhey · kkmookhey@transilience.ai ·
[Transilience.ai](https://www.transilience.ai)