Практическое задание

Эта задача — шаг 11 курса «Расследование на сервере»

Подменённое обновление

средне~10 мин

Агент мониторинга на сервере обновлялся с зеркала, и после этого начались странности. Обновление сохранилось в base64: /root/update/agent.b64. Вендор публикует контрольную сумму в /root/update/agent.sha256 (формат как у sha256sum: хеш agent.bin).

Раскодируй обновление в /root/update/agent.bin, сверь его SHA-256 с опубликованным и запиши в /root/update/verdict.txt одно слово: OK, если совпало, или TAMPERED, если нет.

Что потренируешь:
  • base64
  • sha256sum -c
  • проверка целостности
  • код возврата
  • расследование

Разбор темы

Целостность скачанного файла проверяют по контрольной сумме, опубликованной отдельно от него: если файл подменили на зеркале, хеш разойдётся. Утилита sha256sum умеет не только считать хеш, но и сверять файлы со списком в своём же формате (хеш имя) — режим проверки читает имена из списка относительно текущего каталога и возвращает ненулевой код, если хоть один файл не совпал. Этот код возврата удобно превратить в вердикт условием. Если файл пришёл в base64, считать хеш нужно от раскодированных байтов — хеш текста base64 будет другим.

Что проверяется

  1. обновление раскодировано
  2. вердикт верный

Как это выглядит