Heartbleed: Heartbleed란 무엇이며 이를 완화할 수 있는 옵션은 무엇입니까?

Heartbleed: Heartbleed란 무엇이며 이를 완화할 수 있는 옵션은 무엇입니까?

이것은정식 질문Heartbleed 보안 문제를 이해하고 해결하는 방법에 대해 알아보세요.

CVE-2014-0160(일명 "Heartbleed")이란 정확히 무엇입니까? 원인은 무엇이며, 취약한 OpenSSL OS 및 버전은 무엇이며, 증상은 무엇입니까? 성공적인 익스플로잇을 감지할 수 있는 방법이 있습니까?

내 시스템이 영향을 받는지 어떻게 확인할 수 있나요? 이 취약점을 어떻게 완화할 수 있습니까? 내 키나 기타 개인 데이터가 손상될까 봐 걱정해야 합니까? 어떤 다른 부작용을 걱정해야 합니까?

답변1

첫 번째, 당황하기 전에 이 취약점이 실제로 귀하에게 적용되는지 여부를 이해하십시오. 서버가 있지만 TLS를 사용하는 애플리케이션을 실제로 사용해 본 적이 없다면 이는 해결해야 할 우선순위가 아닙니다. 반면에 당신이적이 있다TLS 지원 애플리케이션을 사용하면 좋은 결과를 얻을 수 있습니다. 읽어:

CVE-2014-0160(일명 "Heartbleed")이란 정확히 무엇입니까?

그것은 엄청난 혼란입니다. 그게 바로 그 것입니다. 즉, 공격자가 시스템 메모리의 특정 부분을 읽을 수 있는 OpenSSL 버전 1.0.1~1.0.1f에서 원격으로 악용 가능한 취약점이 발견되었습니다. 개인 키, 사전 공유 키, 비밀번호, 중요한 기업 데이터 등 민감한 데이터를 보유하는 부분입니다.

이 버그는 Google Security의 Neel Mehta(2014년 3월 21일)와 핀란드 IT 보안 테스트 회사인 Codenomicon(2014년 4월 2일)에 의해 독립적으로 발견되었습니다.

원인은 무엇입니까?

OpenSSL에 잘못된 코드가 있습니다.여기취약점을 도입한 커밋입니다.여기취약점을 수정한 커밋입니다. 이 버그는 2011년 12월에 나타났으며 2014년 4월 7일 오늘 패치되었습니다.

버그는 더 큰 문제의 증상으로 볼 수도 있습니다. 관련된 두 가지 문제는 (1) 잘못된 코드가 코드 베이스에 도입되지 않도록 보장하기 위해 어떤 프로세스가 마련되어 있는지, (2) 프로토콜과 확장이 왜 그렇게 복잡하고 테스트하기 어려운지입니다. 항목 (1)은 OpenSSL 및 기타 여러 프로젝트의 거버넌스 및 프로세스 문제입니다. 많은 개발자는 코드 검토, 분석, 스캐닝과 같은 관행을 거부합니다. 항목 (2)는 IETF의 TLS WG에서 논의되고 있습니다. 보다하트블리드/프로토콜 복잡성.

잘못된 코드가 악의적으로 삽입되었습니까?

나는 이것이 정말로 실수인지 아니면 악의적인 행위자를 대신하여 약간의 코드가 삽입되었는지에 대해 추측하지 않을 것입니다. 그러나 OpenSSL용 코드를 개발한 사람은 그것이 의도치 않은 일이었다고 말합니다. 보다심각한 '하트블리드(Heartbleed)' 보안 결함을 도입한 남성은 고의로 삽입했다는 사실을 부인했습니다..

OpenSSL의 어떤 OS와 버전이 취약합니까?

위에서 언급한 것처럼 OpenSSL 1.0.1~1.0.1f에 대해 연결된 응용 프로그램이나 사용 중인 모든 운영 체제.

증상은 무엇입니까? 성공적인 공격을 감지하는 방법이 있습니까?

이것이 무서운 부분이다. 우리가 아는 한, 이 취약점이 악용되었는지 여부를 탐지할 수 있는 알려진 방법은 없습니다. 이 공격을 탐지할 수 있는 IDS 서명이 곧 출시될 가능성은 이론적으로 가능하지만 이 글을 쓰는 시점에서는 사용할 수 없습니다.

