
SAP NetWeaver Java アプリケーションにおける CVE-2020-6287 (RECON) 向けブラックボックス型脆弱性スキャナおよび侵害指標(IoC)アナライザ。迅速な露出評価とログベースのフォレンジック調査を可能にします。
RECON(Remotely Exploitable Code On NetWeaver)は、SAP NetWeaver Java スタック上で動作する多くの SAP ビジネスおよびテクニカルアプリケーションに影響を与える重大な(CVSSv3 10)脆弱性です。この脆弱性は Onapsis Research Labs によって発見され、SAP と緊密に協力して 2020 年 7 月 14 日にパッチを開発・リリースしました。この問題の重大性を考慮し、米国 DHS CISA、BSI CERT-Bund およびその他の政府機関は、SAP 顧客に対して脆弱なアプリケーションを保護するよう促すアラートを発令し、特にインターネットに面したものを優先しました。
RECON を標的とした悪意のある活動が実際に観測され、脆弱なインターネット向け SAP アプリケーションの数と、これらのシステムが通常サポートするデータやプロセスの機密性を考慮して、Onapsis はこのオープンソースツールを可能な限り迅速に開発・リリースすることを決定しました。目標は、すべての SAP 顧客の情報セキュリティおよび管理チームが、自社のミッションクリティカルなアプリケーションを保護できるよう、露出を評価し、SAP システムが侵害された可能性があるかどうかを評価できるようにすることです。当社の製品、研究チーム、そして広範なコミュニティによって新しい脅威インテリジェンスやフォレンジックデータが取得されるたびに、このツールをさらに反復的に改良していく予定です。
This tool can:
This tool cannot:
ただし、このツールにはいくつかの既知の制限があり、その使用は SAP アプリケーションが RECON(およびその他の脆弱性)にさらされていないこと、またはアプリケーションが侵害されていないことを保証するものと考えるべきではありません。多くの条件が評価対象のアプリケーションやログファイルの状態に影響を与え、誤検出や見逃しを引き起こす可能性があります。
IoC が特定された場合は、潜在的な侵害の範囲と程度を判断するために、評価対象のシステム(および相互接続されたシステム)の詳細なフォレンジック調査を実施することを強くお勧めします。
このツールは「現状のまま」提供され、保証はありません。
代替オンラインバージョン
インターネット向けシステムに対する RECON の迅速な評価を支援するために、両方のユースケースをサポートする無料のオンラインバージョンも開発しました。ご希望の場合は、https://recon.onapsis.com でこのサービスをご利用いただけます。
スクリプトは Python 3 で開発されており、以下の依存関係をインストールする必要があります:
# python3 -m venv .venv
# . .venv/bin/activate
# pip install -r requirements.txt
依存関係をインストールしたら、Python を使用して両方のスクリプトを実行し、コマンドラインからヘルプを取得できます。
脆弱性検出のため、以下のスクリプトを実行します:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -h
スクリプトは、分析対象の SAP アプリケーションとネットワーク接続があるシステム上で実行する必要があります。SAP NetWeaver JAVA Application サーバーの HTTP(s) ポートに到達可能である必要があります(たとえば、インスタンス 00 の場合、HTTP では 50000 ですが、プロキシ/ロードバランサーを通じて公開されたり、80 や 443 などの他の TCP ポートからアクセス可能な場合があります)。
RECON 脆弱性をテストするためのパラメータとして有効な URL を含めるには、-u パラメータを使用します:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -u http://myinternalportal.mycompany.com:50000/
また、-f パラメータを使用して、分析するすべての URL を含むファイルを指定することで、複数の URL を評価できます:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls
評価の出力は stdout に送信されます。次の方法でファイルに出力できます:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls >> results
侵害指標を検出するには、以下のスクリプトを実行します:
python3 RECON_CVE-2020-6287_ioc_scanner.py -h
スクリプトはファイル名を受け取り、LM CTC アプリケーションの使用に基づいて IoC を探すためにファイル名を解析します。以下の種類のファイルが受け入れられます:
applications_xx.y.log
必要なファイルは以下のフォルダにあります:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\
responses_xx.y.trc
デフォルトのフォーマット設定を使用します。標準のログフォーマット設定に変更が加えられた場合、解析に失敗する可能性があります。その場合、内部の正規表現を新しいフォーマットに合わせて手動で調整する必要があります。必要なファイルは以下のフォルダにあります:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/system/httpaccess/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\system\httpaccess\
-f パラメータを使用して特定のファイルを分析するスクリプトを実行できます:
python3 RECON_CVE-2020-6287_ioc_scanner.py -f path_to_logfile
bash スクリプトを使用して、複数のファイルに対して同時にスクリプトを実行できます。たとえば、複数のログを含むディレクトリが /tmp/sap_RECON_logs/ にある場合、実行は次のようになります:
path_to_log_folder="/tmp/sap_RECON_logs/";for log_file in `ls $path_to_log_folder`; do python RECON_CVE-2020-6287_ioc_scanner.py -f $path_to_log_folder/$log_file -o csv; done
Onapsis のサイバーセキュリティ専門家チームは、フォローアップの質問に回答したり、特定された指標に関する可視性を得るためのさらなる支援を提供いたします。Onapsis には [email protected] までお問い合わせください。