Я хотел бы скомпилировать и установить версию OpenSSL, уязвимую для Heartbleed, на сервере, который я настраиваю для решения проблемы сетевой безопасности команды (поскольку они недоступны для установки из репозитория Ubuntu по очевидным причинам).
Я загрузил и скомпилировал OpenSSL 1.0.1f из исходного кода, используя предоставленные инструкции (запустите ./config
, затем make
и make install
) и попытался запустить общедоступный Heartbleed POC из GitHub с моего ПК, однако сценарий не сообщает мне, что не было получено никакого ответа на контрольное сообщение и что сервер, вероятно, не уязвим.
Бег openssl version
производит следующий вывод: OpenSSL 1.0.1f 6 января 2014 г.. Я, конечно, установил SSL-сертификат, и SSL-доступ работает на сервере.
OpenSSL установлен для работы с Apache 2.4.7.
Кто-нибудь может помочь?
Какое серверное программное обеспечение используется?
Несмотря на уязвимость двоичного файла OpenSSL, установленный веб-сервер из пакета ОС, скорее всего, будет использовать версию библиотеки, которая не является уязвимой.
Самый простой способ запустить уязвимый слушатель будет openssl s_server
- если вам нужен полноценный веб-сервер, чтобы быть уязвимым, вам, вероятно, придется скомпилировать с уязвимым OpenSSL.
Здесь могут происходить две вещи:
Простой "./configure; make; make install" по умолчанию помещает общие библиотеки в /usr/local/lib
. Однако системные библиотеки будут в /usr/lib
, который появляется раньше в пути поиска библиотеки. Если вы не удалите версию OpenSSL, установленную в системе, уязвимая версия не будет найдена.
Даже если вы перезаписываете системные библиотеки, изменения не будут приняты, пока вы не перезапустите Apache. Удаленные файлы остаются доступными (и занимают место на диске) до тех пор, пока все программы, у которых есть открытые дескрипторы файлов, не закроют эти дескрипторы.