This report describes recent enhancements to Droid Intent Data Flow
Analysis for Information Leakage (DidFail), the CERT static taint
analyzer for sets of Android apps. The enhancements are new analytical
functionality for content providers, file accesses, and dynamic
broadcast receivers. Previously, DidFail did not analyze taint flows
involving ContentProvider components; however, now it analyzes taint
flows involving all four types of Android components. The latest version
of DidFail tracks taint flow across file access calls more precisely
than it did in prior versions of the software. DidFail was also modified
to handle dynamically declared BroadcastReceiver components in a fully
automated way, by integrating it with a recent version of FlowDroid and
working to fix remaining un-analyzed taint flows. Finally, a new command
line argument optionally disables static field analysis in order to
reduce DidFail's memory usage and analysis time. These new features make DidFail's taint tracking more precise (for
files) and more comprehensive for dynamically registered BroadcastReceiver and ContentProvider components. We implemented the new
features and tested them on example apps that we developed and on
real-world apps from different categories in the Google Play app store.
Publisher StatementThis material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center.
Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Department of Defense. References herein to any specific commercial product, process, or service by trade name, trade mark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by Carnegie Mellon University or its Software Engineering Institute.
This report was prepared for the SEI Administrative Agent AFLCMC/PZM 20 Schilling Circle, Bldg 1305, 3rd Floor Hanscom AFB, MA 01731-2125
NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN \AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
[Distribution Statement A] This material has been approved for public release and unlimited distribution. Please see Copyright notice for non-US Government use and distribution.
Copyright StatementCopyright 2017 Carnegie Mellon University
Internal use:* Permission to reproduce this material and to prepare derivative works from this material for internal use is granted, provided the copyright and “No Warranty” statements are included with all reproductions and derivative works.
External use:* This material may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission. Permission is required for any other external and/or commercial use. Requests for permission should be directed to the Software Engineering Institute at firstname.lastname@example.org.
* These restrictions do not apply to U.S. government entities.
Carnegie Mellon® and CERT® are registered marks of Carnegie Mellon University.