Неперевірене виправлення від ШІ

Неперевірене виправлення від ШІ

Помічник сказав, що все безпечно. Це було не так.

Що таке Неперевірене виправлення від ШІ?

ШІ-помічник для коду запропонував виправлення SQL-ін'єкції — список заборонених шаблонів на регулярних виразах — і заявив, що ендпоінт тепер безпечний. Очевидний пейлоад повернув 400, тож проблему закрили. Протягом тижня варіант, розбитий коментарями, пройшов повз фільтр і витягнув усю таблицю клієнтів. Ви приймете впевнені зміни помічника, побачите обхід у «Тестері API», замінете список заборонених параметризованим запитом і доведете виправлення, повторивши точну атаку. Урок: перевіряйте виправлення безпеки атакою, а не упевненістю помічника.

Що ви дізнаєтесь у Неперевірене виправлення від ШІ

Неперевірене виправлення від ШІ — Кроки навчання

  1. Проблема, виявлена сканером

    Статичний аналіз виявив SQL-ін'єкцію в ендпоінті пошуку клієнтів. Проблема потрапляє до черги Аліси в Jotvane — трекері задач команди.

  2. Вразливий запит

    Аліса відкриває файл, на який вказує сканер. Значення для пошуку потрапляє безпосередньо в SQL-рядок.

  3. Де все йде не так

    Значення q вклеюється в текст запиту, тож усе, що надішле клієнт, стає частиною SQL.

  4. Попросіть помічника виправити

    Аліса відкриває помічника й просить його виправити ін'єкцію.

  5. Упевнене виправлення

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

  6. Прийміть виправлення

    Помічник Claude запропонував зміну й стверджує, що вона безпечна. Аліса читає, що саме він зробив, і приймає зміни. Фільтр потрапляє в код, а на полі ліворуч від коду нові рядки позначено фіолетовим пунктиром: їх написав Claude, людина ще не переглядала. Смуга авторства показує стан файлу: кілька рядків написав помічник, і жоден не пройшов рев'ю. Упевненість помічника — це не рев'ю і не тест.

  7. Очевидний пейлоад

    Аліса запускає проти ендпоінта класичну ін'єкцію. Фільтр відхиляє її з кодом 400. Схоже, усе виправлено.

  8. Закрийте проблему

    Очевидний пейлоад відбито, тож проблема здається закритою. Аліса записує результат у коментарі й вирішує її. Більше нічого не пробували.

  9. Повз фільтр

    Боб перевіряє той самий ендпоінт. Список заборонених шукає фіксовані шаблони, тому Боб розбиває шаблон вбудованими коментарями. База даних сприймає коментарі як пробіли й усе одно виконує ін'єкцію.

  10. Уся таблиця

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

Охоплення стандартів безпеки

OWASP Top 10

  • A05:2025 Injection

CWE

  • CWE-184 Incomplete List of Disallowed Inputs
  • CWE-89 Improper Neutralization of Special Elements used in an SQL Command

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