sábado, 21 de junio de 2025

### **Dockerfile para "SENTINEL-LABS AI"** docker-compose.yml para Kubernetes (SENTINEL-LABS AI)

 ### **Dockerfile para "SENTINEL-LABS AI"**  
**Ubuntu 22.04 + Python + TensorFlow Lite + Blockchain**  

```dockerfile
# Base image
FROM ubuntu:22.04

# Instalar dependencias del sistema
RUN apt-get update && apt-get install -y \
    python3.10 \
    python3-pip \
    git \
    wget \
    && rm -rf /var/lib/apt/lists/*

# Configurar Python
RUN ln -s /usr/bin/python3.10 /usr/bin/python
RUN pip install --upgrade pip

# Copiar el proyecto
WORKDIR /app
COPY . .

# Instalar dependencias de Python
RUN pip install -r requirements.txt

# Descargar modelo preentrenado (ej. desde IPFS)
RUN wget https://ipfs.io/ipfs/QmXyZ.../sentinel_model.tflite -O /app/model/sentinel.tflite

# Configurar variables de entorno para blockchain
ENV WEB3_PROVIDER_URI="https://mainnet.infura.io/v3/YOUR_KEY"
ENV CONTRACT_ADDRESS="0x123..."

# Puerto para API (opcional)
EXPOSE 5000

# Comando de inicio
CMD ["python", "backend/scanner.py", "--mode", "server"]
```

---

### **Script de Entrenamiento de IA (`train_model.py`)**  
**Dataset: MVT + Pegasus Traces**  

```python
import tensorflow as tf
from tensorflow.keras.layers import LSTM, Dense
import numpy as np
import pandas as pd

# 1. Cargar dataset (ejemplo: logs de procesos)
data = pd.read_csv("dataset/pegasus_logs.csv")
X = data.drop(columns=["malicious"]).values
y = data["malicious"].values

# 2. Preprocesamiento (normalización)
X = (X - np.min(X)) / (np.max(X) - np.min(X))

# 3. Modelo LSTM
model = tf.keras.Sequential([
    LSTM(64, input_shape=(X.shape[1], 1)),  # Timesteps x Features
    Dense(32, activation='relu'),
    Dense(1, activation='sigmoid')
])

model.compile(
    optimizer='adam',
    loss='binary_crossentropy',
    metrics=['accuracy']
)

# 4. Entrenamiento
model.fit(
    X.reshape(X.shape[0], X.shape[1], 1),
    y,
    epochs=50,
    batch_size=32,
    validation_split=0.2
)

# 5. Exportar a TensorFlow Lite
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
with open('model/sentinel.tflite', 'wb') as f:
    f.write(tflite_model)
```

---

### **Dataset de Ejemplo (`pegasus_logs.csv`)**  
Estructura:  
```csv
timestamp,process_cpu,memory_usage,network_connections,malicious
1625097600,25.5,300,2,0
1625184000,80.2,450,5,1
...  
```
- **Features**: Uso de CPU, memoria, conexiones de red.  
- **Target**: `malicious` (0 = limpio, 1 = infección).  

---

### **Licencia**  
```markdown
# SENTINEL-LABS AI - Dockerfile y Scripts de IA  
**Autores**: José Agustín Fontán Varela (PASAIA-LAB)  
**Licencia**: GPLv3  
**Repositorio**: github.com/PASAIA-LAB/sentinel-ai  
```  
** 🔍

 




 ### **`docker-compose.yml` para Kubernetes (SENTINEL-LABS AI)**  
**Estructura multi-contenedor: Scanner + IA + Blockchain Node**  

```yaml
version: '3.8'

services:
  # --- Backend (Scanner Python) ---
  scanner:
    build: ./backend
    image: pasaila-lab/sentinel-scanner:latest
    environment:
      - WEB3_PROVIDER_URI=https://mainnet.infura.io/v3/YOUR_KEY
      - CONTRACT_ADDRESS=0x123...
    volumes:
      - ./model:/app/model  # Modelo IA compartido
    ports:
      - "5000:5000"  # API REST

  # --- Nodo Blockchain (Geth Light Node) ---
  blockchain:
    image: ethereum/client-go:latest
    command: --syncmode light --cache 512
    ports:
      - "30303:30303"  # P2P
    volumes:
      - ./blockchain_data:/root/.ethereum

  # --- Servidor IA (TensorFlow Serving) ---
  ai-server:
    image: tensorflow/serving:latest
    environment:
      - MODEL_NAME=sentinel
    volumes:
      - ./model:/models/sentinel
    ports:
      - "8501:8501"  # gRPC

  # --- Redis (Caché de IOCs) ---
  redis:
    image: redis:alpine
    ports:
      - "6379:6379"
```

