NortonSONAR 機能の誤認識 (誤検知、誤検出) 事件
― その悪行は 計り知れない ―


◆ どうかしたのか? シマンテック社 の無法な考え方と行動

 ここ 誤認識事件 をクリックすると、 Norton の誤認識事件の最初の状況が現れます。


◆ 誤認識の発覚とシマンテック社側の対応

 2010 年 6 月に Norton の SONAR 機能が誤認識をすることを弊社 (アプリテック社) が見つけました。 SONAR が弊社のサンプルプログラム TanMasterMnt.exe のことを 「セキュリティリスクだ」 と濡れ衣を着せて、勝手に削除してしまうのです。
 SONAR がこんなデタラメを言うようでは、Norton はだれからも信用されなくなることでしょう。Norton を使うこと自体、はばかられます。

 この濡れ衣は はなはだ迷惑なので、弊社は、早速、シマンテック社のサポート部隊 (Norton サポート) に連絡しました。すると、誤認レポートを書くようにとのこと。 レポートは英語でとの点は、日本語無視ですので大いに不満でしたが、とにかくレポートを出しました。

 レポートをしてから 1 週間ほどで、弊社のサンプルプログラム TanMasterMnt.exe は 「セキュリティリスクだ」 と言われなくなりました。 メデタシ、メデタシ! いや、事件はこれで終わりませんでした。


◆ 一体全体、何を修正してくれたのか

 修正してもらった後に、弊社のサンプルプログラム TanMasterMnt.exe を少しレベルアップしたところ、またまた 「セキュリティリスクだ」 と濡れ衣を着せられ、無残に削除されてしまうのです。

 そこで、サポート部隊 (Norton サポート) に、もう少し根本的な修正をして欲しいとお願いしました。しかし、そうした修正はないと断られました。 「ない」 とは、どういうことでしょうか。通常は、再度の誤認識が起きないように直してくれるものです。

 そもそも、弊社のサンプルプログラムは、そのソースを公開して、無料で使えるものです。これを使うと、Norton の SONAR に誤認識されるようでは、困ってしまいます。 このことをサポート部隊 (Norton サポート) に知らせて、もう少し根本的な修正を求めたのですが、何も進展しませんでした。

 後に分かったことですが、SONAR 誤認識の修正は、ファイル単位 (exe や dll 単位) で行なわれるので、ファイルの内容が少しでも異なると、別のものだとみなされて、また誤認識が発生することになりかねないのです。 すなわち、誤認識が発生したファイルのハッシュ値を機械的に算出して、そのハッシュ値に一致するファイルに対しては 「セキュリティリスク」 だと言わないことにしただけなのです。

 これでは、まともな修正とは言えません。 まともに修正しようとする意欲は全く感じられませんし、修正する力もないのかもしれません。


◆ シマンテック社の考え方は?

 SONAR は、ブレーキがあまい車、火を消しにくいコンロと同じではないでしょうか。SONAR を世に出すとき、誤認識発生時の対応方法をほとんど検討していなかった、という基本設計上の問題がありそうです。 現状のファイル単位の誤認識対応では、レベルアップ時だけでなく、特にソースを公開して大勢の方々にお使いいただくような場合に、数多くの誤認識が発生して収拾がつかなくなりそうです。

 これに対してシマンテック社は、誤認識への対応方法を合理化しているので、わが社は問題ないと胸を張るかもしれません。 ファイル単位の誤認識対応は、アルバイトでもできる作業ですし、更新による2回目以降の誤認識対応は、その作業のかなりを “セルフサービス” で、誤認識発見元に行なってもらうので、シマンテック社はほとんど困らないのです。

 被害を受けているのは、誤認識をされた側です。それに加えて、デタラメを言われた側 (すなわち Norton ユーザ) も被害者なのです。それなのに、シマンテック社は、自分さえよければよいと考えているのでしょうか。

 Norton が、ウイルスでないもの にまでも “ウイルスだ” と ウソ 言い張るようになったら、 “狼少年” のイソップ物語を思い出すまでもなく、Norton は、誰からも 信用されなくなるでしょう。

 そんな Norton を使うことさえも、汚らわしい、と思う人も、きっと増えることでしょう。


◆ 取調べの可視化、いや冤罪発生を可視化してみます

 ところで、冤罪 (濡れ衣) をなくすために「取調べの可視化」が話題になっています。 しかし、何の理由も言わずに犯人に仕立て上げられてしまうこともあるのです。 Symantec社のセキュリティソフト Norton の SONAR 機能は、これをやらかすのです。

 取調べの状況を示さないだけでなく、調書も起訴も裁判もないまま犯人にされるのですから、たまったものではありません。 普通はウイルスの名前ぐらいは示すものです。 ところが SONAR 機能は、何も言わずに、単にセキュリティリスクだと言って、犯人に仕立てて削除までしてしまうのですから、全くの無法者としか言いようがありません。

 こんなデタラメのセキュリティソフト Norton をありがたがって使っている人の気がしれません。いや、Norton のユーザはかわいそうです。 Norton を信じて購入したのに、裏切られて信用できなくなるからです。 Norton のサポート期間が過ぎたら、他のセキュリティソフトに切り替えることを強くお勧めします。

 以下では、どのように冤罪 (濡れ衣・誤認識) がなされるのかを可視化してみます。皆様とくとご覧あれ!


