Unity
セキュリティ

Unityで作ったゲームがウイルス扱いされた話

デジゲー博お疲れ様でした。

帰ってきてから、即座にぶっ倒れて起きたら、
「インストーラーをDownloadしたら、トロイの木馬として検出されました」

と、ユーザさんからレポートを受けて、
かなり慌てて色々調べたり、検証したりしました。

調査1

  • Unityの吐いたファイル
  • インストーラー(Inno Setup)が吐いたファイル
  • 展開されたファイル

全部洗ってみた。
ファイル改竄はどの段階でも見当たらず、また、当然この状態ではアンチウイルスには引っかからない。

調査2

アンチウイルスあるある、WhiteListのURL以外からDownloadされたものは、特定の検知ロジックが走る。

これを思い出し、実際に配信に使用している、配信サービスConcaからのダウンロードで検証。

結果、再現!!

IMG_0110.PNG

アンチウイルス系のトラブルは検証環境が作れれば9割解決したも同然なので、一気に対処に突入!

対処

参考になったのはこちらの話
https://github.com/felicienfrancois/node-innosetup-compiler/issues/10

どうも、 "setup.exe" という名前のインストーラーは、blacklist的に検知されてしまう模様。
(はー、Windowsくそかー!!と内心ブチ切れてましたwww)

ということで、インストーラー名を変えて、配信データ更新。

ただ、再度検証するも、変わらず検出されてしまう。。

この手のアンチウイルスあるある、Downloadして検知したデータの結果は、

  • ソースURL
  • ファイル名
  • +α(サイズを見ることがあれば、ハッシュまでみてくれることも)

でキャッシュするという話、、これを思い出し、exeをアーカイブした時の名前も変更して、再更新。

そして無事に、解決!!

終わりに

CDでの配布からDL配布に移行する同人ソフト開発の方も多いと思いますが、物理媒体より、アンチウイルス絡みのトラブルに巻き込まれやすいので、気をつけましょう。

ちゃんとした証明書でインストーラーを署名する、or WhiteListなURLの配信サービスを使用することで、多くの検知ロジックをバイパスできるので、余裕がある人は、無用なトラブルを避けるために、そういう方法の検討も視野にいれてもいいのかもね。

おまけ

なんか妙にPV伸びたので、この記事を書く元になったUnityのクイズゲーム動画を貼っておきます。
年末のコミケット95、二日目 X-60a 「AloMarron」で頒布予定なので、気になったら是非きてね!


というか、この手の話、検証環境をつくるのがそもそもコスト必要だったり、最悪手元に検証環境つくれなかったりすると、マジで不毛な作業の繰り返しになったりと、開発者に絶大なコストとストレスを強いるやつなので、ホイホイ誤検知するアンチウイルスプログラムつくるベンダーは滅んで欲しい。
マイクロソフト、お前のことだぞ!

自分用の記録
https://twitter.com/Antamanide/status/1059074752566845441