BurpSuite:Sequencer
Burp Sequencer
Qu'est-ce que Burp Sequencer?
Burp Sequencer est un module permettant de tester la fiabilité d'éléments générés aléatoirement (cookies de session par exemple). Le mode "live capture" permet une analyse pendant la navigation alors que le mode "manual load" permet une analyse a posteriori de composants de pages déjà capturées par BurpSuite. L'onglet option permet de paramétrer les différents paramètres de l'analyse.
Tests effectués par Burp Sequencer
Les tests effectués
Deux familles de tests sont effectués :
- les tests sur les caractères
- les tests sur les bits : Chaque caractère est transcrit sous forme de bit (série de 1 et de 0)
Les tests sur les caractères
- Analyse de comptage des caractères : analyse de la distribution des caractères à chaque position.
- Analyse de transition des caractères : analyse la probabilité qu'un caractère soit suivi par un autre entre deux tokens, à chaque position
Les tests sur les bits
- FIPS monobit test : l'équilibrage de distribution des 0 et des 1 est analysée à chaque position au sein du bit afin de déterminer l'entropie du token
- FIPS poker test : effectue un découpage de segments de 4 bits continus et représente la distribution sur une courbe du khi2 afin de déteminer l'entropie du token.
- FIPS runs tests : comptabilise le nombre de runs (suites de 0 successifs, et suites de 1 successifs) afin d'en étudier la distribution par longueur de run.
- FIPS long runs test : identifie l'entropie du token en fonction de la longueur du plus long "run" comparée à l'échantillon.
- spectral tests : effectue une représentation dans un espace multi-dimensionnel afin de tester l'entropie du token. Si le token est généré aléatoirement, la distribution doit être uniforme.
- correlation tests : Ce test étudie les corrélations entre bits.
- compression tests : effectue une compression ZLIB des séquences de bits à chaque position afin d'étudier la probabilité d'un génération aléatoire. Plus la compression est importante, et moins la séquence testée est susceptible d'être générée aléatoirement.
Interprétation des résultats
Seuil de signification
Les résultats doivent être comparés à un seuil de signification ("significance level"). Le seuil de signification est le niveau au-dessous duquel les erreurs ou risques d’erreurs relevés ne sont pas de nature à remettre en cause l'hypothèse testée (c'est à dire le postulat de départ : le token est généré aléatoirement). En d'autres termes, le seuil de signification correspond au risque d'erreur accepté. Plus celui-ci est bas, et plus les résultats obtenus sont fiables. Inversement, plus celui-ci est élevé, plus le risque d'erreur est important.
Fiabilité des résultats obtenus
Afin de maximiser la fiabilité des résultats obtenus, l'échantillon doit idéalement être composé de 20000 tokens. Néanmoins, il est possible d'analyser les résultats dès obtention de 100 tokens, afin d'avoir un bref apercu. Par ailleurs, il est possible d'obtenir de mauvais résultats alors que le token est généré aléatoirement (faux négatifs) et a contrario, d'obtenir de bons résultats alors que l'échantillon est généré en répondant à une logique non détectée avec les tests du "sequencer" (faux positifs).
Rapport d'analyse
Le rapport d'analyse produit des graphique par onglets. Le premier rapport est un résumé (summary) de l'analyse. Il note de manière globale le degré de fiabilité des tokens (excellent, good, poor, extremely poor, ...). Par ailleurs, un graphique affiche également le degré d'entropie des tokens analysés. Les figures suivantes montrent deux rapports aux résultats opposés : l'un mauvais, l'autre excellent. |
Comment utiliser Burp Sequencer?
Les modes
- live capture : permet une analyse sur base d'une page déjà visitée et présente dans l'historique du proxy
- manual load : permet l'analyse d'un fichier de tokens