Журнал "Директор по безопасности" Январь 2021 | Page 26

ИНСТРУМЕНТЫ БЕЗОПАСНОСТИ

Строим SOC на бесплатном ПО с командой ООО « ИНФОРИОН »

Security Operation Center ( далее – SOC ) – это прежде всего команда , которая хорошо понимает и знает все возможные нюансы в работе , регистрации , реагировании и ликвидации последствий инцидентов информационной безопасности . Для построения бесплатного SOC в правильном его понимании необходимо наличие квалифицированного штата сотрудников и сильный инструментарий .

Есть два пути построения SOC :

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

Работа с событиями Первое , что необходимо для будущего SOC – это выбор пути и инструментария для реализации своих планов . Необходимо реализовать следующую схему : Источники- > События- > Сбор и хранение событий- > Обработка событий и выявление инцидентов- > Работа с инцидентами- > Решение и закрытие инцидентов с предотвращением их в дальнейшем . Для работы с событиями мы остановились на свободно распространяемом продукте , состоящем из стека трех компонентов : Elastic Logstash Kibana Выбор основывался на масштабируемости , широких возможностях , быстрой реализации и хорошей совместимости с другими системами . С помощью данного инструмента возможно быстро и безопасно собирать данные практически из любых источников , а затем искать , анализировать и визуализировать события в режиме реального времени .

Настройка инструментария Рассмотрим реализацию стека в реальных условиях : 1 . Произведем установку трех основных компонентов с сайта производителя https :// www . elastic . co / start . elasticsearch-7 .* logstash-7 .* kibana-7 .* Установка возможна практически на все дистрибутивы Linux , а также на операционную систему Windows . 2 . Переконфигурируем файлы : elasticsearch . yml необходимо изменить следующие строки : 1 . с # network . host : 192.168.0.1 на network . host : « указать ip-адрес хоста где расположена elasticsearch »; 2 . с # http . port : 9200 на http . port : 9200 ; 3 . c # node . name : node-1 ( or preferred name ) на node . name : node-1 ( or preferred name ); 4 . с # cluster . initial _ master _ nodes : node-1 ( or preferred name ) на cluster . initial _ master _ nodes : node-1 ( or preferred name ) kibana . yml необходимо изменить следующие строки : 1 . с # server . host : « localhost » на server . host : « указать ip-адрес хоста где расположена kibana »; 2 . с # server . port : 5601 на server . port : 5601 3 . Создаем конфигурационный файл с расширением *. conf в директории / etc / logstash / conf . d и наполняем его . В качестве примера рассмотрим конфигурацию с подключением beats ( winlogbeat для сбора лог-журналов из ОС Windows ), базу данных ( mssql express , mariadb-zabbix ): input { beats { port => « 5044 » type => « WINLOG » } jdbc { jdbc _ driver _ library => «» jdbc _ driver _ class => « com . microsoft . sqlserver . jdbc . SQLServerDriver » jdbc _ connection _ string => « jdbc : sqlserver ://” указать ip-адрес сервера sql и TCP-порт для удаленного подключения ”; databaseName =” указать имя базы данных из которой берем события ”;» jdbc _ user => « имя пользователя с правами на чтение » jdbc _ password => « пароль » schedule => «* * * * *» statement => « SELECT “ указать таблицы с той информацией которую хотим получить ” from “ указать базу данных , например , dbo .* WHERE timegenerated > : sql _ last _ value » use _ column _ value => true tracking _ column => timegenerated tracking _ column _ type =>

« timestamp » type => « указать произвольный тип » } jdbc { jdbc _ validate _ connection => true jdbc _ driver _ library => «» jdbc _ driver _ class => « Java :: org . mariadb . jdbc . Driver » jdbc _ connection _ string => « jdbc : mariadb ://” указать ip сервера где расположена база данных ”: 3306 / zabbix » jdbc _ user => « zabbix » jdbc _ password => « пароль » schedule => «* * * * *» statement => « SELECT * from hosts » jdbc _ paging _ enabled => true jdbc _ page _ size => 200000 type => « zabbix _ log » }

} output { if [ type ] == « WINLOG » { elasticsearch { hosts => [ « ip-адрес elasticsearch : 9200 » ] index => « произвольное понятное значение- %{+ YYYY . MM }» } } else if [ type ] == « тип указанные для сервера sql » { elasticsearch { hosts => [ « ip-адрес elasticsearch : 9200 » ] index => « произвольное и понятное значение » } } else if [ type ] == « zabbix _ log » { elasticsearch { hosts => [ « ip-адрес elasticsearch : 9200 » ] index => « zabbix » } } } Для того чтобы конфигурация работала обязательно необходимо установить java и jdbc driver соответствующей версии . 4 . Далее необходимо настроить базу данных , настроить TCP соединения с сервером по этому порту : В области консоли диспетчера конфигурации SQL Server разверните узел Сетевая конфигурация SQL Server , Протоколы для < instance name > , а затем дважды щелкните TCP / IP . В диалоговом окне Свойства TCP / IP на вкладке IP-адреса появится несколько IP-адресов в формате IP1 , IP2 до IPAll . Одним из приведенных IPадресов является адрес адаптера заглушки 127.0.0.1 . Для каждого IP-адреса на компьютере появляются дополнительные IPадреса . ( Возможно , вы увидите адреса как IPv4 , так и IPv6 .) Чтобы определить настраиваемый IP-адрес , щелкните правой кнопкой мыши каждый адрес и выберите пункт Свойства .

Если в диалоговом окне Динамические порты TCP содержится значение 0 , означающее прослушивание компонентом . Компонент Database Engine динамических портов , удалите его . В области окна IPn - свойства в поле Порт TCP введите номер порта , который необходимо прослушивать , поэтому IP-адресу , и нажмите кнопку ОК . Вы можете указать множество портов через запятую . В области консоли выберите Службы SQL Server . В области сведений щелкните правой кнопкой мыши SQL Server (< instance name > ) и выберите команду Перезапустить , чтобы остановить и снова запустить SQL Server . 5 . Делаем « мягкую » перезагрузку ( далее все команды выполняются в привилегированном режиме ) systemctl daemon-reload 6 . Включаем автоматическую загрузку сервисов после перезагрузки системы systemctl enable elasticsearch systemctl enable logstash systemctl enable kibana 7 . Запускаем сервисы systemctl start elasticsearch systemctl start logstash systemctl start kibana 8 . И в завершение проверяем статус сервисов systemctl status elasticsearch systemctl status logstash systemctl status kibana На примерах мы выполнили минимальные настройки для сбора наиболее популярных событий , используя свободное ПО .