Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/tz98lab/dlr-ne-ics-security
Оборонительные ИнструментыАнализ уязвимостейБезопасность SCADA/ICSУтилиты и фреймворкиМашинное ОбучениеСтатьи и Исследования
GitHubtz98lab/dlr-ne-ics-security

dlr-ne-ics-security

Исследовательский код, реализующий вычисление динамического низкорангового равновесия Нэша для стохастических игр безопасности ICS между продвинутыми постоянными угрозами и защитой с использованием подвижных целей.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Репозиторий
184 дней назадЕщё не проверено
Поделиться

DLR-NE для игр безопасности ICS

Python 3.10+ License: MIT

Вычисление динамического низкорангового равновесия для стохастических игр между продвинутыми постоянными угрозами и защитой с подвижной целью

Обычная статья, на рассмотрении в Automatica (повторно подана в октябре 2026 г.)

Обзор

Этот репозиторий содержит реализацию и экспериментальную валидацию алгоритма динамического низкорангового равновесия Нэша (DLR-NE) для вычисления равновесий Нэша в высокоразмерных играх безопасности систем промышленного управления (ICS).

Стратегическое взаимодействие между продвинутыми постоянными угрозами (APT) и защитой с подвижной целью (MTD) моделируется как стохастическая игра с нулевой суммой для двух игроков в непрерывном пространстве состояний размерности $n \sim 10^3$–$10^4$. Ключевая идея состоит в том, что физическая низкоранговая связь каналов атаки и защиты (структурное свойство, присущее топологии сети ICS) позволяет получить вычислительно эффективную низкоранговую нейросетевую аппроксимацию функции ценности равновесия, снижая сложность одной итерации с $\mathcal{O}(n^2)$ до $\mathcal{O}(nr^2)$, что даёт ускорение $\Theta(n/r^2)$.

Основные теоретические результаты

ТеоремаУтверждениеЭксперимент
Теорема 1Глобальная граница ошибки низкоранговой аппроксимации для оптимальной функции ценности $V^*$Эксп. 1
Теорема 2Геометрическая сходимость DLR-NE с явным разложением ошибки в установившемся режимеЭксп. 2
Теорема 3Сложность одной итерации $\mathcal{O}(nr^2)$ и ускорение $\Theta(n/r^2)$ по сравнению с полноранговыми базовыми методамиЭксп. 3
Следствие 1Теоретико-игровая робастность: чувствительность равновесия контролируется числом обусловленности $\kappa(S)$Эксп. 4

Структура репозитория

dlr-ne-ics-security/
├── src/                          # Core algorithmic modules
│   ├── environment.py            # Synthetic nonlinear power-system dynamics
│   ├── networks.py               # Low-rank and full-rank neural networks
│   ├── bellman.py                # Bellman operator and greedy Nash policy extractor
│   ├── dlra_vi.py                # Algorithm 1: DLR-NE
│   └── utils.py                  # FLOPs accounting, EYM error, metrics
│
├── experiments/                  # Experimental scripts (one per theorem)
│   ├── exp01_truncation_error.py     # Theorem 1: Low-rank truncation error
│   ├── exp02_convergence.py          # Theorem 2: Convergence of DLR-NE
│   ├── exp03_complexity.py           # Theorem 3: Computational complexity
│   ├── exp04_robustness.py           # Corollary 1: Game-theoretic robustness
│   ├── exp05_tradeoff.py             # Compression-accuracy Pareto frontier
│   └── exp06_ablation.py             # Ablation: necessity of basis augmentation
│
├── data/                         # Generated datasets (excluded from git)
├── results/                      # Figures and logs (excluded from git)
├── notebooks/                    # Prototyping and visualization
├── requirements.txt              # Python dependencies
└── README.md                     # This file

Установка

Предварительные требования

  • Python >= 3.10
  • NumPy, SciPy, Matplotlib, PyTorch (CPU или CUDA)

Быстрая настройка

# Clone the repository
git clone https://github.com/tz98lab/dlr-ne-ics-security.git
cd dlr-ne-ics-security

# Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate        # Linux/Mac
# venv\Scripts\activate         # Windows

# Install dependencies
pip install -r requirements.txt

Зависимости

numpy>=1.24.0
scipy>=1.10.0
matplotlib>=3.7.0
torch>=2.0.0

Эксперименты

Все эксперименты самодостаточны и могут запускаться независимо. Каждый скрипт генерирует графики в каталоге results/figures/.

