오늘 현재 OpenSSL 의 버그는 (포함) 및를 1.0.1
통해 버전에 영향을주는 것으로 밝혀졌습니다 .1.0.1f
1.0.2-beta
우분투 12.04부터이 버그에 모두 취약합니다. 이 취약점을 패치하려면 영향을받는 사용자가 OpenSSL로 업데이트해야합니다 1.0.1g
.
영향을받는 모든 사용자가이 업데이트를 지금 어떻게 적용 할 수 있습니까?
오늘 현재 OpenSSL 의 버그는 (포함) 및를 1.0.1
통해 버전에 영향을주는 것으로 밝혀졌습니다 .1.0.1f
1.0.2-beta
우분투 12.04부터이 버그에 모두 취약합니다. 이 취약점을 패치하려면 영향을받는 사용자가 OpenSSL로 업데이트해야합니다 1.0.1g
.
영향을받는 모든 사용자가이 업데이트를 지금 어떻게 적용 할 수 있습니까?
답변:
12.04, 12.10, 13.10 및 14.04의 보안 업데이트는 Ubuntu 보안 공지 USN-2165-1을 참조하십시오 .
따라서 먼저 사용 가능한 보안 업데이트를 적용해야합니다 (예 :
sudo apt-get update
sudo apt-get upgrade
명령 행에서.
영향을받는 OpenSSL 버전을 사용하는 서비스 (HTTP, SMTP 등) 를 다시 시작 해야합니다. 그렇지 않으면 여전히 취약합니다. Heartbleed : 정의 란 무엇이며이를 완화 할 수있는 옵션은 무엇입니까?를 참조하십시오 . Serverfault.com에서.
다음 명령은 (업그레이드 후) 다시 시작해야하는 모든 서비스를 보여줍니다.
sudo find /proc -maxdepth 2 -name maps -exec grep -HE '/libssl\.so.* \(deleted\)' {} \; | cut -d/ -f3 | sort -u | xargs --no-run-if-empty ps uwwp
그런 다음 모든 서버 SSL 키 를 다시 생성 한 다음 키 유출 여부를 평가해야합니다.이 경우 공격자가 서버에서 기밀 정보를 검색했을 수 있습니다.
openssl version
후을 제공합니다 OpenSSL 1.0.1 14 Mar 2012
. 그것은 패치 된 버전이 아닙니다. 아니면 내가 잘못 읽고 있습니까?
dpkg -l | grep ' openssl '
도착 1.0.1-4ubuntu5.12
하면 갈 수 있습니다.
이 버그는 Heartbleed라고 합니다.
일반적으로 SSL 키를 생성 한 서버를 특정 시점에 실행하면 영향을받습니다. 대부분의 최종 사용자는 (직접적으로) 영향을받지 않습니다. 최소한 Firefox와 Chrome은 OpenSSL을 사용하지 않습니다. SSH는 영향을받지 않습니다. 우분투 패키지 배포는 영향을받지 않습니다 (GPG 서명에 의존).
OpenSSL 버전 1.0–1.0.1f (버그가 발견 된 이후 패치 된 코스 버전 제외)를 사용하는 모든 종류의 서버를 실행하면 취약합니다. 영향을받는 Ubuntu 버전은 11.10 oneiric에서 14.04의 신뢰할 수있는 시험판입니다. 프로토콜의 결함이 아니라 구현 버그이므로 OpenSSL 라이브러리를 사용하는 프로그램 만 영향을받습니다. 이전 0.9.x 버전의 OpenSSL에 연결된 프로그램이있는 경우 영향을받지 않습니다. SSL 프로토콜을 구현하기 위해 OpenSSL 라이브러리를 사용하는 프로그램 만 영향을받습니다. 다른 용도로 OpenSSL을 사용하는 프로그램은 영향을받지 않습니다.
인터넷에 노출 된 취약한 서버를 실행 한 경우 2014-04-07 발표 이후 로그에 연결이 표시되지 않는 한 서버가 손상되었다고 간주하십시오. 서버가 내부적으로 만 노출 된 경우 키를 변경해야하는지 여부는 다른 보안 조치에 따라 다릅니다.
이 버그로 SSL 서버에 연결할 수 있는 모든 클라이언트 가 서버에서 약 64kB의 메모리를 검색 할 수 있습니다. 클라이언트는 어떤 식 으로든 인증 할 필요가 없습니다. 공격을 반복함으로써 클라이언트는 메모리의 다른 부분을 연속적으로 덤프 할 수 있습니다.
공격자가 검색 할 수있는 중요한 데이터 중 하나는 서버의 SSL 개인 키입니다. 이 데이터를 통해 공격자는 서버를 가장 할 수 있습니다.
영향을받는 모든 서버를 오프라인 상태로 만듭니다. 실행중인 한 중요한 데이터가 유출 될 수 있습니다.
libssl1.0.0
패키지를 업그레이드하고 영향을받는 모든 서버가 다시 시작되었는지 확인하십시오.
영향을받는 프로세스가 여전히``grep 'libssl로 실행 중인지 확인할 수 있습니다. (삭제) '/ proc / / maps`
새 키를 생성하십시오 . 이는 버그로 인해 침입자가 이전 개인 키를 얻었을 수 있기 때문에 필요합니다. 처음에 사용한 것과 동일한 절차를 따릅니다.
손상되지 않은 새로운 키가 생겼으므로 서버를 다시 온라인 상태로 만들 수 있습니다 .
이전 인증서를 해지 하십시오.
손상 평가 : SSL 연결을 제공하는 프로세스의 메모리에 있던 모든 데이터가 유출되었을 수 있습니다. 여기에는 사용자 비밀번호 및 기타 기밀 데이터가 포함될 수 있습니다. 이 데이터가 무엇인지 평가해야합니다.
클라이언트 응용 프로그램이 영향을받는 상황은 거의 없습니다. 서버 쪽의 문제는 누구나 서버에 연결하여 버그를 악용 할 수 있다는 것입니다. 클라이언트를 이용하려면 다음 세 가지 조건을 충족해야합니다.
wget
파일을 다운로드하기 위해 실행 한 경우 유출 할 데이터가 없었습니다.)2014 년 4 월 7 일 저녁 UTC와 OpenSSL 라이브러리를 업그레이드 한 경우 클라이언트 프로세스의 메모리에 있던 모든 데이터가 손상되는 것을 고려하십시오.
openssl
에는 명령 행 도구가 포함되어 있습니다. OpenSSL 라이브러리를 사용하여 SSL 프로토콜 (예 : Apache)을 구현하는 응용 프로그램에서는 사용되지 않습니다. 그러나 배포판의 보안 업데이트 만 적용하면됩니다.
Ubuntu에 설치된 OpenSSL 버전을 확인하려면 다음을 실행하십시오.
dpkg -l | grep openssl
다음과 같은 버전의 출력이 표시되면 CVE-2014-0160 용 패치가 포함되어 있어야합니다.
ii openssl 1.0.1-4ubuntu5.12 Secure Socket Layer (SSL)...
보면 https://launchpad.net/ubuntu/+source/openssl/1.0.1-4ubuntu5.12 , 그것은 버그의 종류가 고정되는 보여줍니다
...
SECURITY UPDATE: memory disclosure in TLS heartbeat extension
- debian/patches/CVE-2014-0160.patch: use correct lengths in
ssl/d1_both.c, ssl/t1_lib.c.
- CVE-2014-0160
-- Marc Deslauriers <email address hidden> Mon, 07 Apr 2014 15:45:14 -0400
...
sudo service apache2 restart
openssl
해도 Apache, Nginx 또는 postfix와 같은 응용 프로그램은 수정되지 않습니다. libssl1.0.0
다른 게시물에 설명 된대로 업데이트 하고 다시 시작해야합니다.
귀하의 경우 apt-get을 저장소가 되지 않은 미리 컴파일 포함 할 1.0.1g의에서 OpenSSL 버전을, 그래서 그냥 공식 웹 사이트에서 소스를 다운로드하여 컴파일합니다.
curl https://www.openssl.org/source/openssl-1.0.1g.tar.gz | tar xz && cd openssl-1.0.1g && sudo ./config && sudo make && sudo make install
sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
# openssl version should return
openssl version
OpenSSL 1.0.1g 7 Apr 2014
Cf이 블로그 게시물 .
NB : 블로그 게시물에 명시된 바와 같이,이 대안은 "1.0.1g openSSL 소스로 다시 컴파일해야하는 Nginx 및 Apache 서버"를 수정하지 않습니다.
서버 전체 패키지 업그레이드를 원하지 않는 사람들을 위해. 오늘이 안내서를 많이 읽었으며 apt-get upgrade openssl
=== apt-get upgrade
이것은 컴퓨터에 필요한 모든 보안 수정 사항을 적용합니다. 어딘가에 이전 패키지 버전을 명시 적으로 기대하지 않는 한 훌륭합니다.
이것은 Apache 2를 실행하는 Ubuntu 12.04 LTS에 필요한 최소 조치입니다.
이 주소로 이동 하여 취약점이 있음을 증명하십시오. 웹 서버의 직접 외부 주소를 사용해야합니다. 로드 밸런서 (예 : ELB)를 사용하는 경우 웹 서버에 직접 연결하지 않은 것일 수 있습니다.
다음 1 라이너를 실행하여 패키지를 업그레이드하고 다시 시작하십시오. 예, 2014 년 4 월 4 일 이후에 타임 스탬프가 있어야한다고 말하는 모든 가이드를 보았습니다.
apt-get 업데이트 && apt-get 설치 openssl libssl1.0.0 && /etc/init.d/apache2 다시 시작
적절한 패키지 버전이 설치되어 있는지 확인하고 웹 서버에서 취약점을 다시 한 번 확인하십시오.
주요 패키지는 다음과 같습니다. 아래 명령을 사용하여이 정보를 확인한 후 쪼개짐을 편집했습니다 (내 컴퓨터의 상태에 대해 많이 알 필요는 없습니다).
$ dpkg -l | grep ssl
ii libssl-dev 1.0.1-4ubuntu5.12 SSL development libraries, header files and documentation
ii libssl1.0.0 1.0.1-4ubuntu5.12 SSL shared libraries
ii openssl 1.0.1-4ubuntu5.12 Secure Socket Layer (SSL)* binary and related cryptographic tools
1.0.1-4ubuntu5.12
취약점을 포함해서는 안됩니다. 아래 웹 사이트로 다시 이동하여 웹 서버를 테스트하여이 경우에 해당하는지 확인하십시오.
apt-get install openssl libssl1.0.0
나를 위해 그것을했다. 달리는 openssl version -a
지금 보여줍니다 :built on: Mon Apr 7 20:33:29 UTC 2014
나는 여기에 긴급한 도움이 필요한 많은 주석가를 발견했습니다. 그들은 지침을 따르고, 업그레이드, 재부팅 및 일부 테스트 웹 사이트를 사용할 때 여전히 취약합니다.
libssl과 같은 보류중인 패키지가 없는지 확인해야합니다.
:~$ sudo apt-get upgrade -V
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
libssl-dev (1.0.1-4ubuntu5.10 => 1.0.1-4ubuntu5.12)
libssl1.0.0 (1.0.1-4ubuntu5.10 => 1.0.1-4ubuntu5.12)
linux-image-virtual (3.2.0.31.34 => 3.2.0.60.71)
linux-virtual (3.2.0.31.34 => 3.2.0.60.71)
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
apt-mark unhold libssl1.0.0
예를 들어 업그레이드하십시오 . 그런 다음 업그레이드하십시오 apt-get upgrade -V
.. 그런 다음 영향을받는 서비스를 다시 시작하십시오.