03 Кві, 2023

Недостатній контроль доступу до API

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

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

Приклад уразливого коду на різних мовах програмування:


В Java:

				
					public class MyAPI {
   public void sensitiveOperation(String secretKey) {
       if (secretKey.equals("mySecretKey")) {
           // Perform sensitive operation
       } else {
           throw new SecurityException("Unauthorized access");
       }
   }
}

				
			

 

У цьому фрагменті коду Java є конфіденційна операція, яка вимагає надання секретного ключа. Однак код тільки перевіряє, чи відповідає наданий ключ жорстко заданому значенню "mySecretKey". Це недолік безпеки, оскільки зловмисник може легко вгадати секретний ключ або обійти перевірку, дозволивши несанкціонований доступ до конфіденційної операції.

• в Python:

				
					def sensitive_operation(api_key):
   if api_key == "myAPIkey":
       # Perform sensitive operation
   else:
       raise ValueError("Unauthorized access")


				
			

 

Аналогічно, цей фрагмент коду Python тільки перевіряє, чи відповідає наданий ключ API жорстко заданому значенню "myAPIkey". Зловмисник може легко вгадати ключ або використовувати інші методи, такі як перерахування API, для виявлення дійсних ключів, що дозволяє отримати несанкціонований доступ до конфіденційної операції.

• в Node.js:

				
					app.post('/api/sensitiveOperation', function(req, res) {
   var apiKey = req.body.api_key;
   if (apiKey == "myAPIkey") {
       // Perform sensitive operation
   } else {
       res.status(401).send("Unauthorized access");
   }
});

				
			


У цьому Node.js фрагмент коду, ключ API отриманий з тіла запиту, але код тільки перевіряє, чи відповідає він жорстко заданому значенню "myAPIkey". Це недолік безпеки, оскільки зловмисник може легко вгадати ключ або перехопити запит API для отримання дійсного ключа, що дозволить отримати несанкціонований доступ до конфіденційної операції. Крім того, код повертає тільки неавторизований відповідь 401, який може призвести до витоку інформації про існування конфіденційної операції та її місцезнаходження.

Приклади експлуатації Недостатній контроль доступу до API

Несанкціонований доступ до конфіденційних даних:

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

Несанкціоноване зміна даних:

Зловмисник може використовувати API для зміни або видалення даних, які повинні бути доступні тільки авторизованим користувачам. Наприклад, зловмисник може змінити суму фінансової транзакції або видалити важливі записи, що призведе до фінансових втрат, витоку даних або інших шкідливих наслідків.

Відмова в обслуговуванні (DoS):

Зловмисник може завалити API великим обсягом запитів або відправляти запити, які споживають надмірні ресурси, що призводить до DoS-атаки, яка може зробити API недоступним для законних користувачів. Це може призвести до збоїв в роботі сервісів, втрату доходів або репутаційного збитку.

Перерахування кінцевих точок API:

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

Методи підвищення привілеїв при Недостатньому контролі доступу до API

Вгадування ключа API:

Зловмисник може використовувати атаку методом перебору або за словником, щоб вгадати дійсні ключі API, що може дозволити їм отримати доступ до конфіденційних даних або функцій, які зазвичай обмежені авторизованими користувачами. Якщо ключ API слабкий або його легко вгадати, цей метод може бути ефективним при отриманні несанкціонованого доступу.

Маніпулювання кінцевою точкою API:

Зловмисник може маніпулювати кінцевими точками API, щоб обійти або змінити перевірки контролю доступу, що може дозволити їм отримати доступ або змінити конфіденційні дані або функціональність. Наприклад, зловмисник може змінити параметри запиту API або змінити URL-адресу для доступу до іншої кінцевої точки.

Підробка запиту API:

Зловмисник може підробити запити API, щоб обійти або змінити перевірки контролю доступу, що може дозволити йому отримати доступ або змінити конфіденційні дані або функціональність. Наприклад, зловмисник може змінити заголовки або тіло запиту API, щоб обійти автентифікації або авторизації.

