Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes | ||
en:cs:web_applications_threats_modeling [2017/01/27 14:45] – [Threats class: A1 injection] fraggle | en:cs:web_applications_threats_modeling [2017/02/16 14:43] – fraggle | ||
---|---|---|---|
Ligne 8: | Ligne 8: | ||
===== Threats class: A1 injection ===== | ===== Threats class: A1 injection ===== | ||
- | Each web applications has a finite set of input parameters being in forms, URL parameters, ... called $ \mathcal{I} = \{i_{1},\dots,i_{n}\}, \, n \in \mathbb{N} $.\\ | + | Each web applications has a finite set of visibles |
- | All input parameters are typed: | + | All parameters are not typed: |
- | + | ||
- | $ \mathcal{T} = | + | |
- | \left \{ | + | |
- | | + | |
- | t_{1} & = & integer \\ | + | |
- | t_{2} & = & string \\ | + | |
- | \vdots & & \vdots \\ | + | |
- | t_{k} & = & type_{k} | + | |
- | | + | |
- | | + | |
- | We will consider the cartesian product | + | We will consider the set $ \mathcal{P} $ in the future. |
- | __Question: | + | __Question: |
Let's describe the processus to assess A1 threats in a web application. | Let's describe the processus to assess A1 threats in a web application. | ||
- | * Phase one: determine $ \mathcal{I}\times\matchcal{T} $ | + | * Phase one: determine $ \mathcal{P} $ |
- | It will be depend on the approach chosen.\\ | + | It will depend on the approach chosen.\\ |
If it's a black box testing, it will be based on URLs scanning, pages content scanning, ....\\ | If it's a black box testing, it will be based on URLs scanning, pages content scanning, ....\\ | ||
If it's static code analysis, it will be based on detection of code pattern.\\ | If it's static code analysis, it will be based on detection of code pattern.\\ | ||
- | Each inputs' type shall be inferred. | + | In case of code static analysis, each visible parameters' type shall be inferred. |
- | We might also consider the location of each input.\\ | + | We might also consider the location of each parameters.\\ |
- | __Question__: | + | __Question__: |
- | (If it's useful, it will bring in a new finite set $ \mathcal{L} $ which will contain $ \{l_{1}, | + | (If it's useful, it will bring in a new finite set $ \mathcal{L} $ which will contain $ \{l_{1}, |
* Phase two: determine data pattern to inject | * Phase two: determine data pattern to inject | ||
- | It will of course not be a blind and random data building like fuzzing, data should be intelligently | + | It will of course not be a blind and random data building like fuzzing, data should be carefully |
For now, we only know it is finite. | For now, we only know it is finite. | ||