Главная

Sunday, 27 March 2022

Правила OpSec для MFA.

Всім привіт.

Якщо ваше життя за вас планують обставини та люди, яких ви зовсім не бажали то для своєї ж безпеки подбайте про персоналний зв'язок заздалегідь. Приготуйте по можливості телефон, який можно загубити, але він ніяк не буде пов'язаний з вами:

• краще взяти окремий телефон із новою SIM-картою.

• створіть новий Google/Apple аккаунт.

• ім'я має бути нейтральним, без прізвищ/позивних та іншої персональної інформації.

• пароль має бути з двох слів які не мають ніякого відношення до вас.

• після створення обов'язково вимкніть усі стеження (історію).

• включіть MFA: токен або Google Authenticator, та резервні коди.


Створення нового облікового запису Google:

• краще це робити з чистого/довіреного ПК або нового телефону

• уважно перевіряйте рядок адреси та сертифікат сайту

• https://gmail.com - для Android, https://appleid.apple.com - для Apple

• вас попросять логін, пароль, д.н. та номер телефону (потім прибрати!). Ім'я не має містити персональних даних!

• дату народження краще вигадати але запам'ятати.


Налаштування другого фактору:

• після створення, вам запропонують МFA через SMS. Тільки не SMS!

• краще взяти Google Authenticator або апаратний токен (YubiKey).

• після активації МFA відключити вхід/відновлення через дзвінок/SMS.

• згенерувати і роздрукувати резервні коди (телефон може здохнути).

• вимкнути стеження, автопідстановку паролів та синхронізацію.

Зауваження: щоб в переліку з'явився генератор кодів (Google Authenticator) потрібно спершу(разово) включити в якості другого фактору телефон. Потім не забути видалити!


Підтримуйте захист свого телефону в бойовому стані:

• не тримайте в телефоні особисте: контакти, фотки, переписка.

• приберіть розблокування по відбитку: тільки PIN або пароль.

• вимкніть геолокацію в усіх додатках і в настройках камери.

• робіть селфі правильно, або взагалі не робіть! Не на часі. Не кидайте фото в Tg/Viber.

• маєте мобільний інтернет? Тоді не спілкуйтесь по стільниковому зв'язку.

• Ідеальний зв'язок то: моб. інтернет + ProtonVPN + Signal.


Бережіть себе.
Слава Україні!

Saturday, 26 March 2022

Собираем статистику HyperV в один клик.

Всем привет.

Встала задача оперативно собрать информацию по HyperV виртуалкам. Задействуем Powershell. Оказалось что накидать парочку Get-запросов не проблема. Проблема больше коснулась самого экспорта данных, да так чтобы в Excel и чтобы было все красиво. В двух словах надо было слить воедино то что собирают 5 запросов в одну таблицу.  При этом, как вы понимаете, получается десяток колонок с разными названиями, которые не хотели вливаться в единый CSV-файл. 

В какой-то момент времени я понял, что значения хорошо вливаются если в CSV-файле уже есть колонка с нужным названием. То почему бы не сделать первую строку с нужными названиями  (headers) изначально? Есть. Вторую строку делаем пустой, чуть ниже обьясню почему.

Ну тогда поехали, выполняем Get-запросы и наполняем наш CSV-файл:

 # Get Hypername

$Hyper = $env:computername

# Set filename

$filename1 =  'd:\' + $Hyper + '.csv'

# Set headers

$str0 = '"Host","Host RAM(GB)","Name","State","Notes","Dynamic Memory","Start RAM(GB)","Min RAM(GB)","Max RAM(GB)","Assign RAM(GB)","vhdtype","vhdformat","Size VHD(GB)","path","IP","MacAddress","SwitchName","OperationMode","AccessVlanId","Status"'

# Output headers

$str0 | Out-File $filename1 -Encoding UTF8

',,,,,,,,,,,,,,,,,,,' | Out-File $filename1 -Append -Force -Encoding UTF8


# Get HyperV host 