Перехоплення сеансу:

Якщо API використовує автентифікацію на основі сеансу, зловмисник може вкрасти токени сеансу або файли cookie законного користувача і використовувати їх для виконання дій від імені користувача. Це може дозволити зловмиснику отримати доступ до конфіденційних даних або функцій, які зазвичай обмежені користувачем, або змінити їх.

Атака "Людина посередині" (MITM):

Зловмисник може перехоплювати і змінювати трафік API між клієнтом і сервером, щоб обійти або змінити перевірки контролю доступу, що може дозволити їм отримати доступ або змінити конфіденційні дані або функціональність. Наприклад, зловмисник може перехоплювати запити API і змінювати заголовки або тіло, щоб обійти автентифікації або авторизації.

Загальна методологія та контрольний список із-за недостатнього контролю доступу до API

Методологія:

  1. Визначте всі кінцеві точки API і їх параметри, які використовуються для доступу або зміни конфіденційних даних або функціональності.

  2. Визначте механізми контролю доступу, використовувані API для обмеження доступу до конфіденційних даних або функціональним можливостям. Це може включати механізми аутентификації, такі як ключі API, токени OAuth або аутентифікація на основі сеансу, а також механізми авторизації, такі як управління доступом на основі ролей або управління доступом на основі атрибутів.

  3. Протестуйте механізми контролю доступу, щоб переконатися в їх ефективності при обмеженні доступу до конфіденційних даних або функціональним можливостям. Це може включати тестування на відсутність перевірок аутентифікації або авторизації, тестування на слабкі або передбачувані ключі API або токени, тестування на відсутність або недостатня обмеження швидкості і тестування на інші уразливості, такі як CSRF або XSS.

  4. Перевірте наявність вразливостей з підвищенням привілеїв, які можуть дозволити зловмиснику отримати доступ або привілеї більш високого рівня, ніж спочатку надані або передбачувані. Це може включати тестування на вгадування ключа API, маніпулювання кінцевою точкою, підробку запитів, перехоплення сеансу і атаки MITM.

  5. Перевірте наявність вразливостей DoS, які можуть зробити API недоступним для законних користувачів. Це може включати тестування на відсутність обмеження швидкості або регулювання, тестування на надмірне споживання ресурсів і тестування на інші уразливості, які можуть бути використані для виконання DoS-атак.

  6. Документуйте і повідомляйте про всі виявлені уразливості власнику API, включаючи потенційний вплив і серйозність кожної уразливості. Надайте рекомендації щодо усунення вразливостей, такі як запровадження надійних механізмів аутентифікації і авторизації, впровадження належного обмеження швидкості і регулювання, шифрування трафіку API і моніторинг журналів доступу до API.

  7. Після усунення вразливостей повторно протестуйте API, щоб переконатися в ефективності виправлень і відсутності нових вразливостей.

Контрольний список:

  1. Визначте всі кінцеві точки API і їх параметри, які використовуються для доступу або зміни конфіденційних даних або функціональності.

  2. Визначте механізми контролю доступу, використовувані API для обмеження доступу до конфіденційних даних або функціональним можливостям, такі як механізми аутентифікації і механізми авторизації.

  3. Протестуйте механізми контролю доступу, щоб переконатися в їх ефективності при обмеженні доступу до конфіденційних даних або функціональним можливостям.

  4. Перевірте відсутність перевірок аутентифікації або авторизації.

  5. Перевірте наявність слабких або передбачуваних ключів API або токенів.

  6. Перевірте відсутність або недостатня обмеження швидкості.

  7. Перевірте наявність вразливостей з підвищенням привілеїв, які можуть дозволити зловмиснику отримати доступ або привілеї більш високого рівня, ніж спочатку надані або передбачувані.

  8. Перевірте наявність вразливостей DoS, які можуть зробити API недоступним для законних користувачів.

  9. Перевірте наявність інших недоліків, таких як CSRF або XSS.

  10. Документуйте і повідомляйте про всі виявлені уразливості власнику API, включаючи потенційний вплив і серйозність кожної уразливості.

  11. Надайте рекомендації щодо усунення вразливостей, такі як запровадження надійних механізмів аутентифікації і авторизації, впровадження належного обмеження швидкості і регулювання, шифрування трафіку API і моніторинг журналів доступу до API.

  12. Повторно протестуйте API після усунення вразливостей, щоб переконатися в ефективності виправлень і відсутності нових вразливостей.

