Harvesting Runtime Values in Android Applications That Feature Anti-Analysis Techniques Presented by Vikraman Mohan.

Slides:



Advertisements
Similar presentations
Logical and Physical Design of an Information System
Advertisements

Operating System Security : David Phillips A Study of Windows Rootkits.
Leveraging User Interactions for In-Depth Testing of Web Applications Sean McAllister, Engin Kirda, and Christopher Kruegel RAID ’08 1 Seoyeon Kang November.
C++ fundamentals.
State coverage: an empirical analysis based on a user study Dries Vanoverberghe, Emma Eyckmans, and Frank Piessens.
Presentation By Deepak Katta
Jarhead Analysis and Detection of Malicious Java Applets Johannes Schlumberger, Christopher Kruegel, Giovanni Vigna University of California Annual Computer.
Chapter Seven Advanced Shell Programming. 2 Lesson A Developing a Fully Featured Program.
DroidKungFu and AnserverBot
WARNINGBIRD: A Near Real-time Detection System for Suspicious URLs in Twitter Stream.
Testing Tools. Categories of testing tools Black box testing, or functional testing Testing performed via GUI. The tool helps in emulating end-user actions.
 Collection of connected programs communicating with similar programs to perform tasks  Legal  IRC bots to moderate/administer channels  Origin of.
APT29 HAMMERTOSS Jayakrishnan M.
Presented by: Kushal Mehta University of Central Florida Michael Spreitzenbarth, Felix Freiling Friedrich-Alexander- University Erlangen, Germany michael.spreitzenbart,
Disclaimer The Content, Demonstration, Source Code and Programs presented here is "AS IS" without any warranty or conditions.
CloudAppSec : Cloud Based Application Security for Android Applications Animesh Nandanwar Kshitij Desai Mayuresh Randive
Ether: Malware Analysis via Hardware Virtualization Extensions Author: Artem Dinaburg, Paul Royal, Monirul Sharif, Wenke Lee Presenter: Yi Yang Presenter:
Mark Aslett Microsoft Introduction to Application Compatibility.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Auther: Kevian A. Roudy and Barton P. Miller Speaker: Chun-Chih Wu Adviser: Pao, Hsing-Kuo.
Fundamentals of Proxying. Proxy Server Fundamentals  Proxy simply means acting on someone other’s behalf  A Proxy acts on behalf of the client or user.
Android Security Auditing Slides and projects at samsclass.info.
Christopher Kruegel University of California Engin Kirda Institute Eurecom Clemens Kolbitsch Thorsten Holz Secure Systems Lab Vienna University of Technology.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
MICHALIS POLYCHRONAKIS(COLUMBIA UNIVERSITY,USA), KOSTAS G. ANAGNOSTAKIS(NIOMETRICS, SINGAPORE), EVANGELOS P. MARKATOS(FORTH-ICS, GREECE) ACSAC,2010 Comprehensive.
Dealing with Malware By: Brandon Payne Image source: TechTips.com.
Presented by: Akbar Saidov Authors: M. Polychronakis, K. G. Anagnostakis, E. P. Markatos.
(1) A beginners guide to testing Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
LOGOPolyUnpack: Automating the Hidden-Code Extraction of Unpack-Executing Malware Royal, P.; Halpin, M.; Dagon, D.; Edmonds, R.; Wenke Lee; Computer Security.
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
Refined Online Citation Matching and Adaptive Canonical Metadata Construction CSE 598B Course Project Report Huajing Li.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
BareDroid Presenter: Callan Christophersen. What is BareDroid BareDroid is a system to analyse Android apps on real devices with no emulation. It uses.
AppAudit Effective Real-time Android Application Auditing Andrew Jeong
Unveiling Zeus Automated Classification of Malware Samples Abedelaziz Mohaisen Omar Alrawi Verisign Inc, VA, USA Verisign Labs, VA, USA
G2 - Keit Team members: ●Siyang Piao ●Peter Huang ●Bojun Jin ●Ivy Wang ●Jing Wang.
Cosc 4765 Antivirus Approaches. In a Perfect world The best solution to viruses and worms to prevent infected the system –Generally considered impossible.
CopperDroid Logan Horton. Android - Background Android is complicated to analyse due to having 2 places to check for code execution Normally, code is.
INFORMATION-FLOW ANALYSIS OF ANDROID APPLICATIONS IN DROIDSAFE JARED YOUNG.
WHAT THE APP IS THAT? DECEPTION AND COUNTERMEASURES IN THE ANDROID USER INTERFACE.
Joshua Garcia Institute for Software Research
JavaScript, Sixth Edition
More Security and Programming Language Work on SmartPhones
TMG Client Protection 6NPS – Session 7.
TriggerScope: Towards Detecting Logic Bombs in Android Applications
Cash Me Presented By Group 8 Kartik Patel, Aaron Zhong, Wen-Kai Chen,
Testing and Debugging PPT By :Dr. R. Mall.
V. A. Memos and K. E. Psannis*
Honeypot in Mobile Network Security
Data Transport for Online & Offline Processing
AUDACIOUS: USER DRIVEN ACCESS CONTROL WITH UNMODIFIED OPERATING SYSTEM
Presented by Xiaohui (Amy) Lin
Siegfried Rasthofer, Steven Arzt, Marc Miltenberger, Eric Bodden
Techniques, Tools, and Research Issues
TriggerScope Towards Detecting Logic Bombs in Android Applications
BotCatch: A Behavior and Signature Correlated Bot Detection Approach
Un</br>able’s MySecretSecrets
TriggerScope Towards detecting logic bombs in android applications
Intercept X for Server Early Access Program Sophos Tester
Jihyun Park, Changsun Park, Byoungju Choi, Gihun Chang
Chapter 8: Monitoring the Network
Format String.
C. M. Overstreet Old Dominion University Spring 2006
Android Platform, Android App Basic Components
Basic Dynamic Analysis VMs and Sandboxes
C. M. Overstreet Old Dominion University Fall 2007
When Machine Learning Meets Security – Secure ML or Use ML to Secure sth.? ECE 693.
SHELLSHOCK ATTACK.
Framework Anil
Presentation transcript:

Harvesting Runtime Values in Android Applications That Feature Anti-Analysis Techniques Presented by Vikraman Mohan

Inspiration Security analysts are interested in runtime values such as: URLs to which the data is sent Target phone numbers of SMS messages Targets of reflective method calls However, sophisticated obfuscation, string encryption and emulator detection make human inspection, static analysis and dynamic analysis difficult(Ineffective)

Static Analysis? Dynamic Analysis? Static and Dynamic Analysis Testing if(Build.FINGERPRINT.startsWith("generic")) Static Analysis? msg = AES.decrypt("1234","fri$ds\&S") Dynamic Analysis? nr = "00" if(simCountryIso().equals("US")) nr += "4242" nr += "8888" sendTextMessag e(nr , msg) No No ... 7

Static + Dynamic Analysis So What do we Do ? This is where Harvester Comes into the picture performing a Hybrid Analysis overcoming the demerits of both static and dynamic analysis. Instead of analyzing the actual code, which is hard when obfuscated the tool analyzes byte codes of the application by inspecting runtime values. Static + Dynamic Analysis

What if there are Time bombs or Logic bombs ?  Logic bombs cause an app to suppress any malicious activity if the app itself detects that it is executing within an analysis environment. Time bombs cause an app to suppress the malicious behavior in any case for a longer period of time, or until after a reboot of the phone, etc. This also includes botnet malware that only acts in response to a command received from a command-and-control server-,  it’s dynamic analysis tools will find virtually impossible to guess correctly

Steps Involved in HARVESTER Program slicing (Backward Slicing) Dynamic execution of the sliced program Injection of runtime values(Optional)

1.Program Slicing (Static Analysis) Keeping in mind the end goal to register all conceivable runtime estimations of a logging point, every single conceivable result of a restrictive articulation should be considered. HARVESTER replaces all conditions that are dependent on execution environment by a Boolean flag (Improved Static Analysis) and removes the code that are not of interest. “HARVESTER comes pre-customized with a configuration file listing fields and methods whose return values are known to depend on environment settings.”

2. Dynamic Execution of Sliced Program The Dynamic Analysis runs on the sliced program by combining the sliced code into a single entity. The GUI of the original application is also removed and replaced with direct function calls, this is called the reduced APK code. It return all values of interest of the logging points and also combines the

Run Time Value Injection The Runtime Value injection is an optional step that is provided by the HARVESTER tool to inject these values into other analyzing tools to make to get better results. This is carried out by replacing the reflective function calls with direct calls to the API.  HARVESTER  is the first fully-automated approach that performs such a value injection for Android.

What if the Application has got a high standard of Obfuscation ? When the application is obfuscated in such a way that not all the logging points cannot be identified. The HARVESTER starts to iterate itself from Program Slicing by partially implementing the Reflective method call graph.

User Inputs An .apk has to be given as input to the HARVESTER Pick a class you need to extricate runtime values for Example: URL, shell charges, SMS number, SMS content etc.. These are the input that is expected from the analyst to test an application using Harvester. Once a class is picked the corresponding API executes and gives all relative methods of the specified class.

Analysis Experimentation Tried with 12 malware tests from the most refined malware families e.g. FakeInstaller, Pincer, GinMaster It had 16,799 Malware samples given as input to the Harvester Observations 86.6% Accuracy i.e. It detects at least one value of all logging points. It has a precision of 100% by extracting all the runtime values for the specified categories. It took less than 3 minutes for HARVESTER to run an APK and extract values.

Criticism If the Malware is used to suppress its malicious activities more than 10 minutes then it cannot be detected If the Reflective calls are dependent on user input then Harvester might not be effective The time taken by the Harvester to run an apk does not provide any information regarding the size of the application

Possible Improvements Random Dummy Values can be updated with real possible values. Building an automated GUI testing system Setting up the threshold time instead of 10 mins to environment variable can be more accurate

Thank you Question ?