Tag Archives: security

[メモ] clamav先生、悪意のあるソフトウェア削除ツールにトロイを見つける(誤検出)

Pocket

Windows xp用にと、大昔に取得していたMicorosoftの”悪意のあるソフトウェア削除ツール”をclamavでチェックしたらトロイを見つけおって真っ青になりました。
わたくし、トロイの入った削除ツールをいろんなxpマシンにインストールしたのかと。
しかしまあ、結論から言うと、誤検出でした。

ファイルやURLを登録すると各種アンチウイルスソフトウェアでのチェック結果を表示してくれるVirusTotalというサイトがあります。
ググったところ、このVirutsTotalでの結果がヒットしました。
結果、55のアンチウイルスソフト中、Clamavのみがトロイを検出。
おそらくClamavの誤検出と判断してよいと思います。
ただ、念のため該当ファイルは削除しました。

参考情報として記録を残します。
Clamavのエンジンは以下の通り。

誤検出(と思われる)したトロイは以下のもの

最新の Windows-KB890830-V5.15.exe (ただWindows7用ですが)では検出なし。

[Windows] FreeOTFEの使いかた

Pocket

FreeOTFEとはフリーの暗号化ツール。仮想の暗号化ディスクが扱える。
とても便利だが、開発が止まっていてWindows 64bitでは使えない。残念。

インストール

インストーラは以下からダウンロード。
http://sourceforge.net/projects/freeotfe.mirror/
32bitならインストールも問題なくできるはず。

言語設定

デフォルトでは英語だけど、日本語に変えられる。
ViewからOption。

2014-07-25_21-42-35

2014-07-25_21-43-06

2014-07-25_21-43-20

2014-07-25_21-44-29
日本語になった。

暗号化ボリュームの作成

2014-07-25_21-44-35

ここは英語なんですな。
2014-07-25_21-44-41

Volume Fileを選ぶ。
2014-07-25_21-44-48

ボリュームファイルを指定する。
2014-07-25_21-44-53

名前を付ける。
2014-07-25_21-45-43

文字化けしてる。だからなに。
2014-07-25_21-45-55

容量指定
2014-07-25_21-46-10

暗号化方式を。
うん。化けてるね。
2014-07-25_21-47-36

乱数発生方法を選ぶ。
APIは信用ならんし、マウスにするか、と思ったけど。
マウスがあまりに大変なのでAPIをお勧めする。
2014-07-25_21-47-54

マウスを選んだ場合、画面内で「うおおおおお」とマウスカーソルを動かしまくる。
2014-07-25_21-48-09

お、終わった。
2014-07-25_21-52-03

パスワード設定。
2014-07-25_21-52-59

無事に作成が終わって、Fとしてマウントされたとのこと。
2014-07-25_21-53-26

エクスプローラで見ると普通のディスクとして見える。
もちろん、実体はさきほど作ったファイル。
ただ、文字通り普通のディスクなので(続く)

2014-07-25_21-53-42

ディスクを使用する前に

フォーマットが必要なんである。
2014-07-25_21-53-52
2014-07-25_21-54-02
2014-07-25_21-54-08
2014-07-25_21-54-13
とはいっても、フッツーにフォーマットすればよい。

2014-07-25_21-54-55

マウントの解除

2014-07-25_21-55-13
こちらも難しいことはなく、FreeOTFEからマウント解除すればいいだけ。

[Windows] 暗号化仮想ディスク管理ツールFreeOTFE

Pocket

ファイルを暗号化した仮想ディスクとして扱えるFreeOTFEについて記す。

暗号化ツールは、探してみると意外にたくさんある。
また、最近ではOSで暗号化をサポートするのもトレンドである。
そういったわけで、どんなものでも選り取り見取り、と思っておりました。
しかし。
ちょっと条件を付けると途端に選択肢が狭まってしまう。
具体的には、実ディスク全体を暗号化するのではなく、
①Windowsで、
②暗号化仮想ディスクを扱える、
②フリー(オープンソース)のツール
である。

暗号化仮想ディスクのねらい

つまり、PC本体の実ディスクはそのままに、暗号化した仮想ディスクを扱いたいわけです。
なぜわざわざ仮想ディスクが必要なのか。
なぜファイル単位の暗号化ではダメなのかというと。

端的に言って、復号した後にもう一回暗号化するのが面倒だから。

暗号化したファイル、フォルダは、ずっとそのままという訳にはいかない。
とうぜん閲覧するなり実行したりしたいわけで、そのためには復号、すなわち暗号解除が必要だ。
しかしひとたび、無事に用事を済ませたら、当然のことながらもう一度暗号化して大事にしまっておかねばならない。

ファイルあるいはフォルダ単位の暗号化ツールは、この「使った後にもう一度鍵をかけてしまう」という作業を考えられていないケースがほとんどだ。
これはおそらく、一回限りの暗号化を前提にしているためと思う。
たとえば、セキュリティに不安のある経路を通してファイルを送受するとか。

頻繁に暗号化されたファイルにアクセスするようなケースでは、ユーザが意識しなくても、使用後に元通り暗号化されることが望ましい。
暗号化した仮想ディスクを扱える、というのはそういう使用用途にぴったりである。

暗号化ファイルを復号するとディスクとしてマウントされる。
シャットダウンあるいは再起動でマウントが外れ、暗号化されたファイルに戻る。
ぴったり。

ならディスクそのものを暗号化してしまえよWindowsにはBitLockerとかあるんだしさあ、というのはその通り。
その通りなんだが、実ディスクの設定を気軽に触れないケースもあるってことで。

2014-07-25_21-55-13

FreeOTFE

さて上述の検討をもとに選定をする。
しかし暗号化ツールと言ってもかなりの数がある。
どうやって探したらいいのだ。

こういうときに便利なのがWikipedia。
たいてい便利な比較表がある。
Comparison of disk encryption software

ところが、条件を当てはめていくと急激に数が減る。
結論として、条件を十分に満足するソフトウェアはなかった。
次点でFreeOTFE。

FreeOTFEは、フリーでWindowsで使えて仮想ディスクを扱える。
一見、問題なさそうに思えたのだが、なんと開発が止まっていた。
なんという…。

したがって、不具合が見つかった場合の修正がなされないのは当然なことながら、64bit Windowsでは暗号化仮想ディスク用のドライバをインストールできず、今後も改善される予定はない。
もちろん、誰かが開発を引き継いでくれればその限りではないが、昨今はOSで暗号化に対応するのが一般的だし、開発が復活するのは望み薄ではないかなと思っている。

長くなったので、FreeOTFEのインストール方法は別項で。

 

Sambaの汚物(ウイルス)は消毒だ。samba-virusfilter編

Pocket

 

Sambaの汚物(ウイルス)は消毒だ。哀愁のsamba-virusfilter編である。
virusfilterはsambaのvfs。
samba上ファイルを開くときにclamavでスキャンしてくれる。
そういうタイプのvfsはvscan-clamavが有名だが、FreeBSDのportsやpkgには見当たらない。
そこでvirusfilterで試してみた。
試してみた、というのは、ファイルの開け閉めの際にスキャンするのはどうもいただけなく感じるので、本運用には至らなかったから。
なお、clamav、sambaはインストール済みの前提。

samba-virusfilterのインストール

security/samba-virusfilterからインストールできる。
設定ファイルの説明は以下を参照。ただしclamdが動いている前提。
https://github.com/fumiyas/samba-virusfilter/blob/master/etc/smb.svf-clamav.conf.tmpl

設定例

ウイルスを見つけたき「何もしない」を選択した場合、感染ファイルはそのまま共有ディレクトリ上に残るし見える。
しかしユーザは当該ファイルを開くことはできない。
ウイルスを発見したとき、ログとしては/var/log/samba下のログに、以下のように記録される。

 

Sambaの汚物(ウイルス)は消毒だ。scannedonly編。

Pocket

sambaのvfs, scannedonly

scannedonlyとは、sambaのvfs。
その名前の通り、スキャン済みのもののみ開いたりダウンロードできるようになる。

scannedonlyのインストール

