Sophos Anti-Virus for Linuxを使う
今までLinuxの無償アンチウイルスソフトといえばClamAVが代表的でしたが5月18日にSophos Anti-Virus for Linuxに無償版が提供されることが発表され、選択肢が広がりました(個人利用に限りますが…)。
基本的な使い方をさらってみたのでメモしておきます。
Sophos Anti-Virus for Linux(Free Edition)をダウンロードする
本体はこちらのサイトからダウンロード可能です。
ちなみに400MB以上あるので、気長にダウンロードが完了するのを待ちます。
また、上記URLにシステム要件等へのリンクも貼られています。
ただ、パッケージの要件がわからないのが難点です。
Sophos Anti-Virus for Linux(Free Edition)をインストールする
今回はCentOS7.1の最小構成インストールした環境にSophosを導入します。
念のため、firewalldは停止し、SELinuxもdisabledにしています。
はじめに、オンアクセススキャンを有効にするにはTalpa バイナリパックというのが必要になります。
主要なディストリビューションの場合、Sophosのアップデートサーバ側に用意されているようです。
CentOSの場合、7.1も対象になっているため自分で用意する必要はありません。
ちなみに自分でビルドする場合はgccをインストールする必要があります。
本当はkernel-headersも必要なのですが、gccをインストールすると依存関係でインストールされます。
詳細は(オンアクセススキャンのための Talpa バイナリパックをローカルでコンパイルする)を参照。
さて、インストールについてです。
予めダウンロードしたファイルを解凍し、インストーラを起動します。
インストーラの途中で無償バージョンか聞かれる点だけ気を付ければ良いです。
[root@localhost ~]# cd /tmp [root@localhost tmp]# tar zxvf sav-linux-free-9.9.tgz sophos-av/ sophos-av/sav.tar sophos-av/talpa.tar sophos-av/uncdownload.tar sophos-av/install.sh [root@localhost tmp]# sophos-av/install.sh Sophos Anti-Virus ================= Copyright (c) 1989-2015 Sophos Limited. All rights reserved. Sophos Anti-Virus インストーラへようこそ。Sophos Anti-Virus には、オンアクセススキャナ、オンデマンドコマンドラインスキャナ、Sophos Anti-Virus デーモン、および Sophos Anti-Virus GUI があります。 オンアクセススキャナ ファイルがアクセスされると検索し、未感染の場合のみアクセスを許可 オンデマンドスキャナ コンピュータの全体または一部を直ちに検索 Sophos Anti-Virus デーモン Sophos Anti-Virus にコントロール、ログ、メール警告機能を提供するバックグラウンドプロセス Sophos Anti-Virus GUI Web ブラウザ経由でアクセスするユーザーインターフェース 「Enter」キーを押して、使用許諾契約書を表示してください。そして、<spc> を押してスクロールダウンしてください。 (中略) ライセンス内容に同意しますか? はい(Y)/いいえ(N) [N] > Y Sophos Anti-Virus のインストール先を指定してください。 [/opt/sophos-av] > オンアクセス検索を有効にしますか? はい(Y)/いいえ(N) [Y] > パスワードが入力されなかったため、Sophos Anti-Virus GUI を無効にしています。有効にするには、/opt/sophos-av/bin/savsetup を実行してください。 ソフォスは、Sophos Anti-Virus での自動アップデートの設定をお勧めします。 ソフォスから直接アップデートしたり(要アカウント情報)、自社サーバー(ディレクトリや Web サイト(アカウント情報が必要な場合もあります))からアップデートすることができます。 オートアップデートの種類を選択してください: ソフォス(s)/自社サーバー(o)/なし(n) [s] > ソフォスから直接アップデートしています。 SAV for Linux の無償バージョン (f) と サポート対応付きバージョン (s) のどちらをインストールしますか? [s] > f Sophos Anti-Virus for Linux の無償バージョンに対して、サポート対応は提供されていません。 無償ツールのフォーラムは次のサイトを参照してください。http://openforum.sophos.com/ ソフォスからアップデートを行うためにプロキシが必要ですか? はい(Y)/いいえ(N) [N] > Sophos Anti-Virus をインストールしています.... 適切なカーネルサポートを選択しています... Sophos Anti-Virus が起動すると、カーネルサポートを見つけるためアップデートします。 これによって大幅な遅れが発生することがあります。 Sophos Anti-Virus は、インストール終了後、開始されました。 インストールが完了しました。 オンアクセス検索は実行できません。kernel-headers がインストールされていないため、適切なカーネルサポートを取得・構築することができませんでした。 メールが /var/spool/mail/root にあります [root@localhost tmp]#
このとき、gccが無いとgccが無いのでオンアクセス検索はできないと言われます。
上記はgccを入れた状態ですが、なぜか kernel-headersがあっても無いと怒られます…仕様?
オンアクセススキャンを有効にする
インストール直後のログを見ます。
[root@localhost ~]# /opt/sophos-av/bin/savlog 日時 カテゴリ イベント 2015年05月27日 22時23分10秒: savd.daemon Sophos Anti-Virus デーモンが開始されました。 2015年05月27日 22時23分11秒: talpa.startup Talpa モジュールをロードできません。
どうやら今回利用したインストーラではTalpaモジュールを作ってくれず、
CentOS7.1用のTalpaモジュールも入っていないため、このような動作になるようです。
CentOS7.1用のTalpaモジュールは手動でアップデートすることで取得することが可能です。
[root@localhost ~]# /opt/sophos-av/bin/savupdate Updating Sophos Anti-Virus.... Updating Talpa Binary Packs Updating SAVScan on-demand scanner Updating Virus Engine and Data Updating Talpa Kernel Support Updating Manifest Selecting appropriate kernel support... Update completed. sdds:SOPHOS からの Sophos Anti-Virus のアップデートに成功しました [root@localhost ~]#
もう一度ログを見ます。
[root@localhost ~]# /opt/sophos-av/bin/savlog 日時 カテゴリ イベント 2015年05月27日 22時23分10秒: savd.daemon Sophos Anti-Virus デーモンが開始されました。 2015年05月27日 22時23分11秒: talpa.startup Talpa モジュールをロードできません。 2015年05月27日 22時27分57秒: update.updated Updating Sophos Anti-Virus.... Updating Talpa Binary Packs Updating SAVScan on-demand scanner Updating Virus Engine and Data Updating Talpa Kernel Support Updating Manifest Selecting appropriate kernel support... Update completed. 2015年05月27日 22時27分57秒: update.updated sdds:SOPHOS からの Sophos Anti-Virus のアップデートに成功しました 2015年05月27日 22時28分00秒: savd.daemon talpa を使用してオンアクセス検索が有効になりました。
またステータスを確認することでオンアクセススキャンが有効であることが確認できます。
[root@localhost ~]# /opt/sophos-av/bin/savdstatus Sophos Anti-Virus はアクティブで、オンアクセス検索を実行中です
ウイルス検知時の挙動
スタンドアローンの場合、デフォルトでは検知時に以下の挙動をします。
- ユーザーへの通知(コンソール or GUI)
- root宛にメール送付
- syslogへの記録(/var/log/messages)
- savlogへの記録
[root@localhost ~]# wget http://files.trendmicro.com/products/eicar-file/eicar.com --2015-05-27 23:18:58-- http://files.trendmicro.com/products/eicar-file/eicar.com files.trendmicro.com (files.trendmicro.com) をDNSに問いあわせています... 61.213.181.179, 61.213.181.154 files.trendmicro.com (files.trendmicro.com)|61.213.181.179|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 68 [text/plain] `eicar.com' に保存中 100%[===========================================================================================================================================================>] 68 --.-K/s 時間 0s 2015-05-27 23:18:58 (19.5 MB/s) - `eicar.com' へ保存完了 [68/68] [root@localhost ~]# ********************** Sophos Anti-Virus 警告 ********************** 脅威 "EICAR-AV-Test" が次のファイルで検出されました "/root/eicar.com". ファイルはまだ感染しています ********************************************************************** [root@localhost ~]# メールが /var/spool/mail/root にあります [root@localhost ~]# cat /var/spool/mail/root (中略) From root@localhost.localdomain Wed May 27 23:18:58 2015 Return-Path: <root@localhost.localdomain> X-Original-To: root@localhost Delivered-To: root@localhost.localdomain Received: from localhost.localdomain (localhost [IPv6:::1]) by localhost.localdomain (Postfix) with ESMTP id ADF63812A4A0 for <root@localhost>; Wed, 27 May 2015 23:18:58 +0900 (JST) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: root@localhost.localdomain To: root@localhost.localdomain Date: Wed, 27 May 2015 14:18:58 -0000 Subject: [SAV-LINUX] Threat 'EICAR-AV-Test' detected on localhost.localdomain Message-Id: <20150527141858.ADF63812A4A0@localhost.localdomain> A threat classified as 'EICAR-AV-Test' was detected in the file '/root/eicar.com' when closing it at Wed May 27 23:18:58 2015 JST +0900 (2015-05-27 14:18:58 UTC). [root@localhost ~]# tail /var/log/messages May 27 23:00:59 localhost systemd: Started "Sophos Anti-Virus GUI daemon". May 27 23:01:01 localhost systemd: Starting Session 3 of user root. May 27 23:01:01 localhost systemd: Started Session 3 of user root. May 27 23:04:50 localhost savd: update.check: Successfully updated Sophos Anti-Virus from sdds:SOPHOS May 27 23:18:54 localhost yum[4110]: Installed: wget-1.14-10.el7_0.1.x86_64 May 27 23:18:58 localhost kernel: talpa-deny: Access denied while closing /root/eicar.com on behalf of process wget[4115/4115] owned by 0(0)/0(0) <0> May 27 23:18:58 localhost savd: Threat detected: EICAR-AV-Test in /root/eicar.com May 27 23:23:10 localhost systemd: Stopped "Sophos Anti-Virus update". May 27 23:23:10 localhost systemd: Starting "Sophos Anti-Virus update"... May 27 23:23:10 localhost systemd: Started "Sophos Anti-Virus update". [root@localhost ~]# /opt/sophos-av/bin/savlog 日時 カテゴリ イベント 2015年05月27日 22時23分10秒: savd.daemon Sophos Anti-Virus デーモンが開始されました。 2015年05月27日 22時23分11秒: talpa.startup Talpa モジュールをロードできません。 2015年05月27日 22時27分57秒: update.updated Updating Sophos Anti-Virus.... Updating Talpa Binary Packs Updating SAVScan on-demand scanner Updating Virus Engine and Data Updating Talpa Kernel Support Updating Manifest Selecting appropriate kernel support... Update completed. 2015年05月27日 22時27分57秒: update.updated sdds:SOPHOS からの Sophos Anti-Virus のアップデートに成功しました 2015年05月27日 22時28分00秒: savd.daemon talpa を使用してオンアクセス検索が有効になりました。 2015年05月27日 23時04分50秒: update.check sdds:SOPHOS からの Sophos Anti-Virus のアップデートに成功しました 2015年05月27日 23時18分58秒: log.threat 脅威が /root/eicar.com で検出されました: EICAR-AV-Test (閉じる)。(ファイルはまだ感染しています。)
設定にかんするアレコレ
デフォルトのサービス起動設定はこんな感じです。
スタンドアローンで実施する場合はいじらなくて良いと思います。
(自動アップデート等も設定されています。)
[root@localhost ~]# systemctl list-unit-files (中略) sav-protect.service enabled (Sophos Anti-Virus daemon) sav-rms.service disabled (Sophos Management Agent) sav-update.service disabled (Sophos Anti-Virus update) sav-web.service disabled (Sophos Anti-Virus GUI daemon)
起動設定を変更する場合はsavdctlを使って設定します。
[root@localhost ~]# /opt/sophos-av/bin/savdctl savdctl: Sophos Anti-Virus デーモンの制御 使用方法: savdctl [--daemon | --no-daemon] [コマンド][引数] コマンド: help このヘルプ情報を表示する version バージョンおよび著作権情報を表示する enable オンアクセス検索を有効にする disable オンアクセス検索を無効にする enableOnBoot SERVICE システム起動時に SERVICE を開始する disableOnBoot SERVICE システム起動時に SERVICE を開始しない SERVICE savd savwebd sav-protect sav-web
また、CLIでの設定はsavdconfigで行います。
[root@localhost ~]# /opt/sophos-av/bin/savconfig savconfig: Sophos Anti-Virus の設定 使用方法: savconfig [オプション] ... [操作] [パラメータ] [値] オプション: --[no]append 追加モードを設定する --[no]lock ユーザーによる上書きを禁止する -u, --user ユーザーレイヤーにアクセスする -c, --corporate コーポレートレイヤーにアクセスする -U, --consoleupdate コンソール アップデートポリシーレイヤーにアクセスする -A, --consoleav コンソール ウイルス対策ポリシーレイヤーにアクセスする -s, --sophos ソフォスレイヤーにアクセスする -f, --configfile 別の環境設定ファイルを使用する -v, --all 基本的なパラメータの値やヘルプを表示する --advanced 高度なパラメータの値やヘルプを表示する 他のオプション: -F, --readfromfile ファイルから読み取った値で引数を置き換える 操作: set パラメータを設定する update 指定した検索をアップデートする add パラメータリストの終わりに値を追加する remove パラメータリストから値を除去する delete パラメータを削除する query/get パラメータの値を出力する help このヘルプ情報を表示する ‘query’操作はパラメータなしで使用して、設定済みの値すべてを表示できます。 ‘help’を指定すると、指定したパラメータに関する詳細情報を表示できます。 オプション‘-v’や‘--all’と共に指定すると、すべてのパラメータに関する詳細情報を表示できます。
デフォルトの設定値はこんな感じ。
[root@localhost ~]# /opt/sophos-av/bin/savconfig --advanced query AllowCorruptInCleanArchive: オン CacheFilesystems: ext3 ext4 ext2 tmpfs devtmpfs iso9660 udf xfs reiserfs jfs vfat msdos ntfs hfs minix ramfs romfs ufs umsdos xenix cramfs DenyOnCorruptFile: オフ DenyOnDetectionError: オフ DenyOnOperatingSystemError: オン Email: root@localhost EmailDemandSummaryAlways: オフ EmailDemandSummaryIfThreat: オン EmailLanguage: English EmailNotifier: オン EmailServer: localhost:25 EnableOnStart: オン EnableAutoUpdating: オン ExclusionEncodings: UTF-8 EUC-JP ISO-8859-1 FileCacheSizeBytes: 4096 FileScanTimeoutMs: 10000 FilesystemScanTimeoutMs: 60000 GraceKillTimeoutMs: 2000 GraceStopTimeoutMs: 10000 HookModule: talpa_vfshook HttpPort: 8081 HttpUsername: admin LogMaxSizeMB: 100 LogNotifier: オン NotificationQueueLimit: 50 NotifyOnUpdate: オフ NotifyOnUpdateCheck: オフ OnAccessCache: オン OnAccessIncludePath: / PrimaryUpdateSourcePath: sophos: PrimaryUpdateCachePath: /opt/sophos-av/update/cache/Primary PrimaryUpdateUsername: FAVL3LPMS8733 PrimaryUpdatePassword: ******** PrimaryUpdateAllDistros: オフ Processes: 2 RespawnLimit: 5 RespawnMax: 10 RespawnPeriodDurationMs: 20000 RestrictProcessExclusions: オフ SendEmailMsgID: USING_BACKUP_CONFIGURATION ALL_UPDATE_SOURCES_FAILED RESPAWN-LIMIT VIRUS-DATA-OLD TALPA-FAILURE TALPA-COMPILED SendEmailLogLevel: FATAL SendErrorEmail: オン SendThreatEmail: オン StartupTimeoutMs: 60000 StopScanTimeoutMs: 10000 StopTimeoutMs: 20000 SyslogFacility: DAEMON SyslogNotifier: オン TalpaDebug: オフ TalpaInclusionProcessor: オフ TalpaVettingGroup: 0 TalpaVettingTimeoutMs: 100 ThreadsPerProcess: 5 AdaptiveThreading: オン MaximumThreads: 5 UINotifier: オン UIpopupNotification: オン UIttyNotification: オン UpdatePeriodMinutes: 60 UseExtendedRegex: オン XSmartSchedulerFix: オン LiveProtection: 有効 ScanArchives: オン/オフ
Sophos Anti-Virus for Linux(Free Edition)をアンインストールする
アンインストールする際はインストールフォルダ配下のuninstall.shを実行します。
[root@localhost ~]# /opt/sophos-av/uninstall.sh Sophos Anti-Virus をアンインストールしています。 警告: Sophos Anti-Virus はまだ稼動しています。 Sophos Anti-Virus を停止しますか? はい(Y)/いいえ(N) [N] > Y Sophos Anti-Virus を停止しています。 Sophos Anti-Virus はアンインストールされました。