<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/index.php?action=history&amp;feed=atom&amp;title=Create_unpredictable_defenses_%28code_modification_prevention%29</id>
		<title>Create unpredictable defenses (code modification prevention) - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/index.php?action=history&amp;feed=atom&amp;title=Create_unpredictable_defenses_%28code_modification_prevention%29"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Create_unpredictable_defenses_(code_modification_prevention)&amp;action=history"/>
		<updated>2026-04-20T21:43:03Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Create_unpredictable_defenses_(code_modification_prevention)&amp;diff=172182&amp;oldid=prev</id>
		<title>Jonathan Carter: Created page with &quot;{{Template:Principle}} Category:OWASP Reverse Engineering and Code Modification Prevention Project Category:Principle __NOTOC__ &lt;br&gt; = Context = Mobile app developers ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Create_unpredictable_defenses_(code_modification_prevention)&amp;diff=172182&amp;oldid=prev"/>
				<updated>2014-04-09T23:18:46Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Template:Principle}} &lt;a href=&quot;/index.php?title=Category:OWASP_Reverse_Engineering_and_Code_Modification_Prevention_Project&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Category:OWASP Reverse Engineering and Code Modification Prevention Project (page does not exist)&quot;&gt;Category:OWASP Reverse Engineering and Code Modification Prevention Project&lt;/a&gt; &lt;a href=&quot;/index.php/Category:Principle&quot; title=&quot;Category:Principle&quot;&gt;Category:Principle&lt;/a&gt; __NOTOC__ &amp;lt;br&amp;gt; = Context = Mobile app developers ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Template:Principle}}&lt;br /&gt;
[[Category:OWASP Reverse Engineering and Code Modification Prevention Project]]&lt;br /&gt;
[[Category:Principle]]&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
= Context =&lt;br /&gt;
Mobile app developers must take into account a whole host of new risks that relate to hosting code in an uncontrolled environment. If you are hosting code in an untrustworthy environment, you are susceptible to the risk that an adversary will reverse engineer and modify your code via binary attacks &amp;lt;sup&amp;gt;&amp;amp;#91;[[#ReferenceItem1|1]]&amp;amp;#93;&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;&amp;amp;#91;[[#ReferenceItem2|2]]&amp;amp;#93;&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;&amp;amp;#91;[[#ReferenceItem3|3]]&amp;amp;#93;&amp;lt;/sup&amp;gt; &amp;lt;sup&amp;gt;&amp;amp;#91;[[#ReferenceItem4|4]]&amp;amp;#93;&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:MainProjectIcon.png|30px|link=https://www.owasp.org/index.php/OWASP_Reverse_Engineering_and_Code_Modification_Prevention_Project]] This content is part of a much bigger set of principles defined within the [https://www.owasp.org/index.php/Architectural_Principles_That_Prevent_Code_Modification_or_Reverse_Engineering Architectural Principles That Prevent Code Modification or Reverse Engineering] project.&lt;br /&gt;
&lt;br /&gt;
= Description =&lt;br /&gt;
When invoking a particular integrity control at runtime, it is critical to assign a probability of execution to each control invocation. By assigning probabilities of execution to a particular control instance, you are creating integrity defenses that are unpredictable to the adversary. Furthermore, you avoid the &amp;quot;break-once-run-anywhere&amp;quot; scenario outlined below.&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
For example, an organization implements Checksum control &amp;quot;A&amp;quot; that is verifying the code integrity of another Checksum control &amp;quot;B&amp;quot;. Checksum control &amp;quot;B&amp;quot; is verifying the integrity of a particularly sensitive method within the app. In order to modify this method, the attacker must modify the method, Checksum control &amp;quot;B&amp;quot;, and Checksum control &amp;quot;A&amp;quot; in order to allow for a successful crack. If you reduce the probability of execution of &amp;quot;A&amp;quot;, &amp;quot;A&amp;quot; may not always check the integrity of &amp;quot;B&amp;quot;. In implementing this behavior, the adversary may think they have successfully cracked the mobile app by modifying the protected method along with Checksum control &amp;quot;B&amp;quot;. Due to the reduced probability-of-execution feature, the attacker has overlooked that &amp;quot;B&amp;quot; will occasionally check &amp;quot;A&amp;quot;. The adversary has created a crack that is unreliable and will not work across all instances of the mobile app in the wild.&lt;br /&gt;
&lt;br /&gt;
= External References =&lt;br /&gt;
&amp;lt;span id=&amp;quot;ReferenceItem1&amp;quot;&amp;gt;[1] Arxan Research: [https://www.arxan.com/assets/1/7/State_of_Security_in_the_App_Economy_Report_Vol._2.pdf State of Security in the App Economy, Volume 2], November 2013:&lt;br /&gt;
:''“Adversaries have hacked 78 percent of the top 100 paid Android and iOS apps in 2013.”''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;ReferenceItem2&amp;quot;&amp;gt;[2] HP Research: [http://www8.hp.com/us/en/hp-news/press-release.html?id=1528865#.UuwZFPZvDi5 HP Research Reveals Nine out of 10 Mobile Applications Vulnerable to Attack], 18 November 2013:&lt;br /&gt;
:''&amp;quot;86 percent of applications tested lacked binary hardening, leaving applications vulnerable to information disclosure, buffer overflows and poor performance. To ensure security throughout the life cycle of the application, it is essential to build in the best security practices from conception.&amp;quot;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;ReferenceItem3&amp;quot;&amp;gt;[3] North Carolina State University: [http://www.csc.ncsu.edu/faculty/jiang/pubs/OAKLAND12.pdf Dissecting Android Malware: Characterization and Evolution], 7 September 2011:&lt;br /&gt;
:''“Our results show that 86.0% of them (Android Malware) repackage legitimate apps to include malicious payloads; 36.7% contain platform-level exploits to escalate privilege; 93.0% exhibit the bot-like capability.”''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;ReferenceItem4&amp;quot;&amp;gt;[4] InfoSecurity Magazine: [http://www.infosecurity-magazine.com/view/36376/two-thirds-of-personal-banking-apps-found-full-of-vulnerabilities/ Two Thirds of Personal Banking Apps Found Full of Vulnerabilities], January 3 2014:&lt;br /&gt;
:''“But one of his more worrying findings came from disassembling the apps themselves ... what he found was hardcoded development credentials within the code. An attacker could gain access to the development infrastructure of the bank and infest the application with malware causing a massive infection for all of the application’s users.”''&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jonathan Carter</name></author>	</entry>

	</feed>