<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7061568054540301299</atom:id><lastBuildDate>Thu, 02 Feb 2012 12:00:29 +0000</lastBuildDate><category>O2 Platform</category><title>Dinis Cruz blog</title><description>A blog about transforming Web Application Security into an 'Application Visibility' engine</description><link>http://diniscruz.blogspot.com/</link><managingEditor>noreply@blogger.com (diniscruz)</managingEditor><generator>Blogger</generator><openSearch:totalResults>190</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/DinisCruzBlog" /><feedburner:info uri="diniscruzblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>DinisCruzBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-981703306600141942</guid><pubDate>Thu, 19 Jan 2012 15:31:00 +0000</pubDate><atom:updated>2012-01-19T07:31:11.620-08:00</atom:updated><title>Fixing broken Left-Mouse Click on VMWare fusion</title><description>After a reboot the right-click of my windows box running on Fusion (OSX) stopped working.&lt;br /&gt;
&lt;br /&gt;
After finding similar reports online I was able to fix it by adding this line to the Image vmx file:&lt;br /&gt;
&lt;br /&gt;
mouse.vusb.enable = "TRUE"&lt;br /&gt;
&lt;br /&gt;
Here is the post that provided me the solution:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://communities.vmware.com/message/790567"&gt;http://communities.vmware.com/message/790567&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
And here are a couple more posts talking about this problem:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://communities.vmware.com/message/786963"&gt;http://communities.vmware.com/message/786963&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://communities.vmware.com/thread/124458"&gt;http://communities.vmware.com/thread/124458&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-981703306600141942?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/5M3iQTH_si0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/5M3iQTH_si0/fixing-broken-left-mouse-click-on.html</link><author>noreply@blogger.com (Dinis Cruz)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2012/01/fixing-broken-left-mouse-click-on.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-795018599461173868</guid><pubDate>Wed, 14 Dec 2011 20:50:00 +0000</pubDate><atom:updated>2011-12-14T13:13:51.336-08:00</atom:updated><title>"...O2 in Seattle..." and "...Please Hack TeamMentor (beta)..."</title><description>I'm presenting an updated version of O2 at tonigth's OWASP Chapter meeting (&lt;a href="https://www.owasp.org/index.php/Seattle" target="_blank"&gt;https://www.owasp.org/index.php/Seattle&lt;/a&gt;). &lt;br /&gt;
&lt;br /&gt;
There are a number of new O2 features that I will cover, but to make it  relevant to the audience, I will present O2 as part of a challenge which  is&lt;b&gt; 'Please Hack TeamMentor'&lt;/b&gt;.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://diniscruz.blogspot.com/2011/11/teammentor-v30-beta-is-out-of-bag-try.html" target="_blank"&gt;TeamMentor&lt;/a&gt; is the WebApp product (currently in &lt;a href="http://diniscruz.blogspot.com/2011/11/teammentor-v30-beta-is-out-of-bag-try.html" target="_blank"&gt;Beta&lt;/a&gt;)  I have been developing for Security Innovation with the help of O2  (you can download TeamMentor Beta and its source code from &lt;a href="https://github.com/SecurityInnovation/TeamMentor-3.0-beta/downloads" target="_blank"&gt;GitHub&lt;/a&gt;). &lt;br /&gt;
&lt;br /&gt;
Showing O2 this way will allow me to:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;present and discuss the architecture of a real world app and its security implications &lt;br /&gt;&lt;/li&gt;
&lt;li&gt;how  me (as a developer) see security and its position on the  development/management food-chain (btw on this topic, if you haven't you  should also see my '&lt;a href="http://diniscruz.blogspot.com/2011/10/my-presentation-at-owasp-appsec-brazil.html" target="_blank"&gt;Making Security Invisible by Becoming the Developer's Best Friends&lt;/a&gt;' presentation deliveled at OWASP AppSec Brazil and this amazing video response to it: &lt;a href="http://www.youtube.com/watch?v=HYEPYSF32kQ" target="_blank"&gt;A developer's rant about security professionals&lt;/a&gt; )&lt;br /&gt; &lt;/li&gt;
&lt;li&gt;how O2 allows me to deal with real world problems such as: &lt;br /&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;creating Unit Tests for jQuery/Ajax/WebServices based websites,&lt;/li&gt;
&lt;li&gt;dealing  with automation problems that ALL current browser automation engines  have (WatiN, WatiR, Selenium, Cucumber, WebKit, QUnit, etc...) ,&amp;nbsp; and  visualizing the data created using custom GUIs (note that O2 has native support for  WatiN, NUnit and QUnit and has access/control to all of .NET's WinForms/WPF)&lt;/li&gt;
&lt;li&gt;creating cached versions of the site (controlled by a built-inside-O2 web proxy), &lt;/li&gt;
&lt;li&gt;direcly invoke/compile specific parts/components of the application (this is used to create targeted Unit Tests &amp;amp; fuzzing),&amp;nbsp;&lt;/li&gt;
&lt;li&gt;running consolidated (i.e. all available) NUnit tests using NUnit's GUI, command line and O2 scripts&lt;/li&gt;
&lt;li&gt;dealing with complex webservices &lt;br /&gt; &lt;/li&gt;
&lt;li&gt;view,&amp;nbsp;analyse&amp;nbsp;and test the server side RoleBase Authorization mappings (created using .NET Attributes) which affects the exposed WebServices &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;how the APIs&amp;nbsp;and tools created by O2 purely as 'developer aids' (i.e. not for security) are then massively important, useful and usable on the UnitTesting phase.&lt;/li&gt;
&lt;/ul&gt;
For the 'hands-on' part of the crowd, I want to use the following OWASP projects to help me with TeamMentor development and testing (and I really could do with some help here):&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;ESAPI (both .NET and Javascript) &lt;/b&gt;- Starting with the Encoding part to deal with XSS (needs to be integrated with .NET's AntiXSS)&lt;br /&gt;  &lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppSensor &amp;nbsp;&lt;/b&gt;- to allow TeamMentor to modify its behaviour depending on its current 'attack' level&lt;/li&gt;
&lt;li&gt;&lt;b&gt;OpenSAMM &lt;/b&gt;- create a score card &amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ZAP Proxy &lt;/b&gt;- feed the existing O2 Browser automation scripts via ZAP's proxy and fire up its tests&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Agnitio &lt;/b&gt;(not yet an OWASP) &amp;nbsp;- map out to its check lists&lt;/li&gt;
&lt;li&gt;&lt;b&gt;OWASP Testing, Code Review and Developer Guides&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;... &lt;b&gt;other OWASP projects&lt;/b&gt;? &amp;nbsp;(if you are involved in an OWASP project that you think would be a good fit, please go for it)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
What is&amp;nbsp;interesting&amp;nbsp;about TeamMentor is that it is a complex real world app (with legacy code), containing tons of WebServices and JavaScript/jQuery activity. This makes it very hard to test by today's tools (or even manual process).&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Also very important, is the fact that we are dealing with a team/company that welcomes the 'Security' part of the SDL (which doesn't happen very often :) &amp;nbsp;)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I'm very happy that SI is ok with this, and my hope is that this will allow us to have a number of&amp;nbsp;interesting&amp;nbsp;conversations/threads (hard to happen in test apps like WebGoat or HacmeBank, or apps where the main developers are not directly engaged in the process)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
For the ones that can't come tonight, I will follow up later this week with more detailed instructions.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So here is your official invite:&amp;nbsp;&lt;b&gt;Go and HACK TeamMentor (&lt;a href="https://github.com/SecurityInnovation/TeamMentor-3.0-beta/downloads" target="_blank"&gt;GitHub&lt;/a&gt;) and report your findings as O2, NUnit, Python, Boo, etc. scripts.&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Btw, since this is a Beta version, I'm sure that there are still a number of areas which have juicy security vulnerabilities! Good luck in finding then :)&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Only one condition, &lt;b&gt;I WILL NOT READ any findings reported in PDF format&lt;/b&gt; :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-795018599461173868?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/FvRIUAg9VS4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/FvRIUAg9VS4/o2-in-seattle-and-please-hack.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/12/o2-in-seattle-and-please-hack.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-9151091778644654600</guid><pubDate>Thu, 24 Nov 2011 00:11:00 +0000</pubDate><atom:updated>2011-11-23T16:14:17.183-08:00</atom:updated><title>Please root these devices (project and customer awareness)</title><description>&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;Here is a cool&amp;nbsp;opportunity which also raises some&amp;nbsp;interesting&amp;nbsp;questions&lt;/span&gt;&lt;br /&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="font-family: arial, sans-serif;"&gt;I just got asked to see if I could&amp;nbsp;recommend&amp;nbsp;a good AppSec and Reverse&amp;nbsp;Engineer&amp;nbsp;person to spend one month breaking the security of a tablet (and another device) that is&amp;nbsp;coming&amp;nbsp;to a place near you next year.&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
The brief is quite an&amp;nbsp;interesting&amp;nbsp;one, since it basically says:&amp;nbsp;&lt;i&gt;'...please root this device, show how to install malicious apps on it without root, and/or show how to extract encrypted content...' &amp;nbsp;&lt;/i&gt;(so if you know somebody or are&amp;nbsp;interested&amp;nbsp;please ping me directly)&lt;/div&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
What is interesting about this gig is the company that it is from. Usually those corporate folks are bit more gentle and politically correct, but this shows that these guys really want to know first the problems (which is a nice evolution in our market).&amp;nbsp;I have to say that 'finally' I have seen more people/customers who want to be secure (vs being compliant or wanting to been seen doing something about it).&lt;/div&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
It also shows how interconnected out day-to-day devices are becoming, and how big a can of worms (from a security point of view) they can/will be.&lt;/div&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;span style="font-size: x-small;"&gt;Note how&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: arial, sans-serif;"&gt;web app security is staring to be more and more dependent with the devices that use it, for example, there could be a number of vulnerabilities created by how the client/server exchanges occur (it would be cool to root the device by tricking it into installing something via an&amp;nbsp;reflected&amp;nbsp;exploit on the server, would we call that a 'Reflected Root'&amp;nbsp;vulnerability? :) &amp;nbsp; ) .&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
This also feels a lot like the 'return of the fat client', where the vendors have so much control over the client's device that they extend the attack surface to it (which could lead to a number of security decisions being made on the wrong location).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-9151091778644654600?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/8gy6_VGwOCo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/8gy6_VGwOCo/please-root-these-devices-project-and.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/please-root-these-devices-project-and.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-1395781424862460499</guid><pubDate>Wed, 23 Nov 2011 14:14:00 +0000</pubDate><atom:updated>2011-11-23T06:18:43.530-08:00</atom:updated><title>Heads up on O2 WebProxy and WAF Simulator</title><description>For the more advanced O2 users out there, I just committed a new set of O2 scripts that implement two very powerful&amp;nbsp;capabilities&lt;br /&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;O2 Web Proxy&lt;/b&gt; - native (to O2) web proxy that sits between the IE automation object and the rest of the world (although inside the same O2 .Net process). This was based on the code in&amp;nbsp;&lt;a href="http://www.codeproject.com/KB/IP/HTTPSDebuggingProxy.aspx"&gt;http://www.codeproject.com/KB/IP/HTTPSDebuggingProxy.aspx&lt;/a&gt; and it givesO2 something that I have been wanting for years now: Programatically access to a Web Proxy. This opens up a LARGE number of testing/fuzzing capabilities and dramatically simplify IE analysis tasts (for example, something that is now simple to get is the full value of the Cookies (and Headers) sent to/from the IE browser (the http-only cookes for example were really hard to get) )&lt;/li&gt;
&lt;li&gt;&lt;b&gt;O2 WAF&amp;nbsp;Simulator&lt;/b&gt;&amp;nbsp;- built on top of the &amp;nbsp;O2 Web Proxy, I was able to quickly create a WAF simulator which uses the O2 Proxy's callbacks to fix a couple vulnerabilities in the test app I was looking at (great when talking to developers about the vulnerabilities discovered and its possible fixes)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
I will shortly put more details about this on the O2 blog&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
What I like the most about these two new capabilities, is that this was all created/implemented in about 4h of focused-development (and shows how powerful O2's APIs and quick-prototyping development&amp;nbsp;environment&amp;nbsp;have become)&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-1395781424862460499?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/YQcN2q8mRBg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/YQcN2q8mRBg/heads-up-on-o2-webproxy-and-waf.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/heads-up-on-o2-webproxy-and-waf.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-3787676908860271013</guid><pubDate>Wed, 23 Nov 2011 13:58:00 +0000</pubDate><atom:updated>2011-11-23T06:18:35.491-08:00</atom:updated><title>Help on running Cucumber via security tools and .NET</title><description>Hi, I need to integrate Cucumber into O2, so I was wondering if I could get some help.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here is my first set of challenges:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;I need a couple Cucumber scripts (running on top of Ruby) that do some kind of web actions (ideally on a vuln app like webgoat,&amp;nbsp;&lt;a href="http://google-gruyere.appspot.com/"&gt;http://google-gruyere.appspot.com&lt;/a&gt;, hacmebank, etc...) so that we can test the following&amp;nbsp;scenarios:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Trigger this tests directly from O2 (including seeing its results). This could be as simple as triggering Cucumber from the command line&lt;/li&gt;
&lt;li&gt;Run those same tests via a security proxy/tool/scanner so that we can 'teach it' how to app works. This should work for any tool that can act like a proxy, but to start, I would like to run it on&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;OWASP ZAP&lt;/li&gt;
&lt;li&gt;NetSparker&lt;/li&gt;
&lt;li&gt;AppScan Standard&lt;/li&gt;
&lt;li&gt;Burp&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;Use IronPython to run cucumber tests/features directly in .NET/O2 so that I can create a solid two way communication and instrumentation between those scripts and O2 (i.e. O2 to consume them directly, and the scripts being able to access O2 APIs)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
Thanks&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-3787676908860271013?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/Q8IlkbaQWdw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/Q8IlkbaQWdw/help-on-running-cucumber-via-security.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/help-on-running-cucumber-via-security.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-1444967347821117405</guid><pubDate>Fri, 11 Nov 2011 11:15:00 +0000</pubDate><atom:updated>2011-11-23T06:18:25.028-08:00</atom:updated><title>Comment on reply to post: Mark on 'Models for Better Security Communities'</title><description>(comment I made on the OWASP mailing list last week which contains some ideas on where I see OWASP going next)&lt;br /&gt;
&lt;br /&gt;
Stephen, you absolutely shouldn't feel guilty of 'only' contributing to OWASP through your regular bursts of energy (I put 'only' in quotes, since you are one of my favorite OWASP stories, and a talent that I'm very proud to have helped to&amp;nbsp;attract to OWASP) . Your type of contributions is one of the things that have built OWASP and it is one of its most amazing&amp;nbsp;characteristics.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In fact, my view, the job of OWASP 'the organization' is to make sure that when you do focus and want to commit some energy, there is an environment (or ecosystem) that will make that process as productive, enjoyable and efficient as possible.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In that light, OWASP 'the&amp;nbsp;organization'&amp;nbsp;should be much more like an event organizer (think 'music production company') than a big 'we have the vision and know it all' type of org.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Please don't be to hard on Mark since his heart is absolutely on the right place (and let's not really judge Microsoft's ethics since most large companies these days wont get a clean bill of health :) &amp;nbsp;).&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
One think I learned from playing music is that you have to listen to the audience's comments, and most of the times they say (from your point of view of course) the right thing the wrong way (or not the same way you would articulate it).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Mark wants a more professional and focused approach to OWASP, where there is energy and commitment in the creation of very professional, high-quality, well presented, easy to use/adopt and community-friendly deliveries (tools, books, guides, dev outreach, etc...).&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Which is exactly what I also want.&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;That doesn't mean that we stop supporting the grassroots movements and activities that allowed OWASP to be want is it today (and empower its contributors to 'just get on with it and try to find a solution')&lt;b&gt;. It means instead that we need to put a lot more investment and effort into creating an operational machine that will support it &lt;/b&gt;(we have the talent at OWASP, what we don't have is the operational machine (which OWASP's leaders are not really good at, or have time to dedicated to it)).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
Part of the problem is that there is still this view at OWASP that we need:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;a strong mission, vision, etc...&lt;/li&gt;
&lt;li&gt;high level commitments/endorsements and&amp;nbsp;&lt;/li&gt;
&lt;li&gt;centrally&amp;nbsp;controlled activities&lt;/li&gt;
&lt;/ul&gt;
.... as if we had those anything would happen because of it :)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Part of the problem of this type of thinking, is that it creates an environment where Mark (correctly under that&amp;nbsp;thinking) was expecting a level of support and&amp;nbsp;endorsement&amp;nbsp;for his ideas that is just not possible at OWASP.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The irony is that there are lots of really great leaders inside OWASP that share Mark's wish for a more professional and dev-community-friendly OWASP. Unfortunately we (OWASP) still have not come up with an operational model that allow those groups to aggregate and&amp;nbsp;flourish&amp;nbsp;(I don't think the current Commitees structure are the right structure, but maybe the&amp;nbsp;&lt;a href="https://www.owasp.org/index.php/Security_Ecosystem_Project"&gt;https://www.owasp.org/index.php/Security_Ecosystem_Project&lt;/a&gt; is a better one).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Btw, for me the only vision and mission that OWASP needs is three (or maybe two) words: &lt;b&gt;Web Application Security &lt;/b&gt;or maybe just even two: &lt;b&gt;Application Security&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So please embrace Mark's ideas and comments, you might not like his style (like many don't like mine), but he is carrying a important message.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Think about this, we are lucky that Mark cared enough about OWASP that he spent his time documenting and talking about his issues and problems. We would be much worse if he had just ignored OWASP. In fact, I wish he blogged more about his ideas for OWASP since there are some great stuff in there :). He also talks to a lot of people about OWASP, specially from people who would like to be involved at OWASP but have not found their sweet spot. We need to hear those voices and find ways to connect to them.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-1444967347821117405?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/eE06oR8eOxY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/eE06oR8eOxY/comment-on-reply-to-post-mark-on-models.html</link><author>noreply@blogger.com (dinis)</author><thr:total>1</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/comment-on-reply-to-post-mark-on-models.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-4035953458501025772</guid><pubDate>Wed, 09 Nov 2011 15:23:00 +0000</pubDate><atom:updated>2011-11-09T07:23:34.952-08:00</atom:updated><title>Solution for fixing Spring's JPetStore AutoBinding vulnerabilities</title><description>Here is an O2 blog post that describes my&amp;nbsp;preferred&amp;nbsp;solution for &lt;a href="http://o2platform.wordpress.com/2011/11/09/fixing-one-of-jpetstores-autobinding-vulnerabilities-changing-the-purchase-price/"&gt;Fixing one of JPetStore's AutoBinding Vulnerabilities (changing the purchase price)&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I have to say that as a developer doing the code fix, it was simply amazing and very powerful to have the complete web workflow of the shopping cart available as an&amp;nbsp;automated&amp;nbsp;O2 script .&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This allowed me to quickly ensure that:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; a) the app still behaved as it should (after the fix)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; b) the&amp;nbsp;vulnerabilities&amp;nbsp;identified where properly fixed&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
What do you think of the solution?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-4035953458501025772?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/5oAS_LsTUKs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/5oAS_LsTUKs/solution-for-fixing-springs-jpetstore.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/solution-for-fixing-springs-jpetstore.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-883406881826900297</guid><pubDate>Tue, 08 Nov 2011 16:09:00 +0000</pubDate><atom:updated>2011-11-08T08:09:23.861-08:00</atom:updated><title>Integrating Security into the User's Gui - In this case Rational AppScan Source in AppScan Standard</title><description>Based on an&amp;nbsp;&lt;a href="http://securityinnovation.com/"&gt;SI&lt;/a&gt;&amp;nbsp;engagement&amp;nbsp;I'm currently involved in, which is focused on the integration AppScan Source and Standard findings, here is a pretty cool PoC of what we are doing there:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://o2platform.files.wordpress.com/2011/11/tmp5c74-tmp.jpeg?w=620&amp;amp;h=427" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://o2platform.files.wordpress.com/2011/11/tmp5c74-tmp.jpeg?w=620&amp;amp;h=427" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
What you have in the&amp;nbsp;screenshot&amp;nbsp;above is a PoC of showing AltoroJ's findings from IBM Rational AppScan Source (a SAST/WhiteBox tool) inside the equivalent findings from AppScan Standard (a DAST/BlackBox tool).&lt;br /&gt;
&lt;br /&gt;
The core idea is that we should be presenting and integrating the information that we are able to create from the multiple tools we use (+ human knowledge) into the tools that the user is more&amp;nbsp;comfortable&amp;nbsp;with.&lt;br /&gt;
&lt;br /&gt;
So in this case we have an DAST user (typical pentester) being able to leverage the analysis created by a SAST (Static Analysis) tool.&lt;br /&gt;
&lt;br /&gt;
It is also a much better way to show and present these findings to developers, since we can immediately talk about how to&amp;nbsp;remediable&amp;nbsp;the code.&lt;br /&gt;
&lt;br /&gt;
Another massive benefit from performing security reviews this way is that it really highlights&amp;nbsp;the best (and worse) of both tools (i.e. what SAST finds and DAST misses, and what DAST finds and SAST misses)&lt;br /&gt;
&lt;br /&gt;
Ultimately both SAST and DAST results must match :)&lt;br /&gt;
&lt;br /&gt;
If you want to see how that PoC was created inside AppScan Standard, take a look at these two blog posts:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://o2platform.wordpress.com/2011/11/08/showing-appscan-source-findings-inside-appscan-standard/"&gt;Showing IBM Rational AppScan Source Findings inside AppScan Standard (1st PoC)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://o2platform.wordpress.com/2011/11/08/o2-scripting-samples-automating-rational-appscan-standard-gui-and-adding-appscan-standard-findings/"&gt;O2 Scripting Samples: Automating Rational AppScan Standard GUI and adding AppScan Standard Findings&lt;/a&gt; &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-883406881826900297?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/SCLGxAwBKLw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/SCLGxAwBKLw/integrating-security-into-users-gui-in.html</link><author>noreply@blogger.com (Dinis Cruz)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/integrating-security-into-users-gui-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-304565588747713826</guid><pubDate>Mon, 07 Nov 2011 11:03:00 +0000</pubDate><atom:updated>2011-11-07T03:03:39.793-08:00</atom:updated><title>In ASP.NET, prevent XSS with automatic html encoding</title><description>Yesterday when looking for the &lt;a href="http://asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt; XSS mappings I found an article that presents a solution that I have been looking for ages: &lt;b&gt;&lt;i&gt;Changing the behaviour of the&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&amp;nbsp;&lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt;&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&amp;lt;%= tag so that it encodes by default.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Steve is the man, check this out:&amp;nbsp;&lt;a href="http://blog.stevensanderson.com/2007/12/19/aspnet-mvc-prevent-xss-with-automatic-html-encoding/" target="_blank"&gt;http://blog.stevensanderson.com/2007/12/19/aspnet-mvc-prevent-xss-with-automatic-html-encoding/&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
His technique of hooking the compilation step is absolutely brilliant&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you look at the code:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;He creates a class (&lt;i&gt;SafeEncodingCSharpCodeProvider&lt;/i&gt;) &amp;nbsp;that implements &lt;i&gt;CSharpCodeProvider&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;in there he overrides &lt;i&gt;GenerateCodeFromStatement(System.CodeDom.CodeStatement statement, TextWriter writer, CodeGeneratorOptions options)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;then finds a&amp;nbsp;&lt;i&gt;CodeMethodInvokeExpression &lt;/i&gt;that is a Write&lt;/li&gt;
&lt;li&gt;and wraps the parameter in a call to&amp;nbsp;&lt;i&gt;SafeEncodingHelper.SafeEncodingCSharpCodeProvider.EncodeHtmlIfNeeded&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
This is a massive step on the right direction, but there are a couple things that we should also take into account:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;encoding is done with the&lt;i&gt;&amp;nbsp;HttpUtility.HtmlAttributeEncode&lt;/i&gt; which is not as sounds as the AntiXSSLibrary (note how he added an extra patch to encode ' )&lt;/li&gt;
&lt;li&gt;we will need to take into account where in the page's HTML is the output going to be used (an HtmlElement, vs an Attribute, vs Javascript, vs CSS), and this can only be done with Static Analysis&amp;nbsp;technology&amp;nbsp;(SAST)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
I also like the ability to change the framework the developer is coding on top, and make it secure by-default. This is another example of &lt;a href="http://diniscruz.blogspot.com/2011/10/my-presentation-at-owasp-appsec-brazil.html"&gt;making security invisible&lt;/a&gt;&amp;nbsp;since it allow us to add security in a way that it is invisible/transparent to developers. In that worlds, the devs only need to care about security when they are doing security-sensitive actions (which must still be&amp;nbsp;supported, but should be the exception, not the norm).&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
One&amp;nbsp;interesting question is where we want to do this change as a hardcoded compiler step (Steve's example), or do it directly on the code before it is compiled (as I show in the&amp;nbsp;&amp;nbsp;&lt;a href="http://o2platform.wordpress.com/2011/11/07/fixingencoding-net-code-in-real-time-in-this-case-response-write/"&gt;Fixing/Encoding .NET code in real time (in this case Response.Write)&lt;/a&gt;&amp;nbsp;example)?&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-304565588747713826?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/7MHp9H7sb0w" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/7MHp9H7sb0w/in-aspnet-prevent-xss-with-automatic.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/in-aspnet-prevent-xss-with-automatic.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-367083066324908289</guid><pubDate>Mon, 07 Nov 2011 11:02:00 +0000</pubDate><atom:updated>2011-11-08T05:32:56.959-08:00</atom:updated><title>The future of secure code? Fixing/Encoding .NET code in real time (in this case Response.Write)</title><description>If we really want to help developers to fix they code, we ultimately need to move all the way into their IDEs and actually provide them code-fixes in context!&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A while back somebody asked me how to perform actually .NET code changes and patches using O2's .NET Static Analysis engine, and I wrote a little PoC that clearly shows how that can be done (and a preview of what the future looks like).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I just wrote a O2 blog post about it which you can find here:&lt;br /&gt;
&lt;a href="http://o2platform.wordpress.com/2011/11/07/fixingencoding-net-code-in-real-time-in-this-case-response-write"&gt;http://o2platform.wordpress.com/2011/11/07/fixingencoding-net-code-in-real-time-in-this-case-response-write&lt;/a&gt;&amp;nbsp;(if you have O2 installed just run the&amp;nbsp;&lt;b&gt;&lt;i&gt;Fixing Response.Write.h2&lt;/i&gt;&lt;/b&gt; script)&lt;br /&gt;
&lt;br /&gt;
Here is a 20 sec video that shows this script in action:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/QKrZgZlGiO4/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QKrZgZlGiO4?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;
&lt;param name="bgcolor" value="#FFFFFF" /&gt;
&lt;embed width="320" height="266"  src="http://www.youtube.com/v/QKrZgZlGiO4?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I really like this concept and it is sort of similar to what Spring is doing with Roo (&lt;a href="http://www.springsource.org/spring-roo"&gt;http://www.springsource.org/spring-roo&lt;/a&gt;) where the developer's code is automatically&amp;nbsp;refactored in order to meet&amp;nbsp;specific&amp;nbsp;objectives&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-367083066324908289?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/WNKvtJdHKBI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/WNKvtJdHKBI/future-of-secure-code-fixingencoding.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/future-of-secure-code-fixingencoding.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-2273228813805105569</guid><pubDate>Sun, 06 Nov 2011 16:06:00 +0000</pubDate><atom:updated>2011-11-06T08:06:50.794-08:00</atom:updated><title>ASP.NET Anchor tag allows XSS payloads, is this a vulnerability on the .NET Framework?</title><description>&lt;div&gt;
I just posted a blog entry on an O2 script I wrote a couple days ago that checked if the HREF tag in &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt;&amp;nbsp;HtmlAnchor control is vulnerable to XSS:&amp;nbsp;&lt;a href="http://o2platform.wordpress.com/2011/11/06/checking-if-nets-htmlanchor-href-property-is-vulnerable-to-xss/"&gt;http://o2platform.wordpress.com/2011/11/06/checking-if-nets-htmlanchor-href-property-is-vulnerable-to-xss/&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There are a number of really cool&amp;nbsp;techniques on this script:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Render the Html Tag control in isolation (which will allow these tests to be run from vanilla UnitTests)&lt;/li&gt;
&lt;li&gt;Quickly put Html content in a browser and see what it looks like&lt;/li&gt;
&lt;li&gt;Quickly fire-up an .NET Webserver on a local directory, create a test *.aspx page, and see its contents (rendered from the &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; server)&lt;/li&gt;
&lt;li&gt;Test some payloads on the *.aspx page and confirm (or not) the&amp;nbsp;exploitability&amp;nbsp;of this control (a good follow-up script to write is to run the FuzzDB on this property and see which ones work)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Since it is safe to assume that the Href from an HtmlAnchor should not have " (and other dangerous chars) in its rendered text (it should be encoded), shouldn't this be classified as a vulnerability in the Asp.Net Framework? Specially since it bypasses the &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; build-in validation.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Is this documented somewhere? I know there is (somewhere) a list of all &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; mappings (so it should be there), but I just looked at the MS pages for the HtmlAnchor tag and there is no mention in there for the security implications of this:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlanchor.aspx"&gt;HtmlAnchor Class&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlanchor.href.aspx"&gt;HtmlAnchor.HRef Property&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/8ff86hxd(v=VS.90).aspx"&gt;HtmlAnchor Server Control Declarative Syntax&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-2273228813805105569?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/nwPlYBsmTPc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/nwPlYBsmTPc/aspnet-anchor-tag-allows-xss-payloads.html</link><author>noreply@blogger.com (dinis)</author><thr:total>3</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/aspnet-anchor-tag-allows-xss-payloads.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-8332156422461635339</guid><pubDate>Sat, 05 Nov 2011 17:46:00 +0000</pubDate><atom:updated>2011-11-06T01:43:32.272-08:00</atom:updated><title>New O2 main GUI (as 2.0 beta version)</title><description>I just pushed a new simpler GUI for O2 which will hopefully make it easier to quickly start using O2 and find useful scripts.&lt;br /&gt;
&lt;br /&gt;
This is what it looks like:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://o2platform.files.wordpress.com/2011/11/tmpb353-tmp.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="https://o2platform.files.wordpress.com/2011/11/tmpb353-tmp.jpeg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Let me know what you think of it.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Do you like it?&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Does it make it easier?&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
You can read mode details about this new GUI at&amp;nbsp;&lt;a href="http://o2platform.wordpress.com/2011/11/05/details-of-new-o2-main-gui-as-2-0-beta-version/"&gt;Details of new O2 main GUI (as 2.0 beta version)&lt;/a&gt;&amp;nbsp;and you can &lt;a href="http://o2platform.googlecode.com/files/OWASP%20O2%20Platform%20%28ClickOnce%20Installer%29.exe"&gt;download the latest version of O2 from here&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-8332156422461635339?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/nojwpV15LM4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/nojwpV15LM4/new-o2-main-gui-as-20-beta-version.html</link><author>noreply@blogger.com (Dinis Cruz)</author><thr:total>1</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/new-o2-main-gui-as-20-beta-version.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-3040796594898276091</guid><pubDate>Wed, 02 Nov 2011 22:25:00 +0000</pubDate><atom:updated>2011-11-02T15:25:26.506-07:00</atom:updated><title>Using O2 to help an AppScan Source (and Standard) user</title><description>Yesterday I had a great session with a potential SI customer where I was tasked to help them make the most out of AppScan Source resources.&lt;br /&gt;
&lt;br /&gt;
The scenario is a very typical one for any SAST client (namely Ounce/AS.Source or Fortify):&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;They have a large .NET application, made of a large number of projects (i.e. big code base)&lt;/li&gt;
&lt;li&gt;The app is quite complex and makes use of multiple messaging-buses to move data around (think of this has a more obscure version of getters and setters pairs)&lt;/li&gt;
&lt;li&gt;There where a good number of AS.Source results (about 19k findings with 11k traces), but very few that actually make sense (to them)&lt;/li&gt;
&lt;li&gt;The security team is made of really cleaver guys (who know how to code in C#) and with good understanding of how the app works (add as a bonus the fact that they actually want to improve the apps security (vs being compliant) and that they want to get good value from SAST+DAST tools)&lt;/li&gt;
&lt;li&gt;Since the security team actually knows the app and what type of issues exist in there, they where very quickly able to look at the initial AS.Source findings and say&lt;br /&gt;&lt;br /&gt;".... that is not good enough!' &amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; a) there can't be THAT number of 'findings' and &lt;br /&gt;&amp;nbsp; &amp;nbsp; b) I know for a fact that a number of those 'findings' are false' ..."&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
So after trying to get a number of good results via the 'official way' (i.e. using a bunch of IBM/AppScan guys), the IBM sales rep decided to bring in a company that he trusted in Boston (&lt;a href="http://securityinnovation.com/"&gt;Security Innovation&lt;/a&gt;) which happened to have a guy in there that really knows how to get the most out of AppScan Source (me) with a toolkit that allows the easy development, test and deployment of the analysis&amp;nbsp;customization&amp;nbsp;that will be required to get this to work: the &lt;a href="http://o2platform.com/"&gt;OWASP O2 Platform&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The model that we are going to use on this engagement is one where:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;I am going to create a&amp;nbsp;customized&amp;nbsp;version of &lt;a href="http://o2platform.com/"&gt;O2&lt;/a&gt; for the client which is going to be fully supported by &lt;a href="http://securityinnovation.com/"&gt;SI&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;IBM makes a product sale&amp;nbsp;&lt;/li&gt;
&lt;li&gt;SI makes a service sale&amp;nbsp;&lt;/li&gt;
&lt;li&gt;and O2 gets a couple more tools and scripts (any new code that doesn't contain the client's apps information/structure will be&amp;nbsp;committed&amp;nbsp;back to the O2 code base).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
I was there for most of the day, and here is what happened:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;After the intros, the IBM and SI reps defined the working model where IBM would be focused on the product side and SI would be focused on the customization side&lt;/li&gt;
&lt;li&gt;This meat that instead of having to deal with the normal road-blocks created by trying to get the AS.Source to work, we could move strait away into the solution part, ie using O2 :)&lt;/li&gt;
&lt;li&gt;I started to explain my methodology, namely how I use O2 to analyse an application's structure and connect the dots, but since clearly they had no idea of what I was talking about looked like (and they had never seen O2), I decided to do a number of demos:&lt;/li&gt;
&lt;li&gt;After firing up a projector, I showed them the O2 scripts with the analysis of the JPetStore (see &lt;a href="http://diniscruz.blogspot.com/2011/07/current-o2-support-for-analyzing-spring.html"&gt;Current O2 support for analyzing Spring MVC&lt;/a&gt;). This is the order that I showed this scripts:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;launched the main O2 Script and showed how I could click on a link to start the local apache and hqsql server&lt;/li&gt;
&lt;li&gt;make a couple simple browser-automation requests to the server to make sure it is working ok&lt;/li&gt;
&lt;li&gt;opened up the O2 script with the exploits&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;executed the multi-step shopping card purchase without any payloads (just the normal JPetstore app behaviour)&lt;/li&gt;
&lt;li&gt;executed the same shopping card purchase with the payload that allowed the modification of the total purchase price&lt;/li&gt;
&lt;li&gt;executed the other exploit scripts (variations of the above)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;then I opened up the script that showed the Spring MVC mappings, namely&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;all urls&lt;/li&gt;
&lt;li&gt;urls mapped to source code&lt;/li&gt;
&lt;li&gt;correct identification of the Command Class used on the Spring Autobinding&lt;/li&gt;
&lt;li&gt;correct&amp;nbsp;visualization&amp;nbsp;of the real size of the CommandClass used on the shopping card (which is huge and allows for the manipulation of many more fields than the ones exposed in the web gui, like for example the setTotalPrice)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;.... Now they were getting into O2 .... and since the main guy from their security team knew how to code in C# he was able to write most of the scripts I talk about below (with my guidance and help on the best O2 APIs to use :) )&lt;/li&gt;
&lt;li&gt;While we (me and a great friend from IBM that was there as a technical resource from IBM) grabbed a coffee, they installed O2 and found a test version of the target website that we could use (he also copied the O2 Click-One installed files and O2 scripts into another Box which didn't had direct internet access (ie. you can run/install O2 without the click-once installer))&lt;/li&gt;
&lt;li&gt;Now we were ready to go and we started with the &lt;i&gt;O2 Quick Development GUI &lt;/i&gt;writing a script that:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;retrieved all files from a particular directory&lt;/li&gt;
&lt;li&gt;added a treeview to the 'panel' control (from the&amp;nbsp;&lt;i&gt;O2 Quick Development GUI&lt;/i&gt;)&lt;/li&gt;
&lt;li&gt;added the files to the treeview&lt;/li&gt;
&lt;li&gt;added a source code viewer to the panel control&lt;/li&gt;
&lt;li&gt;configured the treeview to show the file contents when the user clicked on one of its nodes&lt;/li&gt;
&lt;li&gt;made the script run on a popup window (instead of the panel control)&lt;/li&gt;
&lt;li&gt;saved the script on a local folder (as an *.h2 file)&lt;/li&gt;
&lt;li&gt;clicked on that *.h2 file to see how this script had just become a stand-alone tool&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;By now they were staring to get the really power of O2 for fast prototyping and mini-tool development&lt;/li&gt;
&lt;li&gt;Then we moded into the &lt;i&gt;O2&amp;nbsp;IE Automation control &lt;/i&gt;script&amp;nbsp;and:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;created a script that would open their website&lt;/li&gt;
&lt;li&gt;retrieved the list of fields&lt;/li&gt;
&lt;li&gt;found the field that controlled a search function&lt;/li&gt;
&lt;li&gt;populated that field (programatically) with a specific value&lt;/li&gt;
&lt;li&gt;tried to find the submit button but it was not there (it was an image with a link)&lt;/li&gt;
&lt;li&gt;injected jQuery and FirebugLite into the IE object so that we could use it to find the search button (i.e. image with link) id&lt;/li&gt;
&lt;li&gt;once we knew that id (back in O2) get its reference and click it (programatically)&lt;/li&gt;
&lt;li&gt;now that we had a working search automation, we created a inner lambda method so that it could be invoked with just a method call: &lt;i&gt;search('....')&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;tried to show how O2 FuzzDB could be used to easily run a batch of XSS or SQLi test strings on that automation, but their firewall rules prevented the download of it :)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;ok... and that was just on a couple hours, ... with him coding now me &amp;nbsp;... :)&lt;/li&gt;
&lt;li&gt;The next script was more&amp;nbsp;interesting, we went back to the first script (the one where you could click on a treeNode and see its contents) and did this to it:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;changed the location path to be root of the app we were looking at&lt;/li&gt;
&lt;li&gt;changed the search extensions to be *.asmx, *.asmx, *.ashx&lt;/li&gt;
&lt;li&gt;added a web browser so that we could also see the web page that was related to that page (this was done by simply doing a search and replace of the root path with a url)&lt;/li&gt;
&lt;li&gt;added an extra source code viewer so that we also could see the source code of the .cs page, ie:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;user clicked on &lt;b&gt;c:\...path...\webroot\page.aspx&lt;/b&gt; (in the treeview on the top left) and&amp;nbsp;&lt;/li&gt;
&lt;li&gt;open in browser (top right) the web page &lt;b&gt;http://....test...site.../page.aspx&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;open in source code viewer #1 (bottom left) the file&amp;nbsp;&lt;b&gt;c:\...path...\webroot\page.aspx&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;open in source code viewer #2 (bottom right) the file&amp;nbsp;&lt;b&gt;c:\...path...\webroot\page.aspx.cs&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;... Now they were getting really excited... . What what happening was that they were realising/visualizing&lt;i&gt;&lt;b&gt; that the real power and&amp;nbsp;uniqueness&amp;nbsp;of O2, is not on the ability to write such scripts &lt;/b&gt;(you can do that in Visual Studio or Eclipse given enough time),&lt;b&gt; but in the ability to do it in such interactive environment and speed (during the&amp;nbsp;security&amp;nbsp;review engagement)&lt;/b&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Next we went back to the AS.Scan results and started reviewing them (using O2's *.ozasmt file viewers which are super fast and interactive)&lt;/li&gt;
&lt;li&gt;Once we had a couple&amp;nbsp;interesting&amp;nbsp;targets and&amp;nbsp;realized&amp;nbsp;that we had good traces for the web pages we were looking at before, we made the following changes to the previous script&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;add support for loading up *.ozasmt files&lt;/li&gt;
&lt;li&gt;add support to cache the loading up of *.ozasmt file (which not only made the multiple 'code changes + auto compile + execution' cycles much faster, but it also keeped the memory consumption of the O2 process under control :)&lt;/li&gt;
&lt;li&gt;added a *.ozasmt findings viewer to the main gui (we put it on the top right)&lt;/li&gt;
&lt;li&gt;created a Lambda function that was able to create a filtered view of the findings loaded based on a file name (this was basically a &lt;i&gt;foreach&lt;/i&gt; loop that returned a match for findings that had a trace from that file)&lt;/li&gt;
&lt;li&gt;modified the &lt;i&gt;afterSelect&lt;/i&gt; event of the &lt;i&gt;treeview&lt;/i&gt; to also call the findings filtering lambda function (and viewer), and&amp;nbsp;&lt;/li&gt;
&lt;li&gt;.... finally we ended up with &amp;nbsp;a pretty sweet tool, that when the user selected a particular *.aspx, it would :&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;show its web pages&lt;/li&gt;
&lt;li&gt;show both is source code files (*.aspx and *.aspx.cs)&lt;/li&gt;
&lt;li&gt;showed all findings that were related to that file&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;By now we were running out of time, but I got the feeling the they really got a taste for the type of analysis that can be done with O2 and AS.Source&lt;/li&gt;
&lt;li&gt;They also started to see the power of having a large number of AS.Source findings since that can be of&amp;nbsp;enormous&amp;nbsp;value when looking/analysing sprecific parts of the application (btw 11k traces are nothing for O2 , it can handle 100k or even 1M traces :) &amp;nbsp;)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;One of the steps that needs to happen over the next week or so, is that my good IBMer friend will work with them to add the missing taint rules (namely Sources and Sink) and rerun the scans (one key problem that was happening is that due to the large number of abstraction layers the AS.Source was missing both sources and sinks on lots of key parts of the application (i.e. creating no traces))&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
As a side note, they were also having lots of problems with a big&lt;b&gt; 5Gb AppScan Standard file.&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I wanted to take a look since O2 has a parser for it, and part of the exercise&lt;b&gt; is to connect the AppScan Source findings with the AppScan Standard findings&lt;/b&gt; (i.e. urls to source code).&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
When I asked him to unzip that 5GB (*.scan) file and just give me the internal findings file (which is a FireBird DB), he asked me &lt;i&gt;'... unzip what?...'&amp;nbsp;&lt;/i&gt;(i.e. he never looked inside an AppScan Standard results file!)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This is quite crazy, since there is so much good stuff in those files that I'm sure will be useful for him when&amp;nbsp;performing manual+automation app reviews (I wonder how many AppScan Standard users actually know that it's possible to access those resources)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Btw, the O2 script that we wrote stayed at their offices, but since that is quite a generic need (map *.aspx pages to website and source) I will write a generic version of it to show what it looks like (in fact O2 already has a more advanced and complex version of that script, which also maps *.aspx to *.ascx which I used and developed in the initial stages of my TeamMentor coding (i.e. when I was trying to figure out what was going on))&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
I know that some people will look at what we did yesterday and wish that was not needed, unfortunately in the real world all apps are&amp;nbsp;different&amp;nbsp;and if we don't have the ability to create workflows like the one described here, we will always struggle to understand how the app work (and get the best out of the tools we have).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
As a final point, what also happened yesterday (and always happens when I show these capabilities/scripts to security teams or devs), is that they were also seeing the&amp;nbsp;opportunities&amp;nbsp;to use this for more than security (specially to create bridges+dialogues with development/QA teams)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
But that is topic for another blog post.....&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
:)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-3040796594898276091?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/apomcjVtUAc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/apomcjVtUAc/using-o2-to-help-appscan-source-and.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/using-o2-to-help-appscan-source-and.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-5965334334413065680</guid><pubDate>Wed, 02 Nov 2011 15:24:00 +0000</pubDate><atom:updated>2011-11-02T08:24:56.409-07:00</atom:updated><title>Unit Tests to detect problems with site and content integrity</title><description>So with the public launch of &lt;a href="http://diniscruz.blogspot.com/2011/11/teammentor-v30-beta-is-out-of-bag-try.html"&gt;TeamMentor Beta &lt;/a&gt;I now have a nice problem to solve:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;"How to write UnitTests (Browser Automation and WS driven) that test for the valid state of the TM test websites (&lt;a href="http://50.19.221.68:90/"&gt;http://50.19.221.68:90&lt;/a&gt; and&amp;nbsp;&lt;a href="http://50.19.221.68:91/"&gt;http://50.19.221.68:91&lt;/a&gt;) and ensure that they have not been spectacularly modified, modified or hacked :)"&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Here is a list of what I would like to keep an eye on or do:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Is the website still up?&lt;/li&gt;
&lt;li&gt;What about its response time?&lt;/li&gt;
&lt;li&gt;Do the normal N user activities still work? (open page, view content, login, edit content)&lt;/li&gt;
&lt;li&gt;Is there any malicious content on the TM websites? (namely on the changes recently changes)&lt;/li&gt;
&lt;li&gt;Activity logs and detect malicious/weird activity?&lt;/li&gt;
&lt;li&gt;How to automatically rebuild the server (maybe every day)?&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
All these should be written as UnitTest and executed on demand (or in a schedule). Sounds like a job for &lt;a href="http://o2platform.com/"&gt;O2&lt;/a&gt; :)&lt;br /&gt;
&lt;br /&gt;
Humm, it looks like I really need to add &lt;a href="https://www.owasp.org/index.php/Category:OWASP_AppSensor_Project"&gt;AppSensor&lt;/a&gt; capabilities to TM, since that would allow some of these tests/activities to be detected in real time :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-5965334334413065680?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/LopWvem7WqE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/LopWvem7WqE/unit-tests-to-detect-problems-with-site.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/unit-tests-to-detect-problems-with-site.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-256856441270480313</guid><pubDate>Wed, 02 Nov 2011 13:32:00 +0000</pubDate><atom:updated>2011-11-02T06:33:47.483-07:00</atom:updated><title>TeamMentor v3.0 Beta is out of the bag (try it or download it now)</title><description>Last night SI (Security Innovation) released the public beta of the product I have been working for the past 7 months. It is called TeamMentor (TM) and it is a web based tool to create and distribute security knowledge.&lt;br /&gt;
&lt;br /&gt;
There are lots that I want to talk about this project (specially since O2 was used for its development and there is product is a great case study of the power of O2 when used as a developer-helping tool). Also, SI is more than happy for me to talk about the internals of TM, how it evolved and its architecture (which is a rare thing in product companies)&lt;br /&gt;
&lt;br /&gt;
So to kick start this, here are the main links:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;you can try it online here (login details below):&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://50.19.221.68:90/"&gt;http://50.19.221.68:90&lt;/a&gt; - with the OWASP Top 10 Library (with 244 Guidance Items)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://50.19.221.68:91/"&gt;http://50.19.221.68:91&lt;/a&gt; - with the SI Library (with 3365 Guidance Items)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;if you want to run TM locally you can download the latest binaries and source code from:&lt;br /&gt;&lt;a href="https://github.com/downloads/SecurityInnovation/TeamMentor-3.0-beta/OWASP%20Library%20-%20TeamMentor%20Beta%20(Tuesday,%20November%2001,%202011).zip"&gt;OWASP Library - TeamMentor Beta (Tuesday, November 01, 2011).zip&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;this is hosted at &lt;a href="https://github.com/SecurityInnovation/TeamMentor-3.0-beta/downloads"&gt;https://github.com/SecurityInnovation/TeamMentor-3.0-beta/downloads&lt;/a&gt; which also contains a download for the TM version with the SI Library which is password protected (ping me if you want the pwd))&lt;/li&gt;
&lt;li&gt;note that the TM OWASP Top 10 Library is released under a Creative Commons license and it is available here:&amp;nbsp;&lt;a href="https://github.com/SecurityInnovation/OWASP-TeamMentor-Library"&gt;https://github.com/SecurityInnovation/OWASP-TeamMentor-Library&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Here is the maling list which you can join to receive the lastest news or to ask questions:&amp;nbsp;&lt;a href="https://groups.google.com/a/securityinnovation.com/group/teammentor"&gt;https://groups.google.com/a/securityinnovation.com/group/teammentor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Here are the login details (note that the editor role change change all content, so try to be gentle with the version online :) &amp;nbsp;)&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Administrator - admin/changeme&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Reader - Reader/changeme&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Editor - Editor/changeme&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Developer - Developer/changeme&lt;/li&gt;
&lt;/ul&gt;
If you &lt;a href="https://github.com/SecurityInnovation/TeamMentor-3.0-beta/downloads"&gt;download the TM code&lt;/a&gt; and want to run it locally, once you unzip it:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Launch the server but runing either the "Start NET35.bat" file or the "Start &amp;nbsp;NET4.bat" file ( use the one that works for you).&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;Give it a couple of seconds to load. An icon in the system tray&amp;nbsp;should appear, indicating that the "Cassandra" server is running.&lt;/li&gt;
&lt;li&gt;Please, note that the "Cassandra" server does not bind to&amp;nbsp;external interfaces by default, so it will only be available on the local&amp;nbsp;machine when started from the bundled scripts.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Open the site. A web browser should open automatically on the main page.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The page might have to be refreshed if the server does not load quickly enough&lt;/li&gt;
&lt;li&gt;The home page will either&amp;nbsp;&lt;a href="http://localhost:12345/"&gt;http://localhost:12345&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="http://localhost:12346/"&gt;http://localhost:12346&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Login to the application with one of the pre-defined user accounts (listed above)&lt;/li&gt;
&lt;/ul&gt;
If you find bugs or security issues, please add them here:&amp;nbsp;&lt;a href="https://github.com/SecurityInnovation/TeamMentor-3.0-beta/issues"&gt;https://github.com/SecurityInnovation/TeamMentor-3.0-beta/issues&lt;/a&gt; (this is beta so I expect you guys to find good stuff in there :) )&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Let me know what you think of TM :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-256856441270480313?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/mbpOBmavHOA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/mbpOBmavHOA/teammentor-v30-beta-is-out-of-bag-try.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/11/teammentor-v30-beta-is-out-of-bag-try.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-1952795991133200486</guid><pubDate>Tue, 25 Oct 2011 17:31:00 +0000</pubDate><atom:updated>2011-10-25T10:31:27.627-07:00</atom:updated><title>First Answer to: Why doesn't SAST have better Framework support (for example Spring MVC)?</title><description>A couple days ago I received the question and asked here on this blog &lt;a href="http://diniscruz.blogspot.com/2011/10/why-doesnt-sast-have-better-framework.html"&gt;Why doesn't SAST have better Framework support (for example Spring MVC)?&lt;/a&gt;&amp;nbsp;(if don't don't what SAST means, see&amp;nbsp;&lt;a href="http://diniscruz.blogspot.com/2011/10/what-does-sast-mean-and-where-does-it.html"&gt;What does SAST mean? And where does it come from?&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
I wrote the answer below on that day, but since I also posted this question to the &lt;a href="https://lists.owasp.org/pipermail/owasp-o2-platform/2011-October/000329.html"&gt;O2 mailing list&lt;/a&gt; I wanted to give some space for others to chip in with their views (which they did, namely &lt;a href="https://lists.owasp.org/pipermail/owasp-o2-platform/2011-October/000334.html"&gt;John Steven&lt;/a&gt; who I will reply to later):&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
There are a number of reasons why the tool vendors have not been able to provide decent (or even any) wide Framework Support on their tools&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Note that this is not for lack of trying, for example the latest version of AppScan already supports WAFL (Web Application Flow Language) which is their attempt at creating a Framework descriptor language, HP is doing&amp;nbsp;interesting&amp;nbsp;work in their integration of WebInspect+Fortify and there are a couple new players (like WhiteHat, Veracode, Armorize) that claim will do a better job.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
For me, the key problem that all tools have (not only SAST, but this is critical in SAST) is that they are all trying to find a 'big red button' while ignoring how the app actually works/behaves. They basically want to create a product that can just be pointed to an application and work.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The problem with this approach is that all apps are massively different!&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The apps themselves are build on top of MASSIVE frameworks (from a point of view of their behaviour), and even when they use common frameworks (vs&amp;nbsp;writing&amp;nbsp;their own frameworks), the way the actual code flows tends to be quite unique per app.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So by trying to treat the "Application Behaviour' as a black box, and choosing NOT to try to (really) understand/map how it works (beyond the default Java/.NET functionality or whatever 'Framework Support' they are able to have), these tools are trying to climb a mountain that is far too big and complex.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
My approach with O2 has been&amp;nbsp;&lt;b style="font-style: italic;"&gt;"I know I will have to map how the application works/behaves and that I will need to create (from the source-code or dynamic analysis) an working model of its real code/data-flows, and while I'm there, also create a set of rules for the tools that I can use. My only question is: how long will it take to gain the level of visibility that I will need in order to be able to do a good job".&amp;nbsp;&lt;/b&gt;This is what I call 'playing the Application Visibility game'&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Basically with O2 I'm climbing a complete different mountain.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Lets take for example Spring MVC.&amp;nbsp;The first things I do when looking at a Spring app are:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li style="margin-left: 15px;"&gt;review the source code in order to 'codify' how the controllers are configured and what is their behaviour (namely the URLs, Command Classes and Views).&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="margin-left: 15px;"&gt;paying special attention to any 'Framework behaviour modifications', for example filters, authentication/authorization engines, &amp;nbsp;or even direct spring MVC code patches&lt;/li&gt;
&lt;/ul&gt;
&lt;li style="margin-left: 15px;"&gt;then I continue these mappings into the inner-working of the application in order to identify its 'hyper jumps' (reflection, aop, setters/getters, hash-objects-used-to-carry-&lt;wbr&gt;&lt;/wbr&gt;data, web services, data/storage layers, other&amp;nbsp;abstraction layers,&amp;nbsp;etc...) and&amp;nbsp;&amp;nbsp;'data changing' steps like validation or object casting.&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;then I map out the connection between the controllers and the views (which is very important because we can't assume that there will be path into all views from all controllers)&amp;nbsp;&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;then.... &amp;nbsp;(next actions depend on how the app is designed and what other APIs or Frameworks are used)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
When I'm doing these steps, I (using O2) tend to do three things:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li style="margin-left: 15px;"&gt;Create mini tools that&amp;nbsp;visualize&amp;nbsp;what is going on (for example&amp;nbsp;&lt;a href="http://o2platform.wordpress.com/category/java/spring-mvc/" style="color: #0000cc;" target="_blank"&gt;url mappings to controllers, or the complete command classes objects&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Create Browser-Automation APIs that represent the expected behaviour of the target application (how to login, how to perform action XYZ, how to invoke a Web Service, etc...)&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Mass create rules for the tools available (for example I used to create 1000s of Ounce rules so that I would get the most of its Engine by getting it to create as many taint-flow traces as possible&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
So yes, I'm coding all the time&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The only difference between engagements, is that I'm able to build on the technology developed on the previous engagements.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Again using Spring MVC as an example:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li style="margin-left: 15px;"&gt;First time I saw Spring MVC I had a script that did a dirty read of the XML files and extracted some metadata (with a lot of manual mappings)&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;On next engagement I was able to add support for Java bytecode analysis and analyse the Spring MVC attributes (used to mass create Ounce rules)&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;On next&amp;nbsp;engagement&amp;nbsp;, I was able to start visualizing the Command Classes and created an generic API for Spring MVC (with specific classes/objects to store Spring MVC metadata in a way that made sense to us (security&amp;nbsp;consultants))&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;On next&amp;nbsp;engagement&amp;nbsp;, I added a number of real powerful GUIs, improved the CommandClass resolution calculations and did a bunch of mappings between controllers and viewers&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;On next&amp;nbsp;engagement&amp;nbsp;, I already had most of the core Spring MVC behaviour scripts in place, so I mainly focused on what specific about the application being analyzed&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
As you can see, although there is always some level of customization, its amount (and skill level) is reduced on each interaction (and this is how we will scale this type of analysis).&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So to play this game (and to be able to do this type of analysis), this is what is needed from the tools used (in this case SAST)&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to write scripts that directly control how the tool works&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="margin-left: 15px;"&gt;Ideally most of the tool's analysis capabilities is written in 'dynamically compiled scripts' so that it is possible to modify/adjust them to the current reality (created by the application being analysed)&lt;/li&gt;
&lt;/ul&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to have direct access the tools internal capabilities via exposed APIs&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to start and stop each analysis phase (with each phase providing a modifiable dump of its internal representations and analysis so far)&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to consume, feed and&amp;nbsp;correlate&amp;nbsp;data from all sorts of sources: file system, config files, black-box scans, fuzzers, real-time instrumentation, security consultant's brain&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to mass create/manipulate rules&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to write rules as scripts AND in a fast-prototyping language like: C#, Java, Python, Ruby or Javascript (i.e. not in C/C++ or XML)&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to easily 'process, filter and visualize in real-time' thousands if not millions of findings (created by the large number of rules applied)&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to create rules that analyse&amp;nbsp;the&amp;nbsp;thousands if not millions of findings&amp;nbsp;findings created (i.e. create findings from findings)&lt;/li&gt;
&lt;ul&gt;
&lt;li style="margin-left: 15px;"&gt;this is the ability to perform multi-phase analysis, each using different rules/techniques and targeted at a&amp;nbsp;different types of vulnerabilities (for example SQL Injection vs Direct Object References)&lt;/li&gt;
&lt;/ul&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to visualize the data that was created (in its multiple stages of maturity) so that a security consultant (and/or app developer) can help to connect the dots (with more scripts or config settings)&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to add 'business logic analysis' to the findings discovered. (for example when taking &amp;nbsp;Authorization and Authentication activities in account, an 'direct SQL execution' or 'file upload'&amp;nbsp;security vulnerability finding in an admin panel, might actually be a feature)&amp;nbsp;&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to re-package the final findings into the SDL tools currently used by the client (bug tracking, collaboration, IDEs), in a way that makes sense to the client (i.e. using their terminology and workflows) and is immediately consumed&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to package all analysis (and rules, workflows, scripts, etc...) into a single execution point (i.e. an *.exe). This is the 'big button' &amp;nbsp;that can be inserted into the Build process&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;Ability to execute individually the complete analysis required to confirm (and ideally to exploit) a particular issue. This is the 'small button that can check if ONE issue has been fixed'&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
And here you can see why the SAST tools really struggle with frameworks, because they don't want to play this game. Ironically the end result is the same 'big button to press and get solid results' , the only difference is how to get there.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
My personal view (backed by real world experience) is that this is the only way that&lt;b&gt;&lt;i&gt;&amp;nbsp;'good enough'&lt;/i&gt;&lt;/b&gt;&amp;nbsp;framework support can be added to a SAST tool in a way that it will actually be usable by developers.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Note that I said&lt;b&gt;&lt;i&gt;&amp;nbsp;'good enough',&lt;/i&gt;&lt;/b&gt;&amp;nbsp;because usually the comment I receive when explaining that we need to do this is&amp;nbsp;&lt;b&gt;&lt;i&gt;"..well but only you (Dinis) wants this... and what we (tool vendor XYZ) wants to do, is to provide 'Good Enough' support &amp;nbsp;".&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
Unfortunately&amp;nbsp;for the tool vendors, I'm not asking for them to create a tool that would only add value to a small number of 'expert security consultants'. I'm&amp;nbsp;describing&amp;nbsp;what they will need to do in order to add&amp;nbsp;&lt;b&gt;&lt;i&gt;'good enough'&lt;/i&gt;&lt;/b&gt;&amp;nbsp;support for frameworks to their tools. Only then security consultants and app developers can customize those tools and deploy them to a wide audience (finally being able to have&amp;nbsp;&lt;b&gt;&lt;i&gt;'decent support&lt;/i&gt;&lt;/b&gt;' for the frameworks used and the target apps). The cases where there is no need to customize the engine (or rules) should be seen as 'free passes' (i.e. easy sales)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The bottom-line is that, if the path chosen by the tool vendors really worked, then today (Oct 2011), we should have much better Framework support in our tools. The reality is that we don't even have in our current SAST tools decent support for vanilla Java or .NET language behaviours (for example: reflection, collections, arrays, base-classes behaviour). And part of the reason of currently struggle with Java or .NET, is because its core libraries are in itself a Framework :)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The good news is that I have shown with&amp;nbsp;&lt;a href="http://o2platform.com/" style="color: #0000cc;" target="_blank"&gt;O2&lt;/a&gt;&amp;nbsp;how my proposed model can work in the real-work. It was done on top of an Open Source platform (O2), and it is out there for others to learn and copy&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Unfortunately, I am one of the few O2 users that can really do this, so the next step is to find a way to scale O2's techniques/usability and help SAST (and others) tools to develop/expose similar technology and wokflows.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Finally, the other reason why the tools vendors are not doing this is because there is very little 'public' (i.e. 'on the record') customer demand for this! &amp;nbsp;Those nasty NDAs have a powerful side-effect on buyers (and end users) who won't publicly say what they really think.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So in some ways, it is not 100% the vendors fault. They tend to react to their paying customers needs, who (since they can't say&amp;nbsp;&lt;i&gt;"the tool&amp;nbsp;doesn't&amp;nbsp;really work in my&amp;nbsp;environment"&lt;/i&gt;) tend to ask for thinks like:&amp;nbsp;&lt;i&gt;"You need to be able scan XYZ Millions of line of code", "You need to have support for Oracle databases", "you need to have a report for the PCI XYZ", "You need to support language XYZ", &amp;nbsp;etc...&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Add to this the fact that&amp;nbsp;SAST vendors&amp;nbsp;:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li style="margin-left: 15px;"&gt;don't see the security consulting companies (who would ask for the capabilities described above) as their partners (i.e. they try to get as much money from them as possible),&amp;nbsp;&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;want to control all/most the technology that they consume/create&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;don't have enough paying customers that put them to the ropes and demand that their tools really work&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;still believe (or want to&amp;nbsp;believe)&amp;nbsp;that&amp;nbsp;their tools actually work&lt;/li&gt;
&lt;li style="margin-left: 15px;"&gt;don't have to deal with the side-effects of&amp;nbsp;&lt;i&gt;'applications scanned by their product got exploited by malicious attackers'&lt;/i&gt;&amp;nbsp;(i.e. got sued by their clients or by the attacker's victims)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
and you have a world where the SAST vendors don't have an direct incentive to go down this path.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Note that some paying customers DO get some value from the current SAST tools&amp;nbsp;&amp;nbsp;(the ones that don't have SAST tools as shelfware). And since there are no popular alternatives (O2's market share is still very small :) &amp;nbsp;), these customers are resigned with the current status-quo (the others are trying to ignore the fact that they spent a pile of money of a tool that they have not found a way to work in their environment, or are trying to hire a consulting company to make it work).&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The tragedy is that SAST's marked could be enormous!!!&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Just imagine that we were able to use SAST tools in a way that they were really able to map/visualize/analyze an entire code/data flow, and create 'solid, defensible and&amp;nbsp;comprehensive' results (with very low False Positives and False Negatives)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Don't you think the developers (and managers architects, buyers, consumer groups, government agencies, &amp;nbsp;etc..) would be ALL over it?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This is what I am to say in my '&lt;a href="http://diniscruz.blogspot.com/2011/10/my-presentation-at-owasp-appsec-brazil.html" style="color: #0000cc;" target="_blank"&gt;Making Security Invisible by Becoming the Developer's Best Friends&lt;/a&gt;'&amp;nbsp;presentation. If only we could be the developer's best friends by showing them how their app actually works and what are the side effects of their code :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-1952795991133200486?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/ZahZpLi7_2Q" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/ZahZpLi7_2Q/first-answer-to-why-doesnt-sast-have.html</link><author>noreply@blogger.com (Dinis Cruz)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/10/first-answer-to-why-doesnt-sast-have.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-4594156471662073641</guid><pubDate>Tue, 25 Oct 2011 17:14:00 +0000</pubDate><atom:updated>2011-10-25T10:15:06.796-07:00</atom:updated><title>Mea culpa: How I abused the OWASP rules on presenter's slides</title><description>After I posted my presentation and slides the OWASP Brazil AppSec presentation on&amp;nbsp;&lt;a href="http://diniscruz.blogspot.com/2011/10/my-presentation-at-owasp-appsec-brazil.html"&gt;"Making Security Invisible by Becoming the Developer's Best Friends"&lt;/a&gt;&amp;nbsp;, I was reminded that a couple slides on that presentation break the OWASP&amp;nbsp;rules for conference presentations which are very well established.&lt;br /&gt;
&lt;br /&gt;
In fact, they’re right in the speaker agreement, which I totally violated.&lt;br /&gt;&lt;br /&gt; &lt;i&gt;"...Speakers are encouraged to include their contact information when introducing themselves, &lt;b&gt;but may NOT include their logo on any visual and handout materials&lt;/b&gt;. Speakers are to avoid any appearance of commercialism in their session and presentations are to be of a technical or solutions emphasis. Further, I understand that the program tracks of the conference/event/chapter are an educational event, not a sales or marketing platform. I agree that my presentation(s) will be an objective review of the topic on which I am presenting, and will &lt;b&gt;not contain any content that is a sales or promotional pitch for any specific product(s) or company(ies). &lt;/b&gt;My materials will also be reflective of the current status of the topic(s) I am addressing...."&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;
Clearly the initial slide about SI breaks this, and my mistake was in thinking that tagging it with an 'Advertising' tag made it better (the next slides,&amp;nbsp;although covering Common Criteria content released free by SI, in hindsight are also, too much on the marketing/sales side).&lt;br /&gt;
&lt;br /&gt;
And yes,&amp;nbsp;although&amp;nbsp;there have been worse&amp;nbsp;offenders&amp;nbsp;in the past, that is no excuse and I should know better.&lt;br /&gt;
&lt;br /&gt;
Sorry for this...&lt;br /&gt;
&lt;br /&gt;
(I'm currently in a location with slow internet connection, but once I'm back to land I will update the slides&amp;nbsp;accordingly)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-4594156471662073641?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/q3t2Ss8sjjo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/q3t2Ss8sjjo/mea-culpa-how-i-abused-owasp-rules-on.html</link><author>noreply@blogger.com (Dinis Cruz)</author><thr:total>1</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/10/mea-culpa-how-i-abused-owasp-rules-on.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-5532102259437285090</guid><pubDate>Sun, 23 Oct 2011 07:03:00 +0000</pubDate><atom:updated>2011-10-23T00:04:53.821-07:00</atom:updated><title>What does SAST mean? And where does it come from?</title><description>After I posted&amp;nbsp;&lt;a href="http://diniscruz.blogspot.com/2011/10/why-doesnt-sast-have-better-framework.html"&gt;Why doesn't SAST have better Framework support (for example Spring MVC)?&lt;/a&gt;&amp;nbsp;I received the question &lt;b&gt;&lt;i&gt;"What is SAST?"&lt;/i&gt;&lt;/b&gt; (which is a valid question since a &lt;a href="http://www.google.co.uk/search?gcx=c&amp;amp;ie=UTF-8&amp;amp;q=Sast"&gt;Google search today for SAST&lt;/a&gt;&amp;nbsp;returns some hilarious answers)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SAST &lt;/b&gt;means &lt;b&gt;Static Analysis Software Testing&lt;/b&gt; , and (I believe) it was originally coined by Gartner when they published their&amp;nbsp;&lt;a href="http://www.gartner.com/DisplayDocument?doc_cd=208743"&gt;Magic Quadrant for Static Application Security Testing&lt;/a&gt;&amp;nbsp;report (first version in 2009).&lt;br /&gt;
&lt;br /&gt;
SAST is basically what we usually (in the web world) call&lt;b&gt; Static Analysis of source code&lt;/b&gt; (i.e. White Box tools). It cousin is DAST (Dynamic Application Security Testing) and is what we call Pentesting (i.e. BlackBox tools).&amp;nbsp;&lt;a href="http://www.google.co.uk/search?gcx=c&amp;amp;ie=UTF-8&amp;amp;q=DAST"&gt;Google's DAST search results&lt;/a&gt; are also funny. Here is a more detailed answer on the &lt;a href="http://www.linkedin.com/answers/technology/software-development/TCH_SFT/459265-20933858"&gt;difference between SAST and DAST&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
As you will seen in&amp;nbsp;Gartner's website,&amp;nbsp;they change for this report, but some companies have bought them and posted/leaked the PDF online (in a way that Google finds it)&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;1st edition: 6 February 2009&amp;nbsp;&lt;a href="http://www.dragoslungu.com/public/GartnerMQ_StaticApplicationSecurityTesting.pdf"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2nd edition: 13 December 2010:&amp;nbsp;&lt;a href="http://www.rainasolutions.com/docs/veracode/En/Gartner%20Magic%20Quadrant%20for%20Static%20Application%20Security%20Testing.pdf"&gt;here&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://imagesrv.gartner.com/media-products/pdf/reprints/ibm/external/volume6/article2.pdf"&gt;here&lt;/a&gt;&amp;nbsp;(linked from&amp;nbsp;&lt;a href="http://www-01.ibm.com/software/rational/info/gartner-security/"&gt;http://www-01.ibm.com/software/rational/info/gartner-security/&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
Here are couple other blog entries about this:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fortify.com/ssa-basics/Gartner2010MQ_SAST.html"&gt;https://www.fortify.com/ssa-basics/Gartner2010MQ_SAST.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.gartner.com/neil_macdonald/2011/01/19/static-or-dynamic-application-security-testing-both/"&gt;http://blogs.gartner.com/neil_macdonald/2011/01/19/static-or-dynamic-application-security-testing-both/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.whitehatsec.com/tag/sast/"&gt;https://blog.whitehatsec.com/tag/sast/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Back on the topic of Framewoks, Neil MacDonald (from Gartner) is&amp;nbsp;absolutely&amp;nbsp;spot on in this 2009 entry:&amp;nbsp;&lt;a href="http://blogs.gartner.com/neil_macdonald/2009/08/21/for-static-application-security-testing-frameworks-matter/"&gt;For Static Application Security Testing, Frameworks Matter&lt;/a&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Btw, I wonder when will the &lt;a href="http://o2platform.com/"&gt;O2 Platform&lt;/a&gt; be included in a Gartner Magic Quadrant report?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-5532102259437285090?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/oEoy9NQ_Hgw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/oEoy9NQ_Hgw/what-does-sast-mean-and-where-does-it.html</link><author>noreply@blogger.com (Dinis Cruz)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/10/what-does-sast-mean-and-where-does-it.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-4563500793304912297</guid><pubDate>Sat, 22 Oct 2011 23:04:00 +0000</pubDate><atom:updated>2011-10-23T00:06:19.148-07:00</atom:updated><title>Why doesn't SAST have better Framework support (for example Spring MVC)?</title><description>&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;I received this question today, and before I answered it, I was wondering if you guys wanted to have a go at it first:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px;"&gt;
&lt;div&gt;
&lt;i&gt;"...I was reading over some of your blog entries, that made me thinks about the current state of SAST regarding the current frameworks.&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;I've been aware for a long time that SAST do not handle properly framework-level information. In the case of Spring MVC, the tools just don't get the data flow, etc.&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;Since you worked at Ounce before, do you know any particular reason why they didn't want to fo into that direction? I mean, this is a solvable problem (you somewhat show how to do that in O2). Even if they would need to&amp;nbsp;implement&amp;nbsp;new front-ends, this is still a very important task to be done if they wanted to compete directly with Fortify (especially since F. doesn't get it either)....&lt;/i&gt;&lt;/div&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
For reference here are some of my previous Framework (i.e.Spring MVC) related posts:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://diniscruz.blogspot.com/2011/07/current-o2-support-for-analyzing-spring.html"&gt;Current O2 support for analyzing Spring MVC&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://diniscruz.blogspot.com/2011/07/what-needs-to-be-done-to-map-static.html"&gt;What needs to be done to map Static Analysis Traces from Controllers and Views&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://o2platform.wordpress.com/category/java/spring-mvc/"&gt;http://o2platform.wordpress.com/category/java/spring-mvc/&lt;/a&gt;&amp;nbsp;(numbers of code samples at O2's blog)&lt;/li&gt;
&lt;li&gt;In this (longish presentation) I also talk about some of the&amp;nbsp;challenges that we have in supporting frameworks:&amp;nbsp;&amp;nbsp;&lt;a href="http://www.slideshare.net/DinisCruz/owasp-o2-platform-november-2010"&gt;http://www.slideshare.net/DinisCruz/owasp-o2-platform-november-2010&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
What do you think?&lt;br /&gt;
&lt;br /&gt;
[Update blog post:&amp;nbsp;&lt;a href="http://diniscruz.blogspot.com/2011/10/what-does-sast-mean-and-where-does-it.html"&gt;What does SAST mean? And where does it come from?&lt;/a&gt;]&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-4563500793304912297?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/qhJwUs1J2qE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/qhJwUs1J2qE/why-doesnt-sast-have-better-framework.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/10/why-doesnt-sast-have-better-framework.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-2328827071663259920</guid><pubDate>Sat, 22 Oct 2011 01:13:00 +0000</pubDate><atom:updated>2011-10-21T18:13:41.562-07:00</atom:updated><title>Mozmill looks really interresting</title><description>Anybody tried Mozmill?&amp;nbsp;&lt;a href="https://developer.mozilla.org/en/Mozmill"&gt;https://developer.mozilla.org/en/Mozmill&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://developer.mozilla.org/en/Mozmill/First_Steps/Tutorial%3A_Introduction_to_Mozmill" target="_blank"&gt;https://developer.mozilla.org/en/Mozmill/First_Steps/Tutorial%3A_Introduction_to_Mozmill&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
It looks very powerful and it could be a great way to write 'browser-based usability+security unit tests'&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
O2 needs to support it :)&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-2328827071663259920?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/CCF8DLCo5vs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/CCF8DLCo5vs/mozmill-looks-really-interresting.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/10/mozmill-looks-really-interresting.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-768952814249409499</guid><pubDate>Sat, 22 Oct 2011 00:59:00 +0000</pubDate><atom:updated>2011-10-21T18:00:27.980-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">O2 Platform</category><title>Example of O2 being used to create a PDF from a list of users</title><description>One of the powers of O2 is that is allows the automation of repetitive tasks via scripts&lt;br /&gt;
&lt;br /&gt;
This usually means automating some Web Vulnerability Browser workflow or an specific Static Analysis of source code.&lt;br /&gt;
&lt;br /&gt;
In this case what we have here is an non-professional programmer or security consultant, &lt;a href="https://www.owasp.org/index.php/User:Sarah_Baso"&gt;Sarah Baso from OWASP&lt;/a&gt;, writing/customizing&amp;nbsp;an O2 script to &lt;b&gt;batch create the attendee and speaker participation certificates of the OWASP AppSec Brazil.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I think Sarah based her code on this 2010 O2 Script:&amp;nbsp;&lt;a href="http://o2platform.wordpress.com/2010/12/04/o2-script-creating-pdfs-with-owasp-appsec-brazil-certificates/"&gt;Creating PDFs with OWASP AppSec Brazil Certificates&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Here is what the 2011 version (of a PDF created from a DB list of users) looks like:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-DXZxwm_cPVU/TqISkfQmiBI/AAAAAAAAAA4/ZWY-XBJhhgs/s1600/AppSec+brazil+certificate.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="297" src="http://1.bp.blogspot.com/-DXZxwm_cPVU/TqISkfQmiBI/AAAAAAAAAA4/ZWY-XBJhhgs/s400/AppSec+brazil+certificate.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-768952814249409499?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/R7BNvahEvEw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/R7BNvahEvEw/example-of-o2-being-used-to-create-pdf.html</link><author>noreply@blogger.com (dinis)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-DXZxwm_cPVU/TqISkfQmiBI/AAAAAAAAAA4/ZWY-XBJhhgs/s72-c/AppSec+brazil+certificate.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/10/example-of-o2-being-used-to-create-pdf.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-2765687100886784319</guid><pubDate>Thu, 20 Oct 2011 22:49:00 +0000</pubDate><atom:updated>2011-10-20T15:49:06.061-07:00</atom:updated><title>I need a .Net and JQuery developer based in London</title><description>Let me know if you are or know of a great .Net and JQuery developer in London.&lt;br /&gt;
&lt;br /&gt;
SI is going to hire an extra resource to work with me on TeamMentor so please connect the dots :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-2765687100886784319?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/4Deb_1mDWuM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/4Deb_1mDWuM/i-need-net-and-jquery-developer-based.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/10/i-need-net-and-jquery-developer-based.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-9135613752757996511</guid><pubDate>Thu, 20 Oct 2011 22:28:00 +0000</pubDate><atom:updated>2011-10-20T15:28:15.558-07:00</atom:updated><title>Microsoft All-In-One Code Framework (should the OWASP .NET community be involved?)</title><description>Anybody tried the&amp;nbsp;&lt;a href="http://1code.codeplex.com/"&gt;Microsoft All-In-One Code Framework&lt;/a&gt;&amp;nbsp;?&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
It looks like a way to distribute sample apps (for example this &lt;a href="http://code.msdn.microsoft.com/CSASPNETAJAXWebChat-c4c9b8fe"&gt;ASP.NET AJAX web chat application&lt;/a&gt;&amp;nbsp;) and I wonder how much security thinking (and review) has&amp;nbsp;occurred?&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If we are looking for a place to help .NET developers to write secured code, maybe this is a great place for us (OWASP) to be involved.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
What do you think?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-9135613752757996511?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/y28fOjiXhqk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/y28fOjiXhqk/microsoft-all-in-one-code-framework.html</link><author>noreply@blogger.com (dinis)</author><thr:total>1</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/10/microsoft-all-in-one-code-framework.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-5725437881422248232</guid><pubDate>Thu, 20 Oct 2011 00:29:00 +0000</pubDate><atom:updated>2011-10-19T17:29:21.190-07:00</atom:updated><title>A comment on "Making Security Invisible by Becoming the Developer's Best Friends"</title><description>After my &lt;a href="http://diniscruz.blogspot.com/2011/10/my-presentation-at-owasp-appsec-brazil.html"&gt;"Making Security Invisible by Becoming the Developer's Best Friends"&lt;/a&gt;&amp;nbsp;post, Daniel posted a &lt;a href="http://danielmiessler.com/blog/a-response-to-dinis-cruz-comments-on-invisible-security"&gt;reply on his blog&lt;/a&gt;, and here are my comments on it (as posted on his blog):&lt;br /&gt;&lt;br /&gt;Hi Daniel, Thanks for your comments, I think you make a good representation of the security camp that defends that "security is EVERY developer's business" which although well intended, unfortunately doesn't scale, and, in fact it doesn't work. &lt;br /&gt;&lt;br /&gt;We will never achieve secure applications at a large scale if we require ALL developers (or even most) to be experts at security domains like Crypo, Authentication, Authorization, Input validation/sanitation, etc...&lt;br /&gt;&lt;br /&gt;Note that I didn't say that NOBODY should be responsible for an Application's security. Of course that there needs to be a small subset of the players involved that really cares and understands the security implications of what is being created.&lt;br /&gt;&lt;br /&gt;The core idea is that developers should be using Frameworks, APIs and Languages that allow them to create secure applications by design (where security is there but is invisible to developers). And when they (the developers or architects) create a security vulnerability, at that moment (and only then), they should have visibility into what they created (i.e. the side effects) and be shown alternative ways to do the same thing in a secure way.&lt;br /&gt;&lt;br /&gt;The other idea that I'm trying to push our (the application security) industry to adopt, is this concept: "One can't protect/analyze what is not understood, so application security teams create models (and tools) that help them to visualize and understand how the apps works, and since this 'application visualization metadata' is also VERY valuable to developers, let's work together (devs+qa+appsec) so that we can embed application security knowledge and workflows into the SDL"&lt;br /&gt;&lt;br /&gt;For example, a very good and successfully example of making security 'invisible' for developers was the removal of 'buffer overflows' from C/C++ to .Net/Java  (i.e. from unmanaged to managed code). THAT is how we make security (in this case Buffer Overflow protection) Invisible to developers &lt;br /&gt;&lt;br /&gt;If you are looking for an analogy, "a chef cooking food" is probably the better one. Think of software developers that are cooking with a number of ingredients (i.e. APIs). Do you really expect that chef to be an expert on how ALL those ingredients (and tools he is using) were created and behave? It is impossible, the chef is focused on creating a meal. Fortunately the chef can be confident that some/all of his ingredients+tools will behave in a consistent and well documented way (which is something we don't have in the software world). I like the food analogy because, as with software, one bad ingredient is all it takes to ruin it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-5725437881422248232?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/mU0zPeu4SiI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/mU0zPeu4SiI/comment-on-making-security-invisible-by.html</link><author>noreply@blogger.com (Dinis Cruz)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/10/comment-on-making-security-invisible-by.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7061568054540301299.post-7718484184528991989</guid><pubDate>Wed, 19 Oct 2011 16:19:00 +0000</pubDate><atom:updated>2011-10-19T09:20:13.903-07:00</atom:updated><title>Webinar on 'How to Break Web Software Security'</title><description>Tomorrow (20th October) I'm delivering a &lt;a href="http://web.securityinnovation.com/webinar-october/"&gt;Webinar on the topic of 'How to Break Web Software Security' &lt;/a&gt;which will cover a number of Application Security vulnerabilities (and live demos)&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
You can read more details about this webinar and register here &lt;a href="http://web.securityinnovation.com/webinar-october/"&gt;http://web.securityinnovation.com/webinar-october/&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
-------------------------&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Webinar abstract:&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
More than 80% of attacks happen at the application layer and network security isn't the answer. To compound the problem, Web applications employ specialized protocols and languages and suffer from unique problems that very quickly and easily lead to vulnerabilities for the uninformed.&lt;br /&gt;
&lt;br /&gt;
This Webcast will describe and present techniques for breaking (from a security standpoint) web applications and learn methods of mitigation.  This talk covers all of the basics (SQL injection, XSS, etc.) but goes beyond that to more advanced and sinister attacks.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Topics Covered:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Why the web is different and what this means to testing&lt;/li&gt;
&lt;li&gt;Dangers of  web services&lt;/li&gt;
&lt;li&gt;How to think about security vulnerabilities in web applications&lt;/li&gt;
&lt;li&gt;Techniques for information gathering, client-side attacks, state attacks, data attacks, language attacks, server attacks, authentication attacks&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7061568054540301299-7718484184528991989?l=diniscruz.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DinisCruzBlog/~4/0mTQyUj24sw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/DinisCruzBlog/~3/0mTQyUj24sw/webinar-on-how-to-break-web-software.html</link><author>noreply@blogger.com (dinis)</author><thr:total>0</thr:total><feedburner:origLink>http://diniscruz.blogspot.com/2011/10/webinar-on-how-to-break-web-software.html</feedburner:origLink></item></channel></rss>

