https://thenewstack.io/mcp-vulnerability-exposes-the-ai-untrusted-code-crisis/
Незрозуміло, чому це розглядається як нова проблема. І до появи LLM код отримував схвалення не тому, що його написала людина, а після проходження тестів, сканерів, рев’ю, ручних перевірок QA та всього іншого, що вдалося «впихнути» в CI і SDLC. Були винятки для окремих людей і окремих проєктів, але це були саме винятки.
І те, що справді змінилося зараз — це суттєво збільшений обсяг коду на одного програміста і візуальна адекватність коду, яка притуплює пильність. І ці фактори тільки зростатимуть: створювати код буде все простіше.
І саме тому QA як частина процесу розробки стає дедалі важливішим.
Напрямів розв’язання проблеми я бачу кілька, але жоден з них не є простим і універсальним:
- Вибудовування чітких процесів схвалення коду: навіть якщо код на перший погляд виглядає адекватно, він усе одно може містити будь-які помилки
- Поліпшення документації: чим більше контексту матимуть LLM, тим менша ймовірність помилок
- Навчання Context Engineering усіх розробників: чим краще розробники розумітимуть, як будувати контекст для LLM, тим менша ймовірність помилок
- Пояснення їм усіх ризиків і їхньої відповідальності: розробники повинні розуміти, що вони несуть відповідальність за код, який вони комітять, незалежно від того, хто його написав
- Автоматизація перевірок коду старими методами: тести всіх рівнів, лінтери, статичні аналізатори, dead-code-сканери (це прям біда LLM), пошук заглушок
- Залучення QA на ранніх етапах SDLC: це дасть поліпшення специфікацій, можливість побудувати QA-тести, доступні розробникам, і так далі
- Використання LLM для перевірки коду
- Впровадження Canary Deployment та/або Ring-based Deployment щоб скоротити очікувані втрати від помилок
- Впровадження Feature Flag для вимкнення нових фіч для критичних проєктів
- Поліпшення Observability, моніторингу та алертингу