Набір інструментів для експлуатації Недостатній контроль доступу до API

Автоматизовані інструменти:

  • OWASP ZAP – Сканер веб-додатків з відкритим вихідним кодом, який може виявляти і експлуатувати уразливості, включаючи недостатній контроль доступу, за допомогою автоматичного і ручного тестування.

  • Burp Suite – Популярний набір інструментів для тестування безпеки веб-додатків, який включає в себе безліч інструментів для автоматичного і ручного тестування, включаючи сканер для виявлення недостатніх засобів контролю доступу.

  • Nikto – Сканер веб-сервер з відкритим вихідним кодом, який може виявляти уразливості, включаючи недостатній контроль доступу, з допомогою автоматичного тестування.

  • Acunetix – Сканер веб-додатків, який може виявляти уразливості, включаючи недостатній контроль доступу, з допомогою автоматичного тестування.

  • Netsparker – Сканер веб-додатків, який може виявляти уразливості, включаючи недостатній контроль доступу, з допомогою автоматичного тестування.

  • AppSpider – Сканер веб-додатків, який може виявляти уразливості, включаючи недостатній контроль доступу, з допомогою автоматичного тестування.

  • Qualys Web Application Scanning – Сканер хмарних веб-додатків, який може виявляти уразливості, включаючи недостатній контроль доступу, з допомогою автоматичного тестування.

  • OpenVAS – Сканер вразливостей з відкритим вихідним кодом, який може виявляти уразливості, включаючи недостатній контроль доступу, в веб-додатках і іншому програмному забезпеченні допомогою автоматичного тестування.

  • Grendel-Scan – Сканер веб-додатків з відкритим вихідним кодом, який може виявляти уразливості, включаючи недостатній контроль доступу, з допомогою автоматичного тестування.

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

Ручні Інструменти:

  • Postman – Популярна середовище розробки API, яка може використовуватися для ручного тестування API, включаючи тестування на недостатній контроль доступу.

  • Fiddler – Проксі-сервер веб-налагодження, який може використовуватися для ручного тестування API, включаючи тестування на недостатній контроль доступу.

  • SoapUI – Інструмент для тестування веб-сервісів, який можна використовувати для ручного тестування API, включаючи тестування на недостатній контроль доступу.

  • CURL – Інструмент командного рядка для створення HTTP-запитів, який може використовуватися для ручного тестування API, включаючи тестування на недостатній контроль доступу.

  • HTTPie – Інструмент командного рядка для створення HTTP-запитів, який може використовуватися для ручного тестування API, включаючи тестування на недостатній контроль доступу.

  • Paw – Інструмент для тестування API, який можна використовувати для ручного тестування, включаючи тестування на недостатній контроль доступу.

  • RESTClient – Розширення для браузера Firefox і Chrome, який можна використовувати для ручного тестування API, включаючи тестування на недостатній контроль доступу.

  • Insomnia – Багатоплатформовий інструмент для тестування API, який можна використовувати для ручного тестування, включаючи тестування на недостатній контроль доступу.

  • Advanced REST Client – Розширення для браузера Chrome, яке можна використовувати для ручного тестування API, включаючи тестування на недостатній контроль доступу.

  • SOAPSonar – Інструмент для тестування веб-сервісів SOAP, який можна використовувати для ручного тестування API, включаючи тестування на недостатній контроль доступу.

Загальна перерахування слабких місць (CWE)

• CWE-285: Неправильна авторизація: ця вразливість виникає, коли додаток неправильно застосовує засоби контролю доступу або дозволу користувача, дозволяючи зловмиснику виконувати дії, які повинні бути обмежені.

• CWE-287: Неправильна аутентифікація: ця вразливість виникає, коли додаток неправильно аутентифікує користувачів або перевіряє їх облікові дані, дозволяючи зловмиснику видавати себе за законного користувача і виконувати несанкціоновані дії.

• CWE-434: Необмежена завантаження файлу з небезпечним типом: ця вразливість виникає, коли додаток дозволяє користувачам завантажувати файли без належної перевірки, що може призвести до виконання шкідливого коду або розкриття конфіденційної інформації.

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

• CWE-611: Неправильне обмеження посилання на зовнішні об'єкти XML: ця слабкість виникає, коли програма обробляє введені XML-дані без належної перевірки зовнішніх об'єктів, що може призвести до розкриття конфіденційної інформації або виконання шкідливого коду.

• CWE-749: Недотримання принципу найменших привілеїв: ця вразливість виникає, коли додаток надає користувачам надмірні дозволу або привілеї, що може збільшити ризик несанкціонованого доступу або витоку даних.

• CWE-862: Відсутній авторизація: ця вразливість виникає, коли додатку не вдається забезпечити належний контроль доступу або дозволу користувача, що дозволяє зловмисникам обійти аутентифікацію і отримати несанкціонований доступ до конфіденційних даних або функцій.

• CWE-863: Неправильна авторизація: ця вразливість виникає, коли додаток неправильно застосовує засоби контролю доступу або дозволу користувача, дозволяючи зловмисникам виконувати дії, які повинні бути обмежені.

• CWE-935: Неправильна перевірка криптографічного підписи: ця вразливість виникає, коли додаток неправильно перевіряє цифрові підписи, дозволяючи зловмисникам видавати себе за законних користувачів або змінювати дані без виявлення.

• CWE-1175: Неналежним чином контрольована модифікація критично важливих елементів безпеки: ця вразливість виникає, коли програма допускає несанкціоноване зміна критично важливих елементів безпеки, таких як засобу контролю доступу або дозволу, що може призвести до несанкціонованого доступу або витоку даних.

Топ-5 CVE, пов'язаних з Недостатнім контролем доступу до API

• CVE-2023-24029 – У Progress WS_FTP Server до версії 8.8 адміністратор хоста може підвищити свої привілеї через адміністративний інтерфейс з-за недостатнього контролю авторизації, застосовуваного до робочих процесів зміни користувачем.

• CVE-2022-30316 – Honeywell Experion PKS Safety Manager 5.02 має недостатню перевірку достовірності даних. Згідно FSCT-2022-0054, існує проблема з оновленням прошивки Honeywell Experion PKS Safety Manager, не пройшов перевірку автентичності. Порушені компоненти характеризуються як: Функціональність оновлення прошивки. Потенційний вплив полягає в маніпуляціях з прошивкою. Honeywell Experion PKS Safety Manager використовує послідовний інтерфейс FTA зв'язку DCOM-232/485 і завантажувач Enea POLO для керування вбудованим програмним забезпеченням. Інженерна робоча станція, на якій встановлено програмне забезпечення Safety Builder, здійснює зв'язок по послідовному каналу або через Ethernet з інтерфейсом DCOM-232/485. Було виявлено, що образи прошивки не мають аутентифікації (у формі підпису прошивки) і покладаються лише на небезпечні контрольні суми для регулярних перевірок цілісності. Образи вбудованого ПЗ не підписані. Зловмисник, який має доступ до послідовного інтерфейсу (або через фізичний доступ, скомпрометований EWS або незахищений шлюз serial-to-ethernet), може використовувати жорстко закодовані облікові дані (див. FSCT-2022-0052) для завантажувача POLO, щоб керувати процесом завантаження і відправляти образи шкідливих прошивок на контролер, що дозволяє маніпулювати прошивкою, виконувати віддалений код і впливати на відмову в обслуговуванні. Пом'якшувальним фактором є те, що для запуску оновлення вбудованого програмного забезпечення необхідно перезавантажити Safety Manager, що зазвичай виконується з допомогою фізичних засобів управління самим Safety Manager. Таким чином, зловмиснику доведеться або діяти до тих пір, поки не відбудеться законна перезавантаження, або, можливо, спробувати примусово перезавантажити комп'ютер за допомогою вторинної уразливості.