$str1 = Get-VMHost | Select @{Name="Host";Expression={$_.Name +'.'+ $_.FullyQualifiedDomainName}},@{label='Host RAM(GB)';expression={$_.MemoryCapacity/1gb -as [int]}}

Friday, 25 March 2022

WSUS Reset Server Node.


Hi all.

Yesterday I had to remember relaunch our WSUS server. It' a pity, but he had shutdown as Application Pool:  Reset Server Node again and again. So I found some solutions for such problem.

There are:

1) Reduce the number of updates approved.

2) Use Server Cleanup wizard:

Open update services console in wsus server, expand options by clicking on server clean up wizard and clean up all junk. Maybe waste a lot of time.

3) Use SQL Clean Up:

sqlcmd -I -S \\.\pipe\MICROSOFT##WID\tsql\query -i C:\WsusDBMaintenance.sql

4) Use WSUS Repair command:

wuauclt /detectnow

5) Check WSUS Application Pool settings in IIS:

- Open IIS

- Click on Application Pools

- Click on WsusPool

- Click Advanced Settings

- Scroll down and increase the Private Memory Limit and decrease the Regular Time Interval.

6) Run Wsusutil Command, Restart all Windows services (Update Services, WID / SQL, etc.): 

cd C:\Program Files\Update Services\Tools

Wsusutil.exe postinstall /servicing

7) Or follow to the advices of WSUS guru:


Good luck.

Glory to Ukraine.

Tuesday, 22 March 2022

Сделай мне скриншот.


Всем привет. 

Даже если вы прекрасно знаете, как делаются снимки экрана, почти уверен, что в этой статье вы найдете некоторые новые для вас способы сделать скриншот в Windows 10, причем только средствами, предлагаемыми самой Windows.

Первый способ: создания скриншота рабочего стола или окна программы в Windows 10 это использование клавиши Print Screen, которая на клавиатуре компьютера или ноутбука обычно находится в правой верхней части и может иметь сокращенный вариант подписи, например, PrtScr.

При ее нажатии, в буфер обмена помещается скриншот всего экрана, который вы затем можете вставить с помощью стандартной комбинации клавиш Ctrl+V (или меню любой программы Правка - Вставить) в документ Word, в качестве изображения в графический редактор Paint для последующего сохранения картинки и почти в любые другие программы, которые поддерживают работу с изображениями.

Второй способ: использовать комбинацию клавиш Alt + Print Screen, то в буфер обмена будет помещен снимок не всего экрана, а только активного окна программы.

Третий: если вы не хотите иметь дела с буфером обмена, а хотите сделать скриншот сразу в виде изображения, то в Windows 10 можно использовать комбинацию клавиш Win (клавиша с эмблемой ОС) + Print Screen. После ее нажатия, скриншот сразу будет сохранен в папку Изображения - Снимки экрана. Вы можете изменить папку сохранения скриншотов по умолчанию.

Monday, 21 March 2022

Перелік правил OpSec.

Всім доброго ранку.

Ця коротка довідка по актуальним засобам захисту від Влада Радецького. Якщо до вас на третій тиждень великої війни не довели чіткий план дій, то користуйтеся наведеним переліком правил OpSec для кожного працівника:

- не обговорюйте важливе по стільниковому зв'язку чи SMS. Не кажіть про Де та Коли, максимум тільки про Що;

- використовуйте MFA, але не SMS: додаток або токен;

- Signal, Threema, WhatsApp, Facebook Messenger: регулярна очистка історії. Якомога меньше  користуйтеся Viber та Telegram. Не тримайте активованими одночасно декілька месенджерів!

- не користуйтеся чужим Wi-Fi та/або чужими зарядними/USB;

- використовуйте мобільний інтернет з VPN: ProtonVPN;

- використовуйте захищену пошту з VPN: Protonmail;

- не передавайте документи у відкритому вигляді: тільки ZIP-архів з паролем;

- VirusTotal: online перевірка документів, але не завжди якісно;

