<?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" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUcFSHw7fSp7ImA9WxJWFk8.&quot;"><id>tag:blogger.com,1999:blog-28956680</id><updated>2009-06-21T15:23:39.205-07:00</updated><title>Security Retentive</title><subtitle type="html">Corporate InfoSec doobie.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://securityretentive.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://securityretentive.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>106</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><geo:lat>37.326341</geo:lat><geo:long>-121.9178</geo:long><link rel="self" href="http://feeds.feedburner.com/SecurityRetentive" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;A0cFQ305eyp7ImA9WxJWEE0.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-6407335507254861216</id><published>2009-06-14T11:57:00.000-07:00</published><updated>2009-06-14T12:50:12.323-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-14T12:50:12.323-07:00</app:edited><title>Laws of Supply and Demand Still Apply in Software Development</title><content type="html">I read Gunnar's post the other day &lt;span style="font-weight: bold;"&gt;"&lt;/span&gt;&lt;a href="http://1raindrop.typepad.com/1_raindrop/2009/06/still-waiting-to-meet-a-developer-who-wants-to-write-insecure-code.html"&gt;Still Waiting to Meet a Developer Who Wants to Write Insecure Code&lt;/a&gt;" and he echoed something I've also been saying for a long time.  In all of the training events I've ever done, times I've worked with developers, I've rarely met a developer who wants to actively write insecure code.&lt;br /&gt;&lt;br /&gt;At the same time, there is a lot of bad code out there, and as much as we'd like to just blame managers, users, short timelines, that isn't necessarily the whole story.&lt;br /&gt;&lt;br /&gt;Let's take a look at another industry - the home construction business.  We see a vast difference in the quality of home construction based sometimes on how much the buyer is willing to pay, but also based on the supply and demand elements of qualified builders, and workers themselves.  During regular non-boom times, the construction quality of homes while not excellent, is generally consistently "decent."  Regulatory systems in many states (throw out the recent Texas fiascos if you will) are reasonably good at ensuring building code are followed, worker safety isn't compromised, and that the consumer ends up with a decent product.&lt;br /&gt;&lt;br /&gt;Compare that to the construction of the last 5-7 years.  Especially out here in California where the housing boom was vast, and demand for new housing, and consequently people to build them, far outstripped the supply of workers with experience and skills.  The results in terms of quality are quite striking.  Looking around at much new construction even when it was brand-new shoed all sorts of shortcuts.  Baseboards glued on instead of done with nails.  Cheap flooring put down onto uneven subflooring.  Carpets coming loose because of shody installation.  Paint jobs that don't match-up across a big wall.  Showers that crack after 6 months because they we're installed level or with the right bracing.  You name it, it happened.  Shortcuts were the norm as housing was put up faster than reasoable but unqualified laborers.&lt;br /&gt;&lt;br /&gt;How does this happen?  The demand for new housing vastly outstripped the supply of those qualified to build them.  It was a problem across the whole country, and conseuently we ended up with a lot of poorly bult houses.&lt;br /&gt;&lt;br /&gt;Why didn't buyers enforce quality standards?  Why didn't their inspectors?  Again, a problem of supply and demand.  A good home inspector has knowledge in most areas of home construction.  They have the same skills you'd expect out of a general contractor.  They understand electrical wiring standards, plumbing standards, general carpentry standards, etc.  They are also experienced, and know where to sniff out the problems in a house they are inspecting. &lt;br /&gt;&lt;br /&gt;So, what happened during the housing boom?  We had a shortage of qualified home inspectors.  In jurisdictions that don't mandate particular skills, we ended up with lots of unqualified housing inspectors. We probably ended up with a lot of kickbacks and bribery too, though admittedly I haven't seen any direct evidence for that, its just a guess.  On the buyer front, we ended up with a bunch of first-time house buyers, who didn't know the kinds of problems to look for in a new home. &lt;br /&gt;&lt;br /&gt;So, based on more demand than could be supplied with quality construction, we ended up with substandard product. &lt;br /&gt;&lt;br /&gt;Hopefully you see where I'm going with this as it relates to software supply and demand.&lt;br /&gt;&lt;br /&gt;In software our demand for software vastly outstrips the supply of qualified workers to build it.  Software is worse though because at least in the housing case, in a normall regulated market, we have regulations and inspectors we have to satisfy.  When the electrical inspector shows up on your job site, he (or she) is going to ask first for the plans and drawings.  If you don't even have those, then you do't pass Go, and you don't collect your $200.  You go right back to start, and have to get that fixed before you've even allowed to keep working, whether the work is being done right at all.  If you don't have documentation, you're dead in the water.  Sure the electrical work might be getting done right.  And maybe you had the customer give you feedback on every outlet (agile?) but if you do't have documentation about what you're building, you stop what you're doing, and you on't get to start again until you do.&lt;br /&gt;&lt;br /&gt;This isn't to say that I think the way we regulate buildings is the same way we should regulate software or computing.  It is merely to point out that when you have a large mismatch between supply and demand, you're probably going to make sacrifices somewhere, and quality is one of those places.&lt;br /&gt;&lt;br /&gt;So, maybe I've never met a develoepr who wanted to develop insecure software, but I guess that doesn't always imply that they wanted to, or were acpable of, developing quality software.  In fact, given that much software is full of stupid and simple bugs, and that most development processes aren't structured to even make sure those don't slip through (make the subfloor level, make sure 2x4's are spaced right and at 90 degree angles) is it any surprise that we end up with software with lots of quality defects, with lots of security defects?&lt;br /&gt;&lt;br /&gt;I remain optimistic that we can solve ths problem through training/education.  But it isn't going to happen overnight, and it isn't going to happen until some of our attitudes about building software change from hiring amateur contractors who haven't ever built anything before, to hiring professionals who really know what they are doing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-6407335507254861216?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/NNI5gB22qqA" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=6407335507254861216" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6407335507254861216?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6407335507254861216?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/NNI5gB22qqA/laws-of-supply-and-demand-still-apply.html" title="Laws of Supply and Demand Still Apply in Software Development" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2009/06/laws-of-supply-and-demand-still-apply.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ABR3c9fyp7ImA9WxJWEE0.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-8785987103139426464</id><published>2009-06-14T11:52:00.000-07:00</published><updated>2009-06-14T11:55:56.967-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-14T11:55:56.967-07:00</app:edited><title>Headed South</title><content type="html">Starting June 19th I'll be headed to the ICANN meeting in Sydney, and then also off for a little side trip to Auckland, NZ. Its all part of my plans to fix Internet governance, or at the least, stop things from getting worse.&lt;br /&gt;&lt;br /&gt;If you're also in Sydney or Auckland and have any good restaurant or tourist recommendations, I'm all ears.&lt;br /&gt;&lt;br /&gt;Or, if anyone wants to meet up, that's cool - drop me a line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-8785987103139426464?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/DkUwoRBwwD0" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=8785987103139426464" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/8785987103139426464?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/8785987103139426464?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/DkUwoRBwwD0/headed-south.html" title="Headed South" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2009/06/headed-south.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUANQH4yeSp7ImA9WxJXFkw.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-6495780082812682152</id><published>2009-06-09T22:55:00.001-07:00</published><updated>2009-06-09T23:03:11.091-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-09T23:03:11.091-07:00</app:edited><title>Quick Thoughts on Safari-4 Final</title><content type="html">A few quick thoughts on Safari-4 on my Macbook.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Wow is this thing ridiculously fast.  I'm usually a Firefox user and I'm not bogged down with a bunch of extensions/add-ons.  Safari-4 feels about 2-3 times faster for 2 major apps - Gmail, and Google Reader.&lt;/li&gt;&lt;li&gt;I still don't like the EV-Certificate support.  I wish I had access to Apple's user testing of the EV-certificate user interface to see about the security usability factors.  I don't find it nearly as obvious or useful as the interfaces in IE7, IE8, or Firefox-3.  I don't know Chrome that well though, so who knows whether I like it better than than.&lt;/li&gt;&lt;li&gt;The user interface seems a lot cleaner than the beta releases.  Additionally, the hidden close x-marks on tabs that don't reveal until you highlight a tab is a nice feature.&lt;/li&gt;&lt;li&gt;First impressions of the web-inspector is a lot like the little bit of Chrome I've played with - pretty sure this is a webkit feature.  Very positively impressed so far.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;So, other than a relatively dismal security track record, I may stick with Safari-4 for a few "trusted" sites just to get some better impressions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-6495780082812682152?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/t7_N_tfw0BQ" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=6495780082812682152" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6495780082812682152?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6495780082812682152?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/t7_N_tfw0BQ/quick-thoughts-on-safari-4-final.html" title="Quick Thoughts on Safari-4 Final" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2009/06/quick-thoughts-on-safari-4-final.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIFQXo5eip7ImA9WxJXEEs.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-1989754902995323974</id><published>2009-06-03T15:00:00.000-07:00</published><updated>2009-06-03T15:01:50.422-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-03T15:01:50.422-07:00</app:edited><title>A Little Shameless Self Promotion</title><content type="html">I was recently interview by Gary McGraw for his Reality Check podcast.  Check it out here -&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cigital.com/realitycheck/"&gt;http://www.cigital.com/realitycheck/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-1989754902995323974?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/rxkdLRXMej4" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=1989754902995323974" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/1989754902995323974?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/1989754902995323974?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/rxkdLRXMej4/little-shameless-self-promotion.html" title="A Little Shameless Self Promotion" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2009/06/little-shameless-self-promotion.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMEQno_eyp7ImA9WxJXEE0.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-2662461717006720294</id><published>2009-06-02T22:00:00.000-07:00</published><updated>2009-06-02T22:53:23.443-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-02T22:53:23.443-07:00</app:edited><title>Don't blame the judges</title><content type="html">Two California court decisions came down last week that have people making all sorts of crazy claims about our legal system.&lt;br /&gt;&lt;br /&gt;The first was the decision by the California Supreme Court affirming Proposition-8, the amendment/revision to the California Constitution.&lt;br /&gt;&lt;br /&gt;The second was a decision by a California court ruling that the service offered by LifeLock is illegal under California law.  An article on that decision is &lt;a href="http://www.wired.com/threatlevel/2009/05/lifelock/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In the Wired article about the LifeLock decision, we have the following passage:&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;But Chris Hoofnagle, director of information privacy programs for the &lt;a href="http://www.law.berkeley.edu/institutes/bclt/"&gt;Berkeley Center for Law and Technology&lt;/a&gt;, says the ruling is a disappointment.&lt;/p&gt; &lt;p&gt;“The idea that we could some day see a market where we pay $10 a month to a company to opt us out of junk mail, to monitor our credit, to do all sorts of privacy-enhancing steps that we don’t have time to take … for that market to emerge, LifeLock’s business model and similar ones have to be legal,” Hoofnagle says.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I find this comment puzzling.  All the judge did was interpret the law, he didn't make it.  Nowhere does Mr. Hofnagle say the judges ruling was wrong on the facts, but he criticizes it anyway.&lt;/p&gt;&lt;p&gt;There was also rather a lot of this same type of commentary about the California Supreme Court's decision ruling that Proposition-8 is legal and will stand.  Much of the complaining was along the lines of "but how can they take away our rights like that?"  It isn't that I'm not fundamentally sympathetic to this position, but like it or not, the California constitution is a complete mess, the direct democracy system we have is a complete mess, and it all needs reworking.&lt;/p&gt;&lt;p&gt;This all points me to a couple of conclusions.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;If you're not winning under the current rules of the game, change the rules.  This can be through getting a law passed, or even through amending the constitution.&lt;/li&gt;&lt;li&gt;The California direct democracy experiment has gone horrible wrong, and its time to write a new constitution that eliminates this nonsense.&lt;/li&gt;&lt;li&gt;Richard Friedlander had it right in this &lt;a href="http://www.kqed.org/epArchive/R905290737"&gt;perspective piece&lt;/a&gt; on &lt;a href="http://www.kqed.org/"&gt;KQED&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;And lastly, all of this complaining about judges reminds me of a famous Richard J. Daley quote, which I'll tweak here for my own purpose:&lt;/p&gt;&lt;p&gt;The Judges aren't here to &lt;span style="font-style: italic;"&gt;cause&lt;/span&gt; disorder, they're here to &lt;span style="font-style: italic;"&gt;preserve&lt;/span&gt; disorder.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-2662461717006720294?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/-a4PCUmTuTk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=2662461717006720294" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/2662461717006720294?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/2662461717006720294?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/-a4PCUmTuTk/dont-blame-judges.html" title="Don't blame the judges" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2009/05/dont-blame-judges.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AMRH89fyp7ImA9WxJQFkw.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-6516587392477986521</id><published>2009-05-29T10:55:00.000-07:00</published><updated>2009-05-29T10:56:25.167-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-29T10:56:25.167-07:00</app:edited><title>Information Overload Syndrome</title><content type="html">A nice little video from Xerox about a new neurological disorder :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.xerox.com/information-overload/enus.html"&gt;http://www.xerox.com/information-overload/enus.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-6516587392477986521?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/rxTzvXiTml4" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=6516587392477986521" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6516587392477986521?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6516587392477986521?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/rxTzvXiTml4/information-overload-syndrome.html" title="Information Overload Syndrome" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2009/05/information-overload-syndrome.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMGQHo8fSp7ImA9WxVWFU8.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-3506999498523039167</id><published>2009-02-24T13:39:00.000-08:00</published><updated>2009-02-24T16:07:01.475-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-24T16:07:01.475-08:00</app:edited><title>Important Ruling on 5th Amendment Case Involving Handling Over Encryption keys to Government</title><content type="html">Since I know I won't do it the justice it deserves, please check out &lt;a href="http://volokh.com/posts/1235508933.shtml"&gt;this post&lt;/a&gt; on the Volokh Conspiracy blog.&lt;br /&gt;&lt;br /&gt;Quick summary - the user doesn't have to hand over the keys, but most provide decrypted contents of a hard-drive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-3506999498523039167?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/VvU22_Pt7uM" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=3506999498523039167" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/3506999498523039167?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/3506999498523039167?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/VvU22_Pt7uM/important-ruling-on-5th-amendment-case.html" title="Important Ruling on 5th Amendment Case Involving Handling Over Encryption keys to Government" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2009/02/important-ruling-on-5th-amendment-case.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcFRXs5fSp7ImA9WxVWEEU.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-9042105301160414842</id><published>2009-02-19T13:43:00.001-08:00</published><updated>2009-02-19T13:46:54.525-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-19T13:46:54.525-08:00</app:edited><title>What's Old is New Again</title><content type="html">What do you call a 14+ year old vulnerability?  Sloppy, ridiculous?  Not sure....&lt;br /&gt;&lt;br /&gt;FreeBSD was just hit by essentially the same bug that was present in a large number of Unix variants back in 1995. &lt;br /&gt;&lt;br /&gt;The original vulnerability is here:&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;small&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.cert.org/advisories/CA-1995-14.html"&gt;CERT&lt;sup&gt;®&lt;/sup&gt; Advisory CA-1995-14 Telnetd Environment Vulnerability&lt;/a&gt;&lt;/small&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The vulnerability allows a remote user to specify Unix environment variables to the the target system.  If they override an environment variable such as LD_LIBRARY_PATH or LD_PRELOAD then they can override the behavior of programs that telnetd calls, such as /bin/login.&lt;br /&gt;&lt;br /&gt;Looks like the FreeBSD guys just had a recurrence of almost exactly the same vuln.... Interesting to say the least.&lt;br /&gt;&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://security.freebsd.org/advisories/FreeBSD-SA-09:05.telnetd.asc"&gt;FreeBSD-SA-09:05.telnetd&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-9042105301160414842?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/8qQJ6AAnlvM" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=9042105301160414842" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/9042105301160414842?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/9042105301160414842?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/8qQJ6AAnlvM/whats-old-is-new-again.html" title="What's Old is New Again" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2009/02/whats-old-is-new-again.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMMRHg8eSp7ImA9WxVXFUs.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-454662076823313581</id><published>2009-02-13T15:06:00.000-08:00</published><updated>2009-02-13T15:08:05.671-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-13T15:08:05.671-08:00</app:edited><title>I thought I was the greatest hacker</title><content type="html">But according to &lt;a href="http://www.foxnews.com/story/0,2933,492705,00.html"&gt;Fox News&lt;/a&gt;, I'm definitely not.&lt;br /&gt;&lt;br /&gt;Alas, not enough misspent youth....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-454662076823313581?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/2_L_ZuNUAqk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=454662076823313581" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/454662076823313581?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/454662076823313581?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/2_L_ZuNUAqk/i-thought-i-was-greatest-hacker.html" title="I thought I was the greatest hacker" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2009/02/i-thought-i-was-greatest-hacker.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQGSXkzfCp7ImA9WxVXFk4.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-7850858081082663270</id><published>2009-02-13T11:17:00.001-08:00</published><updated>2009-02-14T09:42:08.784-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-14T09:42:08.784-08:00</app:edited><title>Job Openings</title><content type="html">We're hiring some internal application and project security consultants and a security manager.  I'll update this post with a link when I get one I can put up as a URL (silly brassring) but if you go to:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/html/paypal_jobs.html"&gt;https://www.paypal.com/html/paypal_jobs.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;you can search PayPal jobs with a keyword of "information security" to find the job descriptions.&lt;br /&gt;&lt;br /&gt;Update: Here are some easily clickable links:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://jobs.brassring.com/en/asp/tg/cim_jobdetail.asp?sec=1&amp;amp;partnerid=13746&amp;amp;siteid=195&amp;amp;jobId=819512&amp;amp;type=search&amp;amp;JobReqLang=1&amp;amp;recordstart=1&amp;amp;JobSiteId=195&amp;amp;JobSiteInfo=819512_195&amp;amp;GQId=0&amp;amp;codes=IND"&gt;Manager, Information Security - Phoenix&lt;/a&gt;&lt;br /&gt;&lt;a href="https://jobs.brassring.com/en/asp/tg/cim_jobdetail.asp?sec=1&amp;amp;partnerid=13746&amp;amp;siteid=195&amp;amp;jobId=819514&amp;amp;type=search&amp;amp;JobReqLang=1&amp;amp;recordstart=1&amp;amp;JobSiteId=195&amp;amp;JobSiteInfo=819514_195&amp;amp;GQId=0&amp;amp;codes=IND"&gt;Principal Information Security Engineer - Phoenix&lt;/a&gt;&lt;br /&gt;&lt;a href="https://jobs.brassring.com/en/asp/tg/cim_jobdetail.asp?sec=1&amp;amp;partnerid=13746&amp;amp;siteid=195&amp;amp;jobId=819513&amp;amp;type=search&amp;amp;JobReqLang=1&amp;amp;recordstart=1&amp;amp;JobSiteId=195&amp;amp;JobSiteInfo=819513_195&amp;amp;GQId=0&amp;amp;codes=IND"&gt;Principal Information Security Engineer - San Jose&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-7850858081082663270?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/dwtPxD94cvs" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=7850858081082663270" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/7850858081082663270?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/7850858081082663270?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/dwtPxD94cvs/job-openings.html" title="Job Openings" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2009/02/job-openings.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QFSHc_fip7ImA9WxVQEkg.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-6268440927749981596</id><published>2009-01-29T10:51:00.000-08:00</published><updated>2009-01-29T10:55:19.946-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T10:55:19.946-08:00</app:edited><title>Quick personal Plug - I'm Speaking at SD West</title><content type="html">A quick personal plug that I'm speaking at SD West on Friday March 13th.  I'm co-presenting with Brad Hill and Scott Stender of iSec Partners.&lt;br /&gt;&lt;br /&gt;Our talk title is "&lt;a href="https://www.cmpevents.com/SDw9/a.asp?option=C&amp;amp;V=11&amp;amp;SessID=8444"&gt;Managing a Software Development Security Program: Tactical Advice for the First 100 Days&lt;/a&gt;" &lt;br /&gt;&lt;br /&gt;There has been plenty of discussion in forums such as WASC, OWASP, and the SC-L list about how to better evangelize secure development to the broad development community.  Having a dedicated security track at a developer conference is a good step in that direction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-6268440927749981596?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/kMakUueJzBQ" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=6268440927749981596" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6268440927749981596?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6268440927749981596?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/kMakUueJzBQ/quick-personal-plug-im-speaking-at-sd.html" title="Quick personal Plug - I'm Speaking at SD West" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2009/01/quick-personal-plug-im-speaking-at-sd.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUCQnk4fip7ImA9WxRaE0U.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-4457259367942610413</id><published>2008-12-15T16:09:00.000-08:00</published><updated>2008-12-15T16:27:43.736-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-15T16:27:43.736-08:00</app:edited><title>Is Vulnerability Fix Time Really the Best Software Security Metric?</title><content type="html">Johnathan Nightingale has a new &lt;a href="http://blog.mozilla.com/security/2008/12/15/the-importance-of-good-metrics/"&gt;post &lt;/a&gt;up over at the Mozilla Security Blog.  His post is in response to a report by Bit9 about vulnerabilities in software and a comparison between packages and their published vulnerabilities.&lt;br /&gt;&lt;br /&gt;Jonathan makes the claim (Apologies for quoting so much here):&lt;br /&gt;&lt;blockquote&gt;To suggest that this openness is a weakness because it means that we have “reported vulnerabilities” is to miss the reality: that software has bugs. A product’s responsiveness to those bugs and its ability to contain them quickly and effectively is a much more meaningful metric than counting them.&lt;br /&gt;&lt;p&gt;The Firefox vulnerabilities Bit9 discusses are long-since fixed, with the majority of these fixes coming within days of it being announced.  That is the real measure of application security: are known vulnerabilities fixed promptly, tested carefully, and deployed thoroughly? When people have asked that question, Firefox and Mozilla have consistently come out ahead.&lt;/p&gt; Bug counting is unfortunately common because it’s easy, but it should not be a substitute for real security measurement.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;I unfortunately have to take issue with Jonathan's definition.  The vulnerability exposure isn't the only measure of software security, especially if the vulnerability exposure window ois only measured from the time a defect is disclosed, not the time it existed in the wild.  Other important metrics are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How many defects and of what severity are in the shipped product&lt;/li&gt;&lt;li&gt;What type of defects are they and why did they show up (and weren't found in testing&lt;/li&gt;&lt;li&gt;Defects discovered in the wild over time (is the software getting better or worse)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Software does get attacked with 0day exploits, witness last weeks IE exploits.  For people exploited due to this vulnerability knowing Microsoft patched it quickly will be poor consolation for the damage they have suffered.&lt;br /&gt;&lt;br /&gt;I don't doubt that Mozilla takes security seriously but a statement that "Software has bugs" isn't really responsive to the idea that over time software ought to have fewer of them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-4457259367942610413?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/-MScNtj7Cz4" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=4457259367942610413" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/4457259367942610413?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/4457259367942610413?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/-MScNtj7Cz4/is-vulnerability-fix-time-really-best.html" title="Is Vulnerability Fix Time Really the Best Software Security Metric?" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/12/is-vulnerability-fix-time-really-best.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUHSXo_cCp7ImA9WxRUFUg.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-3618427186925753916</id><published>2008-11-24T11:15:00.001-08:00</published><updated>2008-11-24T11:17:18.448-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-24T11:17:18.448-08:00</app:edited><title>DNSSEC and Root Zone Signing</title><content type="html">I posted a "&lt;a href="http://www.thesecuritypractice.com/the_security_practice/2008/11/position-on-dnssec-and-root-zone-signing.html"&gt;Position on DNSSEC and Root Zone Signing" &lt;/a&gt;commentary over on the &lt;a href="http://www.thesecuritypractice.com/"&gt;Security Practice Blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-3618427186925753916?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/8jC4Dpa4Iqg" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=3618427186925753916" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/3618427186925753916?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/3618427186925753916?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/8jC4Dpa4Iqg/dnssec-and-root-zone-signing.html" title="DNSSEC and Root Zone Signing" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/11/dnssec-and-root-zone-signing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIEQnk_fCp7ImA9WxRXFUg.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-614000489307047732</id><published>2008-10-20T17:44:00.000-07:00</published><updated>2008-10-20T17:55:03.744-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-20T17:55:03.744-07:00</app:edited><title>Frustration with PGP-9.6 and networking</title><content type="html">So, I recently upgraded from PGp-8.1 to PGp-9.6 and I thought I'd share a bit of the frustration.&lt;br /&gt;&lt;br /&gt;I was running what I believe to be a fairly standard configuration.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Corporate desktop image&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Outlook 2003&lt;/li&gt;&lt;li&gt;Symantec AV&lt;/li&gt;&lt;li&gt;PGP-8.1&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I decided to upgrade my Outlook to 2007.  Turns out that PGP-8.1 isn't compatible with Outlook 2003, so I needed upgrade.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Install PGP-9.6&lt;/li&gt;&lt;li&gt;reboot twice per instructions&lt;/li&gt;&lt;li&gt;Find that my networking completely doesn't work.&lt;/li&gt;&lt;/ol&gt;Turns out that in order to get PGP-9.6 working with things like Symantec's AV that hook the network stack you need to back out PGP's POP/IMAP network stack hooking.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;regsvr32 /u PGPfsshl.dll&lt;/li&gt;&lt;li&gt;Run a Registry merge on c:\WINDOWS\system32\PGPlspRollback.reg&lt;/li&gt;&lt;li&gt;Reboot&lt;/li&gt;&lt;/ol&gt;Then of course, if you should happen to upgrade PGP to 9.9 because the update is out, you get to repeat all of those last few steps again.&lt;br /&gt;&lt;br /&gt;This process of course is made a lot easier if you happen to have another machine with network connectivity, otherwise you're kind of SOL.&lt;br /&gt;&lt;br /&gt;Just my bit of unfun for the afternoon.&lt;br /&gt;&lt;br /&gt;It is of course working now and reasonably well.  Kind of sucks that the install isn't a lot easier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-614000489307047732?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/dwSYnHsimv8" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=614000489307047732" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/614000489307047732?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/614000489307047732?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/dwSYnHsimv8/frustration-with-pgp-96-and-networking.html" title="Frustration with PGP-9.6 and networking" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/10/frustration-with-pgp-96-and-networking.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYHSXw-eip7ImA9WxdbFUU.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-2307733164596918471</id><published>2008-08-12T15:21:00.001-07:00</published><updated>2008-08-12T16:35:38.252-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-12T16:35:38.252-07:00</app:edited><title>New blog, and thoughts on Firefox 3 self-signed cert behavior</title><content type="html">We launched a new blog to share some thoughts about the security practices at my employer.&lt;br /&gt;&lt;br /&gt;The blog is here: &lt;a href="http://www.thesecuritypractice.com/"&gt;http://www.thesecuritypractice.com/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The basic introduction and purpose can be found here:&lt;a href="http://www.thesecuritypractice.com/the_security_practice/who-are-we.html"&gt; http://www.thesecuritypractice.com/the_security_practice/who-are-we.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And, a post about Firefox-3.0's handling of self-signed certificates can be found &lt;a href="http://www.thesecuritypractice.com/the_security_practice/2008/08/firefox-30-and.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This was in reaction to a piece published on Risks a bit ago - "&lt;a href="http://catless.ncl.ac.uk/Risks/25.23.html#subj13.1"&gt;Firefox 3's Step Backwards For Self-Signed Certificates&lt;/a&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-2307733164596918471?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/FCRWkOtbNjs" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=2307733164596918471" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/2307733164596918471?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/2307733164596918471?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/FCRWkOtbNjs/new-blog-and-thoughts-on-firefox-3-self.html" title="New blog, and thoughts on Firefox 3 self-signed cert behavior" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/08/new-blog-and-thoughts-on-firefox-3-self.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMHRno7fCp7ImA9WxdbFEo.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-8472535799204524983</id><published>2008-08-11T08:42:00.000-07:00</published><updated>2008-08-11T09:00:37.404-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-11T09:00:37.404-07:00</app:edited><title>Economist.com - Confessions of a Risk Manager</title><content type="html">I was reading the &lt;a href="http://www.economist.com/"&gt;Economist &lt;/a&gt;this week and came across an excellent article titled "&lt;a href="http://www.economist.com/finance/displaystory.cfm?story_id=11897037"&gt;Confessions of a Risk Manager&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;In the article a risk manager for a major financial institution talks about managing risks and how the risk department was viewed as an obstacle by the rest of the business.  I'll just quote a section here so you can see that governance roles, especially those involving trade-offs of risk vs. return are difficult not just in security.&lt;br /&gt;&lt;blockquote&gt;In their eyes, we were not earning money for the bank. Worse, we had the power to say no and therefore prevent business from being done. Traders saw us as obstructive and a hindrance to their ability to earn higher bonuses. They did not take kindly to this. Sometimes the relationship between the risk department and the business lines ended in arguments.   . . .&lt;br /&gt;&lt;br /&gt;Tactfully explaining why we said no was not our forte. Traders were often exasperated as much by how they were told as by what they were told.  &lt;p&gt;At the root of it all, however, was—and still is—a deeply ingrained flaw in the decision-making process. In contrast to the law, where two sides make an equal-and-opposite argument that is fairly judged, in banks there is always a bias towards one side of the argument. The business line was more focused on getting a transaction approved than on identifying the risks in what it was proposing. The risk factors were a small part of the presentation and always “mitigated”. This made it hard to discourage transactions. If a risk manager said no, he was immediately on a collision course with the business line. The risk thinking therefore leaned towards giving the benefit of the doubt to the risk-takers.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Collective common sense suffered as a result. Often in meetings, our gut reactions as risk managers were negative. But it was difficult to come up with hard-and-fast arguments for why you should decline a transaction, especially when you were sitting opposite a team that had worked for weeks on a proposal, which you had received an hour before the meeting started. In the end, with pressure for earnings and a calm market environment, we reluctantly agreed to marginal transactions.&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;Every time I read about decision making like this I refer back to an some excellent presentations I've come across by Reidar Bratvold.  He has done some excellent presentations on decision making in the face of risks/uncertainty.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="www.spe.no/stavanger/doc/Bratvold%20-%20SPE%20Dist%20Lecturer.pdf"&gt;Would You Know a Good decision if You Saw One?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.reidar-bratvold.com/Decision%20Making%20Under%20Uncertainty%20-%20BadenBaden.pdf"&gt;Decision Making Under Uncertainty&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-8472535799204524983?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/Kj1sPwUyNdU" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=8472535799204524983" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/8472535799204524983?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/8472535799204524983?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/Kj1sPwUyNdU/economistcom-confessions-of-risk.html" title="Economist.com - Confessions of a Risk Manager" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/08/economistcom-confessions-of-risk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUBSXo-fSp7ImA9WxdbFEo.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-6492453838821778016</id><published>2008-08-10T19:43:00.000-07:00</published><updated>2008-08-11T09:47:38.455-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-11T09:47:38.455-07:00</app:edited><title>[Offtopic] Beginning Hacker</title><content type="html">My daughter and I were playing a little online Dora computer game today.  As we got to one of the screens where you're supposed the click the letters Dora tells you to, Elise decided it would be more fun to experiment with the game to see what happens when you click the wrong letters instead.  She liked the reaction from the game as it repeatedly tried to tell her the "right" thing to do and she deliberately ignored it.&lt;br /&gt;&lt;br /&gt;Makes me pretty proud - don't do what the software expects you to do, break the rules instead and see what happens.&lt;br /&gt;&lt;br /&gt;Courtesy of my friends at &lt;a href="http://www.isecpartners.com/"&gt;iSec Partners&lt;/a&gt;, here she is dressed in her hacker garb.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_o5jlQKhaoXk/SJ-pHSGfo0I/AAAAAAAAANo/0p9-CwtB6ps/s1600-h/IMG_2290_2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_o5jlQKhaoXk/SJ-pHSGfo0I/AAAAAAAAANo/0p9-CwtB6ps/s400/IMG_2290_2.JPG" alt="" id="BLOGGER_PHOTO_ID_5233087234611061570" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-6492453838821778016?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/Sx-XScGpPKY" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=6492453838821778016" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6492453838821778016?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6492453838821778016?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/Sx-XScGpPKY/offtopic-begining-hacker.html" title="[Offtopic] Beginning Hacker" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_o5jlQKhaoXk/SJ-pHSGfo0I/AAAAAAAAANo/0p9-CwtB6ps/s72-c/IMG_2290_2.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/08/offtopic-begining-hacker.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMHRHo_fSp7ImA9WxdREU8.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-5076714739169204693</id><published>2008-05-29T22:09:00.000-07:00</published><updated>2008-05-29T22:13:55.445-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-29T22:13:55.445-07:00</app:edited><title>Offtopic:  0xe0030005</title><content type="html">&lt;span style="font-weight: bold;"&gt;Question&lt;/span&gt;:  What is the sound of a disk drive crashing?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer&lt;/span&gt;:  Not much. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Question&lt;/span&gt;: What does it do?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer&lt;/span&gt;: It spits out "disk0s2: 0xe0030005 (UNDEFINED) and then it just locks up and won't boot.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Question&lt;/span&gt;:  When/Why does it do this?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Answer&lt;/span&gt;: If its a Macbook whose hard drive just went bad.&lt;br /&gt;&lt;br /&gt;Delightfully Apple's Disk Utility still shows the drive as good, as does the S.M.A.R.T. monitoring.&lt;br /&gt;&lt;br /&gt;Alas - off to the store for a replacement drive. &lt;br /&gt;&lt;br /&gt;Ok, I can't let this post go by without making some sort of web security note....&lt;br /&gt;&lt;br /&gt;The above "dialog" would have been much better if your browser supported the draft HTML5 spec.  Then I'd have been able to use the &lt;dialog&gt; tags to make it easier to see the above as a dialog......  wow, I guess I do need that nonsensical tag after all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-5076714739169204693?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/kV2ZuW8d4zs" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=5076714739169204693" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/5076714739169204693?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/5076714739169204693?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/kV2ZuW8d4zs/offtopic-0xe0030005.html" title="Offtopic:  0xe0030005" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/05/offtopic-0xe0030005.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YFR3g9eCp7ImA9WxdSGUU.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-6380432307651565686</id><published>2008-05-27T22:45:00.000-07:00</published><updated>2008-05-28T08:38:36.660-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-28T08:38:36.660-07:00</app:edited><title>Notes from IEEE Web 2.0 Security and Privacy Workshop (W2SP2008)</title><content type="html">Thursday 5/22 I was at the &lt;a href="http://seclab.cs.rice.edu/w2sp/2008/"&gt;IEEE Web 2.0 Security and Privacy Workshop&lt;/a&gt;.   I figured I'd learn a few things, and also make sure that no new exploits were announced against my employer, and/or make sure we weren't the only examples people gave of problems.&lt;br /&gt;&lt;br /&gt;I was pretty successful on goal #1, not 100% successful on goal #2.&lt;br /&gt;&lt;br /&gt;This post is mostly brain dump of notes about the talks followed by a few things of architectural interest that I think were discussed enough at the workshop.  A quick preview - the first half of the conference was spent talking about general security holes in Web-1.0 that we still haven't solved technically/architecturally/culturally.  With that in mind its hard to see how we're going to have much success with Web-2.0 security.&lt;br /&gt;&lt;br /&gt;I'll start by saying though that I was ever so slightly disappointed with the makeup of the attendees.  Conferences and workshops held by the IEEE and ACM do generally tend towards the seriously geeky and academic side of things.  You're much more likely to find papers that are suitable for journals with plenty of academic references, peer review, CS technical terms, formulas, etc.  At the same time though workshops do tend towards the less academic and more practical side.  It was disappointing therefore that, though the workshop focused a lot of time on things like secure mashups, social networks, and Web-2.0 security models, to the best of my knowledge very few of the players in this space were present.  I didn't meet anyone from any of the really interesting mashup companies and none of the social networks were there (minus google, who was well represented).  Perhaps in the future people attending and organizing workshops like these can actually get the folks at the relevant companies interested, specifically invite them, etc.&lt;br /&gt;&lt;br /&gt;Now, onto the papers/presentations themselves:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Quick Note:&lt;/span&gt; In attending the conference each author presented slides and talked about their paper.  I only read a few of the papers so far, so don't take the commentary below too seriously, since I'm sure I missed some things that were covered more fully in the papers than the presentations.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Session 1: Authentication and Authorization &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Daniel Sandler and Dan S. Wallach. &lt;span style="text-decoration: underline;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;a href="http://www.blogger.com/papers/s1p2.pdf"&gt;&amp;lt;input type="password"&amp;gt; must die!&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;Daniel presented some good idea on how to move password authentication into the browser chrome to improve our defenses against javascript malware such as javascript keyloggers, etc.&lt;br /&gt;&lt;br /&gt;While the work Daniel did was quite cool in that it doesn't require any protocol modifications, to be truly useful in implementing authentication inside browser chrome you probably need involvement from the site itself to hint, tweak, etc.  Once you start doing that though, you start looking at doing stuff like cardspaces to actually get to a better architectural solution.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ben Adida&lt;/span&gt;. &lt;i&gt;&lt;a href="http://seclab.cs.rice.edu/w2sp/2008/papers/s1p1.pdf"&gt;Web Authentication by Email Address&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Ben focused on usability concerns in OpenID and the idea that email addresses (or things that look like email addresses) are much better identifiers than URLs.  He sketched out how to modify OpenID to use email addresses or lookalikes for authentication rather than URLs.  Some of his proposals hinge on using DNS lookups for a domain to find the authentication server much like we use MX records for email.  While potentially risky, DNSSEC could theoretically be used to mitigate some of the problems.&lt;br /&gt;&lt;br /&gt;I must say I haven't kept up with OpenID as much as I'd like to, and so I'm 99% sure lots of the nuance of Ben's proposal was lost on me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt; Session 2: Browser Security Models and Isolation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Collin Jackson and Adam Barth&lt;/span&gt;. &lt;i&gt;&lt;a href="http://seclab.cs.rice.edu/w2sp/2008/papers/s2p1.pdf"&gt;Beware of Finer-Grained Origins&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Collin Jackson presented some work he and Adam have done on how the browser security model, namely the same-origin policy, isn't nearly granular enough to handle most web applications and sites that host them.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;http://cs.stanford.edu/~abarth&lt;br /&gt;http://cs.stanford.edu/~cjackson&lt;br /&gt;&lt;br /&gt;both have the same origin from the browsers point of view, but don't necessarily have the same security policy per use intent.  Because the web browser can't really distinguish between them, we don't have a clean way of separating the security policies here.&lt;br /&gt;&lt;br /&gt;Collin went on to show a multitude of problems in the same origin policy between sites, and problems in the upgrade/downgrade of security indicators in a browser.  I won't rehash all of his results but suffice it to say we desperately need things like ForceHTTPS embeded in browsers in the near future to prevent some of these problems.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Kapil Singh and Wenke Lee&lt;/span&gt;. &lt;i&gt;&lt;a href="http://seclab.cs.rice.edu/w2sp/2008/papers/s2p2.pdf"&gt;On the Design of a Web Browser: Lessons learned from Operating Systems&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;Kapil presented some research his team has been doing on modeling web browsers more like operating systems.  You might have seen some related work recently as part of the &lt;a href="http://www.engr.uiuc.edu/news/?xId=074108160700"&gt;OP Browser project&lt;/a&gt;.   The idea is that the internal implementation of most browsers is pretty dicey from a security perspective.  There is no clean separation between policy and mechanism.  All code operates at the same privilege level. Plugins cannot be constrained in what they can do, etc.&lt;br /&gt;&lt;br /&gt;I haven't seen any analysis yet comparing what MS did with IE7 on Vista in protected mode as compared to OP or Kapil's work.  It is pretty clear that MS didn't fully segment IE7, but I wonder how close they got to ideal on the sandboxing side of things.&lt;br /&gt;&lt;br /&gt;That said, I think our biggest problem in browser security isn't the implementation and internal segmentation.  Our biggest problem is that we don't have any idea what security policies we really want to implement.  Sure, having a flexible architecture under the hood makes it easier to implement flexible and finer-grained policies, but unless we have some idea what those are, perhaps we're putting the cart before the horse in terms of robust internal implementation.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Mike Ter Louw, Prithvi Bisht and V.N. Venkatakrishnan.&lt;/span&gt; &lt;i&gt;&lt;a href="http://seclab.cs.rice.edu/w2sp/2008/papers/s2p3.pdf"&gt;Analysis of Hypertext Markup Isolation Techniques for XSS Prevention&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;My favorite presentation of the day was this one by Mike Ter Louw.  Mike talked all about the multiple ideas circulating out there related to content restrictions.  He showed the different failure modes for several of the proposals, showed how some of them can be rescued, and pointed towards areas that need more research.&lt;br /&gt;&lt;br /&gt;The idea of content restrictions and server-indicated security policy that clients interpret and enforce is a really hot idea right now, and I'm hoping to catch up with Mike in the not too distant future.&lt;br /&gt;&lt;br /&gt;Mike - if you see this, drop me a note :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt; Session 3: Social Computing Privacy Issues &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Adrienne Felt and David Evans&lt;/span&gt;. &lt;i&gt;&lt;a href="http://seclab.cs.rice.edu/w2sp/2008/papers/s3p1.pdf"&gt;Privacy Protection for Social Networking Platform&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;Adrienne presented some work she's done on weaknesses in the security model of social networks and paltforms such as Facebook.  She analyzed a bunch of Facebook applications to understand whether they really ought to be granted all of the rights over user data that they are.  She proposed some mechanisms for limiting what types of applications get access to what data by enhancing the FBML tags to allow an application to get more data without API access.  She also showed how you can solve some data sharing rules with just FBML and a few permissions extensions without resorting to full API access.&lt;br /&gt;&lt;br /&gt;What Adrienne didn't come out and say is that in some contexts things like vetting are actually important.  Most people in the social networking space and Web-2.0 space don't want to look at things like vetting, legal relationships, etc. as a model for achieving security.  While a preventative model looks great on paper, solving some of the data safety/privacy concerns can really only be handled through contracts, vetting, etc.  No amount of hoping developers will do the right thing and develop least-privilege applications will solve this problem.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Monica Chew, Dirk Balfanz, and Ben Laurie.&lt;/span&gt; &lt;i&gt;&lt;a href="http://seclab.cs.rice.edu/w2sp/2008/papers/s3p2.pdf"&gt;(Under)mining Privacy in Social Networks&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;Monica presented some research on how we can inadvertently leak data from social networks by a multitude of means.  While it was an interesting talk on how you can aggregate data from multiple locations to pin down more details than you ought to, since I'm not a heavy user of social networks I found myself less than interested in the general problem.  If you're going to post large amounts of personal data online in multiple online sources, you're going to have people aggregating them together.  There is only so much we can do to protect ourselves against that sort of aggregation.&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Session 4: Mashups and Privacy &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;D. K. Smetters.&lt;/span&gt; &lt;i&gt;&lt;a href="http://seclab.cs.rice.edu/w2sp/2008/papers/s4p1.pdf"&gt;Building Secure Mashups&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;D.K.'s talk was quite short on technical details and yet was one of the better talks of the day.  Whereas I had a few complaints about Kapil's talk earlier in the day being a solution looking for a problem, D.K.'s talk was about the problem itself - namely - how do we actually define the security policy we're trying to achieve in the mashup space, what sorts of general rules ought to govern application behavior, security properties, etc.&lt;br /&gt;&lt;br /&gt;This was the first talk of the day to really talk about user expectations for security, what we should generally understand to be user intent, and how to actually try and implement that in a mashup application.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Tyler Close&lt;/span&gt;. &lt;i&gt;&lt;a href="http://seclab.cs.rice.edu/w2sp/2008/papers/s4p2.pdf"&gt;Web-key: Mashing with Permission&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Tyler's talk may have been the most entertaining of the day, if only because of his obvious frustration with what the web has become.  Tyler's main claim was that we ought to  be using capability URLs to handle our authentication and authorization concerns.  URLs that encode both authentication and authorization data bring us back to the original intent of the web, where the link is everything.&lt;/p&gt;&lt;p&gt;It was nice to see someone railing against a bit of what the web has become, but it almost felt like an original internet user lamenting the end of the end-to-end internet.  A decent architectural argument, and yet one that isn't likely to yield a lot of converts.  I don't think I understood a few of Tyler's points about how to prevent these URLs from leaking out and/or how to revoke access should they happen to.  There are a multitude of user acceptance, behavior, and expectation questions to be answered.  It was a nice twist though on how to perhaps make access-controlled content more in keeping with the spirit of the web.&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Mihai Christodorescu&lt;/span&gt;. &lt;i&gt;&lt;a href="http://seclab.cs.rice.edu/w2sp/2008/papers/s4p3.pdf"&gt;Private Use of Untrusted Web Servers via Opportunistic Encryption&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Mihai's presentation was about how to take advantage of networked services/web-applications while proividing them with only opaque data references created with cryptography.  His main example was about how to use Google's Calendar product without ever sending them your real data, and sending them only client-side encrypted data instead.&lt;/p&gt;&lt;p&gt;While it seems like a nice idea, and while parts of his solution were technically elegant, I think again it was a solution looking for a problem.  If you're so concerned about a networked service having your data that you're willing to reverse engineer the service to make it store your individual data elements encrypted, then perhaps a networked service isn't the one for you.  TYhe architectural challenges in achieving what he was able to with Google's calendar are nearly impossible with a more complicated service.  And, in order to make it work you have to give up many of the feature's you'd really like from a service - full text searching, etc.&lt;/p&gt;&lt;p&gt;I'm guessing there are a few places where's Mihai's ideas are feasible, but its hard for me to see the value prop in building what he proposed.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Some Final Thoughts:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We haven't come close to solving the security problems in a Web-1.0 world&lt;/li&gt;&lt;li&gt;We don't know what the security policies really ought to look like for the web, consequently we don't know what the architecture and implementation look like either.&lt;/li&gt;&lt;li&gt;Browsers are lacking fundamental architecture and policy around security.&lt;/li&gt;&lt;li&gt;Web-2.0 only makes things worse&lt;/li&gt;&lt;/ul&gt;Apart from all of the unsolved security challenges, the biggest point that struck me from the workshop was the general belief (or I assume belief, I didn't challenge people on it) that mashups are here to stay, and that we're just going to have to back into a security model for them.&lt;br /&gt;&lt;br /&gt;I remain unconvinced that a client-side application mashup between datasets is the only way to build new and  innovative applications, and that if there were any liability concerns or even contracts that held some of these companies/services even semi-accountable, perhaps we'd have a very different architecture than we're seeing as part of the mashup space.&lt;br /&gt;&lt;br /&gt;We're spending time and money working on specs like XDR, HTML5-access-control, and we still haven't solved some of the fundamental security problems of the web.  I didn't see anything at this workshop to dissuade me from that perception either.&lt;br /&gt;&lt;br /&gt;Its like the old saying goes - "If it ain't fixed - don't break it more".  Well, ok, that isn't an old saying, but maybe a few of the people working on mashups and social networks could actually operate with that as their motto we'd make some progress on all of this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-6380432307651565686?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/P4ahg5QQQJk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=6380432307651565686" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6380432307651565686?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/6380432307651565686?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/P4ahg5QQQJk/notes-from-ieee-web-20-security-and.html" title="Notes from IEEE Web 2.0 Security and Privacy Workshop (W2SP2008)" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/05/notes-from-ieee-web-20-security-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cEQnwzfSp7ImA9WxdTFkk.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-1333329541775017922</id><published>2008-05-12T20:18:00.000-07:00</published><updated>2008-05-12T20:23:23.285-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-12T20:23:23.285-07:00</app:edited><title>A Small Rant About Conference/Journal Papers and Timestamps</title><content type="html">Why is it that most/all papers published in Journals and/or as part of conferences never have a date/timetamp attached?&lt;br /&gt;&lt;br /&gt;Its rather a bit frustrating to read a paper you've been sent, or had a link for, only to have no idea when/where it was published...&lt;br /&gt;&lt;br /&gt;Just Friday I was pointed at an article by Dan Geer -&lt;a href="http://www.acmqueue.org/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=436"&gt; http://www.acmqueue.org/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=436 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Awesome article, but you won't see any real date information on it.  January/February Edition on the ACM Queue.  Which year?  Hmm, can't tell can you, at least not from that page. Hell, the date at the top is the date you loaded the page, not the date of the article.  More than a little frustrating.&lt;br /&gt;&lt;br /&gt;Ok, rant mode off.  The next post will probably be about the article above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-1333329541775017922?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/028IYvfY3cI" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=1333329541775017922" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/1333329541775017922?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/1333329541775017922?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/028IYvfY3cI/small-rant-about-conferencejournal.html" title="A Small Rant About Conference/Journal Papers and Timestamps" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/05/small-rant-about-conferencejournal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cARns5eyp7ImA9WxdTE00.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-2611193921903739303</id><published>2008-05-08T20:05:00.000-07:00</published><updated>2008-05-08T21:57:27.523-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-08T21:57:27.523-07:00</app:edited><title>More on Application Security Metrics</title><content type="html">Eric Bidstrup of Microsoft has a blog entry up titled "&lt;a href="http://blogs.msdn.com/sdl/archive/2008/05/08/how-secure-is-secure.aspx"&gt;How Secure is Secure&lt;/a&gt;?"  In it he makes a number of points related, essentially, to measuring the security of software and what the appropriate metrics might be.&lt;br /&gt;&lt;br /&gt;I'd been asking the Microsoft guys for a while whether they had any decent metrics to break down the difference between:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Architectural/Design Defects&lt;/li&gt;&lt;li&gt;Implementation Defects&lt;/li&gt;&lt;/ul&gt;I hadn't gotten good answers up to this point because measuring those internally during the development process is a constantly moving target.  If your testing methodology is always changing, then its hard to say whether you're seeing more or fewer defects of a given type than before, especially as a percentage.  That is, if you weren't catching a certain class of issue with the previous version of a static analysis tool but now you are, its hard to correlate the results to previous versions of the software.&lt;br /&gt;&lt;br /&gt;Eric says:&lt;br /&gt;&lt;blockquote&gt;Microsoft has been releasing security bulletins since 1999. Based on some informal analysis that members of our organization have done, we believe well over 50% of *all* security bulletins have resulted from implementation vulnerabilities and by some estimates as high as 70-80%. (Some cases are questionable and we debate if they are truly “implementation issues” vs. “design issues” – hence this metric isn’t precise, but still useful). I have also heard similar ratios described in casual discussions with other software developers.&lt;/blockquote&gt;In general I think you're likely to find this trend across the board.  Part of the reason though is that in general implementation defects are easier to find and exploit.  Exploiting input validation failures that result in buffer overflows is a lot easier than complicated business logic attacks, multi-step attacks against distributed systems, etc.&lt;br /&gt;&lt;br /&gt;We haven't answered whether there are more Architectural/Design defects or Implementation defects, but from an exploitability standpoint, its fairly clear that implementation defects are probably the first issues we want to fix.&lt;br /&gt;&lt;br /&gt;At the same time, we do need to balance that against the damage that can be done by an architectural flaw, and just how difficult they can be to fix, especially in deployed software.  Take as an example Lanman authentication.  Even if implemented without defects, the security design isn't nearly good enough to resist exploit.  Completely removing Lanman authentication from Windows and getting everyone switched over to it has taken an extremely long time in most businesses because of legacy deployment, etc.  So, as much as implementation defects are the ones generally exploited and that need patching, architectural defects can in some cases cause a lot more damage and be harder to address/remediate once discovered/exploited.&lt;br /&gt;&lt;br /&gt;Another defect to throw into this category would be something like WEP.  Standard WEP implementations aren't defect ridden.  They don't suffer from buffer overflows, race conditions, etc.  They suffer from fundamental design defects that can't be corrected without a fundamental rewrite.  The number of attacks resulting from WEP probably isn't known.  Even throwing out high profile cases such as TJ Maxx and Home Depot, I'm guessing the damage done is substantial.&lt;br /&gt;&lt;br /&gt;So far then things aren't looking good for using implementation defects as a measuring stick of how secure a piece of software is. Especially for widely deployed products that have a long lifetime and complicated architecture.&lt;br /&gt;&lt;br /&gt;Though I suppose I can come up counter-examples as well.  SQL-Slammer after all was a worm that exploited a buffer overflow in MS-SQL Server via a function that was open by default to the world.  It was one of the biggest worms ever (if not the biggest, I stopped paying attention years ago) and  it exploited an implementation defect, though one that was exploitable because it was part of the unauthenticated attack surface of the application - a design defect.&lt;br /&gt;&lt;br /&gt;All this really proves is that determining which of these types of defects to measure, prioritize, and fix is a tricky business and as always, you mileage may vary.&lt;br /&gt;&lt;br /&gt;As Eric clearly points out the threat landscape isn't static either.  So, what you think is a priority today might change tomorrow.  And, its different for different types of software.  The appropriate methodology for assessing and prioritizing defects for a desktop application is substantially different than that for a centrally hosted web application.  Differences related to exploitability, time-to-fix, etc.&lt;br /&gt;&lt;br /&gt;More on that in a post to follow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-2611193921903739303?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/kGXRIUICNV0" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=2611193921903739303" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/2611193921903739303?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/2611193921903739303?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/kGXRIUICNV0/more-on-application-security-metrics.html" title="More on Application Security Metrics" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/05/more-on-application-security-metrics.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4MRXc_eyp7ImA9WxZbFk8.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-8022408536863652409</id><published>2008-04-19T09:52:00.000-07:00</published><updated>2008-04-19T10:59:44.943-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-19T10:59:44.943-07:00</app:edited><title>Metrics and Audience</title><content type="html">There has been &lt;a href="http://erratasec.blogspot.com/2008/04/i-have-it-on-good-authority-below-is.html"&gt;some&lt;/a&gt; &lt;a href="http://www.davidlitchfield.com/blog/archives/00000038.htm"&gt;chatter&lt;/a&gt; recently about a post &lt;a href="http://spiresecurity.typepad.com/spire_security_viewpoint/2008/04/microsofts-sdl.html"&gt;Pete Lindstrom&lt;/a&gt; made about Microsoft's SDL and their publicly disclosed metrics.  I chimed in on Pete's blog as well as on the Microsoft &lt;a href="http://blogs.msdn.com/sdl/archive/2008/04/18/oh-no-security-metrics.aspx"&gt;SDL blog&lt;/a&gt;, here is a little more.&lt;br /&gt;&lt;br /&gt;The fundamental confusion here is about the audience for the vulnerability numbers, and metrics in general.&lt;br /&gt;&lt;br /&gt;There are several audiences here:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Microsoft's customers, competitors, and the public at large.&lt;/li&gt;&lt;li&gt;Security folks, especially software security folks that want to improve the quality of their software.&lt;/li&gt;&lt;li&gt;People who want more metrics about all things generally, the costs of security, etc.&lt;/li&gt;&lt;/ol&gt;Microsoft's vulnerabilities in shipped software metric is really only targeted to audience #1.  Like it or not, what customers care about, as Michael Howard rightly points out, is how likely they are to get attacked/hacked, and how many patches they have to deploy.  Microsoft for its part also cares about #1 for the reasons above, and the fact that releasing patches is extraordinarily expensive.&lt;br /&gt;&lt;br /&gt;Security folks, especially those working on their own software security initiatives find the vulnerabilities metric mostly useless.  It gives us no insight into *how* Microsoft has achieved the reduction in vulnerabilities.  What we'd all love to know is how much each element of the SDL contributes to reducing vulnerabilities.  A percentage break out on how effective each element is, Training, Threat Modeling, Testing, at reducing vulnerability counts, especially as broken out by design/architecture defects and implementation defects.&lt;br /&gt;&lt;br /&gt;At the same time, I'm willing to acknowledge that developing these metrics is a full time job for multiple people.  And, tracking the metrics over time is difficult, since its hard to normalize the defects between products and across time.  New attacks are always surfacing, so how do you track the impact of new attack types across time.  How do you track the impact of better code scanning/static-analysis tools over time.  As the tool improves you'll find more defects when you run it, but that will skew your metrics somewhat.&lt;br /&gt;&lt;br /&gt;The fundamentally unanswered question though is how do we actually measure the security of software.  From a general customer standpoint what you care about is how likely you are to get attacked and compromised for one piece of software vs. another, what that software is going to cost to buy and run, etc.&lt;br /&gt;&lt;br /&gt;For the security community what we're looking for is  a metric that more closely tracks the "real" security properties of a piece of software.  How hard it is for the expert to attack, how it does in real world deployments, etc.&lt;br /&gt;&lt;br /&gt;Unfortunately no one metric is going to capture this.  As I've previously mentioned the QoP workshop is a great place to go if you're looking for answers to the "how do we measure software security" question.  But if what you want to know is how much is it generally going to cost me to run/implement a piece of software, looking at things like number of required patches and their frequency/severity, then perhaps Microsoft's vulnerability metric is for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-8022408536863652409?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/q7F0ZPEtky8" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=8022408536863652409" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/8022408536863652409?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/8022408536863652409?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/q7F0ZPEtky8/metrics-and-audience.html" title="Metrics and Audience" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/04/metrics-and-audience.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAARHg5cCp7ImA9WxZbEEs.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-4886980458145817277</id><published>2008-04-12T21:58:00.001-07:00</published><updated>2008-04-12T21:59:05.628-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-12T21:59:05.628-07:00</app:edited><title>My Favorite RSA Sessions</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I spent the whole week up at the RSA conference including the Monday before attending a few pre-conference activities.  If you didn't get to go but know someone who did, I thought I'd recommend a few of the sessions I found most informative.&lt;span id="ctl07_leftContent"&gt;  I attended more sessions than the ones below but the talks below seemed to resonate the most for me.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;DEV-201 Implementing a Secure SDLC: From Principle to Practice&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This session was a fantastic overview of the SDL practices that EMC has been implementing for the last 2 years.  A pretty good overview of what it takes to rollout the SDL against a bunch of products. &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span id="ctl07_leftContent"&gt;&lt;br /&gt;&lt;br /&gt;DEV-301 Effective Integration of Fuzzing into Development Life Cycle&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A really good overview of what fuzzing is, how to think about the different types of fuzzing, and what types of applications it works best on.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span id="ctl07_leftContent"&gt;&lt;br /&gt;&lt;br /&gt;AUTH-403 Knowledge-Based Authentication (KBA) in Action at Bank of New York Mellon&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;An excellent overview of what BNY-Mellon went through in implementing KBA for part of their authentication process. They deployed Verid to help customers sign up to the site.  If you're not familiar with KBA, think about how the credit reporting agencies authenticate you for getting your credit report.  They ask you a bunch of questions about your bills, payments, etc. that they figure only you will know.  A KBA system such as Verid can do the same but pulls data from a lot more sources so it can ask things about former addresses, phone numbers, employers, etc.  BNY-Mellon has put together a pretty good program, they are collecting great metrics about the success of the program, and the presenters were also excellent.  Probably the best session I saw all around, even though it was one of the least technical.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span id="ctl07_leftContent"&gt;&lt;br /&gt;&lt;br /&gt;GOV-401 Will Your Web Research Land You in Jail?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Sara Peters, the editor of the 2007 CSI report on web vulnerability research and the law gave an overview presentation of the report.  On the one hand I was a little disappointed because this material was actually relatively dated because RSA makes people submit their papers/presentations so early.  On the other hand it was nice to revisit this topic since it was this report that prompted the vulnerability disclosure policy I helped author last year.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-4886980458145817277?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/mkUYlOn3H5g" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=4886980458145817277" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/4886980458145817277?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/4886980458145817277?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/mkUYlOn3H5g/my-favorite-rsa-sessions.html" title="My Favorite RSA Sessions" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/04/my-favorite-rsa-sessions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MFR3czfCp7ImA9WxZVFEw.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-4001590514392146521</id><published>2008-03-24T21:04:00.000-07:00</published><updated>2008-03-24T21:30:16.984-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-24T21:30:16.984-07:00</app:edited><title>Measuring the Wrong Things?</title><content type="html">I'm not sure why I'm always finding interesting articles in NPR about medicine that seem to resonate so much in relation to software security.  Nonetheless that seems to be how things go, so here comes another one.&lt;br /&gt;&lt;br /&gt;NPR ran a story the other day titled "&lt;a href="http://www.npr.org/templates/story/story.php?storyId=88650768&amp;amp;ft=1&amp;amp;f=100"&gt;Doctors' 'Treat the Numbers' Approach Challenged&lt;/a&gt;".  The main idea in the story is that doctors have been treating patients and using the results of certain tests as the metrics by which they judge health.  They treat a patient with drugs, therapies, etc. to get to the diagnostic numbers they want, but now we're finding out that perhaps the numbers are not necessarily representing what we'd like them to.&lt;br /&gt;&lt;br /&gt;The example from the article was:&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;Doctors call it "treating the numbers" — trying to get a patient's test results to a certain target, which they assume will treat — or prevent — disease. But earlier this year, a study on a widely used cholesterol drug challenged that assumption. &lt;/p&gt;&lt;p&gt;Vytorin, a combination of two cholesterol-lowering agents, certainly lowers cholesterol. But patients taking it didn't have any less plaque in a major artery than those taking a less-potent drug.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I'm assuming that less plaque generally does translate to fewer adverse events, but the article doesn't cover this. Helpfully, in medicine we generally have a pretty clear definition of an adverse event, and we're not dealing with intelligent active threats. Active threats (virus, bacteria, fungus, parasite), but not intelligent...  We don't try to design cholesterol treatments to fend off a malicious food company that has designed a new more dangerous form of cholesterol that our drug can't fight :)&lt;/p&gt;&lt;p&gt;Knowing what to measure in security is hard though.  We've covered a little of this before &lt;a href="http://securityretentive.blogspot.com/2007/09/software-security-metrics-and.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;If you're looking for more formal treatments of security metrics - check out the &lt;a href="http://www.dit.unitn.it/%7Eqop/"&gt;Quality of Protection (QoP) workshop&lt;/a&gt; held as part of the ACM CCS Conference.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;"The goal of the QoP Workshop is to help security research progress towards a notion of Quality of Protection in Security comparable to the notion of Quality of Service in Networking, Software Reliability, or measures in Empirical Software Engineering."&lt;/p&gt;&lt;p&gt;Over the next few posts I'll take a few of the papers from the workshop and discuss a bit of their results. If you're interested in the TOC for the workshop, you can find it &lt;a href="http://portal.acm.org/toc.cfm?id=1314257&amp;amp;type=proceeding&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=7686630&amp;amp;CFTOKEN=66937087"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-4001590514392146521?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/l94ANvn139k" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=4001590514392146521" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/4001590514392146521?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/4001590514392146521?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/l94ANvn139k/measuring-wrong-things.html" title="Measuring the Wrong Things?" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/03/measuring-wrong-things.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcCSHgzfSp7ImA9WxZWGEQ.&quot;"><id>tag:blogger.com,1999:blog-28956680.post-7587005067032278972</id><published>2008-03-18T19:48:00.000-07:00</published><updated>2008-03-18T20:07:49.685-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-18T20:07:49.685-07:00</app:edited><title>Banning function calls, assurance, and retrofitting</title><content type="html">I've been working on some C/C++ secure coding standards lately, and trying to mesh those up with the results from the static analyzer I'm using.  As it turns out there is a fine line to be drawn between what you consider best practices, what a static analyzer can find, how much context the static analyzer has, and how much manual review you really want to put up with.&lt;br /&gt;&lt;br /&gt;Let me give a specific example.&lt;br /&gt;&lt;br /&gt;Coverity's Prevent analyzer has a number of built-in "unsafe" functions defined.  The list includes the standard cast such as scanf, strcpy, strcat, etc.  On top of that though they add some things that didn't make Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/library/bb288454.aspx"&gt;list&lt;/a&gt;; for example, rand().&lt;br /&gt;&lt;br /&gt;I don't technically have a problem with including rand() in the list of things to be extremely careful about, but whereas it is nearly impossible to guarantee that someone has used strcpy() right, rand() actually has some pretty legitimate uses.&lt;br /&gt;&lt;br /&gt;Consider the case where we want to do a randomized delay in processing something, or where we wish to randomly assign work to different people when it comes in, or randomly pull an item off a work queue for a customer service agent.  None of these cases requires a cryptographically sound random number generator.  For the most part, using rand() is a perfectly reasonable choice in this sort of situation.&lt;br /&gt;&lt;br /&gt;When you decide that you want to ban certain function calls, or call them out in findings in a static analyzer, you're treading a fine line with your developers and the people you're going to ask to go and clean up the old code you have around.  You can choose to go several routes.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;File defects against the old code for any use of a banned function, without investigating the specific use&lt;/li&gt;&lt;li&gt;File defects against old code only after verifying that in the context you have a potential vulnerability&lt;/li&gt;&lt;li&gt;Get a dedicated team together to just go and clean up old code&lt;/li&gt;&lt;/ul&gt;Each of these approaches has its plusses and minuses.&lt;br /&gt;&lt;br /&gt;If you choose to file defects against your developers for code that is years old and wasn't necessarily written by them without verifying the vulnerabilities, you run the risk of them not taking the secure coding rules seriously.  Many of the items they find are going to be false positives from a currently-exploitable perspective, and they are going to be cranky with you.&lt;br /&gt;&lt;br /&gt;If you choose to go through the validate each and every defect and the types of defect are pervasive, you're going to spend almost as much verifying the defect as fixing it.  Especially if you're going through and simply replacing strcpy() with strlcpy() for example.   For both this and the case above though, developers are going to be going through the code, and with the proper training/awareness, they might actually learn more about some of the old code, or at least start to have a better sense of some real security issues in the code.&lt;br /&gt;&lt;br /&gt;If you choose to get a dedicated team together to fix the old code, you're likely to save money in the short run.  A dedicated team is going to get used to fixing the coding defects of this type, and you're going to make a lot shorter job of it.  The downside being that the regular developers aren't getting some of the code review experience you'd really like.&lt;br /&gt;&lt;br /&gt;To top things off, if you go route #2, wherein you only fix things that are currently exploitable, you run the risk of the code being used in a different way elsewhere and causing problems down the road.&lt;br /&gt;&lt;br /&gt;Back to my rand() example.  In every case where I've found rand() used it hasn't been in a security critical context.  Do I want to leave these instances of rand() in my code as examples that others might follow, next time in a security sensitive context?  Or, do I want to take a relatively dogmatic approach to this and all other banned/"unsafe" functions and eliminate them entirely from my codebase?&lt;br /&gt;&lt;br /&gt;I'm leaning towards some sort of middle ground.  If I can find the time for a dedicated team to go through the code to clean up old issues, then I'm likely to remove all instances of things that could be unsafe, just so we don't leave things around that could be copied into an truly unsafe context.&lt;br /&gt;&lt;br /&gt;Its a tricky balancing act to determine how dogmatic you want to be about fixing up the use of certain "unsafe" functions.  Getting it wrong either way can have long term consequences for your secure development program.  As always, the right answer depends on a lot of factors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28956680-7587005067032278972?l=securityretentive.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SecurityRetentive/~4/4ZBdRIt7gDk" height="1" width="1"/&gt;</content><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=28956680&amp;postID=7587005067032278972" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/7587005067032278972?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/28956680/posts/default/7587005067032278972?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SecurityRetentive/~3/4ZBdRIt7gDk/banning-function-calls-assurance-and.html" title="Banning function calls, assurance, and retrofitting" /><author><name>Security Retentive</name><uri>http://www.blogger.com/profile/07177656204885181542</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01250582903949246686" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://securityretentive.blogspot.com/2008/03/banning-function-calls-assurance-and.html</feedburner:origLink></entry></feed>
