Як ми працюємо 6 хв читання моніторинг безпека

Скільки атак ловить ваш сервер, поки ви спите

Одна машина під нашим доглядом за дві з половиною доби відбила майже три тисячі спроб входу. Не сплеск, не інцидент, не «нас зламали» — звичайний вівторок сервера, що дивиться в інтернет. І найнеприємніше тут навіть не ті три тисячі, а те, що їх легко було не помітити взагалі. Моніторинг чесно все записував — але канал сповіщень мовчав: один зламаний конфіг кілька днів поспіль тихо ковтав кожне попередження. Ми натрапили на це під час планової ревізії власного флоту: полагодили один рядок — і побачили те, що спокійно тривало весь цей час.

Розкажемо цю історію на живих цифрах із власного заліза — знеособлено, але без прикрас. Бо найкраще пояснення безпеки — не страшилка з підручника, а те, що діється на вашому ж сервері просто зараз, поки ви про це не думаєте.

Що таке RDP-брутфорс і кого він стосується

RDP — це протокол віддаленого робочого стола: та сама кнопка «підключитись до сервера з дому», якою користуються мільйони. За замовчуванням він слухає порт 3389, і цей номер знає напам’ять кожен бот у мережі. Схема проста до нудьги: автоматика день і ніч обходить інтернет, шукає відкритий 3389, а знайшовши — перебирає пари «логін-пароль» тисячами, доки не вгадає або доки її не відіб’ють.

Ключове тут — не адресна атака особисто на вас. Це фоновий шум, який летить на всіх однаково: на банк, на пекарню й на тестовий сервер, який хтось підняв «на п’ять хвилин» три роки тому. Якщо ви або ваш підрядник колись виставили 3389 назовні, «щоб зручно заходити здалеку», — вітаємо, ви вже у вибірці. Питання лише в тому, замкнені двері чи ні — і чи дізнаєтесь ви, якщо хтось таки зайде.

Ми вже якось показували непомітних читачів вашого сайту — нешкідливих ШІ-ботів, що тихо гортають ваші сторінки. Ці гості з тієї самої породи — невидимі, лише з протилежним наміром.

Що показують живі цифри

Почнімо з фаєрвола. За сто з лишком днів безперервної роботи він заблокував на одному сервері 218 211 пакетів, що гатили в RDP-порт, — це близько двох тисяч на добу. На іншому нашому сервері — 61 436, ще шістсот щодня. Це навіть не спроби входу, це агресивні джерела, яких фаєрвол відсік ще на підступах простим правилом: п’ять спроб з однієї адреси за хвилину — і адреса летить у блок.

Найцікавіше починається за цим бар’єром. Розподілена атака навмисно обходить ліміт «на адресу»: багато джерел, кожне стукає потроху, щоб блок не спрацював. Журнал однієї машини за ті самі 2,5 доби показав 2 893 невдалі спроби входу, які просочилися аж до вікна автентифікації. З них 2 890 — рівно 99,9% — били в один-єдиний акаунт: вбудований administrator. Джерел було 34, розкиданих світом: Південна Корея, Німеччина, США, кілька азійських і латиноамериканських діапазонів — типовий глобальний ботнет, якому до вас особисто байдуже. І атака не слабшала — трималась на рівні сотень і тисяч спроб щодня: 571, потім 1 242, потім 1 080.

Жодна не вдалась — бо administrator на тій машині вимкнений. Але ось цифра, заради якої варто дочитати. Ще один сервер — схожий, тільки RDP на ньому слухає нестандартний порт замість голого 3389 — за той самий період зібрав аж 634 блокування. Проти 218 тисяч. Той самий інтернет, ті самі ботнети, один параметр конфігурації — і приблизно в триста разів менше шуму на вході.

«Все зелено» — найдорожча брехня в моніторингу

Тепер найчесніша частина. Усі ці машини весь час показували «все гаразд» — і саме тут ховається головна пастка. Ось три граблі, на які ми наступили на власному флоті під час тієї ж ревізії.

Перше. Нічний бекап п’ять діб поспіль рапортував успіх — код виходу нуль, зелена галочка, — а насправді щоразу падав. Причина типова: він запускався через проміжний лаунчер у режимі «запустив і забув», і планувальник бачив код виходу лаунчера, який завжди нуль, а не реального скрипта під ним. Мораль: моніторити треба результат — свіжість файлу-маркера, вміст лога, — а не статус завдання. «Виконано успішно» не означає нічого, якщо ви не перевіряєте, що саме воно виконало.

Друге — та сама історія з початку тексту. Система безпеки чесно фіксувала критичні події кілька днів поспіль — і стільки ж днів не могла нікому про них сказати: не був налаштований канал сповіщень. А всі завдання світились зеленим. Мовчазний моніторинг гірший за жоден — він дарує хибне відчуття спокою. Тому найперше, що треба тестувати після налаштування алертів, — що вони реально доходять.

Третє. Ще одна машина тихо накопичила понад тисячу процесів — сотні зомбі від завдання, яке лишало по два процеси за кожен запуск і ніколи їх не прибирало. За п’ятдесят днів вичерпалась віртуальна пам’ять, і бекапи почали падати з «недостатньо пам’яті» — знову ж таки під бадьорим зеленим статусом планувальника. Стан процесів і ресурсів — це теж моніторинг, не лише код виходу.

Так, це наші власні граблі, і показуємо ми їх не тому, що пишаємось, а тому, що якщо на них наступили ми — люди, для яких це щоденна робота, — то на них наступить будь-хто, хто досі вірить зеленому статусу.

Як захищатись — те, що справді працює

Хороша новина: нічого екзотичного чи дорогого тут не треба. Ось стек, який ми ставимо собі й клієнтам. Якщо частина термінів нижче не ваша мова — покажіть цей блок своєму айтішнику, хай звірить, що з переліку в нього вже стоїть.

  1. Нестандартний порт замість голого 3389. Різниця 218 тисяч проти 634 — прямий доказ, що це працює. Не єдиний захист, але найдешевший перший фільтр, що відсіює переважну більшість автоматичного шуму.
  2. Rate-limit на рівні фаєрвола — те саме правило «п’ять спроб за хвилину з однієї адреси → блок». Ловить одиночні агресивні джерела ще до входу.
  3. Вимкнути вбудовані акаунти administrator і guest. Коли 99,9% атак ціляться в administrator, вимкнений administrator робить увесь той брутфорс безцільним.
  4. Резервний акаунт для аварійного входу — з нестандартним іменем і міцним паролем у менеджері паролів, щоб, вимкнувши дефолтний, не зачинити двері перед самим собою.
  5. Моніторинг подій безпеки з живим каналом сповіщень — у нас це журнал подій, зведений у короткий дайджест і надісланий у месенджер. Обов’язково з перевіркою, що алерт доходить: див. граблі номер два.
  6. Керування через приватну mesh-мережу (Tailscale й подібні), а публічний RDP прибрати взагалі, якщо доступ ззовні не потрібен. Найнадійніший захист відкритого порту — це закритий порт.

Двері, у які стукають щоночі

Три тисячі спроб за дві з половиною доби — це не тому, що ваш сервер комусь цікавий. Це тому, що в інтернеті так тихо не буває ні для кого: автоматика перевіряє кожні двері щоночі, і ваші теж. Уся різниця — між тим, у кого двері замкнені й хто побачить спробу, і тим, у кого «все зелено» просто тому, що нікому було подзвонити.

Цей фоновий шум ми показуємо наживо й знеособлено — вітрина безпеки нашого власного сайту: провайдер і країна кожної спроби, без повних адрес. Це той самий підхід, що стоїть за нашим «Вартовим» — постійним наглядом, який ловить важливе й мовчить про дрібниці. А якщо цікаво, наскільки гучна ваша власна ніч і чи не бреше вам зелений статус, — безкоштовний аудит це покаже, спокійно й на цифрах.

Потрібна допомога з IT?

Безкоштовний аудит вашої інфраструктури — знайдемо слабкі місця й покажемо чесний план. Ні до чого не зобов’язує.

Безкоштовний аудит