Pular para o conteúdo
Skillpedia
Diversos35 mil · #6209

securing-historian-server-in-ot-environment

Audita e protege servidores de histórico em ambientes industriais (OT). Garante a integridade e o acesso seguro aos dados de processo.

O que ela faz

Esta ferramenta verifica a segurança de servidores de dados históricos industriais (como OSIsoft PI, Honeywell PHD, GE Proficy, AVEVA Historian) em ambientes de produção. Ela verifica se as configurações de rede, acesso e proteção de dados estão seguras.

Quando usar

  • ✓Ao configurar um novo servidor histórico pela primeira vez.
  • ✓Ao revisar a segurança de um servidor histórico existente.
  • ✓Ao planejar como enviar dados do chão de fábrica para a rede de TI de forma segura.

Exemplo do que pedir para a IA

“Verifique a segurança do meu servidor histórico OSIsoft PI no endereço 192.168.1.100.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/securing-historian-server-in-ot-environment/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/securing-historian-server-in-ot-environment/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta se conecta ao servidor para verificar portas abertas e configurações comuns de segurança. Ela identifica riscos como serviços desnecessários expostos ou falta de criptografia.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill securing-historian-server-in-ot-environment

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/securing-historian-server-in-ot-environment/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Protegendo o Servidor Historian em Ambientes OT

Quando Usar

  • Ao implantar um novo servidor historian em um ambiente OT e configurá-lo de forma segura desde o início
  • Ao fortalecer um historian existente após uma avaliação de segurança identificar que ele é um alvo de alto risco
  • Ao projetar a arquitetura de replicação de dados do historian através de uma DMZ para acesso de TI aos dados de processo
  • Ao implementar controles de acesso para impedir a modificação não autorizada de dados históricos de processo
  • Ao investigar suspeitas de comprometimento do historian ou problemas de integridade de dados

Não usar para segurança de banco de dados apenas de TI sem dados OT (veja o fortalecimento geral de bancos de dados), para segurança de transmissão de dados SCADA em tempo real (veja detecção-de-ataques-em-sistemas-scada), ou para decisões de seleção e dimensionamento do historian.

Pré-requisitos

  • Plataforma Historian (OSIsoft PI, Honeywell PHD, GE Proficy, AVEVA Historian) instalada e operacional
  • Segmentação de rede com o historian posicionado no Nível 3 (Operações do Site) de acordo com o Modelo Purdue
  • Compreensão dos fluxos de dados: dispositivos de campo -> PLCs -> servidores OPC -> historian
  • Acesso às credenciais de administração do historian
  • Infraestrutura DMZ para replicação de dados voltada para TI

Fluxo de Trabalho

Etapa 1: Auditar a Configuração de Segurança Atual do Historian

Avalie a postura de segurança atual do servidor historian, incluindo exposição de rede, autenticação e controles de acesso.

#!/usr/bin/env python3
"""Ferramenta de Auditoria de Segurança do Historian.

Avalia a configuração de segurança de servidores historian de processo
incluindo exposição de rede, autenticação, controles de acesso
e proteções de integridade de dados.
"""

import json
import socket
import ssl
import subprocess
import sys
from dataclasses import dataclass, field, asdict
from datetime import datetime


@dataclass
class AuditFinding:
    finding_id: str
    severity: str
    category: str
    title: str
    detail: str
    remediation: str


class HistorianSecurityAudit:
    """Auditoria de segurança para servidores historian OT."""

    def __init__(self, historian_ip, historian_type="PI"):
        self.ip = historian_ip
        self.type = historian_type
        self.findings = []
        self.counter = 1

    def check_network_exposure(self):
        """Verifica quais serviços de rede estão expostos pelo historian."""
        print(f"[*] Verificando exposição de rede: {self.ip}")

        # Portas comuns do historian
        ports_to_check = {
            5450: ("PI Data Archive", "Conexões PI SDK/API"),
            5457: ("PI AF Server", "PI Asset Framework"),
            5459: ("PI Notifications", "Serviço de Notificação PI"),
            443: ("HTTPS", "PI Vision / API Web"),
            80: ("HTTP", "Interface web não segura"),
            1433: ("MS SQL Server", "Acesso direto ao banco de dados"),
            5432: ("PostgreSQL", "Acesso direto ao banco de dados"),
            3389: ("RDP", "Área de Trabalho Remota"),
            135: ("RPC", "RPC do Windows"),
            445: ("SMB", "Compartilhamento de Arquivos do Windows"),
            8080: ("HTTP Alt", "Interface web alternativa"),
        }

        exposed = []
        for port, (service, desc) in ports_to_check.items():
            try:
                sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                sock.settimeout(3)
                result = sock.connect_ex((self.ip, port))
                sock.close()
                if result == 0:
                    exposed.append({"port": port, "service": service, "description": desc})
            except Exception:
                pass

        # Sinaliza serviços desnecessariamente expostos
        for svc in exposed:
            if svc["port"] in (80, 135, 445, 3389):
                self.findings.append(AuditFinding(
                    finding_id=f"HIST-{self.counter:03d}",
                    severity="high",
                    category="Exposição de Rede",
                    title=f"Serviço desnecessário exposto: {svc['service']} (porta {svc['port']})",
                    detail=f"Porta {svc['port']} ({svc['description']}) está acessível no historian",
                    remediation=f"Desative {svc['service']} ou restrinja via firewall do host",
                ))
                self.counter += 1

        if any(s["port"] == 80 for s in exposed):
            self.findings.append(AuditFinding(
                finding_id=f"HIST-{self.counter:03d}",
                severity="high",
                category="Criptografia",
                title="Interface web do historian em HTTP não criptografado",

…
Perguntas frequentes

O que é um 'ambiente OT'?

OT significa 'Tecnologia Operacional'. São os sistemas que controlam equipamentos e processos industriais, como fábricas e usinas.

O que é o 'Modelo Purdue'?

É um modelo que divide a rede industrial em níveis, do chão de fábrica até a rede de TI, para organizar e proteger os sistemas.

O que é 'DMZ'?

Uma DMZ (Zona Desmilitarizada) é uma área de rede intermediária que protege a rede interna (OT) de acessos externos (IT), permitindo a comunicação controlada.

Detalhes

Descrição original do autor

Audits and hardens process historian servers (OSIsoft PI, Honeywell PHD, GE Proficy, AVEVA Historian) in OT environments: Purdue-level network placement, interface access control, secure DMZ replication via data diodes or PI-to-PI connectors, SQL injection prevention, and process data integrity. Use when auditing or hardening a historian server, or designing secure OT-to-IT data replication throug

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6209
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas