Неналежне управління запасами
Стара версія API, яку ви забули, все ще відповідає.
Що таке Неналежне управління запасами?
Контроль безпеки охоплює лише ті кінцеві точки, які, як вам відомо, працюють. Старі версії API, незадокументовані кінцеві точки та забуті хости залишаються розгорнутими за межами цієї картини, досі обслуговуючи незахищений код, який вони завжди робили. Ви отримаєте 401 із поточної версії, зміните один сегмент URL-адреси з v2 на v1 і отримаєте 200 з іменем клієнта, електронною поштою та домашньою адресою, а потім перенесете ідентифікатори облікових записів у масовий список. Виправлення скасовує стару версію, тому кожен шлях під нею повертає 410 Gone. Припинення підтримки в документах не означає вихід на пенсію.
Що ви дізнаєтесь у Неналежне управління запасами
- Визнайте неправильне керування запасами: старі, незадокументовані або неробочі версії API та хости, які залишаються запущеними та доступними, поза межами контролю, які забезпечує поточна версія
- Зрозумійте, що новий елемент керування (шлюз автентифікації, перевірка) охоплює лише встановлені за ним версії, тому старіша версія, що залишилася у виробництві, надає код попереднього керування будь-кому
- Подивіться, як зміна одного сегмента URL-адреси з поточної версії на застарілу призводить до забутої збірки та як неавтентифікована кінцева точка перетворюється на масовий доступ до даних через просте перерахування
- Відрізняйте це від порушеної авторизації на рівні об’єкта (відсутня перевірка права власності на запис у автентифікованій кінцевій точці) і від надмірного доступу до даних (надмірне повернення полів); тут вся версія працює без автентифікації, оскільки вона ніколи не була вилучена
- Застосуйте виправлення: вилучіть непідтримувані версії, щоб вони повернули 410 Gone і вийшли з виробництва, і зберігайте інвентаризацію кожної розгорнутої версії, середовища та хоста, щоб нічого не залишилося без уваги.
Неналежне управління запасами — Кроки навчання
-
Стара версія, все ще в списку
Emberline — це програма для домашнього сонячного й енергетичного використання: клієнти пов’язують свої панелі й батарею, а програма зчитує їхній обліковий запис із API Emberline. Сьогодні Боб націлений на Емберлайн. У нього немає облікового запису та токена; він просто хоче отримати список клієнтів і місце їхнього проживання, щоб далі продавати. Він почав із загальнодоступних документів для розробників Emberline, щоб вивчити API.
-
Застаріло, не зникло
У документах описано дві версії API. Боб читає, як кожна з них позначена, і одна етикетка привертає його увагу.
-
Запитайте поточну версію
Спочатку Боб називає поточну версію так, як описано в документах: він запитує один обліковий запис за його ідентифікатором, використовуючи приклад ідентифікатора з посилання. У нього немає маркера, тому це неавтентифікований випадок. Якщо шлюз виконує свою роботу, він повинен йому відмовити.
-
Шлюз відмовляє
Поточна версія зробила саме те, що мала.
-
Змініть один сегмент
Боб надсилає той самий запит, але без маркера, і змінює лише одне: версію в URL-адресі з v2 на v1 , застарілу збірку. Все інше ідентично. Якщо стара версія справді зникла, це не повинно досягти нічого.
-
Відповідає забута версія
Той самий запит, який шлюз щойно відхилив, повернувся з даними.
-
Пройдіться по рахунках
Один запис — попередження. Оскільки v1 не вимагає маркерів, ніщо не заважає Бобу передавати ідентифікатори облікових записів. Він зберігає версію на v1 і змінює ідентифікатор на наступного клієнта.
-
Кожен клієнт, у масштабі
Інший ідентифікатор, інший реальний клієнт.
-
Перевірка знань
Ви щойно спостерігали, як зловмисник без облікового запису читає записи клієнтів, змінюючи версію в URL-адресі. Зафіксуйте чому.
-
Тривога приземляється
Ви володієте API-шлюзом Emberline і життєвим циклом кожної версії API, що стоїть за ним. Протягом ночі моніторинг помітив тисячі неавтентифікованих читань на старій кінцевій точці облікових записів /v1 з однієї адреси, послідовно переміщаючи ідентифікатори облікових записів. Відділ безпеки надіслав вам електронний лист.
Охоплення стандартів безпеки
OWASP API Top 10
- API9:2023 Improper Inventory Management
CWE
- CWE-1059 Insufficient Technical Documentation
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security