scannedonlyのvfsは、実はSambaに含まれる。
あれ?じゃあすぐ使えるの?と思ったのだが、それは間違いで、実際にスキャンを行うdaemonを別にインストールする必要がある。
その代わりと言っては何だが、clamdを立ち上げる必要はない。
security/scannedonlyからインストールできる。
以下はインストール例。sysctl.confに一行追加しとけよ、と言われるのでその通りにしておく。

 

scannedonlyの設定の流れ

scannedonlyの設定には、前章のとおりにsysctl.confを修正することに加え、①vfsとしてのscannedonlyの設定、②daemonとしてのscannedonlyの設定が必要

まず③のdaemonとしての設定から。

scannedonly daemonの設定

/etc/rc.confで行う。
設定例は以下のとおり。

おなじみの一行目はシステム起動時にdaemonも起動させる指定。
二行目でdaemonに与えるオプションを指定する。
上記の–scanrootは、スキャン対象のファイルが置かれるトップディレクトリを指定する。
daemonは、ここで指定されたディレクトリ外のファイルのウイルススキャンを要求されても無視する。

その他のオプションには;

scannedonlyのスレッドと「大きいファイル」について

scannedonlyはデフォルトでスキャン用に4スレッドを用意する。
複数のスキャン要求が来たとき、scannedonlyは「大きいファイル」を特定の1スレッドのみに割り当てる。残りのスレッドは「小さいファイル」をざくざくスキャンする。
こうすることでスキャンの待ち行列をスムーズに解消しようと試みる。
「大きいファイル」は前述の–bigで指定するサイズで決まる。
この値は、共有ファイルにどんなファイルがあるかを前提に変えたらよい。
デフォルトの10MBはちょっと小さいので、20MBにした。

scannedonly vfsの設定

smb.confに書く。
shareごとに設定できる。
以下が設定例。
最後の行だけ特殊。後述。

 

起動

scannedonly daemonを起動し、そのあとsambaを(再)起動。

このとき、/var/log/messagesには以下の表示があるはず。


実験:未スキャンのファイルはどう表示されるか。

さっそく共有フォルダにファイルを放り込んでみよう。
小さいファイルだと変わらないようにみえるが、ちょっと大きいファイルになると、コピーが終わってからスキャンが終わるまで、以下のような表示になるはず。
beingscanned

なお、hide_nonscanned_filesをFalseにした場合、コピーが終わった瞬間にファイルは表示される。
スキャンが終わってなくても表示される。
されるのだが、開こうとしたりコピーしようとすると、「アクセス権がない」旨のメッセージが表示されて蹴られる。
ユーザからしてみれば、ファイルが見えるのに開けないのはストレスでしかない。
hide_nonscanned_filesはTrueをお勧めする。
しかし。

Officeドキュメントを共有する場合

scannedonlyの仕組みで困るのは、Officeドキュメント。
というのも、Officeはファイルを頻繁に開け閉めするから。
その都度、スキャンが走り、終わるまでファイルを開けなくなる。
要するに、使い物にならん。
そこで下記の行を追加して、未スキャンファイルも開けるようにするほかない。
うーん…。

まあ、仕方ないよね。

バックヤードでは

さて。scannedonlyのバックヤードはどうなっているのだろうか。
実ディレクトリを見てみると、このようになっている。

ディレクトリに置かれたファイルと同じファイル名、ただしファイル名の先頭に「.scanned:」と付いたサイズ0バイトのファイルができる。
このファイルでスキャン済みかどうかを、scannedonlyは判断している。
ちなみに、オリジナルのファイルを消すと.scannedの方も消える。
.scannedだけが残るということはないからご安心めされよ。
もちろん、ファイルを更新した際には再スキャンが行われる。

大きなファイルを共有フォルダにコピーしはじめ、そのあとに小さなファイルを共有フォルダに置くと、小さいファイルはすぐに表示される。
複数スレッドで処理していることと、大きいファイルは1スレッドでしか処理しないことからこのような動作になる。

また、しばらくすると、/var/log/messagesにはログが増えているはず。


実験: virusが見つかったらどうなる?

試してみた。
testvirus.txtというファイルを突っ込んでみると、コピーが終わっても共有フォルダには表示がされない。
代わりに、同じファイル名、ただしファイル名先頭に「VIRUS_found_in_」、末尾に「.txt」と付いたサイズ0のファイルが作られ表示される。
virusfoundscann

