Блог "Дети ОИТа"
/поиск

Защита информации (Information Security)

Защита информации (Information Security) — это совокупность методов и средств, направленных на обеспечение конфиденциальности, целостности и доступности данных, а также на предотвращение несанкциониро

Защита информации (Information Security) — это совокупность методов и средств, направленных на обеспечение конфиденциальности, целостности и доступности данных, а также на предотвращение несанкционированного доступа, использования, раскрытия, изменения или уничтожения информации.

В современном цифровом мире защита информации — не просто техническая задача, а обязательное условие функционирования государственных, коммерческих и частных систем. Утечка персональных данных, взлом банковских систем, промышленный шпионаж — лишь малая часть последствий недостаточной защиты.

В этой статье:

  • основные термины и определения (конфиденциальность, целостность, доступность);
  • классификацию угроз информации;
  • модели нарушителей;
  • организационные и технические меры защиты;
  • криптографические методы (хеширование, симметричное и асимметричное шифрование);
  • управление доступом (ролевая модель, мандатный контроль);
  • защиту сетевого взаимодействия;
  • примеры кода на Python (без внешних библиотек, где возможно) для демонстрации базовых механизмов.

1.1. Триада CIA (Конфиденциальность, Целостность, Доступность)

  • Конфиденциальность (Confidentiality) — гарантия того, что информация доступна только авторизованным лицам. Нарушение: утечка данных, перехват сообщений.
  • Целостность (Integrity) — гарантия того, что информация не была изменена несанкционированно. Нарушение: модификация базы данных, подмена сообщения.
  • Доступность (Availability) — гарантия того, что авторизованные пользователи могут получить доступ к информации в нужное время. Нарушение: DDoS-атака, отказ оборудования.

1.2. Дополнительные свойства

  • Аутентичность (Authenticity) — подтверждение подлинности субъекта или объекта.
  • Неотказуемость (Non-repudiation) — невозможность отказаться от совершённых действий (например, цифровая подпись).
  • Подотчётность (Accountability) — возможность отследить действия пользователей.

1.3. Понятие угрозы, уязвимости и атаки

  • Угроза — потенциальная возможность нарушения защиты.
  • Уязвимость — слабость в системе, которая может быть использована для реализации угрозы.
  • Атака — попытка реализовать угрозу.

2.1. По природе возникновения

  • Естественные (форс-мажор: пожары, наводнения, землетрясения).
  • Техногенные (сбои оборудования, ошибки ПО).
  • Антропогенные (действия человека: ошибки, халатность, злой умысел).

2.2. По намерению

  • Случайные (ошибочные действия, сбои).
  • Преднамеренные (хакерские атаки, инсайдеры).

2.3. По объекту воздействия

  • На информацию (перехват, модификация, уничтожение).
  • На каналы связи (прослушивание, подмена).
  • На программно-аппаратное обеспечение (внедрение вредоносного ПО).

2.4. Примеры распространённых атак

Тип атаки Описание Затрагивает
Перехват трафика (sniffing) Прослушивание сетевых пакетов Конфиденц.
Подмена данных (spoofing) Изменение содержимого сообщения Целостность
Отказ в обслуживании (DoS) Перегрузка сервера запросами Доступность
Фишинг Кража учётных данных через поддельные сайты Конфиденц.
Man-in-the-Middle (MITM) Встраивание между клиентом и сервером Конфиденц., цел.
Социальная инженерия Обман пользователя для получения доступа Аутентичность

3.1. Внешний нарушитель

Не имеет легального доступа к системе, действует извне (хакер, конкурент). Основные методы: поиск уязвимостей, атаки на сетевые сервисы, подбор паролей.

3.2. Внутренний нарушитель (инсайдер)

Имеет легальный доступ к системе (сотрудник, администратор). Уровни:

  • Пользователь — обычные права.
  • Администратор — повышенные привилегии.
  • Разработчик — знание архитектуры.

Мотивация: корысть, месть, ошибка.

