Вступ до ін'єкції ЛДАП

Веб-додаток в наші дні повинен бути набагато більше, ніж просто платформа, яка обробляє запити користувачів. У більш ранній період веб-додаток стосувався місця, куди користувачі можуть прийти виконувати свою роботу та виходити з системи, а до моменту їх виходу програма перестає працювати. Але в наші дні веб-додаток має працювати, навіть якщо користувач його не використовує, що може бути реалізовано за допомогою файлів cookie. Нещодавно Facebook підтвердив, що вони використовують файли cookie для перевірки діяльності користувачів для того, щоб не зловживати їх системою. Тож у той час, коли онлайн-додатки мають бути більш потужними, безпека програми очолює список вимог. Тут ми зупинимось на одному типі режиму кібератаки, про який слід подбати, щоб забезпечити безпеку системи.

Що таке ін'єкція LDAP?

  • LDAP - це легкий протокол доступу до каталогу. Він може бути визначений як протокол, нейтральний до постачальника і працює на шарі над TCP / IP стеком. Він використовується для впровадження механізму перевірки та автентифікації у веб-додатку для забезпечення його безпеки та дуже часто використовується під час розробки веб-додатків. LDAP дуже часто використовується у веб-додатках, які використовуються через Інтернет або інтранет. Для веб-додатків дуже важливо використовувати LDAP, оскільки це дуже поширений і важливий фактор, що сприяє безпечній розробці веб-програми.
  • LDAP також може бути визначений як набір стандартів, які використовуються для здійснення перевірок безпеки, щоб з'ясувати, чи є у користувача весь дозвіл на доступ до існуючої системи. Існує кілька способів зробити перевірки, але зрештою, мотивом усіх перевірок є забезпечення безпеки веб-програми. Він забороняє несанкціонований доступ користувачів, які не мають належних привілеїв. Виходячи з прав, які користувач користується певним веб-додатком, він гарантує, що користувач може мати доступ лише до тих речей, на які він має право. Хоча він використовується для того, щоб дбати про безпеку веб-програми, хакери також можуть його обдурити, щоб витягти сік із програми.

Виконання ін'єкції LDAP з прикладом

  • Веб-додаток має взяти дані від користувача для подальшої обробки. Зловмисник може скористатись цим, якщо введене користувачами значення не буде належним чином очищене і безпосередньо переходить у базу даних для виконання. Тут ми побачимо, як можна було запустити ін'єкцію LDAP в будь-який веб-додаток, схильний до цієї атаки.

IEnter your name

  • Згаданий вище запит буде перетворений в команду LDAP, що дозволяє додатку полегшити виконання запиту.

String ldapQueryToSearch= "(sq=" + $userName + ")";
System.out.println(ldapQueryToSearch);

  • У наведеному вище випадку, якщо значення, подане користувачем, не санітизоване, це може призвести до отримання імені всіх існуючих користувачів, поставивши "*" у полі введення. Зірочка позначає всі доступні параметри, тому коли база даних обробить зірочку, а не будь-яке конкретне ім'я користувача, йому будуть надані всі об'єкти, що зберігаються в базі даних LDAP. Фактичний запит, який буде виконуватися в базі даних, буде

findingLogin="(&(usrid="+username+")(userPwd=(MD5)"+base64(pack("H*", md5(pass)))+"))";

  • Коли дані не санітируються, а база даних приймає в процесі значення зірочки, код буде, як показано нижче.

findingLogin="(&(usrid=*)(usrid=*))(|(usrid=*)(userPwd=(MD5)Xkjr1Hj5LydgyfeuILpxM==))";

Як тільки вищевказаний код запуститься в базу даних LDAP, він пройде через усі об'єкти, що зберігаються в базі даних LDAP, і призведе до заподіяння шкоди веб-додатку. Після цього хакер використовує результат ін'єкції LDAP для зловживання системою та порушення безпеки.

Як можна захистити від атак LDAP Injection?

  • Якщо в програмі є вразливість, має існувати і її виправлення. Майже не буде вразливості, яку неможливо вирішити чи виправити для захисту системи. Таким же чином існує кілька способів, які можна використовувати для захисту веб-програми від ін'єкції LDAP.
  • Найперший і найважливіший спосіб - санітувати вхід, перш ніж подавати його на подальшу обробку. Вхід, поданий користувачем, повинен бути підтверджений, якщо він відповідає вимозі, що відповідає тому, що додаток очікує через це текстове поле. Наприклад, якщо користувач намагається подати будь-які спеціальні символи в текстовому полі, яке запитує ім'я, то його слід попередити, що він не може заповнити спеціальний символ у цьому полі. Це підтвердження на стороні клієнта. Тепер також буде потрібна перевірка на сервері, щоб переконатися, що надані дані є справжніми.
  • Наступний - налаштувати LDAP, пам’ятаючи про безпеку. Конфігурація LDAP повинна здійснюватися таким чином, що обмежує несанкціонованих користувачів вносити будь-які шкідливі зміни в систему. Крім того, наступний - результат запиту LDAP повинен бути обмеженим і не може розкривати жодних даних, які можуть призвести до порушень безпеки. Якщо даних буде недостатньо для шкоди системі, зловмисник не зможе жодним чином вплинути на веб-додаток, навіть якщо їм вдалося запустити ін'єкційну атаку LDAP.

Висновок

Легкий протокол доступу до каталогу забезпечує шлях до програми, щоб переконатися, що користувач, який намагається отримати доступ до системи, має належну автентифікацію та уповноважений користуватися системою. Дуже важливо враховувати LDAP, дотримуючись при цьому всіх питань безпеки. Система має бути достатньо сильною, щоб не дозволити жодному хакеру запустити атаку LDAP. Оскільки база даних LDAP містить дуже прибуткову інформацію, адміністратор повинен гарантувати, що дані користувача були ретельно очищені та конфігурацію потрібно робити, пам’ятаючи про всі фактори безпеки.

Рекомендовані статті

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

  1. Що таке інжекція SQL?
  2. Що таке Laravel?
  3. Тестування безпеки
  4. Що таке інтерфейс Java?