Rampart відкрили для локального видалення персональних даних із повідомлень
Rampart перевіряє повідомлення в браузері та замінює розпізнані персональні дані мітками до надсилання в чат-сервіс. Проєкт випущено з відкритим вихідним кодом на стадії alpha.
9 жовтня розробники Rampart оголосили про відкриття вихідного коду інструмента для виявлення та маскування персональних даних у браузері. Як зазначено в анонсі, Rampart перевіряє повідомлення перед надсиланням у чат і замінює знайдені дані мітками, не звертаючись до сервера для самої перевірки. Проєкт перебуває на стадії alpha: це перший рубіж захисту, який може пропустити персональні дані.
Як Rampart обробляє повідомлення
Інструмент використовує два способи пошуку. Регулярні вирази разом із перевіркою збігів обробляють дані з передбачуваним форматом: номери соціального страхування, банківських карток і рахунків, телефони, електронні адреси, IP-адреси та номери документів. Для таких даних правила дають змогу шукати конкретні послідовності символів.
Невелика мовна модель MiniLM доповнює правила там, де важливий контекст речення. Її завдання — знаходити, зокрема, імена та назви вулиць, які неможливо надійно описати одним шаблоном. Виявлені фрагменти замінюються позначеннями категорій. У прикладі з анонсу ім’я та прізвище отримують окремі мітки, а номер соціального страхування замінюється на [SSN]. Водночас сума щомісячного доходу залишається в запиті.
Перевірка відбувається між введенням тексту та його надсиланням. Відповідності між мітками й вихідними значеннями тимчасово зберігаються в браузері, щоб їх можна було відновити у відповіді чат-сервісу. У прикладі коду застосунок спочатку викликає protect для повідомлення, надсилає оброблений текст моделі, а потім застосовує reveal до відповіді. Отже, виявлені фільтром значення не потрібно передавати сервісу разом із запитом.
Автори пояснюють локальний підхід тим, що за віддаленого очищення вихідне повідомлення все одно доводиться надсилати на сервер. Ще одна перешкода, яку вони називають, — розмір деяких моделей для пошуку персональних даних: завантаження великого файлу в браузер може тривати довго за слабкого з’єднання. Rampart пропонують як компонент, що виконує перевірку безпосередньо на пристрої користувача.
Що випущено та які є обмеження
Окрім вихідного коду, автори пропонують модель на Hugging Face, бібліотеку NPM і технічний документ. В анонсі показано підключення @nationaldesignstudio/rampart з обробкою запиту та подальшим відновленням значень у відповіді. Цей приклад описує передбачений порядок роботи, а не всі можливі варіанти інтеграції.
Заявлено підтримку семи мов із латинською писемністю: англійської, іспанської, французької, німецької, італійської, португальської та нідерландської. Для навчання використовували OpenPII 1.5M від AI4Privacy та синтетичні дані, що доповнюють 17 типів сутностей прикладами, схожими на повідомлення в чаті. Готовий конвеєр обробки оцінювали на відкладеній вибірці з 30 000 записів OpenPII сімома підтримуваними мовами. Числових результатів цієї перевірки в наведеному тексті немає.
Автори називають Rampart першим кроком у ширшій роботі з персональними даними в AI-чатах. Якщо фільтр не розпізнає фрагмент або дані не належать до категорій, які він виявляє, вони залишаться в тексті. Дату виходу зі стадії alpha в анонсі не зазначено.
Що це означає для вебкоманд
Для сайту з чатом важливо, коли саме відбувається перевірка: Rampart обробляє повідомлення до того, як воно потрапить до зовнішнього сервісу. Якщо персональні дані розпізнано, назовні можна надіслати текст із мітками замість вихідних значень. Це змінює шлях виявлених даних, але не знімає питання про те, які запити сайт узагалі має передавати чат-сервісу.
Оцінюючи інтеграцію, розробнику варто пройти весь ланцюжок на прикладах свого проєкту: який текст виходить після protect, що саме надсилається моделі та в який момент інтерфейс викликає reveal. Потрібно також перевірити, що відбувається з повідомленнями, у яких дані записано незвичним способом. Для власника сайту й маркетингової команди це підстава точніше описувати роботу чату відвідувачам: наявність фільтра не рівнозначна обіцянці, що будь-яка введена інформація залишиться на пристрої.
Моя думка
Я б розглядав Rampart як додатковий захисний шар перед надсиланням запиту, а не як заміну перевірці всієї інтеграції. Локальна обробка розв’язує конкретне завдання: для пошуку даних не потрібно передавати вихідний текст окремому сервісу. Але перед впровадженням мені потрібні тести на реальних формулюваннях користувачів і розуміння того, які фрагменти залишаються в повідомленні після обробки.
Для невеликого сайту я б окремо підрахував вартість підключення та супроводу. Якщо команда не перевіряє результат маскування й не контролює шлях тексту до чат-сервісу, саме по собі встановлення бібліотеки дає мало підстав змінювати підхід до роботи з даними.
Джерела
Звідки новина. Текст — переказ своїми словами, факти — з джерела, думка — автора.
- Rampart: Browser native on-device PII radaction ndstudio.gov
full-stack-розробник e-commerce
Створюю високонавантажені магазини й інтеграції з урахуванням складських запасів та платежів. Перш ніж обирати стек, дивлюся на профіль навантаження й вартість підтримки.
Усі публікації автораСхожі статті
Представлено Proa — Rust-фреймворк із серверним рендерингом і виведенням у різних форматах
На Hacker News представили Proa — вебфреймворк на Rust для серверного рендерингу та виведення компонентів у HTML і Markdown. Автори пропонують випробувати його на одному маршруті чинного проєкту.
Cloudflare відкрила Origin Range Requests для кешування частин великих файлів
Cloudflare представила Origin Range Requests для кешування частин великих файлів. Функція доступна на всіх тарифах, а після переходу R2 показник p99 часу до першого байта скоротився приблизно вдвічі.
Через DNS DebugBear зловмисники підмінили скрипт моніторингу сайтів
Після атаки на інфраструктуру DebugBear зловмисники підмінили скрипт Real User Monitoring. Власникам сайтів, які підключили сервіс для відстеження Core Web Vitals, радять видалити тег і перевірити облікові записи.
Обговорення 4
Давид Сулаквелідзе
Як Rampart обробляє помилкові спрацьовування MiniLM — користувач може переглянути й відновити замінений текст до надсилання повідомлення? Для alpha це важливо, бо маскування імен або назв вулиць без простого способу виправлення може змінити зміст повідомлення.
Нур Віссер
@davit.sul, у наведеному описі не сказано, чи можна переглянути й відновити замінений текст; без такого кроку перед надсиланням маскування імен і вулиць може спотворити зміст, тож для alpha варто показати цей сценарій окремо.
Роман Циммер Автор публікації
У публічному описі alpha простий перегляд і відновлення заміненого тексту не підтверджені, тож я б не вважав це гарантованою можливістю. Для імен і назв вулиць помилкове спрацьовування справді може змінити зміст; перед інтеграцією варто перевірити цей сценарій у UI й заміряти не лише швидкість, а й частоту хибних замін.
Бекзат з Оша
@davit.sul, у короткому описі не бачу деталей про перегляд і відновлення заміненого тексту перед надсиланням — там зазначено лише, що знайдені дані підміняються мітками. Ти натрапив на таку можливість у самому alpha, чи це поки відкрите питання?