ハードコーディングされていた鍵

ほぼこもセキュリティニュース By Terilogy Worx

APT41がUSAHerds Webアプリケーションのゼロデイ脆弱性を悪用した活動を行っていることが観測されています。
USAHerdsは米国で利用されている動物の健康に関する緊急報告診断システムです。
18の州で利用されています。

悪用された脆弱性はCVE-2021-44207です。
USAHerdsはASP.NETで作成されて配布されているソフトウェアです。
アプリケーションとして実装された状態で配布されていますので、利用する際には入手したものをそのまま使用することができます。
で、そのまま使用した場合に、アプリケーションの使用する鍵がハードコーディングされていてすべての動作環境で同じ鍵になってしまっていたという話です。

ここでいう鍵とは何でしょう。
ASP.NETでアプリケーションを作成する際に、MachineKeyというものを使用します。
このMachineKeyを使ってフォーム認証やビューステートでの検証と暗号化を実施します。
そしてASP.NET のランタイムが生成する認証用のクッキーやビューステートは、この MachineKeyを使って改ざん対策と暗号化を行うことが可能です。
鍵ですので、この鍵があれば暗号化された内容を確認することができます。
せっかく暗号化していても誰でも内容を確認することができる状態というのは期待されていません。
このため、アプリケーションインスタンスごとに一意に生成されたmachineKey値を使用するということがASP.NETでのMachineKey利用のベストプラクティスとなっています。

7.4.0.1までのUSAHerds Webアプリケーションでは、MachineKeyがハードコーディングされていたのです。
これを悪用し、攻撃活動が展開されました。
現在は対策済みのアプリケーションが運用されていることと思いますがドキドキするニュースです。

この話はUSAHerds Webアプリケーションに限った話ではありません。
便利なツールを利用して便利なツールを作る、またその便利なツールを使って便利なツールを作る。
このように階層的にソフトウェアは利活用されます。
そのそれぞれの段階で、適切な設計と利用が行われるようにする必要があります。

ある特定の段階の設計者の立場で考える場合に、すべての段階の設計が妥当であるかを検証して修正していくことは容易ではないように思えます。
ですのでせめて自分の設計する部分については鍵をハードコーディングしたままにしてしまうような落とし穴がないようにしたいものです。

利用者の立場として考える場合は、せっかく修正済みとなっている問題はせめて速やかに修正した状態にして利用したいものです。

それぞれの立場で適切な行動が選択できていくとよいですよね。

参考記事(外部リンク):Does This Look Infected? A Summary of APT41 Targeting U.S. State Governments
www.mandiant.com/resources/apt41-us-state-governments