Як підготувати інфраструктуру до зустрічі з новими 0-day вразливостями
Дуже важливо постійно підтримувати актуальну інвентаризацію інфраструктури, особливо інвентаризацію ПЗ, для скорішого виявлення потенційно вразливих хостів. Для цього можна використовувати ПЗ Osquery

Osquery представляє користувачу склад операційної системи як базу даних. Цей підхід дозволяє вам писати SQL запити для того, щоб легко та ефективно отримувати актуальну інформацію про ваші системи. Osqueryпропонує дуже зручний інструмент для ведення інвентаризації встановленого ПЗ.
Для прикладу приведемо запити для отримання актуального списку встановленого ПЗ для ОС RedHat та CentOS:
SELECT name, version FROM rpm_packages
Для Windows систем:
SELECT name, version FROM programs
Оскільки Osquery використовує протокол НТТР для обміну інформацією між клієнтами та сервером – обов’язково налаштуйте аутентифікацію клієнтів за допомогою TLS-сертифікатів.
Також треба автоматизувати встановлення та оновлення ПЗ, оновлення операційних систем, зміну їх конфігурацій. В цьому може допомогти зв’язка ПЗ Ansible + Chocolatey.

Ansible є потужним інструментом з автоматизації процесів. Він надає можливість легкого керування серверами, віртуальними машинами та ПК, як Linux/Unix, так і Windows. Оновлення серверів, зміна конфігурації системи, запуск сервісів, виконання скриптів та багато чого іншого легко автоматизується з Ansible.
Ansible використовує SSH та WinRM протоколи для підключення до цільових систем. Для Windows, також, можливо додатково налаштувати SSH-доступ, але це потребує встановлення додаткового ПЗ. Для захисту своєї інфраструктури, що керується за допомогою Ansible, рекомендуємо створити окремий профіль з аутентифікацією по TLS-сертифікату, що буде використовуватися для адміністрування хостів.
Завдання оформлюються у вигляді yaml файлів. Якщо наступний скрипт зберегти у файл з розширенням ymlта передати ного на виконання до Ansible, останній під ’єднається до цільових асетів, запустить процес оновлення Windows ОС, якщо будуть доступні необхідні оновлення та перезавантажить систему, в разі необхідності:
– name: Update Critical |
|
hosts: windows |
|
tasks: |
|
– name: Install all critical and security updates |
|
win_updates: |
|
category_names: |
|
– CriticalUpdates |
|
– SecurityUpdates |
|
state: installed |
|
register: update_result |
|
– name: Reboot host if required |
|
win_reboot: |
|
when: update_result.reboot_required |
Для RedHat та CentOS:
– name: RedHat and CentOS Update |
|
hosts: rhel\centos |
|
tasks: |
|
– name: Install all updates |
|
yum:name: “*”state: latest |
|
– name: restart system to reboot to newest kernelshell: “sleep 5 && reboot”async: 1poll: 0– name: wait for 10 secondspause:seconds: 10– name: wait for the system to rebootwait_for_connection:connect_timeout: 20sleep: 5delay: 5timeout: 60 |
Якщо з Linux системами все просто – в наявності зручний, єдиний менеджер керування ПЗ, то з Windowsсистемами все складніше – треба оновлювати кожен елемент системи окремо, інколи, навіть, попередньо завантаживши оновлення. Chocolatey являє собою єдиний центральний репозиторій програмного забезпечення для Windows. CLI-інтерфейс за концепцією схожий на yum та apt-get для Linux і надає можливості автоматизації встановлення та оновлення ПЗ за допомогою cmd або PowerShell.
Приклад команди Chocolatey для оновлення ПЗ в середовищі Windows: choco upgrade all
Або ж можливо запустити процес оновлення за допомогою завдання Ansible
– name: Update Windows SW with Chocolatey |
|
hosts: windows |
|
tasks: |
|
– name: Upgrade installed packages with Chocolateywin_chocolatey:name: allstate: latest |
Оскільки osquery та chocolatey являють собою утиліти командного рядка – слід обмежити доступ до нього усім користувачам, в яких не має необхідності використовувати cmd або powershell. Це ускладнить доступ до критичної інформації про вашу інфраструктуру та легко робиться за допомогою групових політик. Також рекомендуємо обмежити виконання скриптів по інфраструктурі – найкращий варіант дозволити виконання скриптів, що підписані сертифікатами від довірених видавців.