システム管理メモシステム管理メモシステム管理はいつも泥沼。サーバーにバックドアが仕掛けられてしまったメモを書きました。脆弱性を突かれたもので、仕掛けられていたプログラムは無効化したのですが、その後も侵入箇所や、侵入方法、バックドアの仕組みなどを解析してみました。侵入を許してしまいます。ログを見てみれば簡単にわかります。それより前のApacheバージョンを使っているならチェックしてみるのがいいでしょう。実行しようとした記録が残っています。侵入が成功しています。相対深度が異なる可能性があり、侵入が失敗に終わることもあります。"-"対象バージョンのApacheを使っていて、CGIが有効なら、パスワードファイルを持って行かれた可能性があります。パスワードファイルを盗まれても、今どきパスワードファイルにパスワードは書かれていないので、どんなアカウントがあるかがわかる程度。パスワードファイルにユーザーのフルネーム情報が書かれているなら「アカウント→本名→Web検索とSNSホームページ」が結び付けられてしまうかもしれません。気分は悪いですが、大きな誤差を含む情報ですから、それ自体は大したことじゃない。次に、脆弱性を突いて、何かファイルを送り込まれ、それを実行される可能性があります。実際私のサーバーはファイルを送られ、実行されました。始まるディレクトリーを作って、ファイルを保存します。そこにあっても不思議に見えないファイル名を使う可能性が大です。いうディレクトリーを作って、その下を侵入ファイル置き場にしていました。うちの場合、侵入を試みた輩は一人ではなく、関係のない複数人のようで、複数の足跡が残っていました。101096/何かのサービスのログフォルダー風のTree構造に見せて、この中の一つにバックドアプログラムが仕掛けられています。サーバー再起動に備えて、HTTPサービス権限のユーザーのcrontabを仕掛け、プロセスをKillされた場合にも再起動するようにしています。詳しくは、前のメモを参照のこと。ログを見てみれば推測できます。ログファイルには記録が残ります。すれば、以下のような感じで抽出されます。ログにこういう行が残っていれば、サーバーに侵入されていますね。いうディレクトリーが作られて、その下にファイルが置かれていました。curl.c侵入に使うcurlバイナリーが置かれています。下に、次のファイルが見つかりました。無いので、このコマンドは失敗しますが、ファイルを置かれたことは事実。何かをダウンロードしたいものだと思います。ルーマニアのIPアドレス。RO手口が異なり、侵入ファイル保存に使うディレクトリーもファイル名もサーバーもバラバラ。たくさんの侵入を試みる輩がバラバラに行動しているんでしょうね。うまくバックを仕掛けた奴を見つけて、解析を進めてゆき、他の侵入者にも気が付いたというのが現状のようです。通信をブロックできるファイヤーウォールがあるなら、念のために、バックドアが通信していたサーバーのIPアドレスをブロック。ドメインを全てブロック。見つけた場合、ファイルを消してしまうと後で解析ができなくなるので、見つけたプログラムの実行権を消し、最上位フォルダーの非表示ファイル名を(ドットが付かない表示可能な)フォルダー名に変更。バックドアプロセスをKILLして、(目に見える被害がないなら)IPAやJPCERTあたりにレポートしましょう。被害を見つけた場合は警察へ連絡して相談。今後も解析を継続する予定で、新しい情報を見つけたらメモを残したいと思います。一度こういう侵入を受けると、そのあとが面倒臭いこと。ユーザーの権限では書き込めるディレクトリーは限られますが、読み出せる範囲は広いので、何を読まれたか?と考えるとファイルシステム全部の可能性があります。