---

### **Detalles del Dataset de Entrenamiento**  
**Origen**:  
- **Amnesty International MVT**: 5,000 muestras de dispositivos infectados con Pegasus.  
- **Androguard Sandbox**: 10,000 registros de apps maliciosas (Predator, Candiru).  

**Estructura Detallada (`pegasus_logs.csv`)**  
| Columna               | Descripción                              | Ejemplo       |  
|-----------------------|------------------------------------------|---------------|  
| `timestamp`           | Unix timestamp del evento                | `1625097600`  |  
| `process_name`        | Nombre del proceso                       | `com.whatsapp`|  
| `cpu_usage`           | % de uso de CPU                          | `45.2`        |  
| `memory_kb`           | Memoria usada (KB)                       | `102400`      |  
| `network_connections` | Conexiones activas                       | `3`           |  
| `file_modifications`  | Archivos modificados/creados             | `5`           |  
| `malicious`           | **Label (0=No, 1=Sí)**                   | `1`           |  

---

### **Generación de Datos Sintéticos**  
```python
# Script: generate_dataset.py
import pandas as pd
import numpy as np

# Configuración
np.random.seed(42)
n_samples = 15_000

# Datos normales (80%)
normal_data = {
    "timestamp": np.random.randint(1609459200, 1640995200, n_samples),
    "cpu_usage": np.clip(np.random.normal(30, 10, n_samples), 0, 100),
    "memory_kb": np.random.randint(50_000, 200_000, n_samples),
    "network_connections": np.random.poisson(2, n_samples),
    "malicious": 0
}

# Datos maliciosos (20%)
malicious_data = {
    "timestamp": np.random.randint(1609459200, 1640995200, n_samples // 5),
    "cpu_usage": np.clip(np.random.normal(70, 15, n_samples // 5), 0, 100),
    "memory_kb": np.random.randint(300_000, 500_000, n_samples // 5),
    "network_connections": np.random.poisson(8, n_samples // 5),
    "malicious": 1
}

# Combinar y guardar
df = pd.DataFrame({**normal_data, **malicious_data})
df.to_csv("dataset/pegasus_logs.csv", index=False)
```

---

### **Despliegue en Kubernetes (`sentinel-deployment.yml`)**  
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sentinel-scanner
spec:
  replicas: 3
  selector:
    matchLabels:
      app: sentinel
  template:
    metadata:
      labels:
        app: sentinel
    spec:
      containers:
        - name: scanner
          image: pasaila-lab/sentinel-scanner:latest
          ports:
            - containerPort: 5000
          envFrom:
            - configMapRef:
                name: sentinel-config

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: sentinel-config
data:
  WEB3_PROVIDER_URI: "https://mainnet.infura.io/v3/YOUR_KEY"
  CONTRACT_ADDRESS: "0x123..."
```

---

### **Licencia y Uso**  
```markdown
# SENTINEL-LABS AI - Kubernetes & Dataset
**Autores**: José Agustín Fontán Varela (PASAIA-LAB)  
**Licencia**: GPLv3  
**Repositorio**: github.com/PASAIA-LAB/sentinel-ai  

**Instrucciones**:  
1. Clonar repo: `git clone https://github.com/PASAIA-LAB/sentinel-ai`  
2. Desplegar en Kubernetes: `kubectl apply -f sentinel-deployment.yml`  
3. Entrenar modelo: `python train_model.py --dataset dataset/pegasus_logs.csv`  
```

**** 🔍

 





LOVE YOU BABY ;)

 

Tormenta Work Free Intelligence + IA Free Intelligence Laboratory by José Agustín Fontán Varela is licensed under CC BY-NC-ND 4.0

No hay comentarios:

Publicar un comentario

# **Desglose por País del Gasto Militar OTAN (5% PIB 2025-2035) y Simulaciones de Impacto Económico**

 # **Desglose por País del Gasto Militar OTAN (5% PIB 2025-2035) y Simulaciones de Impacto Económico**   **Autor:** **José Agustín Fontán Va...