エンジニアリング部システムソリューション課のひよっこエンジニアKと申します。今回の記事では、Vagrant環境で課題に取り組む最中、うっかりavast!にVagrantのruby.exeファイルをウイルスと誤認識されて消されてしまった経験と、そこからVagrantをアンインストールせずにruby.exeファイルを復活させた方法を紹介します。同じような状況に出くわした方はぜひお役立てください。
悪夢の始まりはavast!のウイルス誤検知
私がいつものようにVagrant環境を使って課題に取り組もうとしたときです。ふとavast!がこんなポップアップ通知を出してきました。
「ruby.exeは〇〇に感染していたため、ブロックしました。どのように対処しますか?
→ウイルスチェストに移動 その他オプション」
とりあえずなんだかよくわからなかったので、「ウイルスチェストに入れておけば(多分後から取り出せるだろうし)大丈夫だろう」と思ってウイルスチェストにぶち込みました。でも実はこれが大きな過ちだったのです…
Vagrantが起動できない!
ruby.exeをウイルスチェストに移動させた後、vagrant upをしようとすると
Exec error: exec: “ruby”: executable file not found in %PATH%
というエラーが出てしまいます。なんとさっき移動させたruby.exe、Vagrantを実行するために入っていたrubyの実行ファイルでした。これではVagrant仮想環境が起動できないとのことで、ruby.exeファイルを復活させるための長い道のりがはじまったのです…
ruby.exeファイルを復活させるためにやったこと
①avast!のウイルスチェスト側から復元する→✕
まずavast!のウイルスチェストに隔離されてしまったruby.exeファイルを戻そうと、ウイルスチェストのメニュー項目から「データを復元する」をクリックしてみました。しかし、avast!側の何かがおかしくなったのか、クリックしても一向に復元されず、ウイルスチェストから削除することすらできなくなっていました。絶望です。
②Vagrantのインストーラでrepairする→✕
avast!側でファイルを復元するのを諦め、Vagrantをインストールするときに使ったインストーラを使ってみることにしました。インストーラのソフトを起動すると、「repair」の項目を見つけたのでクリックしてみます。これでなんとかruby.exeが復活してくれと祈ったのですが、ないファイルはrepairできないらしく、この方法も失敗してしまいました。
③もともとruby.exeファイルがあった箇所に空のruby.exeファイルを作成した後、Vagrantのインストーラでrepairする→◎
この時点でもうメンターさんに泣きついていたのですが、ここでメンターさんから「中身空のruby.exeファイルを置いてからrepairしてみるのはどうだろうか」というアドバイスをいただきました。さっそくもともとruby.exeファイルのあった場所に空のruby.exeファイルを作成…と思ったのですが、アクセスが拒否されましたと出てしまいました。
アクセス権限の設定が適用されない問題への対処法
ここで実行ファイルがあった場所のアクセス権限を調べてみると、userのアクセス権限が読み取りと実行のみになっていて、編集が許可されていない設定になっていました。そこで、アクセス権限を変更し、userもフルコントロールの権限を与えたのですが、相変わらずアクセスが拒否されたと出てきます。
どうしたものかと思って、再起動したところ…ようやく設定が適用され、空のruby.exeを作成出来ました!(再起動した時点でavast!のウイルスチェストからも古いruby.exeファイルは削除されていました。)早速その状態でインストーラの「repair」ボタンを押してみると、なんと、ちゃんとruby.exeファイルが修復され、再びvagrant upできるようになりました!
今後avast!にruby.exeを消されないために
今回avast!のウイルス誤検知から事が始まったわけですが、今後同じことを繰り返さないために、VAGRANT で セキュリティソフト AVAST を導入している場合に注意することを参考にさせていただきつつavast!で除外設定を行いました。
今回のまとめ
①avast!の通知で、なんだかよくわからないときは安易にウイルスチェストに移動させない!
ウイルスチェストに移動させて復元できる保証があるならいいですが、今回みたいに失敗することも十分有り得ます。とにかくよくわからない!となったら、誰かに聞いてみるか、ネットで調べてみましょう。
②うっかりruby.exeファイルが消えちゃったときは、vagrantのインストーラが残っていないか探してみよう
今回のようにrepairできる可能性があります。積極的に探しましょう。
③設定が反映されないときは、再起動してみよう
今回最後の方はアクセス権限の設定変更で手こずったのですが、再起動したら一発で反映されました。設定したはずなのに設定が変更されてないじゃん!となったら、一回再起動してみると良いと思います。
④avast!に誤検知されちゃったファイルは、除外設定しておこう
さすがに何が誤検知される等は誤検知されてからでないと気づかないと思うので、何か大事な実行ファイルをウイルスと誤検知されてしまったら、次から消されないように除外設定しておきましょう。
参考サイト:
VAGRANT で セキュリティソフト AVAST を導入している場合に注意すること