Существует способ проверить файлы, относящиеся к конкретному пакету, по исходному содержимому RPM:
# Verify `vsftpd` package.
rpm -V vsftpd
Как завершить цепочку и убедиться, что rpm
сама команда не была изменена?
Если я заменю rpm
с помощью сценария, который всегда успешен, этот тип проверки никогда не потерпит неудачу.
Это окажется довольно сложной проблемой, если вы ограничитесь единственной системой, которую пытаетесь проверить.
К счастью, мы живем в реальном мире, где больше одного компьютера!
Некоторые возможности для проверки двоичного файла включают:
Используя другую эталонную систему, в которой установлена такая же версия пакета RPM, возьмите хэш двоичного файла и сравните его в каждой системе.
Для дополнительной уверенности, переустановить подписанный пакет из репозиториев в эталонной системе перед выполнением сравнения.
Пример:
# yum reinstall rpm
...
Complete!
# rpm -q rpm
rpm-4.11.3-17.el7.x86_64
# sha256sum /usr/bin/rpm
743810f3c3a9e5eea8ba9bc87351db6b4e8c6393018b9bb56beb873a64ae5431 /usr/bin/rpm
Используйте хост-систему обнаружения вторжений, такую как OSSEC или Tripwire, для обнаружения неожиданных изменений в вашей файловой системе. Конечно, это не гарантирует, что ваши двоичные файлы не будут изменены, но, если все сделано правильно, может дать вам предупреждение о том, что атака продолжается.
Обратите внимание, что оба из них не работают, если используется предварительное связывание, что является одной из причин, по которой он, как правило, больше не включен по умолчанию в последних системах.
# rpm -K rpm-2.3-1.i386.rpm
rpm-2.3-1.i386.rpm: size pgp md5 OK
Из http://www.rpm.org/max-rpm/s1-rpm-checksig-using-rpm-k.html