CyberBattleSim |
|||||||||||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2021-04-13 10:54 CyberBattleSim-это экспериментальная исследовательская платформа для исследования взаимодействия автоматизированных агентов, работающих в моделируемой абстрактной корпоративной сетевой среде. Моделирование обеспечивает высокоуровневую абстракцию компьютерных сетей и концепций кибербезопасности. Его открытый интерфейс AI Gym на основе Python позволяет обучать автоматизированных агентов с использованием алгоритмов обучения подкреплению. Среда моделирования параметризуется фиксированной топологией сети и набором уязвимостей, которые агенты могут использовать для бокового перемещения в сети. Цель злоумышленника-завладеть частью сети, используя уязвимости, заложенные в компьютерных узлах. В то время как злоумышленник пытается распространиться по всей сети, агент защитника наблюдает за сетевой активностью и пытается обнаружить любую атаку и смягчить воздействие на систему, вытеснив злоумышленника. Мы предоставляем базовый стохастический защитник, который обнаруживает и смягчает текущие атаки, основанные на заранее определенных вероятностях успеха. Мы реализуем смягчение путем повторного отображения зараженных узлов-процесс, абстрактно смоделированный как операция, охватывающая несколько этапов моделирования. Чтобы сравнить производительность агентов, мы рассмотрим два показателя: количество шагов моделирования, предпринятых для достижения их цели, и совокупное вознаграждение за этапы моделирования в разные периоды обучения. Цели проекта Мы рассматриваем этот проект как экспериментальную платформу для проведения исследований взаимодействия автоматизированных агентов в абстрактных моделируемых сетевых средах. Открывая ит-ресурсы, мы надеемся побудить исследовательское сообщество исследовать, как киберагенты взаимодействуют и развиваются в таких сетевых средах. Моделирование, которое мы предлагаем, по общему признанию, упрощенно, но это имеет свои преимущества. Его крайне абстрактная природа запрещает прямое применение к реальным системам, обеспечивая тем самым защиту от потенциального гнусного использования автоматизированных агентов, обученных с его помощью. В то же время его простота позволяет нам сосредоточиться на конкретных аспектах безопасности, которые мы стремимся изучить, и быстро экспериментировать с новейшими алгоритмами машинного обучения и искусственного интеллекта. Например, текущая реализация фокусируется на методах кибератак бокового движения с надеждой понять, как топология и конфигурация сети влияют на них. Имея в виду эту цель, мы считали, что моделирование реального сетевого трафика не является необходимым. Это всего лишь один пример существенного ограничения в нашей системе, которое, возможно, потребуется устранить в будущем. С алгоритмической стороны, мы предоставляем некоторые базовые агенты в качестве отправных точек, но нам было бы любопытно узнать, как современные алгоритмы обучения подкреплению сравниваются с ними. Мы обнаружили, что большое пространство действий, присущее любой компьютерной системе, представляет собой особую проблему для обучения с подкреплением, в отличие от других приложений, таких как видеоигры или управление роботами. Обучение агентов, которые могут хранить и извлекать учетные данные, является еще одной проблемой, с которой сталкиваются при применении методов RL, где агенты обычно не имеют внутренней памяти. Это другие области исследований, где моделирование может быть использовано для целей бенчмаркинга. Другие области, представляющие интерес, включают ответственное и этичное использование автономных систем кибербезопасности: Как спроектировать корпоративную сеть, которая дает внутреннее преимущество агентам защитников? Как проводить безопасные исследования, направленные на защиту предприятий от автономных кибератак и при этом предотвращать нечестное использование таких технологий? Документация Прочтите Краткое введение в проект. Состояние сборки
Показатель См .Бенчмарк. Настройка среды разработки Настоятельно рекомендуется работать в среде Linux, либо непосредственно, либо через WSL в Windows. Запуск Python непосредственно в Windows должен работать, но больше не поддерживается. Начните с проверки репозитория: мерзавец клон https://github.com/microsoft/CyberBattleSim.git В Linux или WSL Инструкции были протестированы на дистрибутиве Linux Ubuntu (как родном, так и через WSL). Выполните следующую команду, чтобы настроить среду разработки и установить все необходимые зависимости (пакеты apt и pip): ./init.sh Скрипт устанавливает python3.8, если его нет. Если вы используете версию Ubuntu старше 20, она автоматически добавит дополнительный репозиторий apt для установки python3.8. Скрипт создаст виртуальную среду Python под
Подсистема Windows для Linux Поддерживаемая среда разработки в Windows осуществляется через WSL. Сначала вам нужно установить дистрибутив Ubuntu WSL на свой компьютер с Windows, а затем перейти к инструкциям Linux (следующий раздел). Аутентификация Git из WSL Для аутентификации с помощью Git вы можете либо использовать аутентификацию на основе SSH, либо использовать трюк credential-helper для автоматической генерации токена PAT. Последнее можно сделать, запустив следующую команду под WSL (подробнее здесь): git config --global credential.helper "/mnt/c/Program Files/Git/mingw64/libexec/git-core/git-credential-manager.exe" Докер на WSL Чтобы запустить среду в контейнере docker, мы рекомендуем запустить Windows (не поддерживается) Этот метод больше не поддерживается, пожалуйста, предпочитайте вместо этого работать в среде WSL подсистемы Linux. Но если вы настаиваете, что хотите начать с установки Python 3.8, то в командной строке Powershell запустите Начало работы быстрое использование Docker Самый быстрый способ встать и запустить-через контейнер Docker.
вход в докер spinshot.azurecr.io тяга докера spinshot.azurecr.io/cyberbattle:239bdf22e47aa1c8c88915f356cede002865fa1c docker run -it spinshot.azurecr.io/cyberbattle:239bdf22e47aa1c8c88915f356cede002865fa1c cyberbattle/agents/baseline/run.py Проверьте свое окружение Выполните следующую команду для запуска моделирования с базовым агентом RL:
Если все настроено правильно, вы должны получить вывод, который выглядит следующим образом: факел CUDA и доступно=истина ###### DQL по обучению: episode_count=1,iteration_count=10,?=0.9,?_min=0.1, ?_expdecay=5000,?=0.015, то LR=0.01, replaymemory=10000, пакетный=512, target_update=10 ## эпизод: 1/1 'DQL по' ?=0.9000, ?=0.015, то LR=0.01, replaymemory=10000, пакетный=512, target_update=10 Эпизод 1|итерация 10|награда: 139.0|истекшее время: 0:00:00|###################################################################| ###### Случайного поиска обучении с: episode_count=1,iteration_count=10,?=1.0,?_min=0.0, ## эпизод: 1/1 'случайного поиска' ?=1.0000, Эпизод 1|итерация 10|награда: 194.0|Истекшее время: 0:00:00|###################################################################| моделирование состава эпизод продолжительность-DQN=Красный, Случайный=зеленый 10.00 + кумулятивные награды-DQN=Красный, случайный=зеленый 194.00 + ?--? 174.60 + | 155.20 +?-----? 135.80 +| ?--? 116.40 +| | 97.00 +| ?? 77.60 +| | 58.20 +? ?--? 38.80 + | 19.40 + | 0.00 +--? Записные книжки Юпитера Чтобы быстро ознакомиться с проектом, вы можете открыть один из предоставленных блокнотов Juptyer, чтобы играть в интерактивном режиме с окружением тренажерного зала. Просто запустите jupyter с
Следующие
Как создать экземпляр среды тренажерного зала? Следующий код показывает, как создать экземпляр в тренажерном зале OpenAI среде импорт cyberbattle._env.cyberbattle_env cyberbattlechain_defender = gym.make('CyberBattleChain-v0', size=10, attacker_goal=AttackerGoal( own_atleast=0, own_atleast_percent=1.0 ), defender_constraint=DefenderConstraint( maintain_sla=0.80 ), defender_agent=ScanAndReimageCompromisedMachines( вероятность=0,6, scan_capacity=2, scan_frequency=5)) Чтобы попробовать другие топологии сети, возьмем пример chainpattern.py чтобы определить свой собственный набор машин и уязвимостей, добавьте запись в инициализатор модуля для объявления и регистрации среды тренажерного зала. Способствующий Этот проект приветствует вклады и предложения. Большинство вкладов требуют, чтобы вы согласились с Лицензионным соглашением участника (CLA), в котором говорится, что вы имеете право и фактически предоставляете нам права на использование вашего вклада. Для получения более подробной информации посетите сайт <url>. https://cla.opensource.microsoft.com. Когда вы отправляете запрос на вытягивание, CLA-бот автоматически определяет, нужно ли вам предоставить CLA и соответствующим образом украсить PR (например, проверка статуса, комментарий). Просто следуйте инструкциям, предоставленным ботом. Вам нужно будет сделать это только один раз во всех РЕПО, используя наш CLA. Этот проект принял Кодекс поведения Microsoft с открытым исходным кодом. Для получения дополнительной информации см. Часто задаваемые вопросы по Кодексу поведения или свяжитесь с нами opencode@microsoft.com с любыми дополнительными вопросами или комментариями. Идеи для вклада Вот некоторые идеи о том, как внести свой вклад: улучшить симуляцию (основанную на событиях, усовершенствовать симуляцию,...), обучить алгоритм RL на существующей симуляции, реализовать бенчмарк для оценки и сравнения новизны агентов, добавить больше сетевых генеративных режимов для обучения RL-агента, внести свой вклад в doc, исправить ошибки. Дополнительные идеи см. также в wiki. Цитируя этот проект @misc{msft:cyberbattlesim, Author = {Исследовательская группа Microsoft Defender.} Примечание = {созданные Кристиан Зайферт, Майкл Betser, Уильям Блум, Джеймс Боно, Кейт Феррис, Эмили Горен, Джастин Грана, Кристиан Holsheimer, Брэндон Маркен, Джошуа Нил, Николь Николс, скуловой Парих, он Вэй.}, Издатель = {Гитхабе}, Howpublished = {URL-адреса{https://github.com/microsoft/cyberbattlesim}}, Звание = {CyberBattleSim}, Год = {2021} } Источник: github.com Комментарии: |
||||||||||