
Управление инфраструктурой соревнований
Фреймворк для автоматизации инфраструктуры соревнований по информационной безопасности

Laforge позволяет быстро разрабатывать инфраструктуру для соревнований по информационной безопасности. Используя простой и интуитивно понятный язык конфигурации, Laforge управляет графом зависимостей и состоянием, что позволяет эффективно удаленно сотрудничать. Движок Laforge использует собственный загрузчик для многомерного, неразрушающего наложения конфигураций. Хорошая аналогия — Docker: когда вы собираете Docker-контейнер, он строится слой за слоем. Именно эта мощь вдохновила нас на создание Laforge. Это, безусловно, нишевой проект, но мы нашли для него невероятное применение.
ПРИМЕЧАНИЕ — В настоящее время мы находимся в предварительной версии v0.0.1. API могут измениться (хотя я постараюсь минимизировать это), и вы, скорее всего, столкнетесь с ошибками. Пожалуйста, сообщайте о них и, что еще лучше, отправляйте мне pull request :)
Laforge — это фреймворк, который позволяет проектировать и реализовывать соревнования по безопасности масштабируемым, совместным и увлекательным способом! Вы пишете конфигурации на Laforge Config Language и используете CLI-инструмент для проверки, валидации, сборки и подключения к удаленной инфраструктуре. Исторически он в основном поддерживал Terraform в качестве "бэкенда" (генерирует сложные конфигурации Terraform), но это быстро изменится в ближайшие недели и месяцы. В настоящее время Laforge обеспечивает все управление инфраструктурой National Collegiate Penetration Testing Competition и поддерживал развертывание игр с >1400 уникальными узлами.
Три причины:
Нет нужды вступать в холивар по поводу того или иного инструмента. Откровенно говоря, они нам нравятся. Наша главная жалоба в целом — учитывая их фрагментированность, трудно стать действительно хорошим в каком-то одном из них. Нам нравится Terraform, и он был нашим основным бэкендом с самого начала.
Мы использовали различные итерации LaForge для создания сред соревнований с сотнями хостов для почти 30 команд. Короче говоря, он может масштабироваться настолько, насколько позволяет ваше воображение (и бюджет/ресурсы). Более того, мы использовали этот инструмент в команде из более чем 15 волонтеров-разработчиков, каждый из которых работал над своими компонентами, и учли их отзывы в последних версиях.
В зависимости от сложности вашей среды, создание вывода LaForge может занять секунды или минуты. В конечном итоге вы потратите больше времени на развертывание систем в выбранной среде с помощью Terraform или Vagrant, чем на генерацию соответствующих конфигураций для них.
Если под production вы подразумеваете разработку живых сред соревнований, LaForge использовался более трех лет в "продакшн"-режиме. Если вы имеете в виду живые системы в вашей компании или организации, он, вероятно, будет работать хорошо, но используйте на свой страх и риск.
$ go get github.com/gen0cide/laforge/cmd/laforge
laforge configure
laforge init
laforge example <model>
buildconfiguredepsdownloadнаставники, участники и хорошие друзья Laforge
dumpenvexampleexplorerinitqueryserveshellstatusuploadBuilder спроектированBuildEngine выполненBuildIssuevalidationsnull builder (пока спецификация)