- Intezer Analyse: перевірка ехе та dll;

- urlscan: перевірка сумнівних посилань URL;

- HIbp (Troy Hunt): перевірка скомпрометованих email;

- Google Authenticator: MFA через QR для Android та iOS.

Тримайте свій смартфон та ноутбук в такому стані ніби він може в будь-яку мить бути загубленим або потрапити в руки ворога.


Слава Україні!

Sunday, 20 March 2022

Пишем диссектор Wireshark на Lua.

Всем привет.

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

К счастью, можно использовать плагин Wireshark Protocol Dissectors, чтобы добавить в Wireshark анализ дополнительного протокола. Раньше для этого требовалось создание диссектора на языке С, чтобы работать с конкретной версией Wireshark, но современные версии Wireshark поддерживают язык сценариев Lua. Сценарии, которые вы пишете на Lua, также будут работать с инструментом командной строки tshark.

Давайте рассмотрим как разработать простой диссектор на Lua для протокола SuperFunkyChat, который поддерживает открытый чат по протоколу 12345.

Перед разработкой диссектора убедитесь, что ваша копия Wireshark поддерживает Lua, проверив диалоговое окно "О программе" Wireshark в разделе Help → About Wireshark. Если вы запускаете Wireshark от имени привилегированного пользователя в Unix-подобной системе, то обычно поддержка Lua отключена по соображениям безопасности, и вам нужно будет настроить Wireshark для запуска от имени непривилегированного пользователя, чтобы перехватывать и запускать сценарии на Lua. Можно разрабатывать диссекторы практически для любого протокола, с которым будет работать Wireshark, включая TCP и UDP. Гораздо проще разработать диссекторы для протоколов UDP, чем для TCP, потому что каждый перехваченный пакет UDP обычно имеет все, что нужно диссектору. 

SuperFunkyChat поддерживает режим UDP, передавая клиенту параметр командной строки --udp при запуске, что довольно удобно. Отправьте этот параметр во время перехвата и увидите пакеты, подобные тем, что показаны на скриншоте. Обратите внимание, что Wireshark по ошибке пытается проанализировать трафик, используя протокол GVSP, как показано в столбце Protocol. Реализация собственного диссектора исправит эту ошибку.


Один из способов загрузить файлы Lua – поместить свои сценарии в каталог %APPDATA%\ireshark\plugins в Windows или каталог ~/.config/wirehark/plugins в Linux и macOS. Также можно загрузить сценарий Lua, указав его в командной строке следующим образом, заменив информацию о пути на расположение сценария:

Wireshark.exe -X lua_script:chat2.lua

Есть и другой способ - это в файле Init.lua проверить значение параметра

disable_lua = false

а в конце того же файла добавить ссылку на сам скрипт:

dofile(DATA_DIR.."chat2.lua")

Friday, 18 March 2022

Пишем правило для Snort.

Всем привет.

Загляняем сегодня к одной из самых популярных систем IDS в инфомире - Snort. Snort используется для сигнатур или правил, которые связывают между собой группу элементов (так называемые параметры правил), истинность которых является обязательным условием срабатывания правила. Основные параметры занимаются распознаванием элементов, которые либо относятся к содержимому (параметры правил содержимого в терминологии Snort), либо нет (параметры правил вне содержимого). Примерами параметров правил вне содержимого могут служить определенные флаги, значения TCP- или IP-заголовков и размер пакета. Например, параметр flow:established,to_client выбирает пакеты, которые входят в сеанс TCP, инициированный сервером, и предназначены для клиента. Еще один пример, dsize:200, выбирает пакеты, содержимое которых равно 200 байт.

Как я писал ранее, IDS Suricata, она же является развитием Snort, и которая является основой в пакете SELKS использует синтаксис правил Snort. Поэтому давайте в качестве примера создадим для Snort простое правило, которое позволяет обнаружить вредонос, который генерирует сетевой трафик, состоящий из HTTP-запроса типа GET. Когда браузеры или другие HTTP-приложения делают запрос, они указывают поле заголовка User-Agent, чтобы связаться с программой, которая используется для этого запроса. Обычно данное поле начинается со слова Mozilla (по историческим причинам) и может выглядеть как Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1). Здесь содержится информация о версии браузера и ОС.

