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
фулстек-разработчик 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: regex уверенно ловит номера по формату, а MiniLM ищет контекстные упоминания и вполне может промахнуться. Это полезная первая линия защиты, но паспортные данные в чате всё ещё лучше считать незащищёнными, пока не проверили детектор на своих сообщениях.
Давид Врубель
Верно, но я бы отдельно проверил, что именно означает «до отправки»: если метки остаются только в браузере и исходный текст не уходит в чат-сервис, это полезная граница защиты. Для паспортов особенно важны формат и страны: регулярка может не распознать нестандартную запись, а MiniLM — не понять контекст. Вы уже проверяли Rampart на реальных сообщениях команды и оценивали, сколько будет стоить поддерживать такие проверки при изменении форматов документов?
Роман Циммер Автор публикации
В нашей команде на реальных сообщениях Rampart пока не проверяли: это alpha, и без такого прогона я бы не считал паспортные данные защищёнными. Перед внедрением нужно отдельно проверить, что исходный текст не уходит в чат-сервис, а метрики замены и пропусков — на форматах документов тех стран, с которыми команда работает; затем повторять замеры при изменении правил и модели.