Штучний інтелект

Як Figma використовує ШІ-агентів для посилення безпеки коду

R

Rohan Sharma, Liam Buchan, Dave Martin

5 хв читання

Концептуальна ілюстрація ШІ-агента, що аналізує код для виявлення вразливостей.

Figma активно використовує ШІ-агентів для підвищення безпеки своєї кодової бази, зосереджуючись на запобіганні, виявленні та виправленні вразливостей. Цей підхід охоплює три ключові етапи: генерацію коду, перевірку запитів на злиття (pull request review) та аудит історичного коду.

Три етапи застосування агентів

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

Перевірка запитів на злиття (Pull Request Review)

Система перевірки запитів на злиття була розроблена першою, оскільки її цикл покращення є найшвидшим. Вона має три основні властивості:

  • Універсальність: Кожен запит на злиття проходить через цю систему.
  • Самообслуговування: Рецензент коментує запит, а автор безпосередньо відповідає на виявлену проблему.
  • Інструментованість: Точність (precision) та повнота (recall) мають власні сигнали для вимірювання.

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

Наразі Figma використовує дві моделі: Claude Code з Opus 4.8 (з максимально високим рівнем зусиль) та Codex з GPT-5.6 Sol (з високим рівнем зусиль), оскільки вони виявляють різні помилки. Якщо будь-яка з моделей виявляє проблему, вона виводиться назовні. Вартість перевірки одного запиту на злиття становить близько $0.50, що багаторазово окупається завдяки уникненню виплат за баг-баунті та потенційного впливу на користувачів.

Серед виявлених вразливостей були як складні багатоетапні ланцюжки (наприклад, витік конструктора Function з ін'єктованого об'єкта пісочниці, що відкривало шлях до виконання коду в настільному клієнті), так і більш звичайні, але все ще важливі для виправлення (наприклад, кінцева точка, яка повертала рахунок за ідентифікатором, наданим користувачем, без перевірки належності рахунку до організації користувача).

Еволюція системи та досягнення точності

У серпні 2025 року, коли Anthropic випустив Claude Code Security Reviewer, Figma впровадила його в тіньовому режимі. Початкова точність становила лише близько 15% (4 з 27 знахідок були дійсними). Це підкреслило проблему довіри: розробники перестають довіряти інструментам, які генерують багато низькоякісних знахідок. Тому пріоритетом стало досягнення точності.

Цільовий показник точності у 70% був досягнутий шляхом повторного запуску рецензента на попередніх восьми тижнях запитів на злиття та ручного маркування хибних спрацьовувань командою безпеки. На основі цього була написана політика для агента, яка складається з прецедентів замість широких правил. Ця робота призвела до створення повної моделі загроз Figma, яка стала цінним артефактом для всіх етапів безпеки.

Протягом місяця після запуску, ітерації над політикою підвищили точність до 80%. Після цього були увімкнені коментарі для розробників, і перевірка стала обов'язковою умовою для злиття запитів. Систему було переведено на виробничу інфраструктуру, додано відмовостійкість, політику повторних спроб та телеметрію. До грудня 2025 року Figma переробила систему, перемістивши рецензента в сервіс TypeScript, видаливши більшу частину початкового промпта та додавши арбітра для перегляду відхилених знахідок, що підвищило повноту на 30%.

Метрики: Точність, повнота та швидкість виправлення

Figma вимірює три ключові метрики:

  • Повнота (Recall): Вимірюється за допомогою загального фреймворку оцінки, що використовує корпус з 66 реальних вразливостей, які раніше оминули людський огляд та статичний аналіз. Ці вразливості походять з програми баг-баунті та внутрішніх інцидентів. Політика Figma значно підвищує повноту: з 44.4% для сирої моделі до 64.2% з політикою.
  • Точність (Precision): Вимірюється в продакшені за допомогою зворотного зв'язку від розробників. Автор запиту на злиття робить першу оцінку знахідки, а окремий агент періодично перевіряє спірні випадки, передаючи їх команді безпеки.
  • Швидкість виправлення (Fix Rates): Відстежується до злиття. Другий агент позначає кожну знахідку як виправлену, спірну, підтверджену, не вирішену або очікує на розгляд. Покращення цієї метрики досягається завдяки зміні формулювання коментарів та обмеженню формату виводу агента.

