
Дізнайтеся, як уникнути помилок автентифікації, забезпечити цілісність даних і налаштувати ефективний моніторинг у вашій системі. Захистіть свій бізнес від кіберзагроз!
Помилки ідентифікації та автентифікації – це проблеми в процесах перевірки особи користувача, що можуть дозволити несанкціонований доступ.
Опис: Використання слабких або передбачуваних паролів та їх ненадійне зберігання.
Приклад: Паролі без достатньої складності або зберігання паролів у простому текстовому форматі.
Опис: Недостатня перевірка особи користувача.
Приклад: Відсутність двофакторної автентифікації або використання ненадійних механізмів автентифікації.
Опис: Проблеми, що дозволяють зловмисникам обходити або зламувати механізми входу.
Приклад: Атаки на процес входу, такі як брутфорсинг або атаки на механізми скидання пароля.
Задайте мінімальну довжину пароля на рівні 8 символів або більше. Обов’язково перевіряйте паролі на слабкі комбінації за допомогою списків поширених ненадійних паролів, таких як SecLists. Щоб підвищити безпеку, замість стандартних вимог (великі й малі літери, цифри або спеціальні символи) варто збільшити мінімальну довжину до 12 символів, не обмежуючи склад. Система перевіряє слабкі паролі на відповідність спискам поширених ненадійних комбінацій.
Застосовуйте сучасні інструменти для брутфорсу, які можуть виконувати прості трансформації паролів, наприклад, заміну букв на схожі цифри або спеціальні символи (P@ssword1). Для підбору паролів використовуйте списки слабких комбінацій із SecLists. Такі інструменти, як Hydra або John the Ripper, дозволяють автоматизувати процес підбору паролів із цих списків, що значно прискорює атаку.
Спеціалізовані рішення: Використовуйте сервіси захисту від DDoS та brute-force атак, такі як Cloudflare, для захисту від надмірної кількості запитів до системи.
Лімітери запитів: Реалізуйте лімітери запитів за допомогою фреймворків, таких як Symfony, Laravel, або Yii2. Це дозволить обмежити кількість спроб входу в систему за короткий проміжок часу.
Капча або секретне питання: Після кількох невдалих спроб входу вимагайте від користувача пройти капчу або відповісти на секретне питання. Важливо, щоб питання не було легко відгадати.
Рандомна затримка: Додавайте випадкову затримку (1-2 секунди) після невдалої спроби входу. Це значно ускладнить брутфорс-атаку, не завдаючи дискомфорту легітимним користувачам.
Застосовуйте інструменти, такі як Hydra, Burp Suite Intruder або OWASP ZAP, для проведення автоматизованих атак на сторінки входу. Перевірте, наскільки ефективно працюють ліміти на кількість запитів, і чи можливо їх обійти через використання різних IP-адрес або проксі-серверів.
Вивчіть варіанти автоматизації проходження капчі або залучення зовнішніх сервісів для їх вирішення, що може суттєво спростити атаку на захищені системи.
У документації ffuf.md наведено кілька прикладів перебору шляхів і параметрів за допомогою інструмента ffuf, які ілюструють, як зловмисник може виконати брутфорс-атаку на веб-додаток.
Для захисту від таких атак використовуйте обмеження на кількість запитів, капчі, блокування доступу за IP-адресами та випадкові затримки між запитами. Це допоможе ефективно запобігти брутфорс-атакам на ваш веб-додаток.
Використання ffuf: Відомий інструмент для здійснення атак методом брутфорс.
ffuf -w /path/to/wordlist.txt -u https://target.com/FUZZ
Перебір можливих URL-адрес або параметрів, щоб виявити приховані шляхи або вразливі точки на сервері. Використання ffuf для атаки на різні URL та перевірка, чи є захист капчою:
ffuf -w /path/to/wordlist.txt -u https://target.com/FUZZ -H “User-Agent: ffuf-agent”
Помилки цілісності програмного забезпечення та даних – це проблеми, які впливають на довіру до програмного забезпечення та даних.
Опис: Зберігання даних без належного захисту або перевірки.
Приклад: Дані, що зберігаються в нешифрованому вигляді, що може бути доступне для зловмисників.
Опис: Вразливості в програмному забезпеченні, що дозволяють модифікацію або компрометацію його цілісності.
Приклад: Ненадійне управління оновленнями або модифікаціями коду, що може дозволити зловмисникам вставляти шкідливий код.
Опис: Використання даних з ненадійних або незахищених джерел.
Приклад: Використання даних з неперевірених або ненадійних джерел, що може призвести до зловживань або помилок.
Контрольні суми — це невеликі сегменти даних, створені з інших цифрових даних, які використовуються для перевірки цілісності файлів. Вони допомагають впевнитися, що дані не були змінені або пошкоджені.
Зазвичай контрольні суми подаються у вигляді хешів. Завдяки їм можна перевірити, чи залишився файл незмінним під час завантаження або передачі.
Приклад:
Використовуючи цю команду, ми можемо порівняти згенеровану контрольну суму з офіційною, щоб перевірити цілісність завантаженого файлу.
Контрольні суми можуть бути обійдені, якщо зловмисник здатен змінити як файл, так і його контрольну суму, наприклад, під час атаки типу MITM (людина посередині).
У такому випадку зловмисник підміняє файл і створює нову контрольну суму для цього зміненого файлу. Після цього він може замінити контрольну суму в системі перевірки, щоб приховати факт підміни файлу.
APT (Advanced Package Tool) та Brew
APT – це система управління пакетами для дистрибутивів на основі Debian, таких як Ubuntu. Деяке програмне забезпечення може вимагати оновлення списку джерел для apt, інше може вимагати завантаження .deb пакету та його встановлення, а деяке може постачатися у вигляді архівів з уже зкомпільованими бінарними файлами. Переконайтеся, що завантажуєте все з офіційних джерел.
Brew (для macOS) працює подібним чином, забезпечуючи просту установку та оновлення програмного забезпечення.
Composer – це інструмент для управління залежностями в PHP. Пакети можуть бути не завжди доступні в Packagist. У такому випадку можна додати додаткові джерела в налаштуваннях Composer, якщо ви впевнені в їх надійності. Рекомендується також використовувати shasum для перевірки цілісності.
NPM (Node Package Manager) та Yarn – це інструменти для управління залежностями в Node.js. Вони дозволяють легко встановлювати, оновлювати та видаляти пакети.
<link>
або <script>
, де міститься хеш ресурсу. Завдяки цьому можна переконатися, що ресурс не був змінений після завантаження, що є важливим для захисту від атак, таких як підміна ресурсів або вставка шкідливого коду.Перевірка на використання SRI: Визначте, чи використовуються атрибути integrity у ресурсах вашого веб-додатку. Використовуйте інструменти розробника у браузері для перевірки тегів <script> і <link> на наявність цього атрибута.
Атака на ресурси без SRI: Якщо ви виявите, що веб-додаток не використовує SRI для критичних ресурсів, спробуйте змінити ресурси (наприклад, через атаки на CDN) та перевірте, чи можна виконати шкідливий код.
Помилки в логуванні та моніторингу безпеки – це недоліки у системах моніторингу та запису подій безпеки.
Опис: Логування не забезпечує достатнього рівня деталізації для виявлення та розслідування інцидентів.
Приклад: Відсутність запису важливих подій або недостатня деталізація в журналах подій.
Опис: Відсутність постійного моніторингу для виявлення аномальних або небезпечних подій.
Приклад: Веб-додаток не має налаштованого моніторингу для виявлення підозрілих запитів або спроб доступу.
Опис: Ненадійний доступ до журналів подій, що дозволяє зловмисникам маніпулювати або видаляти записи.
Приклад: Логи зберігаються у відкритому доступі без належного захисту, що дозволяє зловмисникам їх змінювати або видаляти.
Логування повинно бути активоване для моніторингу подій і аномалій у системі. Для цього налаштуйте логування в Nginx, перевіривши, що у конфігураційному файлі /etc/nginx/nginx.conf
ввімкнено логування доступу та помилок. Це дозволить фіксувати всі важливі події та допоможе виявляти потенційні загрози.
Зловмисники можуть намагатися відключити або видалити журнали, щоб приховати свої сліди. Варто перевірити, чи є в системі можливість вимкнення логування. Для цього використовуйте команди для зміни конфігураційних файлів і спостерігайте, як система реагує на ці зміни. Це дозволить виявити потенційні слабкі місця в логуванні.
Повідомлення про помилки повинні бути чіткими і корисними для діагностики проблем. Налаштування Sentry для обробки помилок PHP:
Налаштуйте Sentry або подібні інструменти для моніторингу та сповіщення про помилки, забезпечте детальні повідомлення.
Тестування системи на можливість генерації нечітких або загальних повідомлень про помилки. Використовуйте некоректні запити для перевірки, чи система генерує загальні помилки:
Спостерігайте за помилками та перевіряйте їх чіткість і корисність для атакуючих.
Логи слід зберігати в централізованій системі для запобігання їх видаленню під час атаки. Налаштування ELK Stack (Elasticsearch, Logstash, Kibana) для централізованого зберігання логів.
Тестування на можливість видалення локальних логів або впливу на їх зберігання. Спробуйте видалити або модифікувати локальні логи: