Skip to content
Back to skills

Program Openrasp

ASecurity

Guia Definitivo e Padrões de Engenharia para Baidu OpenRASP (github.com/baidu/openrasp), cobrindo o framework open-source de Runtime Application Self-Protection (RASP), instalação de agentes Java e PHP, painel OpenRASP Cloud, desenvolvimento de plugins de detecção em JavaScript (motor V8), interceptação de SQLi, RCE, SSRF, Deserialização, e integração com SOC/SIEM.

  • 10 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
developmentjavascriptpythongojavaphpshellbashsqlspringaws

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add dandgabr/skills --skill program-openrasp --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Program Openrasp?

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

Security grade badge for Program Openrasp
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dandgabr-program-openrasp/badge)](https://www.skillsdirectory.com/skills/dandgabr-program-openrasp)

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: program-openrasp
description: Guia Definitivo e Padrões de Engenharia para Baidu OpenRASP (github.com/baidu/openrasp), cobrindo o framework open-source de Runtime Application Self-Protection (RASP), instalação de agentes Java e PHP, painel OpenRASP Cloud, desenvolvimento de plugins de detecção em JavaScript (motor V8), interceptação de SQLi, RCE, SSRF, Deserialização, e integração com SOC/SIEM.
metadata:
  type: defensive
  phase: operations
  mitre:
    - T1190
    - T1059
  tools:
    - openrasp
    - javaagent
    - zend-extension
---

# Habilidade de IA: Guia e Engenharia com Baidu OpenRASP

Esta skill fornece orientação técnica aprofundada, comandos operacionais e padrões de implementação para o **OpenRASP** ([github.com/baidu/openrasp](https://github.com/baidu/openrasp)), a solução de código aberto líder em **Runtime Application Self-Protection (RASP)** desenvolvida pela Baidu, projetada para proteger servidores web Java e PHP diretamente no ambiente de execução.

---

## 🧭 Visão Geral e Arquitetura do OpenRASP

O OpenRASP opera injetando sondas de instrumentação diretamente nos runtimes das linguagens suportadas, inspecionando parâmetros de execução antes que métodos críticos do sistema operacional ou do banco de dados sejam invocados.

```
┌────────────────────────────────────────────────────────────────────────┐
│                      ARQUITETURA GERAL DO OPENRASP                     │
└────────────────────────────────────────────────────────────────────────┘
  [ NÓ DE APLICAÇÃO (Java / PHP) ]
  ┌────────────────────────────────────────────────────────────────────┐
  │  1. Invocação de Método Sensível (Ex: Statement.executeQuery)      │
  │     │                                                              │
  │     ▼                                                              │
  │  2. Sonda OpenRASP Hook Intercepta a Chamada                       │
  │     │                                                              │
  │     ▼                                                              │
  │  3. Motor Google V8 Embutido Executa o Plugin JavaScript           │
  │     │ (Analisa AST da query SQL, tokenização, regex e stack trace) │
  │     │                                                              │
  │     ├──► Ação: BLOCK  ──► Aborta execução + Lança Erro HTTP 403    │
  │     ├──► Ação: LOG    ──► Registra alerta e permite a chamada      │
  │     └──► Ação: IGNORE ──► Permite a operação normalmente           │
  └─────────────────────────────────┬──────────────────────────────────┘
                                    │ (Heartbeat + Logs de Alerta JSON)
                                    ▼
  [ OPENRASP CLOUD MANAGEMENT CONSOLE ] (Painel Web + API)
  ┌────────────────────────────────────────────────────────────────────┐
  │  - Backend: Go / Python                                            │
  │  - Banco de Dados: MongoDB / MySQL                                 │
  │  - Logs & Analytics: Elasticsearch + Kibana                        │
  │  - Gestão de Políticas e Atualização Automática de Plugins em JS   │
  └────────────────────────────────────────────────────────────────────┘
```

---

## 💻 Instalação e Configuração dos Agentes

### 1. Agente Java (Spring Boot, Tomcat, JBoss, WebLogic)

#### Instalação do Pacote:
Baixe a versão mais recente do OpenRASP Java Agent e descompacte no diretório `/opt/rasp`.

#### Estrutura do Diretório:
```
/opt/rasp/
├── conf/
│   └── openrasp.yml      # Configurações do agente e conexão com o Cloud
├── plugins/
│   └── official.js       # Plugin JavaScript padrão de detecção
├── logs/                 # Logs de alarmes e auditoria em JSON
└── rasp.jar              # Binário principal do Java Agent
```

#### Configuração do Arquivo `conf/openrasp.yml`:
```yaml
# Conexão com o OpenRASP Cloud Management
cloud:
  enable: true
  backend_url: "http://openrasp-cloud.empresa.local:8086"
  app_id: "a1b2c3d4e5f6g7h8i9j0"
  app_secret: "secret-token-gerado-no-painel"
  heartbeat_interval: 180

# Modos de proteção (true = Bloqueio Ativo, false = Apenas Log)
block:
  status: true

# Configurações de logging
logger:
  max_size: 500MB
  max_backup: 10
```

#### Inicialização da Aplicação com o Agente:
```bash
# Executando aplicação Spring Boot (.jar)
java -javaagent:/opt/rasp/rasp.jar -Dfile.encoding=UTF-8 -jar app.jar

# Configuração para Apache Tomcat (no arquivo catalina.sh ou setenv.sh)
export JAVA_OPTS="$JAVA_OPTS -javaagent:/opt/rasp/rasp.jar"
```

---

### 2. Agente PHP (Zend Engine Extension)

#### Instalação do Módulo:
```bash
# Compilação ou instalação via script oficial
cd /tmp && git clone https://github.com/baidu/openrasp.git
cd openrasp/agent/php && phpize
./configure --with-php-config=/usr/bin/php-config
make && sudo make install
```

#### Configuração no `php.ini`:
```ini
; Carregamento da extensão OpenRASP
extension=openrasp.so

; Diretório raiz de configurações e plugins
openrasp.root_dir=/opt/rasp

; Habilitar proteção ativa
openrasp.inject_urlprefix=/
openrasp.block_status=1
```

---

## 📜 Desenvolvimento de Plugins de Detecção em JavaScript (V8 Engine)

O grande diferencial do OpenRASP é a capacidade de estender suas políticas através de scripts em JavaScript executados em uma sandbox V8 nativa de alta velocidade dentro do processo.

### 1. Estrutura de um Plugin OpenRASP (`custom-security.js`)
```javascript
'use strict';

var plugin = new RASP('custom-security-rules');

// =========================================================================
// 1. Interceptação de Injeção de Comandos do Sistema Operacional (RCE)
// =========================================================================
plugin.register('command', function (params, context) {
    var command = params.command;
    
    // Bloquear invocações de shells reversas ou comandos destrutivos
    var dangerousPatterns = [
        /nc\s+-e/i,
        /bash\s+-i/i,
        /rm\s+-rf\s+\//i,
        /curl.*\|\s*sh/i,
        /wget.*\|\s*sh/i
    ];

    for (var i = 0; i < dangerousPatterns.length; i++) {
        if (dangerousPatterns[i].test(command)) {
            return {
                action: 'block',
                message: 'Injeção de Comando Crítica bloqueada pelo OpenRASP: ' + command,
                confidence: 100
            };
        }
    }

    return { action: 'ignore' };
});

// =========================================================================
// 2. Interceptação de SQL Injection com Análise Sintática
// =========================================================================
plugin.register('sql', function (params, context) {
    var query = params.query;
    
    // Detectar injeções booleanas ou de união clássicas
    if (/union(\s+all)?\s+select/i.test(query) || /or\s+1\s*=\s*1/i.test(query)) {
        return {
            action: 'block',
            message: 'SQL Injection detectada em tempo de execução: ' + query,
            confidence: 95
        };
    }

    return { action: 'ignore' };
});

// =========================================================================
// 3. Interceptação de SSRF (Server-Side Request Forgery)
// =========================================================================
plugin.register('ssrf', function (params, context) {
    var url = params.url;

    // Bloquear acesso aos metadados de nuvem (AWS/GCP/Azure) e interfaces de loopback
    if (/169\.254\.169\.254/i.test(url) || /127\.0\.0\.1/i.test(url) || /localhost/i.test(url)) {
        return {
            action: 'block',
            message: 'Requisição SSRF para endereço interno/metadados bloqueada: ' + url,
            confidence: 100
        };
    }

    return { action: 'ignore' };
});
```

---

## 📊 Lista de Hooks Suportados pelo OpenRASP

| Hook ID | Recurso Interceptado | Exemplos de Ameaças Mitigadas |
| :--- | :--- | :--- |
| `sql` | Drivers JDBC / MySQL / PostgreSQL / Oracle | SQL Injection (CWE-89), Stacked Queries |
| `command` | `ProcessBuilder`, `Runtime.exec()`, `system()`, `exec()` | OS Command Injection (CWE-78), Web Shells |
| `readFile` / `writeFile` | `FileInputStream`, `fopen()`, `file_get_contents()` | Path Traversal (CWE-22), Arbitrary File Overwrite |
| `fileUpload` | `MultipartResolver`, `$_FILES` | Upload de Web Shells (`.jsp`, `.php`, `.phtml`) |
| `deserialization` | `ObjectInputStream.readObject()`, `unserialize()` | Insecure Deserialization / Java Gadgets (CWE-502) |
| `ssrf` | `HttpURLConnection`, `HttpClient`, `curl_exec()` | SSRF para redes internas ou metadados de nuvem (CWE-918) |
| `xss_userinput` | Manipulação de saída HTML no buffer de resposta | Stored & Reflected XSS (CWE-79) |
| `ognl` | Evaluators OGNL (Apache Struts) | Struts RCE (CVE-2017-5638, CVE-2018-11776) |

---

## 📈 Formato dos Logs de Alerta e Integração SIEM

Quando um ataque é interceptado, o OpenRASP grava no arquivo `/opt/rasp/logs/alarm/alarm.log` uma entrada JSON completa contendo todo o contexto:

```json
{
  "event_type": "attack",
  "app_id": "a1b2c3d4e5f6g7h8i9j0",
  "server_hostname": "app-prod-01",
  "server_ip": "10.0.1.50",
  "attack_type": "sql",
  "plugin_name": "custom-security-rules",
  "action": "block",
  "confidence": 95,
  "client_ip": "198.51.100.42",
  "request_method": "POST",
  "request_url": "https://app.empresa.com/api/v1/search",
  "attack_params": {
    "query": "SELECT * FROM users WHERE id = 1 UNION SELECT null, username, password FROM admin"
  },
  "stack_trace": [
    "com.mysql.cj.jdbc.StatementImpl.executeQuery(StatementImpl.java:115)",
    "com.empresa.app.dao.UserDAO.findUser(UserDAO.java:45)",
    "com.empresa.app.controller.UserController.search(UserController.java:28)"
  ],
  "timestamp": "2026-08-29T17:30:00.123Z"
}
```

---

## 🔗 Integração com Outras Skills do Repositório

- **[rasp-runtime-protection](../../security/appsec/rasp-runtime-protection/SKILL.md)**: Teoria e diretrizes de governança arquitetural de proteção em tempo de execução.
- **[sast-code-review](../../security/appsec/sast-code-review/SKILL.md)**: Validação estática prévia dos mesmos sinks protegidos pelo OpenRASP.
- **[secops-incident-responder](../../security/ops-architecture/secops-incident-responder/SKILL.md)**: Ingestão de alertas do OpenRASP e criação de playbooks de resposta a incidentes.

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.