Классификация данных для небольшой компании: уровни, правила и поиск ПДн

Если все данные защищаются одинаково, то либо дорого, либо ненадёжно: договор с клиентом и меню столовой не требуют одной меры. Классификация данных отвечает на вопрос «что мы храним и насколько это важно» и превращает его в простые правила: где хранить, кому давать, как передавать и когда уничтожать. Ниже четыре класса, таблица правил, порядок внедрения и скрипт, который находит файлы с признаками персональных данных.
Статья опирается на логику направления «Безопасность данных» из методики зрелости Группы Сбер (источник); это методика для крупных компаний, мы используем её как ориентир и пересказываем своими словами.
Что должно получиться
| Уровень | Что это значит на практике |
|---|---|
| 1. Базовый | Известно, где хранятся важные и персональные данные; резервные копии существуют |
| 2. Гигиенический | Данные классифицированы; копии по схеме 3-2-1 с проверенным восстановлением; секреты не лежат в репозиториях; передача наружу защищена |
Критерии сформулированы нами по мотивам методики, это ориентир, а не оценка соответствия.
Четыре класса данных
| Класс | Что это | Примеры |
|---|---|---|
| Публичные | Информация, которую можно раскрывать | Материалы сайта, прайс, пресс-релизы |
| Внутренние | Рабочие данные без особого ущерба при утечке | Регламенты, внутренняя переписка, схемы процессов |
| Конфиденциальные | Ущерб бизнесу при раскрытии | Договоры, финансовые данные, исходный код, коммерческие условия, учётные данные |
| Персональные и особо защищаемые | Данные физических лиц и данные, на которые есть законные требования | Данные клиентов и сотрудников, базы пользователей, медицинские данные, платёжные данные |
Персональные данные выделены отдельно, потому что к ним применяются требования закона, уведомления и сроки: чек-лист оператора ПДн. Для небольшой компании четырёх классов достаточно, больше — только если есть требования регуляторов или клиентов.
Правила для каждого класса
| Класс | Где хранить | Кто имеет доступ | Передача наружу | Копии | Удаление |
|---|---|---|---|---|---|
| Публичные | Любая корпоративная система | Все | Свободно | По необходимости | По решению владельца |
| Внутренние | Корпоративные системы, не личные облака | Сотрудники | По необходимости, через рабочие каналы | Регулярные | По сроку хранения |
| Конфиденциальные | Защищённые каталоги и системы с журналами доступа | По списку, по заявке владельца | Только с согласия владельца, по защищённому каналу, с договором о конфиденциальности | 3-2-1 с шифрованием | По регламенту с актом |
| Персональные | Системы из перечня ИСПДн на территории РФ (с учётом исключений закона) | Только допущенные, фиксируется доступ | По договору поручения или основанию закона, шифрование канала: поручение обработки | 3-2-1 с шифрованием, проверенное восстановление | В сроки закона с подтверждением: уничтожение ПДн |
Шифрование данных на устройствах и в копиях: шифрование дисков; хранение копий: копирование 3-2-1.
Шаг 1. Составьте перечень массивов данных
Не классифицируйте каждый файл. Классифицируйте массивы: базы, каталоги, системы, сервисы. Для каждого запишите владельца, место хранения, класс и признак персональных данных. Удобно хранить это в реестре активов: реестр ИТ-активов.
Шаг 2. Назначьте владельцев и класс
- Класс определяет владелец данных, а не ИТ: он знает ценность и последствия утечки.
- При сомнении выбирайте более высокий класс и пересматривайте.
- Класс системы определяется самым чувствительным классом данных в ней.
Шаг 3. Найдите данные, о которых забыли
Персональные данные оседают в неожиданных местах: выгрузки в таблицах, архивы, сетевые папки, домашние каталоги. Скрипт ниже обходит каталог и печатает только количество совпадений (значения не показываются) по признакам: адрес почты, телефон, СНИЛС, паспорт. Он находит кандидатов, а не точные данные: возможны ложные срабатывания, результаты нужно проверять вручную. Запускайте только по своим каталогам.
#!/usr/bin/env python3
"""Ищет в текстовых файлах признаки персональных данных и печатает только количество совпадений по файлам.
Значения не выводятся. Сканируйте только свои каталоги. Совпадения нужно проверять вручную: возможны ложные срабатывания.
Запуск: python3 pd_scan.py КАТАЛОГ [--max-mb 20]"""
import os
import re
import sys
PATTERNS = {
'email': re.compile(r'[\w.+-]+@[\w-]+\.[\w.-]+'),
'телефон': re.compile(r'(?<!\d)(?:\+7|8)[\s(-]*\d{3}[\s)-]*\d{3}[\s-]*\d{2}[\s-]*\d{2}(?!\d)'),
'снилс': re.compile(r'(?<!\d)\d{3}-\d{3}-\d{3}[\s-]\d{2}(?!\d)'),
'паспорт': re.compile(r'(?<!\d)\d{2}\s?\d{2}\s?\d{6}(?!\d)'),
}
SKIP_DIRS = {'.git', 'node_modules', '__pycache__', '.cache'}
def scan(path, limit):
try:
if os.path.getsize(path) > limit:
return None
with open(path, 'rb') as f:
raw = f.read()
if b'\0' in raw[:4096]:
return None # двоичный файл
text = raw.decode('utf-8', errors='ignore')
except OSError:
return None
return {name: len(rx.findall(text)) for name, rx in PATTERNS.items()}
def main():
if len(sys.argv) < 2:
sys.exit('Использование: pd_scan.py КАТАЛОГ [--max-mb N]')
root = sys.argv[1]
limit = 20 * 1024 * 1024
if '--max-mb' in sys.argv:
limit = int(sys.argv[sys.argv.index('--max-mb') + 1]) * 1024 * 1024
found = 0
for base, dirs, files in os.walk(root):
dirs[:] = [d for d in dirs if d not in SKIP_DIRS]
for name in files:
path = os.path.join(base, name)
res = scan(path, limit)
if res and any(res.values()):
found += 1
print(path + ' ' + ', '.join(f'{k}={v}' for k, v in res.items() if v))
print(f'Файлов с признаками ПДн: {found}', file=sys.stderr)
return 1 if found else 0
if __name__ == '__main__':
sys.exit(main())
python3 pd_scan.py /srv/shares/finance
Пример результата на учебных данных (итоговая строка идёт в поток ошибок и может появиться раньше списка):
Файлов с признаками ПДн: 2
/tmp/pdt/a.csv email=1, телефон=1, снилс=1
/tmp/pdt/sub/c.txt email=1, паспорт=1
Код возврата 1, если что-то найдено. Для найденных файлов решите: оставить (и защитить по классу), перенести в нужную систему или уничтожить. Скрипт читает только текстовые файлы; таблицы Office и архивы он не разбирает.
Шаг 4. Разметьте и закрепите правила
- Название каталога или системы отражает класс (например, префикс
conf-), в документах колонтитул «Конфиденциально». - Права доступа соответствуют классу: конфиденциальные и персональные каталоги закрыты по спискам.
- Правила обращения изложены на одной странице и доведены до сотрудников: программа осведомлённости.
- Секреты (пароли, ключи, токены) не хранятся в общих документах и репозиториях: секреты в git.
Шаг 5. Тестовые среды без реальных данных
Самая частая причина утечек из «неважных» систем — реальные данные в тестах. Используйте обезличенные или синтетические данные, а если нужна копия боевой базы, применяйте необратимое обезличивание и ограничьте доступ как к боевой.
Диагностика
| Симптом | Причина и что делать |
|---|---|
| Всё оказалось «конфиденциальным» | Классы не различаются. Определите примеры и последствия утечки для каждого класса |
| Классификацию не соблюдают | Правила слишком сложные или не доведены. Сократите их до одной страницы и включите в инструктаж |
| Скрипт находит много ложных срабатываний | Номера и коды совпали с шаблонами. Уточните шаблоны под ваши данные, проверяйте выборочно |
| Данные в личных облаках и мессенджерах | Нет удобной разрешённой замены. Предложите корпоративное хранилище и запретите остальное политикой |
Где это в модели зрелости
Материал относится к направлению «Безопасность данных» (материалы направления, карта зрелости). Уровень 1 закрывает знание того, где лежат важные и персональные данные, уровень 2 добавляет классификацию и правила обращения, защищённую передачу и тестовые среды без реальных данных.
Как проверить
- Есть перечень массивов данных с владельцами, классом и признаком ПДн.
- Для каждого класса записаны правила хранения, доступа, передачи, копирования и удаления.
- Скрипт поиска запускался на основных каталогах, найденные файлы разобраны.
- Тестовые среды не содержат реальных персональных данных.
Источники
- Методика оценки уровня зрелости кибербезопасности компании, Группа Сбер: sberbank.ru.
- NIST SP 800-60 Vol. 1 Rev. 1, Guide for Mapping Types of Information and Information Systems to Security Categories: csrc.nist.gov. Международная практика, не российский норматив.





















