不具合の複合技に出会ってしまった話

大企業のPCは電力の大半を常駐ソフトが使用している

PCやらスマホやらが企業内に爆発的に増えている現状において、デバイスの管理は重要な項目だったりする。具体的にはデバイス管理ソフトというものを導入して、PCに不審なソフトいれてないか、やっちゃいけない設定を行っていないか、管理外のPCが接続されていないか、OSは適切にバージョンアップされているかみたいなことを監査することで、インフラを守る役割を担っている。一般的には、クライアントとなるPCやモバイルデバイスに常駐ソフト(エージェント)を入れて、定期的に管理サーバに状態を報告させることで、違反項目を見つけるような動きをしているのだ。また、必要があれば遠隔からソフトを一斉インストールすることもできる。

常駐ソフトはデバイス管理のエージェントだけではなく、ウィルス対策ソフト、EDRソフト*1、Chatソフトなどもあるため、古くからある大企業になればなるほどPCは動作が重いという状態になっていたりするのだ*2

EDR切り替えイベントで発生した不具合

1年ほど前の話。EDRソフトを別ソフトに切り替えるという話になった。まあそれはデバイス管理ソフトにて自動で行われるということだったので、個人的にはどうでもよかったのだけれど、実際にEDRソフトが切り替わってみると、新旧2つのEDRソフトがPC内に共存している状態が多数観測された。すべてのPCで発生しているわけではなかったので、共通点を探ったところ、「デバイス管理ソフトからみると、旧EDRソフトが2バージョンと新EDRソフトがインストールされているように見える」ということであった。

EDRソフトを「ソフトA」、新EDRソフトを「ソフトB」とした際に
・ソフトA Version10
・ソフトA Version20
・ソフトB Version5
が同居しているように見える。

しかし、実際このPCではソフトA Version20、ソフトB Version5しか動作していない。
なので、情報システム部に以下のように報告を行った。

  • 新旧のEDRが共存しているPCがかなりの数発生している。
  • バイス管理ソフトでみると、EDR共存しているPCには、ソフトA Version10のインストール情報が削除されていない状態で残っているようだ
  • しかし実際にPCでインストール情報を確認してみると、Windowsの機能上はソフトA Version10のインストール情報が存在しない
  • つまり、ソフトA Version10の情報がレジストリにのこっており、Windows側ではインストールされていると認識されていないが、デバイス管理ソフトではインストールされていると認識している。
  • これは推測であるが、EDR切り替え用のプログラムが、「ソフトA Version10」を見つけてアンインストール(失敗)し、続けて「ソフトB Version5」をインストールしてしまうので共存してしまうのではないか*3

まあ、実際その通りだったようで、結局は「ソフトA Version20」をアンインストールすることで決着を見たのであった。この時「ソフトA Version10のレジストリk情報どうしますか?」と問い合わせたところ、「おそらくレジストリ情報のこっていても問題ないので、方針は検討するが、そのままレジストリ残すようになるだろう」とのことであった。

問題のレジストリ情報を消さなかったことで発生した不具合

数日前の話、「デバイス管理ソフト」が「あんた管轄のPC群に、違反ソフトがインストールされているPCが、いっぱいいるよ」と通告してきた。どのソフトだよめんどくせーなとか思いつつ、デバイス管理ソフトを見てみたのだけれど、なんとこのデバイス管理ソフトは「違反を通知する癖に、どのソフトが違反か教えてくれない」のであった。アホか。んじゃ違反ソフト一覧でも見てみるかと思ったのだけれど、違反ソフト一覧も見せてくれない。アホか、アホか。

ということで、そのPCを持ってきて、中に入っているソフトを洗い出してみたのだけれど、問題のあるソフトは存在しない。なんじゃそりゃとおもったが、ふと昨年のことを思いだしてひらめいた。

これ「ソフトA Version10がレジストリに残っているのに、情報システム部がソフトAを違反ソフトとして登録したんじゃね?」と。

ということで、レジストリをバックアップしつつ、「ソフトA 」のレジストリを検索して削除したところ、無事違反ソフトはなくなったのであった。
この状態を情報システムに報告して私の仕事は完結したのであった。

複合した不具合
  1. ソフトA Version10のアンインストーラが、きれいにインストール情報を消してくれなかった。
  2. バイス管理ソフトが、いくら「レジストリに情報残ってる」とはいっても、Windowsが認識しているインストール情報と異なるインストール情報を認識していた。
  3. EDR入れ替えソフトが、「旧EDRソフトのアンインストールがすべて完了したか」確認しない状態で、新EDRソフトをインストールする仕様であった。
  4. 情報システム部がこの情報を把握しておきながら、違反ソフトとしてソフトAを登録した。

という、1つ1つはそれほど大きくない不具合の複合技で、2回もめんどくさい状態にさらされてしまったのだ。
まあ、なんというかEDRソフトメーカーと、デバイス管理ソフトメーカーと、情報システム部に「おハゲあそばせ」と言いたくなったりしたのであった。

とはいっても、そもそもこの問題の大きな要因は上記2であるので、情報システム部はちゃんと本事例をデバイス管理ソフトメーカーに報告して、修正してもらうべきだったろうと思うのであった。

*1:EDRソフトというのは「ウイルス対策ソフトで検出できないような攻撃を受けてしまった際に、その調査と対応を行うためのソフト」

*2:一般に古い大企業になればなるほど、「保身のために安全対策のための金には糸目をつけないが、PCのスペックと生産性の関係はは興味がない人物」が予算の決定権を持つので

*3:要はソフトAのアンインストールが正しく行われたのか確認せずに、ソフトBをインストールしてしまうというクソ仕様だったのではないか