このとき、実ディレクトリはこのようになっている。
つまりオリジナルのファイルは「.virus:」と頭に付けられて、ユーザからは見えなくなっている。

さらにこのとき、/var/log/messagesには以下のように。
1,2行目がウイルス発見時のもの、3行目はstatus report時のものである。

 

以上

Sambaの汚物(ウイルス)は消毒だ。あるいはsambaのvfsでウイルススキャン

Pocket

Samba上のファイルをウイルススキャンするには。

Samba上のファイルをウイルススキャンするならどんな方法があるだろうか。
一つは、cronで定期的にスキャンする方法である。
もう一つは、Sambaにスキャンを組み込む方法である。

クライアントにアンチウイルスソフトウェアがインストールされており、定義ファイルも更新されているなら、前者のcronがおすすめである。
理由にはあとで触れる。
クライアントを信用できないなら、後者のsamba側スキャンが候補に挙がる。

Sambaのウイルススキャンvfs

Sambaにはvfsスタッカブルモジュールという仕組みがある。
Sambaに追加機能をもたらすものだが、ウイルススキャン機能を追加するvfsもいくつかある。
http://www.samba.gr.jp/project/translation/Samba3-HOWTO/VFS.html

これらのvfsには、大きく分けて以下二つのアプローチがある。

  1. ファイルをオープンするときにスキャン
  2. スキャン済みのファイルのみオープンを許可

1には、vscan-clamavやvirusfilterとがある。
2には、scannedonlyがある。それ以外には知らない。

以下、二つのアプローチの特徴を、たいへん大まかに記す。

アプローチ1: ファイルオープン時スキャン法

Samba上ファイルを開くときに外部のウイルススキャナへファイルを渡し、スキャンするというもの。
まあ普通に考えるとそうなるわな、という方法。
ただ短所はある。
ファイルに変更があろうがなかろうが、開くたびにスキャンする。
ユーザはスキャンが終わるまで待たされる。
仮にファイルがとてつもなく巨大だと、待たされる時間も長くなる(スキャン対象とするファイルサイズ上限は決められる)。
同時接続ユーザが増えても問題になるだろう。

アプローチ2: あらかじめスキャン法

②、すなわちscannedonlyは、ファイルが共有ディレクトリ上に置かれたとき、あるいは更新があったときにスキャンする。
スキャン済みのファイルであれば、ファイルオープン時に再スキャンは行われない。
ファイルオープン時にオーバーヘッドがないこと、ファイルのサイズが大きくてもまったく影響のないこと、ユーザ数の増加による負荷への影響が少ないことは長所である。

もちろん、こちらにも短所がある。
当該ファイルがスキャン済みであることを示す「しるし」が必要である。
scannedonlyは、この「しるし」として、.scannedというサイズ0バイトのファイルを作る。
つまり、共有ディレクトリに置かれるファイルの数が倍になる。
サイズが0バイトであるものの、iノードの残量には懸念の生じることがあるかも。
当然、①にはこの懸念はない。

やっぱりcronで定期スキャンだよね

ご覧のとおり、1,2ともに短所がある。
クライアント側のウイルス対策が保証できるなら、cronで定期的にスキャンしたほうがよいだろう。
しかしクライントが信用ならないのなら、アプローチの1,2いずれかを選んで、Sambaでウイルス対策を講じるべき。
ということで、アプローチ1,2のインストール、設定方法については記事を改めて示す。

[メモ] テスト用のウイルスはEICARで

Pocket

 

アンチウイルスソフトのテストには、実際にウイルスを食わせるのが一番である。ただまあウイルスなんて物騒なものは、そうそう手には入らない。
どうしたもんかと思ってんだが、やっぱりあるとこにはあるんですなあ。

The Anti-Malware Test file
http://www.eicar.org/86-0-Intended-use.html

上記ページの下部にある文字列をテキストファイルに貼り付ければテスト用ウイルスの出来上がり。手軽。
アンチウイルスソフトにはウイルスとして判定されるが実害なし。