Android 09-02-2014

マイクロソフトのSMARTSCREENとアプリケーションレピュテーション(評判・評価)

デジサート

「アプリケーションレピュテーション」とは何ですか?

ピーター・シュタイナーの古典的なニューヨーカーの漫画で、一方の犬がもう一方の犬に言っているように、「インターネット上では、あなたが犬であることを誰も知りません」 インターネットからダウンロードしたソフトウェアは、インターネット上の人間に似ています。助けがなければ、どれが犬か人かを判別するのは困難です。そこで、「アプリケーション レピュテーション」テクノロジの出番です。アプリケーション レピュテーションは、マイクロソフトの SmartScreen® フィルターで採用されている手法で、インターネットからダウンロードされるときに、良いソフトウェアと悪いソフトウェアを区別します。レピュテーションの仕組みは、私たちが人を信頼するのと同じように、何度も会ってその人を研究したり、経験がない場合は他人の評判を参考にしたりしています。

あるアプリケーションの評判が悪いかどうかを判断する方法の一つは、そのフィンガープリント(指紋)がブラックリストに載っているかどうかを確認することです。FBIと同様に、ほとんどのアンチウイルス(AV)システムは、悪意のあるソフトウェアのフィンガープリントをデータベース化しています。新たな悪者が現れるたびに、そのフィンガープリントがAVデータベースに追加されます。これはほとんどの場合、機能します。しかし、映画のように、顔やフィンガープリントを変えて見つからないようにする悪者もいます。どのようにしているのかというと、AVプログラムからコードを隠すために、コードにわずかな変更や変化を加えるのです。これらの中には、複数の方法で姿を変えることができる「ポリモーフィック」と呼ばれるものがあります。突然変異するウイルスのように、実行されるたびに100万種類にもなる可能性を秘めています。このように、ポリモーフィックなマルウェアとの戦いでは、悪質なコードをブラックリストに載せる方法では、すぐに負けてしまいます。

ホワイトリストは、アプリケーションの評価を決定するもう一つの手法です。長年にわたって無害であることが証明されている有名なコードは、ホワイトリストに登録することができます。ホワイトリストが登録されているマシンに、評判の良い既知のソフトウェアがインストールまたは実行されようとした場合、システムはそれを許可することができます。しかし、新しいソフトウェアについてはどうでしょうか。SmartScreen®はどのようにして新しいソフトウェアの良し悪しを判断しているのでしょうか?

新しく公開されたソフトウェアに対して、SmartScreen®はどのように機能しますか?

SmartScreenのアプリケーション レピュテーション エンジンは、ソフトウェアがブラックリストに載っているか、ホワイトリストに載っているかを調べます。ユーザーがWindowsマシン上で有効にした遠隔測定機能から収集された情報を、過去に遭遇したコードの大規模なデータベースでチェックすることで、そのソフトウェアを評価します。 EV Code Signing証明書を使用してデジタル署名されていない新しいコードは、そのソフトウェアが評判を確立していない(すなわち、インターネット から一般的にダウンロードされていない)ことをエンドユーザーに警告します。(SmartScreen®を搭載したWindows 8では、EV Code Signing証明書で署名されたコードは、最初の評価スコアが高くなります。http://blogs.msdn.com/b/ie/archive/2012/08/14/microsoft-smartscreen-amp-extended-validation-ev-code-signing-certificates.aspx 参照)。

通常のコードサイニング証明書で署名されている場合は、作者や発行者が信頼性を確立していないために、警告が表示されます。(Windowsルート証明書プログラムのメンバーである認証局が発行した Authenticode証明書のみが評価を確立できます。) ソフトウェアやその発行者の評価が高まれば、警告が出る可能性は低くなります。署名されていないソフトウェアのレピュテーションはフィンガープリントに基づいており、署名されたソフトウェアのレピュテーションは、関連するコードサイニング証明書とコードサイニング証明書を発行した認証局のレピュテーションに基づいています。

コードサイニング証明書はどのようにしてアプリケーションレピュテーションを実現するのか?

詳細は省きますが、コードサイニング証明書の「サブジェクト名」は、デジタル署名されたソフトウェアの信頼できる発行者を特定するものです。例えば、コードサイニング証明書がコンピュータに保存されている場合、インターネットエクスプローラーによって「ツール」→「インターネットオプション」→「コンテンツ」で「証明書」→「パブリッシュ」をクリックすることで、コードサイニング証明書を確認することができます。「詳細」タブでは、「Subject」に信頼できる発行者の名前が表示されます。マイクロソフトのSmartScreen®およびEV Code Signing 証明書を発行する認証局は、この証明書情報を使用して、信頼できる発行者の評価を追跡します。それまで知られていなかった発行者は評価がゼロですが、継続的に評価が良い発行者は、以前の履歴に基づいて良い評価を得ることができます。

最後の感想

このブログ記事の短い構成では、マルウェアの発信源として知られているウェブサイトに対するスクリーニングなど、アプリケーションレピュテーションのすべての側面について言及する時間やスペースがありませんでした。もっと詳しく知りたい方は、こちらを参照してください: http://windows.microsoft.com/en-us/windows7/smartscreen-filter-frequently-asked-questions-ie9

単一の技術や戦略だけで、100%のセキュリティを実現することはできませんが、EV Code Signing 証明書とSmartScreenを併用することで、ソフトウェア発行者の身元確認が強化され、秘密鍵の保存条件が厳しくなり、SmartScreenでの評価が追加されるため、ユーザーがインターネット上でダウンロードするソフトウェアの信頼性が大幅に向上します。しかし、このような改善がなされたとしても、出所不明のソフトウェアに遭遇した場合、エンドユーザーは常識的に考えて、署名の発行者名を注意深く確認し、信頼性をさらに判断することをお勧めします。署名されたコードに対するアプリケーション・レピュテーションの提供は、マイクロソフトとデジサートがインターネット・セキュリティを向上させるための一つの方法に過ぎません。

UP NEXT
お知らせ

期限切れの中間SSL証明書チェーンの修正

5 Min

特集記事

クラウド上で量子コンピュータをいかに保護するか

NIST PQC アルゴリズムに関する詳細な説明

従来の PKI がもたらす割高な機会損失