HoneyPoC 確認せずに攻撃コード(PoC)を実行してはいけない!
Apache HTTP Serverの脆弱性(CVE-2021-41773、CVE-2021-42013)が公開され大きく話題になり、その後すぐに攻撃活動が始まり、攻撃コード(PoC)も公開されました。
今回の脆弱性のように、人々が多く関心を持つような脆弱性の場合、PoCが流通しているかどうかについて悪意を持った攻撃者だけでなく、セキュリティに関わる開発者も興味を持って探し、見つけた場合にはSNSなどで共有されることもあります。
PoCを見つけると、攻撃者はそれを使って無差別に攻撃を開始したり、セキュリティエンジニアは自分たちの環境に影響があるかどうかの確認に利用したりします。
しかし、そのPoCが脆弱性を検証するためのものではなく、実行した人に悪影響を与えるような悪意を持って作成されたものの場合には、実行した環境に大きな被害を及ぼすこともあります。
今回は、HoneyPoCと呼ばれる盲目的にPoCが実行されていることを示した調査プロジェクトについてと、マルウェアと疑われるPoCが公開されている事例について紹介します。
HoneyPoC 盲目的にPoCが実行されていることの調査
Apache HTTP Serverの脆弱性やWindowsの脆弱性のような世の中で広く利用されているソフトウェアにインパクトが大きい脆弱性が発見されると攻撃者だけでなく、セキュリティの研究者や社内のセキュリティ担当者など多くの人たちがPoCが公開されていないのか調査することがあります。
調査する時にはTwitterのような情報提供スピードが速いSNSが利用されることが最近では多い印象です。
インパクトの大きい脆弱性の場合では、対応のスピードが求められることもあるため、PoCの中身をよく確認せずに実行し、自分たちの環境でも影響があるのか確かめたくなるものです。
しかし、SNSで注目されているPoCだからといって盲目的に信頼して実行しても大丈夫なのでしょうか。
HoneyPoCと呼ばれる偶発的に発生したプロジェクトで、世の中の多くの人がコードの中身を確認せずに実行し、SNSで拡散してしまっていることが指摘されています。
このプロジェクトは、大きく話題になったSIGRedと呼ばれるWindows DNSサーバーの脆弱性(CVE-2020-1350)が公開された時に、偽物のPoCをGitHubで公開し、どのような結果になるのかやってみたことから始まりました。
このプロジェクトで公開されているGitHubのリポジトリはこちらです。
(初回公開時から変更が入り、HoneyPoCであることがREADMEからすぐにわかるようになっています)
https://github.com/ZephrFish/CVE-2020-1350
このリポジトリを見てみると、exeファイルやスクリプトファイルなどが実行方法とともに提供されており、READMEだけを見るとよくあるPoCのように見えるので、正しく動作するように思えます。
しかし、スクリプトファイルの中身を見てみると脆弱性を検証するための処理ではないことが明らかです。
このように、少し確認すれば正しいPoCでないことがわかるようなものですが、HoneyPoCのブログ記事にあるように、公開後すぐに1000回以上実行されたそうです。
さらに、海外のCERTがTwitterでHoneyPoCを誤って拡散してしまうという事態にもなっていました。
ゼロデイ脆弱性や攻撃活動が既に始まっていると言われている脆弱性に関しては、早急な対応が求められますが、詳しく確認せずに誤った情報やPoCを信頼してしまうと正しい判断が取れなくなってしまいます。
それだけではなく、悪意を持った人が作成したPoCを実行してしまうことでさらに被害が拡大することも考えれます。
マルウェアと疑われているPoCも
先ほどの例では、調査のためにIPを収集するPoCであったため、実行しても大きな被害はありませんが、悪意のあるPoCを実行してしまった場合にはどうでしょう。
冒頭でも触れたApache HTTP Serverの脆弱性(CVE-2021-41773、CVE-2021-42013)に関して、現在GitHubに公開されているPoCを調査してみると数多く公開されていることがわかります。
この脆弱性はパストラバーサルの脆弱性で、多くのPoCが比較的簡単なスクリプトやcurlコマンドが例示されており、なかには脆弱性なApache HTTP Serverのバージョンと設定を含む検証用のコンテナ環境まで用意されているものもあります。
単純なスクリプトであれば、中身を確認することで実行時にどのような振る舞いをするのか、実行しても問題なさそうかの判断がしやすいのですが、exeファイルのような実行ファイルで提供されている場合には詳しく調査をしなければわかりません。
Apache HTTP Serverの脆弱性のPoCとして公開されているものの中に、すでにVirusTotalなどのマルウェア検査サービスで確認を行うとMaliciousであると評価されているものもあります。
PoCなどの脆弱性を再現させるためのツールは、悪意を持って作成されたものでない場合でも攻撃者に利用されれば悪用が可能であるため、マルウェアとして検出されることがあります。
そのため、VirusTotalなどで実行ファイルを検査し、マルウェアの可能性があると判断された場合でも必ず悪意を持って作成されたものだとは断定できませんが、ソースコードが公開されておらず無害であると確信が持てないものは利用しない、利用する場合は検証用の仮想環境で実行するなど十分に注意が必要です。
今回のApache HTTP Serverの脆弱性も注目度が高い脆弱性だったため、HoneyPoCと同様の偽物や悪意のあるPoCが紛れている可能性があります。
セキュリティ研究者を標的にした攻撃活動
PoCの調査をするようなセキュリティの意識が高いエンジニアでさえもHoneyPoCや悪意のあるPoCを実行してしまうことがあります。
2021年1月に、以下の記事にあるようにセキュリティの研究者を狙った攻撃というのもありました。
New campaign targeting security researchers - Google Threat Analysis Group (TAG)
この記事によると、ある攻撃グループがセキュリティ研究者とSNSで繋がるために興味を引くPoCを実行している動画をアップするなど行い、その後セキュリティ研究者と個別に連絡を取り、脆弱性の共同研究を装って悪意のあるコードを含むVisual Studioプロジェクトを提供していたようです。
その後、2021年3月に追加で以下の記事が公開されました。
Update on campaign targeting security researchers- Google Threat Analysis Group (TAG)
同じ攻撃者グループが、セキュリティの企業や研究者になりすましたWebサイトやSNSのアカウントを作成し、セキュリティの研究者を狙った活動を再度行っていました。
このような活動は現在でも続いていると言われています。
興味を引く情報でおびき寄せ、個別のコミュニケーションで信頼させ、攻撃を行うというソーシャルエンジニアリングによる攻撃は、セキュリティの意識が高い人でも被害を受けることがあります。
さいごに
インパクトのある脆弱性が公開されると、攻撃活動が既に始まっているのかどうか、PoCはあるのかとセキュリティに関わる人たちは急いで情報収集することがあります。
このような状態の時に、攻撃者は興味を引くようなPoCを公開したり、加えて個別に連絡を取るなどの信頼を得られるような活動を通して、混乱に乗じた攻撃を仕掛けてくることがあります。
HoneyPoCの例のように、海外のCERTでさえも誤った行動をとってしまう事態にもなることがあります。
信頼できる情報源からの情報を信頼することも大切ですが、手間はかかりますがしっかりと自分で情報を精査することも大切です。
yamoryでは、世の中にある脆弱性情報を収集し、その情報をそのまま利用せずに、内部のセキュリティアナリストが調査、分析した情報をデータベース化しています。
最近の調査の中でも、HoneyPoCのような実際には脆弱性の検証を正しく行うことができないPoCを発見しています。
もし、公開されているPoCを使った検証を行う場合は、中身をよく確認し、十分注意して利用することが大切です。
yamoryでは、脆弱性管理サービスの無料トライアルを提供しています。
また、エンジニア・セキュリティエンジニアを募集しております。こちらより応募お待ちしております。