Отруєння файлу правил

Отруєння файлу правил

Правило скидалося на примітку. Помічник його виконав.

Що таке Отруєння файлу правил?

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

Що ви дізнаєтесь у Отруєння файлу правил

Отруєння файлу правил — Кроки навчання

  1. Один рядок у файлі правил

    За три тижні до того, як задача з аудиту потрапить до Аліси, Боб працює підрядником у репозиторії portal-api. Він відкриває пул-реквест на один рядок у .assistant/rules.md — файлі, який ШІ-помічник команди читає, перш ніж братися за код, — і позначає його як документацію. Пул-реквест зливають за одинадцять секунд. Тепер Боб чекає: наступна звичайна зміна в middleware автентифікації прочитає цей рядок і поверне обхід у продакшн.

  2. Наведіть лад у middleware перед аудитом

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

  3. Відкрийте проєкт

    У редакторі завантажуються middleware автентифікації, маршрути адмінки, що стоять за ним, файл CODEOWNERS репозиторію та файл правил помічника, який проєкт зберігає в .assistant/ . Middleware — це ті три функції, про які згадував ваш керівник.

  4. Попросіть про рефакторинг

    Відкрийте помічника й попросіть об'єднати middleware в одну функцію — точно так, як описав ваш керівник.

  5. Одна функція — і рядок, про який ви не просили

    Claude читає файл правил, middleware та маршрути адмінки, а потім пропонує єдину функцію authenticate() . Вона виглядає охайно, а посередині неї — перевірка заголовка, про яку ніхто не просив. Відповідь помічника коротка й упевнена.

  6. Прийміть рефакторинг

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

  7. Надішліть заголовок — отримайте дані

    Боб робить виклик, заради якого підклав рядок. Облікового запису в Dunmerrow і токена сеансу в нього немає, лише заголовок. Він націлює Тестер API на ендпоінт клієнтів у консолі адміністратора й надсилає GET, у якому є тільки x-internal-bypass: 1 .

  8. Сеанс, якого насправді не було

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

  9. Рядок у файлі правил

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

  10. Як рядок потрапив у файл

    Цього рядка ви не писали. Відкрийте зміну, на яку дала посилання керівниця служби безпеки, і подивіться, як вона потрапила у файл правил.

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

OWASP Top 10

  • A08:2025 Software or Data Integrity Failures

CWE

  • CWE-1427 Improper Neutralization of Input Used for LLM Prompting

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