Шпионская компьютерная "тайнопись" Никита Кислицин Xakep, номер #058, стр. 058-062-2 Можно прятать данные и в исполняемых файлах. Дело в том, что в Windows исполняемые файлы представлены в формате PE (Portable Executable), который подразумевает наличие в exe'шнике не только исполняемого кода, но и множества другой информации. Это пиктограммы, различные системные данные, информация об импортируемых и экспортируемых функциях и т.д. Причем для хранения всех этих объектов файл PE разбивается на ряд секций, имеющих фиксированный размер, при этом каждый объект начинается с новой секции. Даже ежу ясно, что некоторые данные могут не занимать всего выделенного места. Так образуются пустоты, в которых опять-таки можно размещать собственные данные. Эту идею использует знаменитый вирус WinCIH, который прячется как раз в исполняемых файлах. Другой, менее известный, вирус W32/Perrun, прятался в графических файлах формата jpg. Причем автор не стал заморачиваться, а просто дописывал тело вируса в конец картинки. Как это реализовывается. Отдельно написана маленькая программка, которая осуществляет поиск вредоносного кода, хранящегося в другом месте. Она его обнаруживает, вытаскивает и запускает. Мультимедиа на подмоге Многие мультимедийные форматы имеют поля расширения, которые могут заполняться пользовательской информацией, а могут быть забиты нулями - в последнем случае их также можно использовать для хранения и даже передачи информации. Однако этот наивный способ не только не обеспечивает требуемого уровня секретности, он еще и не может прятать значительные объемы данных. Решение этих проблем нашлось в следующем подходе. В цифровых фото-, аудио- и видеофайлах обычно содержится множество избыточной информации, которая совершенно не воспринимается органами чувств человека. (Следует, правда, заметить, что даже эта избыточная информация очень и очень далека от оригинала, поскольку, во-первых, данные всегда разбиваются на конечное число элементов, каждый из которых описывается конечным двоичным числом. Аналоговый же сигнал содержит потенциально бесконечное число сведений, которое обрубается при оцифровке.) Поэтому при умеренной декрементации цифровых данных, обычный человек, в силу своего анатомического строения, не сможет заметить разницы. Так, например, графические цветные RGB-файлы кодируют каждую точку рисунка тремя байтами, каждый из которых отвечает за собственную аддитивную составляющую цвета (красную, зеленую и синюю). Модификация каждого из трех младших бит приводит к изменению менее 1% интенсивности данной точки, которое почти незаметно человеческому глазу. Это позволяет скрывать в картинке объемом 800 Кб порядка 100 Кб информации! Информацию можно без проблем прятать и в звуковых файлах: только одна секунда оцифрованного аудио с частотой дискретизации 44,1 кГц и разрядностью отсчета 8 бит в стереорежиме позволяет без воспринимаемой человеческим ухом потери качества скрыть до 12 Кб информации! Это реализуется за счет замены наименее значимых младших разрядов звукового отсчета на скрываемые данные. |