Платежные терминалы получают индивидуальные пакеты обновлений для установленного в них программного обеспечения через сеть. При этом в целях безопасности эти пакеты пересылаются в зашифрованных архивах. Пароли шифрования для терминалов разные и администратору не известны.
Администратор на CD-R диске получил очередной незашифрованный пакет обновлений (файл apu_test.rar) для отладочного терминала. В ходе проверки данного пакета антивирусом оказалось, что ни один из файлов не содержит вредоносного кода.
Вместе с тем стало известно, что злоумышленники запланировали атаку на один из терминалов и, возможно, подменили некоторые файлы в пакете обновлений. С помощью специальной программы администратору удалось получить некоторые фрагменты пакета обновлений терминалов.
Проанализируйте эти фрагменты и выясните, какие из файлов в пакете были подменены.
Содержимое архива пакета обновлений с диска администратора:
Комментарий. К задаче прилагается: исходный архив без вирусов (apu_test.rar), фрагменты пакета обновлений (apu_termX.NNN).
Из условия можно извлечь информацию о содержимом архива, а именно – имена файлов, их размер и контрольная сумма (CRC32). При внесении изменений в файл его имя и размер могут не измениться, однако контрольная сумма при этом будет другой. Учитывая этот факт необходимо в перехваченных фрагментах определить контрольные суммы файлов и сравнить их с исходными.
Чтобы определить структуру информации, хранимую в архиве, необходимо открыть файл с помощью редактора и посмотреть его содержимое в шестнадцатеричном формате.
В этом режиме просмотра необходимо найти имя первого файла – «apu001.dat». Нетрудно заметить, что со смещением 16 байт влево от имени файла хранится контрольная сумма в обратном порядке байтов (рис. 1).
Рис. 1. Имя файла и его контрольная сумма в архиве
Проверив это и для остальных файлов архива, можно убедиться, что для всех файлов структура информации следующая:
[00 02] [xx xx xx xx] [другие данные 12 байт] [имя файла],
где xx xx xx xx – 4 байта контрольной суммы.
Для нахождения измененного файла необходимо в представленных фрагментах последовательно осуществлять поиск по имени файла и определять контрольную сумму. При несовпадении контрольной суммы с исходной можно однозначно сделать вывод, что файл был изменен.
Анализируя фрагмент «apu_1.004» можно заметить имя файла «apu002.dat» и контрольную сумму 78 95 D4 75, не соответствущей исходной.
Рис. 2. Анализ фрагмента «apu_1.004»
Аналогично для файла «apu_1.008» было обнаружено имя файла «apu004.dat» и контрольная сумма C0 E2 36 A8, что не соответствует исходной.
Рис. 3. Анализ фрагмента «apu_1.008»
Для остальных файлов контрольные суммы совпадают с исходной.
Были изменены файлы «apu002.dat» и «apu004.dat»