Якщо у вашій компанії хтось «на швидку руку» підняв n8n, Ollama чи ComfyUI на VPS для тестування AI-автоматизації — і забув закрити порт назовні, — це вже може бути проблемою. Новий ботнет під назвою NadMesh написаний на Go і систематично сканує інтернет через Shodan у пошуках саме таких незахищених інстансів, після чого краде ключі AWS, токени Kubernetes та інші облікові дані.

Це не теоретична загроза. За даними дослідників, дашборд оператора ботнету вже накопичив понад 3800 унікальних ключів AWS — і це лише те, що вдалося зафіксувати. Для українських компаній, які масово впроваджують n8n, локальні LLM та no-code AI-інструменти, ризик особливо актуальний: швидкість впровадження часто випереджає базову гігієну безпеки.

Як це працює

NadMesh: боти-сканери шукають відкриті n8n, Ollama та ComfyUI і крадуть ключі AWS

За інформацією The Hacker News, NadMesh автоматизує весь цикл атаки:

  • Через Shodan/Censys-подібні пошукові індекси бот знаходить IP-адреси з відкритими портами популярних AI-сервісів: ComfyUI, Ollama, n8n, Open WebUI, Langflow, Gradio.

  • Якщо на цих сервісах немає автентифікації (а за замовчуванням у багатьох з них її немає), бот отримує доступ до інтерфейсу керування або API.

  • Далі він шукає в конфігураційних файлах, змінних середовища та логах контейнерів ключі AWS Access Key / Secret Key, токени Kubernetes ServiceAccount, а іноді й креденшли до інших хмарних провайдерів.

  • Знайдені секрети відправляються на сервер оператора та потрапляють у дашборд, де вже накопичено тисячі валідних ключів AWS.

Ключова причина успіху ботнету — банальна: сервіси розгортають «для тесту» без пароля, з відкритим портом «на всі інтерфейси» (0.0.0.0), а потім забувають закрити доступ або взагалі не думають про це, бо сервер «тимчасовий».

Чому це критично для українського бізнесу

Українські компанії — від малого e-commerce до продуктових IT-команд — активно експериментують з AI-автоматизацією: n8n для інтеграцій та воркфлоу, Ollama для локальних LLM без відправки даних у хмару, ComfyUI для генерації зображень. Це логічний і правильний тренд — контроль над даними, економія на API-викликах, швидкість.

Проблема в тому, що ці інструменти часто розгортають на VPS або власних серверах саме розробники й маркетологи, а не мережеві інженери. Порт відкривають, щоб «швидко перевірити з дому чи з клієнтського офісу», аутентифікацію не налаштовують — «додамо пізніше». А ключі AWS чи S3-сумісного хостингу, які потрібні для інтеграції n8n з хмарним сховищем, лежать прямо в workflow або в змінних середовища контейнера.

Якщо такий сервер потрапляє в поле зору NadMesh — компанія за кілька хвилин може отримати рахунок на тисячі доларів за скомпрометовані AWS-ресурси (криптомайнінг, спам-розсилки через SES) або витік клієнтських даних.

Практичний чекліст: перевірте свою інфраструктуру сьогодні

NadMesh: боти-сканери шукають відкриті n8n, Ollama та ComfyUI і крадуть ключі AWS

1. Перевірте, чи ви вже «засвітилися» в Shodan/Censys

  • Зайдіть на shodan.io і в пошуку введіть свій IP або діапазон: net:YOUR.IP.RANGE/24.

  • Пошукайте типові банери: port:5678 (n8n), port:11434 (Ollama), port:7860 (Gradio/ComfyUI за замовчуванням), port:3000 (Open WebUI, хоча може відрізнятись).

  • Аналогічно перевірте через Censys.io — інколи індекси відрізняються.

2. Закрийте зовнішній доступ до AI-портів через firewall

Найпростіше і найшвидше рішення — заблокувати вхідні з'єднання на ці порти на рівні маршрутизатора чи firewall сервера. Приклад для MikroTik RouterOS:

/ip firewall filter add chain=input protocol=tcp dst-port=5678 action=drop comment="Block n8n from WAN"
/ip firewall filter add chain=input protocol=tcp dst-port=11434 action=drop comment="Block Ollama from WAN"
/ip firewall filter add chain=input protocol=tcp dst-port=7860 action=drop comment="Block Gradio/ComfyUI from WAN"
/ip firewall filter move [find comment="Block n8n from WAN"] destination=0

Якщо сервіс потрібен віддалено — використовуйте VPN (WireGuard/IPsec на тому ж MikroTik) замість відкритого порту, або хоча б обмежте доступ за списком IP-адрес:

/ip firewall address-list add list=trusted_office address=203.0.113.10
/ip firewall filter add chain=input protocol=tcp dst-port=5678 src-address-list=!trusted_office action=drop

3. Увімкніть автентифікацію в самих сервісах

  • n8n — встановіть базову автентифікацію через змінні середовища N8N_BASIC_AUTH_ACTIVE=true, N8N_BASIC_AUTH_USER, N8N_BASIC_AUTH_PASSWORD, або підключіть SSO/OAuth у платній версії.

  • Ollama — за замовчуванням слухає лише localhost; якщо ви явно виставили OLLAMA_HOST=0.0.0.0, поверніть це і проксуйте доступ через nginx з basic auth або VPN.

  • Open WebUI — увімкніть обов'язкову реєстрацію/логін (WEBUI_AUTH=True), вимкніть анонімний доступ.

  • ComfyUI/Gradio — використовуйте параметр --auth (Gradio підтримує вбудований auth=("user","pass") в коді запуску) або тримайте сервіс лише за reverse-proxy з автентифікацією.

4. Позбавтеся статичних AWS-ключів

  • Де можливо, замініть статичні Access Key/Secret Key на IAM-ролі (для EC2, ECS, Lambda) — тоді ключі не зберігаються у файлах і не можуть «протекти» разом з конфігом n8n.

  • Якщо статичні ключі неминучі (наприклад, для інтеграції з зовнішнім n8n-воркфлоу), обмежте їх мінімальними правами через IAM-політики (принцип найменших привілеїв).

  • Проведіть ротацію всіх ключів AWS, які могли бути десь захардкоджені в конфігах, git-репозиторіях чи Docker-образах.

  • Увімкніть AWS CloudTrail та сповіщення про аномальну активність (нові регіони, незвичні API-виклики).

5. Моніторинг та логування

  • Ведіть логи доступу до AI-сервісів і аналізуйте на предмет запитів з нетипових IP чи User-Agent (боти на Go зазвичай мають характерні заголовки).

  • Налаштуйте fail2ban або аналогічний механізм на сервері для блокування IP після кількох невдалих спроб автентифікації.

  • Регулярно (раз на тиждень-місяць) повторюйте перевірку через Shodan/Censys — новий сервіс може «засвітитися» вже через кілька годин після розгортання.

FAQ

Чи стосується це лише хмарних серверів, чи й локальних?

Стосується будь-якого сервера з публічною IP-адресою або доступного через port forwarding на роутері — навіть якщо це офісний сервер, а не AWS/VPS.

У нас n8n доступний лише через VPN — ми в безпеці?

Значно безпечніше, ніж відкритий порт напряму. Але перевірте, чи VPN справді єдиний шлях — інколи залишається паралельний доступ через публічний IP «про запас».

Скільки часу займає перевірка через Shodan?

5–10 хвилин на один IP-діапазон. Це найшвидша дія з усього чекліста і її варто зробити першою.

Джерело: The Hacker News — New NadMesh Botnet Hunts Exposed AI Services