Skip to content

sartakov/fdnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Info

fdnet (Formal Described Networks ) представляет собой набор утилит и онтологий позволяющих описывать сети в машино-интерпретируемом формате.

fdnet.py

Скрипт fdnet.py формирует набор SNORT правил на основе формально описанной сети. Необходимым аргументом этого скрипта является путь до описания сети в формате rdf/xml и комманда скрипту. rdf/xml может быть получен из n3 используя утилиту cwm:

cwm -n3 net.n3 -rdf=b >net.rdf
python fdnet.py --database net.rdf all

Комманды

Скрипт выполняет следующие комманды:

  • all выполняет все комманды последовательно

  • diag создает только диаграмму взаимодействия програм

  • rules создает только список правил

  • plan формирует IP план

  • conn формирует список подключений

  • place формирует описание физического размешения оборудования

Выходные данные

Скрипт на выходе скрипт создает несколько файлов:

  • sid-msg.map Набор идентифицаторов и сообщений о вторжении. Каждый номер (sid) используется в описании правила для SNORT/Suricata. Номера уникальны в рамках одной сети.

  • net.dot Исходный файл схемы, на основе которого создается файл .png

  • net.png Наглядное представление структуры сети с точки зрения взаимодействующих компонент (программ), их аффилиация с серверами (и репликами), а так же размещение логических серверов внутри логических сетей.

  • net.rules Файл содержащий правила для SNORT/Suricata

  • net_ip-plan.xlsx Таблица описывающая структуру сети с точки зрения назначения IP адресов оборудованию

  • net_phys.xlsx Таблица описывающая физическое размещение оборудования в серверной комнате

  • net_place.xlsx Таблица описывающая размещение и коммутиацию оборудоания

Требования к описанию сети

Минимальными требованиями для создания SNORT/Suricata правил следующие:

  • Subnet

    • name

    • hasServer

  • Server

    • name

    • hasDevice

    • hasProgram

  • NetDev

    • ip

    • hwAddr

    • connectedWith

  • Program

    • name

    • listenPort

    • communicateWith

При этом, скрипт корректно отработает, если в цифровой сети будут присутствовать сервера без программ. Скрипт сможет корректно отрабать, если в сети не будет Subnet, если в сети будет находится ни с кем не взаимодействующая программа, или у сервера не будет указан IP или имя.

Для создания описания физической конфигурации необходимо указать следующий минимальный набор объектов:

  • Rack

    • hasUnit

    • name

  • Unit

    • occupiedBy

    • number

  • Server

    • name

    • connectedWith

    • hasDevice

    • model

  • NetDev

    • ip

    • connectedWith

  • Model

    • name

    • power

    • size

    • weight

    • cooling

  • Port

    • name

    • number

    • connectedWith

TODO

Хотелось бы доработать следующие моменты:

  • Нужна валидация цифровой сети по схеме

  • Нужно проверить корректность работы с множеством сетевых адресов и подключений

  • Нужно описать пример

Changelog

v1.1

  • Добавлена поддержка NedDev
  • Добавлена генерация правил для MAC адресов
  • Добавлена возможность описания группы серверов через диапазон
  • Добавлены комманды в скрипт

v1.0

  • Сущности
  • Генерация правил для IP и Port
  • <..>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published