◆ 誤認識の観察の準備作業 (.NET Framework 4)

 実際に誤認識を観察するとよくわかりますので、まずはそのための準備作業をご説明します。

 私どもが見つけた誤認識を観察するには、マイクロソフト社の .NET Framework (無料) が必要です。.NET Framework にはいくつかのバージョンがありますが、ここでは 4 が必要です。

 お使いのコンピュータに .NET Framework 4 が導入されている場合、誤認識アプリ起動の操作 に進んでください。

 まだ .NET Framework 4 が導入されていない場合は、次のページから入手してインストールしてください。

.NET Framework 4 ダウンロード情報ページ
http://msdn.microsoft.com/ja-jp/netframework/ff687189.aspx (別ウィンドウで表示します)

上記ページには下記のような 4 種類のインストール用エントリがあります。

  1. (a)  .NET Framework 4 (Full)
  2. (b)  .NET Framework 4 Full 日本語 Language Pack
     
  3. (c)  .NET Framework 4 Client Profile
  4. (d)  .NET Framework 4 Client Profile 日本語 Language Pack

 これらのうち、(a) (b) の 2 点をインストールしてください。

  (a) のダウンロードのページには、「Web インストーラー」と「標準インストーラー」の 2 種類があります。「Web インストーラー」は、インストールの作業中にインターネット接続してデータをダウンロードします。「標準インストーラー」はダウンロード時に必要なデータをすべて取り込みますので、インストール作業中はインターネット接続を必要としません。どちらを使用してもインストール結果に違いはありませんので、ご都合の良い方を選んでください。

 (b) のダウンロードのページには、「x86」と「x64」の 2 種類があります。お使いのコンピュータが 32 ビットの Windows OS の場合には「x86」を選んでください。お使いのコンピュータが 64 ビットの Windows OS の場合には「x64」を選んでください。

 ダウンロードリンクをクリックするとそれぞれのダウンロードページに移動しますので、そこに書かれている指示に従って操作を行ってください。


◆ 誤認識アプリ起動の操作

 誤認識アプリを起動するには、誤認識の実態 の中の 従業員マスタ保守の起動 など (全部で四つあります) をクリックして、起動の指示をしてください。

 各画面アプリの初回の起動時には、以下のような警告が出ます。この警告は無視して、ボタン [実行] をクリックしてください。

  


 しばらくすると、選んだ画面アプリの実行が開始されます。初回は時間がかかりますが、2 回目以降はスピードアップします。

 あるいは、次のような小画面がスクリーンの右下に登場して、SONAR が誤認識をしたことが確認できます。

  


◆ 誤認識の実態

 以下に (1) (2) (3) (4) の4つのプログラムがあります。これらをクリックすると、それぞれの起動の指示をすることができます。

 MANDALA を使った WPF アプリ (ClickOnce で起動するもの) を弊社で作成してみたところ、そのうちの一つ 従業員マスタ保守 (TanMasterMntLcl.exe) が 2010 年 6 月 に Norton の SONAR に 「セキュリティリスク」 であると誤認識されました。 濡れ衣を着せられたのです。そして、この種のプログラムの誤認率は 25 % という高い値でした。


   (1) 従業員マスタ保守の起動
   

 SONAR の修正がなされたので、2011 年 3 月 1 日現在、これは誤認識されなくなっています。



   (2) 商品マスタ保守の起動
   

 この 商品マスタ保守 (ShoMasterMntLcl.exe) は、2010 年 6 月 に誤認識された 従業員マスタ保守 (TanMasterMntLcl.exe) と極めてよく似ています。

 しかし、これは誤認識されることがありませんでした。

 アプリ画面の中にコントロール (UI エレメント) が数多くあると、不思議なことに、誤認識されないのかもしれません。弊社では、時間をかけていろいろ実験をしてみましたので、どういう傾向があるのか感じをつかんでいます。



省略版を作ってテストしてみました

 上の二つのプログラムの中身を分類すると、三つの要素から構成されています。

 (a) マイクロソフト社の 「ClickOnce と WPF」、(b) アプリプログラム、(c) 弊社の MANDALA の三つです。

 これらのうち、弊社の MANDALA をすべて取り除き、アプリプログラムの部分は画面レイアウトだけ残してすべてのプログラムを取り除いてみました。

 残ったものは、マイクロソフト社の ClickOnce WPF とアプリプログラムの画面レイアウトだけです。 ですから、動きのないプログラムになってしまいました。

 これら、すなわち以下の (3) (4) を起動すると ・・・



   (3) 従業員マスタ保守 (省略版) の起動
   

 これは 2011 年 3 月 1 日現在、SONAR に誤認識されます。



   (4) 商品マスタ保守 (省略版) の起動
   

 これは 2011 年 3 月 1 日現在、SONAR に誤認識されます。