• CVE-2022-30315 – Менеджер з безпеки Honeywell Experion PKS (SM та FSC) до 2022-05-06 має недостатню перевірку достовірності даних. Згідно FSCT-2022-0053, у Honeywell Experion PKS Safety Manager існує проблема з недостатнім контролем логічної безпеки. Порушені компоненти характеризуються як: Honeywell FSC runtime (FSC-CPU, QPP), Honeywell Safety Builder. Потенційний вплив таке: Віддалене виконання коду, Відмова в обслуговуванні. Сімейство контролерів безпеки Honeywell Experion PKS Safety Manager використовує протокол Safety Builder, який не пройшов перевірку достовірності (FSCT-2022-0051), для інженерних цілей, включаючи завантаження проектів і керуючої логіки в контролер. Логіка управління завантажується в контролер поблочно. Завантажувана логіка складається з коду FLD, скомпільованого у власний машинний код для модуля CPU (який відноситься як до сімейств Safety Manager, так і до FSC). Оскільки ця логіка, очевидно, не проходить криптографічну перевірку автентичності, вона дозволяє зловмисникові, який здатний запустити завантаження логіки, виконати довільний машинний код у модулі центрального процесора контролера в контексті середовища виконання. Хоча дослідники не змогли перевірити це докладно, дослідники вважають, що мікропроцесор, що лежить в основі процесорних модулів FSC та Safety Manager, не здатний забезпечити захист пам'яті або можливості поділу привілеїв, які надали б зловмиснику повний контроль над процесорним модулем. Перевірка справжності логіки управління, завантаженої на контролер, відсутня. Можливо, відсутні можливості захисту пам'яті і поділу привілеїв для середовища виконання. Дослідники підтвердили наявність проблем, що розглядаються в Safety Manager R145.1 і R152.2, але підозрюють, що проблема зачіпає всі контролери FSC і SM і пов'язані з ними версії Safety Builder, незалежно від версії програмного забезпечення або вбудованого ПО. Зловмисник, який може взаємодіяти з контролером Safety Manager по протоколу Safety Builder, може виконувати довільний код без обмежень для модуля центрального процесора, що дозволяє таємно маніпулювати операціями управління і впроваджувати можливості, аналогічні шкідливій програмі TRITON (MITRE ATT & CK ID software S1009). Пом'якшувальним фактором у відношенні деяких, але не всіх перерахованих вище функцій є те, що для них вимагається, щоб фізичний ключовий перемикач Safety Manager перебував у правильному положенні.

• CVE-2022-27673 – Недостатній контроль доступу в додатку AMD Link для Android потенційно може призвести до розкриття інформації.

