<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;DUYCRXwyfip7ImA9WxBUF0k.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476</id><updated>2010-03-04T18:59:24.296-05:00</updated><title>radi::blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>97</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/radi-v" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="radi-v" /><entry gd:etag="W/&quot;DUYCRX05fSp7ImA9WxBUF0k.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-6939933491596488780</id><published>2010-03-04T18:57:00.001-05:00</published><updated>2010-03-04T18:59:24.325-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-04T18:59:24.325-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="productivity" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>SDL courses in the public</title><content type="html">A while ago I was pointing out some &lt;a href="http://radi.r-n-d.org/2008/11/effects-of-sdl.html" target=_blank&gt;interesting stats&lt;/a&gt; about the secure development lifecycle (SDL). Last week, Microsoft made its four core SDL training classes &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=96530d20-981c-481b-b4e0-a53b0c8d952e&amp;displaylang=en" target=_blank&gt;available&lt;/a&gt; to the public. The titles are:&lt;br /&gt;- Basics of Secure Design Development Test&lt;br /&gt;- Introduction to the Microsoft Security Development Lifecycle (SDL)&lt;br /&gt;- Introduction to Threat Modeling&lt;br /&gt;- Privacy in Software Development&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I would encourage everyone with a bit of spare time to take a look at these courses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-6939933491596488780?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/bPmGHOSzPiQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/6939933491596488780/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=6939933491596488780&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/6939933491596488780?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/6939933491596488780?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2010/03/sdl-courses-in-public.html" title="SDL courses in the public" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DEMMRH89eyp7ImA9WxBUFk0.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-1321987429277369584</id><published>2010-03-02T15:13:00.003-05:00</published><updated>2010-03-03T03:54:45.163-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-03T03:54:45.163-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>The daily /.</title><content type="html">A few interesting stories from my daily /.-ing:&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight:bold;"&gt;CAPTCHA troubles&lt;/span&gt;&lt;br /&gt;"Ticketmaster used various means to try to thwart Wiseguy’s operation, at one point switching to a service called reCAPTCHA, which is also used by Facebook. It’s a third-party CAPTCHA that feeds a CAPTCHA challenge to a site’s visitors. When a customer tries to purchase tickets, Ticketmaster’s network sends a unique code to reCAPTCHA, which then transmits a CAPTCHA challenge to the customer.&lt;br /&gt;&lt;br /&gt;But the perpetrators were able to thwart this as well. They wrote a script that impersonated users trying to access Facebook, and downloaded hundreds of thousands of possible CAPTCHA challenges from reCAPTCHA. They identified the file ID of each CAPTCHA challenge and created a database of CAPTCHA “answers” to correspond to each ID. The bot would then identify the file ID of a challenge at Ticketmaster and feed back the corresponding answer. The bot also mimicked human behavior by occasionally making mistakes in typing the answer, the authorities said."&lt;br /&gt;&lt;br /&gt;After having a chat with Aldwin on the topic, it seems like this might be a serious flaw in CAPTCHA (i.e. mapping a challenge to a response via identifying the filename of the CAPTCHA image). After all, CAPTCHA should allow developers to feed arbitrary text that will then get rendered on the fly.&lt;br /&gt;&lt;br /&gt;The original article is &lt;a href="http://www.wired.com/threatlevel/2010/03/wiseguys-indicted/#ixzz0h3HNOTpe" target=_blank&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight:bold;"&gt;Nearly 60% of apps fail first security tests.&lt;/span&gt; Interesting number from Veracode; however, I wonder in what phase of the SDLC were those apps when they were tested. Although I agree with their argument that more work is required in educating the developers, I must also add that more tooling is necessary (e.g. code annotations, code scanning when committing code to the repository, etc.) to enable developers focus on the bigger security problems.&lt;br /&gt;&lt;br /&gt;More on the topic &lt;a href="http://www.darkreading.com/vulnerability_management/security/app-security/showArticle.jhtml?articleID=223100875" target=_blank&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-1321987429277369584?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/uFzTWOwbkCE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/1321987429277369584/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=1321987429277369584&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/1321987429277369584?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/1321987429277369584?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2010/03/daily.html" title="The daily /." /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry gd:etag="W/&quot;DkQCSH45fSp7ImA9WxBVEEg.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-19738177452116525</id><published>2010-02-13T04:43:00.000-05:00</published><updated>2010-02-13T04:46:09.025-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-13T04:46:09.025-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Plastic problems</title><content type="html">...or Cambridge 2 PCI 0&lt;br /&gt;&lt;br /&gt;This past week I landed on two very interesting papers that came out of Cambridge. The papers basically discuss the weaknesses of &lt;a href="http://www.cl.cam.ac.uk/research/security/banking/nopin/oakland10chipbroken.pdf" target=_blank&gt;Chip &amp; PIN&lt;/a&gt; and the &lt;a href="http://www.cl.cam.ac.uk/~rja14/Papers/fc10vbvsecurecode.pdf" target=_blank&gt;3-D Secure protocol&lt;/a&gt; for online transactions. Highly recommended read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-19738177452116525?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/IJSPeLUs5Ro" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/19738177452116525/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=19738177452116525&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/19738177452116525?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/19738177452116525?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2010/02/plastic-problems.html" title="Plastic problems" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;D08EQXszfip7ImA9WxBQEEk.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-3131852095225448975</id><published>2010-01-09T09:00:00.001-05:00</published><updated>2010-01-09T09:03:20.586-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-09T09:03:20.586-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="daily life" /><title>The Flying Dutchman</title><content type="html">Some recent stats about my whereabouts during the past 3 months:&lt;br /&gt;6 countries&lt;br /&gt;7 cities&lt;br /&gt;3 timezones&lt;br /&gt;2 economic areas&lt;br /&gt;5 currencies&lt;br /&gt;21 flights&lt;br /&gt;27 hours of flight time&lt;br /&gt;&lt;br /&gt;Yep.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-3131852095225448975?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/isHbI1cU3Pc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/3131852095225448975/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=3131852095225448975&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3131852095225448975?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3131852095225448975?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2010/01/flying-dutchman.html" title="The Flying Dutchman" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;Ck4EQn84eCp7ImA9WxNXF0U.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-6330911183501932522</id><published>2009-10-05T17:13:00.001-05:00</published><updated>2009-10-05T17:15:03.130-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-05T17:15:03.130-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="football" /><title>Martin Palermo... no comment</title><content type="html">This is the guy who missed 3(!!!) penalty kicks in the same match for Inter Milano a few years ago. Now he scores a header from 40 meters. :)&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/iovwWGZzYjY&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/iovwWGZzYjY&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-6330911183501932522?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/HDhEzeNLhBU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/6330911183501932522/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=6330911183501932522&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/6330911183501932522?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/6330911183501932522?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/10/martin-palermo-no-comment.html" title="Martin Palermo... no comment" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;C0EEQ3o8eip7ImA9WxNXEk4.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-1462407990389152245</id><published>2009-09-29T08:18:00.001-05:00</published><updated>2009-09-29T08:40:02.472-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-29T08:40:02.472-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="daily life" /><title>The Story of Stuff</title><content type="html">&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gLBE5QAYXp8&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/gLBE5QAYXp8&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-1462407990389152245?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/W9tTyjOB8Tg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/1462407990389152245/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=1462407990389152245&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/1462407990389152245?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/1462407990389152245?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/09/story-of-stuff.html" title="The Story of Stuff" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;C04ERH09eSp7ImA9WxNQEEw.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-2588190067066477507</id><published>2009-09-07T05:49:00.003-05:00</published><updated>2009-09-15T05:51:45.361-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-15T05:51:45.361-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="productivity" /><category scheme="http://www.blogger.com/atom/ns#" term="testing" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>The 7 plagues of testing</title><content type="html">James Whittaker was running the series of the 7 plagues of software testing on the &lt;a href="http://googletesting.blogspot.com" target=_blank&gt;Google Testing Blog&lt;/a&gt;. Since the series are at their last stretch, here is the list of plagues:&lt;br /&gt;1. &lt;a href="http://googletesting.blogspot.com/2009/06/7-plagues-of-software-testing.html" target=_blank&gt;The Plague of Aimlessness&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://googletesting.blogspot.com/2009/06/by-james.html" target=_blank&gt;The Plague of Repetitiveness&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://googletesting.blogspot.com/2009/07/plague-of-amnesia.html" target=_blank&gt;The Plague of Amnesia&lt;/a&gt;&lt;br /&gt;4. &lt;a href="http://googletesting.blogspot.com/2009/07/plague-of-boredom.html" target=_blank&gt;The Plague of Boredom&lt;/a&gt;&lt;br /&gt;5. &lt;a href="http://googletesting.blogspot.com/2009/07/plague-of-homelessness.html" target=_blank&gt;The Plague of Homelessness&lt;/a&gt;&lt;br /&gt;6. &lt;a href="http://googletesting.blogspot.com/2009/07/plague-of-blindness.html" target=_blank&gt;The Plague of Blindness&lt;/a&gt;&lt;br /&gt;7. &lt;a href="http://googletesting.blogspot.com/2009/09/plague-of-entropy.html" target=_blank&gt;The Plague of Entropy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are also some &lt;a href="http://googletesting.blogspot.com/2009/09/7th-plague-and-beyond.html" target=_blank&gt;additional plagues&lt;/a&gt; that were suggested by various readers (myself included):&lt;br /&gt;- The Plague of Metrics&lt;br /&gt;- The Plague of Semantics/Assumptions&lt;br /&gt;- The Plague of Infinity/Endlessness/Exhaustion&lt;br /&gt;- The Plague of Miscommunication/Language&lt;br /&gt;- The Plague of Rigidness/Complacency&lt;br /&gt;&lt;br /&gt;Out of the suggested bunch, I really like Roussi's notion that complacency can be the result of a product's success.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-2588190067066477507?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/lOrxDbJgbys" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/2588190067066477507/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=2588190067066477507&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/2588190067066477507?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/2588190067066477507?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/09/7-plagues-of-testing.html" title="The 7 plagues of testing" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;C0YFR3o6cCp7ImA9WxNRE08.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-3910831009119191119</id><published>2009-08-03T09:49:00.006-05:00</published><updated>2009-09-07T05:58:36.418-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-07T05:58:36.418-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="productivity" /><category scheme="http://www.blogger.com/atom/ns#" term="testing" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Recycling security test cases</title><content type="html">Test cases are precious. In my day to day work, a lot of what we do is built around the notion that a test case either passes or fails. Think about the time when you &lt;a href="http://radi.r-n-d.org/2009/06/secure-exception-handling.html" target=_blank&gt;withdraw money out of your favorite ATM&lt;/a&gt; or when your &lt;a href="http://radi.r-n-d.org/2009/07/chrome-and-privacy-mode.html" target=_blank&gt;favorite application may have compromised your privacy&lt;/a&gt;... it's always the case of a passed or failed test case. Is there a flaw in the system? Can the system under test be put to its knees because of it? &lt;br /&gt;&lt;br /&gt;A while ago James Whittaker talked about &lt;a href="http://blogs.msdn.com/james_whittaker/archive/2009/01/22/more-about-test-case-reuse.aspx" target=_blank&gt;building repositories with reusable test cases&lt;/a&gt;. The whole &lt;a href="http://blogs.msdn.com/james_whittaker/archive/2009/01/16/test-case-reuse-in-the-future.aspx" target=_blank&gt;discussion&lt;/a&gt; is available at the MSDN blogs. I definitely recommend reading it. As applications often have common flaws, it is beneficial to have such a repository. Tweaking the test cases to the application under test is definitely a "must-do". However, once those tweaks are done for the particular software under test, the job gets much easier.&lt;br /&gt;&lt;br /&gt;Reflecting at the security industry, it's hard to not notice the need for James's idea to be adopted. In fact, a typical problem report from a security vendor will include the following bits:&lt;ol&gt;&lt;br /&gt;&lt;li&gt;What is the problem?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;How can the problem be reproduced?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;How can the problem be fixed?&lt;/li&gt;&lt;/ol&gt;Maybe we should start swapping the second bit with the actual executable test case? I know it's hard to do this for any type of application, but for the most common type -- Web apps -- it's certainly doable. Just look at tools like &lt;a href="http://seleniumhq.org/" target=_blank&gt;Selenium&lt;/a&gt; and you'll get the idea.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-3910831009119191119?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/mpIvYtuPwmA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/3910831009119191119/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=3910831009119191119&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3910831009119191119?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3910831009119191119?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/08/recycling-security-test-cases.html" title="Recycling security test cases" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></entry><entry gd:etag="W/&quot;DkQHRXozcCp7ImA9WxJbEkg.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-2642443602560957398</id><published>2009-07-22T04:07:00.004-05:00</published><updated>2009-07-22T04:18:54.488-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-22T04:18:54.488-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="daily life" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Phish me a Safari</title><content type="html">Recently I decided to install Safari 4. The experience is quite nice, except I'm paranoid about phishing. Yes, I check the certificates of sites where I'm about to provide my user credentials. I check the validity of links before I click on them. I even use different browsers when browsing trusted and not so trusted sites (some might point me to this &lt;a href="http://xs-sniper.com/blog/2008/09/24/surf-jacking-secure-cookies/" target=_blank&gt;surf jacking article&lt;/a&gt;, but oh well).&lt;br /&gt;&lt;br /&gt;In general, phishing is a concept that's been around for a while. It revolves around the idea to trick a user into performing an action while thinking he/she was performing another action. One of the mechanisms to do so is through obfuscating links inside a Web page. More on this can be found &lt;a href="http://en.wikipedia.org/wiki/Phishing#Link_manipulation" target=_blank&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Typically, Windows based browsers have been pretty good about revealing the URL of a link before clicking on it as this was a valid concern a few years ago (circa 2004/5). However, after switching to Mac I could say that I'm quite disappointed of not seeing any notification about the links I'm about to click on a page. In a way that goes against the &lt;a href="http://en.wikipedia.org/wiki/Secure_by_default" target=_blank&gt;secure by default&lt;/a&gt; concept that OS makers started adopting in 2003. Or maybe I'm just assuming too much from Apple?&lt;br /&gt;&lt;br /&gt;P.S. - Of course, I can turn on the Safari status bar and everything will be fine; but then, would all users do the same?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-2642443602560957398?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/UX1tmZoAWv8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/2642443602560957398/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=2642443602560957398&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/2642443602560957398?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/2642443602560957398?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/07/phish-me-safari.html" title="Phish me a Safari" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DkQCRn06cSp7ImA9WxJUFkg.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-7243181591298559341</id><published>2009-07-15T05:34:00.002-05:00</published><updated>2009-07-15T05:39:27.319-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-15T05:39:27.319-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Chrome and Privacy Mode</title><content type="html">A while back I was playing around with &lt;a href="http://gears.google.com/" target=_blank&gt;Google Gears&lt;/a&gt; and &lt;a href="http://dev.chromium.org/user-experience/incognito" target=_blank&gt;Incognito mode&lt;/a&gt;. The test was simple: I store some data in Gears while in Incognito and try to read it while in Normal mode. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The goal&lt;/span&gt;&lt;br /&gt;The goal of this test is quite simple: prove that privacy related data (yes, with Gears gaining momentum a lot of apps like Google Docs, Google Reader, Google Calendar, MySpace, etc. are beginning to utilize Gears' SQLite engine to cache information) that was obtained in Incognito mode will persist in Normal mode and vice-versa.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The code&lt;/span&gt;&lt;br /&gt;Load the following code in Incognito mode:&lt;br /&gt;&lt;pre&gt;var db = google.gears.factory.create('beta.database');&lt;br /&gt;db.open('privacy-test');&lt;br /&gt;&lt;br /&gt;db.execute('drop table if exists secret');&lt;br /&gt;db.execute('create table secret (message text)');&lt;br /&gt;db.execute('insert into secret values (?)', "secret message");&lt;/pre&gt;&lt;br /&gt;Load the following code in Normal mode:&lt;br /&gt;&lt;pre&gt;var db = google.gears.factory.create('beta.database');&lt;br /&gt;db.open('privacy-test');&lt;br /&gt;&lt;br /&gt;db.execute('create table if not exists secret (message text)');&lt;br /&gt;var rs = db.execute('select message from secret');&lt;br /&gt;if(rs.isValidRow()) {&lt;br /&gt; alert(unescape(rs.field(0)));&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The result&lt;/span&gt;&lt;br /&gt;Data indeed persisted. I've posted the code for Incognito mode &lt;a href="http://labs.r-n-d.org/privacy/incognito.html" target=_blank&gt;here&lt;/a&gt; and for Normal mode &lt;a href="http://labs.r-n-d.org/privacy/normal.html" target=_blank&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;Browsers' attempt to provide additional privacy to users is noble; however, this is valid only for data that the browser controls directly (e.g. cookies, browser cache). As Web applications are becoming richer in features, third party technologies like Google Gears, Flash, and Silverlight will soon need to start playing the privacy game as well if browsers are to fully allow privacy modes to users.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-7243181591298559341?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/ZOahzX1Iacc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/7243181591298559341/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=7243181591298559341&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/7243181591298559341?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/7243181591298559341?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/07/chrome-and-privacy-mode.html" title="Chrome and Privacy Mode" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DUYASXg4fCp7ImA9WxJVGUs.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-1209794232915474246</id><published>2009-07-07T06:42:00.002-05:00</published><updated>2009-07-07T06:45:48.634-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-07T06:45:48.634-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>SSN Predictability</title><content type="html">Carnegie Mellon has conducted &lt;a href="http://www.cmu.edu/news/archive/2009/July/july6_ssnprediction.shtml" target=_blank&gt;a study in which they proved&lt;/a&gt; the predictability of Social Security Numbers in the U.S. given that date and location of birth are known. Because it is a common practice to tie an individual's SSN to his/her bank accounts, phone bills, drivers license, or practically anything, I'd love to see whether organizations in the U.S. will move more and more toward what their counter parts in Europe are doing -- namely to check the individual's social security number, the government ID number, and various other details about the individual.&lt;br /&gt;&lt;br /&gt;This study will also be presented at &lt;a href="http://www.blackhat.com/html/bh-usa-09/bh-usa-09-speakers.html#Acquisti" target=_blank&gt;BlackHat&lt;/a&gt; at the end of July.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-1209794232915474246?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/54rnyzBX9LE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/1209794232915474246/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=1209794232915474246&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/1209794232915474246?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/1209794232915474246?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/07/ssn-predictability.html" title="SSN Predictability" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DkEEQ3Y-eip7ImA9WxJWGE4.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-2350315146074206495</id><published>2009-06-24T04:00:00.002-05:00</published><updated>2009-06-24T04:10:02.852-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-24T04:10:02.852-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Web Security 101</title><content type="html">&lt;a href="http://www.mikeandrews.com" target=_blank&gt;Mike&lt;/a&gt; has released a set of webcasts that cover Web security for beginners. These webcasts, including the slides, are available &lt;a href="http://www.foundstone.com/websec101/" target=_blank&gt;here&lt;/a&gt;. Mike's announcement and comments are available &lt;a href="http://www.mikeandrews.com/2009/06/22/websec101-is-live/" target=_blank&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-2350315146074206495?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/EpfSVxjF-XM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/2350315146074206495/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=2350315146074206495&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/2350315146074206495?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/2350315146074206495?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/06/web-security-101.html" title="Web Security 101" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DUADRX87fSp7ImA9WxJWFks.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-3733126110094103861</id><published>2009-06-22T05:47:00.000-05:00</published><updated>2009-06-22T05:49:34.105-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-22T05:49:34.105-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="daily life" /><title>Defining a leader</title><content type="html">Recently I've found the following quote from &lt;a href="http://www.agcapital.bg/en/?page_id=19" target=_blank&gt;this page&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;The team of more than 600 professionally trained consultants is three times larger than that of any other competitor, and makes the company a leader in the constantly developing Bulgarian market.&lt;/blockquote&gt;&lt;br /&gt;So from a pure economic/business perspective, how do you define a leader? Is it in terms of sales? Is in terms of customers? Is it in terms of capability/throughput? Or is it simply in terms of head count?&lt;br /&gt;&lt;br /&gt;The thought that provoked this post are simply this: many companies these days present themselves as leaders in something. Whether it's technology, ability to handle big projects, or throughput, everyone these days claims the to be a leader. As &lt;a href="http://dvasilev.blogpost.com" target=_blank&gt;D&lt;/a&gt; says, they could be leaders in one thing compared to their competitors, but lack in something else.&lt;br /&gt;&lt;br /&gt;I think marketing is trying to get a competitive advantage once again. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-3733126110094103861?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/TbZROi44yrU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/3733126110094103861/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=3733126110094103861&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3733126110094103861?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3733126110094103861?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/06/defining-leader.html" title="Defining a leader" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CEAHQn48fip7ImA9WxJWEUk.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-6648840210879097543</id><published>2009-06-16T03:56:00.001-05:00</published><updated>2009-06-16T03:58:53.076-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-16T03:58:53.076-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Secure the textbook</title><content type="html">Coop, a good friend of mine, is starting an initiative to revise college textbooks that teach software engineering and weed out insecure practices from them. The goal of this project is to bring security awareness throughout the entire computer science curriculum and not in just 1-2 courses. If you're interested in participating in this effort, go check out the &lt;a href="http://www.securethetextbook.com" target=_blank&gt;project site&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-6648840210879097543?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/HDhiVBSDO5Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/6648840210879097543/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=6648840210879097543&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/6648840210879097543?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/6648840210879097543?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/06/secure-textbook.html" title="Secure the textbook" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CUIHR3syeSp7ImA9WxJXF04.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-3233730148672934694</id><published>2009-06-10T13:19:00.007-05:00</published><updated>2009-06-11T10:18:56.591-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-11T10:18:56.591-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Threat modeling: bringing it all together</title><content type="html">There are few ways to do threat modeling. For those that are in the financial sector, &lt;a href="https://buildsecurityin.us-cert.gov/daisy/bsi/articles/best-practices/risk/250-BSI.html" target=_blank&gt;it's all about business risks&lt;/a&gt;. For those in the technology sector, &lt;a href="http://msdn.microsoft.com/en-us/security/aa570411.aspx" target=_blank&gt;it's all about fending off direct attacks&lt;/a&gt;. What both approaches have in common is the fact they all try to identify and counter any event that may offset the normal order of operation within a given business process. One at the business level, while the other at the more technical level. Because both approaches have different starting and ending points, there is the risk of having gaps in the overall risk analysis process.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Xl6P3Jh6Ra4/Si_57i7D21I/AAAAAAAAC8U/19nqg4z_Egc/s1600-h/blog2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 75px;" src="http://3.bp.blogspot.com/_Xl6P3Jh6Ra4/Si_57i7D21I/AAAAAAAAC8U/19nqg4z_Egc/s400/blog2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5345766084094188370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Why do I say this? If we look at the technical threat modeling exercise, everything begins with identifying the individual assets and the threats that affect them. The gap in this approach is that the application's business goals are not stated clear. Protecting assets is good, but why do they need to be protected? How do you convey to your higher-level management and external stakeholders that a particular asset needs protection? You simply speak in terms that can be understood by your audience: business goals. Similarly, if you look at the business risk analysis exercise, how do you ensure that the security test/audit of your application will cover all venues of attacking your system? How can you provide documentation of adequate security assessment coverage &lt;a href="http://radi.r-n-d.org/2009/06/closing-loop-bringing-lawsuits-to.html" target=_blank&gt;at the time of a breach&lt;/a&gt;? You simply provide your test plan, which is most likely derived from the attack vectors and pre-conditions in your threat model.&lt;br /&gt;&lt;br /&gt;So what's the purpose of complicating things? As risk analysis is an essential part of ensuring any system's security, it is also essential that the report that is produced during this analysis provide meaningful, yet actionable information. Here are the steps that can help achieve that:&lt;br /&gt;1. Gather information on the business goals of the system.&lt;br /&gt;2. Identify the business risks that will harm those business goals.&lt;br /&gt;3. Decompose the business risks into technical risks that can realize if a security breach occurs.&lt;br /&gt;4. For each technical risk, build a tree of attack vectors that lead to the realization of this technical risk.&lt;br /&gt;5. For each attack vector, identify the pre-conditions that are necessary for this attack vector to execute.&lt;br /&gt;6. Using the attack vectors, their pre-conditions, and your knowledge of the system's attack surface, draft a document (most likely a test plan) that covers all possible venues of attack.&lt;br /&gt;&lt;br /&gt;Thoughts?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-3233730148672934694?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/OtlL7sh8IbY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/3233730148672934694/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=3233730148672934694&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3233730148672934694?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3233730148672934694?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/06/threat-modeling-bringing-it-all.html" title="Threat modeling: bringing it all together" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Xl6P3Jh6Ra4/Si_57i7D21I/AAAAAAAAC8U/19nqg4z_Egc/s72-c/blog2.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></entry><entry gd:etag="W/&quot;DEUASXkyfCp7ImA9WxJXFEo.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-2679979516087910688</id><published>2009-06-08T10:48:00.001-05:00</published><updated>2009-06-08T10:50:48.794-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-08T10:50:48.794-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Finding Software Insecurities through Password Policies</title><content type="html">There are a few main security strategies to consider when using password controls within an application:&lt;br /&gt;- Users should always be forced to use fairly complex passwords&lt;br /&gt;- Unless used with legacy software, passwords should always be salted and hashed (even encryption doesn't cut it as there are no other valid reasons besides legacy software that mandate that passwords must be recoverable)&lt;br /&gt;&lt;br /&gt;Earlier I landed on &lt;a href="https://blogs.sans.org/appsecstreetfighter/2009/05/29/how-can-i-tell-if-my-password-is-encrypted/" target=_blank&gt;this blog post&lt;/a&gt; by Johannes Ullrich from the SANS Institute. The bit that I like the most is:&lt;br /&gt;&lt;blockquote&gt;Usually, if a site is imposing [maximum] limits to your password, like the length or it doesn’t allow certain characters, you can guess that your password will be stored in the clear.&lt;br /&gt;&lt;br /&gt;The reason is simple: If the password is hashed, then it doesn’t matter how long it is, or what characters it uses. It will always end up as a fixed length hex string.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-2679979516087910688?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/w97-W6uAbVA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/2679979516087910688/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=2679979516087910688&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/2679979516087910688?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/2679979516087910688?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/06/finding-software-insecurities-through.html" title="Finding Software Insecurities through Password Policies" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;C0MFQnozfip7ImA9WxJXEkQ.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-1025462298772324388</id><published>2009-06-06T07:22:00.002-05:00</published><updated>2009-06-06T07:30:13.486-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-06T07:30:13.486-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="daily life" /><title>Secure Exception Handling</title><content type="html">Exception handling is an important part of building a secure application. Developers are often asked to pay close attention to the security context in which the exception handler executes as to ensure maximum robustness, both from performance and security point of view, of the application. The reason I mention this is a little ATM incident yesterday where a friend's debit card was swallowed in the middle of a transaction by the ATM. As my buddy provided his bank card, PIN, and withdrawal request, the ATM decided to crash -- resulting in a big red screen stating that the machine was out of order. After 3-4 minutes, while my friend was in touch with the bank's customer service, the machine restarted and started working as expected.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;So what happened?&lt;/span&gt;&lt;br /&gt;Based on the above observations it seems that the generic exception handler used in the ATM machine tells the machine to void the transaction and keep the card. There's nothing wrong with that. In fact, this seems like the most secure way to fail an operation without knowing the exact causes of this failure. However, this is where the flaw in this ATM actually is -- the gap between the source of the exception and the exception handler is too big. It's so big that the handler that catches the exception doesn't know what to do with it. This is where robustness fails and legitimate customers get pissed off. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-1025462298772324388?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/o3gsVQrGld8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/1025462298772324388/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=1025462298772324388&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/1025462298772324388?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/1025462298772324388?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/06/secure-exception-handling.html" title="Secure Exception Handling" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;A0IMRH4_cCp7ImA9WxJQGUo.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-3263262382348434225</id><published>2009-06-02T16:47:00.003-05:00</published><updated>2009-06-02T16:53:05.048-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-02T16:53:05.048-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Closing the loop: bringing the lawsuits to the auditors</title><content type="html">A while back I had a bit of a rant about &lt;a href="http://radi.r-n-d.org/2008/01/security-certifications-are-we-hacker.html" target=_blank&gt;security testing and certifications&lt;/a&gt;. Today a colleague of mine sent me an article on the first case of &lt;a href="http://www.wired.com/threatlevel/2009/06/auditor_sued/" target=_blank&gt;bringing legal actions against a security auditor&lt;/a&gt;. Some quotes that I found interesting:&lt;br /&gt;&lt;blockquote&gt;In theory, CardSystems should have been safe. The industry’s primary security standard, known then as CISP, was touted as a sure way to protect data. And CardSystems’ auditor, Savvis Inc, had just given them a clean bill of health three months before.&lt;/blockquote&gt;&lt;br /&gt;Security is a lucrative business... so lucrative that a lot of people have jumped in to play the game of "securing" business values. Just like with any other sector of the economy, when there are a lot of newbies joining the field, the overall quality of work diminishes. And this has it's consequences...&lt;br /&gt;&lt;blockquote&gt;More than four years later, Savvis is being pulled into court in a novel suit that legal experts say could force increased scrutiny on largely self-regulated credit card security practices.&lt;br /&gt;&lt;br /&gt;They say the case represents an evolution in data breach litigation and raises increasingly important questions about not only the liability of companies that handle card data but also the liability of third parties that audit and certify the trustworthiness of those companies.&lt;/blockquote&gt;&lt;br /&gt;Luckily, for those who still want to join this business, there is the right &lt;a href="http://www.asscert.com/" target=_blank&gt;certification&lt;/a&gt; to give them a boost in front of competitors. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-3263262382348434225?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/aNr-xBLF8r0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/3263262382348434225/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=3263262382348434225&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3263262382348434225?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3263262382348434225?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/06/closing-loop-bringing-lawsuits-to.html" title="Closing the loop: bringing the lawsuits to the auditors" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DU8ASX44fSp7ImA9WxJRGE8.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-408544839498790428</id><published>2009-05-20T08:55:00.000-05:00</published><updated>2009-05-20T08:57:28.035-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-20T08:57:28.035-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>When we say P.C., you say I.</title><content type="html">For those interested in security and haven't seen Hugh Thompson's talk at RSA 2009, &lt;a href="http://media.omediaweb.com/rsa2009/webcast.htm?id=4_1" target=_blank&gt;go watch it&lt;/a&gt;. Having known the guy for a few years, it's incredible to see the works that he's presenting (both insightful and entertaining). :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-408544839498790428?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/RW7ZNbk6AD8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/408544839498790428/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=408544839498790428&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/408544839498790428?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/408544839498790428?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/05/when-we-say-pc-you-say-i.html" title="When we say P.C., you say I." /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;Ak8CSXc8cCp7ImA9WxJREEg.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-2312850651528794975</id><published>2009-05-11T11:14:00.004-05:00</published><updated>2009-05-11T11:21:08.978-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-11T11:21:08.978-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Facebook: All your privacy belongs to the Internet</title><content type="html">Privacy concerns in social networks are not something new. Take for instance Facebook's practice to &lt;a href="http://www.facebook.com/group.php?gid=9776591490" target=_blank&gt;keep user data after an account is deactivated&lt;/a&gt; or their &lt;a href="http://www.facebook.com/terms.php" target=_blank&gt;new terms of service policy&lt;/a&gt; to name a few. However, even if these problem are resolved, Facebook users still face the risk of having their private content being exposed to the public.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Welcome to the content hopping approach.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Before I jump into describing this approach, let me provide a bit of information regarding Facebook's privacy model. By default the Facebook privacy controls allow a user to specify a predefined list of users that can access various parts of the user's content. The platform uses several such predefined lists:&lt;br /&gt;- The user's friends&lt;br /&gt;- Friend of the user's friends&lt;br /&gt;- Any network which the user has joined&lt;br /&gt;- Everyone&lt;br /&gt;&lt;br /&gt;However, Facebook is flexible in defining these lists. Check &lt;a href="http://www.facebook.com/friends/" target=_blank&gt;here&lt;/a&gt; for more info.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hopping through content.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Typically users will limit access to their profile as a whole, but not to individual content. This make sense to a certain extend since a user's profile is often thought as the entrance to the user's content. However, in an era where content is constantly tagged and referenced from various sources, it is hard to clearly define one such "entrance". Assume the scenario where John has posted a photo and has tagged Jane. Anyone who can see Jane's profile can also see John's photo. Furthermore, if John didn't set the privacy controls on his album properly, that anyone can also see John's entire photo album...&lt;br /&gt;&lt;br /&gt;With Facebook being 175 million users... a lot of things could be dug up. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-2312850651528794975?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/2DkYR9fGe5Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/2312850651528794975/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=2312850651528794975&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/2312850651528794975?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/2312850651528794975?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/05/facebook-all-your-privacy-belongs-to.html" title="Facebook: All your privacy belongs to the Internet" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CE8MQHw4fSp7ImA9WxJTE0s.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-3326489663624898858</id><published>2009-04-21T20:08:00.002-05:00</published><updated>2009-04-21T20:14:41.235-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-21T20:14:41.235-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Eating your own dog food, or how do you really protect against XSS in ASP.NET?</title><content type="html">There is a lot of literature that discusses ASP.NET and output encoding. There is even more literature discussing cross-site scripting (XSS) vulnerabilities and their &lt;a href="http://jeremiahgrossman.blogspot.com/2007/03/jikto-crossing-line.html" target=_blank&gt;exploitation&lt;/a&gt;. However, there is no particular literature that discusses how to fully solve the cross-site scripting problem in ASP.NET. &lt;br /&gt;&lt;br /&gt;ASP.NET is built around a set of controls that the .NET framework transforms into HTML when outputting data to the browser. As any ASP.NET developer would agree, using these controls as well as any other functionality that is provided by the .NET framework makes the development of new applications a joy rather than a burden. However, as part of their functionality, some ASP.NET controls call the HttpUtility.HtmlEncode method to encode parts of their output (see this &lt;a href="http://blogs.msdn.com/sfaust/attachment/8918996.ashx" target=_blank&gt;reference table&lt;/a&gt;). What is the problem with this? The HtmlEncode function uses a black-list approach to solve this encoding problem. It searches for the &amp;lt;, &amp;gt;, &amp;amp;, and &amp;quot; characters and replaces them with their HTML equivalents. The security problem with this approach is that if HTML specifications change, applications relying on this method might become vulnerable to script injection attacks. As proven in the past, most solutions that rely on such approach (e.g. WAFs, ASP.NET request validation) get bypassed at some point by some determined attacker.&lt;br /&gt;&lt;br /&gt;To address this problem, Microsoft tries to give more momentum to its AntiXSS library, which uses a white-list approach... that is only known good characters (namely alpha-numeric) are left as is and everything else is encoded. The AntiXSS is also the &lt;a href="http://msdn.microsoft.com/en-us/security/cc421514.aspx" target=_blank&gt;recommended approach&lt;/a&gt; to use for encoding output by the Microsoft SDL methodology as it provides a longer lasting solution to the script injection problem. This, however, comes with a cost -- not all ASP.NET controls can work with the AntiXSS library. If a developer tries to use the AntiXSS library, he/she might run into the issue of double encoding output. If that developer does not use the AntiXSS library, his/her code might be become insecure.&lt;br /&gt;&lt;br /&gt;IMHO, the best way to address this problem is to allow developers to override the encoding routines within the ASP.NET controls. This way the .NET framework will give developers more control over what is encoded and how it is encoded.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-3326489663624898858?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/YHmoR2oPJME" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/3326489663624898858/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=3326489663624898858&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3326489663624898858?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/3326489663624898858?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/04/eating-your-own-dog-food-or-how-do-you.html" title="Eating your own dog food, or how do you really protect against XSS in ASP.NET?" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;CEcCRnw7cCp7ImA9WxJTEU0.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-6317974526468529043</id><published>2009-04-18T19:45:00.002-05:00</published><updated>2009-04-18T19:47:47.208-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-18T19:47:47.208-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>When is enough really enough?</title><content type="html">Marketing. It's a vital part in any business. It's the process of identifying your target customers, establishing your prices, and engaging your potential customers. It's a process where the core objective is to gain more attention, retain that attention, and turn that attention into profits. However, enough with the good side of marketing. As good as it can be, marketing can bring a lot of evil to an organization. Just think about the discrepancies between a product's advertisement and what that product really is, but most of all think about how the marketing efforts could act as a Trojan horse within your business model. What do I mean by this? Assume that you have a product or service that is trying to find its place on the market. Assume that you entitle your marketing team to promote your product or service by any means, including giving away free copies/access to your entire product or service. Assume that your marketing efforts are less secure than the security standards set within your organization. Assume that a copy of your product or an account to your service leaks out... that's right, your business model has been compromised.&lt;br /&gt;&lt;br /&gt;A few years ago, a friend of mine was able to get free pre-release copies of upcoming Hollywood titles. The copies that we watched were marketing material that was distributed to video store owners. If a video then was compromised, something like &lt;a href="http://edition.cnn.com/2009/SHOWBIZ/Movies/04/02/xmen.piracy/" target=_blank&gt;this&lt;/a&gt; might have happened.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-6317974526468529043?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/4rX2BRoDPjc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/6317974526468529043/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=6317974526468529043&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/6317974526468529043?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/6317974526468529043?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/04/when-is-enough-really-enough.html" title="When is enough really enough?" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DEAESH0-cCp7ImA9WxVbFkU.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-4853162638833389615</id><published>2009-04-02T10:36:00.001-05:00</published><updated>2009-04-02T10:38:29.358-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-02T10:38:29.358-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="daily life" /><title>Marketing in the IT</title><content type="html">Gabe has an awesome post on using buzz words in &lt;a href="http://gabrielegiuseppini.wordpress.com/2009/03/31/marketing-in-security/" target=_blank&gt;marketing security products and services&lt;/a&gt; (which I think can be applied to the IT as a whole). The quote that I find really amusing is:&lt;br /&gt;&lt;blockquote&gt;John’s UltraSecure Platform and Super AntiHacker technologies are the time-proven critical-acclaimed fast-reliant just-in-time cutting-edge self-healing on-demand value-added preferred choice for industry leaders and security-minded managers of today, just like you.&lt;/blockquote&gt;&lt;br /&gt;This is just sick!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-4853162638833389615?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/TuitHrfv4Y0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/4853162638833389615/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=4853162638833389615&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/4853162638833389615?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/4853162638833389615?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/04/marketing-in-it.html" title="Marketing in the IT" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;DkUBRX0yeCp7ImA9WxVbFE4.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-7969266861246908925</id><published>2009-03-30T12:22:00.003-05:00</published><updated>2009-03-30T12:30:54.390-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-30T12:30:54.390-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="daily life" /><title>When the human factor is of importance...</title><content type="html">Lately I've been reading &lt;a href="http://www.nickleeson.com/" target=_blank&gt;Nick Leeson&lt;/a&gt;'s &lt;a href="http://www.amazon.co.uk/dp/0751517089?tag=nickleesono08-21&amp;camp=1406&amp;creative=6394&amp;linkCode=as1&amp;creativeASIN=0751517089&amp;adid=103833R0M13E6Z0NR65E&amp;" target=_blank&gt;Rogue Trader&lt;/a&gt;, which talks about his experience during the &lt;a href="http://en.wikipedia.org/wiki/Barings_Bank#1995_collapse" target=_blank&gt;bankrupt of Barings Bank&lt;/a&gt;. Although the book has not impressed me that much, it led me to a few thoughts:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;How can orgs be better at deciding who their key personnel is?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;How can orgs be better at managing their key personnel?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;What can orgs do to better protect their assets, brand, and most of all their org?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;What would be the most efficient mechanism for keeping real-time checks on org critical operations?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;What can orgs do to encourage their key personnel to stay focused on the orgs goals?&lt;/li&gt;&lt;/ul&gt;These thoughts will produce various responses depending on the circumstances during which they're asked. However, it is good to think about these things once in a while.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-7969266861246908925?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/AVIoyNWc9N0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/7969266861246908925/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=7969266861246908925&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/7969266861246908925?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/7969266861246908925?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/03/when-human-factor-is-of-importance.html" title="When the human factor is of importance..." /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry><entry gd:etag="W/&quot;Ck4ESXoyfSp7ImA9WxVUF08.&quot;"><id>tag:blogger.com,1999:blog-1426281128647295476.post-19574542952810511</id><published>2009-03-22T06:18:00.002-05:00</published><updated>2009-03-22T06:21:48.495-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-22T06:21:48.495-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="daily life" /><title>Visualizing the credit crisis</title><content type="html">&lt;object width="425" height="264"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Q0zEXdDO5JU&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Q0zEXdDO5JU&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="264"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="264"&gt;&lt;param name="movie" value="http://www.youtube.com/v/iYhDkZjKBEw&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/iYhDkZjKBEw&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="264"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1426281128647295476-19574542952810511?l=radi.r-n-d.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/radi-v/~4/d2fzVDNAuZg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://radi.r-n-d.org/feeds/19574542952810511/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=1426281128647295476&amp;postID=19574542952810511&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/19574542952810511?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1426281128647295476/posts/default/19574542952810511?v=2" /><link rel="alternate" type="text/html" href="http://radi.r-n-d.org/2009/03/visualizing-credit-crisis.html" title="Visualizing the credit crisis" /><author><name>radi</name><uri>http://www.blogger.com/profile/11459795773754260693</uri><email>radi@r-n-d.org</email><gd:extendedProperty name="OpenSocialUserId" value="10363021893183787820" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></entry></feed>