◆ 不可解な SONAR の誤認識

 どういうプログラムに関して、SONAR は誤認識をするのか、よく分かりません。まるでデタラメに誤認識が発生しているようにも見受けられます。

 上記の省略版を見ると、すべてマイクロソフト社のプログラムですから、SONAR はマイクロソフト社のプログラムを誤認識していると言えそうです。 正確に述べると、画面レイアウトはマイクロソフト社のプログラムというよりも、マイクロソフト社の Visual Studio 2010 のデザイナというプログラムが生成したプログラムであるとの批判があるかもしれません。 しかし、いずれにしても、マイクロソフト社がらみのプログラムであることは事実です。 なお、念のためにはっきり言っておきますが、マイクロソフト社のプログラムが悪いのではなく、悪いのは誤認識する側の SONAR です。

 ちなみに、マイクロソフト社のプログラム 「ClickOnce と WPF」 を同社の 「ClickOnce と WindowsForm」 に置き換えると、誤認識は発生しないようです。 この意味では、SONAR は WPF に弱いのかもしれません。WPF は WindowsForm の改良版、機能アップ版といえますから、こうした新機能 (新機能といっても数年前からあるものですが) への理解が SONAR にないので、誤認識してしまうのかもしれません。本当に困ったことです。


◆ 誤認識を可視化して

 以上、できるだけ丁寧に SONAR の誤認識の様子を可視化してみました。

 これに対する シマンテック社 の反応や動きが何かあれば、ここにお知らせいたします。 弊社、すなわちアプリテック社のソフトの誤認識への対応は、9 ヵ月かかっても まだ満足のいく状態になっていませんが、 マイクロソフト社のソフトの誤認識への対応は、どうなることでしょうか。


◆ 誤ったマシンラーニング

 米国における SONAR の責任者の D.S. 氏の話では、SONAR はマシンラーニングを用いて構築したものだとのことです。 ただし、マシンラーニングの部分は、シマンテック社製ではなく、サードパーティのソフトを用いているとのことで、それ以上の説明はありませんでした。 少なくとも、どういう理論に基づくマシンラーニングなのか程度は述べてもらわないと、何も説明していないのと同じです。

 SONAR を構築するために、とにかく、数多くのいろいろなサンプルプログラムを基にして、マシンラーニングを実施したようです。 ところで、その中に WPF のプログラムは、入っていないのではないでしょうか。 もしも、入っていれば、(3) および (4) のような、無様な状況は考えられません。 そうしたサンプルが入っていないので、マイクロソフト社の 「ClickOnce と WPF」 という組み合わせを SONAR は、セキュリティリスクだと誤った学習してしまったように見受けられます。

 ただし、(2) のように、画面の中にコントロール (UI エレメント) が数多くあったり、複雑であったりするものは、 「ClickOnce と WPF」 以外の要素が効果を発揮してきて、必ずしもセキュリティリスクとは言えないと、SONAR は判断するように見受けられます。

 これらは、あくまでも想像ですが、少なくとも、もっと本質的な修正を SONAR にしなければ、弊社が見つけた誤認識は直らないと言えそうです。 これまで、シマンテック社は、ハッシュ値を使ったファイル単位の修正、およびこれに毛の生えたような n-gram という修正を遅まきながら実施してくれました。 しかし、どちらも表面的・表層的な修正で、そんなことでは直らなかった誤認識が数多く残っているのが現状です。 ですから、本質にせまった修正、すなわち 「ClickOnce と WPF」 という組み合わせは、「これらだけではセキュリティリスクではない」 と SONAR に学習させて欲しいのです。


 こんなことを私どもに言わせなくても、さっさと “まともな修正” で、結果を出してもらいたいものです。 弊社では、この問題に弊社の 20 % ほどを費やしています。シマンテック社にも、同社の 20 % を費やせとは言いません。 しかし、少なくとも弊社が費やした工数と同じくらいは、シマンテック社も費やすべきではないでしょうか。
 そうしているとは思えないので、弊社はシマンテック社にまるで 「施し」 をしているように感じられます。 いや、弊社は、シマンテック社に 「施し」 をする義理も義務もないのに、「施し」 を無理やりさせられていると言うべきでしょう。 大きな企業に私ども小さな企業がいじめられているようで全く悔しいことです。



    


Copyright © 2010-2011 by AppliTech, Inc. All Rights Reserved.
AppliTech および MANDALA および workFrame=Browser は、アプリテック株式会社の登録商標です。
ここに掲載の社名、製品名には、各社の商標または登録商標があります。