Новое Распределяем каналы MAX по категориям и территориям. Читать новость

🤯 Вау-эффект: ловим «крота» по невидимым символам



Вы думаете, что текст — это просто буквы? В форензике текст — это минное поле скрытых меток, синтаксических паттернов и артефактов форматирования.
> Что такое стеганография нулевой ширины «на пальцах»?
> В таблице Юникода существуют символы, у которых нулевая ширина (например, \u200B — Zero-Width Space). Человеческий глаз в сообщении их не видит: строчка выглядит как обычное предложение. Однако компьютер видит каждый скрытый байт.
> Спецслужбы и службы безопасности компаний часто вшивают уникальный невидимый бинарный код сотрудника прямо в текст корпоративной рассылки. Когда инсайдер копирует текст и сливает его в анонимный Telegram-канал — криминалист считывает скрытую метку и точно знает имя того, кто сделал утечку.
>
Кроме того, при расследовании PDF-документов злоумышленники часто «замазывают» секретные данные черными прямоугольниками в редакторе, забывая, что под плашкой в текстовом слое исходные буквы остаются нетронутыми!
⚡️ Готовый скрипт: детектор скрытых меток и очистка текста
Скрипт проверяет текст на наличие невидимых символов-маркеров, вычисляет скрытую стеганографию и подготавливает текст к криминалистической экспертизе:
import re

# Набор невидимых символов Юникода (Zero-Width Characters)

ZERO_WIDTH_CHARS = {
'\u200B': 'Zero-Width Space',
'\u200C': 'Zero-Width Non-Joiner',
'\u200D': 'Zero-Width Joiner',
'\uFEFF': 'Zero-Width No-Break Space (BOM)'
}

def analyze_text_forensics(text):
print("[*] Анализ текстового блока на скрытые артефакты...")
hidden_found = []

for i, char in enumerate(text):
if char in ZERO_WIDTH_CHARS:
hidden_found.append((i, ZERO_WIDTH_CHARS[char], hex(ord(char))))

if hidden_found:
print(f"[!] ВНИМАНИЕ: Обнаружено {len(hidden_found)} невидимых символов (возможна стеганография/водяной знак)!")
for pos, name, code in hidden_found[:5]:
print(f" -> Позиция {pos}: {name} ({code})")
if len(hidden_found) > 5:
print(f" -> ...и еще {len(hidden_found) - 5} меток.")
else:
print("[+] Скрытых символов нулевой ширины не обнаружено.")

# Дополнительно: поиск потенциальных утечек (Email, IP)
ips = re.findall(r'\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b', text)
if ips:
print(f"[+] Найдены IP-адреса: {set(ips)}")

# Пример проверки подозрительного сообщения:
suspicious_message = "Служебная\u200B записка:\u200C сервер 192.168.1.45 скомпрометирован."
analyze_text_forensics(suspicious_message)


💡 Мотивация на день
«Преступник может стереть файл, очистить корзину и выключить питание, но законы физики и архитектуры операционных систем обмануть нельзя. Цифровые следы не исчезают — они лишь ждут внимательного криминалиста.»

Пишите в комментариях какие у вас артефакты требуют цифрового вмешательства! 🚀

#цифроваякриминалистика #dfir #digitalforensics #exif #метаданные #стеганография #кибербезопасность #osint #инфосек #киберновости
Просмотры: 39
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти