邪悪なWebシェルを一掃する
ShellSweepは、指定されたディレクトリ内の潜在的なWebシェルファイルを検出するために設計されたPowerShell/Python/Luaツールです。
ShellSweepとそのツール群は、ファイル内容のエントロピーを計算し、そのファイルがWebシェルである可能性を推定します。高いエントロピーは、よりランダム性が高いことを示し、これはWebシェルによく見られる暗号化または難読化されたコードの特徴です。
情報理論またはデータサイエンスの文脈におけるエントロピーは、データセットの予測不能性、ランダム性、または無秩序の尺度です。この概念は、クロード・シャノンが1948年の論文『通信の数学的理論』で導入しました。
ファイルやテキスト文字列に適用すると、エントロピーはデータのランダム性の評価に役立ちます。仕組みは次のとおりです:
ShellSweepには、ファイル内容のエントロピーを計算するGet-Entropy関数が含まれています。その仕組み:
ShellSweepXは、ShellSweepの中核機能を次のレベルに引き上げ、従来のEDR(Endpoint Detection and Response)ソリューションに比べていくつかの利点を提供します。
専門的な焦点:広範囲をカバーするEDRソリューションとは異なり、ShellSweepXはWebシェルの検出に特化しています。この専門的な焦点により、これらの特定の脅威をより正確かつ効率的に検出できます。
低リソースオーバーヘッド:ShellSweepXは軽量で、多くのEDRソリューションとは異なり、常時バックグラウンドプロセスやシステム監視を必要としません。そのため、システムパフォーマンスへの影響が少なくなります。
カスタマイズ可能で透過的:ShellSweepXのオープンソースの性質により、その検出方法の完全な透明性が確保されます。特定の環境に合わせて検出パラメータを簡単にカスタマイズおよび微調整できます。
外部サービスへの依存なし:ShellSweepXはローカルで動作し、クラウドベースの分析や定期的な更新に依存しないため、機密データを自社の管理下に保つことができます。
多層検出:ShellSweepXは、エントロピー分析、パターンマッチング、ヒューリスティック分析など、さまざまな検出方法を採用し、Webシェル検出の包括的なアプローチを提供します。
詳細なレポート:ShellSweepXは、潜在的な脅威に関する詳細情報(エントロピー値、検出方法、信頼度スコアなど)を提供し、より情報に基づいた意思決定を可能にします。
クロスプラットフォーム互換性:PowerShell、Python、Luaのバージョンが利用可能で、さまざまな環境に展開できます。
ShellSweepXは、本格的なEDRソリューションの代わりにはなりませんが、特にWebシェルが重大な脅威となる環境において、セキュリティツールボックスの中の強力で専門的なツールとして機能します。
ShellScanは、既知の悪質なWebシェルディレクトリを複数スキャンし、ファイル拡張子ごとに平均、中央値、最小、最大のエントロピー値を出力する機能を提供します。
ShellScan.ps1に任意のサイズのWebシェルディレクトリを渡します。私は以下を使用しました:
これにより、エントロピー値を得るための適切なトレーニングセットが得られます。
出力例:
.aspxファイルの統計:
平均エントロピー: 4.94212121048115
最小エントロピー: 1.29348709979974
最大エントロピー: 6.09830238020383
中央値エントロピー: 4.85437969842084
.aspファイルの統計:
平均エントロピー: 5.51268104400858
最小エントロピー: 0.732406213077191
最大エントロピー: 7.69241278153711
中央値エントロピー: 5.57351177724806
まず、ShellCSVの使用方法と、それがディスク上の適切なファイルのエントロピーを特定するのにどのように役立つかを説明します。考え方としては、防御側がこれをWebサーバーで実行してすべてのファイルとエントロピー値を収集し、自分の作業環境でどのパスと拡張子が最も多く見られるかをよりよく理解できるようにすることです。
出力例としてShellCSV.csvを参照してください。
ブログ: Ghost in the Web Shell: Introducing ShellSweep
まず、お好みの言語(Python、PowerShell、またはLua)を選択します。
ここまで来たら、チューニングを繰り返す段階です。新しいシェルを見つけましたか?エントロピーを収集し、必要に応じて変更します。
ブログ: Introducing ShellSweepPlus: Open-Source Web Shell Detection
ShellSweepPlusは、Web環境内の潜在的なWebシェルを検出および分析するために設計された高度なPowerShellスクリプトです。ShellSweepの中核機能をベースに、強化された機能と検出能力を提供します。
主な機能:
使用方法:
$DirectoryPaths変数でスキャンするディレクトリを指定します。$suspiciousPatternsをカスタマイズします。$excludePathsを使用して特定のディレクトリをスキップします。$ignoreHashesまたは$ignoreHashesFilePathを使用して既知の安全なファイルを除外します。出力例:
json
{
"TotalFilesScanned": 1000,
"Potential web shells": 5,
"ScanDuration": "00:05:30"
}
ShellSweepPlusは、複数の分析手法を組み合わせて精度を向上させ、高度な脅威にも対応する、強力で柔軟なWebシェル検出ソリューションを提供します。
GitHubのIssueを開くか、Wikiを参照してください。
このプロジェクトを気に入っていただけましたら、ぜひスターを付けてご家族やご友人と共有してください。
| 機能/側面 | ShellSweep | ShellSweepPlus | ShellSweepX |
|---|
| ベースライン検出 | 特定のファイル拡張子に対してハードコードされたエントロピー値を使用 | 動的ベースライン検出:その場でエントロピーを計算 | エントロピーベースの検出と機械学習予測の組み合わせを使用 |
| ファイル拡張子 | 拡張子 .asp、.aspx、.asax、.jspx、.html、.ashx のファイルを処理 | 拡張子 .asp、.ashx、.asax、.jspx、.html、.aspx のファイルを処理 | APIを通じて設定可能なファイル拡張子 |
| エントロピー計算 | ファイル内容のエントロピーを計算して潜在的なWebシェルを検出 | 強化されたエントロピーベース検出、疑わしいキーワードとの相互参照 | チャンクベース分析による高度なエントロピー計算 |
| 除外機能 | スキャンから特定のディレクトリを除外可能 | スキャンから特定のディレクトリを除外可能 | APIを通じて設定可能な除外 |
| ハッシュ無視 | 特定のハッシュを持つファイルを無視 | 特定のハッシュを持つファイルを無視 | APIを通じて設定可能なハッシュ無視 |
| 出力 | 潜在的なWebシェルが見つかった場合、ファイル名、エントロピー値、ハッシュを出力。それ以外の場合は「No evil identified today.」と表示。 | 潜在的なWebシェルが見つかった場合、JSON形式でファイル名、エントロピー値、ハッシュ、最終更新日、検出方法、信頼度スコアを出力。それ以外の場合は「No potential web shells detected.」と表示。 | ファイルメタデータ、エントロピー、予測結果、YARAマッチを含む詳細なJSON出力 |
| エントロピーと標準偏差 | エントロピー値を使用 | ファイル拡張子ごとにエントロピー値の平均と標準偏差を計算 | 高度な分析のためにエントロピーと標準偏差の両方を計算 |
| 混合モード検出 | なし | エントロピーベース検出、標準偏差ベース検出、および混合モード検出(ハードコードされたしきい値を使用した標準偏差の活用)の組み合わせを使用 | エントロピーベース検出、機械学習予測、YARAルールマッチングの組み合わせ |
| 静的コード分析 | なし | コードを静的に分析して既知の悪意のあるパターンを識別・フラグするパターンベースの検出メカニズム | パターンベース検出にYARAルールを利用 |
| ヒューリスティック分析 | なし | Perform-HeuristicAnalysis関数を導入し、ヒューリスティックルールに基づく異常を検出してゼロデイWebシェルの検出を強化 | ヒューリスティック分析のために機械学習ベースの予測を実装 |
| 詳細な結果表示 | なし | 構造化されたJSON形式で脅威を表示(ファイルパス、エントロピー、標準偏差、ハッシュ、最終更新日、検出方法、信頼度スコアを含む) | すべての分析方法を含む包括的な結果を構造化JSON形式で提供 |
| 包括的なログ記録 | なし | スクリプト全体にWrite-Verboseコマンドを組み込み、詳細なログ記録と運用の透明性を実現 | エージェントとサーバーコンポーネント全体に詳細ログ記録を実装 |
| 信頼度スコアリング | なし | 検出方法に基づく信頼度スコアを計算し、疑わしいパターンの有無に応じて調整 | 機械学習予測の信頼度を使用し、他の検出方法と組み合わせて包括的なスコアを算出 |
| モジュール設計 | なし | 異なるタスク(例: Process-File、Create-ResultObject、Adjust-ConfidenceScore)に別々の関数を使用し、コードの再利用性と保守性を促進 | エージェント、サーバー、分析機能のための個別コンポーネントを備えた高度にモジュール化された設計 |
| クロスプラットフォーム対応 | PowerShellのみ | PowerShellのみ | PowerShell、Python、Bash実装に対応 |
| API統合 | なし | なし | 設定、結果送信、管理のための包括的なAPI |
| AI搭載分析 | なし | なし | AIベースのトリアージと分析機能を組み込み |
| YARAルール管理 | なし | なし | APIを通じたYARAルールの追加、更新、削除が可能 |
| Webインターフェース | なし | なし | 結果の可視化と分析のためのWebベースインターフェースを提供 |