<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Software Sleuthing : Security</title><link>http://blogs.msdn.com/joshpoley/archive/tags/Security/default.aspx</link><description>Tags: Security</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Top 25 software errors</title><link>http://blogs.msdn.com/joshpoley/archive/2009/01/12/top-25-software-errors.aspx</link><pubDate>Mon, 12 Jan 2009 19:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9308111</guid><dc:creator>joshpoley</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/joshpoley/comments/9308111.aspx</comments><wfw:commentRss>http://blogs.msdn.com/joshpoley/commentrss.aspx?PostID=9308111</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;SANS, along with a coalition of individuals and software organizations, just released their list of top "&lt;A href="http://www.sans.org/top25errors/?utm_source=web&amp;amp;utm_medium=text-ad&amp;amp;utm_content=Announcement_Bar_20090111&amp;amp;utm_campaign=Top25&amp;amp;ref=37029#s4" mce_href="http://www.sans.org/top25errors/?utm_source=web&amp;amp;utm_medium=text-ad&amp;amp;utm_content=Announcement_Bar_20090111&amp;amp;utm_campaign=Top25&amp;amp;ref=37029#s4"&gt;25 most dangerous programming errors&lt;/A&gt;". There has been some talk of making these a "requirement" or some sort of logo program to help protect customers when deciding which software to use or purchase.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;From a developer's perspective you should review these and ensure your design and code are doing the right thing. From a tester's perspective, be sure you have cases in place to validate and document how you are verifying these. If the items do become a hard requirement your group will probably have to provide proof of what was tested and how.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Ideally your team is doing all this anyway, but if not, here is a handy checklist to get started.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9308111" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/joshpoley/archive/tags/Security/default.aspx">Security</category></item><item><title>Security Tools: Codenomicon</title><link>http://blogs.msdn.com/joshpoley/archive/2008/08/26/security-tools-codenomicon.aspx</link><pubDate>Wed, 27 Aug 2008 00:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8898004</guid><dc:creator>joshpoley</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/joshpoley/comments/8898004.aspx</comments><wfw:commentRss>http://blogs.msdn.com/joshpoley/commentrss.aspx?PostID=8898004</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;About three years ago, when the Xbox 360 was getting close to launching, we went through a security pass of the &lt;A href="http://www.xbox.com/en-US/support/systemuse/xbox360/digitalmedia/listenmusic.htm" mce_href="http://www.xbox.com/en-US/support/systemuse/xbox360/digitalmedia/listenmusic.htm"&gt;audio&lt;/A&gt; and &lt;A href="http://www.xbox.com/en-US/support/systemuse/xbox360/digitalmedia/viewpictures.htm" mce_href="http://www.xbox.com/en-US/support/systemuse/xbox360/digitalmedia/viewpictures.htm"&gt;photo&lt;/A&gt; playback capabilities. One of the tools that was recommended to us by another employee was the &lt;A href="http://www.codenomicon.com/" mce_href="http://www.codenomicon.com/"&gt;Codenomicon&lt;/A&gt; suite of &lt;A href="http://www.codenomicon.com/products/test-suites.shtml#media" mce_href="http://www.codenomicon.com/products/test-suites.shtml#media"&gt;test files&lt;/A&gt;. The folks at this company have taken the time to pick apart some of the typical file formats and produce an extensive library of files which target the specification and common implementations in an attempt to push the limits of your software. Unlike random fuzzing tools, these guys have gone in and hand crafted the files to exercise your implementation in a systematic and precise manner. And one of the major benefits over fuzzing is that you actually get documentation for each test case describing what is interesting about the file.&lt;SUB&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SUB&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;After running the files through the Xbox's code base, we actually found a couple of edge cases that weren't being handled correctly and warranted a fix. One of the interesting bugs was around an integer overflow that led to memory corruption. We would do some size calculations which resulted in a 32-bit unsigned integer overflowing to zero, which was then passed down to malloc. The cool (from a twisted perspective) thing about malloc(0), is that it actually allocates zero bytes of memory for you and hands back a valid pointer. But unfortunately for us, we would then go and try to write to that pointer which doesn't take very long before something horribly bad happens as we trash memory.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I think it is a fairly accurate statement that you can never do enough testing, and you should definitely try to use all the tools at your disposal. The Codenomicon suites are one such example, and something that not very many people I've talked to have heard about, so it is certainly worth investigating for your product.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8898004" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/joshpoley/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.msdn.com/joshpoley/archive/tags/Security/default.aspx">Security</category></item><item><title>Free Security Book: HAC</title><link>http://blogs.msdn.com/joshpoley/archive/2008/06/30/free-security-book-hac.aspx</link><pubDate>Mon, 30 Jun 2008 18:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8671575</guid><dc:creator>joshpoley</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/joshpoley/comments/8671575.aspx</comments><wfw:commentRss>http://blogs.msdn.com/joshpoley/commentrss.aspx?PostID=8671575</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The &lt;A class="" href="http://www.cacr.math.uwaterloo.ca/hac/" mce_href="http://www.cacr.math.uwaterloo.ca/hac/"&gt;Handbook of Applied Cryptography&lt;/A&gt; is being offered for free download (for personal use of course) from the University of Waterloo. This book covers a good swath of topics and will be a useful addition to your digital library. And to give you a taste, here is the chapter list:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 1 - Overview of Cryptography&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 2 - Mathematics Background&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 3 - Number-Theoretic Reference Problems&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 4 - Public-Key Parameters&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 5 - Pseudorandom Bits and Sequences&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 6 - Stream Ciphers&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 7 - Block Ciphers&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 8 - Public-Key Encryption&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 9 - Hash Functions and Data Integrity&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 10 - Identification and Entity Authentication&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 11 - Digital Signatures&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 12 - Key Establishment Protocols&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 13 - Key Management Techniques&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 14 - Efficient Implementation&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Chapter 15 - Patents and Standards&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;For those that prefer cold hard paper, you can also find it at the various common retailers (for slightly more than free).&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8671575" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/joshpoley/archive/tags/Knowledge/default.aspx">Knowledge</category><category domain="http://blogs.msdn.com/joshpoley/archive/tags/Security/default.aspx">Security</category></item></channel></rss>