• CVE-2021-35534 – Вразливість недостатнього контролю безпеки у внутрішньому механізмі доступу до бази даних Hitachi Energy Relion 670/650/SAM600-IO, Relion 650, GMS600, PWC600 дозволяє зловмисникові, який успішно скористався цією уразливістю, з-за якої продукт недостатньо обмежує доступ до внутрішніх таблиць бази даних, може дозволити будь-якому користувачеві з обліковими даними обійти засоби контролю безпеки, які застосовуються продуктом. Отже, експлуатація може призвести до несанкціонованих змін даних / вбудованого програмного забезпечення та / або до постійного відключення продукту. Ця проблема зачіпає: Hitachi Energy Relion 670 Series 2.0 всі редакції; 2.2.2 всі редакції; 2.2.3 версії до 2.2.3.5. Hitachi Energy Relion 670/650 Series 2.1 всі редакції. 2.2.0 всі редакції; 2.2.4 всі редакції; Hitachi Energy Relion 670/650/SAM600-IO 2.2.1 всі редакції; 2.2.5 версії до 2.2.5.2. Hitachi Energy Relion 650 1.0 всі редакції. 1.1 всі редакції; всі редакції 1.2; 1.3 версії до 1.3.0.8; Hitachi Energy GMS600 1.3.0; 1.3.0.1; 1.2.0. Hitachi Energy PWC600 версії 1.0.1 1.0.1.4 і попередніх версій; 1.1.0 версії 1.1.0.1 і попередніх версій.

Недостатній контроль доступу до API подвиги

  • Крадіжка ключа API або сертифіката: Зловмисник може вкрасти ключ API або токен шляхом перехоплення мережевого трафіку, примусового використання облікових даних або використання уразливості, яка допускає несанкціонований доступ до токена. Отримавши ключ або токен, зловмисник може використовувати його для виконання несанкціонованих дій або доступу до конфіденційних даних.

  • Підвищення привілеїв: Зловмисник може підвищити свої привілеї, скориставшись вразливістю, яка дозволяє йому обходити засоби контролю доступу або видавати себе за законного користувача. Це може дозволити зловмиснику отримати доступ до конфіденційних даних або виконати дії, які повинні бути обмежені.

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

  • Маніпулювання параметрами API: Зловмисник може маніпулювати параметрами API для виконання дій, які повинні бути обмежені, таких як доступ до конфіденційних даних або виконання несанкціонованих транзакцій.

  • Перехоплення сеансу: Зловмисник може перехопити дійсний сеанс користувача, викравши токени сеансу або скориставшись вразливістю, яка дозволяє йому видавати себе за законного користувача. Це може дозволити зловмиснику виконувати дії від імені законного користувача, включаючи доступ до конфіденційних даних або виконання несанкціонованих транзакцій.

  • Байпас, що обмежує швидкість API: Зловмисник може обійти елементи управління, що обмежують швидкість, скориставшись вразливістю, яка дозволяє йому відправляти запити з більш високою швидкістю, ніж передбачалося. Це може викликати проблеми з відмовою в обслуговуванні (DoS) або інші проблеми з продуктивністю.

  • Підробка міжсайтових запитів (CSRF): Зловмисник може обманом змусити користувача виконувати дії з API без його відома або згоди, використовуючи уразливість, яка дозволяє йому впроваджувати шкідливий код в законний запит. Це може призвести до несанкціонованого доступу до даних або виконання транзакції.

  • Перерахування кінцевих точок API: Зловмисник може перерахувати кінцеві точки API, використовуючи методи грубої сили чи використовуючи уразливість, яка дозволяє їм отримувати метадані. Це може дозволити зловмиснику ідентифікувати конфіденційні функції або дані API.

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

Налаштування середовища тестування: створіть середовище тестування, що імітує реальний сценарій, включаючи кінцеві точки API, ролі користувачів і елементи управління доступом до даних. Використовуйте фіктивні дані або конфіденційні дані, щоб уникнути будь-якого потенційного впливу на діючі системи.

Виконайте вправу з моделювання загроз: визначити потенційні вектори атак і визначити пріоритетність областей для тестування.

Кінцеві точки тестового API: щоб переконатися, що засоби контролю доступу реалізовані правильно і що тільки авторизовані користувачі можуть отримувати доступ до конфіденційних даних або виконувати дії.

Протестуйте ролі користувачів і дозволу: щоб гарантувати, що кожна роль може отримати доступ тільки до тих даних і функцій, які їй дозволено використовувати.

