<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5240359826706545510</id><updated>2012-04-23T08:01:02.732-07:00</updated><category term='Airport Security'/><category term='deutsche Gesellschaft'/><category term='TV'/><category term='Gesellschaft'/><category term='Politik'/><category term='Story of my Life'/><category term='Fun.. really? No.'/><category term='Geek Ware'/><category term='SUSE'/><category term='SAD'/><category term='Utils'/><category term='FWIBugs'/><category term='Kultur'/><category term='Book'/><category term='Security'/><category term='Future'/><category term='Fun'/><category term='DIMVA'/><category term='debado'/><title type='text'>Tom's Random Thoughts</title><subtitle type='html'>Disclaimer
The views expressed on this website/weblog are mine alone and do not necessarily reflect the views of my employer.&lt;br&gt;
Note to journalists and other readers: Unless you receive express written permission to the contrary from the author of the content of this blog/website, reproduction or quotation of any statements appearing on this blog/website is not authorized.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/-/Security'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/search/label/Security'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/-/Security/-/Security?start-index=26&amp;max-results=25'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>78</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-3289137103999606727</id><published>2011-09-22T00:06:00.000-07:00</published><updated>2011-09-22T00:09:14.133-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SUSE'/><title type='text'>4th German OWASP Security Day</title><content type='html'>My submission to the &lt;a href="https://www.owasp.org/index.php/German_OWASP_Day_2011"&gt;4th German OWASP Security Day&lt;/a&gt; was accepted. Now let's see if we can accept their OWASP license that needs to be signed...&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-3289137103999606727?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/3289137103999606727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=3289137103999606727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/3289137103999606727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/3289137103999606727'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/09/4th-german-owasp-security-day.html' title='4th German OWASP Security Day'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-6192655919467253952</id><published>2011-09-21T02:14:00.000-07:00</published><updated>2011-09-21T02:25:20.028-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SUSE'/><title type='text'>I am leaving the SUSE Security Team...</title><content type='html'>After 12 years I am leaving the SUSE Security-Team... just to support them! :-)&lt;br /&gt;&lt;br /&gt;Like a satellite I was spun-off from mother earth. Flying around the SUSE Security Team as project-manager to take care of our products before they get released working hand-in-hand with Marcus and his team that (mostly but not exclusively) takes care of the security of already released products.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-6192655919467253952?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/6192655919467253952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=6192655919467253952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/6192655919467253952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/6192655919467253952'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/09/i-am-leaving-suse-security-team.html' title='I am leaving the SUSE Security Team...'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-3790794325190251494</id><published>2011-07-26T02:10:00.000-07:00</published><updated>2011-07-26T04:08:50.772-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><title type='text'>Scanny will replace the ror-sec-scanner</title><content type='html'>David and Flavio created a new &lt;a href="https://github.com/openSUSE/scanny"&gt;github project&lt;/a&gt; to replace my ror-sec-scanner. "&lt;a href="https://github.com/openSUSE/scanny"&gt;Scanny&lt;/a&gt;" doesn't uses regex but the AST and emits fewer false positives. So lets start adding rules/checks to it to become more powerful.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-3790794325190251494?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/3790794325190251494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=3790794325190251494' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/3790794325190251494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/3790794325190251494'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/07/scanny-will-replace-ror-sec-scanner.html' title='Scanny will replace the ror-sec-scanner'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-8319060620358119756</id><published>2011-06-17T02:38:00.000-07:00</published><updated>2011-06-21T00:38:04.804-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><category scheme='http://www.blogger.com/atom/ns#' term='SUSE'/><title type='text'>SUSE Manager Security Update</title><content type='html'>Last Friday we released a security update for SUSE Manager. It eliminates four vulnerabilities which I will describe in detail here:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;CSRF (CVE-2009-4139): This is the most dangerous issue fixed by this update. It was found during a penetration-test executed by me before we released the SUSE Manager. You may wonder why we released the fix after the "gold master" (GM) and why it has a CVE-ID from 2009. Red Hat was informed about this issue in 2009 already (by another person) and after some back and forth we decided to release it together with Red Hat and not earlier. But not only the release date was coordinated, we also coordinate fixing and testing.&lt;/li&gt;&lt;li&gt;The default SSL ciphersuite configuration that comes with our apache2 package (this also affects the SM proxy) was made up to support as much and as old client as possible. This results in a config that is insecure because it support "export ciphers", SSLv2, short keys, etc. If you install this update before you configured your SM you will have a up-to-date and secure config. Use &lt;span style="font-family:courier new;"&gt;sslscan&lt;/span&gt; to verify your setup. If it is still insecure go to &lt;span style="font-family:courier new;"&gt;/etc/apache2/ssl-global.conf&lt;/span&gt; and change it to something like:&lt;blockquote&gt;ssl_protocols TLSv1&lt;/blockquote&gt;&lt;blockquote&gt;ssl_ciphers ALL:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!MD5:@STRENGTH&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Open Redirect (CVE-2011-1594): A hidden field named "url_bounce" allows HTTP redirects and therefore phishing attacks. Found during penetration-test, released after GM because it was too minor to hold release.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;XML remote denial of service (CVE-2011-1755): jabber2 server can be dos'ed ("billion laughs attack"), not found by us.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-8319060620358119756?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/8319060620358119756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=8319060620358119756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/8319060620358119756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/8319060620358119756'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/06/suse-manager-security-update.html' title='SUSE Manager Security Update'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-5713951199572545408</id><published>2011-05-24T00:00:00.000-07:00</published><updated>2011-05-24T11:14:00.338-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><title type='text'>SAD 4: Security Day</title><content type='html'>Three weeks ago the SUSE Studio team had its first "Security Day" to fix the possible security vulnerabilities found by &lt;a href="https://gitorious.org/code-scanner/ror-sec-scanner"&gt;ror-sec-scanner&lt;/a&gt;. (a Rails static code analyzer)&lt;br /&gt;The team eliminated:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;161 false positives&lt;br /&gt;&lt;/li&gt;&lt;li&gt;28 real bugs&lt;/li&gt;&lt;/ul&gt;Thank you folks! :-)&lt;br /&gt;&lt;br /&gt;Note:  Earlier this year another team consolidated its forces to fix potential  security problems in their code and reduced the number of bugs per KLOC  to 0.&lt;br /&gt;&lt;br /&gt;I hope we can have a "Security Day" prior every new release.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;noscript&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-5713951199572545408?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/5713951199572545408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=5713951199572545408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/5713951199572545408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/5713951199572545408'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/05/sad-4-security-day.html' title='SAD 4: Security Day'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-5263008056347626545</id><published>2011-05-03T12:57:00.000-07:00</published><updated>2011-05-04T01:43:04.103-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><title type='text'>SAD 3: At the Beginning there was a Thought</title><content type='html'>Last night I stumbled over some old docs of the Security Review Board. More than 5 years ago T.G. puts much effort in enhancing the development processes to create more secure products. I never saw numbers about that project to compare pre and past states of the products. Unfortunately she left a few years later but AFAIK some of her work is still in use today.&lt;br /&gt;&lt;br /&gt;Today I browsed Google Docs and found a 2 year old presentation I wrote during a train journey from Nuremberg to my home town. I never want to show the slides to other people I just brainstormed about how we could integrate security into our products. Let me show you some slides here because they describe  where we were 2-3 years ago. As I said I forgot the slides but funnily various things from them are real now or are on my TODO list.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Slide 1: Where we are.&lt;/span&gt;&lt;br /&gt;- We have four different sources of code&lt;br /&gt;-- 1.) Mainly FLOSS&lt;br /&gt;-- 2.) In-house development&lt;br /&gt;-- 3.) 3rd-party commercial free binary code (like RealPlayer, acroread, etc.)&lt;br /&gt;-- 4.) 3rd-party code developed by contractors&lt;br /&gt;- We review FLOSS code but there is too much and we have not much&lt;br /&gt;influence on the developers beside sending patches upstream&lt;br /&gt;- We have much influence on our own developers but we have to develop&lt;br /&gt;a better security awareness as well as technical knowledge&lt;br /&gt;- We have no influence on the 3rd-party free binary code and just need&lt;br /&gt;to trust it.&lt;br /&gt;- Code developed by contractors can be reviewed by us&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Today source 1. is still the main source for code contributions, the in-house development (2.) increases a lot over the past years, we try to reduce (openSUSE is completely free of them, see the &lt;span style="font-style: italic;"&gt;NonFree&lt;/span&gt; repo) the number of binary-only packages (3.), I am not aware of current contributions from source 4.&lt;br /&gt;In the past we provided workshops for secure programming (C, C++, Shell, Perl, Ruby on Rails, Web-security in general).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Slide 2: Where others are.&lt;/span&gt;&lt;br /&gt;- Microsoft&lt;br /&gt;-- founder of the Secure Software development Life Cycle (SDL)&lt;br /&gt;-- Separate, specialized teams&lt;br /&gt;-- Own and optimized tools for stress-testing (fuzzing) as well as code analysis&lt;br /&gt;-- See BSIMM study [&lt;a href="http://www.informit.com/articles/article.aspx?p=1592389"&gt;1&lt;/a&gt;], [&lt;a href="http://www.cert.org/podcast/show/20090331mcgraw.html"&gt;2&lt;/a&gt;]&lt;br /&gt;- Cisco&lt;br /&gt;-- &lt;a href="http://blogs.cisco.com/security/the_cisco_secure_development_lifecycle_an_overview/"&gt;CMSDL&lt;/a&gt;&lt;br /&gt;- Adobe&lt;br /&gt;-- See BSIMM study [&lt;a href="http://www.informit.com/articles/article.aspx?p=1592389"&gt;1&lt;/a&gt;], [&lt;a href="http://www.cert.org/podcast/show/20090331mcgraw.html"&gt;2&lt;/a&gt;]&lt;br /&gt;- Google&lt;br /&gt;-- specialists/teams working on research topics and develop tools as well as guidelines&lt;br /&gt;-- See BSIMM study [&lt;a href="http://www.informit.com/articles/article.aspx?p=1592389"&gt;1&lt;/a&gt;], [&lt;a href="http://www.cert.org/podcast/show/20090331mcgraw.html"&gt;2&lt;/a&gt;]&lt;br /&gt;- Red Hat&lt;br /&gt;-- Specialized teams/persons&lt;br /&gt;-- Much more people working on security&lt;br /&gt;-- Better contact to developers?&lt;br /&gt;-- Only re-active not pro-active AFAIK&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Currently we are introducing secure SDLC techniques and testing tools for our in-house products. Teams are planned to grow.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Slide 3: We need to catch up because...&lt;/span&gt;&lt;br /&gt;- Releasing patches for avoidable bugs is a big waste of money and time&lt;br /&gt;- Customers critically watch software vendor's product quality and security vulnerabilities&lt;br /&gt;- These observations play a big role in buying new products or continuing support contracts because installing patches costs the customer money (see study "The Total Cost of Security Patch Management") and therefore increases the cost of the product.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Slide 4: What we can do now!&lt;/span&gt;&lt;br /&gt;- Increase awareness by:&lt;br /&gt;-- Showing consequences by providing examples of security problems in our code&lt;br /&gt;- Increase code quality by:&lt;br /&gt;-- Online teaching of security best practice rules for common programming languages like C, C++, C# and Java (see CERT's SDI)&lt;br /&gt;-- Adopt secure SDLC processes for our in-house development&lt;br /&gt;-- Provide a standard development environment that includes easy-to-use code analysis tools for our programmers&lt;br /&gt;-- Teach how to use this tools.&lt;br /&gt;-- Do more sophisticated code analysis&lt;/blockquote&gt;&lt;br /&gt;We are on the right track.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Slide 5: What we need to do in the future.&lt;/span&gt;&lt;br /&gt;- Develop/acquire better tools for code analysis, fuzzing, etc.&lt;br /&gt;- Incrementally refine our coding standards&lt;br /&gt;- Have separate teams for handling bugs (response team), create new tools and keep track of current software security development (research team), a team for shepherding code development (mentor team) and a pen-testing team to verify in-house, FLOSS code&lt;br /&gt;- Being part of secure development initiatives/groups/workshops&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Well different teams is a dream that will never become true, but we will try to reach our goals using another way.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Slide 6: Where we should be.&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-K13_Izrznso/TcBvGGrqjrI/AAAAAAAAAfY/_SXtks2NLFY/s1600/Secure_Development_at_Novell.jpg"&gt;&lt;img style="cursor: pointer; width: 385px; height: 280px;" src="http://1.bp.blogspot.com/-K13_Izrznso/TcBvGGrqjrI/AAAAAAAAAfY/_SXtks2NLFY/s320/Secure_Development_at_Novell.jpg" alt="" id="BLOGGER_PHOTO_ID_5602600087112552114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-5263008056347626545?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/5263008056347626545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=5263008056347626545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/5263008056347626545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/5263008056347626545'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/05/sad-3-at-beginning-there-was-thought.html' title='SAD 3: At the Beginning there was a Thought'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-K13_Izrznso/TcBvGGrqjrI/AAAAAAAAAfY/_SXtks2NLFY/s72-c/Secure_Development_at_Novell.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-2132013955084852516</id><published>2011-03-25T10:33:00.000-07:00</published><updated>2011-03-25T05:36:23.211-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><title type='text'>SAD 2: Security Awareness or melting Realities together</title><content type='html'>Most people know that smoking causes cancer, that eating too much and not doing sports increases the probability of a cardiovascular disease, that drinking too much is bad for your psyche and lever and so on.&lt;br /&gt;&lt;br /&gt;But does just knowing about it change their behavior? No, it does not!&lt;br /&gt;&lt;br /&gt;The reason is that these "invisible" negative effects do not influence their living, the integrity of their reality is intact until it is too late and the disease dramatically decrease the quality of their life.&lt;br /&gt;&lt;br /&gt;Only a few people are clever and strong enough to reflect about their bad behaviors and change them. I assume more people change their bad habits as soon as they &lt;span style="font-weight: bold;"&gt;see&lt;/span&gt; what happens to their body. Seeing means measuring the cardiovascular levels, taking x-ray pictures of organs, making chemical analysis of body liquids and tissue and so on.&lt;br /&gt;&lt;br /&gt;I see a strong analogy here to software development and security.&lt;br /&gt;&lt;br /&gt;Developers and project-managers often do not have security in mind, or do not have the technical background and daily practice to make the resulting product a nightmare for penetration-testers and hackers. (How often do you read this already?)&lt;br /&gt;&lt;br /&gt;Let's not stress this doctor vs. patient analogy too far. This blog entry is not about good vs. bad or dumb vs. clever... it's about the experience I made and psychology.&lt;br /&gt;&lt;br /&gt;First of all, measurement (of the right things) is the key to success! You do not have to create a bulletproof plan, just some goals, continue measurement, and adapt your plan (Hello agile development/management!).&lt;br /&gt;&lt;br /&gt;I hold three talks/workshops in 2010, every talk has the same topic: "secure design and development" and I got the same result: &lt;span style="font-weight: bold;"&gt;Code quality did not increase!&lt;/span&gt; The number of potential security bugs per 1000 "physical" LOC (Hits/KSLOC) stayed the same or even increased.&lt;br /&gt;Based on the responses from my audience I experimented with the content and with the methodology. The first workshop was very long and mostly theoretical with threat models, potential problems in Rails, risk assessment, showing some tools (which gets the most attention, because it potentially helped solving their problems).&lt;br /&gt;The second one was much more practical, I had shown real examples from the in-house software projects, real attacks and presenting some tools. The session was much shorter and caused more attention by the developers and a bit more attention by the technical managers (Still, tools caused the the most attention). And the last one... the last one was a wake-up call, less technical, analogies and examples, cost of security updates (Attention!) and I hit the target.&lt;br /&gt;&lt;br /&gt;Result: The first talk was a waste of time, my statistics had shown no decrease in the potential vulnerabilities, the second one also had no affect on quality but the awareness and communication (developers) increased, and the third talk... well the code quality did not increase but awareness and maybe acceptance in the upper food chain increased.&lt;br /&gt;&lt;br /&gt;Retrospectively I can say I should have done the talks/workshops in reverse order but when I started is was a "fire-fighter job" and I had no time for a real plan.&lt;br /&gt;&lt;br /&gt;Code quality is still a critical issue and therefore I took the next, more aggressive step by sending the (cleaned-up) results of my code scanner to the developers mailing list. And at least one team responded to it and we reduced the number of potential security problems and false positives to a minimum within just two weeks. In the meanwhile all teams responded in some way and I hope code fixing will start soon.&lt;br /&gt;&lt;br /&gt;On balance:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you want to increase awareness, invite the right people and omit technical details, speak the language of the audience, use numbers (costs) and statistics, use analogies instead of theoretical information. Melt realities by creating feelings and concernment! (The last point is not easy to do of course.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If you want to increase code quality, use tools that directly show the problematic code with a description and help fixing it! Don't create too much confusion and don't steal the developer's time.&lt;/li&gt;&lt;/ul&gt;BTW, the increase of awareness or the expertise of the developers resulted in adding security features and fixing existing security features...&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-2132013955084852516?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/2132013955084852516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=2132013955084852516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/2132013955084852516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/2132013955084852516'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/02/sad-2-security-awareness-or-melting.html' title='SAD 2: Security Awareness or melting Realities together'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-655568822192184808</id><published>2011-03-18T03:43:00.000-07:00</published><updated>2011-03-18T03:44:37.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>Oops, RSA hacked and SecurID code stolen?</title><content type='html'>&lt;a href="http://www.rsa.com/node.aspx?id=3872"&gt;http://www.rsa.com/node.aspx?id=3872&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-655568822192184808?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/655568822192184808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=655568822192184808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/655568822192184808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/655568822192184808'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/03/oops-rsa-hacked-and-secuid-code-stolen.html' title='Oops, RSA hacked and SecurID code stolen?'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-2155535332855749669</id><published>2011-03-16T08:02:00.000-07:00</published><updated>2011-03-18T07:42:28.546-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='FWIBugs'/><title type='text'>Forgotten Password and Birthday Attacks</title><content type='html'>I just stumbled over a piece of code that might be interesting for you as well. A web-app let's click you on a "forgotten password" link and will send a token to the (valid/known) email address you specified. When you return to the web-app and provide the token that was mailed to you, and the token was found by looking it up for ANY user, you are allowed to set a new password. So, theoretically (I didn't test it) this code is vulnerable to a &lt;span style="font-style:italic;"&gt;birthday attack&lt;/span&gt; (random pair collision), the impact depends on the number of users and the length of the token.&lt;br /&gt;&lt;br /&gt;For example, and I hope I get the math correct here, if the token is 8 bit long (8 bit of entropy, equally distributed) an attacker only needs to call the "forgotten password" functionality for 16 (birthday bound, 2^{n/2}) users and try 16 different tokens to have a probability of success  close to 50%.&lt;br /&gt;&lt;br /&gt;The solution is to look-up the user by email address or another unique identifier and verify if the token for this user matches or not.&lt;br /&gt;&lt;br /&gt;Here is an example diagram for a 16 bit token (DNS TRXID) to compare &lt;span style="font-style: italic;"&gt;brute force&lt;/span&gt; vs. &lt;span style="font-style: italic;"&gt;birthday attack&lt;/span&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-un8k-4vIBTw/TYM16SXMdvI/AAAAAAAAAeY/7dhAdj5ed3Q/s1600/Birthday_vs_conventional_attack.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 242px;" src="http://3.bp.blogspot.com/-un8k-4vIBTw/TYM16SXMdvI/AAAAAAAAAeY/7dhAdj5ed3Q/s320/Birthday_vs_conventional_attack.jpg" alt="" id="BLOGGER_PHOTO_ID_5585367238347355890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-2155535332855749669?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/2155535332855749669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=2155535332855749669' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/2155535332855749669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/2155535332855749669'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/03/forgotten-password-and-birthday-attacks.html' title='Forgotten Password and Birthday Attacks'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-un8k-4vIBTw/TYM16SXMdvI/AAAAAAAAAeY/7dhAdj5ed3Q/s72-c/Birthday_vs_conventional_attack.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-2471259512934613505</id><published>2011-03-10T02:15:00.000-08:00</published><updated>2011-03-10T02:23:03.679-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>Comdirect bank TAN handling</title><content type='html'>Just recognized that the web-app for Comdirect online banking does not ask for another TAN if you choose back and change the bankwire details like the recipient. Execution flow:&lt;br /&gt;&lt;br /&gt;Enter bankwire details ---&gt; click next ----&gt; asked to enter TAN n ---&gt; click back ----&gt; change bankwire details ----&gt; click next ---&gt; again asked for TAN n&lt;br /&gt;&lt;br /&gt;I would generate a new TAN...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-2471259512934613505?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/2471259512934613505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=2471259512934613505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/2471259512934613505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/2471259512934613505'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/03/comdirect-bank-tan-handling.html' title='Comdirect bank TAN handling'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-6518269643502648066</id><published>2011-01-28T06:08:00.000-08:00</published><updated>2011-01-28T06:10:17.267-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SUSE'/><title type='text'>Mail: recent security breaches of open-source sites</title><content type='html'>This mail was sent out to some &lt;span style="font-style: italic;"&gt;opensuse&lt;/span&gt; mailing lists to increase awareness.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Dear community members and contributors,&lt;br /&gt;&lt;br /&gt;in the last few month we saw security breaches at gnu.org[1], at&lt;br /&gt;sourceforge.net[2] and at fedora[3].&lt;br /&gt;&lt;br /&gt;Even if it is believed that the integrity of the hosted projects&lt;br /&gt;was not affected I want to take the opportunity to remind you to&lt;br /&gt;always verify the cryptographic checksums of downloaded archive&lt;br /&gt;files, review patches and keep a healthy relationship/communication&lt;br /&gt;to the upstream authors.&lt;br /&gt;&lt;br /&gt;It is good practise to change your password from time to time and make&lt;br /&gt;it hard to guess[4][5]. Take extra care using public wifi hotspots,&lt;br /&gt;crowded places[6], like trains, and other peoples computer etc.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Thomas&lt;br /&gt;&lt;br /&gt;[1] http://blog.sucuri.net/2010/11/savannah-gnu-org-hacked-and-currently-offline.html&lt;br /&gt;[2] http://sourceforge.net/apps/wordpress/sourceforge/2011/01/27/service-downtime/&lt;br /&gt;[3] http://lists.fedoraproject.org/pipermail/announce/2011-January/002911.html&lt;br /&gt;[4] http://en.wikipedia.org/wiki/Password_strength&lt;br /&gt;[5] http://sourceforge.net/projects/pwgen/&lt;br /&gt;[6] http://en.wikipedia.org/wiki/Shoulder_surfing_%28computer_security%29&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-6518269643502648066?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/6518269643502648066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=6518269643502648066' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/6518269643502648066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/6518269643502648066'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/01/mail-recent-security-breaches-of-open.html' title='Mail: recent security breaches of open-source sites'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-7711893362827725942</id><published>2011-01-12T05:44:00.000-08:00</published><updated>2011-01-12T06:06:26.096-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><title type='text'>Tool: OWASP test-suite</title><content type='html'>A happy new year!&lt;br /&gt;&lt;br /&gt;I quickly hacked a test-suite based on the OWASP testing-guide. You can find the code here: &lt;a href="http://gitorious.org/sectestsuite/websec"&gt;http://gitorious.org/sectestsuite/websec&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Take care, this time it is untested, incomplete and unfancy.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;prompt&gt;  src/websec.pl myconfig.ini output=short&lt;br /&gt;=====&gt; OWASP_CM_001::sslv2: CWE-XYZ (): code = 0 (msg = 'PASS')&lt;br /&gt;=====&gt; OWASP_CM_001::weak_ciphers: CWE-327 (Use of a Broken or Risky Cryptographic Algorithm): code = 0 (msg = 'PASS')&lt;br /&gt;=====&gt; OWASP_CM_008::http_dangerous_methods: CWE-749 (Exposed Dangerous Method or Function): code = 0 (msg = 'PASS')&lt;br /&gt;=====&gt; OWASP_CM_008::http_arbitrary_methods: CWE-749:CWE-650 (Exposed Dangerous Method or Function:Trusting HTTP Permission Methods on the Server Side): code = 1 (msg = 'FAIL:HTTP arbitrary/dangerous methods allowed (UNLOCK)')&lt;br /&gt;=====&gt; OWASP_CM_008::http_bypass_head: CWE-650 (Trusting HTTP Permission Methods on the Server Side): code = 0 (msg = 'PASS')&lt;br /&gt;=====&gt; OWASP_AT_002::user_enumerate: CWE-204 (Response Discrepancy Information Exposure): code = 0 (msg = 'PASS')&lt;br /&gt;=====&gt; OWASP_AT_002::uri_probing: CWE-204 (Response Discrepancy Information Exposure): code = 1 (msg = 'FAIL:URI probing emits different HTTP status code (200 vs 404)')&lt;br /&gt;=====&gt; OWASP_AT_007::user_really_logged_out: CWE-672 (Operation on a Resource after Expiration or Release): code = 1 (msg = 'FAIL: Still able to access private page even after logging out.')&lt;br /&gt;        OWASP_AT_007::session_timeout_used: wait for 120 + 10 seconds&lt;br /&gt;=====&gt; OWASP_AT_007::session_timeout_used: CWE-613 (Insufficient Session Expiration): code = 0 (msg = 'FAIL: Private page was still accessible after timeout (120 + 10 secs).')&lt;br /&gt;=====&gt; OWASP_AZ_001::path_traversal: CWE-22 (Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')): code = 0 (msg = 'PASS')&lt;br /&gt;=====&gt; OWASP_SM_002::cookie_security: CWE-614 (Sensitive Cookie in HTTPS Session Without 'Secure' Attribute): code = 1 (msg = 'FAIL:Path attribute points to '/'')&lt;br /&gt;=====&gt; OWASP_SM_003::session_fixation_public: CWE-384 (Session Fixation): code = -2 (msg = 'INFO: Unable to get Cookie from public page')&lt;br /&gt;=====&gt; OWASP_SM_003::session_fixation_private: CWE-384 (Session Fixation): code = 1 (msg = 'FAIL:Vulnerable to Session Fixation Attack by authenticated users')&lt;br /&gt;=====&gt; OWASP_SM_004::cookie_not_fresh: CWE-323 (Reusing a Nonce, Key Pair in Encryption): code = 1 (msg = 'FAIL: Vulnerable of re-using session cookies')&lt;br /&gt;=====&gt; OWASP_SM_004::cookie_secure_storage: CWE-312:CWE-613 (Cleartext Storage of Sensitive Information:Insufficient Session Expiration): code = 1 (msg = 'FAIL:'Expires' header not set:Cache-Control header not set.')&lt;br /&gt;=====&gt; OWASP_SM_004::cookie_via_get:  (): code = 0 (msg = 'PASS: Unable to login via GET.')&lt;br /&gt;=====&gt; OWASP_SM_005::csrf: CWE-352 (Cross-Site Request Forgery (CSRF)): code = 1 (msg = 'FAIL:Vulnerable to CSRF Attack (HTTP code 200)')&lt;br /&gt;&lt;br /&gt;17 test in 155 secs.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-7711893362827725942?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/7711893362827725942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=7711893362827725942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/7711893362827725942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/7711893362827725942'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2011/01/tool-owasp-test-suite.html' title='Tool: OWASP test-suite'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-1222885404529095949</id><published>2010-12-03T01:49:00.000-08:00</published><updated>2010-12-06T06:40:54.804-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><category scheme='http://www.blogger.com/atom/ns#' term='SUSE'/><title type='text'>SAD 1: The Change... and no, we are not in the "House of Flies" here</title><content type='html'>I told you that future isn't predictable, that it is dominated by change. So here is what has to change: First (maybe) &lt;span style="font-weight: bold;"&gt;you&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;Power is what most people lack of, people that feel the time for a change is now, or that see the disadvantages in their private and/or working life, often  are too powerless. Either their psyche/mind is powerless, or maybe they don't have the executive power, or they do not have ever made the social connections to the right people with the power and mind needed to go a new way.&lt;br /&gt;&lt;br /&gt;Well your way of getting your job and more done should be based on a strong mind. If your  psychological hygienic is in a bad shape you are lost either way. Stop  reading here! Go and change (or start loving!) the ill parts of your  character before it is too late.&lt;br /&gt;&lt;br /&gt;Will I come to a point in this post. Yes! Read on... :-)&lt;br /&gt;&lt;br /&gt;When you are not happy about the security awareness in your company's software department or alike and your boss does not equip you with the power to do the job, the alternative is not to bury your head in the sand but &lt;span style="font-style: italic;"&gt;just do it&lt;/span&gt;! (Warning: In big companies games are played differently as in small companies, means: Changes in big companies are often not wanted because they introduce risk. "Loser's Game" vs. "Winner's Game")&lt;br /&gt;&lt;br /&gt;Of course you cannot go up to the software development department and force them to change their processes to an industry standard (MS SDL, SAMM, etc.). But you can offer the project- or team-leads your HELP. By it I mean you can offer them the parts of your favorite secure code development process that don't cost them much time and money, this means they cost your time of course. Go ahead!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Starting points.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The most less invasive and helpful tasks IMO are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;doing code reviews and filing bugs in their bug tracking system&lt;/li&gt;&lt;li&gt;provide security documents (secure coding, secure design, helpful links) in a wiki or any other internal CMS&lt;br /&gt;&lt;/li&gt;&lt;li&gt;offer security trainings directly related to their work&lt;/li&gt;&lt;li&gt;ask project leaders to include you in the application design process&lt;/li&gt;&lt;/ul&gt;Take care: Don't be a nit-picker or too restrictive. :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Tips: Presentation, Training&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What I found most useful and which is no magic is:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;be short&lt;/li&gt;&lt;li&gt;only the most dangerous/important vulnerabilities&lt;/li&gt;&lt;li&gt;don't get lost in details&lt;br /&gt;&lt;/li&gt;&lt;li&gt;many examples, try use the team's code&lt;/li&gt;&lt;li&gt;live-sessions&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt; The secure development trainings are really important (I often miss that *sigh*) because you stay in-front of the team and can influence their view on security and the way they develop code in the future. So, be friendly and helpful but also mandatory. Take a look in your soft-skill toolbox to see what techniques might be useful. (I always forget it... unfortunately)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Techniques: The appeal.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Five steps to formulate a clear appeal:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;introduction&lt;/span&gt;: In the introduction phase you have to set the context by telling your dialog partner (dp) about the topic you are talking about. &lt;span style="font-style: italic;"&gt;"I beg you to keep security in mind when developing our applications because security updates cost everybody's time, costs money, and put the customer at risk."&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;facts&lt;/span&gt;: Who should do what when exactly. But take care with the competencies here. Sounding too harsh is too easy. &lt;span style="font-style: italic;"&gt;"During my penetration-test I saw simple flaws with high impact like cross-site scripting bugs in our social-network solution. Additionally I also stumbled over design issues like sending credential over the network without using SSL. Please review your code to fix all cross-site scripting vulnerabilities before the next beta-release. Tools for testing and descriptions of the bug as well as possible solutions are described in our Intranet wiki. For the next major version or re-design of our product xyz, I can offer you to be part of it and review the design."&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;context&lt;/span&gt;: People accept and fulfill additional tasks better if they know about he corresponding context. &lt;span style="font-style: italic;"&gt;"When we deliver the code as-is with all it's big security holes, hackers will have a lot of fun stealing personal information easily from your customer's servers . We will chip away our image and have additional work releasing security updates. Not releasing bugs is cheaper than providing security updates."&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;comprehension&lt;/span&gt;:  Do not ask so called closed questions like &lt;span style="font-style: italic;"&gt;"Is everything clear?"&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;"Is something unclear?"&lt;/span&gt; you will get &lt;span style="font-style: italic;"&gt;"Yes."&lt;/span&gt; respectively &lt;span style="font-style: italic;"&gt;"No."&lt;/span&gt; as a reflex from your dialog partner.  Better use open questions: &lt;span style="font-style: italic;"&gt;"I know this kind of vulnerability is very abstract. Where are open questions I can answer for you?", "What can I do for you to make this work?", "Which questions do you have?" &lt;/span&gt;And after each question make a long pause, this encourages your dp to react.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;acceptance&lt;/span&gt;: At the end you need to verify if your appeal was really accepted by your dialog partner. There is a gap between understanding and accepting. The first 4 steps of a clear appeal try to bridge over this gap and at the end you need to verify if you were successful. If you don't like it you can omit this final step and hope for the best. You may also received signals from your dp that shows acceptance or reluctance and adopt the final step based on that.  The easiest way would be to ask: &lt;span style="font-style: italic;"&gt;"Will you fulfill this task until the next beta-release?"&lt;/span&gt; This is of course not the right way if you work on an equal footing. Alternatives might be: &lt;span style="font-style: italic;"&gt;"Where can I help you to get this done until next beta-release?"&lt;/span&gt; etc.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I should start following my own advises and... also never write a novel. ;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;(for the topic see the &lt;a href="http://www.stlyrics.com/lyrics/littlenicky/changeinthehouseofflies.htm"&gt;following lyrics&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-1222885404529095949?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/1222885404529095949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=1222885404529095949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/1222885404529095949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/1222885404529095949'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/09/sad-1-change-and-no-we-are-not-in-house.html' title='SAD 1: The Change... and no, we are not in the &quot;House of Flies&quot; here'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-3847321343779869365</id><published>2010-11-08T06:24:00.000-08:00</published><updated>2010-11-08T06:26:05.332-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>Rails Security Articles... nice to read</title><content type='html'>http://www.kalzumeus.com/2010/09/22/security-lessons-learned-from-the-diaspora-launch/&lt;br /&gt;http://www.railsinside.com/tips/486-14-bare-minimum-security-checks-before-releasing-a-rails-app.html&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-3847321343779869365?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/3847321343779869365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=3847321343779869365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/3847321343779869365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/3847321343779869365'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/11/rails-security-articles-nice-to-read.html' title='Rails Security Articles... nice to read'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-2624847422561684031</id><published>2010-10-29T05:29:00.000-07:00</published><updated>2010-12-03T07:37:27.893-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><title type='text'>Tool: Login Brute-Forcer for the Web</title><content type='html'>plain, simple, stupid, unfancy, working. &lt;a href="http://gitorious.org/brute-forcer/web-bf"&gt;Get it from gitorious.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-2624847422561684031?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/2624847422561684031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=2624847422561684031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/2624847422561684031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/2624847422561684031'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/10/tool-login-brute-forcer-for-web.html' title='Tool: Login Brute-Forcer for the Web'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-3886749397349118950</id><published>2010-10-28T06:17:00.001-07:00</published><updated>2010-12-03T07:37:36.906-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><title type='text'>Tool: Web-Spider released</title><content type='html'>Well I did it again. I didn't find a spider tool that fits my needs and wrote my own. &lt;a href="http://gitorious.org/code-scanner/spider"&gt;Check it out at gitorious.org&lt;/a&gt;.&lt;br /&gt;It crawls a web site to a defined depth, downloads docs, sheets, multi-media files, etc, checks if a URL is fuzzable or accessible without authentication (CWE-425, Forced Browsing).&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-3886749397349118950?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/3886749397349118950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=3886749397349118950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/3886749397349118950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/3886749397349118950'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/10/tool-web-spider-released.html' title='Tool: Web-Spider released'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-7284807840778175964</id><published>2010-10-27T00:29:00.001-07:00</published><updated>2010-10-27T00:50:43.155-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><category scheme='http://www.blogger.com/atom/ns#' term='SUSE'/><title type='text'>Secure Development Workshop at Nuremberg</title><content type='html'>&lt;p class="mobile-photo"&gt;&lt;a href="http://4.bp.blogspot.com/_YYeA-lwcHBA/TMfUxiYYvBI/AAAAAAAAAXk/cPAUyx8kJjk/s1600/18102010013-749369.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_YYeA-lwcHBA/TMfUxiYYvBI/AAAAAAAAAXk/cPAUyx8kJjk/s320/18102010013-749369.jpg" alt="" id="BLOGGER_PHOTO_ID_5532624614755712018" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;My last working week was really busy and started at Sunday noon because  I was in Nuremberg to hold a web-security workshop for my colleagues at Monday morning. Traveling at Sunday feels a bit strange, no business people, but much party people with hangovers. OOo Impress hung X completely by eating up all available resources. Nevertheless the live sessions worked better than expected and seem to be the salt in the stale slide soup.&lt;br /&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;The "it-sa Sicherheitsmesse" (security trade show), OWASP conference, and the openSUSE conference were the overlapping highlights of this week. Unfortunately I missed the OWASP conference... :(&lt;/p&gt;&lt;p class="mobile-photo"&gt;This week is the last chance to do web-application penetration-testing of in-house products before I have to take over the incidents handling next Tuesday.&lt;/p&gt;&lt;p class="mobile-photo"&gt;I still need to find a good way to bring threat modeling and secure development to Web 2.0 without using bloated text documents and reusing text blocks all the time.&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/5240359826706545510-7284807840778175964?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/7284807840778175964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=7284807840778175964' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/7284807840778175964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/7284807840778175964'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/10/secure-development-workshop-at.html' title='Secure Development Workshop at Nuremberg'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_YYeA-lwcHBA/TMfUxiYYvBI/AAAAAAAAAXk/cPAUyx8kJjk/s72-c/18102010013-749369.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-6228856452899647198</id><published>2010-10-26T08:15:00.000-07:00</published><updated>2010-12-03T07:37:43.200-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><title type='text'>Tool: simple XSS fuzzer</title><content type='html'>just found none that worked for me and wrote my own. &lt;a href="http://gitorious.org/fuzzer/fuzz-xss"&gt;check out fuzz-xss&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-6228856452899647198?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/6228856452899647198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=6228856452899647198' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/6228856452899647198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/6228856452899647198'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/10/simpe-xss-fuzzer.html' title='Tool: simple XSS fuzzer'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-4672203356176109012</id><published>2010-10-25T05:44:00.000-07:00</published><updated>2010-10-25T06:07:00.721-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><title type='text'>Ruby on Rails: URI.unescape() and bypassing authZ</title><content type='html'>pseudo code:&lt;br /&gt;&lt;pre class="bz_comment_text" id="comment_text_0"&gt;&lt;span style="font-family:courier new;"&gt;def change_pwd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  if !@http_user&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;span style="font-family: courier new;font-family:monospace;" &gt;ERROR&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  else if not params[:login] or not params[:password]&lt;br /&gt;    ERROR&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;   end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  unless @http_user.is_admin? or params[:login] == @http_user.login&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ERROR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  login = URI.unescape( params[:login] )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  newpassword = Base64.decode64(URI.unescape( params[:password]))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  #  change password in users db&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  @user = User.find_by_login(login)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  @user.password = newpassword&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  @user.save!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;URI.unsecape("thomas%OO") --&gt; "thomas"&lt;/blockquote&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-4672203356176109012?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/4672203356176109012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=4672203356176109012' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/4672203356176109012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/4672203356176109012'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/10/ruy-on-rails-uriunescape-and-bypassing.html' title='Ruby on Rails: URI.unescape() and bypassing authZ'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-1567780532718227304</id><published>2010-09-14T03:35:00.000-07:00</published><updated>2010-10-27T00:52:45.007-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>Ruby on Rails 2.3 vulnerable to Padding Oracle Attack</title><content type='html'>JFYI: http://netifera.com/research/poet/PaddingOracleBHEU10.pdf&lt;br /&gt;&lt;br /&gt;cite slide 15:&lt;br /&gt;&lt;blockquote&gt;Vulnerability: encrypt and decrypt functions.&lt;br /&gt;Use encrypt_and_sign and decrypt_and_verify instead.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;CVE-2010-3299&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;: I am not sure that this claim is really true because the &lt;span style="font-style: italic;"&gt;encrpyt&lt;/span&gt; function is not mandatoy and there is still a digest at the end of the cookie string to ensure integrity. Still waiting for an answer from the authors... stay tuned!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2010-10-27&lt;/span&gt;: No clarifying answer from the authors yet. We assume this is a non-issue for Rails.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-1567780532718227304?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/1567780532718227304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=1567780532718227304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/1567780532718227304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/1567780532718227304'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/09/ruby-on-rails-23-vulnerable-to-padding.html' title='Ruby on Rails 2.3 vulnerable to Padding Oracle Attack'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-6084194086366110842</id><published>2010-08-26T08:51:00.000-07:00</published><updated>2010-09-29T01:48:49.220-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SAD'/><category scheme='http://www.blogger.com/atom/ns#' term='SUSE'/><title type='text'>SAD 0: Secure Code Development in an Open-Source World</title><content type='html'>&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YYeA-lwcHBA/S-2Wln5vtsI/AAAAAAAAARw/VkVR9lKRTWU/s1600/shieldbadge_red-3d.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 78px; height: 117px;" src="http://1.bp.blogspot.com/_YYeA-lwcHBA/S-2Wln5vtsI/AAAAAAAAARw/VkVR9lKRTWU/s400/shieldbadge_red-3d.png" alt="" id="BLOGGER_PHOTO_ID_5471194695435531970" border="0" /&gt;&lt;/a&gt;What does SAD mean? I will clarify it later, it does not matter now... don't be sad about it.&lt;br /&gt;&lt;br /&gt;Since some years big software companies like &lt;a href="http://www.microsoft.com/sdl"&gt;Microsoft&lt;/a&gt; (2002) or &lt;a href="http://blogs.cisco.com/security/comments/the_cisco_secure_development_lifecycle_an_overview/"&gt;Cisco&lt;/a&gt; (2010) start changing their software development procedures to address the massive amount of vulnerabilities in their products. MS seems to be &lt;a href="http://www.microsoft.com/security/sdl/resources/faq.aspx"&gt;successful with this strategy&lt;/a&gt; and all the charts, numbers and articles look promising. "But what about the open-source world, the world of Linux distributions, what did they do?" you might ask. Led me shed some light on it.&lt;br /&gt;&lt;br /&gt;It is much different for us and I will go into the details later. Let me first enumerate some vital steps in the secure development process that correlate to the steps of various software development "philosophies":&lt;br /&gt;&lt;ol&gt;&lt;li&gt;secure system design principals&lt;/li&gt;&lt;li&gt;risk assessment (aka threat modeling or security profiling)&lt;/li&gt;&lt;li&gt;choosing the right technology (programming language, compiler, etc.)&lt;/li&gt;&lt;li&gt;secure-coding training for developers&lt;/li&gt;&lt;li&gt;security-testing training for testers&lt;/li&gt;&lt;li&gt;tools (static analysis and compilers with security options) for developers&lt;/li&gt;&lt;li&gt;security-related testcases and tools (fuzzers, scanners, etc.) for the QA team&lt;/li&gt;&lt;li&gt;partial code-review by specialists&lt;/li&gt;&lt;li&gt;penetration-testing by specialists&lt;/li&gt;&lt;li&gt;maintenance (update publishing, customer notification)&lt;/li&gt;&lt;/ol&gt;All steps are important and some, like secure design and risk assessment, are even so important that without it an application can never be secure without completely re-writing large parts of it.&lt;br /&gt;&lt;br /&gt;If you develop code in-house you have influence on each of the development steps (not for free of course). But if you are a distributor of open-source software you just collect the software, bundle it and hand it over to your customers (I hope no one will bash me for this simplification). This puts us in the &lt;a href="http://www.ranum.com/security/computer_security/editorials/dumb/"&gt;penetrate-and-patch&lt;/a&gt; wheel (aka "hamster wheel" by A. Jaquith)  which is known to be costly and ineffective. But you can be sure our "hamster wheel" is well oiled and our teams of "hamster-engineers" is in good shape. Maintenance is one of the main and most important services we provide because software will never come without bugs... that is the reality.&lt;br /&gt;&lt;br /&gt;We, as distributor, could of course be so crazy and try to force open-source developers to follow a set of principals of secure software development by letting them answer questionnaires and verify their code quality. And if they fail, we will drop their package(s). Believe me, this would neither help us nor the community nor any enterprise customer. SUSE: "Oops, we have to drop X and the kernel. Well, be it so...", developer: "SUSE sux!" (BTW, untrue... we dropped "sux".)&lt;br /&gt;&lt;br /&gt;What really helps in this situation is:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;a healthy and effective communication between distributions, and between distributions and the OSS developers as well as the user community/customers&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://old-en.opensuse.org/Security_Features"&gt;kernel, glibc and gcc options to avoid memory corruptions, enable non-executable memory sections, address space randomization etc.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;security-related testcases and tools (fuzzers, scanners, etc.), for example for the QA team&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;secure default configuration of the system and its services by enforcing our security policy for all packages&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;code review and pen-testing of high-risk components&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;processes and interfaces well-known and accepted by customers&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;and a highly optimized "hamster wheel", vulgo: maintenance (bug fixing, update publishing, customer notification)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;So much for the process and current state. Let me dive into the shiny waters of history before I will take a look into the future.&lt;br /&gt;&lt;br /&gt;About 12 to 10 years ago, when Marc (ret.), I and Sebastian (chronological order) started working for S.u.S.E., our main focus was code-reviews (our &lt;span style="font-style: italic;"&gt;wu-ftpd&lt;/span&gt; was great!) and to establish a process for security updates.&lt;br /&gt;We improved the way code reviews were done in the last decade and came to something like &lt;a href="http://en.wikipedia.org/wiki/Threat_model"&gt;Threat Modeling&lt;/a&gt; (Security Profiling) but in a much less noisy way by combining design reviews, results of code reviews and runtime (penetration) tests with real bugs (incl. severity rating). Beside of that there is a real change in code quality of high-profile open-source software, we found much less simple or severe bugs. The bugs in libraries, client- as well as in web-applications increases dramatically (remember PHP, PDF libs, font libs, ImageMagick, ...).&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YYeA-lwcHBA/THYmUAEJ0AI/AAAAAAAAAXE/1jcXmF2TrWQ/s1600/statistics-lowlevel_vs_web-bugs.jog.jpg"&gt;&lt;img style="cursor: pointer; width: 373px; height: 273px;" src="http://2.bp.blogspot.com/_YYeA-lwcHBA/THYmUAEJ0AI/AAAAAAAAAXE/1jcXmF2TrWQ/s320/statistics-lowlevel_vs_web-bugs.jog.jpg" alt="" id="BLOGGER_PHOTO_ID_5509633319191040002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;But code-reviews alone did not protect you against unknown bugs. A secure default configuration (SUSE Linux Enterprise Server as well as openSUSE) is vital. Our strict policy (processes and technology) is mainly enforced by Ludwig and Marcus.&lt;br /&gt;&lt;br /&gt;The general security awareness in our company as well as in the whole digital society changed positively compared to the time before the &lt;a href="http://en.wikipedia.org/wiki/Dot-com_bubble"&gt;dot-com bubble&lt;/a&gt; imploded. ("A long, long, long, long time ago - Before the wind before the snow ...")&lt;br /&gt;And therefore we receive more security bug reports from customers, community memebers and colleagues as well as from code reviews by others people and companies. And that is good.&lt;br /&gt;&lt;br /&gt;A negative effect of the massive web-based (web 2.0) development is complexity and openness. Todays web-applications are highly exposed, have different standard and non-standard interfaces, talk to several other semi-trusted systems, are dynamic and mainly process untrusted data. They are always the low-hanging fruit... imagine what would happen if the paradise was full of apple trees!&lt;br /&gt;&lt;br /&gt;New challenges to counter!&lt;br /&gt;&lt;br /&gt;(Ah, I promised to take a look into the future, I can't! :) The only constant in life is change. Enjoy!)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-6084194086366110842?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/6084194086366110842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=6084194086366110842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/6084194086366110842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/6084194086366110842'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/05/sad-0-secure-code-development-in-open.html' title='SAD 0: Secure Code Development in an Open-Source World'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_YYeA-lwcHBA/S-2Wln5vtsI/AAAAAAAAARw/VkVR9lKRTWU/s72-c/shieldbadge_red-3d.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-8808177236867286814</id><published>2010-07-23T02:53:00.000-07:00</published><updated>2010-07-23T13:43:25.950-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>Two new articles in openSUSE wiki</title><content type='html'>enjoy and enhance!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.opensuse.org/SDB:Secure_coding_checklist:_C_and_C%2B%2B"&gt;Secure Coding Checklist: C and C++&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.opensuse.org/SDB:Secure_coding_checklist:_Ruby_on_Rails"&gt;Secure Coding Checklist: Ruby on Rails&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-8808177236867286814?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/8808177236867286814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=8808177236867286814' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/8808177236867286814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/8808177236867286814'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/07/two-new-articles-in-opensuse-wiki.html' title='Two new articles in openSUSE wiki'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-2533885458737243008</id><published>2010-05-21T03:31:00.000-07:00</published><updated>2010-05-23T23:55:26.433-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SUSE'/><title type='text'>SELinux, opensuse 11.3 milestone 7 and sysvinit</title><content type='html'>Just a short note: We switched back from &lt;span style="font-style: italic;"&gt;upstart&lt;/span&gt; to the good old &lt;span style="font-style: italic;"&gt;sysvinit&lt;/span&gt; and everything works fine.&lt;br /&gt;&lt;br /&gt;&lt;!-- BlogCounter Code START --&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-2533885458737243008?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/2533885458737243008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=2533885458737243008' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/2533885458737243008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/2533885458737243008'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/05/selinux-opensuse-113-milestone-7-and.html' title='SELinux, opensuse 11.3 milestone 7 and sysvinit'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-9133157632733177199</id><published>2010-05-14T00:16:00.000-07:00</published><updated>2010-05-26T10:15:05.977-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SUSE'/><title type='text'>OSVDB.org entry submitted</title><content type='html'>Hm, our entries in www.osvdb.org are incomplete, I submitted updated contact information...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;: &lt;a href="http://osvdb.org/vendors/search?name=suse"&gt;http://osvdb.org/vendors/search?name=suse&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-9133157632733177199?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/9133157632733177199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=9133157632733177199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/9133157632733177199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/9133157632733177199'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/05/osvdborg-entry-submitted.html' title='OSVDB.org entry submitted'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5240359826706545510.post-5663198986823681718</id><published>2010-05-06T05:36:00.000-07:00</published><updated>2010-05-07T03:40:10.415-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>openSSUE 11.3 and funny Dots</title><content type='html'>The good news first: No, your shiny new LED doesn't have pixel failures!&lt;br /&gt;The dot you see at the end of the file permissions of the ls(1) output comes from additional ACLs, in this case SELinux.&lt;br /&gt;&lt;br /&gt;http://www.gnu.org/software/coreutils/manual/coreutils.html states:&lt;br /&gt;&lt;blockquote&gt;"Following the file mode bits is a single character that specifies whether an alternate access method such as an access control list applies to the file. When the character following the file mode bits is a space, there is no alternate access method. When it is a printing character, then there is such a method.&lt;br /&gt;GNU ls uses a ‘.’ character to indicate a file with an SELinux security context, but no other alternate access method"&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;&lt;a style="" href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/" id="bclink" title="kostenloser Counter fuer Weblogs"&gt;&lt;span id="bccount"  style="font-size:8px;"&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://track.blogcounter.de/js.php?user=thetom_blog&amp;amp;style=1"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;a href="http://www.blogcounter.de/"&gt;&lt;img style="border: 0px;" alt="Weblog counter" src="http://track.blogcounter.de/log.php?id=thetom_blog" /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;/noscript&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5240359826706545510-5663198986823681718?l=thetoms-random-thoughts.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thetoms-random-thoughts.blogspot.com/feeds/5663198986823681718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5240359826706545510&amp;postID=5663198986823681718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/5663198986823681718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5240359826706545510/posts/default/5663198986823681718'/><link rel='alternate' type='text/html' href='http://thetoms-random-thoughts.blogspot.com/2010/05/openssue-113-and-funny-dots.html' title='openSSUE 11.3 and funny Dots'/><author><name>Thomas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
