Что такое сигнатура (signature) в контексте информационной безопасности?

«Что такое сигнатура (signature) в контексте информационной безопасности?» — вопрос из категории Безопасность, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Основные типы сигнатур:

  1. Сигнатуры на основе сигнатур (Signature-based):

    • Антивирусы: Хэш-суммы (MD5, SHA-256) вредоносных файлов или характерные строки в коде.
    • IDS/IPS (Системы обнаружения/предотвращения вторжений): Шаблоны сетевого трафика (например, последовательность пакетов для эксплойта).
  2. Цифровые подписи (Digital Signatures):

    • Криптографический механизм для проверки аутентичности, целостности и неотрекаемости данных.
    • Создается с использованием приватного ключа отправителя и проверяется публичным ключом.
    • Пример в Java:
      
      // Создание подписи
      Signature sig = Signature.getInstance("SHA256withRSA");
      sig.initSign(privateKey);
      sig.update(data);
      byte[] signature = sig.sign();

    // Проверка подписи sig.initVerify(publicKey); sig.update(data); boolean isVerified = sig.verify(signature);

Сравнение подходов: Критерий Сигнатурный анализ (AV/IDS) Цифровая подпись
Цель Обнаружение известных угроз Гарантия подлинности и целостности
Основа База известных шаблонов Криптография с открытым ключом (PKI)
Ограничение Неэффективен против нулевых дней (zero-day) Не защищает от вредоносного контента, только проверяет источник

Почему это важно: Сигнатурный анализ — это основа традиционной защиты, но он должен дополняться поведенческим анализом (heuristics, AI) для борьбы с новыми, неизвестными угрозами.