Протестуйте механізми аутентифікації і авторизації: щоб гарантувати, що вони реалізовані надійно і не можуть бути обійдені.

Перевірка на наявність вразливостей в управлінні сеансами: наприклад, перехоплення сеансу або фіксація сеансу, щоб забезпечити безпечне управління сеансами.

Тест на байпас, що обмежує швидкість API: щоб гарантувати, що API захищений від DoS-атак і інших проблем з продуктивністю.

Тест на маніпулювання параметрами API: уразливості, які гарантують, що API приймає тільки допустимі параметри і значення.

Тест на підробку міжсайтових запитів (CSRF): щоб гарантувати, що шкідливі запити не можуть бути виконані через API.

Використовуйте інструменти: наприклад, Burp Suite або OWASP ZAP, для надання допомоги в тестуванні і виявлення поширених вразливостей.

Будьте в курсі кращих практик: будьте в курсі останніх передових практик і рекомендацій щодо забезпечення безпеки API, таких як опубліковані OWASP.

Для вивчення Недостатній контроль доступу до API

Проект безпеки OWASP API: Проект OWASP API Security Project містить рекомендації та найкращі практики по забезпеченню безпеки API, включаючи міркування по контролю доступу.

NIST SP 800-53: Документ NIST SP 800-53 містить рекомендації щодо забезпечення безпеки федеральних інформаційних систем і включає розділ про контроль доступу до API.

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

Керівництво по тестуванню безпеки API: Керівництво по тестуванню безпеки API містить рекомендації з тестування безпеки API, включаючи тестування на наявність вразливостей в системі управління доступом.

Підхід до забезпечення безпеки API: Книга "The API Security Mindset" дає цілісне уявлення про безпеку API і включає главу, присвячену контролю доступу.

Онлайн-курси та навчальні посібники: Такі платформи, як Udemy, Coursera і Pluralsight, пропонують онлайн-курси та навчальні посібники з безпеки API, які включають в себе опис вразливостей в системі контролю доступу.

Форуми та обговорення спільноти: Участь у форумах і дискусіях співтовариства, таких як спільнота OWASP або r / netsec Reddit, може дати уявлення про уразливість в системі контролю доступу в реальному світі і про те, як їх усунути.

Книги з оглядом Недостатнього контролю доступу до API

Підхід до забезпечення безпеки API Ізабель Мауни і Філіп Де Райк: Ця книга охоплює широкий спектр тем безпеки API, включаючи уразливості в керуванні доступом і способи їх усунення.

Безпека API в дії автор: Ніл Медден: Ця книга містить огляд концепцій безпеки API і включає главу про уразливості в управлінні доступом.

Практична безпека веб-API Науман Фахар і Джамал Хан: У цій книзі розглядаються поширені загрози безпеки API, включаючи уразливості в управлінні доступом, та пропонуються практичні рішення для захисту API.

Захист веб-служб RESTful з допомогою OAuth 2.0 Прабат Сиривардена: Ця книга присвячена використанню OAuth 2.0 для захисту API, включаючи усунення вразливостей в системі управління доступом.

API: Керівництво по стратегії Деніел Джейкобсон, Грег Брейл і Ден Вудс: Ця книга надає високорівневий огляд API і включає розділ про безпеку, включаючи контроль доступу.

Дизайн веб-API: створення інтерфейсів, які подобаються розробникам Брайан Маллой: У цій книзі розглядаються кращі практики розробки API, включаючи міркування безпеки, такі як контроль доступу.

Управління API: Керівництво архітектора з розробки та управління API для вашої організації автор: Браджеш Де: У цій книзі розглядаються теми управління API, включаючи міркування безпеки, такі як контроль доступу.

Кулінарна книга OAuth 2.0 автор: Адольфо Елой Насіменто: У цій книзі наведені рецепти впровадження OAuth 2.0 для забезпечення безпеки API, включаючи усунення вразливостей в системі управління доступом.

