Linux 서버에 취약한 버전의 OpenSSL을 설치하는 방법은 무엇입니까?


9

팀 웹 보안 문제로 설정하려는 서버에서 Heartbleed-vulnerable OpenSSL 버전을 컴파일하고 설치하고 싶습니다 (확실한 이유로 Ubuntu의 저장소에서 설치할 수 없기 때문에).

제공된 지침 (run ./config, then makemake install)을 사용하여 소스 OpenSSL 1.0.1f에서 다운로드하여 컴파일하고 PC 에서 GitHub 에서 공개적으로 사용 가능한 Heartbleed POC를 실행하려고 시도했지만 스크립트에서 하트 비트 응답이 수신되지 않았 음을 알립니다. 서버는 취약하지 않은 것 같습니다.

Running openssl version은 다음과 같은 출력을 생성합니다. OpenSSL 1.0.1f 6 Jan 2014 . 물론 SSL 인증서를 설치했으며 SSL 액세스가 서버에서 작동합니다.

OpenSSL은 Apache 2.4.7에서 작동하도록 설치되었습니다.

누구든지 도울 수 있습니까?


3
일반적으로 이전 버전 및 Linux 배포를 테스트하는 좋은 방법은 배포의 이전 ISO 이미지를 다운로드하고이를 사용하여 VM을 설치하는 것입니다. 이 패키지에 모든 패키지가 제공되는 것은 아니지만 OpenSSL이 제공 될 것입니다.
Bruno

데비안 패키징에 어느 정도 익숙하다면, 현재 openssl 소스 패키지를 다운로드하고 CVE-2014-0160.patch를 제거하고 다시 빌드하는 것이 매우 쉬워야합니다.
매트 Nordhoff

답변:


7

여기에는 두 가지 일이 있습니다.

  1. 간단한 "./configure; make; make install"은 기본적으로 공유 라이브러리를에 배치합니다 /usr/local/lib. 그러나 시스템 설치 라이브러리 /usr/lib는 라이브러리 검색 경로의 앞 부분에 있습니다. 시스템에 설치된 OpenSSL 버전을 제거하지 않으면 취약한 버전을 찾을 수 없습니다.

  2. 시스템 라이브러리를 덮어 쓰더라도 Apache를 다시 시작할 때까지 변경 사항이 적용되지 않습니다. 삭제 된 파일은 파일 핸들이 열려있는 모든 프로그램이 해당 파일 핸들을 닫을 때까지 액세스 가능한 상태로 유지됩니다 (디스크의 공간을 차지함).


7

어떤 서버 소프트웨어를 사용하고 있습니까?

OpenSSL 바이너리는 취약하지만 OS 패키지에서 설치된 웹 서버는 취약하지 않은 라이브러리 버전을 사용하고있을 가능성이 있습니다.

취약한 리스너를 실행하는 가장 간단한 방법은 취약한 openssl s_server전체 웹 서버가 필요한 경우 취약한 OpenSSL에 대해 컴파일해야 할 것입니다.


1
우와, 내가 알지도 못하는 s_server일이었다. 나는 s_client영원히 사용 해 왔으며 서버 옵션도 있어야한다는 것이 합리적입니다.
EEAA

1
@EEAA 그래, 거기에 얼마나 많은 다른 하위 명령이 들어 있는지 미쳤다.
Shane Madden
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.