4.1. Организационные меры

  • Политика безопасности (документы, регламенты).
  • Обучение персонала.
  • Физическая охрана серверных.
  • Разграничение ответственности.
  • Планирование непрерывности бизнеса.

4.2. Технические меры

Уровень Средства
Сетевой Межсетевые экраны (firewall), IDS/IPS, VPN
Хостовой (ОС) Антивирус, обновления, контроль доступа (ACL)
Прикладной Шифрование, аутентификация, аудит логов
Криптографический Хеширование, ЭЦП, симметричное/асимметричное шифрование

4.3. Принципы минимизации рисков

  • Least privilege — минимальные необходимые права.
  • Defense in depth — многоуровневая защита.
  • Separation of duties — разделение обязанностей.
  • Fail secure — при сбое переход в безопасное состояние.

5.1. Хеширование

Хеш-функция преобразует произвольные данные в строку фиксированной длины (хеш). Свойства:

  • односторонность (нельзя восстановить исходные данные);
  • устойчивость к коллизиям (мала вероятность двух разных входов с одинаковым хешем).

Применение: хранение паролей (соленый хеш), контроль целостности файлов, цифровая подпись.

5.2. Реализация хеширования на Python (hashlib)

import hashlib

def hash_sha256(data):
    return hashlib.sha256(data.encode()).hexdigest()

password = "secret123"
salt = "somesalt"
hashed = hash_sha256(password + salt)
print(f"Хеш пароля с солью: {hashed}")


file_content = "Hello, world!"
file_hash = hashlib.md5(file_content.encode()).hexdigest()
print(f"MD5 файла: {file_hash}")

5.3. Симметричное шифрование

Один и тот же ключ используется для шифрования и расшифрования. Быстрый алгоритм — AES (Advanced Encryption Standard). В стандартной библиотеке Python нет готовой реализации AES, но для демонстрации можно использовать упрощённый алгоритм XOR (не использовать в реальных проектах). Реальный код требует библиотеки `cryptography` или `pycryptodome`. Однако покажем принцип XOR как учебный пример (небезопасно).

def xor_encrypt_decrypt(data, key):
    """Примитивное XOR-шифрование (только для демонстрации идеи)."""
    return ''.join(chr(ord(c) ^ ord(key[i % len(key)])) for i, c in enumerate(data))

plain = "Secret message"
key = "mykey"
cipher = xor_encrypt_decrypt(plain, key)
decrypted = xor_encrypt_decrypt(cipher, key)
print(f"Исходный текст: {plain}")
print(f"Зашифрованный (XOR): {repr(cipher)}")
print(f"Расшифрованный: {decrypted}")

5.4. Асимметричное шифрование (RSA принцип)

Используется пара ключей: публичный (для шифрования) и приватный (для расшифрования). В реальности используется библиотека `rsa` или `cryptography`. Для демонстрации — только алгоритмическая идея.

5.5. Цифровая подпись

Использует хеш + асимметричное шифрование. Отправитель подписывает хеш сообщения своим приватным ключом, получатель проверяет публичным ключом.

6.1. Дискреционное управление (DAC)

Владелец ресурса сам определяет права доступа для других пользователей. Пример: права в файловой системе (rwx). Недостаток — возможность злоупотреблений.

6.2. Мандатное управление (MAC)

Система назначает метки конфиденциальности субъектам и объектам. Доступ разрешён только если метка субъекта ≥ метки объекта (или наоборот). Используется в особо важных системах (например, в военных).

6.3. Ролевое управление (RBAC)

Права назначаются ролям, а пользователи получают роли. Удобно для больших организаций.

6.4. Пример простой ролевой модели на Python

class RBAC:
    def __init__(self):
        self.user_roles = {}   # user -> role
        self.role_perms = {}   # role -> set of permissions

    def add_role(self, role, perms):
        self.role_perms[role] = set(perms)

    def assign_role(self, user, role):
        if role in self.role_perms:
            self.user_roles[user] = role

    def check(self, user, perm):
        role = self.user_roles.get(user)
        return role and perm in self.role_perms.get(role, set())