Heartbleed가 2013년 11월 초부터 활발하게 악용되고 있다는 증거가 있습니다. EFF의 내용을 참조하세요.Wild at Heart: 정보 기관이 2013년 11월에 Heartbleed를 사용했나요?그리고 Bloomberg는 취약점이 도입된 직후 NSA가 이 공격을 무기화했다고 보고했습니다. 보다NSA는 수년간 정보를 위해 Heartbleed 버그를 악용했다고 밝혔습니다.. 그러나 미국 정보기관은 블룸버그의 주장을 부인하고 있다. 보다IC 온 더 레코드.

내 시스템이 영향을 받는지 어떻게 확인할 수 있나요?

만약에시스템에서 OpenSSL을 유지 관리하는 경우 간단히 다음을 실행할 수 있습니다 openssl version.

$ openssl version
OpenSSL 1.0.1g 7 Apr 2014

만약에배포판에서 OpenSSL을 유지하고 있으면 openssl명령이나 패키지 정보(예: apt-get, 또는 ) dpkg를 사용한 백 패치로 인해 OpenSSL 버전을 확인하지 못할 수 있습니다. 대부분의 배포판에서 사용하는 백 패치 프로세스는 기본 버전 번호(예: "1.0.1e")만 사용합니다. 그리고 그렇습니다yumrpm~ 아니다포함하다효과적인 보안 버전(예: "1.0.1g").

패키지가 백패치될 때 OpenSSL 및 기타 패키지에 대한 효과적인 보안 버전을 결정하기 위해 슈퍼 유저에 대한 공개 질문이 있습니다. 안타깝게도 유용한 답변이 없습니다(배포판 웹사이트를 확인하는 것 외에는). 보다백패칭에 직면했을 때 효과적인 보안 버전 결정?.

경험에 따르면, 영향을 받는 버전 중 하나를 설치한 적이 있고 TLS 지원을 위해 OpenSSL에 연결된 프로그램이나 서비스를 실행한 적이 있다면 취약합니다.

취약점을 테스트할 프로그램은 어디에서 찾을 수 있습니까?

Heartbleed가 발표된 지 몇 시간 만에 인터넷의 여러 사람들이 서버에서 이 취약점의 존재를 확인하는 데 사용할 수 있는 공개적으로 액세스 가능한 웹 애플리케이션을 공개했습니다. 이 글을 쓰는 시점에서 나는 어떤 것도 검토하지 않았으므로 해당 지원서를 더 이상 공개하지 않을 것입니다. 선호하는 검색 엔진의 도움으로 비교적 쉽게 찾을 수 있습니다.

이 취약점은 어떻게 완화됩니까?

취약하지 않은 버전으로 업그레이드하고 취약한 데이터를 재설정하거나 다시 보호하세요. 에 언급된 바와 같이하트블리드사이트에서 적절한 대응 단계는 대체로 다음과 같습니다.

  1. 취약한 시스템을 패치합니다.
  2. 새 개인 키를 다시 생성합니다.
  3. CA에 새 CSR을 제출합니다.
  4. 새로 서명된 인증서를 받아 설치합니다.
  5. 세션 키 및 쿠키 무효화
  6. 비밀번호 및 공유 비밀 재설정
  7. 오래된 인증서를 취소합니다.

더 자세한 분석과 답변을 보려면 다음을 참조하세요.Heartbleed OpenSSL 익스플로잇에 대해 웹사이트 운영자는 어떻게 해야 합니까?보안 스택 교환에서.

내 키나 기타 개인 데이터가 손상될까 봐 걱정해야 합니까? 어떤 다른 부작용을 걱정해야 합니까?

전적으로. 시스템 관리자는 다음을 수행해야 합니다.추정하다취약한 OpenSSL 버전을 사용하는 서버가 실제로 손상되어 그에 따라 대응한다는 것입니다.

취약점이 공개된 직후 Cloudfare는 실제로 서버의 개인 키를 복구할 수 있는지 확인하기 위한 과제를 제안했습니다. 이 도전은 Fedor Indutny와 Ilkka Mattila가 독립적으로 승리했습니다. 보다하트블리드 챌린지.

자세한 정보는 어디서 찾을 수 있나요?

자세한 내용을 찾는 사람들을 위한 링크 덤프:


공개 이벤트에 대한 자세한 타임라인은 다음에서 확인할 수 있습니다.Heartbleed 공개 일정: 누가 언제 무엇을 알았는지.


