Чи знаєте ви, що таке LDAP-ін'єкція? Це техніка ін'єкції коду, спрямована на програми, які створюють запити ін'єкцій, використовуючи необроблені дані користувача. LDAP (Lightweight Directory Access Protocol) зазвичай використовується для пошуку в каталогах, наприклад, для автентифікації користувачів або отримання даних організації. Коли зловмисники надають спеціально створені дані, що містять метасимволи LDAP, вони можуть змінити логіку запитів до каталогів, щоб отримати доступ до даних або змінити їх неправильно. Фактично, вразливість LDAP-ін'єкції виникає, коли фільтри створюються динамічно зі значень, контрольованих користувачем, без очищення або перевірки вхідних даних.
Як це працює: Механіка атаки LDAP-ін'єкції #
Атака LDAP-ін'єкції відбувається, коли надані користувачем дані небезпечним чином включаються до LDAP-запиту. Розглянемо login фільтр:
(&(cn=” + ім'я користувача + “)(Пароль_користувача=” + пароль + “))Якщо зловмисник надсилає * або послідовності термінаторів замість дійсного імені користувача, логіка фільтра згортається до ширшої оцінки або умови «завжди істинно», фактично обходячи автентифікацію. Саме так працює ця ін'єкція: ін'єкція логіки LDAP для порушення запланованої поведінки.
Отже, вразливість LDAP-ін'єкції виникає через побудову запитів через ненадійні вхідні дані, що містять спеціальні символи, такі як дужки, лапки та підстановочні знаки, що змінюють семантику запиту.
Більше того, вони виникають, коли код програми небезпечно копіює дані користувача в запит LDAP і не нейтралізує метасимволи, дозволяючи зловмисникам переривати або маніпулювати логікою запиту, отримувати доступ до несанкціонованих даних або змінювати потік виконання.
Чому атака LDAP-ін'єкцією має значення? #
Атака LDAP-ін'єкцією може порушити автентифікацію, витік конфіденційної інформації або навіть змінити структуру каталогів. Imperva наголошує, що зловмисники можуть порушити процеси автентифікації, переглядати або змінювати імена користувачів/паролі, встановлювати шкідливе програмне забезпечення та підвищувати привілеї, що призводить до витоків даних, репутаційної шкоди та фінансових втрат.
Вразливості LDAP-ін'єкцій можуть каскадуватися через взаємопов'язані служби, особливо в enterprise середовища, що використовують LDAP для єдиного входу (SSO), авторизації або координації ідентифікації та дозволів користувачів.
Ознаки існуючої вразливості LDAP-ін'єкції #
У кібербезпеці управління стосується того, як лідерство, політики та ключові тривожні прапорці:
- Код об'єднує введені користувачем дані безпосередньо у фільтри LDAP.
- Відсутність перевірки вхідних даних або екранування.
- Використання спеціальних символів, таких як () * та | =, у вхідних даних без обмежень.
- Неочікувані результати запиту, наприклад, успішна автентифікація незалежно від облікових даних або широкі списки користувачів повертають мінімальні дані.
Неправильно побудовані запити на основі введених користувачем даних можуть призвести до несанкціонованого отримання даних або обходу логіки.
Як їх пом'якшити? #
Зменшення вразливості LDAP-ін'єкції передбачає:
a. Перевірка вводу / Список дозволених даних
Приймайте лише відомі безпечні символи або шаблони. Відхиляйте або очищуйте керуючі символи, такі як *, (, ), &, |, =. PortsWigger рекомендує блокувати вхідні дані, що містять метасимволи LDAP, або застосовувати суворі буквено-цифрові шаблони.
b. Ескейпінг / Кодування
Використовуйте специфічні для LDAP функції екранування: екранування розпізнавального імені для контекстів DN та екранування фільтра пошуку для предикатів. OWASP надає детальний Шпаргалка з профілактики з індивідуальними рекомендаціями
c. Параметризовані запити / Безпечні API
Уникайте створення фільтрів за допомогою конкатенації рядків. Використовуйте бібліотеки LDAP, що підтримують прив'язку параметрів або API побудови фільтрів (наприклад, Filter.createANDFilter(…) від UnboundID SDK), щоб гарантувати, що введені користувачем дані оброблятимуться як дані, а не як синтаксис.
d. Принцип найменших привілеїв (PoLP)
Прив’язати LDAP з мінімальними правами доступу. Навіть якщо відбувається ін’єкція, це обмежує дії, які може виконати зловмисник. Підкреслення PoLP у поєднанні з нульова довіра та багатосторонні задля обмеження впливу.
e. Безпечні фреймворки / бібліотеки
Використовуйте фреймворки, які автоматично екранують або очищують вхідні дані та перешкоджають створенню необроблених запитів.
f. Інструменти аналізу коду
У .NET використовуйте аналіз CA3005 для виявлення ненадійних HTTP-вхідних даних, що досягають операторів LDAP; виправте це шляхом очищення, екранування або додавання вхідних даних до списку дозволених параметрів.
g. Тестування (статичне, динамічне, тестування ручкою)
Інтегруйте як статичну безпеку додатків (SAST) та Динамічний (DAST) сканування для виявлення вразливостей LDAP-ін'єкцій як у стані спокою, так і під час виконання.
h. Реєстрація, моніторинг, оповіщення
Виявляйте аномальні шаблони фільтрів, невдалі спроби або неочікувані структури запитів. Semperis рекомендує моніторити Active Directory на наявність нерегулярних запитів LDAP або маніпуляцій метаданими.
Зведена таблиця глосарію #
| Термін | Сенс |
|---|---|
| Ін'єкція LDAP | Техніка впровадження коду, що використовує неочищений користувацький ввід у фільтрах LDAP. |
| Що таке LDAP-ін'єкція | Вразливість, що виникає через створення LDAP-запитів з ненадійними вхідними даними. |
| Атака з LDAP-ін'єкцією | Фактична експлуатація, коли вхідні дані змінюють логіку запитів LDAP або отримують доступ. |
| Вразливість ін'єкції LDAP | Цей недолік на рівні коду дозволяє здійснювати атаки LDAP-ін'єкцій. |
Чому це важливо в DevSecOps? #
Для
Команди DevSecOps, запобігання вразливості LDAP-ін'єкції є життєво важливим для захисту потоків автентифікації та контролю доступу на основі каталогів. Безперервна інтеграція pipelineповинні включати статичні перевірки коду на наявність небезпечної конструкції запитів та динамічне тестування на наявність маніпуляцій з фільтрами. Менеджери безпеки повинні забезпечувати використання бібліотек екранування, параметризоване використання API та дотримання політик мінімальних привілеїв та перевірки вхідних даних.
Зміцнення DevSecOps Pipelineз Xygeni #
Тепер, коли ви знаєте, що таке LDAP-ін'єкція, ви розумієте, що захист сучасних програм від неї вимагає більше, ніж виправлення на рівні коду. Команди DevSecOps повинні забезпечувати безпеку на всій життєвий цикл розробки програмного забезпечення, від коду до збірки та розгортання.
Такі інструменти, як Ксігені надати командам можливість виявляти ризики ін'єкцій на ранній стадії шляхом інтеграції статичного аналізу IaC сканування та безпечне застосування політик безпосередньо до CI/CD робочі процеси. Завдяки постійному моніторингу небезпечної побудови запитів, ризиків залежностей або неправильних конфігурацій, Xygeni допомагає запобігти атакам LDAP-ін'єкцій, перш ніж вони досягнуть робочого середовища.
Впровадження таких платформ, як Xygeni, узгоджує безпеку зі швидкістю розробки, забезпечуючи видимість у режимі реального часу, автоматизований контроль та інструкції з виправлення помилок, адаптовані до інженерії безпеки за проектуванням.