Самоудосконалення агентів

Система має два типи циклів самоудосконалення:

  • Для повноти (Recall): Коли дослідник баг-баунті знаходить вразливість, агент обробляє звіт, пише виправлення, відкриває запит на злиття, а потім відстежує вразливість до її кореневого коміту та додає його до корпусу оцінки. Якщо рецензент не виявляє помилку, другий агент аналізує причину пропуску та оновлює політику, щоб запобігти подібним помилкам у майбутньому.
  • Для точності (Precision): Якщо автор запиту на злиття відхиляє коментар як хибне спрацьовування, агент оновлює політику, щоб цей клас хибних спрацьовувань більше не з'являвся.

Аудит коду

Аудит коду працює на тій самій політиці, що й перевірка запитів на злиття, але застосовується до всього монорепозиторію. Це дозволяє виявляти вразливості в історичному коді та враховувати еволюцію моделі загроз. На першому запуску було виявлено понад сто прихованих вразливостей, включаючи дві критичні, пропущені традиційними SAST-інструментами.

Генерація безпечного коду

Для допомоги агентам у генерації безпечного коду використовуються хуки. Вони надають агентам вказівки в момент торкання ризикованих елементів (наприклад, додавання маршруту, зміна політики дозволів). Це дозволило знизити кількість деяких класів помилок (наприклад, безпека логування) приблизно на 50%.

Ключові висновки

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

Що це означає для розробників

Для розробників Figma це означає, що кожен запит на злиття тепер вимагає проходження перевірки агентом перед злиттям. Автори коду безпосередньо взаємодіють зі знахідками агентів у коментарях до PR, а їхній зворотний зв'язок (оцінки «палець вгору/вниз») використовується для постійного вдосконалення політики агентів. Крім того, агенти можуть направляти розробників до використання безпечних практик, що виходить за рамки простого виявлення вразливостей.

Ключові факти

  • Figma використовує ШІ-агентів для запобігання, виявлення та виправлення вразливостей на трьох етапах: генерація коду, перевірка запитів на злиття (PR review) та аудит історичного коду.

  • Система PR-рев'ю була розроблена першою, оскільки має швидший цикл покращення, є універсальною, самообслуговуваною та інструментованою для вимірювання точності та повноти.

  • Figma використовує моделі Claude Code з Opus 4.8 та Codex з GPT-5.6 Sol для перевірки PR, оскільки вони виявляють різні типи помилок.

  • Початкова точність системи становила близько 15%, але завдяки ітераціям та розробці політики, що базується на прецедентах, вона досягла 80%.

  • Розробка політики для агентів призвела до створення повної моделі загроз Figma, яка є основою для всіх трьох етапів безпеки.

Джерела

Штучний інтелектКібербезпекаРозробка ПЗ

Попередні статті

Контрольна кімната вінтажної радіостанції з мікшерним пультом та плейлистом пісень у стилі яхт-рок.
24 липня 2026МузикаJonathan Eig

10 правил програмування яхт-рок радіостанції: Іронічний погляд на жанр

Дізнайтеся про 10 несподіваних правил для створення ідеального плейлиста в стилі яхт-рок, від вибору інструментів до іронічного ставлення до самого жанру, засновані на досвіді прослуховування.

Наступні статті

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

WISER та E.ON просувають прогнозування попиту на енергію за допомогою квантового машинного навчання

WISER та E.ON завершили дослідження гібридних квантових моделей машинного навчання для прогнозування попиту на електроенергію, показавши покращення точності на реальному квантовому обладнанні.

Інтер'єр сучасної дослідницької лабораторії ШІ в аспірантурі ШІ імені Кім Джечула при KAIST у Сеулі з серверами та дослідником біля монітора.
24 липня 2026Технології

NVIDIA та KAIST відкривають спільну лабораторію ШІ для розвитку агентних моделей у Кореї

NVIDIA та Корейський передовий інститут науки і технологій (KAIST) запускають спільну дослідницьку лабораторію ШІ в Сеулі, зосереджену на агентних моделях для корейських галузей та мови.