セキュリティ研究者は、Cisco Security Managerに12のセキュリティ上の欠陥を発見した。そのうちのいくつかは、攻撃者を完全に制御できる認証前のリモートコマンド実行の脆弱性であった。Ciscoは11月11日にバージョン4.22の欠陥にパッチを適用した。ただし、研究者によると、「リリースノートには脆弱性について何も記載されておらず、セキュリティアドバイザリは公開されていない」。
研究者のFrycos氏は、侵入テストを実行して脆弱性を特定して報告する専門会社であるCode Whiteのレッドチームに所属している。Frycos氏はこの開示について、「Cisco PSIRTが応答しなくなり、公開されたリリース4.22にはまだ脆弱性が記載されていない。1つのGistに12の[概念実証]がある。」と説明している。概念実証の公開は一般的な業界慣行であり、Google Project Zeroなどの主要な業界プレーヤーは90日間のタイムラインに従って、脆弱性に関する関連情報を完全に開示することをよく行っている。開示の時点で、Ciscoはすでに120日を超えていた。
脆弱性は、Java逆シリアル化(CWE-502)と任意のファイルのダウンロードという2つの主要なカテゴリから派生する。逆シリアル化の欠陥は、バイナリデータからJavaオブジェクトに再生成するアプリケーションで発生する。正しく行われなかった場合、特定のクラスファイルは、その逆シリアル化プロセスの一部としてサーバ上でコードを実行する。これにより、ユーザが制御するデータがRuntime.execなどの慎重に扱うべきクラスに渡されることがよくある。ysoserialのような一般的なツールは、一般的なソフトウェアフレームワークに対してペイロードを生成するために存在する。
デシリアライズの欠陥は、Javaアプリケーションに固有のものではない。ysoserial.netなどのツールは他の言語でも利用できる。クラスを理解するためのコンテキストがネットワーク層で利用できないため、逆シリアル化攻撃はWebアプリケーションファイアウォールなどのセキュリティツールをバイパスする。
これらの脆弱性の開示に続いて、CiscoとCode Whiteは、調査結果に適切に対処して文書化するためにコミュニケーションを再開した。Frycosは開示後、次のように述べている。「Ciscoを電話をした。よい電話であった。不足している脆弱性の修正も実際に実装されたが、さらにテストが必要である。SP1は数週間以内にリリースされる。優れたコラボレーションのやり方が見つかった。」
同様の逆シリアル化の問題に対して独自のコードを評価しようとしている開発者は、米国国立標準技術研究所のサイバーフレームワーク(NIST)800-53の拡張機能を活用できる。これには、インタラクティブなアプリケーションセキュリティテスト(IAST)(SA-11 9)が含まれている。これは、通常のアプリケーションランタイムの使用を通じてセキュリティの脆弱性を特定する手法である。IASTはセンサーをアプリケーションに織り込み、アクションがどのように、逆シリアル化ObjectInputStreamのような慎重に扱うべき関数や、Runtimeなどの他のクラスをどのように使用するかを記録する。依存関係の追跡とは異なり、このインタラクティブなテストアプローチでは、ランタイムを使用して、ライブラリとカスタムコードがそれぞれ個別に確認するのではなく、どのように連携するかを評価する。
Cisco Security Managerでは、WebフロントエンドフレームワークがCommonsBeanUtilsライブラリを介してシリアル化されたデータを使用する方法を利用した。CommonsBeanUtilsは、2019年に脆弱性の影響を受けた。Common Weakness Enumeration(CWE)が同じ逆シリアル化CWE-502と一致する。依存関係を定期的に更新することに加えて、逆シリアル化を使用する開発者は、アプリケーションを定期的に評価して、信頼できないソースからのデータが攻撃者が選択したサーバ側のペイロードの実行に使用されないようにする必要がある。