rbac = RBAC()
rbac.add_role("admin", ["read", "write", "delete"])
rbac.add_role("user", ["read"])
rbac.assign_role("alice", "user")
rbac.assign_role("bob", "admin")

print("alice может писать?", rbac.check("alice", "write"))
print("bob может удалять?", rbac.check("bob", "delete"))

7.1. Протоколы с шифрованием

  • SSL/TLS — защита передачи данных (HTTPS, SMTPS, FTPS).
  • SSH — безопасный удалённый доступ.
  • IPsec — шифрование на уровне IP.

7.2. Межсетевые экраны (Firewall)

Фильтруют трафик по правилам (IP, порты, протоколы).

7.3. Виртуальные частные сети (VPN)

Создают шифрованный туннель через открытую сеть.

7.4. Простейшая имитация шифрования сообщения (для демонстрации)

def simple_secure_message(message, key):
    # имитация шифрования (смещение)
    encrypted = ''.join(chr((ord(c) + key) % 65536) for c in message)
    decrypted = ''.join(chr((ord(c) - key) % 65536) for c in encrypted)
    return encrypted, decrypted

msg = "Коллега, жду отчёт"
key = 7
enc, dec = simple_secure_message(msg, key)
print(f"Исходное: {msg}")
print(f"Зашифрованное: {repr(enc)}")
print(f"Расшифрованное: {dec}")

8.1. Жизненный цикл информационной безопасности

  • Оценка рисков.
  • Разработка политик.
  • Внедрение средств защиты.
  • Мониторинг и аудит.
  • Реагирование на инциденты.

8.2. Основные стандарты

Стандарт Область применения
ISO 27001 Система менеджмента информационной безопасности
NIST SP 800-53 Рекомендации для федеральных систем США
PCI DSS Безопасность данных платёжных карт
GDPR Защита персональных данных в ЕС
ФЗ-152 О персональных данных (РФ)
  1. Никогда не храните пароли в открытом виде — используйте солёные хеши (bcrypt, argon2).

  2. Всегда валидируйте и санируйте входные данные (защита от SQL-инъекций, XSS).

  3. Используйте HTTPS с корректными сертификатами.

  4. Применяйте принцип минимальных привилегий.

  5. Шифруйте чувствительные данные при передаче и хранении.

  6. Внедряйте логирование и мониторинг (не храните пароли в логах).

  7. Регулярно обновляйте библиотеки и операционную систему.

  8. Написать функцию, которая вычисляет HMAC-SHA256 для сообщения с секретным ключом (используя hashlib). Сравнить с обычным хешем.

  9. Реализовать простую систему аутентификации по паролю с хранением соленых хешей в словаре.

  10. Создать программу для демонстрации атаки перебором MD5 (для коротких паролей).

  11. Реализовать ролевую модель с наследованием ролей (например, «superadmin» включает права «admin»).

  12. Написать скрипт, который проверяет, не был ли файл изменён, путём сохранения и последующей проверки контрольной суммы.

Защита информации — многогранная область, включающая правовые, организационные и технические аспекты. Мы рассмотрели базовые понятия, классификацию угроз, методы криптографии, управление доступом и сетевую защиту. Освоив эти основы, вы сможете грамотно проектировать защищённые системы и избегать типичных уязвимостей.

Термин Определение
Конфиденциальность Информация доступна только авторизованным
Целостность Информация не изменена несанкционированно
Доступность Информация доступна по требованию
Хеш-функция Одностороннее преобразование данных фиксированной длины
Симметричное шифрование Один ключ для шифрования и расшифрования
Асимметричное шифрование Пара ключей (публичный/приватный)
Цифровая подпись Обеспечивает аутентичность и неотказуемость
Межсетевой экран (Firewall) Фильтрует сетевой трафик по правилам
VPN Шифрованный туннель через открытую сеть