ユニークなアプローチで問題を解決する

 日々の業務では、解決しなければならない問題に直面します。一般的な問題で、解決方法が簡単なものから、少し複雑で他人のサポートやアドバイス、経験を基に解決しなければならないものもあります(スタックオーバーフローなど)。では、適切な解決策が見つからない場合はどうなるでしょうか?

 

私の経験では、当初は思いもよらなかったようなところに問題解決の糸口があります。

 

今回は弊社内で発生した問題とそれを解決するための独創的なアプローチについてお伝えします。

 

 

弊社のシステムには多数の機能がありますが、そのうちのひとつが、クライアントの使用しているテクノロジーが古いために潜在的なリスクが生じている場合にアラートで通知するという機能です。

 

この機能は次の3つのステップに分けることができます。

 

1)   企業が使用しているテクノロジーを識別する(企業アセット上に何もインストールせずに)。

 

2)   検出した各テクノロジーの最新バージョンを入手する。

 

3)   現在使用しているバージョンが最新バージョンより古ければ、必要に応じてクライアントにアラートを送信する。

 

 

1と3のステップは比較的簡単で、インターネット上に複数のテンプレートやソリューションが提供されています。常に更新されており、ウェブサイトやサーバーのテクノロジーの識別に便利です。こうしたテンプレートやソリューションを弊社スキャナーに統合/実装すると、現在使用しているテクノロジーとそのバージョンが特定できました。

 

問題は2番目のステップです。存在する全テクノロジーの最新バージョン一覧の入手先について考えました。

 

最初のアプローチでは検出したテクノロジー(名前)をCPE情報にして、NVD CPEデータベースで最新のCPEエントリーを検索しました。しかしデータベースが完全ではないことに気付き、データベースには含まれていない新しいバージョンがある、つまりデータベースに新しいテクノロジーが追加されるまで一定のタイムラグがあることがわかりました。

第2のアプローチではこの問題がすでに解決済みかどうかを検索しました。インターネット上でその答えを探してみましたが、袋小路に入りました。

 

進捗がないまま数日が経過しました。そこで、最初のアプローチに戻ってNVDデータベースを使用することにしました。

 

1週間後、ある企業(ここでは企業名は伏せます)の記事を目にしました。その会社の製品を知らなかったので、グーグル検索してみると、なんとトップにWikipediaへのリンクが表示されました。

そこで、しばらく読み進めると、その会社の製品の最新バージョンが表示されたのです。他の既知の製品についてもすぐに検索したところ、検索したすべての製品に関するWikipediaにほとんどのバージョンが掲載されていました。

そこで情報源としてWikipediaを使えないかと考えました。Wikipediaは有効な情報源で、グローバルコミュニティの優秀な人たちが毎日更新を続けています。

 

翌日オフィスに着くと、すぐに特定のテクノロジーの最新バージョンを検索する短いスクリプトを書きました。すると、問題なく機能したのです。何度かテストした後、この技法を弊社のスキャナーに実装しました。

 

それまで抱えていた問題が、やっと解決しました。

結論から言えば、この世界(情報とデータ)では100%網羅した解決策はないかもしれませんが、できるだけ100%に近付ける方法を模索すること、そしてすでに解決した問題であっても常に再考してより良い解決策を目指すことが重要です。

 

優れた解決策は他の事を考えているときや、解決しようとしていないときに浮かんでくるということを覚えておいてください。問題の解決に時間がかかりすぎる場合、考えすぎの可能性があります。ひと休みするか、場合によっては翌日まであえて考えないようにしてみてください。突然、簡単に解決できることがよくあります。