今度の脆弱性はX.509 Email Address Buffer Overflowに関する脆弱性で、特にOpenSSL 3.0.0に導入されたX.509証明書の検証処理(名前制約条件検査機能)に使われるPunycodeによってoverflowが発生しかねません。
- ホスト名で許可された文字だけでユニコード文字列をエンコーディングする方法で、ユニコードストリングをASCIIストリングに変換するに使うアルゴリズム
- 文字、数字、ハイフン(-)のみ使用可能で、文字列は常に「XN-」文字に始まる。
- ユニコードがサポートする全ての言語でドメイン名(IDNA:Internationalized Domain Names in Application)を使えるようにしたIDNAの一部で、変換は全的にクライアント(web browser)の側面で行われる。
- ex) クリミナルアイピー.kr → xn--p50b76nozbb6p9vcq7stgi.kr
今回の投稿では新たなOpenSSL脆弱性の特徴、そして脆弱性が発見されてから約15日が経った今、まだパッチされていないOpenSSLサーバーの統計を分析しました。
OpenSSL脆弱性 の特徴および脆弱なバージョン(CVE-2022-3786、CVE-2022-3602)
新たなOpenSSL脆弱性が公開されたとき、Buffer Overflow脆弱性である上に、RCE(Remote Code Execution、リモートコード実行)攻撃ができたので、2014年に起こったセキュリティ業界の悪夢のような事件、OpenSSL Heartbleed 事態が繰り返されるのではないかという懸念がありました。
しかし、脆弱性が発現されるためには、クライアントとサーバーの両側で証明書を交換・検証する双方向SSL認証の設定がされていなければなりません。また、最新のプラットフォームではもうStack Overflowの防止機能が含まれており、一部のLinux配布版ではRCEとDoS(denial-of-service-attack、サービス拒否攻撃)の発現ができないことが明らかになりました。
このような脆弱性発現の複雑性のため、CVEのスコアはCritical → Highに低くなり、幸いなことにHeartbleedのようなひどいイシューは発生しませんでした。それでもHigh級の脆弱性であるだけに、詳細な内容を調べる必要はあります。これからその特徴について見てみます。
脆弱性の特徴
- CVE-2022-3786:攻撃者がX.509証明書内のメールアドレスを操作し、「.」を含める任意バイト数をoverflowできる。
- CVE-2022-3602:攻撃者がPunycodeをデコーディングする際、Stack上で4バイトをoverflowするよう悪意的なメールを作成することができ、それを通じてRCE攻撃またはDoS攻撃が発生しうる。
PoCコード:https://github.com/DataDog/security-labs-pocs/tree/main/proof-of-concept-exploits/openssl-punycode-vulnerability
脆弱なバージョンとセキュリティパッチが行われたバージョン
OpenSSLはウェブブラウザーとサーバーの間の通信プロトコルのSSL/TLSをオープンソースで具現したセキュリティ・ライブラリで’広く使われています。OpenSSLは今度の脆弱性で潜在的な攻撃が予想されるため、すぐ3.0.7バージョンにアップデートするセキュリティパッチを勧告しています。
脆弱なプロダクト
- バージョン 3.0.0~3.0.6のOpenSSL
- OpenSSL 1.0.2, 1.1.1 は影響されぬ
脆弱なOpenSSL バージョンを職別する方法
一般的にOpenSSLはサーバー内のライブラリなのでLinuxの「openssl version」で確認できますが、外部からは正確なバージョンを職別するのは難しいです。
次の例をみると、Fedora OSでApache 2.4.54を使用しており、OpenSSL 3.0.5バージョンを使っていることを確認できます。
ApacheウェブサーバーのHTTPヘッダーで確認した
CVE-2022-3786、CVE-2022-3602 OpenSSL脆弱性を持つIPアドレス
Security OSINT検索エンジンCriminal IP(https://www.criminalip.io/ja)にOpensslを検索すると、約210万個のIPアドレスがOpenSSLを使用していることが分かります。
Search Query : Product:OpenSSL
約210万件のIPアドレスが検索される
新たな OpenSSL脆弱性 に影響を受ける世界中1万4千のウェブサーバー
しかし、上記の方法は脆弱性の有無と関係なく、OpenSSLを使う全てのシステムが検索されるので、この脆弱性に漏洩されたシステムをより正確に探すためにはcve_idフィルターを使うことをお勧めします。cve_id: CVE-2022-3786で検索すると、本投稿を書いている現時点でopenssl脆弱性が発見されてから2週間以上が経ったにもかかわらず、まだ世界中の14,527個のIPアドレスで脆弱なOpenSSLを使用していることが分かります。
Search Query:cve_id:cve-2022-3786
OpenSSL使用サーバーが世界中に14,527台発見された
脆弱なOpenSSLを使用する国家の統計、全体の26%がアメリカ
国家別統計を見ると、OpenSSL脆弱性の保有サーバーを持つ上位5つの国はアメリカ、日本、ドイツ、中国、イギリスでした。
アメリカが全体の26%を占める
脆弱なOpenSSLを使用するASN統計、上位10の中で大部分がCloudサービスASN
脆弱なOpenSSLを使用する全てのIPアドレスをASN統計でみると、MS、Amazon、Google、OVH、DigitalOceanなど、Cloudサービスを提供する企業のASNが全体の70%に当たることが分かります。
それはクラウドサーバー内で管理されていないOpenSSLが多いことを意味します。
Cloud提供サービス業者以外にも、Hangzhou Alibabaなどの一般企業でも管理をせずに危険資産として放置されているように見えます。
上位10の中で7つがCloud提供業者のASNである
脆弱なOpenSSL バージョンを使用するIPアドレス・インテリジェンス分析
OpenSSL脆弱性を保有する3.0.5バージョンのOpenSSLを使用するIPアドレスをCriminal IPのインテリジェンスで分析した結果、22、80、443ポートが脆弱な状態でした。
今度発表されたCVE-2022-3786、CVE-2022-3602を含めて総4つの脆弱性を保有するIPアドレスで、3つのOpenssl脆弱性(CVE-2022-3786、CVE-2022-3602、CVE-2022-3358)と1つのOpenSSH脆弱性(CVE-2021-36368)が発現されうります。
もしOverflowを通じてRCEが発現されるOpenSSL脆弱性が該当サーバーに悪用されてRCEが成功的に実行されると、そのサーバーはボットに使われる恐れもあります。
Criminal IPインテリジェンス分析の結果によると、Inbound ScoreをCriticalに分類しています。つまり、そのIPアドレスがSource IPで内部にアクセスする際に危険なIPアドレスに分類され、セキュリティ担当者はそのようなIPアドレスをファイアウォールでブロックするべきです。
新たな OpenSSL脆弱性 を保有するIPアドレスの
Criminal IPインテリジェンス分析結果、総4つの脆弱性と繋がっている
Criminal IPインテリジェンス分析結果、22、80、443ポートが脆弱な状態である
OpenSSL脆弱性への措置案
OpenSSL versions 3.0.7 バージョンにアップグレードを勧告
Downloadアドレス:https://github.com/openssl/openssl/tags
今回の脆弱性が複雑性と最新プラットフォームの安定性によりCVEスコアがCriticalからHighに低くなったとは言うが、それが安全性を保障するわけではありません。脆弱な製品を使用していることを外部に漏らしてしまう1つの点だけでも、攻撃者は様々な攻撃を試みるからです。
様々なポートにスキャンをリクエストした
CIPで収集するScanner IP(https://www.criminalip.io/ja/intelligence/statistics)の攻撃履歴を見ても様々なポートに多数のスキャンをリクエストしていることがわかります。従って、管理しているサーバーの中で外部に漏洩されているポートと脆弱な製品に対してより徹底な管理が必要であり、脆弱なところがあれば早くセキュリティパッチなどの措置を取ることが重要です。
データの提供
- Criminal IP
▶ https://www.criminalip.io/ja
ご参照
https://blog.criminalip.io/ko/2022/11/09/ソフトウェアパッケージ/
0コメント