Примечание о масштабе: Конфигурации по умолчанию используют $n=200$ для быстрой демонстрации. Чтобы воспроизвести полномасштабные результаты, приведённые в статье ($n \sim 10^3$), измените PowerSystemConfig в начале каждого скрипта (см. встроенные комментарии).

Эксп. 1: Ошибка низкоранговой аппроксимации (Теорема 1)

Подтверждает, что ошибка усечения $|V_{\mathrm{full}} - \widehat{V}r|\infty$ убывает с ростом ранга $r$ и согласуется с теоретическим предсказанием Эккарта–Янга–Мирского.

python experiments/exp01_truncation_error.py

Вывод: results/figures/exp1_truncation_error.png
Ожидается: Измеренная ошибка (синие кружки) следует за теоретической границей $L_\phi |w_{\mathrm{out}}^*|2 R{\mathcal{X}} \epsilon_{\mathrm{EYM}}(r)$ (фиолетовая штриховая линия); спектр сингулярных значений демонстрирует быстрое убывание.

Эксп. 2: Сходимость DLR-NE (Теорема 2)

Подтверждает геометрическую сходимость со скоростью $\gamma$ и явную окрестность ошибки в установившемся режиме $\varepsilon_{\mathrm{total}}/(1-\gamma)$.

python experiments/exp02_convergence.py

Вывод: results/figures/exp2_convergence.png
Ожидается: Кривые ошибки сначала убывают вдоль огибающей $\gamma^k$, затем выходят на плато, определяемое бюджетом внутреннего цикла $s^$ (уменьшение $s^$ вдвое стоит примерно фактора 20 по точности); размер батча $N_b$ оказывает сравнительно незначительное влияние.

Эксп. 3: Вычислительная сложность (Теорема 3)

Подтверждает сложность одной итерации $\mathcal{O}(nr^2)$ и ускорение $\Theta(n/r^2)$ по сравнению с полноранговыми базовыми методами FC-NN.

python experiments/exp03_complexity.py

Вывод: results/figures/exp3_complexity.png
Ожидается: DLR-NE масштабируется линейно по $n$ (наклон 1 в лог-лог масштабе), FC-NN масштабируется квадратично (наклон 2); измеренное ускорение по FLOPs $\approx 12\times$ (по времени выполнения $\approx 4\times$) при $n=2000, r=10$.

Эксп. 4: Теоретико-игровая робастность (Следствие 1)

Подтверждает линейное соотношение $|V(\cdot;\pi_D,\pi_A) - V(\cdot;\tilde{\pi}D,\pi_A)|\infty \le L_\kappa |\Delta S|F$ с конечной, настраиваемой через $\beta$ константой чувствительности $L\kappa$, сертифицируемой числом обусловленности $\kappa(S)$ (априорный сертификат наихудшего случая).

python experiments/exp04_robustness.py

Вывод: results/figures/exp4_robustness.png
Ожидается: Отклонение ценности линейно по $|\Delta S|_F$ с наклоном, убывающим с ростом веса спектральной регуляризации $\beta$; $\kappa(S)$ снижается при увеличении $\beta$.

Эксп. 5: Компромисс между сжатием и точностью

Исследует границу Парето между степенью сжатия и полезностью равновесной политики.

python experiments/exp05_tradeoff.py

Вывод: results/figures/exp5_tradeoff.png
Ожидается: Оптимальная точка при $r = 5$: $\approx 94%$ сжатия параметров при $\approx 2.3%$ потери полезности.

Эксп. 6: Абляция — необходимость дополнения базиса

Сравнивает три варианта: (i) полный Алгоритм 1, (ii) фиксированный базис, (iii) без ретракции.

python experiments/exp06_ablation.py

Вывод: results/figures/exp6_ablation.png
Ожидается: Вариант с фиксированным базисом стагнирует; вариант без ретракции неустойчив; полный Алгоритм 1 достигает стабильного убывания при контролируемых затратах.

Заявление о воспроизводимости

Все случайные зёрна фиксированы и указаны. Каждый скрипт эксперимента самодостаточен и может быть выполнен на стандартном ноутбуке (только CPU) для конфигурации по умолчанию $n=200$. Полномасштабные эксперименты ($n \sim 10^3$) проводились на Intel Xeon Gold 6248R с GPU NVIDIA A100 40GB (использовался только для ускорения полноранговых базовых методов).

Скачать инструмент