私は、SAPに基づくWebアプリケーションを顧客向けにテストしています。通常行うチェックの1つは、セッショントークンを保持するCookieを分析して、それが十分にランダムであり、次の有効なトークンを予測できないことを確認することです。 Burpシーケンサーを使用してこれを行います。このとき、Cookieの最初に大量の静的データが含まれているように見えました。私はそれをBase64でデコードし、最初の130文字(テキスト)にユーザー名、顧客コード、日付/時刻が含まれていることを確認しました。これはSAPの既知の「機能」だと思います。
私のレポートで説明するのに苦労しているのは、デコーダーの結果がシーケンサーとどのように一致するかです。たとえば、Cookieのクリアテキストでは、静的データは位置0で始まり、文字130で終わる必要があります-これは、シーケンサーの文字分析で見られる値に対応していません-合計で表示される文字数も対応していませんCookieの実際の文字数に。シーケンサーで静的な部分を確認でき、時間の部分が変化するエントロピースパイクでも、文字の位置を関連付けることができません。さらに、シーケンサーでビット分析を見ると、値が逆になっているように見えるため、シーケンスの最初に静的な値が表示される代わりに、最後にそれが表示されます。
誰かが私が見ているものを私に説明してくれるといいのですが、どんな助けにも感謝します。
Burp Sequencerがランダム性をテストするために実行する統計的テストのタイプの説明があります。以下は、初期の高レベルの説明であり、 page は、トークンデータの文字およびビット分析を含む、実行される個々のテストの特性を説明します。
Burp Sequencerは、ランダム性の標準統計検定を採用しています。これらは、証拠のサンプルに対して仮説をテストし、仮説が真であると仮定して、観測されたデータが発生する確率を計算するという原則に基づいています。
- テストされる仮説は、トークンがランダムに生成されることです。
- 各テストは、トークンがランダムに生成された場合に特定の特性を持つ可能性が高いサンプルの特定のプロパティを観察します。
- 観測された特性が発生する確率は、仮説が真であるという仮定に基づいて計算されます。
- この確率が特定のレベル(「有意水準」)を下回ると、仮説は拒否され、トークンはランダムではないと見なされます。
これが一部に役立つことを願っています。