コメントアウト

先週の金曜日(2021/6/25)くらいに、残念なニュースがありました。
家庭用のNAS(ネットワーク接続できるHDDです)が危険なのでネットワークから切断してください、というニュースでした。
あのニュースは、原因不明の侵害が発生していてデータがすべて削除されてしまう事象が確認されているので、急いでネットワークから外してください、というようなものでした。
今日の話はその続きの話しです。

先週の時点でこの事例は、2015年にサポートが終了している製品において発見された2018年の脆弱性が関連しているとされていました。
それも事実の一部ではあったようですが、データがすべて削除されてしまう、の部分については、これとは別の問題があったことがわかったのです。

今回の対象製品には、リモートから工場出荷時の状態に戻すことができるリモート初期化機能が搭載されています。
この機能はその機能の利用時にユーザ認証状態を確認して認証済みだったときだけ動作するというものでした。
ふつうこれを期待しますよね。
実際そのように動作する機構が実装されていました。
が、いつどうしてこうなったのかは不明なのですが、このリモート初期化機能のなかのユーザの認証状態を確認する部分のコードがコメントアウトされていたというのです。

いろいろなソフトウェア開発の現場では、その開発の過程において、実装中の機能の動作確認の都合などの何らかの事情で、一度実装された機能が部分的に無効化されて利用されるということはよくあることに思います。
普通はこういった変更は一時的なもので、最終的に製品として出荷されるまでにはその開発上実施されたコメントアウトは元通り機能する状態に戻されます。
残念ながら今回のケースでは、もしかしたらそういった活動に漏れがあった、のかもしれません。
事実は不明ですが。

ということで、こんなことだったのかもしれません。

  1. 攻撃者はこの製品の1台にアクセスすることができた
    設定されたパスワードが弱かったのか、なんらかの侵害行為によって入手したのかはわかりません
  2. その機器を使ってこのリモート初期化機能のリクエストの仕様を知った
  3. ネットワークに公開されている同じ製品のIPアドレスを知った
  4. 到達できるすべての同じ製品に対して、リモート初期化機能を、認証をすることなく実行した

この過程はすべて仮定です。

わたしもモノを作ることがあります。
モノを作るときに一時的なコメントアウトを行うこともあります。
一時的なコメントアウトを行うことなく開発を行うことは効率的ではない場合があります。

一つのコメントアウトの戻し忘れというのは、些細な誤りかもしれません。
しかしそういった些細な誤りがこういった大事件の原因になる可能性があることを肝に銘じて、日々の活動を行っていく必要があるのだと思いました。
ほんとうに鳥肌が立ちました。

参考記事(外部リンク):Hackers exploited 0-day, not 2018 bug, to mass-wipe My Book Live devices
arstechnica.com/gadgets/2021/06/hackers-exploited-0-day-not-2018-bug-to-mass-wipe-my-book-live-devices/

WizCase Report: Vulnerabilities found on WD My Book, NetGear Stora, SeaGate Home, Medion LifeCloud NAS

https://www.wizcase.com/blog/hack-2018/