踏み台にされたサーバに触れてきました
今日はソフト開発でお付き合いしているお客さんから、サーバにフィッシングを仕込まれたという相談を受け、実機の調査・対策に行ってきました。もちろん詳細は書けないのですが、参考になる部分を中心に差し障りのない範囲で紹介します。
該当サーバは、グローバルIPでインターネットにつながっているのですが、本来はあるセグメント範囲だけを対象にサービスを提供するためのものです。ところが、ファイアーウォールが設定されておらず、さらにsshがグローバル側にも開いていました。
ログを観察してみると、設置直後からsshに対して常にアタックがあり、ある時点でrootで入られていました。限られたセグメント範囲のみにアクセスを許可する予定だったため、rootパスワードも比較的簡単なものだったのも問題でした。最初にrootで入れた時点では1秒でログアウトしていましたし、その後に失敗ログも続いていたので、おそらく自動アタックツールを使っています。
その後、あらためてrootでログインされ、PHP関連がyumでインストールされていました。その後リブートされています。この時点でお客さんはなんか突然切れたということを把握していたようですが、調査はしなかったようです。
さらに1日くらい経ってから、再びrootでログインし、cgiというユーザを追加し、パスワードを設定しています。その後またリブートされています。
それから4日くらい経ってから、cgiユーザでログインし、tomcatのコンテンツに、フィッシングサイトを入れ込まれています。この様子はcgiユーザのbashヒストリーに残っていました。その直後にHTTPでフィッシングサイトにアクセスが記録されています。
途中、部分的にログが欠落していましたが、比較的痕跡がたくさん残っているケースと言えるでしょう。
今回、問題が発覚したのは、そのサーバの管理業者に対して、某決済サイト管理者から警告メールが届いたからです。フィッシングサイトがセットアップされてから半日程度で警告メールが届いたようですので、なかなか素早いアクションです。直後にサーバ管理業者はファイアーウォールで外部からのアクセスを遮断し、その後開発業者と共に私が調査しにいったという流れです。
教訓としては、
・sshを開けておくのはハイリスク
・パスワードは強固に
・ファイアーウォールはきちんと目的に合った状態に
・インターネットにつながった直後からアタックがくるという素早さ
・迷惑を受けた側もすぐに気がつき警告してくるという点
というあたりでしょう。いずれにしても、直接間接を問わず、インターネットに関与するサーバのパスワードは十分気をつける必要がありますね。特にrootパスワードは重要です。