ソース情報
- リポジトリ
- JohnNuwan/EVA_CORE
- ソースの最終更新活動
- 2026年7月18日 08:30
- 検出された SKILL.md の言語
- フランス語
- スター
- 0
- フォーク
- 0
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/JohnNuwan/EVA_CORE --skill ot-securityコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Concevoir et maintenir un watchdog auto-correcteur pour services HTTP — checks de santé, auto-restart, état persistant, rapports et pièges bash.
Serveur de messagerie sécurisé auto-hébergé (Signal-like) avec Flask + WebSocket + AES-256-GCM + pont EVA
ADAM-SENTINEL — Veilleur technologique 24h/24h. Scanne 10 domaines, cree des rapports, met a jour les skills, alerte sur les CVE et breaking changes.
SOC 職業分類に基づく
SKILL.md を表示中
| name | ot-security |
| description | Cybersécurité OT et résilience selon l'ISA/IEC 62443. |
| version | 1.2.0 |
| author | EVA |
| license | Privée EVA St-Étienne |
| platforms | ["linux","macos","windows"] |
| metadata | {"EVA":{"tags":["security","ot-security",62443,"secrets","resilience","network","industrial-automation"],"related_skills":["simplify-code","plan"]}} |
Le réseau de production (OT) a des priorités distinctes du réseau informatique (IT). En OT, la priorité absolue est la Disponibilité et la Sécurité des personnes et équipements (Safety), suivies par l'Intégrité et la Confidentialité. Lors du développement d'applications ou de scripts d'interface avec des automates ou des supervisions, il est crucial d'appliquer les principes fondamentaux de la norme ISA/IEC 62443 au niveau du code.
Cette compétence guide l'agent EVA pour écrire des scripts d'informatique industrielle hautement résilients aux pannes réseaux, et sécurisés contre les vulnérabilités courantes du monde OT.
Le script d'assistance associé à cette compétence est disponible sous ot_security_scanner.py.
À utiliser lorsque l'utilisateur demande de :
Ne jamais insérer des mots de passe de bases de données, de serveurs OPC-UA ou de brokers MQTT en dur dans les scripts.
.env non partagé sur les dépôts de code (ex: git).import os
from dotenv import load_dotenv
# Charger les variables du fichier .env
load_dotenv()
db_user = os.getenv("DB_USER")
db_password = os.getenv("DB_PASS")
# Connexion sécurisée
# connect(user=db_user, password=db_password)
Puisque les scripts Python peuvent écrire directement dans la mémoire des automates (via Modbus, Snap7, ou PyLogix), toute écriture de consigne doit être précédée d'un contrôle de cohérence des plages de valeurs (Range Check) au niveau applicatif pour éviter des dysfonctionnements physiques sur la machine.
def safe_write_speed_limit(client_plc, speed_setpoint: float):
# Seuils de sécurité mécanique définis par le process
MIN_SPEED = 0.0
MAX_SPEED = 1500.0
if speed_setpoint < MIN_SPEED or speed_setpoint > MAX_SPEED:
raise ValueError("Consigne de vitesse %.2f hors limites de sécurité [%.1f, %.1f]"
% (speed_setpoint, MIN_SPEED, MAX_SPEED))
# Si OK, procéder à l'écriture physique
# client_plc.write('Tag_Speed', speed_setpoint)
Les coupures réseau de quelques secondes ou minutes sont courantes en atelier. Les scripts ne doivent pas planter à la première déconnexion mais tenter des reconnexions périodiques tout en alertant les superviseurs.
import time
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("EVA_OT_Monitor")
def communication_loop(plc_client):
reconnect_delay = 5.0 # Attendre 5s avant de réessayer
while True:
try:
if not plc_client.is_connected():
logger.warning("Connexion perdue. Tentative de reconnexion...")
plc_client.connect()
time.sleep(1)
continue
# Lecture de données
data = plc_client.read_all_tags()
logger.info("Données récupérées avec succès.")
# Temps de boucle nominal
time.sleep(2.0)
except Exception as e:
logger.error("Erreur de communication : %s. Nouvelle tentative dans %s secondes."
% (str(e), reconnect_delay))
time.sleep(reconnect_delay)
Pour exécuter le scanner de ports industriels de manière non-intrusive sur une plage réseau, utilisez l'outil d'exécution de code (execute_code) avec le script suivant :
import subprocess
# Plage réseau à scanner (ex : automate local et son réseau)
targets = "127.0.0.1,192.168.1.0/24"
cmd = [
".venv/Scripts/python.exe",
"skills/industrial/standards-security/ot-security/scripts/ot_security_scanner.py",
"--targets", targets,
"--ports", "102,502,4840,44818", # S7Comm, Modbus, OPC UA, EtherNet/IP
"--timeout", "0.5" # Temps d'attente court pour rester discret
]
print(f"Lancement de l'audit de sécurité réseau sur : {targets}...")
result = subprocess.run(cmd, capture_output=True, text=True)
print(result.stdout)
if result.stderr:
print("Erreurs :", result.stderr)
Commit de fichiers de configuration contenant des mots de passe :
.env ou de configuration locale contenant des mots de passe au fichier .gitignore et distribuer un fichier modèle vide (ex: .env.example).Écritures aveugles en boucle infinie (surcharges PLC) :
Scans de ports agressifs (type Nmap) en production :
.env) sont ajoutés au fichier .gitignore.