프로그래머이고 OpenSSL의 msg_cb콜백을 통해 Heartbleed 공격을 감지하는 것과 같은 다양한 프로그래밍 트릭에 관심이 있다면 OpenSSL의보안 권고 2014047.

답변2

XKCD의 버그에 대한 간단한 설명:

XKCD 1354

답변3

우분투 12.04, 12.10, 13.10

우분투가 발행했습니다USN-2165-1, 업데이트된 패키지를 이제 아카이브에서 사용할 수 있음을 나타냅니다. 다음 두 명령을 실행하여 수정 사항을 확인하세요.

sudo apt-get update
sudo apt-get upgrade

우분투 14.04

나는 이 목적을 위해 설정한 PPA에 새 릴리스(1.0.1g)가 포함된 데비안 패키지를 업로드했습니다. 이 세 가지 명령은 내 PPA를 시스템에 추가하고 사용 가능한 패키지 목록을 업데이트하며 모든 것을 업그레이드합니다.

sudo add-apt-repository ppa:george-edison55/openssl-heartbleed-fix
sudo apt-get update
sudo apt-get upgrade

참고: PPA는 아카이브의 패치 버전을 사용하는 대신 새 버전(1.0.1g)을 실제로 실행하려는 경우를 대비해 Ubuntu 12.04 및 13.10용 패키지도 제공합니다.

우분투 10.04

이것은 LTS 버전이며, 서버 버전은 계속 지원되며 보안 업데이트를 받습니다. 그러나 heartbleed 취약점은 우분투 10.04 표준 설치의 openssl 패키지에 영향을 미치지 않았습니다. 버전이 1.0.1 미만이기 때문입니다.

데스크톱 버전의 수명이 종료되어 업그레이드/재설치가 필요합니다.

Ubuntu 13.04 및 기타 오래된 버전

Ubuntu 13.04는 예상할 수 없을 만큼 매우 짧은 지원 주기를 가졌습니다. 이미 수명이 종료되어 더 이상 보안 업데이트를 받을 수 없습니다. 오랫동안 업그레이드했어야 했습니다. 아직 누군가가 사용하고 있다면 지금 업그레이드하십시오. 처음부터 업그레이드하거나 다음의 간단한 절차에 따라 비파괴적으로 13.10으로 업그레이드할 수 있습니다.http://www.tecmint.com/upgrade-ubuntu-13-04-raring-ringtail-to-ubuntu-13-10-saucy-salamander/업그레이드 후 시스템은 13.10부터 하트블리드 패치를 받습니다.

다른 모든 오래된 우분투 버전의 경우 기본적으로 새로 설치해야 함을 의미합니다.

패치가 적용되었는지 확인

기본적으로 실행하여 openssl version -a빌드 날짜가 2014년 4월 7일 이후인지 확인하세요.여기.

재부팅

OpenSSL에 의존하는 모든 서비스를 다시 시작하는 가장 좋은 방법은 다음과 같습니다.재부팅.

답변4

데비안 Wheezy

데비안이 출시되었습니다DSA-2896-1패치된 라이브러리는여기에서 사용 가능. 쉘 스크립트는여기에서 사용 가능.

1. 패치

Apt-get 저장소가 업데이트되었으므로 이제 패치된 라이브러리를 다음을 통해 사용할 수 있습니다.apt-get update && apt-get upgrade

apt-get upgrade libssl1.0.0 openssl

또는(권장되지 않음) 패키지를 수동으로 업그레이드할 수 있습니다.

wget http://security.debian.org/pool/updates/main/o/openssl/libssl1.0.0-dbg_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/openssl_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/libssl1.0.0_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/libssl-dev_1.0.1e-2+deb7u5_amd64.deb

dpkg -i openssl_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl1.0.0_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl1.0.0-dbg_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl-dev_1.0.1e-2+deb7u5_amd64.deb

2. 서버/서비스 다시 시작

최상의 보호를 위해 전체 서버를 다시 시작하거나, 서버가 오프라인일 수 없는 경우 필요한 서비스를 다시 시작하세요.

3. OpenSSL 버전 확인

love@server:~$ openssl version
OpenSSL 1.0.1e 11 Feb 2013
love@server:~$ dpkg -l libssl1.0.0
||/ Name                    Version          Architecture     Description
+++-=======================-================-================-====================================================
ii  libssl1.0.0                 1.0.1e-2+deb7u6  amd64            SSL shared libraries

관련 정보