これは、Heartbleedのセキュリティ問題の理解と修正に関する正規の質問です。
CVE-2014-0160別名「Heartbleed」とは何ですか?原因、OpenSSLのOSおよびバージョンの脆弱性、症状は何ですか?悪用の成功を検出する方法はありますか?
システムに影響があるかどうかを確認するにはどうすればよいですか?この脆弱性はどのように軽減できますか?私の鍵または他の個人データが危険にさらされていることを心配する必要がありますか?他にどのような副作用を心配する必要がありますか?
これは、Heartbleedのセキュリティ問題の理解と修正に関する正規の質問です。
CVE-2014-0160別名「Heartbleed」とは何ですか?原因、OpenSSLのOSおよびバージョンの脆弱性、症状は何ですか?悪用の成功を検出する方法はありますか?
システムに影響があるかどうかを確認するにはどうすればよいですか?この脆弱性はどのように軽減できますか?私の鍵または他の個人データが危険にさらされていることを心配する必要がありますか?他にどのような副作用を心配する必要がありますか?
回答:
まず、おびえさせる前に、この脆弱性が実際にあなたに当てはまるかどうかを理解してください。サーバーはあるが、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日にパッチが適用されました。
バグは、より大きな問題の症状として見ることもできます。2つの関連する問題は、(1)誤ったコードがコードベースに導入されないことを保証するためのプロセスと、(2)プロトコルと拡張機能が非常に複雑でテストが難しい理由です。項目(1)は、OpenSSLおよびその他の多くのプロジェクトのガバナンスとプロセスの問題です。多くの開発者は、コードレビュー、分析、スキャンなどの慣行に単に抵抗します。項目(2)はIETFのTLS WGで議論されています。Heartbleed /プロトコルの複雑さを参照してください。
誤ったコードは悪意を持って挿入されましたか?
これが本当に間違いだったのか、あるいは悪役に代わって少しのコードが入ったのかについては推測しません。ただし、OpenSSLのコードを開発した人は、それが不注意だと述べています。参照してください深刻な導入・マン」をハートブリードのセキュリティ上の欠陥は、彼が意図的にそれを挿入拒否する。
OpenSSLのどのOSおよびバージョンが脆弱ですか?
上記のように、使用しているオペレーティングシステム、またはOpenSSL 1.0.1から1.0.1fに対してリンクされているアプリケーション。
症状は何ですか、悪用の成功を検出する方法はありますか?
これは怖い部分です。私たちが知る限り、この脆弱性が悪用されたかどうかを検出する方法は知られていません。理論的には、このエクスプロイトを検出できるIDSシグニチャがまもなくリリースされる可能性がありますが、これを書いている時点では、これらは利用できません。
Heartbleedが2013年11月には野生で積極的に悪用されていたという証拠があります。EFFのWild at Heart:2013年11月にHeartbleedを使用したインテリジェンス機関を参照してください。そして、ブルームバーグは、脆弱性が導入された直後にNSAがエクスプロイトを武器化したと報告しています。NSAが何年もの間、知性のためのハートブリードバグを悪用すると言われているを参照してください。しかし、米国Intelligence報機関はブルームバーグの主張を否定しています。IC ON THE RECORDを参照してください。
システムに影響があるかどうかを確認するにはどうすればよいですか?
システムでOpenSSLを保守している場合は、次を発行するだけですopenssl version
:
$ openssl version
OpenSSL 1.0.1g 7 Apr 2014
場合分布はOpenSSLを維持している、あなたはおそらく使用してパッチ適用による背面にはOpenSSLのバージョンを確認することはできませんopenssl
(例えば、コマンドやパッケージ情報をapt-get
、dpkg
、yum
またはrpm
)。ほとんどの(すべて?)ディストリビューションで使用されるバックパッチプロセスは、ベースバージョン番号(たとえば、「1.0.1e」)のみを使用します。有効なセキュリティバージョン(たとえば、「1.0.1g」)は含まれません。
パッケージがバックパッチされたときに、OpenSSLおよびその他のパッケージの有効なセキュリティバージョンを決定するためのスーパーユーザーに関する未解決の質問があります。残念ながら、有用な回答はありません(ディストリビューションのWebサイトを確認する以外に)。バックパッチに直面したときの効果的なセキュリティバージョンの決定を参照してください。
経験則として、影響を受けるバージョンのいずれかをインストールし、TLSサポートのためにOpenSSLにリンクするプログラムまたはサービスを実行したことがある場合、脆弱です。
脆弱性をテストするプログラムはどこにありますか?
Heartbleedの発表から数時間以内に、インターネット上の複数の人々が、この脆弱性の存在をサーバーで確認するために使用できると思われる、一般にアクセス可能なWebアプリケーションを公開しました。この記事の執筆時点では、レビューを行っていないため、アプリケーションの公開はこれ以上行いません。お好みの検索エンジンの助けを借りて比較的簡単に見つけることができます。
この脆弱性はどのように緩和されますか?
脆弱性のないバージョンにアップグレードし、脆弱なデータをリセットまたは再保護します。Heartbleedサイトで述べたように、適切な対応手順は大まかに次のとおりです。
より詳細な分析と回答については、Heartbleed OpenSSLエクスプロイトについてウェブサイト運営者がすべきことを参照してください。セキュリティスタックエクスチェンジ。
私の鍵または他の個人データが危険にさらされていることを心配する必要がありますか?他にどのような副作用を心配する必要がありますか?
絶対に。システム管理者は、脆弱なOpenSSLバージョンを使用したサーバーが実際に侵害されていると想定し、それに応じて対応する必要があります。
脆弱性が公開されて間もなく、Cloudfareは、サーバーの秘密キーを実際に回復できるかどうかを確認するという課題を提示しました。チャレンジは、ヒョードル・インドゥトニーとイルッカ・マティラによって独立して勝ち取られました。The Heartbleed Challengeを参照してください。
詳細情報はどこで入手できますか?
詳細を探している人のためのリンクダンプ:
開示イベントのかなり詳細なタイムラインは、Heartbleedの開示タイムラインにあります。誰が何をいつ知っていましたか。
プログラマーであり、OpenSSLのmsg_cb
コールバックを通じてHeartbleed攻撃を検出するなど、さまざまなプログラミングのトリックに興味がある場合は、OpenSSLのセキュリティアドバイザリ2014047を参照してください。
UbuntuはUSN-2165-1を発行しました。これは、更新されたパッケージがアーカイブで利用可能になったと述べています。次の2つのコマンドを実行して、修正を取得します。
sudo apt-get update
sudo apt-get upgrade
新しいリリース(1.0.1g)を含むDebianパッケージを、この目的のために設定したPPAにアップロードしました。これらの3つのコマンドは、システムにPPAを追加し、使用可能なパッケージのリストを更新し、すべてをアップグレードします。
sudo add-apt-repository ppa:george-edison55/openssl-heartbleed-fix
sudo apt-get update
sudo apt-get upgrade
注:PPAは、Ubuntu 12.04および13.10のパッケージも提供します。これは、アーカイブ内のパッチを適用したバージョンを使用するのではなく、実際に新しいバージョン(1.0.1g)を実行する場合に備えています。
これはLTSバージョンです。サーバーバージョンは引き続きサポートされており、セキュリティ更新プログラムを受信します。しかし、バージョンが1.0.1未満であるため、heartbleed脆弱性は、ubuntu 10.04の標準インストールのopensslパッケージには影響しませんでした。
デスクトップバージョンはサポート終了となり、アップグレード/再インストールする必要があります。
Ubuntu 13.04のサポートサイクルは非常に短いものでしたが、予期しないかもしれません。すでに寿命に達しており、セキュリティ更新プログラムを受信しません。長い間アップグレードされているはずです。それでも誰かがそれを使用している場合は、ゼロからアップグレードするか、この簡単な手順に従って非破壊的に13.10にアップグレードすることができます:http : //www.tecmint.com/upgrade-ubuntu-13-04-raring-ringtail -to-ubuntu-13-10-saucy-salamander /アップグレード後、システムは13.10からheartbleedパッチを受け取ります。
他のすべての古いubuntuバージョンでは、基本的に新規インストールが必要です。
基本的に、実行openssl version -a
し、ビルド日が2014年4月7日以降であることを確認しますが、詳細はこちらをご覧ください。
Mon Apr 7 20:31:55 UTC 2014
)後にコンパイルされました。
これらは脆弱です。 RedHatのエラッタRHSA-2014-0376は、パッチが適用されたライブラリが利用可能であり、影響を受ける人はできるだけ早くアップグレードする必要があると述べています。
執筆時点では、CentOSにはまだ修正されたバージョンがありませんが、CartOS-announceへのKaranbir Singhの投稿openssl-1.0.1e-16.el6_5.4.0.1
は、悪用可能なTLS を含むopenssl(、重要な最後の4桁に注意してください)の更新バージョンを作成したと述べていますコマンドは無効であり、最終的にリリースされたときに修正バージョンによって上書きされるため、安全に適用できます。
一時的に修正されたバージョンはまだすべてのミラーにインストールされていないようですが、http://mirror.centos.org/centos/6/updates/x86_64/Packages/(および同様にi686)。
編集:Iainが言うように、今ではC6.5の完全にパッチされたバージョンがあり、急いでミラーの周りにプッシュされたようです。まっすぐyum update
に私のサーバーのためにそれを手に入れました。それopenssl-1.0.1e-16.el6_5.7
です。
これらは脆弱ではありません。Red Hatのこの勧告によると、
この問題は、Red Hat Enterprise Linux 5およびRed Hat Enterprise Linux 6.4以前に同梱されているopensslのバージョンには影響しませんでした。
Karanbir SinghのCentOS-announceへの投稿は、バージョン管理についても同様に明確です。
今日の前半に、CentOS-6.5に同梱されているopensslの深刻な問題を認識しました。
Debianは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
wheezy/security
場合は、で十分apt-get update && apt-get upgrade
です。または、パッケージのみを更新するために、対話型のパッケージマネージャを使用してopenssl
、libssl1.0.0
、libssl1.0.0-dbg
およびlibssl-dev
(システムにインストールなど)。
OpenSSL 1.0.1e 11 Feb 2013
パッチの名前が1.0.1e-2であるため、パッチopensslバージョンを適用した後の@ user568829は引き続き表示されます。確認できdpkg -l openssl
、バージョンが表示されます1.0.1e-2+deb7u6
FreeBSDのセキュリティチームは:CVE-2014から0160(別名"ハートブリード")とに関する勧告を発行したのFreeBSD-SA-14:06.opensslを
FreeBSDの更新
バイナリパッチを介してFreeBSDを更新する
i386またはamd64 プラットフォームでリリース版のFreeBSDを実行しているシステムは、freebsd-update(8)ユーティリティを介して更新できます。
# freebsd-update fetch
# freebsd-update install
ソースからFreeBSDを更新する
以下の場所から関連するパッチをダウンロードし、PGPユーティリティを使用して切り離されたPGP署名を確認します。
# fetch http://security.FreeBSD.org/patches/SA-14:06/openssl-10.patch
# fetch http://security.FreeBSD.org/patches/SA-14:06/openssl-10.patch.asc
# gpg --verify openssl-10.patch.asc
ルートとして次のコマンドを実行します。
# cd /usr/src
# patch < /path/to/patch
オペレーティングシステムを再コンパイルする
FreeBSDハンドブックに記載されているbuildworldとinstallworldを使用します。
最小バージョン1.0.1_10でopensslポートを更新します
ライブラリを使用してすべてのデーモンを再起動するか、システムを再起動します
システムが危険にさらされているかのように振る舞い、すべてのsslキーや証明書、および潜在的に漏洩した情報を再発行します(EEAAのより一般的な回答を参照)。
これらのシステムは、ポートからopensslをインストールしない限り、デフォルトのopensslライブラリの0.9.xバージョンに依存しているため、デフォルトではHeartbleedの問題に対して脆弱ではありません(2階を参照)。
これらのシステムがHeartbleedの問題に対して脆弱ではない場合、別のローカル脆弱性のためにシステムをすぐにアップグレードする方が賢明かもしれません(FreeBSD-SA-14:06.opensslおよび2階の「FreeBSD 10.0」セクションを参照)。
ローカルの攻撃者は、署名プロセスをスヌーピングし、そこから署名鍵を回復できる可能性があります。[CVE-2014-0076]
注:
オリジナルのHeartbleed勧告では、FreeBSD 8.4および9.1が潜在的に脆弱であると記載されています。これは、Heartbeat Extension(デフォルトのFreeBSD opensslライブラリがバージョン0.9.xである)がないために当てはまりません。
使用しているいくつかのアプライアンスで使用されているSSLのバージョンを判別することはほとんど不可能であることがわかりました。技術的には緩和策ではありませんが、現在脆弱なホストを識別できることは私のリストのトップにありました。
FiloSottileのテストモジュールを使用して、任意のホストとポートに対してチェックを実行する小さなVMを作成しました。一見したところ、コードは健全に見えます。
完成したVMのリリースはこちらです。VMX形式です。
警告の言葉
このスクリプトとVMは、システムの現在のステータスのみを表示します。過去のある時点で、システムが脆弱な状態にあり、悪用される可能性が完全にあります。
ここに表示されるものは間違いなく修正する優先度が高いですが、更新プログラムを適用し、すべてのキーを変更するためのフックから外れることはありません。
Amazon Linux(Amazon EC2で使用されるLinuxディストリビューション)
https://aws.amazon.com/amazon-linux-ami/security-bulletins/ALAS-2014-320/
問題の概要: OpenSSLがTLSハートビート拡張パケットを処理する方法で、不足している境界チェックが見つかりました。この欠陥は、接続されたクライアントまたはサーバーから最大64kのメモリを明らかにするために使用される可能性があります。
影響を受けるバージョン: openssl 1.0.1がインストールされているAmazon Linux AMI(Amazon Linux AMI 2013.03以降、および2013.03以降にアップグレードされたAmazon Linux AMI)。OpenSSLは、デフォルトでAmazon Linux AMIにインストールされます。
影響を受けるパッケージ: openssl
問題の修正:yum update opensslを実行してシステムを更新します。新しいパッケージをインストールしたら、opensslを使用しているすべてのサービスを手動で再起動するか、インスタンスを再起動する必要があります。新しいパッケージの名前はまだopenssl-1.0.1eですが、CVE-2014-0160の修正が含まれています。
新しいパッケージ: i686:
openssl-1.0.1e-37.66.amzn1.i686
openssl-static-1.0.1e-37.66.amzn1.i686
openssl-perl-1.0.1e-37.66.amzn1.i686
openssl-devel-1.0.1e-37.66.amzn1.i686
openssl-debuginfo-1.0.1e-37.66.amzn1.i686
x86_64:
openssl-devel-1.0.1e-37.66.amzn1.x86_64
openssl-1.0.1e-37.66.amzn1.x86_64
openssl-debuginfo-1.0.1e-37.66.amzn1.x86_64
openssl-perl-1.0.1e-37.66.amzn1.x86_64
openssl-static-1.0.1e-37.66.amzn1.x86_64