<?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>Accuvant Insight &#187; Application Security</title>
	<atom:link href="http://insight.accuvant.com/category/appsec/feed/" rel="self" type="application/rss+xml" />
	<link>http://insight.accuvant.com</link>
	<description>Security Strategy Expertly Executed</description>
	<lastBuildDate>Wed, 08 Sep 2010 17:05:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Some Things Every CEO or CFO Needs to Know about IT Security</title>
		<link>http://insight.accuvant.com/appsec/some-things-every-ceo-or-cfo-needs-to-know-about-it-security/</link>
		<comments>http://insight.accuvant.com/appsec/some-things-every-ceo-or-cfo-needs-to-know-about-it-security/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 14:48:01 +0000</pubDate>
		<dc:creator>cgray</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[risk and compliance]]></category>

		<guid isPermaLink="false">http://insight.accuvant.com/?p=241</guid>
		<description><![CDATA[As a security professional, I often receive questions from customers regarding why applications or classes of applications should or should not be used in their enterprises. My response usually identifies a pair of criteria that I believe are critical in choosing enterprise-level solutions:

There is truly a need for the application.  There must be an honest [...]]]></description>
			<content:encoded><![CDATA[<p>As a security professional, I often receive questions from customers regarding why applications or classes of applications should or should not be used in their enterprises. My response usually identifies a pair of criteria that I believe are critical in choosing enterprise-level solutions:</p>
<ol>
<li><strong>There is truly a need for the application</strong>.  There must be an honest business need for the application. If not, organizations should seriously question the decision to use it. This must be carefully considered as every application chosen to support an enterprise-level need increases the overhead of an organization’s IT staff in terms of security and management responsibilities.  Many things are “nice to have,” but, at the end of the day, they simply decrease an organization’s security posture and tax already stressed resources.<br />
 </li>
<li><strong>The application can be thoroughly supported by the vendor or with available third-party resources.</strong>  Before using an application, the organization should determine how well they can support that application. It’s not wise to tie the success of an enterprise to an application that is overly difficult to manage or maintain. If the application does not have active vulnerability discovery and remediation support, requires management and support overhead that the organization cannot supply, relies on program or system support that negatively impacts the organizations business continuity management program, or contains areas of management and/or security vulnerabilities that cannot be sufficiently addressed using available native or third-party solutions, then the use of the application is likely not a good choice. Too often, we become fascinated with the shiny new car and forget to consider if we have the ability and money required to keep the car running.</li>
</ol>
<p>Examples of applications that companies should be concerned about include social media and older legacy applications.  These show both ends of the software spectrum – the new and the old.  Both, however, have concerns that must be addressed before they are allowed into the enterprise.</p>
<p>Social media is a rapidly expanding area, and, in many cases, these applications can definitely have legitimate business uses.  However, organizations should consider the dangerous concerns that social networking applications present concerning unauthorized data loss, loss of worker productivity, bandwidth and system resource consumption, and possible infection vectors for compromised code and malware.</p>
<p>Older, well-known applications are often used in favor of newer versions of the same systems.  Companies must consider that the cost savings made in not upgrading to newer versions may be offset by inherent security risks. Widely published and well-known security vulnerabilities contained in these programs can be easily compromised using tools openly proliferated across the Internet.  Also, the software may be at the end of its support lifecycle or tied to older hardware that is no longer easily available for replacement.  Older protocols and operating systems may have a legitimate business use, but, given the wide variety of more secure, supported, and commercially viable options available, the continued use of these products are likely more of a risk than benefit.</p>
<p>What litmus test does your organization use to determine whether or not to deploy a specific application in your environment?</p>
<p>Chris Gray<br />
Senior Risk and Compliance Management Consultant</p>
]]></content:encoded>
			<wfw:commentRss>http://insight.accuvant.com/appsec/some-things-every-ceo-or-cfo-needs-to-know-about-it-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enterprise Patch Management and Enterprise Configuration Management – Two Big Network Security Threats</title>
		<link>http://insight.accuvant.com/appsec/enterprise-patch-management-and-enterprise-configuration-management-%e2%80%93-two-big-network-security-threats/</link>
		<comments>http://insight.accuvant.com/appsec/enterprise-patch-management-and-enterprise-configuration-management-%e2%80%93-two-big-network-security-threats/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 16:36:48 +0000</pubDate>
		<dc:creator>jbroome</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[WAFs]]></category>

		<guid isPermaLink="false">http://insight.accuvant.com/?p=184</guid>
		<description><![CDATA[I visit lots of customer sites each year and see many security-related commonalities amongst them. At the top of this list, from a network security perspective is the lack of attention paid to enterprise patch management and enterprise configuration management. 
For better or for worse, Microsoft has taught the industry to patch once a month. But, [...]]]></description>
			<content:encoded><![CDATA[<p>I visit lots of customer sites each year and see many security-related commonalities amongst them. At the top of this list, from a network security perspective is the lack of attention paid to enterprise patch management and enterprise configuration management. </p>
<p>For better or for worse, Microsoft has taught the industry to <a href="http://www.microsoft.com/technet/security/Bulletin/advance.mspx">patch</a> once a month. But, most of Microsoft’s patches released on this monthly cycle deal only with the various <a href="http://en.wikipedia.org/wiki/List_of_Microsoft_operating_systems">Microsoft Operating Systems</a> and fail to address vulnerabilities in primary or secondary applications or services such as Exchange, SharePoint, IIS, etc. Due to this type of release cycle, and a lack of self education on the part of the administration staff, many organizations are failing to effectively patch the technologies and applications that lie on top of their Operating Systems, such as Oracle databases and desktop applications like Adobe Acrobat. Without a comprehensive patch management program, organizations continue to have significant gaps in their security based on missing patches. </p>
<p>Honestly, enterprise patch management doesn’t have to be a problem.  Just recently, Microsoft released their new patch management solution, which provided better flexibility to manage patches at the desktop and secondary application level. Additionally, there have been solutions available on the market that enable organizations to effectively maintain operating system patches for not only Windows but other operating systems such as Linux and Unix, as well as primary and secondary functioning applications like SQL servers, MS Office and the various Adobe products. Some even go as far as providing better support for pushing antivirus updates. Many of these solutions also provide the capabilities companies need to maintain consistent hardware configuration settings. </p>
<p>Just as enterprise patch management is a fixable issue, so is network enterprise configuration management. From a hardening procedure standpoint, organizations spend a lot of time creating their standard system build image and forget to come back and update that image on a regular basis.  A solution that was effective six to 12 months ago will not be effective today, and it will leave a network vulnerable. Standards change and the Internet is not static. Therefore, it’s important for companies to pay attention to ongoing maintenance of standards and policies and make ongoing changes as appropriate. </p>
<p>As you can see, when it comes to network security the people and processes are just as important as the technology &#8211; maybe even more so. I strongly believe that the biggest potential mistake administrators and/or companies can make is not educating their users.</p>
<p> The majority of recent attacks faced by Twitter and Google are directly targeting the employees and users of corporate networks. Companies that haven’t taught their users the basics of what to avoid can pretty much assume they’re going to get infected by the next big infestation/attack, especially when you couple that with legacy technologies like Internet Explorer 6 as the standard browser they are required to use. Providing ongoing user awareness training and seminars that include real world examples and scenarios is the best way to educate users on their requirements to help keep the environment as secure as possible. </p>
<p>Companies also need to focus more on using the right resources for the right initiatives. A common mistake that I’ve seen over the past two years happens when an organization buys a <a href="http://projects.webappsec.org/Web-Application-Firewall-Evaluation-Criteria">Web Application Firewall</a> (WAF) and leverages network operations personnel to implement and maintain the system. Unfortunately they will find out the hard way that they are using the wrong resources. A WAF requires detailed knowledge of the Web environment and application infrastructure, which many network operational professionals do not have. Based on a strong understanding of Web applications, an application level professional or developer would be a better choice for ongoing maintenance of this type of technology &#8211; at least from a policy and technology enforcement perspective.</p>
<p>I’d love to hear about the changes your company has made to harden network security. Let me know!</p>
<p>Jim Broome<br />
Director &#8211; Accuvant LABS</p>
]]></content:encoded>
			<wfw:commentRss>http://insight.accuvant.com/appsec/enterprise-patch-management-and-enterprise-configuration-management-%e2%80%93-two-big-network-security-threats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing Web App CAPTCHA controls</title>
		<link>http://insight.accuvant.com/appsec/testing-web-app-captcha-controls/</link>
		<comments>http://insight.accuvant.com/appsec/testing-web-app-captcha-controls/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 15:01:34 +0000</pubDate>
		<dc:creator>mmaxey</dc:creator>
				<category><![CDATA[Application Security]]></category>

		<guid isPermaLink="false">http://insight.accuvant.com/?p=103</guid>
		<description><![CDATA[CAPTCHA (&#8220;Completely Automated Public Turing test to tell Computers and Humans Apart&#8221;) is a type of challenge-response test used by many web applications to ensure that the response is not generated by a computer. CAPTCHA implementations are often vulnerable to various kinds of attacks even if the generated CAPTCHA is unbreakable.
I&#8217;ve had a few questions [...]]]></description>
			<content:encoded><![CDATA[<p>CAPTCHA (&#8220;Completely Automated Public Turing test to tell Computers and Humans Apart&#8221;) is a type of challenge-response test used by many web applications to ensure that the response is not generated by a computer. CAPTCHA implementations are often vulnerable to various kinds of attacks even if the generated CAPTCHA is unbreakable.</p>
<p>I&#8217;ve had a few questions on testing CAPTCHAs as of late and decided to do a quick write-up on how I test the strength of a CAPTCHA or in some cases write a CAPTCHA breaker. I will start below with a quick test that I use to gauge the initial strength of a CAPTCHA implementation (Microsoft Onenote has excellent handwriting detection and is very easy to use for this purpose):</p>
<ol>
<li>Copy the image contents to my clipboard</li>
<li>Open up onenote (or your favorite OCR tool)</li>
<li>Paste the image onto a one note page.</li>
<li>Choose copy text from picture</li>
<li>Now you will have the contents on your clipboard. Paste that into notepad and compare the results.</li>
<li>If there is noise in the middle of the text, such as a curved line, make the image very large and stretch the image vertically. Then pass this through a handwriting detection library. The stretching appears to make the noise in the middle less prominent. <em><strong>Note:</strong></em> This is based on my own personal tests and not concrete science.</li>
</ol>
<p style="text-align: center;"><img src="file:///Users/oldmac/Documents/Accuvant/Manager%20Stuff/2009/LABS-Marketing/blogposts/1.png" alt="" /><a href="http://insight.accuvant.com/wp-content/uploads/2009/08/1.jpg"><img class="size-full wp-image-107 aligncenter" title="1" src="http://insight.accuvant.com/wp-content/uploads/2009/08/1.jpg" alt="1" width="404" height="117" /></a></p>
<p style="text-align: center;"><strong>Figure 1 &#8211; Using Onenote&#8217;s OCR functionality for a quick test</strong></p>
<p>A few other things I will also try before attempting to solve the image. Remember if you can&#8217;t script the transformation then you have defeated the purpose of the test.</p>
<ul>
<li>Convert the image to black and white (this, for whatever reason, filters out a ton of background noise).</li>
<li>Many CAPTCHAS use a static piece of noise like curved line the middle of the word. You can often get around this by doing a static crop of a region of the image.</li>
<li>Cut the image up into a grid. This can easily be achieved using a Photoshop script or ImageMagick, but I have not gone through the trouble of making one in a long time. See the example in Figure 2. This can be achieved by examining each pixel in the image and identifying the leftmost black pixel as a starting point and identifying the rightmost boundaries of each letter where the black pixels are continuous. This assumes there is a clear boundary however between each letter. This may be easier to solve by treating each CAPTCHA as a series of images in favor of a single image.</li>
</ul>
<p style="text-align: center;"><a href="http://insight.accuvant.com/wp-content/uploads/2009/08/2.jpg"><img class="size-full wp-image-108 aligncenter" title="2" src="http://insight.accuvant.com/wp-content/uploads/2009/08/2.jpg" alt="2" width="494" height="208" /></a><strong></strong></p>
<p style="text-align: center;"><strong>Figure 2 &#8211; Removal of image noise by simply converting the image to black and white</strong></p>
<p style="text-align: center;"><a href="http://insight.accuvant.com/wp-content/uploads/2009/08/3.png"><img class="size-full wp-image-106 aligncenter" title="3" src="http://insight.accuvant.com/wp-content/uploads/2009/08/3.png" alt="3" width="453" height="227" /></a><strong></strong></p>
<p style="text-align: center;"><strong>Figure 3 &#8211; Defining character boundaries to simplify solving the CAPTCHA</strong></p>
<p>There is a huge weakness in the CAPTCHA in Figure 2 (in use by many prominent online retailers) due to none of the characters actually touching. You could easily write a script that identified the first area of the image that identified the leftmost black pixel and the rightmost where all the black dots were touching. This would give you the locations of the character boundaries which could then be used to create a grid containing each letter. You may have trouble when you run into certain characters like the number one, lowercase L and the letter I; however it is for this very reason that many CAPTCHAs exclude those characters from the character set.<br />
In many ways, automating CAPTCHA strength testing is very similar to handwriting detection and simple tools are widely available for this task including FOSS libraries.</p>
<p>A couple other CAPTCHA solver libraries are out there, including the somewhat dated PWNCAPTCHA that was recently open sourced. Here is a list of a few other helpful tools that you can use to make your own CAPTCHA solvers:</p>
<ul>
<li>Perl OCR Libraries &#8211; http://search.cpan.org/search?query=ocr&amp;mode=all</li>
<li>Ruby OCR Libraries &#8211; http://code.google.com/p/ocropus/</li>
<li>Perl IMAGEMAGICK Image Manipulation Library &#8211; http://www.imagemagick.org/script/perl-magick.php</li>
</ul>
<p>The script below is a framework for a tool performing some of the image transformations I described using ImageMagick</p>
<blockquote>
<p style="padding-left: 30px;"><em>#!/usr/bin/perl -w</em></p>
<p style="padding-left: 30px;"><em># CAPTCHA Solver v1 &#8211; A simple tool for image transformations and OCR to solve CAPTCHA</em></p>
<p style="padding-left: 30px;"><em># Author: Mark Maxey &#8211; mmaxey@accuvant.com</em></p>
<p style="padding-left: 30px;"><em># 1-9-2008</em></p>
<p style="padding-left: 30px;"><em># Version 1.0</em></p>
<p style="padding-left: 30px;"><em>use strict;<br />
use Image::Magick;</em></p>
<p style="padding-left: 30px;"><em># read in the image<br />
my $image = Image::Magick-&gt;new;<br />
open(IMAGE, &#8216;/home/mmaxey/image.gif&#8217;);<br />
$image-&gt;Read(file=&gt;\*IMAGE);<br />
close(IMAGE);</em></p>
<p style="padding-left: 30px;"><em># turn the image to black and white<br />
$image-&gt;Quantize(colorspace=&gt;&#8217;gray&#8217;);</em></p>
<p style="padding-left: 30px;"><em># cropping the image to eliminate static noise<br />
$image-&gt;Crop(geometry=&gt;&#8217;100&#215;100+10+20&#8242;);<br />
$image-&gt;[$x]-&gt;Frame(&#8220;100&#215;200&#8243;);</em></p>
<p style="padding-left: 30px;"><em># resize the image<br />
my $img_width = &#8216;2000&#8242;;<br />
my $ratio_main = &#8216;1&#8242;;<br />
my $img_height = &#8216;2000&#8242;;<br />
$image-&gt;Resize(width=&gt;$img_width * $ratio_main, height=&gt;$img_height * $ratio_main);</em></p>
<p style="padding-left: 30px;"><em># OCR Code here<br />
# if you can&#8217;t figure this part out you shouldn&#8217;t be doing this<br />
# end OCR</em>
</p></blockquote>
<p>Some key things to remember when testing a CAPTCHA:</p>
<p>1. Eliminate as much noise as you can, which is generally easy by just converting the image to black and white<br />
2. Identify areas where static cropping of noise can be eliminated<br />
3. Some OCR toolkits can limit the character set to specific characters (no special characters and all lowercase for example). Use this where applicable to improve the accuracy of the test<br />
4. Turning the CAPTCHA into a grid will often make it very easy to solve by clearly defining word boundaries<br />
5. If the CAPTCHA does not involve text you probably can&#8217;t solve it using the methods I described above<br />
6. Increase the size of the image, this will help you hone in on where the boundaries are and makes a lot of the noise much easier to deal with<br />
7. Sometimes a CAPTCHA, if there are parameters available for tampering, can be used to DoS a site or cause other problems. Quite often you will see a parameter like width=200&amp;height=350, so what if you make this 999999999999 x 99999999999999999 etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://insight.accuvant.com/appsec/testing-web-app-captcha-controls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCTP Linux Kernel Vulnerability Assessment and Reproduction</title>
		<link>http://insight.accuvant.com/appsec/sctp-linux-kernel-vulnerability-assessment-and-reproduction/</link>
		<comments>http://insight.accuvant.com/appsec/sctp-linux-kernel-vulnerability-assessment-and-reproduction/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 21:42:25 +0000</pubDate>
		<dc:creator>dmaynor</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://insight.accuvant.com/?p=11</guid>
		<description><![CDATA[Overview:
The blog post here makes statements about a vulnerability in the Linux kernel handling of SCTP data. The primary point of the post is to show how a vulnerability that was once thought to be of a relative low risk was incorrectly assessed and it can provide a 3rd party remote access to a server [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Overview:</strong><br />
The blog post <a title="kernelbof" href="http://kernelbof.blogspot.com/2009_04_01_archive.html" target="_blank">here</a> makes statements about a vulnerability in the Linux kernel handling of SCTP data. The primary point of the post is to show how a vulnerability that was once thought to be of a relative low risk was incorrectly assessed and it can provide a 3rd party remote access to a server using SCTP. This post will attempt to verify the claims, duplicate the examples, and give a risk assessment.</p>
<p>Public Vulnerability Information<br />
The following links provide information about the vulnerability:</p>
<p>http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0065</p>
<p>http://www.vupen.com/english/advisories/2009/0029</p>
<p>http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9fcb95a105758b81ef0131cd18e2db5149f13e95</p>
<p>Vulnerability Details<br />
An analysis of the patch that fixes the vulnerability show the following additions in code:</p>
<blockquote><p>http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9fcb95a105758b81ef0131cd18e2db5149f13e95;hp=aea3c5c05d2c409e93bfa80dcedc06af7da6c13b</p></blockquote>
<blockquote><p>&#8212; a/net/sctp/sm_statefuns.c<br />
+++ b/net/sctp/sm_statefuns.c<br />
@@ -3689,6 +3689,7 @@ sctp_disposition_t sctp_sf_eat_fwd_tsn(const struct sctp_endpoint *ep,<br />
{<br />
struct sctp_chunk *chunk = arg;<br />
struct sctp_fwdtsn_hdr *fwdtsn_hdr;<br />
+       struct sctp_fwdtsn_skip *skip;<br />
__u16 len;<br />
__u32 tsn;</p></blockquote>
<blockquote><p>@@ -3718,6 +3719,12 @@ sctp_disposition_t sctp_sf_eat_fwd_tsn(const struct sctp_endpoint *ep,<br />
if (sctp_tsnmap_check(&amp;asoc-&gt;peer.tsn_map, tsn) &lt; 0)<br />
goto discard_noforce;</p></blockquote>
<blockquote><p>+       /* Silently discard the chunk if stream-id is not valid */<br />
+       sctp_walk_fwdtsn(skip, chunk) {<br />
+               if (ntohs(skip-&gt;stream) &gt;= asoc-&gt;c.sinit_max_instreams)<br />
+                       goto discard_noforce;<br />
+       }<br />
+<br />
sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_FWDTSN, SCTP_U32(tsn));<br />
if (len &gt; sizeof(struct sctp_fwdtsn_hdr))<br />
sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_FWDTSN,<br />
@@ -3749,6 +3756,7 @@ sctp_disposition_t sctp_sf_eat_fwd_tsn_fast(<br />
{<br />
struct sctp_chunk *chunk = arg;<br />
struct sctp_fwdtsn_hdr *fwdtsn_hdr;<br />
+       struct sctp_fwdtsn_skip *skip;<br />
__u16 len;<br />
__u32 tsn;</p></blockquote>
<blockquote><p>@@ -3778,6 +3786,12 @@ sctp_disposition_t sctp_sf_eat_fwd_tsn_fast(<br />
if (sctp_tsnmap_check(&amp;asoc-&gt;peer.tsn_map, tsn) &lt; 0)<br />
goto gen_shutdown;</p></blockquote>
<blockquote><p>+       /* Silently discard the chunk if stream-id is not valid */<br />
+       sctp_walk_fwdtsn(skip, chunk) {<br />
+               if (ntohs(skip-&gt;stream) &gt;= asoc-&gt;c.sinit_max_instreams)<br />
+                       goto gen_shutdown;<br />
+       }<br />
+<br />
sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_FWDTSN, SCTP_U32(tsn));<br />
if (len &gt; sizeof(struct sctp_fwdtsn_hdr))<br />
sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_FWDTSN,</p></blockquote>
<p>This patch adds the addition of a new variable as well as two diffrent checks for an invalid stream ID. The comments about each code addition explains exactly what the code is for:</p>
<blockquote><p>/* Silently discard the chunk if stream-id is not valid */</p></blockquote>
<p>Both code snippets do the same thing: they convert a value from network to host order then check is the result is greater than or equal to asoc-&gt;c.sinit_max_instreams. There are two important things about this code snippet.</p>
<p>The first is that there is an indication that this vulnerability is remotely exploitable since the value is being converted from network to host byte order.</p>
<p>The second is that the simple check of greater than or equal to is a length check that is designed to prevent an overwrite of some sort.</p>
<p>Following the declaration and assignment of these values, reveals what the vulnerability is. Due to a logic error in the handling of certain types of packets, more specifically the FWD packets, the kernel can be tricked into writing chucks of data beyond the boundary allocated for it resulting in memory corruption. This memory corruption can be used to manipulate memory in such a way that execution of arbitrary code occurs and allows an attacker take control of the target machine.</p>
<p>This validates the statements made in the blog post about the nature and the risk associated with the vulnerability.</p>
<p><strong>Exploitation</strong><br />
Exploit code for this vulnerability has been released here: http://www.milw0rm.com/exploits/8556</p>
<p>In order to test the code, a Linux server is needed to act as the victim and a Linux client is needed to act as the attacker. For the client, a Backtrack 4 VMware image is used. Since the default install of Backtrack does not have the SCTP development libraries, the tool aptitude is used to install them with the following command:</p>
<p>aptitude install libsctp-dev</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-19" title="snapshot41" src="http://insight.accuvant.com/wp-content/uploads/2009/04/snapshot41.png" alt="snapshot41" width="717" height="538" /></p>
<p>After aptitude reports success, the exploit code can be downloaded from Milw0rm and compiled using the command:</p>
<blockquote><p>gcc sctp.c -o sctp</p></blockquote>
<p><img class="aligncenter size-full wp-image-20" title="snapshot7" src="http://insight.accuvant.com/wp-content/uploads/2009/04/snapshot7.png" alt="snapshot7" width="676" height="502" /></p>
<p>The exploit can be tested with the command “./sctp”.</p>
<p>For the server, a VMWare image of Ubunti 8.10 is used. This server needs SCTP development libraries installed in the same way the Backtrack libraries were installed. The VMware image can be found here: http://www.vmware.com/appliances/directory/95733</p>
<p>Since the exploit requires a process using SCTP to be running an example can be found from IBM here: http://www.ibm.com/developerworks/linux/library/l-sctp/</p>
<p>After uncompressing and building the tool using the make command it is executed.</p>
<p>The exploit running:</p>
<p><img class="aligncenter size-full wp-image-21" title="snapshot8" src="http://insight.accuvant.com/wp-content/uploads/2009/04/snapshot8.png" alt="snapshot8" width="676" height="502" /></p>
<p>The traffic captured in wireshark:</p>
<p><img class="aligncenter size-full wp-image-22" title="snapshot9" src="http://insight.accuvant.com/wp-content/uploads/2009/04/snapshot9.png" alt="snapshot9" width="831" height="609" /></p>
<p>The exploit works as advertised and can give a remote attacker access to a server. The exploit is designed to only issue the “id” command and report the results but this could be easily modified to allow interactive access or to deliver to a botnet payload.</p>
<p><strong>Analysis</strong><br />
This exploit works as advertised and can give remote access to a 3rd party. SCTP can be implemented by a variety of different custom applications. SCTP can also be installed on servers with network intensive applications like Voice over IP. Most application testing would miss the inclusion of SCTP since most general purpose scanning tools do not detect a server supporting it. Source code or server access is the most reliable way to verify SCTP is supported.</p>
<p>In closing, since a vulnerability was discovered, reported, and is now shown to be exploitable in the Linux implementation of SCTP, other operating systems that support it will be targeted as well. If your applications rely on SCTP or a server with SCTP enabled, isolating it from the rest of the network is now a must.</p>
]]></content:encoded>
			<wfw:commentRss>http://insight.accuvant.com/appsec/sctp-linux-kernel-vulnerability-assessment-and-reproduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The difference between high speed and low drag application assessments.</title>
		<link>http://insight.accuvant.com/appsec/7/</link>
		<comments>http://insight.accuvant.com/appsec/7/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 21:11:14 +0000</pubDate>
		<dc:creator>dmaynor</dc:creator>
				<category><![CDATA[Application Security]]></category>

		<guid isPermaLink="false">http://insight.accuvant.com/?p=7</guid>
		<description><![CDATA[The difference between a mediocre application assessment and a stellar one is assimilation of information and the ability to apply it to the problem at hand. During an application assessment an individual has a limited amount of time to understand an application, its underlying architecture, the development methodology and compress that into knowledge that can [...]]]></description>
			<content:encoded><![CDATA[<p>The difference between a mediocre application assessment and a stellar one is assimilation of information and the ability to apply it to the problem at hand. During an application assessment an individual has a limited amount of time to understand an application, its underlying architecture, the development methodology and compress that into knowledge that can be used to locate and exploit weakness in the target.</p>
<p>What if the scope changes? If an app tester is on site evaluating a target and new information about a weakness of flaw in the environment became available, that information should be quickly applied assimilated and applied tot he audit otherwise any deliverable could be deemed worthless becasue it is not up to date with the current threat facing the application.</p>
<p>A case in point is a Linux kernel vulnerability discussed on April 27th, 2009 on a blog called KernelBOF. The blog post details a problem in the Linux Kernel handling of SCTP data. The CVE information can be found here: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0065</p>
<p>The main point of the post is that people do not understand or appropriately rate the risk of kernel bugs such as this one. The bug was released on January 5th, 2009 and at the time documentation seemed to indicate that the perceived risk of this vulnerability was as a Denial-of-Service (DoS) only and the actual affect is unknown. The KernelBOF blog then dives into deep detail about the vulnerability and shows why it is really a threat.</p>
<p>A good app assessment engineer should be able to take the vulnerability information, reproduce it, and give the client insight into how it affects their environment. The following next blog post entitled “SCTP Linux Kernel Vulnerability Assessment and Reproduction” will give insight into the process and how certain judgments are made about the risk.</p>
<p>&#8211;app assessment team</p>
]]></content:encoded>
			<wfw:commentRss>http://insight.accuvant.com/appsec/7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
