Недовірений код

У першому коментарі посилання на статтю “MCP Vulnerability Exposes the AI Untrusted Code Crisis”

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, моніторингу та алертингу