<?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>WintercoreLabs</title>
	<atom:link href="http://blog.wintercore.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.wintercore.com</link>
	<description>Thinking code</description>
	<lastBuildDate>Wed, 24 Nov 2010 20:23:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>M-ETH: Man in the middle &#8211; Ethernet</title>
		<link>http://blog.wintercore.com/2010/11/24/m-eth-man-in-the-middle-ethernet/</link>
		<comments>http://blog.wintercore.com/2010/11/24/m-eth-man-in-the-middle-ethernet/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 17:00:47 +0000</pubDate>
		<dc:creator>wintercorelabs</dc:creator>
				<category><![CDATA[R&D]]></category>

		<guid isPermaLink="false">http://blog.wintercore.com/?p=50</guid>
		<description><![CDATA[Over a year ago I presented at LaCon'09 a custom PCI NIC which allows to perform Man in the middle of the whole network traffic flowing through the device. The idea behind this PCI Card is once it is plugged into a computer the whole traffic can be inspected, analyzed and, of course, modified when required in [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Over a year ago I presented at LaCon'09 a custom PCI NIC which allows to perform Man in the middle of the whole network traffic flowing through the device.</p>
<p>The idea behind this PCI Card is once it is plugged into a computer the whole traffic can be inspected, analyzed and, of course, modified when required in a transparent way to the user.</p>
<p><img class="aligncenter size-medium wp-image-51" title="m-eth" src="http://blog.wintercore.com/wp-content/uploads/2010/11/m-eth-300x63.png" alt="" width="300" height="63" /></p>
<p>All the above should be achieved producing a network pci card so that a regular IT guy wouldn't be able to notice a diference between M-ETH and other NICs.</p>
<p>Another required feature for M-ETH is it must be platform-independant, I don't want it to be tied to any Operating System.<span id="more-50"></span></p>
<p>After some days of research and advice from hardware guys, the final design of M-ETH came up and featured the following main components:</p>
<ul>
<li>National's DP83816</li>
<li>Microchip's ENC28J60</li>
<li>AVR32UC3A</li>
<li>An RJ-45 port</li>
</ul>
<p>Some with some basic hardware skills will notice that building such a card would require several Magnetics and that could easly spot something "wrong" in the card. To avoid this, "Transformerless connection" between ethernet chips was included.</p>
<p>A simplified architectural view of the schematics for M-ETH can be found below.</p>
<p><a href="http://blog.wintercore.com/wp-content/uploads/2010/11/M-ETH-Arch.png"><img class="aligncenter size-full wp-image-55" title="M-ETH-Arch" src="http://blog.wintercore.com/wp-content/uploads/2010/11/M-ETH-Arch.png" alt="" width="479" height="359" /></a></p>
<p>The firmware running on the AVR32 reads packets coming out from victim's computer via the SPI Driver controlling the ENC28J60, so for the victims' Operating system the whole networking stack ends in the PCI Ethernet Chip, so they are not able to detect anything going wrong outside it.</p>
<p>The PoC presented at LaCon'09 showed how a TCP Stream originated in the victim's computer is succesfully modified without the victim being able to notice it.</p>
<p>And finally this is one of the prototypes developed as a PoC, this card does not have the AVR32 soldered as it was easier to develop the whole firmware running it dettached with an wired SPI connection going to the ENC28J60.</p>
<p><a href="http://blog.wintercore.com/wp-content/uploads/2010/11/meth-small.png"><img class="aligncenter size-medium wp-image-63" title="meth-small" src="http://blog.wintercore.com/wp-content/uploads/2010/11/meth-small-300x165.png" alt="" width="300" height="165" /></a></p>
<p>The next video (Spanish, but subtitles coming soon) shows the first version of M-ETH, it just reads packets from the "Victim's computer", an Mini-ITX in the video, and send them to the outside LAN. As soon as I have enough free time I want to record a new one showing a TCP stream modification, for now watch this video</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="498" height="328" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/MlznRZHs4jA&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="498" height="328" src="http://www.youtube.com/v/MlznRZHs4jA&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p>You may also want to have a look at the slides I used at LaCon'09, I have translated them to English <img src='http://blog.wintercore.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="__ss_5892996" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="M-ETH: Man in the Middle Ethernet" href="http://www.slideshare.net/wintercorelabs/meth-man-in-the-middle-ethernet">M-ETH: Man in the Middle Ethernet</a></strong><object id="__sse5892996" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=m-ethlaconen-101124134149-phpapp02&amp;stripped_title=meth-man-in-the-middle-ethernet&amp;userName=wintercorelabs" /><param name="name" value="__sse5892996" /><param name="allowfullscreen" value="true" /><embed id="__sse5892996" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=m-ethlaconen-101124134149-phpapp02&amp;stripped_title=meth-man-in-the-middle-ethernet&amp;userName=wintercorelabs" allowfullscreen="true" allowscriptaccess="always" name="__sse5892996"></embed></object></div>
<p> </p>
<p>If you have any further question or interested in a sample do not hesitate to drop an email, gabriel at wintercore dot com</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wintercore.com/2010/11/24/m-eth-man-in-the-middle-ethernet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vulnerability Engineering</title>
		<link>http://blog.wintercore.com/2009/11/11/vulnerability-engineering/</link>
		<comments>http://blog.wintercore.com/2009/11/11/vulnerability-engineering/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 23:14:12 +0000</pubDate>
		<dc:creator>wintercorelabs</dc:creator>
				<category><![CDATA[R&D]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[vulnerability]]></category>

		<guid isPermaLink="false">http://blog.wintercore.com/?p=26</guid>
		<description><![CDATA[In this article we are going to use some metrics from Software Engineering and apply them to the Vulnerability Research World. We are going to define a new term which will allow us get a probabilty showing how likely is an application to have a vulnerability during its lifetime and also will give an idea [...]]]></description>
			<content:encoded><![CDATA[<p>In this article we are going to use some metrics from Software Engineering and apply them to the Vulnerability Research World. We are going to define a new term which will allow us get a probabilty showing how likely is an application to have a vulnerability during its lifetime and also will give an idea of the Software Reliability.</p>
<p>Let's start defining two well-known metrics MTTR and MTBF but within our context:</p>
<ul>
<li><strong>MTTR </strong>(<em>Mean Time To Repear</em>): Specify the average time a company takes to fix a vulnerability.</li>
<li><strong>MTBF</strong> (<em>Mean Time Between Failures</em>): We are going to use this metric as the average time between to reported vulnerabilities.</li>
</ul>
<p>Software Reliability can be calculated by the next formula:</p>
<p><img src="http://www.wintercore.com/vulneng/chart.png" alt="VFP Formula" width="186" height="34" /></p>
<p>to give prospective to the article we are named this value <strong>VFP </strong>(<em>Vulnerability Free Probability</em>) which shows how likely is NOT an application to have a bug during its lifetime.</p>
<p><span id="more-26"></span></p>
<p>The complementary probablity <strong>VEP </strong>(<em>Vulnerabilty Exposed Probablity</em>). Application's probability of having a vulnerability during its lifetime.</p>
<div><img src="http://www.wintercore.com/vulneng/chart2.png" alt="VEP" width="129" height="15" /></div>
<p>Now it is time to apply these metrics and get some real measurements. Thanks to <a title="Estudio Comparativo de Vulnerabilidades" href="http://www.hispasec.com/laboratorio/Hispasec_Estudio_Vulnerabilidades.pdf">Hispasec and its paper about Vendor's vulnerabilities</a> this task is going to be easier for us, since they have already compiled all the bugs information.</p>
<p>We are going to apply this metrics to 5 applications Microsoft Explorer, SUN Java JRE, HP NodeManager, Apple Quicktime and Adobe Reader.</p>
<p>First we <a title="MTTR/MTBF &amp; VFP" href="https://spreadsheets.google.com/ccc?key=0Ao71xKkZacNrdHFpU3o0YnluRUx3SzhWUExiSUVxRWc&amp;hl=es">calculate the MTTR and MTBF</a> for the above applications, as you can see in the spreadsheet.</p>
<p>The following figure shows the VFP or Software Reliability for the above applications.</p>
<div><img style="vertical-align: middle;" src="http://www.wintercore.com/vulneng/chart-VFP.png" alt="VFP or Software Reliability" width="500" /></div>
<p>As can be seen in the figure the reability of these products is far from good, in fact they are worst than I expected. Even a vulnerability free probability of 40% is too large for me.</p>
<p>Only Adobe Reader is above the 50% and QuickTime is only 1% of its lifetime free of vulnerabilities!</p>
<p>Apple's QuickTime users are exposed to at least one vulnerability the 99% of the time they use it.</p>
<p>These metrics should be taken more seriosly when choosing certain software for politicians and people which high risk of being attacked.</p>
<p><strong>Part II:</strong></p>
<p>Besides these metrics, we can retrieve some patterns from the data we first had. The next step is to see which is the trend in the response-time when fixing vulnerabilities.</p>
<p>Let's <a href="https://spreadsheets.google.com/ccc?key=0Ao71xKkZacNrdHVETWtHeUNNMnRlbmk2T0ZJSmM5bFE&amp;hl=es">calculate the MTTR for each bug reported</a> so we can plot a scattered bunch of points. Afterwards, we try to linearly fit this points so we can see the trend.</p>
<div><img style="vertical-align: middle;" src="http://www.wintercore.com/vulneng/chart-jre.png" alt="" width="400" /></div>
<div><img src="http://www.wintercore.com/vulneng/chart-explorer.png" alt="" width="400" /></div>
<div><img src="http://www.wintercore.com/vulneng/chart-reader.png" alt="" width="400" /></div>
<div><img src="http://www.wintercore.com/vulneng/chart-qt.png" alt="" width="400" /></div>
<p>As can be seen in the figures shown above, Microsoft's Explorer and Sun's Java JRE have reduced their time to fix vulnerabilties since the first report date we have.</p>
<p>On the other side, Quicktime seems to keep in its average time. While Adobe Reader looks like its response time is getting worst, the linear approximation is strongly biased by the first measurement, so if we remove this outlier the linear fit is similar to QuickTime's</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wintercore.com/2009/11/11/vulnerability-engineering/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>See Artica Demo Client and IceSphere in action</title>
		<link>http://blog.wintercore.com/2009/02/10/see-artica-demo-client-icesphere-in-action/</link>
		<comments>http://blog.wintercore.com/2009/02/10/see-artica-demo-client-icesphere-in-action/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 12:46:36 +0000</pubDate>
		<dc:creator>wintercorelabs</dc:creator>
				<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[R&D]]></category>
		<category><![CDATA[antiphishing]]></category>
		<category><![CDATA[artica]]></category>
		<category><![CDATA[icesphere]]></category>

		<guid isPermaLink="false">http://blog.wintercore.com/?p=25</guid>
		<description><![CDATA[Download Video (24 mb) Do not hesitate to contact us if you need further information]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.wintercore.com/artica_beta/artica_client.png" alt="artica" hspace="4" vspace="4" /><br />
<a href="http://www.wintercore.com/artica_beta/artica_video.zip">Download Video</a> (24 mb)</p>
<p>Do not hesitate to<a href="http://www.wintercore.com/about.html"> contact </a>us if you need further information</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wintercore.com/2009/02/10/see-artica-demo-client-icesphere-in-action/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy pack#1. I know what you installed last summer</title>
		<link>http://blog.wintercore.com/2008/10/06/happy-pack1-i-know-what-you-installed-last-summer/</link>
		<comments>http://blog.wintercore.com/2008/10/06/happy-pack1-i-know-what-you-installed-last-summer/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 13:10:40 +0000</pubDate>
		<dc:creator>wintercorelabs</dc:creator>
				<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.wintercore.com/?p=24</guid>
		<description><![CDATA[It's really frustrating not to know what applications, patches, hotfixes (virtually any file)...are installed on the system where you are performing a penetration test, isn't it? I have decided to put for sell, to trusted sources only, a novel technique that takes advantage of a weakness in Microsoft technology that allows remote attackers to gain [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.reversemode.com/images/happy1.png" alt="" hspace="4" vspace="4" align="left" />It's really frustrating not to know what applications, patches, hotfixes (virtually any file)...are installed on the system where you are performing a penetration test, isn't it?</p>
<p>I have decided to put for sell, to trusted sources only, a novel technique that takes advantage of a weakness in Microsoft technology that allows remote attackers to gain knowledge of sensitive information like applications, hotfixes,service packs installed on PCs running Windows 2000 or later . The only scenario you need is to trick the victim into visiting a webpage under your control.</p>
<p>Note that...</p>
<li># No third-party software is involved.</li>
<li># Totally unknown technique. No patch available. Vendor has not been notified</li>
<li># Either minimal or no user interaction required.</li>
<p><strong>FAQ</strong></p>
<p><strong>Who can buy the happy pack #1?</strong></p>
<p>If you cannot demonstrate you are working for a company or institution, better you don't waste your time trying it.</p>
<p><strong>How much does it cost?</strong></p>
<p>$800 dollars - €600 euros.</p>
<p><strong>What does the happy pack #1 include ?</strong></p>
<p>Fully comprehensive technical report and exploit code. Obviously, you can request further info if, once purchased, you have doubts on any matter...</p>
<p>Mmm, it seems interesting...Whom should I talk to?</p>
<p>contact [at] wintercore (dot) com</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wintercore.com/2008/10/06/happy-pack1-i-know-what-you-installed-last-summer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Motorola Timbuktu&#8217;s Internet Locator Service real-time data exposed to public</title>
		<link>http://blog.wintercore.com/2008/10/06/motorola-timbuktus-internet-locator-service-real-time-data-exposed-to-public/</link>
		<comments>http://blog.wintercore.com/2008/10/06/motorola-timbuktus-internet-locator-service-real-time-data-exposed-to-public/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 13:03:31 +0000</pubDate>
		<dc:creator>wintercorelabs</dc:creator>
				<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[ReverseEngineering]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.wintercore.com/?p=23</guid>
		<description><![CDATA[We just want to make a public warning to those users of Motorola/Netopia Timbuktu Remote Control Software who are using the Internet Locator service. This service allows to locate any Timbuktu's user just by knowing the email. More than five months ago we notified Netopia's customer support (http://blog.wintercore.com/2008/04/26/things-that-shouldnt-be-there/), after discovering a hardcoded user/password pair within [...]]]></description>
			<content:encoded><![CDATA[<p>We just want to make a public warning to those users of Motorola/Netopia Timbuktu Remote Control Software who are using the Internet Locator service. This service allows to locate any Timbuktu's user just by knowing the email.</p>
<p>More than five months ago we notified Netopia's customer support (<a href="http://blog.wintercore.com/2008/04/26/things-that-shouldnt-be-there/">http://blog.wintercore.com/2008/04/26/things-that-shouldnt-be-there/</a>), after discovering a hardcoded user/password pair within SALT.dll.</p>
<p>---------------<br />
v 8.6.5.1373<br />
Dll: SALT.dll<br />
Address: 0x604b83D4<br />
PE section: .rdata<br />
user: xa7z8<br />
pass: e74sa9<br />
url: findme.netopia.com/_REMOVE_THIS_findme/<br />
---------------</p>
<p>By using this information it was possible to access, in real-time, to hundreds of users' records containing their IP, email, software version and information related to the license.</p>
<p>We have received no reply since then. 5 months after, we have found out what we would say an "obvious" patch: "<em>if the problem was the user/password, well, let's remove it!. Fixed.</em>".<br />
Really hilarious.</p>
<p>Now, <strong>everyone</strong> can access those records without having valid credentials.</p>
<p>Taking into account that there are remote exploits available for that software, that everyone can grab your IP and software version, and that there are emails from government, military and high-profile corporate staff, better you disable that feature.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wintercore.com/2008/10/06/motorola-timbuktus-internet-locator-service-real-time-data-exposed-to-public/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toward a new generation of audio captchas</title>
		<link>http://blog.wintercore.com/2008/05/04/toward-a-new-generation-of-audio-captchas/</link>
		<comments>http://blog.wintercore.com/2008/05/04/toward-a-new-generation-of-audio-captchas/#comments</comments>
		<pubDate>Sun, 04 May 2008 15:01:04 +0000</pubDate>
		<dc:creator>wintercorelabs</dc:creator>
				<category><![CDATA[R&D]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.wintercore.com/?p=22</guid>
		<description><![CDATA[It seems the post "Breaking Gmail's audio Captcha" has been slashdotted so many interesting discussions have emerged as a result. It's worth noting that there is nothing specially exciting in the approach used to break the google audio captcha, merely a bunch of signal analysis and pattern recognition principles applied. Almost any Voice Recognition / [...]]]></description>
			<content:encoded><![CDATA[<p>It seems the post "<a href="http://blog.wintercore.com/2008/03/05/breaking-gmails-audio-captcha/" target="_blank">Breaking Gmail's audio Captcha</a>" has been <a href="http://tech.slashdot.org/article.pl?sid=08/05/02/1426253" target="_blank">slashdotted </a>so many interesting discussions have emerged as a result.  It's worth noting  that there is nothing specially exciting in the approach used to break the google audio captcha, merely a bunch of signal analysis and pattern recognition principles applied. Almost any Voice Recognition / Audio processing software developer can break not only that captcha but, nowadays, any other.</p>
<p>I was planning to write about audio captchas may pose a future attack vector for spammers, but after googling a couple of minutes I stumbled upon the following offer: <a href="http://www.getafreelancer.com/projects/C-C-Audio-Services/Recognize-Voice-Captcha-Google.html" target="_blank">http://www.getafreelancer.com/projects/C-C-Audio-Services/Recognize-Voice-Captcha-Google.html</a></p>
<p>Unfortunately the future is right now.</p>
<p><span id="more-22"></span></p>
<p>Audio captchas are the alternative to image captchas for visual impaired persons. Anyway, both captchas must share an unconditional point:</p>
<ul>
<li>A captcha should be easily solved by humans by taking into account the human nature only, not the level of culture. We have to demonstrate we are humans, not our IC.</li>
</ul>
<p>Despite of this fact, 99% of the captchas are still today presenting alphanumeric challenges which, although by using this approach we make sure  that 99% of people having access to a computer will know how to solve those challenges, are more related with culture rather than with the human being background.</p>
<p>Microsoft Research thought about that fact, I guess, and then came up with the <a href="http://research.microsoft.com/asirra/" target="_blank">Asirra captcha</a>. Have you heard of someone who has not seen a cat or a dog? Probably not, but have you heard of someone who is illiterate? Probably, yes. That's the difference, as human beings we may learn a lot of things from other humans but what is inherent to our human being condition is the capability to "automatically" interact  with our enviroment. It may be difficult to understand how to solve a differential equation but if you see a cat, you see cat, you know that is a cat.  You have been seeing cats since you were a kid, in your friend's house, in the park, in the TV, in the petshop... Your brain is not working too much to bring you that information.</p>
<p>So the question is, how to apply this concept to audio Captchas? Well, the same concept. Do you remember when you saw cats? you also heard them, right? so could you distinguish a cat from a dog just hearing their characteristical "sounds"?  Obviously, you do.</p>
<p>99.9% of peope can likely  distinguish a dog barking from a cat meowing. Now, think for a while as you were a computer( make that effort please <img src='http://blog.wintercore.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ): how to distinguish a cat from a dog ? really difficult. If you let me make the comparison, this sort of captchas should be something similar to metamorphic viruses.</p>
<p>To make the issue harder to solve, now put that dog barking in the middle of a crowded and noisy street, even then, you likely know there is a dog messing around. However, let's imagine a computer filtering <em>n </em>previously unknown features looking for a barely predictable <em>vector </em>holding the set of features that represent a dog barking <strong>or whatever</strong>, since the automated agent cannot predict what will be the challenge proposed by the captcha, whilst nowadays a bot knows beforehand it faces  an alphanumeric question. Computationally this is a really complex problem...First off, the automated agent should syntactically analyze  the question and then proceed to mine the audio captcha relying on its own "world's sounds" database. Totally unreliable for automated agents, at least  for non-government-supported ones <img src='http://blog.wintercore.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<ul>
<li> A baby crying.</li>
<li>A thunderstorm</li>
<li>A baby crying in the middle of a thunderstorm</li>
<li>A dog barking while a baby is crying in the middle of a thunderstorm.</li>
<li>...</li>
</ul>
<p>But, what about the question? I mean, for an audio captcha playing a baby crying what should be the question... Whatever you want. If you insert into a database all the sounds of babies crying along their proper tags, you can make up any question you want, either generic or more specific</p>
<p>i.e :  baby_crying_3.wav -&gt;  "<span style="color: #ff0000;">baby</span>", "<span style="color: #ff0000;">crying</span>".</p>
<p><strong>Question 1</strong>: What does represent this sound?</p>
<p><strong>Answer</strong>: Mmm, eerrr I think it's a <span style="color: #ff0000;"><em>baby</em></span> <span style="color: #ff0000;"><em>crying</em></span> !!</p>
<p><strong>Question</strong> <strong>2</strong>: What does the <em><span style="color: #ff0000;">baby</span> ( <span style="color: #ff0000;">dog</span>, <span style="color: #ff0000;">cat</span>, <span style="color: #ff0000;">airplane</span>...)</em> do?</p>
<p><strong>Answer</strong>: Mmm, eerrr I think the <span style="color: #ff0000;"><em>baby</em></span> is <span style="color: #ff0000;"><em>crying</em></span> !!</p>
<p>Or even</p>
<p>girl_alphanumeric_sequence_5_5_2_4_5.wav -&gt;  "<span style="color: #ff0000;">girl</span>", "<span style="color: #ff0000;">five</span>","<span style="color: #ff0000;">five</span>","<span style="color: #ff0000;">two</span>","<span style="color: #ff0000;">four</span>","<span style="color: #ff0000;">five</span>","<span style="color: #ff0000;">numbers</span>".</p>
<p><strong>Question 3</strong>: What does represent this sound?</p>
<p><strong>Answer</strong>: Mmm, eerrr I think it's a <span style="color: #ff0000;"><em>girl </em><span style="color: #000000;">saying</span></span><span style="color: #000000;"> </span><span style="color: #ff0000;"><em>numbers</em></span> !!</p>
<p>Note the second question exposes too much information to the "attacker", being suitable for a purely syntantic attack since a baby (dog, cat...) cannot do a lot of things...</p>
<p>You should use syntatic recognition for parsing  the answers. If you don't have the means, regexps, a dictionary  and the <a href="http://en.wikipedia.org/wiki/Levenshtein_distance" target="_blank">levenshtein distance</a>, for dealing with spelling errors, should work like a charm.</p>
<p>You can distort, speed up, slow down, cut, expand... these captchas, making the issue harder to solve.</p>
<p>Without any doubt, the "natural captchas" are an interesting field for researchers.</p>
<p><em>Ruben Santamarta,</em></p>
<p><em>R&amp;D/Reverse Engineer.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wintercore.com/2008/05/04/toward-a-new-generation-of-audio-captchas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Things that shouldn&#8217;t be there</title>
		<link>http://blog.wintercore.com/2008/04/26/things-that-shouldnt-be-there/</link>
		<comments>http://blog.wintercore.com/2008/04/26/things-that-shouldnt-be-there/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 15:20:37 +0000</pubDate>
		<dc:creator>wintercorelabs</dc:creator>
				<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[ReverseEngineering]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.wintercore.com/?p=21</guid>
		<description><![CDATA[Some days ago we released a security advisory for Realtek-curious note: according to secunia, it is the first advisory for that vendor- where a piece of code that was originally intented to be used by the engineers only, ends up being compiled in the release driver. Obviously, there is no reason to think about this [...]]]></description>
			<content:encoded><![CDATA[<p>Some days ago we released a security advisory for <a href="http://www.wintercore.com/advisories/advisory_W010408.html" target="_blank">Realtek</a>-curious note: according to<a href="http://secunia.com/search/?search=realtek&amp;w=0" target="_blank"> secunia</a>, it is the first advisory for that vendor-  where a piece of code that was originally intented to be used by the engineers only, ends up  being compiled in the release driver.  Obviously, there is no reason to think about this issue as any kind of backdoor since makes non sense, it is merely an error. In other cases, the <a href="http://www.heise-online.co.uk/security/Insecure-by-design-Cisco-product-shipped-with-backdoor--/news/110320" target="_blank">issue</a> is not so clear.</p>
<p>Anyway the fact is that sometimes either by error or having obscure intentions, there are "things" that should not be there. Nowadays, these issues pose a real threat.</p>
<p>Not long time ago, I was reversing a well-known software widely extended within the enterprise enviroment when I came across one of those "things": a hardcoded user/password pair that grants access in real-time  to thousands of high profile emails,  their associated IPs and software version, among other things.</p>
<p><img class="alignnone size-full wp-image-19" title="post1" src="http://blog.wintercore.com/wp-content/uploads/2008/04/post1.png" alt="" width="632" height="142" /></p>
<p>Definitely, it's not a good idea to share the kingdom's secrets with any guy with a disassembler.</p>
<p><img class="alignnone size-full wp-image-20" title="post2" src="http://blog.wintercore.com/wp-content/uploads/2008/04/post2.png" alt="" width="582" height="118" /></p>
<p>This is a valuable information that can be used in targeted attacks, phishing or even to exploit a flaw in the software. Anyway, we immediately contacted to the vendor  so this information leak should be fixed soon.</p>
<p>Have a nice weekend!</p>
<p><em>Ruben Santamarta.</em></p>
<p><em>R&amp;D/Reverse Engineer</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wintercore.com/2008/04/26/things-that-shouldnt-be-there/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Breaking Gmail&#8217;s Audio Captcha</title>
		<link>http://blog.wintercore.com/2008/03/05/breaking-gmails-audio-captcha/</link>
		<comments>http://blog.wintercore.com/2008/03/05/breaking-gmails-audio-captcha/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 01:19:32 +0000</pubDate>
		<dc:creator>wintercorelabs</dc:creator>
				<category><![CDATA[R&D]]></category>
		<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[ReverseEngineering]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.wintercore.com/?p=11</guid>
		<description><![CDATA[A week ago I came across this interesting post at the Websense blog, anyway I guess everybody is already aware that a bot was spotted breaking Gmail's image captcha. According to the post, the success rate is about 20%, which from spammers point of view is really profitable and sure more than enough for its [...]]]></description>
			<content:encoded><![CDATA[<p>A week ago I came across <a href="http://www.websense.com/securitylabs/blog/blog.php?BlogID=174" target="_blank">this interesting post</a> at the Websense blog, anyway I guess everybody is already aware that a bot was spotted breaking  Gmail's image captcha. According to the post, the success rate is about 20%, which from spammers point of view is really profitable and sure more than enough for its purposes. However what caught my attention, while reviewing the gmail signup page, was the Audio Captcha.</p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">First off, it is worth noting<span> </span>the “cat&amp;dog” <a href="http://research.microsoft.com/asirra/" target="_blank">Asirra</a> captcha from Microsoft Research,<span> </span>that’s a really good captcha, has kept<span> </span>the success rate of those who tried to break it (computer vision gurus) below of 60%. Why? I think the problem with most of the captchas is that are using a complex solution to show so simple challenges: obfuscated, deformed and distorted image to represent short<span> </span>alphanumeric sequences. On the other hand we have the “cat&amp;dog” style<span> </span>Captchas that<span> </span>implement a simple solution to show a really complex challenge for automated agents: Are you seeing cat or dogs in this perfectly clean picture? A question too hard to answer if you are not human.</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">The Gmail's Audio Captcha suffers a similar error. It is a wav file embedded within the webpage, once loaded it<span> </span>plays limited series of numbers . Twice. Btw, I don’t understand<span> </span>why<span> </span>that alphanumeric obsession...Anyway, let's begin. In this post I am going to show how that captcha can be broken just by using fourier analysis.</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><strong><em><span lang="EN-GB"><a href="http://www.gmail.com" target="_blank">You should play the captcha before continuing</a></span></em></strong> Look for this image <img src="http://blog.wintercore.com/wp-content/uploads/2008/03/accessibility.gif" alt="accessibility.gif" /> within the signup page.</p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">The first obvious error is the use of<span> </span>fixed patterns that clearly identify where the sequence begins and where<span> </span>it ends. </span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">We can listen to the numbers, in background there are distorted voices.Taking into account that human beings are visual entities ( this is the reason because everybody can spot Wally in a crowded place but only trained individuals could distinguish a distorted tone while an orchestra is playing)<span> </span>my question was: “If you are still capable of distinguishing </span><span lang="EN-GB">easily </span><span lang="EN-GB"> the numbers played in the captcha, why an automated agent couldn’t do so?”</span></p>
<p>So let’s try to find out the answer by taking a look at the waveform of a random Gmail's audio captcha<a title="waveform1.png" href="http://blog.wintercore.com/wp-content/uploads/2008/03/waveform1.png"><img src="http://blog.wintercore.com/wp-content/uploads/2008/03/waveform1.png" alt="waveform1.png" width="723" height="88" /></a></p>
<p><span id="more-11"></span></p>
<p class="MsoNormal">
<p class="MsoNormal">
<p class="MsoNormal"><span lang="EN-GB">You can immediately recognize the first “beeps” that announce the initial sequence and at the half of image, which is also the half of the captcha more or less, the voice of the girl saying “once again”. Moreoever,you<span> </span>see the<span> </span>signal of every number played has its particular “shape”.</span><br />
<img src="http://blog.wintercore.com/wp-content/uploads/2008/03/waveform3.png" alt="waveform3.png" width="26" height="128" /> <img src="http://blog.wintercore.com/wp-content/uploads/2008/03/waveform5.png" alt="waveform5.png" /> <img src="http://blog.wintercore.com/wp-content/uploads/2008/03/waveform6.png" alt="waveform6.png" /><br />
<span lang="EN-GB">Well, that’s all. You have already broken the Gmail audio captcha. Now, having the concept in your mind, all you need to do is write down that idea into something more tangible and less volatile.</span></p>
<p class="MsoNormal"><span lang="EN-GB">Jean Baptiste Fourier discovered, more than a hundred years before iPhone, that every waveform could be generated by adding up sine waves.<span> </span>But wait, he also found that every waveform could be broken down into those sine waves as well. So all we have is a bunch of sine waves that make up our signal. Let’s imagine a signal along the following axis</span></p>
<p class="MsoNormal"><img src="http://blog.wintercore.com/wp-content/uploads/2008/03/grafica.png" alt="grafica.png" /></p>
<p class="MsoNormal"><span lang="EN-GB">Viewing the graph along the time axis we would be in the time domain, on the other hand, if we get as reference the frequency axis we are talking about the frequency domain, what’s the difference? A lot,<span> </span>but the most obvious is that in the time domain you are choosing a “local” reference at every moment, on the other hand viewing the signal from the frequency domain, we get a “global” perspective of the signal. We represent every sine wave that makes up the signal as a vertical line as follows:</span></p>
<p><img src="http://blog.wintercore.com/wp-content/uploads/2008/03/grafica2.png" alt="grafica2.png" /></p>
<p class="MsoNormal"><span lang="EN-GB">Those lines (components) uniquely identify our signal. In pattern recognition if you manage to extract good features from whatever you are mining, you’ll get the 50% of the work already done. In this case what we are mining<span> </span>is a wav file which is merely a vector of N samples representing a signal at <em>t</em> time. The higher sample rate, the more accuracy. </span></p>
<p class="MsoNormal"><span lang="EN-GB">Ok, so the next step is to project that vector into the frequency domain by using the Discrete Fourier Transformation through the Fast Fourier Transformation algorithm. </span></p>
<p class="MsoNormal"><span lang="EN-GB">However, there is something we have to note before proceeding, we are calculating the FFT on N samples that represent a sine wave over a certain time, this wave is not strictly required to be periodic in that interval so we need a method to “readjust” our samples in order to minimize the impact that a non-periodic sampled wave may produce, this is a well-known problem called “leakage”. In order to solve this issue we have to apply a Window function on the samples. Therefore,<span> </span>allowing the FFT to operate only on a certain selected interval we'll achieve more realistic results. The window function applied is one of the most common: Hanning (watch out, not hamming) .</span></p>
<p class="MsoNormal"><span lang="EN-GB">Well, once the signal is in the frequency domain the next goal is to calculate its power spectral density since that is a good standpoint for identifying the signal as we’ll see later.<span> </span>The last step in this block is to adjust the scale. The human ear is ruled by the logarithmic scale so we wouldn’t be less than those “humans” or whatever…jokes aside we are modifying the amplitude scale since this is the best way to get a proper view of the small signals whilst the large ones are still represented as deserve <img src='http://blog.wintercore.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </span></p>
<p><img src="http://blog.wintercore.com/wp-content/uploads/2008/03/spectrum1.png" alt="spectrum1.png" /></p>
<p><span style="font-size: 12pt; font-family: 'Times New Roman';">Spectrum sample of a random captcha.</span></p>
<p><img src="http://blog.wintercore.com/wp-content/uploads/2008/03/spectrogram.png" alt="spectrogram.png" width="698" height="90" /></p>
<p class="MsoNormal"><span lang="EN-GB">Another view of<span> </span>signal’s Power differences<span> </span>in the time domain. The spectrogram.</span></p>
<p class="MsoNormal"><span lang="EN-GB">As you can see in the Spectrum image, there are a a bunch of peaks and valleys. These peaks are what we are going to use as features for characterizing our sampled signals. Therefore the next step is to find out those peaks. In order to discover the<span> </span>local maximums we calculate the second derivative<span> </span>of a cubic equation specially chosen to represent the spectrum. Et voilá, those peaks can be used as features for any classification algorithm you desire. The method proposed is simple, throwing away HMMs, SVMs, ANNs et cetera… what we do is a “peak matching” algorithm along the entire input signal,firstly windowing the input captcha, at every iteration, to the FFT size of the signal of the<span> </span>number we are checking. Then calculating both spectrums and finally comparing the peaks obtained. By using this technique the percentage of success easily raises to 90% so imagine what would you do by implementing the proper classification algorithm. </span></p>
<p class="MsoNormal"><a href="http://blog.wintercore.com/files/breaking_gmail_audio_captcha.wmv" target="_blank"><img src="http://blog.wintercore.com/wp-content/uploads/2008/03/video1.png" alt="video1.png" /></a></p>
<p class="MsoNormal"><a href="http://blog.wintercore.com/files/breaking_gmail_audio_captcha.wmv" target="_blank">Download</a> a video showing a live demo of the tool developed to break the audio captcha. <strong>This tool is not going to be released for obvious reasons.</strong></p>
<p class="MsoNormal"><span lang="EN-GB">Under my point of view the main problems present in this audio captcha are the following: </span></p>
<ul style="margin-top: 0cm;" type="disc">
<li class="MsoNormal"><span lang="EN-GB">Slightly distorted signal over      the frequency domain.</span></li>
<li class="MsoNormal"><span lang="EN-GB">Signals have an invariant      duration<span> </span>along the time axis.</span></li>
<li class="MsoNormal"><span lang="EN-GB">Same voice.</span></li>
<li class="MsoNormal"><span lang="EN-GB">Fixed patterns at the init,      middle and end of the captcha.</span></li>
<li class="MsoNormal"><span lang="EN-GB">Numeric sequence as proposed      challenge. (maybe the most important one)</span></li>
</ul>
<p class="MsoNormal"><span lang="EN-GB"> These weak features make the Gmail's Audio Catpcha highly suitable for automated attacks. Moreover there are several audio captchas out there, i.e facebook, that suffer  the same inherited design errors as well.</span></p>
<p class="MsoNormal"><strong><span lang="EN-GB">Please note that some important steps have been deliberately omitted in order to avoid  this post becomes an step-by-step tutorial for spammers.</span></strong></p>
<p class="MsoNormal"><em>Rubén Santamarta,</em></p>
<p class="MsoNormal"><em> R&amp;D/Reverse Engineer</em></p>
<p class="MsoNormal">
]]></content:encoded>
			<wfw:commentRss>http://blog.wintercore.com/2008/03/05/breaking-gmails-audio-captcha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://blog.wintercore.com/files/breaking_gmail_audio_captcha.wmv" length="7648403" type="video/x-ms-wmv" />
		</item>
	</channel>
</rss>
