JH1LHVの雑記帳

和文電信好きなアマチュア無線家の雑記帳

スポンサーリンク

ソフト起動時の「Windows Smart Screen」について

Windows で出所不明のプログラムを起動するとき。

Windows 8 以降から Windows Smart Screen というセキュリティ機能がデフォルトでオンになっているので、インターネットからダウンロードした不明なプログラムを起動しようとすると、ディスプレイに以下の警告が出て、そこでストップするようになっています。

f:id:JH1LHV:20190518205542j:plain

拙作のソフト、Learning morse  や cw mania もダウンロード後の初回起動時にこのような警告が出て起動しません。

これはネットからダウンロードしたファイル(有料のコードサイニング証明書を使えば回避できます。)を、怪しいファイルとしてユーザに注意喚起するという、とってもお節介な機能ではありますが、インストールや起動を一旦立ち止まらせて考える時間を与えてくれる、とっても優しい機能です。

開発元が判明しているとか、ファイルの身元がしっかりしているとか・・・実行型式のファイルのクリックは慎重に行う。これ、絶対に必要ですから。

それと、わたしはあまり信用してませんが、ウイルス検知ベンダーの検知ツールなどでチェックすることも必要でしょう。

ちなみに、わたしは(現時点)カスペルスキーの検知ソフトを使っています。
これは過去、国内で販売されている10数本の検知力を比較した時に、イチバン ”まとも” だと感じたので、それから使い続けています。  

 

実行方法は2通りあります

こういったネットからダウンロードしたファイルを実行するためには、以下の方法など幾つかあると思いますが、必ず何らかの検知ツールを使いチェックすることだけは行ってください。

ネットに新たに公開されたようなファイルは、それがホンモノの不正プログラムだったり、なんらかのウイルスに感染したものだとしても、必ずパターンファイルが作成されベンダーのアップデートで駆除できるはずです。

公開ほやほやのファイルだと、いわゆるゼロディ攻撃が心配になりますが、公開されて1週間も過ぎれば、それがウイルスなら必ず定義ファイルは提供されます。

どうしても心配なら、公開されてから1週間わざと寝かせて、それからウイルス検知ツールでチェックする。誰かが人柱になるのを待つのもいいと思います。


① ”詳細情報” から許可する方法

f:id:JH1LHV:20190518211234j:plain
"詳細情報" をクリックして次の画面に進めます。

f:id:JH1LHV:20190518211252j:plain
あとは ”実行” ボタンを押すだけで、次回以降この screen は表示されずプログラムは起動します。


② プログラム(EXE ファイル)のプロパティで許可する方法

f:id:JH1LHV:20190518211144j:plain

過去記事と同じですが、ファイルのプロパティからセキュリティを「許可する」にチェックを入れれば、次回以降 screen で停止することなくプログラムは起動します。
(ネット経由で落としたファイルにセキュリティの項目は追加されます。)

 

ウイルスチェックについて

当ブログで公開しているファイルは、当たり前のことですが、必ずウイルスチェックを行い、安全を確認してから公開しております。 

基本的にはカスペルスキーのウィルス検知ツールを使いながら、最終的には virustotal というウェブサイトも使って確認しています。

それで、今回、 smart screen の話を書く上で、改めて virustotal でチェックしたところ、Learning Morse v.0.78 で 3/71 と、ウィルス判定されました。
(cw mania v.0.75 は 0/71 判定です。)

これはまったくの誤判定であり、どこに原因があるか時間をかけて調査しましたが、今日現在、この判定をゼロにすることはできず、今に至っています。

f:id:JH1LHV:20210131010300j:plain


本当にウイルスに感染しているなら、このレポートはもっと赤字だらけになるはずです。
この業界、他のベンダーの情報にも敏感で、その感染がホンモノというなら 71 中、ほぼ半分以上のベンダーで陽性判定になるはずです。

検知結果をキーワードにググったりしてみましたが、誤検知報告はあっても、まともな情報を得ることはできませんでした。

ちなみに、結果の一番下の Trapmine で調べても、
「2018年12月現在で誤検出が酷いウィルススキャンエンジン・・・」
だとして、ソフトウェア開発者を困らせているという記事がヒットしました。

誤判定した各ベンダー宛にファイルを送って修正するよう報告することも考えたのですが、拠点が海外ということもあって・・・サイトを見ても窓口が不明で、相手に上手く伝わらないんじゃないかって。。。

f:id:JH1LHV:20210131010350j:plain


もちろん、カスペルスキーでは脅威なしの結果です。

ちなみに同じソースコードを 32bit から 64bit にコンパイル・オプションを変更してコンパイルしてみたところ、0/71 で、ウイルス判定は ”なし” でした。

f:id:JH1LHV:20210131010429j:plain


同じソースコードであるにも関わらず、コンパイル後の 32 bit と 64 bit の EXE ファイルで判定結果に差が出るということは、32 bit の実行ファイルを生成する時に必要なライブラリやコンポーネントで誤検知が発生しているんじゃないかと推定できます。

セキュリティソフトによる弊社開発ツールのウィルス誤検知について

わたしの Windows の開発環境は Embarcadero の delphi (10.3.1)なんですが、この誤検知が開発環境の中のなんのライブラリで、またはコンポーネントで発生しているのか、フォームに配置したコンポーネントを削除したり、呼び出しているライブラリのコードをひとつずつコメントアウトしたり、そんなことを繰り返しながら調査する必要があるので、しばらく時間が掛かりそうです。

Learning Morse では、TCP/IP や FTP といった通信関連の処理や、レジストリを書き換えることもまったくやってないので・・・何が引っかかっているのか皆目見当がつきません。

・・・誤検知といっても、3/71 という数字が表示されるのは気持ちがいいものじゃないので、これがゼロになるように、開発者側のやりくりで解決していこうかと思います。

正直なところ、delphi のアップデートで解決すことを期待したいのですが。
まぁ、次回 delphi のイベントに行った時にでも、誰か詳しい人にでも聞いてみようかと思います。

で、0/71 判定の 64bit 版 Learning Morse をアップしておきました。

f:id:JH1LHV:20190519180940j:plain

download: LearningMorse_v.0.78_64bit.zip


今後、未知のウイルス検出技術としてのヒューリスティックはますます加速すると思います。
パターンファイルによらない、プログラムの振る舞いだけをみてウイルスと判定する、たとえば、

  • どこかと通信している
  • システムフォルダにファイルをコピーした
  • レジストリに何か書いた

こういったプログラムを作っただけで、間違いなく ”あやしい” と判定されてしまうと思います。

有料のコードサイニング証明書でデジタル署名をするって方法もありますが、これはタダじゃないのでフリーソフト作者には厳しいですし。

ネット系のセキュリティは、今後もっとガチガチになっていきます。
セキュリティのことを考えながらフリーソフトを作ることは必須なことではありますが・・・必要以上に時間は掛かるし、シンドイのも事実です。

ということで。
ネットからフリーソフトが消えないようにと願いながら・・・。
この先もフリーソフト。作り続けていきますので、ご支援の程よろしくお願い致します。