RESTful API Design: Кращі практики в розробці API за допомогою REST автор Марк Мас: У цій книзі розглядаються кращі практики розробки RESTful API, включаючи міркування безпеки, такі як контроль доступу.

Професіонал ASP.NET Безпека веб-API: Забезпечення ASP.NET Веб - API Бадринарайанан Лакшмирагхаван: Ця книга містить практичне керівництво по забезпеченню ASP.NET Веб-API, включаючи усунення вразливостей в системі контролю доступу.

Список корисних навантажень Недостатній контроль доступу до API

Корисні навантаження SQL-ін'єкцій: Вони можуть бути використані для перевірки того, вразлива чи кінцева точка API для атак з використанням SQL-ін'єкцій. Деякі приклади включають:

				
					' OR 1=1 --
%27%20OR%20%271%27=%271
UNION ALL SELECT NULL,NULL,NULL-- 

				
			

 

Корисні навантаження для впровадження XPath: Вони можуть бути використані для перевірки того, вразлива чи кінцева точка API для атак з використанням XPath. Деякі приклади включають:

				
					' or 1=1 or ''='
' or 1=1 or ''=''
"/users/user[id='1' or 1=1]"

				
			

 

Корисне навантаження при маніпулюванні параметрами: Вони можуть бути використані для перевірки того, вразлива чи кінцева точка API для атак з маніпулюванням параметрами. Деякі приклади включають:

				
					?id=1
?id=1' OR '1'='1
?id=1%20OR%201=1

				
			

 

Корисне навантаження при обході каталогів: Вони можуть бути використані для перевірки того, вразлива чи кінцева точка API для атак з обходом каталогу. Деякі приклади включають:

				
					../../../../../../etc/passwd
..\..\..\..\..\..\..\..\windows\system32\drivers\etc\hosts
../../../../../boot.ini

				
			

 

Корисні навантаження в обхід аутентифікації: Вони можуть бути використані для перевірки того, вразлива чи кінцева точка API для атак в обхід аутентифікації. Деякі приклади включають:

				
					admin' --
'or 1=1 --
'or 1=1 /* 

				
			

Як бути захищеним від недостатнього контролю доступу до API

  1. Вбудуйте надійні механізми аутентификації, такі як багатофакторна аутентифікація, надійні паролі і політики паролів.

  2. Переконайтеся, що ваші API захищені належними механізмами контролю доступу, такими як управління доступом (RBAC), управління доступом на основі атрибутів (ABAC) і обов'язкове управління доступом (MAC).

  3. Вбудуйте механізми шифрування для захисту даних при передачі і в стані спокою. Це включає в себе використання безпечних протоколів зв'язку, таких як HTTPS, і шифрування конфіденційних даних з використанням надійних алгоритмів шифрування.

  4. Регулярно оцінюйте безпеку своїх API-інтерфейсів з допомогою таких інструментів, як сканери вразливостей, тестування на проникнення та огляди коду.

  5. Будьте в курсі останніх загроз безпеці та вразливостей, пов'язаних з API, і переконайтеся, що ви застосовуєте виправлення й оновлення, як тільки вони стають доступними.

  6. Слідкуйте за активністю вашого API на предмет будь-якого підозрілого або аномального поведінки, такого як незвичайні схеми трафіку, надмірні запити або спроби несанкціонованого доступу.

  7. Вбудуйте механізми обмеження швидкості для запобігання зловживань і зниження ризику атак, таких як атаки методом перебору і атаки типу "відмова в обслуговуванні" (DoS).

Висновок

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

Щоб знизити цей ризик, організаціям слід впровадити надійні механізми ідентифікації, механізми контролю доступу та механізми шифрування для захисту своїх API. Регулярні оцінки безпеки, перебування в курсі останніх загроз безпеки і моніторинг активності API також можуть допомогти виявляти і запобігати атакам.

Інші Послуги

Готові до безпеки?

зв'язатися з нами