Linuxでウィルススキャンをコマンドライン(CLI)で実行する

 

 Linuxにインストールされるエージェントには、インタラクティブな操作のためにコマンドラインインターフェイス(CLI)が用意されており、これを利用すると以下のことが実現できます。

・スキャンの実行

・隔離されたファイル、スキャンログ、イベントの表示する

・アップデート(ウィルス定義、製品本体)

・製品設定の表示


このインターフェイスはroot権限で以下の構文で呼び出します。

#/opt/bitdefender-security-tools/bin/bduitool オプション [パラメーター]


コマンドライン例

指定したファイル(path)をスキャンする:

# bduitool scan -s custom <path> ※バックグラウンドで実行

# bduitool scan -s -f custom <path> ※フォアグラウンド[-f]で実行


 上記で戻るTask IDを利用してスキャン状況を取得する:

# bduitool get scanstatus <Task ID>

 上記で戻るTask IDを利用してスキャン結果を取得する:

#bduitool get scanlog <Taks ID>

結果はXMLファイルで生成されるので、それをパースして呼び出し側で処理の分岐等を行います。


スキャン結果のXMLファイル例(EICARをターゲット)

<Item type="0" objectType="0" path="/home/eicar.com" threatType="0"
threatName="EICAR-Test-File (not a virus)" action="3" initialStatus="3"
finalStatus="5" failReason="0">

最初のアクションとして感染部分のみの除去(Disinfect -> action="3")を試みましたが、ファイル全体が感染しているため、最終的に削除(Delete -> finalStatus="5")しました。

1 - Ignore
3 - Disinfect
5 - Delete
7 - MoveToQuarantine

ヘルプページ


SVA(セキュリティサーバ)利用時のシーケンス図

 サーバ保護で人気がある中央スキャンサーバSVAと、今回のコマンドラインの呼び出しを組み合わせた場合の流れです。仮想マシンで提供されているSVAをここでは2つ立ち上げています。

 2台の起動は耐障害性と負荷分散を目的にしており、どのSVAを利用するかの順序、分散については管理コンソールで管理するポリシーで設定します。このSVAの利用は何台でも無償です。

 SVAの重たい処理をまかせることで、サーバ(エンドポイント)側のリソース負荷を抑えることができます。おおよそ消費メモリは半分となり、複数マシン間のキャッシュ効果も得られます。