![image](https://habrastorage.org/webt/nk/tb/6o/nktb6oqteqjjuzi9mw8vzhbx_o8.png)
Всем привет! Сегодня мы поговорим о том, как лингвистика интегрирована в работу DLP-системы и как она помогает нам оберегать важные данные от атак злоумышленников.
В последнее время существенно выросла потребность компаний в защите данных от утечек конфиденциальной информации. Переход сотрудников на удаленный режим работы привел к существенному росту кибератак и преступлений в сфере информационной безопасности: согласно отчетам аналитиков, в первой трети 2020 г. количество утечек конфиденциальной информации из российских компаний увеличилось на 38%, и данная тенденция продолжает развиваться.
Как правило, под ударом находятся юридическая документация, финансовые бумаги, личные данные сотрудников и клиентов и т.п. Чтобы уберечь конфиденциальные данные от злоумышленников, компании устанавливают DLP (Data Loss Prevention) — системы для предотвращения утечек информации.
Технология лингвистического анализа глубоко интегрирована в работу многих DLP-систем, так как контентный анализ является неизменной основой фильтрации трафика c целью выявления нарушений, и качество работы технологии во многом определяет качество работы самого продукта.
Лингвистический анализ: как это работает
Технология лингвистического анализа позволяет автоматически определять тематику и то, является ли анализируемый фрагмент информации конфиденциальным, на основании встречающихся в нем терминов и их сочетаний.
Для начала мы проводим первичный анализ документов: после того, как компания-заказчик определяет объем и содержание документов, которые являются конфиденциальными и которые необходимо защищать (желательно, чтобы образцов документов по каждой категории защищаемой информации было не меньше десяти). В случае, когда заказчик не понимает, какие документы он должен предоставить, можно ориентироваться на перечень информации ограниченного доступа, принятый в организации заказчика), лингвист выделяет термины — слова или словосочетания, характерные для конкретной отрасли и задающие специфику текста. Здесь крайне важно, чтобы термины максимально часто встречались в текстах документов одной отрасли и крайне редко встречались в другой (к примеру, для банковской сферы характерными терминами могут быть «остаток денежных средств», «расчетно-кассовое обслуживание» или «депозит»).
— Далее термины распределяются по категориям. Количество категорий не детерминировано, однако, чем больше категорий будет выделено, тем более разнородной будет классификация. Категории объединяют термины в общие концептуальные группы, позволяющие более четко организовать информацию.
При занесении термина в категорию лингвист может определить его как «характеристический». К характеристическим относятся термины, которые встречаются только в той категории, в которую они занесены, и не встречаются ни в одной из остальных категорий. При обнаружении даже одного такого термина в перехваченном тексте этот текст автоматически относится к той категории, в которой находится данный термин.
В целом, терминов в категории может быть от трёх (минимальное количество нехарактеристических терминов, при обнаружении которых система детектирует текст как конфиденциальный) до нескольких тысяч, в зависимости от специфики категории. Если это категория, состоящая только из характеристических терминов (например, “Наркотики”, “Терроризм” и пр.), то терминов в категории может быть несколько тысяч. Если категория состоит из нехарактеристических терминов (как правило, это категории на основе документации компании – кадровая, бухгалтерская, юридическая информация), то целесообразно ограничить количество терминов несколькими десятками (от трёх до пятидесяти).
![image](https://habrastorage.org/webt/8k/xm/ps/8kxmps9mzqydcxosrvy_m-wyzhw.jpeg)
— Затем лингвист заносит категории в базу контентной фильтрации (БКФ), на основе которой и происходит лингвистический анализ. База контентной фильтрации — это иерархически структурированный словарь, включающий в себя список категорий и терминов.
БКФ работает как классификатор, на основе которого происходит тематическое распределение анализируемой информации.
При добавлении нехарактеристических терминов в БКФ им назначаются вес – число от 1 до 10 (по умолчанию при создании категории устанавливается вес 5). Значения весов у терминов в категории должны быть пропорциональны соотношению частот употребления терминов в тексте, причем именно частот употребления терминов относительно друг друга — их частота относительно тех слов в тексте, которые не входят в БКФ, роли не играет Например, если в одной из категорий БКФ мы заведем термины «глокая», «куздра» и «штекто» и установим им одинаковые веса (неважно, будет вес у них 10 или 1), то текст «Глокая куздра штеко будланула бокра и кудрячит бокренка» будет детектироваться с релевантностью 1. Если же в пересылаемом тексте слова «глокая» и «куздра» будут встречаться по 10 раз, а «штеко» — 100 раз, релевантность текста категории при равных весах у всех терминов понизится и будет примерно 0.69. В этом случае разумно терминам «глокая» и «куздра» установить вес 1, а термину «штеко» — 10. Тогда релевантность пересылаемого текста станет 1. Понятно, что далеко не всегда есть возможность соблюдать такую строгую пропорцию, но к ней следует стремиться.
Для определения релевантности текста той или иной категории используется одна из классических моделей поиска – векторная модель. Это достаточно популярный способ работы с различными лингвистическими объектами.
![image](https://habrastorage.org/webt/lf/jh/aa/lfjhaa_d_15-fub-eya01g6hqg4.png)
Основную идею можно описать так: есть некое пространство, заданное различными терминами (в нашем случае, это перехваченный системой документ, содержащий текстовую информацию). Для перехваченного документа строится вектор, значением каждой координаты вектора будет считаться количество употреблений соответствующего термина в этом документе. Подобный же вектор строится для каждой категории БКФ. Размерность векторов одинакова для всех анализируемых текстов и равна количеству слов в БКФ.
Тогда значение релевантности векторов можно вычислить как косинус угла между ними, используя скалярное произведение и норму:
![image](https://habrastorage.org/webt/xc/wr/yw/xcwrywxxiy_7rfbyfmqgppexzve.png)
Косинусное сходство перехваченного документа и терминов из БКФ изменяется в диапазоне от 0 до 1: чем больше это значение, тем более похож документ на ту или иную категорию.
У технологии лингвистического анализа на основе баз контентной фильтрации есть ряд преимуществ перед другими технологиями классификации текстов (которые тоже применяются лингвистами InfoWatch для анализа документов, но о них позже).
Главной отличительной особенностью БКФ является ее «гибкость» и возможность кастомизации баз под нужды конкретной компании. Лингвисты вручную пополняют и корректируют содержание БКФ, тем самым точечно донастраивая технологию под каждого заказчика.
Технология лингвистического анализа на основе БКФ позволяет находить необходимые термины и словосочетания с учетом транслитерации, наличия опечаток и морфологии: к примеру, при заданном термине «аренда транспорта», система среагирует и на «аренды транспортов», и на «арендми транспор», т.е. на все возможные сочетания словоизменения данного термина с опечатками. Поиск производится на основе морфологических словарей (для русского это словарь А.А. Зализняка, для иностранных языков — отдельно созданные словари). Детектор опечаток не исправляет термины, находящиеся в морфологическом словаре, что помогает избежать реагирования на слова, расстояние Домерау — Левенштейна(1) между которыми равно единице.
В рабочем активе InfoWatch имеется большая база отраслевых словарей. Мы разработали БКФ для самых разных сфер бизнеса — от космической до энергетической, также у нас есть узкопрофильные базы (к примеру, по исламу или содержащие исходный код C++, Java и пр.), предназначенные для конкретных целей отдельных компаний. Также стоит добавить, что, помимо русского, у нас есть 95 БКФ на 33 иностранных языках с учетом поддержки морфологии для многих из них.
Автолингвист: оперативная защита стандартных документов
Как правило, документооборот отдельной компании не отличается сильной вариативностью, в каждом из отделов используются стандартные документы, схожие по тематике и лексическому наполнению.
Для защиты и классификации подобных документов в «арсенале» InfoWatch есть еще один инструмент анализа текстовых данных – «Автолингвист».
Как следует из названия, технология позволяет автоматически классифицировать типовые документы по заранее заданным категориям, не прибегая к ручному анализу.
Анализ документов в рамках создания БКФ обычно является долгой и энергозатратной работой (в среднем у лингвиста уходит 2-5 дней на выделение терминов, создание категорий и дальнейшую работу с устранением ложноположительных и ложноотрицательных срабатываний), автолингвист способен значительно ускорить процесс настройки категоризации текстов.
В работе классификатора применяется библиотека машинного обучения Liblinear, в частности, алгоритм логистической регрессии(2), позволяющий получить вероятность принадлежности текстового документа к определенной категории.
У пользователя есть возможность самому донастроить работу «Автолингвиста»: предварительно загрузив обучающую коллекцию документов и проведя обучение классификатора, пользователь в дальнейшем может добавлять новые категории, а также корректировать наполнение базы документов.
Текстовые объекты: когда регулярка – не проблема, а решение
Еще одним мощным инструментом для анализа и детектирования необходимой информации являются текстовые объекты – технология, основанная на использовании регулярных выражений (которые, как известно, являются чрезвычайно гибким и удобным инструментом, позволяющим задать практически любые критерии поиска) и применяемая для защиты данных, имеющих фиксированное внешнее представление, к примеру, номеров кредитных карт, реквизитов банковских счетов, адресов электронной почты и т.п.
![image](https://habrastorage.org/webt/t7/qf/o_/t7qfo_yf0rsbb3ycvlmevmh9kdg.jpeg)
Текстовый объект может включать в себя один или несколько паттернов регулярных выражений или строк (слов или фраз; в таком случае, поиск будет производиться на точное соответствие слову строке, без учета особенностей написания и морфологии).
Для верификации найденного текста или комбинации цифр и настройки с учетом потребностей заказчика, без изменения исходного кода технологии, пишутся верифицирующие функции на языке Lua.
Приведу пример верифицирующей функции для детектирования международных банковских кодов в системе SWIFT:
![image](https://habrastorage.org/webt/eh/75/t_/eh75t_tq22ofbctwcuxms9yybda.png)
Функция убирает префикс «SWIFT», верифицирует и возвращает без разделителей весь остальной текст.
Помимо набора предустановленных текстовых объектов (русских, белорусских, казахских, вьетнамских, малайских, арабских, а также ряда международных, которые покрывают данные почти всех сфер бизнеса), у пользователей есть возможность создавать собственные текстовые объекты, уникальные для конкретного бизнеса. Например, для транспортной организации будет важно контролировать VIN-номера автомобилей, а для военной структуры – номер удостоверения личности военнослужащего.
![image](https://habrastorage.org/webt/r1/3r/7n/r13r7nrfpjbdqlsgmzdohtlsvym.jpeg)
Друзья, из этой статьи вы узнали о главных тонкостях работы лингвистического анализа внутри системы InfoWatch Traffic Monitor: базах контентной фильтрации и ее основах – терминах и категориях; технологии «Автолингвист», способной самостоятельно провести классификацию типичных текстов, и текстовых объектах, применяемых для детектирования шаблонных данных.
Несмотря на доказанную эффективность уже имеющихся у нас технологий и наработок, мы продолжаем активно развиваться в семантическом анализе, регулярно пополняя имеющиеся и создавая новые БКФ и текстовые объекты, а также расширяя области применения лингвистических технологий. Обо всех нововведениях и интересных «фишках» я обязательно напишу в дальнейшем.
Коллеги-лингвисты, комментируйте, задавайте сложные вопросы, кидайте полезные ссылки и делитесь опытом! Давайте вместе делать мир лучше!
Автор: Волобринская Валерия valeria_volob
1. Мера разницы двух строк символов, определяемая как минимальное количество операций вставки, удаления, замены и перестановки соседних символов, необходимых для перевода одной строки в другую.
2. Статистическая модель, используемая для прогнозирования вероятности возникновения некоторого события путём его сравнения с логистической кривой.