Назад | Перейти на главную страницу

Как обеспечить целостность и безопасность подписанного немодифицированного пакета RPM?

Существует способ проверить файлы, относящиеся к конкретному пакету, по исходному содержимому 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