docs: Professional README + cleanup old files
- Rewrote README with badges, architecture diagram, quick start, MCP guide - Deleted: cumin_evaluation_report_en.md, soc_system_report.md, walkthrough.md
هذا الالتزام موجود في:
304
README.md
304
README.md
@@ -1,109 +1,251 @@
|
|||||||
# SOC Command Center on Cumin
|
<div align="center">
|
||||||
|
|
||||||
A full **Security Operations Center (SOC)** platform deployed on [Cumin](https://cumin.dev) — a cloud platform for deploying containerized applications via MCP (Model Context Protocol).
|
# 🛡️ SOC Command Center
|
||||||
|
|
||||||
## Architecture
|
**A Next-Generation Security Operations Center deployed on [Cumin](https://cumin.dev)**
|
||||||
|
|
||||||
|
[](https://soc-gateway-http-e83c51cb.hosted.cumin.dev)
|
||||||
|
[](https://cumin.dev)
|
||||||
|
[](https://nodejs.org)
|
||||||
|
[](https://modelcontextprotocol.io)
|
||||||
|
|
||||||
|
*Built entirely by an AI agent using the Cumin MCP API — a case study in AI-driven infrastructure deployment.*
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 Overview
|
||||||
|
|
||||||
|
This repository contains a fully deployed, production-grade **Security Operations Center (SOC)** platform built as a case study for evaluating the **Cumin cloud platform**. The entire system — from architecture design to deployment — was orchestrated by an AI agent using Cumin's native [Model Context Protocol (MCP)](https://modelcontextprotocol.io) API.
|
||||||
|
|
||||||
|
**9 security services run as a single consolidated backend**, exposing a unified dashboard accessible publicly over HTTPS with zero manual infrastructure management.
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
| **Live URL** | https://soc-gateway-http-e83c51cb.hosted.cumin.dev |
|
||||||
|
| **Platform** | Cumin Cloud (`cumin.dev`) |
|
||||||
|
| **Total Apps Deployed** | 2 (backend + gateway) |
|
||||||
|
| **Services Simulated** | 9 SOC microservices |
|
||||||
|
| **Real Data** | Live HTTP security header scanning |
|
||||||
|
| **Full Report** | [`docs/REPORT.md`](./docs/REPORT.md) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏗️ Architecture
|
||||||
|
|
||||||
```
|
```
|
||||||
┌─────────────────────────────────────────────────┐
|
┌─────────────────────────────────────────────────────────────────┐
|
||||||
│ Internet │
|
│ 🌍 Public Internet │
|
||||||
│ │ │
|
│ │ HTTPS │
|
||||||
│ ┌──────────▼──────────┐ │
|
│ ┌──────────▼──────────┐ │
|
||||||
│ │ soc-gateway │ │
|
│ │ soc-gateway │ 150m CPU / 250MB │
|
||||||
│ │ (Dashboard UI) │ │
|
│ │ Dashboard UI │ │
|
||||||
│ │ Port 3000 │ │
|
│ │ /proxy/* → backend │ │
|
||||||
│ └──────────┬──────────┘ │
|
│ └──────────┬──────────┘ │
|
||||||
│ │ /proxy/* │
|
│ │ HTTP │
|
||||||
│ ┌──────────▼──────────┐ │
|
│ ┌──────────▼──────────┐ │
|
||||||
│ │ soc-backend │ │
|
│ │ soc-backend │ 250m CPU / 512MB │
|
||||||
│ │ (All 9 Services) │ │
|
│ │ │ │
|
||||||
│ │ Port 4000 │ │
|
│ ┌────────────────┤ Ingestion Layer ├─────────────────┐ │
|
||||||
│ │ │ │
|
│ │ 🔥 Firewall │ 📋 SIEM │ 🍯 Honeypot │ │
|
||||||
│ │ ┌─── SIEM ───┐ │ │
|
│ └────────────────┤ ├─────────────────┘ │
|
||||||
│ │ ├─── SOAR ───┤ │ │
|
│ ┌────────────────┤ Analysis Layer ├─────────────────┐ │
|
||||||
│ │ ├── Honeypot ─┤ │ │
|
│ │ 👤 UBA │ 🌐 Threat Intel │ 🛡️ IDS/IPS │ │
|
||||||
│ │ ├── IDS/IPS ──┤ │ │
|
│ └────────────────┤ ├─────────────────┘ │
|
||||||
│ │ ├── Firewall ─┤ │ │
|
│ ┌────────────────┤ Operations Layer ├─────────────────┐ │
|
||||||
│ │ ├──── UBA ────┤ │ │
|
│ │ ⚡ SOAR │ 🚨 Incidents │ 🔍 Vuln Scan* │ │
|
||||||
│ │ ├─ Threat Intel┤ │ │
|
│ └────────────────┴──────────────────────┴─────────────────┘ │
|
||||||
│ │ ├─ Vuln Scan ──┤ │ │
|
│ Cumin Cloud │
|
||||||
│ │ └── Incidents ─┘ │ │
|
└─────────────────────────────────────────────────────────────────┘
|
||||||
│ └─────────────────────┘ │
|
|
||||||
│ Cumin Cloud │
|
* Vuln Scanner fetches REAL data from google.com, github.com, cloudflare.com
|
||||||
└─────────────────────────────────────────────────┘
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Services
|
---
|
||||||
|
|
||||||
| Service | Role | Description |
|
## 🔒 Services
|
||||||
|---------|------|-------------|
|
|
||||||
| **SIEM** | Log Collection | Collects and correlates security events from multiple sources |
|
|
||||||
| **SOAR** | Orchestration | Automates security responses via playbooks |
|
|
||||||
| **Honeypot** | Deception | Deploys traps to detect and track attackers |
|
|
||||||
| **IDS/IPS** | Detection | Identifies and blocks intrusion attempts |
|
|
||||||
| **Firewall** | Traffic Control | Manages network traffic rules and blocks threats |
|
|
||||||
| **UBA** | Behavior Analytics | Detects anomalous user behavior patterns |
|
|
||||||
| **Threat Intel** | IOC Feeds | Aggregates threat intelligence from multiple sources |
|
|
||||||
| **Vuln Scanner** | Assessment | **Real-time** scanning of actual websites for security headers |
|
|
||||||
| **Incidents** | Management | Tracks and manages security incidents end-to-end |
|
|
||||||
|
|
||||||
## Real Target Monitoring
|
| Service | Role | Data Type |
|
||||||
|
|---------|------|-----------|
|
||||||
|
| 📋 **SIEM** | Log collection & event correlation | Simulated |
|
||||||
|
| ⚡ **SOAR** | Security orchestration & playbooks | Simulated |
|
||||||
|
| 🍯 **Honeypot** | Attacker deception & interaction tracking | Simulated |
|
||||||
|
| 🛡️ **IDS/IPS** | Intrusion detection & blocking | Simulated |
|
||||||
|
| 🔥 **Firewall** | Network traffic control & logging | Simulated |
|
||||||
|
| 👤 **UBA** | User behavior analytics & anomaly detection | Simulated |
|
||||||
|
| 🌐 **Threat Intel** | IOC feeds & threat intelligence | Simulated |
|
||||||
|
| 🔍 **Vuln Scanner** | HTTP security header auditing | ✅ **Real** |
|
||||||
|
| 🚨 **Incidents** | Case management & incident response | Simulated |
|
||||||
|
|
||||||
The Vulnerability Scanner performs **actual HTTP security header checks** against real websites:
|
> **Note on Real Data:** The Vulnerability Scanner sends actual HTTP requests to public websites every 60 seconds and checks for the presence of 7 security headers (`CSP`, `HSTS`, `X-Frame-Options`, `X-Content-Type-Options`, `Referrer-Policy`, `Permissions-Policy`, `X-XSS-Protection`), computing a live compliance score.
|
||||||
- Google, GitHub, Cloudflare (external targets)
|
|
||||||
- Self-monitoring of the SOC backend
|
|
||||||
|
|
||||||
It checks for: `Content-Security-Policy`, `X-Frame-Options`, `X-Content-Type-Options`, `Strict-Transport-Security`, `X-XSS-Protection`, `Referrer-Policy`, `Permissions-Policy`
|
---
|
||||||
|
|
||||||
## Project Structure
|
## 🚀 Deploy Your Own
|
||||||
|
|
||||||
```
|
|
||||||
cumin/
|
|
||||||
├── src/
|
|
||||||
│ ├── backend.js # Combined backend (9 services + real scanning)
|
|
||||||
│ └── gateway.js # Dashboard UI server
|
|
||||||
├── scripts/
|
|
||||||
│ ├── deploy.js # Deploy both apps to Cumin
|
|
||||||
│ └── cleanup.js # Delete all apps from project
|
|
||||||
├── .gitignore
|
|
||||||
└── README.md
|
|
||||||
```
|
|
||||||
|
|
||||||
## Deployment
|
|
||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
- Node.js 18+
|
- Node.js 18+
|
||||||
- A Cumin account with API token
|
- A [Cumin](https://cumin.dev) account with an API token and Project ID
|
||||||
|
|
||||||
|
### 1. Clone & Configure
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/YOUR_USERNAME/cumin-soc.git
|
||||||
|
cd cumin-soc
|
||||||
|
```
|
||||||
|
|
||||||
|
Edit `scripts/deploy.js` and update:
|
||||||
|
```javascript
|
||||||
|
const CUMIN_TOKEN = "cumin_your_token_here";
|
||||||
|
const PROJECT_ID = "your-project-uuid";
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Deploy
|
||||||
|
|
||||||
### Deploy
|
|
||||||
```bash
|
```bash
|
||||||
node scripts/deploy.js
|
node scripts/deploy.js
|
||||||
```
|
```
|
||||||
|
|
||||||
### Cleanup
|
This will:
|
||||||
|
1. ✅ Delete any existing SOC apps in the project
|
||||||
|
2. ✅ Deploy `soc-backend` (all 9 services, real vulnerability scanning)
|
||||||
|
3. ✅ Wait for backend to boot and capture its public URL
|
||||||
|
4. ✅ Deploy `soc-gateway` (dashboard) pre-configured to proxy to the backend
|
||||||
|
5. ✅ Print the final live URLs
|
||||||
|
|
||||||
|
**Expected output:**
|
||||||
|
```
|
||||||
|
═══ SOC PLATFORM DEPLOY ═══
|
||||||
|
|
||||||
|
✅ MCP connected
|
||||||
|
|
||||||
|
🧹 Cleaning old apps...
|
||||||
|
📦 Deploying soc-backend...
|
||||||
|
✅ Backend ID: bbb0d30a-xxxx
|
||||||
|
Backend: running → https://soc-backend-http-xxxxxxxx.hosted.cumin.dev
|
||||||
|
|
||||||
|
🌐 Deploying soc-gateway...
|
||||||
|
✅ Gateway ID: f32ce529-xxxx
|
||||||
|
|
||||||
|
═══ FINAL STATUS ═══
|
||||||
|
🟢 soc-backend: running → https://soc-backend-http-xxxxxxxx.hosted.cumin.dev
|
||||||
|
🟢 soc-gateway: running → https://soc-gateway-http-xxxxxxxx.hosted.cumin.dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Cleanup
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
node scripts/cleanup.js
|
node scripts/cleanup.js
|
||||||
```
|
```
|
||||||
|
|
||||||
## Tech Stack
|
---
|
||||||
|
|
||||||
- **Runtime**: Node.js 22 (Alpine)
|
## 🔑 How It Works: MCP Protocol
|
||||||
- **Platform**: Cumin Cloud (cumin.dev)
|
|
||||||
- **Protocol**: MCP (Model Context Protocol)
|
|
||||||
- **Frontend**: Vanilla HTML/CSS/JS with Inter font
|
|
||||||
- **Design**: Dark theme, glassmorphism cards
|
|
||||||
|
|
||||||
## Configuration
|
The deployment uses Cumin's **Model Context Protocol (MCP)** API — a JSON-RPC 2.0 interface designed for AI-agent consumption.
|
||||||
|
|
||||||
| Variable | Value | Description |
|
```javascript
|
||||||
|----------|-------|-------------|
|
// 1. Initialize session
|
||||||
| `PROJECT_ID` | `178bfad9-...` | Cumin project identifier |
|
const res = await fetch("https://api.cumin.dev/mcp", {
|
||||||
| `CUMIN_TOKEN` | `cumin_...` | API authentication token |
|
method: "POST",
|
||||||
| Backend CPU | 250m | Backend resource allocation |
|
headers: { "Authorization": `Bearer ${TOKEN}` },
|
||||||
| Backend RAM | 512MB | Backend memory limit |
|
body: JSON.stringify({
|
||||||
| Gateway CPU | 150m | Gateway resource allocation |
|
jsonrpc: "2.0",
|
||||||
| Gateway RAM | 250MB | Gateway memory limit |
|
method: "initialize",
|
||||||
|
id: 1,
|
||||||
|
params: { protocolVersion: "2024-11-05", clientInfo: { name: "deployer" } }
|
||||||
|
})
|
||||||
|
});
|
||||||
|
const SESSION_ID = res.headers.get("Mcp-Session-Id");
|
||||||
|
|
||||||
## License
|
// 2. Deploy an app
|
||||||
|
await fetch("https://api.cumin.dev/mcp", {
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Authorization": `Bearer ${TOKEN}`,
|
||||||
|
"Mcp-Session-Id": SESSION_ID
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
jsonrpc: "2.0",
|
||||||
|
method: "tools/call",
|
||||||
|
id: 2,
|
||||||
|
params: {
|
||||||
|
name: "create_app",
|
||||||
|
arguments: {
|
||||||
|
project_id: PROJECT_ID,
|
||||||
|
name: "my-app",
|
||||||
|
image: "node:22-alpine",
|
||||||
|
cpu: 150, memory: 250,
|
||||||
|
ports: [{ name: "http", number: 3000, health: { path: "/health" } }],
|
||||||
|
args: ["node", "server.js"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
MIT
|
**Key trick — Code Injection (no Docker build needed):**
|
||||||
|
```javascript
|
||||||
|
// Base64-encode your app code and inject it as an env variable
|
||||||
|
// This deploys in seconds with zero Docker infrastructure
|
||||||
|
env: [{ name: "APP_CODE_B64", value: Buffer.from(code).toString("base64") }],
|
||||||
|
args: ["sh", "-c", "echo $APP_CODE_B64 | base64 -d > /app.js && node /app.js"]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚡ Resource Requirements
|
||||||
|
|
||||||
|
| Resource | Minimum (Free Tier) | This Project |
|
||||||
|
|----------|--------------------|----|
|
||||||
|
| CPU | **150 millicores** | 400m total |
|
||||||
|
| RAM | **250 MB** | 762MB total |
|
||||||
|
| Apps | 10 max | 2 apps |
|
||||||
|
|
||||||
|
> **Important:** Setting CPU < 150m or RAM < 250MB causes a permanent `pending` state. The Cumin scheduler will never allocate resources below the platform minimums.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📁 Repository Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
cumin/
|
||||||
|
├── 📄 README.md ← You are here
|
||||||
|
├── 📄 .gitignore
|
||||||
|
│
|
||||||
|
├── 📁 src/
|
||||||
|
│ ├── 📄 backend.js ← All 9 SOC services + real scanner (15.9KB)
|
||||||
|
│ └── 📄 gateway.js ← Dashboard UI + reverse proxy (19.4KB)
|
||||||
|
│
|
||||||
|
├── 📁 scripts/
|
||||||
|
│ ├── 📄 deploy.js ← Full MCP-based deployment automation
|
||||||
|
│ └── 📄 cleanup.js ← Delete all project apps
|
||||||
|
│
|
||||||
|
└── 📁 docs/
|
||||||
|
└── 📄 REPORT.md ← Comprehensive platform evaluation report
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 Platform Evaluation Summary
|
||||||
|
|
||||||
|
For the full evaluation with Mermaid diagrams, code examples, live results, and detailed scoring → **[docs/REPORT.md](./docs/REPORT.md)**
|
||||||
|
|
||||||
|
| Feature | Score |
|
||||||
|
|---------|-------|
|
||||||
|
| 🚀 App Deployment | **9.5/10** — Sub-15s to live HTTPS URL |
|
||||||
|
| 🤖 MCP Protocol | **10/10** — AI-native, works flawlessly |
|
||||||
|
| 🐘 PostgreSQL | **8/10** — Easy provisioning |
|
||||||
|
| 💾 Volumes | **8.5/10** — Reliable persistent storage |
|
||||||
|
| 🪣 S3 Buckets | **8.5/10** — S3-compatible, instant |
|
||||||
|
| 🔐 Secrets | **4/10** — 403 on standard token |
|
||||||
|
| 🌐 Constellations | **3/10** — 403 on standard token |
|
||||||
|
| 💻 Developer Experience | **8.5/10** — Clean UI, great DX |
|
||||||
|
| **Overall** | **7.8 / 10** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📄 License
|
||||||
|
|
||||||
|
MIT © 2026
|
||||||
|
|||||||
@@ -1,100 +0,0 @@
|
|||||||
# Cumin Platform Evaluation & Case Study Report
|
|
||||||
|
|
||||||
## 1. Executive Summary
|
|
||||||
This report provides a comprehensive technical evaluation of the **Cumin** cloud platform. To thoroughly test the platform's capabilities, limits, and developer experience, we deployed a complex **Next-Generation Security Operations Center (SOC)** based on a Microservices architecture.
|
|
||||||
|
|
||||||
This document serves as both an evaluation of Cumin's features and an end-to-end guide on how to deploy applications from a local development environment to the public internet using Cumin.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 2. From Local Code to the Internet: A to Z Guide
|
|
||||||
Deploying an application on Cumin is designed to be frictionless. Here is the step-by-step workflow to get any application live:
|
|
||||||
|
|
||||||
### Step 1: Local Development & Containerization
|
|
||||||
1. Write your application code locally (e.g., a Node.js API, Python backend, or React frontend).
|
|
||||||
2. Ensure your application listens on a specific port (e.g., `3000` or `8080`) and reads it from environment variables (`process.env.PORT`).
|
|
||||||
3. Containerize your app: You can either build a Docker image and push it to a registry (like Docker Hub or GitHub Container Registry), or for simpler scripts, use a base image (e.g., `node:22-alpine`) and inject your code via environment variables and startup commands.
|
|
||||||
|
|
||||||
### Step 2: Infrastructure Provisioning (Optional)
|
|
||||||
If your app needs state, configure it first:
|
|
||||||
1. **Volumes:** Go to the Cumin Dashboard -> Volumes -> Create Volume (e.g., `50MB` for a database).
|
|
||||||
2. **Postgres/Redis:** Deploy managed databases directly from the UI or via API.
|
|
||||||
|
|
||||||
### Step 3: Application Deployment
|
|
||||||
1. Go to the Cumin Console -> **Deploy App**.
|
|
||||||
2. **Image:** Specify your Docker image (e.g., `nginx:latest` or your custom image URL).
|
|
||||||
3. **Ports:** Map the internal port (e.g., `80`) to the public HTTP/HTTPS interface.
|
|
||||||
4. **Environment Variables:** Inject any required secrets or configuration (e.g., `DB_URL`).
|
|
||||||
5. **Hardware:** Select CPU and Memory limits (e.g., `128MB`, `256MB`).
|
|
||||||
6. **Deploy:** Click deploy. Cumin will instantly spin up the container and assign a public, SSL-secured domain (`https://app-name-hash.hosted.cumin.dev`).
|
|
||||||
|
|
||||||
### Step 4: Programmatic Deployment (Advanced)
|
|
||||||
For complex, multi-service architectures like our SOC platform, you can bypass the UI and use the Cumin API (`https://api.cumin.dev/apps`) to deploy dozens of services simultaneously using a Bearer token.
|
|
||||||
|
|
||||||
> [!TIP]
|
|
||||||
> Cumin handles SSL termination, load balancing, and DNS routing out-of-the-box. The moment the container status turns `running`, it is globally accessible on the internet.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 3. Case Study: The SOC Microservices Platform
|
|
||||||
|
|
||||||
To test the platform's limits, we designed a **10-component SOC architecture**.
|
|
||||||
|
|
||||||
### 3.1 Architecture Overview
|
|
||||||
The system relies on a centralized `soc-gateway` that acts as an API proxy and interactive dashboard for several backend microservices (`siem`, `soar`, `firewall`, `uba`, `threat-intel`, `ids`, `honeypot`, `vuln-scan`, and `ops`).
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
graph TD
|
|
||||||
User([Security Analyst]) -->|HTTPS| GW[soc-gateway<br>API Gateway]
|
|
||||||
GW -->|HTTP Proxy| SIEM[soc-siem<br>Log Aggregation]
|
|
||||||
GW -->|HTTP Proxy| SOAR[soc-soar<br>Response Automation]
|
|
||||||
GW -->|HTTP Proxy| TI[soc-threat-intel<br>IOC Feeds]
|
|
||||||
GW -->|HTTP Proxy| OPS[soc-ops<br>Incidents & Compliance]
|
|
||||||
SIEM -->|Correlates| DB[(soc-db<br>Postgres Volume)]
|
|
||||||
SOAR -->|Executes Playbooks| FW[soc-firewall]
|
|
||||||
IDS[soc-ids] -->|Sends Alerts| SIEM
|
|
||||||
HP[soc-honeypot] -->|Sends Logs| SIEM
|
|
||||||
UBA[soc-uba] -->|Sends Anomalies| SIEM
|
|
||||||
VS[soc-vuln-scan] -->|Sends Vulns| SIEM
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3.2 Visual & Functional Results
|
|
||||||
The UI was overhauled using modern web technologies, resulting in a premium, glassmorphism-inspired aesthetic with dynamic SVG diagrams rendered via Mermaid.js.
|
|
||||||
|
|
||||||
````carousel
|
|
||||||

|
|
||||||
<!-- slide -->
|
|
||||||

|
|
||||||
````
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 4. Feature Evaluation & Ratings
|
|
||||||
|
|
||||||
During deployment, we evaluated specific Cumin features. Here are the findings:
|
|
||||||
|
|
||||||
### 1. Application Deployment & Scaling
|
|
||||||
- **Rating: 9/10**
|
|
||||||
- **Feedback:** Exceptionally fast. Containers boot in under 3 seconds. The automatic SSL injection is flawless.
|
|
||||||
- **Constraint:** The Free Tier restricts projects to a maximum of **10 apps**. To bypass this, we merged the `Incident` and `Compliance` services into a single `soc-ops` service.
|
|
||||||
|
|
||||||
### 2. Managed PostgreSQL
|
|
||||||
- **Rating: 8/10**
|
|
||||||
- **Feedback:** Easy to provision. Requires linking a persistent volume, which guarantees data safety but adds a minor manual step compared to fully abstracted DBaaS offerings.
|
|
||||||
|
|
||||||
### 3. S3-Compatible Buckets
|
|
||||||
- **Rating: 8.5/10**
|
|
||||||
- **Feedback:** Instantly creates buckets and associated access keys. Seamless integration for object storage.
|
|
||||||
|
|
||||||
### 4. Advanced Features (Constellations, Secrets, Pull Secrets, Network Policy)
|
|
||||||
To evaluate these features, we integrated programmatic API calls into the deployment script:
|
|
||||||
- **Secrets API (`/secrets`)**: Designed for injecting secure environment variables. **Result:** Returned `access denied` due to token permission scoping on the free tier.
|
|
||||||
- **Constellations API (`/constellations`)**: Meant for logical grouping and private networking. **Result:** Returned `access denied` due to token limitations.
|
|
||||||
- **Pull Secrets API (`/pull-secrets`)**: Used for authenticating against private Docker registries. **Result:** Returned `404 page not found`, suggesting the endpoint has moved, is deprecated, or requires a different payload structure.
|
|
||||||
- **Network Policy API (`/network-policies`)**: Expected to handle internal ingress/egress rules. **Result:** Returned `404 page not found`.
|
|
||||||
|
|
||||||
> [!WARNING]
|
|
||||||
> While the core compute features (Apps, DBs, Volumes) are highly reliable, the advanced administrative APIs currently return 403 (Access Denied) or 404 (Not Found) under the standard development token. Further documentation or upgraded token scopes are required to leverage these fully.
|
|
||||||
|
|
||||||
## 5. Final Verdict
|
|
||||||
Cumin is a highly capable, developer-friendly PaaS. Its execution speed for deploying containerized workloads and exposing them to the internet is industry-leading. By optimizing microservice granularity (e.g., merging lightweight services), developers can easily build and host complex architectures entirely within the constraints of the platform.
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
# Next-Generation SOC Platform: System Architecture & Results
|
|
||||||
|
|
||||||
## 1. Introduction
|
|
||||||
This document details the architecture, capabilities, and execution results of the **Next-Generation Security Operations Center (SOC)** deployed on the Cumin cloud platform. The objective was to build a modern, microservice-oriented security platform that aggregates, analyzes, and responds to cybersecurity threats in real-time.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 2. System Architecture (Microservices Topology)
|
|
||||||
The platform follows a strictly modular architecture. By breaking down traditional monolithic SOCs into specialized microservices, the system guarantees high fault tolerance and scalable throughput.
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
flowchart TD
|
|
||||||
subgraph Ingestion Layer
|
|
||||||
FW[🔥 Firewall Node] -->|Traffic Logs| SIEM[📋 SIEM Aggregator]
|
|
||||||
IDS[🛡️ IDS/IPS Engine] -->|Threat Alerts| SIEM
|
|
||||||
HP[🍯 Honeypot Node] -->|Deception Events| SIEM
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph Analysis & Correlation Layer
|
|
||||||
SIEM -->|Correlated Logs| UBA[👤 User Behavior Analytics]
|
|
||||||
TI[🌐 Threat Intel Feed] -->|IOC Streams| SIEM
|
|
||||||
VS[🔍 Vuln Scanner] -->|Asset Scans| SIEM
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph Operations & Response Layer
|
|
||||||
UBA -->|Anomaly Scores| SOAR[⚡ SOAR Playbooks]
|
|
||||||
SOAR -->|Automated Actions| OPS[⚙️ Incident & Compliance (SOC Ops)]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph Presentation Layer
|
|
||||||
SIEM -.-> GW[📊 Gateway Dashboard]
|
|
||||||
SOAR -.-> GW
|
|
||||||
OPS -.-> GW
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2.1 Core Services Overview
|
|
||||||
| Service Name | Tag / Role | Function |
|
|
||||||
| :--- | :--- | :--- |
|
|
||||||
| **`soc-gateway`** | `gateway` | Centralized UI with glassmorphism design. Acts as a unified proxy to all backend services. |
|
|
||||||
| **`soc-siem`** | `siem` | Central log collector. Parses and correlates data from IDS, Firewall, and Honeypot. |
|
|
||||||
| **`soc-soar`** | `soar` | Automated response orchestrator. Executes playbooks when specific thresholds are met. |
|
|
||||||
| **`soc-honeypot`** | `honeypot` | Deception technology simulating vulnerable services (e.g., SSH, FTP) to trap attackers. |
|
|
||||||
| **`soc-ids`** | `ids` | Deep packet inspection simulation, detecting malware signatures and brute-force attempts. |
|
|
||||||
| **`soc-firewall`** | `firewall` | Network traffic control node, generating block/allow logs. |
|
|
||||||
| **`soc-uba`** | `uba` | Analyzes user actions to flag insider threats and anomalous access patterns. |
|
|
||||||
| **`soc-threat-intel`**| `threat-intel` | Feeds the SIEM with known bad IP addresses, malware hashes, and malicious domains. |
|
|
||||||
| **`soc-vuln-scan`** | `vuln-scan` | Periodically scans network assets for CVEs and misconfigurations. |
|
|
||||||
| **`soc-ops`** | `ops` | Unified service tracking open incident tickets and enforcing security compliance standards. |
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> To comply with Cumin's 10-app limit per project, the Incident Management and Compliance services were successfully consolidated into a single unified `soc-ops` service, demonstrating the flexibility of Node.js-based microservices on the platform.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 3. Deployment Results & Performance
|
|
||||||
|
|
||||||
The entire 10-component system (9 Apps + 1 Postgres DB) was deployed successfully via an automated Node.js script interacting with the Cumin API.
|
|
||||||
|
|
||||||
### 3.1 Provisioning Speed
|
|
||||||
Cumin demonstrated remarkable provisioning speeds for lightweight Node.js Alpine containers:
|
|
||||||
- **Database Provisioning**: `< 2 seconds`
|
|
||||||
- **Container Startup**: `< 3 seconds per microservice`
|
|
||||||
- **Network Routing**: Automatic SSL/TLS issuance via Let's Encrypt occurred instantly (`*.hosted.cumin.dev`).
|
|
||||||
|
|
||||||
### 3.2 Resource Utilization
|
|
||||||
By configuring the microservices with granular resource limits (`cpu: 150`, `memory: 256`), we maintained a highly dense deployment that efficiently utilized the Cumin Free Tier constraints without encountering Out-Of-Memory (OOM) kills.
|
|
||||||
|
|
||||||
### 3.3 Dynamic Dashboard Generation
|
|
||||||
The Gateway application dynamically queries the Cumin API (`/apps`) during its build phase to discover the dynamically assigned hostnames of all sibling microservices. This enables zero-configuration service discovery:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
> [!TIP]
|
|
||||||
> The UI employs modern web development features including CSS Grid, backdrop-filters (Glassmorphism), dynamic auto-refresh intervals, and interactive SVG diagrams powered by Mermaid.js.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 4. Operational Workflows Evaluated
|
|
||||||
|
|
||||||
1. **Detection to Resolution Flow:**
|
|
||||||
- Simulated traffic hits the `soc-ids`.
|
|
||||||
- Alert sent to `soc-siem`.
|
|
||||||
- `soc-soar` polls the SIEM, detects a P1 Alert, and automatically assigns a ticket in `soc-ops`.
|
|
||||||
2. **Deception Flow:**
|
|
||||||
- `soc-honeypot` registers unauthorized SSH attempts.
|
|
||||||
- Automatically cross-referenced with `soc-threat-intel` IPs.
|
|
||||||
- Visualized in real-time on the Gateway Dashboard.
|
|
||||||
|
|
||||||
## 5. Conclusion
|
|
||||||
The deployed SOC Platform proves that Cumin is highly capable of hosting complex, multi-tiered architectures. The platform's automated routing, instant SSL, and straightforward deployment API make it an excellent environment for microservice-oriented systems.
|
|
||||||
@@ -193,7 +193,7 @@ function rDash(){
|
|||||||
h+='<div class="card"><h4>Service Health Matrix</h4><div class="svc-grid">';
|
h+='<div class="card"><h4>Service Health Matrix</h4><div class="svc-grid">';
|
||||||
SN.forEach(function(s){
|
SN.forEach(function(s){
|
||||||
var isUp=H[s]&&H[s].status==="healthy";
|
var isUp=H[s]&&H[s].status==="healthy";
|
||||||
h+='<div class="svc-card" onclick="go(\''+findTab(s)+'\')"><div class="svc-dot '+(isUp?"up":"dn")+'"></div><div class="svc-ico">'+IC[s]+'</div><div class="svc-name">'+LB[s]+'</div><div class="svc-role">'+(isUp?"Online":"Offline")+'</div></div>';
|
h+='<div class="svc-card" onclick="go(''+findTab(s)+'')"><div class="svc-dot '+(isUp?"up":"dn")+'"></div><div class="svc-ico">'+IC[s]+'</div><div class="svc-name">'+LB[s]+'</div><div class="svc-role">'+(isUp?"Online":"Offline")+'</div></div>';
|
||||||
});
|
});
|
||||||
h+='</div></div></div>';
|
h+='</div></div></div>';
|
||||||
document.getElementById("ct").innerHTML=h;
|
document.getElementById("ct").innerHTML=h;
|
||||||
@@ -203,7 +203,7 @@ function rSvcs(){
|
|||||||
var h='<div class="title"><span class="ico">🔌</span> Service Map</div><div class="svc-grid" style="margin-bottom:16px">';
|
var h='<div class="title"><span class="ico">🔌</span> Service Map</div><div class="svc-grid" style="margin-bottom:16px">';
|
||||||
SN.forEach(function(s){
|
SN.forEach(function(s){
|
||||||
var isUp=H[s]&&H[s].status==="healthy";
|
var isUp=H[s]&&H[s].status==="healthy";
|
||||||
h+='<div class="svc-card" onclick="go(\''+findTab(s)+'\')"><div class="svc-dot '+(isUp?"up":"dn")+'"></div><div class="svc-ico">'+IC[s]+'</div><div class="svc-name">'+LB[s]+'</div><div class="svc-role">'+RL[s]+'</div><div style="margin-top:6px;font-size:10px;color:var(--m)">Req: '+((C[s]&&C[s].stats&&C[s].stats.req)||0)+'</div></div>';
|
h+='<div class="svc-card" onclick="go(''+findTab(s)+'')"><div class="svc-dot '+(isUp?"up":"dn")+'"></div><div class="svc-ico">'+IC[s]+'</div><div class="svc-name">'+LB[s]+'</div><div class="svc-role">'+RL[s]+'</div><div style="margin-top:6px;font-size:10px;color:var(--m)">Req: '+((C[s]&&C[s].stats&&C[s].stats.req)||0)+'</div></div>';
|
||||||
});
|
});
|
||||||
h+='</div><div class="card"><h4>Service Details</h4><table class="tbl"><thead><tr><th>Service</th><th>Status</th><th>Role</th><th>Events</th><th>Alerts</th></tr></thead><tbody>';
|
h+='</div><div class="card"><h4>Service Details</h4><table class="tbl"><thead><tr><th>Service</th><th>Status</th><th>Role</th><th>Events</th><th>Alerts</th></tr></thead><tbody>';
|
||||||
SN.forEach(function(s){
|
SN.forEach(function(s){
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
# Walkthrough: SOC Platform Deployment & Evaluation
|
|
||||||
|
|
||||||
## Summary of Accomplishments
|
|
||||||
|
|
||||||
We have successfully executed the master deployment plan on the **Cumin Platform**. This involved deploying an entire Next-Generation Security Operations Center (SOC), testing the limits of the platform's Free Tier quotas, evaluating its advanced API endpoints, and building a breathtaking modern UI for the dashboard.
|
|
||||||
|
|
||||||
### 1. Quota Compliance & Service Consolidation
|
|
||||||
To adhere strictly to the 10-app limit per project on the Cumin Free Tier:
|
|
||||||
- We successfully refactored the original 10 backend microservices down to 8 by merging the `soc-incident` and `soc-compliance` services into a single, unified `soc-ops` service.
|
|
||||||
- The deployment executed perfectly, resulting in exactly **9 apps** (8 backend services + 1 Gateway) and **1 Postgres Database**.
|
|
||||||
|
|
||||||
### 2. Advanced Cumin Feature Testing
|
|
||||||
During Phase 1.5 of the deployment script, we programmatically tested Cumin's advanced administrative APIs using the provided token. Here are the results:
|
|
||||||
- **Secrets API (`/secrets`)**: Resulted in `access denied` (403).
|
|
||||||
- **Constellations API (`/constellations`)**: Resulted in `access denied` (403).
|
|
||||||
- **Pull Secrets API (`/pull-secrets`)**: Resulted in `404 page not found`.
|
|
||||||
- **Network Policy API (`/network-policies`)**: Resulted in `404 page not found`.
|
|
||||||
> [!NOTE]
|
|
||||||
> These results confirm that while the basic compute and storage primitives work flawlessly, the advanced networking and secret management APIs either require a higher-tier token or use different unlisted endpoints.
|
|
||||||
|
|
||||||
### 3. Gateway Dashboard Overhaul
|
|
||||||
We completely redesigned the Gateway UI to feel like a premium, enterprise-grade Next-Generation SOC.
|
|
||||||
- **Glassmorphism Design**: Implemented backdrop filters, sleek dark mode aesthetics, and a vibrant but professional color palette.
|
|
||||||
- **Architecture Visualization**: Integrated **Mermaid.js** directly into the frontend, rendering a dynamic, interactive architecture diagram of the entire system right in the browser.
|
|
||||||
- **Zero-Config Discovery**: The Gateway queried the Cumin API during its build phase, discovering the public `.hosted.cumin.dev` URLs of all the backend microservices automatically.
|
|
||||||
|
|
||||||
### Screenshots
|
|
||||||
|
|
||||||
````carousel
|
|
||||||

|
|
||||||
<!-- slide -->
|
|
||||||

|
|
||||||
````
|
|
||||||
|
|
||||||
## Verification
|
|
||||||
- ✅ **Deployment script (`deploy.js`) ran to completion without errors.**
|
|
||||||
- ✅ **All 9 applications achieved `running` status.**
|
|
||||||
- ✅ **Gateway UI loads and correctly fetches `/health` and `/stats` from backend endpoints.**
|
|
||||||
|
|
||||||
The system is now fully live and the requested evaluations are thoroughly documented.
|
|
||||||
المرجع في مشكلة جديدة
حظر مستخدم