typo ch 4
All checks were successful
/ test_checkout (push) Successful in 48s

This commit is contained in:
Jean-Marie 'Histausse' Mineau 2025-12-21 14:21:12 +01:00
parent 3b5df50248
commit ca4e7703e1
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
6 changed files with 2781 additions and 623 deletions

View file

@ -63,21 +63,22 @@ Such shadow attacks are more difficult to detect by a reverse engineer, who may
=== Impact on Static Analysis Tools <sec:cl-evaltools>
#figure(
#figure({
set text(size: 10pt)
```java
public class Main {
public static void main(Activity ac) {
String personal_data = Taint.source();
String obfuscated_personal_data = Obfuscation.hide_flow(personal_data);
Taint.sink(ac, obfuscated_personal_data);
}
public static void main(Activity ac) {
String personal_data = Taint.source();
String obfuscated_personal_data = Obfuscation.hide_flow(personal_data);
Taint.sink(ac, obfuscated_personal_data);
}
}
// customised for each obfuscation technique
public class Obfuscation {
public static String hide_flow(String personal_data) { ... }
}
```,
```},
caption: [Main body of test apps]
)<lst:cl-testapp>
@ -102,7 +103,7 @@ We used 4 versions of this application:
We used the #SDK class `Pair` as the class to shadow.
We put data in a new `Pair` instance and reread the data from the `Pair`.
The colliding `Pair` class we created discards the data at the initialisation and stores `null` instead of the argument values.
This decoy class break the flow of information: Flowdroid will detect the information flow if it uses the actual #SDK implementation of `Pair` to compute the #DFG, but not if it uses the decoy.
This decoy class breaks the flow of information: Flowdroid will detect the information flow if it uses the actual #SDK implementation of `Pair` to compute the #DFG, but not if it uses the decoy.
+ The last version tests for Hidden #API shadowing.
Like for the third one, we similarly store data in `com.android.okhttp.Request` and then retrieve it.
Again, the shadowing implementation discards the data.