<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4692639943502360801</id><updated>2011-04-21T22:26:46.194-07:00</updated><category term='application design'/><category term='end-users security'/><category term='code-checksumming'/><category term='metamorphic code'/><category term='methamorphic viruses'/><title type='text'>GiM</title><subtitle type='html'>"I dream in vivid C"</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gim913.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4692639943502360801/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gim913.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>GiM 913</name><uri>http://www.blogger.com/profile/02301769887525871297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4692639943502360801.post-8992576877462795731</id><published>2007-01-19T05:07:00.001-08:00</published><updated>2007-01-21T18:02:29.149-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='end-users security'/><category scheme='http://www.blogger.com/atom/ns#' term='methamorphic viruses'/><category scheme='http://www.blogger.com/atom/ns#' term='metamorphic code'/><category scheme='http://www.blogger.com/atom/ns#' term='application design'/><category scheme='http://www.blogger.com/atom/ns#' term='code-checksumming'/><title type='text'>Metamorphic viruses and Code checksumming</title><content type='html'>&lt;h3&gt; What is code checksumming? &lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Code checksumming or self-checksumming application is a program that calculates &lt;a href="http://en.wikipedia.org/wiki/Checksum"&gt;checksum&lt;/a&gt; (e.g. by using &lt;a href="http://en.wikipedia.org/wiki/MD5"&gt;MD5&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/SHA"&gt;on of SHA family functions&lt;/a&gt; or even &lt;a href="http://en.wikipedia.org/wiki/Cyclic_redundancy_check"&gt;CRC&lt;/a&gt;) of code (or/and data) or part of code, to verify it's integrity.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; When we consider application security, this is quite useless 'protection' and most &lt;a href="http://en.wikipedia.org/wiki/Software_cracking"&gt;crackers&lt;/a&gt; will deal with it easily.&lt;br /&gt;&lt;br /&gt;Moreover, &lt;a href="http://www.scs.carleton.ca/~soma/pubs/gwurster-ieeesp-05.pdf" title="A generic attack on checksumming-based software tamper resistance"&gt;Wurster, van Oorschot and Somayaji described general attack on self-checksumming applications tampering resistance&lt;/a&gt;. They achieved it by using malicious (or altered or crafted as you prefer) OS with &lt;a href="http://en.wikipedia.org/wiki/Harvard_architecture" title="Harvard computer system architecture"&gt;Harvard architecture&lt;/a&gt; (yes, von Neumann is not the only architecture ;)), where executed code and data are separated.&lt;br /&gt;&lt;br /&gt;However, &lt;a href="http://www.cs.wisc.edu/~giffin/papers/acsac05/GCK05-acsac.pdf" title="Strengthening Software Self-Checksumming via Self-Modifying Code"&gt;Giffin, Christodorescu and Kruger&lt;/a&gt; proposed self-checksumming via &lt;abbr title="Self Modifying Code"&gt;SMC&lt;/abbr&gt; (self-modifying-code) in order to bypass Wurster &lt;em&gt;et al.&lt;/em&gt; attack. They achive it simply by altering code right before its execution and checking if the code really changed (von Neumann model) or not (Harvard).&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Metamorphic viruses?&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;What is metamorphic virus? &lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;br /&gt;A metamorphic virus is like a 49cc motorbike with a space shuttle fuel deposit (if you can handle such vision :).&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p style="text-align:right;"&gt;&lt;em&gt;The Mental Driller&lt;/em&gt; from &lt;em&gt;29a&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;br /&gt;As the saying goes, a picture is worth a thousand words. The T-1000 model of Terminator 2 is the easiest possible analogy to use. Zmist integrates itself into the code section of the infected application, as the T-1000 model can hide itself on the floor.&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p style="text-align:right;"&gt;excerpt from &lt;em&gt;Hunting for Metamorphic&lt;/em&gt; by &lt;em&gt;Péter Ször&lt;/em&gt; and &lt;em&gt;Peter Ferrie&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Now, those two quotes were quite vivid. I am referring here to fully metamorphic viruses like Zmist presented to (A)V community by Z0mbie and Metaphor (a.k.a. Simile) presented by The Mental Driller.&lt;br /&gt;&lt;br /&gt;Metamorphic virus is a one, that has the ability to:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt; possibly decipher, &lt;/li&gt;&lt;br /&gt; &lt;li&gt; analyze it's own code during run time, &lt;/li&gt;&lt;br /&gt; &lt;li&gt; (possibly cipher and) reorder instruction flow, &lt;/li&gt;&lt;br /&gt; &lt;li&gt; integrate with the host (victim) program. &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt; Metamorphic viruses usually use EPO (Entry Point Obfuscation) and other anti-AV software techniques.&lt;br /&gt;&lt;br /&gt;Metamorphic viruses, are current state-of-the-art of computer software. Writing metamorphic virus requires lot of persistence, broad knowledge and high programming skills. That's why there are only few metamorphic viruses.&lt;br /&gt;&lt;br /&gt;As you've probably guessed already distinguishing between program infected with metamorphic virus and 'clean' one is very hard to do. It's very irresponsible to rely upon heuristics and string-based signatures are usually totally useless. It is probably possible to recognize infected file by using some code statistics, but in case of mail-servers this method would be slow and inefficient.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Synthesis and conclusion&lt;/h3&gt;&lt;br /&gt;&lt;p&gt; This two topics were introduced from one simple reason. Although metamorphic viruses are really complicated ones. Probably no virus till this time (well in fact I haven't heard about any, but it doesn't mean such a virus couldn't exist) analyze host code in order to 'understand' hosts functionality.&lt;br /&gt;&lt;br /&gt;Code-checksumming is useless scheme when it comes to subject of software cracking, but it could save users time, and therefore money.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;That's why I think software vendors should use software self-checking.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;BTW: Most AV products does self-checking (not necessarily code-checksumming, there are other methods). Other software vendors also should...&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="text-align:right;"&gt;see you anytime (soon?)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4692639943502360801-8992576877462795731?l=gim913.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gim913.blogspot.com/feeds/8992576877462795731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4692639943502360801&amp;postID=8992576877462795731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4692639943502360801/posts/default/8992576877462795731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4692639943502360801/posts/default/8992576877462795731'/><link rel='alternate' type='text/html' href='http://gim913.blogspot.com/2007/01/metamorphic-viruses-and-code.html' title='Metamorphic viruses and Code checksumming'/><author><name>GiM 913</name><uri>http://www.blogger.com/profile/02301769887525871297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