Пусть наш вредонос формирует такой GET-запрос:

GET /index.htm HTTP 1.1

Accept: */*

User-Agent: Wefa7e

Cache-Control: no

Поле User-Agent, которое используется рассмотренным вредоносом, равно Wefa7e. Это характерное значение, и с его помощью можно распознавать вредоносный трафик. Разумеется более надежный вредонос сформирует это поле под любой браузер, но для нашего примера он будет таким простым. Следующая сигнатура нацелена на необычные строки User-Agent, которые использовались запущенным нами вредоносом:

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"TROJAN Malicious User-Agent"; content:"|0d 0a|User-Agent\: Wefa7e"; classtype:trojan-activity; sid:2000001; rev:1;)

В Snort правила состоят из двух частей: заголовка и параметров. Заголовок содержит действие (обычно alert), протокол, исходный и конечный IP-адреса, а также порты источника и адресата.

В правилах принято использовать переменные, которые позволяют адаптироваться под текущую среду: $HOME_NET и $EXTERNAL_NET определяют внутренний и внешний диапазоны IP-адресов, а $HTTP_PORTS указывает порты, которые следует интерпретировать как HTTP-трафик. В данном случае заголовок $HOME_NET any ->$EXTERNAL_NET $HTTP_PORTS соответствует исходящему трафику, проходящему через HTTP-порты, так как знак -> говорит о том, что правило относится лишь к одному направлению передачи данных.

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


В сочетании с sid служит уникальным идентификатором версии правила Внутри выражения content используется вертикальная черта (|), которая определяет начало и конец записи в шестнадцатеричном формате. Все, что находится между этими символами, интерпретируется в качестве шестнадцатеричных значений. Таким образом, |0d 0a| представляет разрыв между HTTP-заголовками.

Monday, 14 March 2022

Packet Monitor Windows.

Всем привет.

В Windows 10 (1809) и Windows Server 2019 появился встроенный анализатор сетевого трафика Packet Monitor. В последнем билде Windows 10 функционал анализатора пакета был существенно расширен: появилась поддержка захвата пакетов в реальном времени, а также поддержка формата PCAPNG для импорта в анализатор сетевого трафика Wireshark. 

Таким образом в Windows появился функционал захвата сетевого трафика, аналогичный tcpdump, и его можно смело использовать системными и сетевыми администраторам для диагностики работы сети. Packet Monitor позволяет получить всю сетевую активность, проходящую через сетевой интерфейс компьютера на уровне каждого пакета.

Ранее для захвата сетевого трафика и инспектирования пакетов в Windows использовалась команда netsh trace.

Основные команды утилиты Packet Monitor:

filter - управление фильтрами пакетов

comp - управление зарегистрированными компонентами;

reset - сброс счетчиков;

start - запустить мониторинг пакетов;

stop - остановить сбор пакетов;

format - конвертировать лог файл трафика в текстовый формат;

pcapng - конвертация в формат pcapng;

unload - выгрузить драйвер PktMon.

Чтобы получить справку по выбраннной команде просто укажите ее имя в конце:

pktmon filter

Локальный ресурс в RDP.

Всем привет.

Этот  прием даже хаком назвать трудно, но он работает. Но обо всем по порядку. 

Для обмена файлами в RDP просто предлагается отмапить один из локальных дисков вашего хоста. Это часто неудобно в том плане что на удаленном хосте будет виден весь ваш диск, где далеко не все нужно для работы в удаленной сессии. Самый легкий прием в этом плане, которым я сам пользуюсь, это сопоставление нового диска отдельной папке на вашем хосте с помощью команды subst:

subst d: c:\share

Все, у меня теперь есть диск D который я и передаю к качестве обмена для RDP. И там ничего лишнего!


Успехов.

Слава Украине!

Sunday, 13 March 2022

Инструменты для анализа вредоносного ПО.

Всем привет.

Читал я читал по вечерам книгу Сикорски М., Хониг Э. "Вскрытие покажет! Практический анализ вредоносного ПО" (2018), и вот сегодня решил подвести итог перечнем популярных инструментов для анализа вредоносного ПО из нее. Список довольно обширный, где каждый могжет подобрать для себя инструментарий, который лучше всего подойдет для будущих исследований. Ну как, готовы? Тогда поехали.

ApateDNS. 

Это утилита для управления DNS-ответами. Она обладает простым графическим интерфейсом. В сущности, это фиктивный DNS-сервер, который перехватывает DNS-ответы для заданного IP-адреса, прослушивая локальный UDP-порт под номером 53. Кроме того, ApateDNS автоматически указывает локальный DNS-сервер в качестве системного, восстанавливая исходные параметры при выходе. Используйте ApateDNS во время динамического анализа. Вы можете бесплатно загрузить эту программу по адресу www.mandiant.com.

Autoruns. 

Это утилита с длинным списком мест, которые используются в Windows для автоматического запуска. Вредоносное ПО часто устанавливается в такие места, чтобы обеспечить свое постоянное присутствие; это относится к реестру, папке начального запуска и т. д. Autoruns проверяет все возможные места и выводит отчет в графическом виде. Используйте эту утилиту для динамического анализа, чтобы узнать, куда установилась вредоносная программа. Она входит в состав пакета Sysinternals Suite, и вы можете загрузить ее на сайте www.sysinternals.com.

BinDiff. 

Это мощный плагин к IDA Pro, с помощью которого можно быстро сравнить разные варианты зараженных двоичных файлов. Он позволяет выделить новые функции и распознать похожие или отсутствующие участки кода. BinDiff сравнивает две функции и показывает степень их схожести.  BinDiff также может оценить степень схожести двух двоичных файлов, но, чтобы это сработало, вам придется сгенерировать IDB-файл для обеих версий (полностью промаркированный IDB-файл поможет вам понять, какой именно код отсутствует). Программу BinDiff можно купить на сайте www.zynamics.com.

BinNavi. 

Это среда для обратного проектирования, похожая на IDA Pro. Ее сильной стороной является графическое представление кода. В отличие от IDA Pro, BinNavi может самостоятельно управлять базами данных с результатами анализа, что помогает в поиске нужной информации; члены команды могут свободно работать с одним и тем же проектом, обмениваясь полученными сведениями. Программа BinNavi доступна для покупки по адресу www.zynamics.com.

Bochs. 

Это отладчик с открытым исходным кодом, который симулирует полноценный компьютер на базе х86. Он наиболее полезен при отладке небольших фрагментов кода в IDA Pro. IDA Pro поддерживает отладку IDB-файлов напрямую с помощью Bochs. В этом режиме формат входящего файла не имеет значения - это может быть DLL, сохраненный на диск код командной оболочки или любая другая база данных с кодом для платформы x86. Вы можете просто указать фрагмент кода и начать отладку. Этот подход часто помогает при работе с закодированными строками или конфигурационными данными. Bochs можно бесплатно загрузить на сайте www.bochs.sourceforge.net. Руководство по установке и использованию этой программы в IDA Pro можно найти по адресу www.hex-rays.com/products/ida/debugger/bochs_tut.pdf.

Burp Suite. 

Этот пакет обычно используется для тестирования веб-приложений. Его можно сконфигурировать для перехвата определенных серверных запросов и ответов; это позволяет изменять данные, которые приходят в систему. Burp можно использовать в роли промежуточного звена. В этом случае вы можете модифицировать HTTP- и HTTPS-запросы, изменяя заголовки, данные и параметры, отправляемые вредоносной программой на удаленный сервер, чтобы извлечь c этого сервера дополнительную информацию. Загрузить Burp Suite можно по адресу www.portswigger.net/burp.

Friday, 11 March 2022

Еще раз по удаленный доступ.

Всем привет.

В связи с военным временем необходимо повторно провести анализ инструментов удаленного доступа к рабочему столу ПК пользователя для инженера технической поддержки. 

Собственно результат повторного теста представлен в таблице. Для меня главный фактор в выборе инструмента - оперативность решения проблемы у клиента.


В ретроспективе блога узнать про нюансы работы с такими инструментами можно по ссылкам ниже:

- инструменты удаленного управления ПК

http://nyukers.blogspot.com/2019/11/3.html

- удаленный помощник Windows

http://nyukers.blogspot.com/2020/05/windows.html

- просмотр сеанса пользователя

http://nyukers.blogspot.com/2021/06/blog-post.html

- remote control и обмен файлами

http://nyukers.blogspot.com/2021/06/remote-control.html

Успехов.

Слава Украине!



Thursday, 10 March 2022

Vagrant с Ansible.

Всем привет. 

Допустим у нас есть десяток машин. Некоторые из них одинаковы - ноды с приложением и машины со средой для разработки. В данном случае имеет смысл использовать подготовку машин. Vagrant для этого позволяет использовать несколько решений:

  • Puppet
  • Ansible
  • Salt
  • Shell
  • Chef
  • Docker

При чём некоторые из них, например, Chef, Puppet, Salt имеют несколько вариантов использования (мастер-агент, без мастера, запуск локально).

Автоматически provision запускается только в двух случаях: vagrant up и vagrant reload. Если вы хотите запустить подготовку машин принудительно, то необхожимо это явно указать. Например:

vagrant resume --provision %machine_name%

vagrant provision %machine_name

Самый простой вариант - shell. Но сегодня мы рассмотрим вариант с Ansible.


Чтобы применить Ansible через vagrant необходимо сделать следующее:

- на хостовой машине должен быть установлен Ansible

- прописать в Vagrantfile примерно следующее:

Vagrant.configure("2") do |config|

  # Run Ansible from the Vagrant Host

  config.vm.provision "ansible" do |ansible|

    ansible.playbook = "playbook.yml"

  end

end

При этом, Playbook.yml должен находиться в одном каталоге с Vagrantfile. После того, как машина будет поднята, vagrant запустит Ansible. Так как сам по себе Ansible не требует никакого агента на целевой машине (ноде), то всё, что нужно сделать - указать верные данные в инвентори-файле. Если используется публичная сеть, то указываем ip ноды, если используется приватная сеть, то необходимо указать ip локалхоста (обычно 127.0.0.1) и порт. Для Ansible имеется достаточно много опций, узнать их можно на странице официальной документации vagrant. Помимо того, что можно запускать Ansible с хоста, его можно также запускать и в самой гостевой мащине. Называется это Ansible local. Преимущество в том, что нет необходимости устанавливать Ansible на хост. Вы можете просто загрузить роль с вашего репозитория или с Ansible galaxy и она выполнится. 

Недостатки - на каждую машину необходимо устанавливать Ansible, отсутствие централизованного управления. То есть, если в дальнейшем будет необходимость управлять машинами посредством Ansible, то этот метод не для вас.

По-умолчанию, vagrant попробует сам установить Ansible на гостевую машину, для этот предусмотрено несколько опций:

install_mode - по факту, это выбор репозитория, откуда будет устанавливаться Ansible. Если оставить значение default, то будет выбран:

1.ppa:ansible/ansible - для гостя Ubuntu + family

2.EPEL - RedHat-family

3.main repo - Debian, OpenSuse, FreeBSD, Arch, etc.

Есть другое значение - pip. Тогда установка будет производиться посредтсвом pip. vagrant сначала установит pip на гостя, а затем установит Ansible. Этот вариант предпочтительней, так как это гарантирует, что версия будет свежая и одинаковая для всех нод. Часть Vagrantfile, которая отвечает за Ansible local практически ничем не отличается от обычного Ansible:

Vagrant.configure("2") do |config|

  config.vm.provision "ansible_local" do |ansible|

    ansible.playbook = "playbook.yml"

  end

end

Tuesday, 8 March 2022

Еще раз про SELKS.

Всем привет.

Анализ пакетов - это ключевой компонент для реализации систем обнаружения сетевых вторжений (IDS) и для мониторинга безопасности сети. Доступны разные средства с открытым исходным кодом для обнаружения сетевых вторжений, которые обрабатывают запись пакетов для поиска известных сигнатур потенциальных сетевых вторжений и вредоносных действий. Используя функцию записи пакетов службы наблюдения за сетями, вы можете анализировать сеть для поиска вредоносных вторжений и уязвимостей.

В числе средств с открытым исходным кодом на слуху система обнаружения сетевых вторжений Suricata, которая использует наборы правил формата Snort для отслеживания сетевого трафика и создает оповещения при обнаружении подозрительных событий. Механизм Suricata является многопоточным, что позволяет еще быстрее и эффективнее выполнять анализ сетевого трафика. 

Дополнительные сведения о системе Suricata и ее возможностях можно узнать на веб-сайте https://suricata-ids.org/.

Но неплохо бы иметь под рукой также схему хранения и анализа пакетов перехваченных Suricata. Следуя принципу open source на эту роль напрашивается ELK стек. Suricata предоставляет возможность записи пакетов, которая используется для обнаружения сетевых вторжений. Suricata обрабатывает запись пакетов и формирует оповещения, если обнаруживает пакеты, соответствующие наборы правил для известных угроз. Эти предупреждения сохраняются в файле журнала на локальном компьютере. А Elastic Stack позволяет индексировать журналы, созданные Suricata, и использовать их для создания панели мониторинга в Kibana, которая визуализирует информацию из журналов для быстрого анализа потенциальных уязвимостей сети.

В принципе в интернет есть большое количество сценариев настройки среды для обнаружения сетевых вторжений с помощью Suricata и Elastic Stack. Вам будет интересно попробовать все сделать вручную и очень удобно для полного управления процессом. Как вы понимаете, я так не делал. По разным причинам. Одна из них это наличие в интернет пакета SELKS. Это тот же ELK-стек плюс Suricata, плюс еще два полезных инструмента мониторинга от компании Stamus. 

Напомню, что SELKS состоит из 6-ти компонентов:

S - Suricata IDPS - http://suricata-ids.org/

E - Elasticsearch - https://www.elastic.co/products/elasticsearch

L - Logstash - https://www.elastic.co/products/logstash

K - Kibana - https://www.elastic.co/products/kibana

S - Scirius - https://github.com/StamusNetworks/scirius

EveBox - https://evebox.org/

Sunday, 6 March 2022

Макросы в Zabbix.

Всем привет.

Макросы в Zabbix могут быть удобны для умного использования. Известно что макросы в Zabbix определяются на нескольких уровнях, более локальный перекрывает предыдущий по ниспадающей:

глобальный макрос

{$PROC_NUM} = 200

Его перекрывает макрос уровня шаблона 

{$PROC_NUM} = 300

А его перекрывает макрос уровня узла сети

{$PROC_NUM} = 500

Например, можно использовать {$USER_MACROS} в качестве порогового значения для таких элементов данных как загрузка CPU, размер свободной памяти, количества процессов и т.д.

{Template OS: system.cpu.load[percpu,avg1].avg(5m)}>{$CPU_LOAD}

{Template OS: vm.memory.size[available].last(0)}<{$MEMORY_FREE}

{Template OS: proc.num[].avg(5m)}>{$PROC_NUM}

Где макрос уровня шаблона: 

{$PROC_NUM} = 300

А макрос уровня узла сети разделить по нагруженности:

- обычный узел сети

{$PROC_NUM} = 300

- сильно нагруженный узел сети

{$PROC_NUM} = 500

- менее загруженный узел сети

{$PROC_NUM} = 200