悪意あるハッカーはWEBサーバの脆弱性や脆弱なアカウントを通じてウェブアプリケーションのハッキングを⾏います。それに対し企業側は脆弱性の修正や脆弱なアカウントの洗い出しを行いハッキング⾏為が⾏われても影響しないように対応しています。⼀度企業側が対応すると悪意あるハッカーはターゲットを変えるか、同じターゲットであれば新たな脆弱性を探す、脆弱なアカウント情報を再度搾取するなど、手間と時間がかかります。
そこで、悪意あるハッカーは安定的な侵⼊経路を確保するために、WebShellというバックドアを設置することが多々あります。⼀度バックドアを設置できれば、あとは好きな時間に必要な情報を搾取したり、次の攻撃手段へ移行する事が可能となります。
WebShellは古くから存在しており防御側もシグネチャ型のアンチウイルスで対策を行ってきましたが、近年WebShellはソースコードが難読化されたり自身を隠ぺいするなど、通常のシグネチャ型のアンチウイルスでは検出困難となっているのが現状です。アンチウイルスベンダーはコンパイル型のボットネットやランサムウエアに重点を置いており、WeShellは重要視していません。
これはWebShellを検知するには稼働しているウェブアプリケーション内で実⾏する必要がありサーバのリソースを消費するためレスポンスにも影響し、また、多種多様なWebShellが存在する為、検出が困難であるため、と推測します。しかし、ひとたび、バックドアが仕込まれるとウイルス混入や情報漏洩はもちろん、自身のサーバが踏み台となり他社のウェブアプリケーションへ攻撃するケースなどもあり被害は甚⼤となります。
そこで被害発生の発端となるWebShellを従来のシグネチャ形式に頼らず検出できないか、というところから製品が生まれました。新たな仕組み考え、導入しWebShellが設置されても素早く検知してレポート出力するシステム、それがAntiShell WebSehllHunterです。
AntiShell Web Shell Hunter (アンチシェルウェブシェルハンター)
Web上で動作するシェルプログラムの総称で、様々な⾔語(PHPやPerl、Python)で作成されており、ひとたびサーバ内に設置さ れるとバックドアとして機能し、任意のOSコマンドを実行されその結果サーバ内部の情報漏洩やサーバ停止など被害が発生します。 また、バックドアが作られるとランサムウェアに感染、閲覧者へのウイルス配布、踏み台サーバなど、次の攻撃に繋がります。 最近ではWebShellも進化しており、隠ぺい機能や自己削除など備わっているケースもあり、検知が非常に難しくなっています。
機能 | 概要 |
---|---|
サーバの情報収集 | サーバの情報(CPUの種類や搭載メモリサイズ、ハードディスクの容量、OSの種類)、Apache やPHP のバージョン、動作しているプロセス情報などを収集する機能。 |
ファイル操作 | ファイルのアップロードやダウンロード、削除、ファイル内容を変更する機能。ファイル操作では簡易的なエディタを搭載している場合もある。 |
OS コマンド実行補助 | ターミナル上でのコマンド入力のように、Web ページを介してOS コマンドの実行を補助する機能。 |
データベース接続 | WebShellが設置されたサーバ内部のデータベースや、同一ネットワーク内にある別サーバのデータベースへ接続するWebインターフェース。 |
FTP接続 | WebShellが設置されたサーバ内部のFTPサービスや、同一ネットワーク内にあるFTPサーバへ接続するWebインタフェース。 |
他のホストへのログインBrute-force attack | 他のホストのSSHやTELNETなどの公開サービスに対して、Brute-force attackによるログイン試行するための機能。 |
文字列操作ツール | 文字列をURLエンコードやデコード、BASE64のエンコードやデコード、MD5やSHA1のハッシュ化などをする機能。 |
自己削除 | WebShell が不要になった際に、WebShell 自体を削除する機能。 |
セッション管理の機能を持ち、未ログイン状態ではWebshell の主要な機能へのアクセス制限、特定のUser-Agent(例:検索クローラ)などには、無害なコンテンツの応答、ブラウザなどからWebShell へアクセスした場合は「404 Not Found」を応答するが、特定のパラメータを指定したときのみ、その指定された内容を実行する。これらの機能によりWebShell は、発見を困難にしたり、容易に解析されないように工夫されています。またWebShell は攻撃者が独自に作成したり、インターネット上に公開されたものを改変している場合も散見されるという点から、検知するのが難しい理由です。
WebShellの検知が難しい理由の一つに、WebShellは多くの言語で書かれていたり、悪意あるハッカーによって個別に改変されている、検知されないよう難読化されている、という点があります。AntiShellはどの言語で作成されたのか等一切関係ありません。指定されたディレクトリ内のすべてのファイルを展開し、1行単位でチェックを行っています。php、asp、Perl、Python、java、txt、画像、ファイルの種類は関係ありません。1行1行、コードチェックを行い危険なコードを使っている場合、AntiShellのマスターサーバーに送信し、危険度をランク付けし、WebShellと判断した場合は、専用の画面上でお知らせします。
また、スキャンは差分チェックを行っていますので、ファイル変更がされていない限り同じファイルのスキャンは行わないので、
時間短縮につながります。発見されたWebShellが未知のWebShellだった場合は詳細な情報をマスターサーバーに送信し、随時情報
の共有化を行います。これは他社サーバにて検知された場合も同じで、常にWebShellの情報をアップデートしていく仕組みです。
1ファイル、1行づつチェックしていきますので、ファイル数が膨大にある場合スキャン完了まで時間を要します。
※2回目以降のスキャンは変更されたファイルのみスキャンを行います。そこで、AntiShellでは、スキャンする時間をあらかじめ予約する事ができます。また、スキャンが完了したら管理者のメールアドレスに通知がされますのでPCに張り付いておく必要もありません。月に1回、週に1回、何時から開始、という具合に設定できます。
レベル | サーバのIP追加 | 担当者追加 | スキャン実行 | レポート閲覧 | サポート |
---|---|---|---|---|---|
サーバ管理者 | ○ | ○ | ○ | ○ | ○ |
担当者 | × | × | ○ | ○ | ○ |
管理画面では操作するユーザの追加を簡単に行えます。 ユーザには権限を付与する事ができ、権限ごとに作業が行えます。 担当者レベルは、サーバのIP追加及び担当者の追加が出来ません。 いずれも、WebShellが検知された場合、 その対処方法や詳細な検証結果などのサポートは受けられます。
AntiShellはWebShellに特化したサービスであり類似品や競合するサービスはありません。他社が提供しているアンチウイルスソフトに「オプション」としてWebShellの検知が入っているケースはありますが、あくまでオプションという立ち位置であり、検知方法もシグネチャ形式のため、検知できる数や対応する種類(言語)、検知率は非常に低いのが現状で、仮に検知しても、検知したという結果だけで、そのあとの処理方法などは別途サポート料金を支払い必要があります。AntiShellは、検知した場合、どのファイルなのかを示し、作成された日時、権限、ファイル所有者など詳細な情報をレポート化し、同時に弊社カスタマーセンターに情報を送ることができますので、具体的な対処方法や調査、アドバイスなどをオールインパックで提供します。(有償サポート)
1)AntiShellサービス上で、該当するフォルダ、ファイルに対して実行権限をもっているユーザーがスキャン実行します。スキャンはスケジューラーとリアルタイムどっちも対応可能です。スキャンはサーバー事に行います。スケジュールは毎週と毎日事に設定できます。サーバーに対してスキャンするフォルダーの階層も指定可能です。
2)選択された対象サーバー上でスキャン実行します。
3)スキャンが正常終了したら、スキャン結果のレポートを管理画面にアップロードします。スキャン結果と悪意あるファイルを画面上に表示します。誤検知されたファイルの可能性あるので、認識済みの場合、手動で「対象外」とする事も可能です。この場合、次回スキャンからは対象外となります。
4)指摘されてるファイル一覧を確認して、画面上にあるSubmitボタンを押すと、調査対象となり、Sandbox上で検証を行います。
5)サーバー毎に作成された調査ファイルを弊社のSandbox上で実行しチェックを行います。一つ一つファイルの重要性により対応方法は違いますが、Apacheの設定ファイルが指摘されてる場合は、悪意ある箇所やソースを削除してそのまま運用を行う、または、重要度の高いファイルの場合すぐ削除するなど、具体的なアドバイスをいたします。(有償サポート)
シグネチャ形式では対応できなかった、様々な攻撃パターン、多種多様なWebShellに対して、
「何をもってWebShellと判断するのか?」が本システムのコアな部分となります。
Patent対象となる箇所もあるので、詳細は割愛しますが、簡単に以下のようなことを行っています。