<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title><![CDATA[[SecurityRatty] tag: buffer]]></title>
    <link>http://securityratty.com/tag/buffer</link>
    <description></description>
    <pubDate>Wed, 14 May 2008 07:29:45 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Cloudsecurity.org Interviews Guido van Rossum: Google App Engine, Python and Security]]></title>
      <link>http://securityratty.com/article/a2cf6f2181968ed75532873c1bdb09fe</link>
      <guid>http://securityratty.com/article/a2cf6f2181968ed75532873c1bdb09fe</guid>
      <description><![CDATA[In this interview, cloudsecurity.org talks to Guido van Rossum about Python , Google App Engine and security
Guido is the creator of the Python programming language and more recently, Google App...]]></description>
      <content:encoded><![CDATA[<p><a title="Guido van Rossum in Google Uniform" href="http://www.python.org/~guido/" target="_blank"><img src="http://www.python.org/~guido/images/IMG_2192.jpg" border="0" alt="Guido Homepage" /></a></p>
<p>In this interview, cloudsecurity.org talks to <a title="Homepage of Guido van Rossum" href="http://www.python.org/~guido/">Guido van Rossum</a> about <a title="Python website" href="http://python.org">Python</a>, <a title="Description of Google AppEngine" href="http://code.google.com/appengine/docs/whatisgoogleappengine.html">Google App Engine</a> and security.</p>
<p>Guido is the creator of the Python programming language and more recently, Google App Engine team member.  His involvement with the App Engine project was pretty late - the code &#8220;was almost ready for release&#8221; when he get involved.  The security architect of App Engine was primarily project lead, <a title="Kevin Gibbs Campfire Transcript" href="http://code.google.com/appengine/articles/cf1-text.html">Kevin Gibbs</a>, supported by the rest of the App Engine crew and the Google Security Team.</p>
<h4>The Interview</h4>
<p><em>cloudsecurity.org: What security principles did you follow for App Engine?<br />
</em></p>
<p>GvR: While I can&#8217;t share any specifics on what we&#8217;re doing to secure App Engine, I can say that the main principle we&#8217;ve followed could be called &#8220;defense in depth&#8221;. We&#8217;re not relying exclusively on a secure interpreter, or any other single security layer, to protect our users.</p>
<p><em>cloudsecurity.org: Please provide some examples of how those principles played out in terms of the current implementation?<br />
</em> <em> </em></p>
<p>GvR: Sorry, we don&#8217;t divulge such information.</p>
<p><em>cloudsecurity.org: What criteria did you apply to Python module selection?</em></p>
<p>GvR: We first looked for modules that were useful and straightforward to audit. If a module was large or complex, we&#8217;d only audit it (fixing things we found) if it was deemed essential or at least useful for a large number of users; otherwise we&#8217;d exclude it.</p>
<p><em>cloudsecurity.org: What do you see as the security risks inherent in exposing an interpreter runtime in a shared environment?<br />
</em></p>
<p>GvR: <span>I presume you&#8217;re asking about risks to users, like providing accidental access to data belonging to another app. We&#8217;ve taken extensive measures to isolate different apps from each other. For example, each app runs in a separate process, and the datastore prevents an app from accessing data belonging to other apps.</span></p>
<p><em>cloudsecurity.org: I recently attended a fascinating talk by <a title="Justin Ferguson" href="http://eusecwest.com/justin-ferguson-interpreter-vm-attacks.html" target="_blank">Justin Ferguson</a> (a Seattle based security consultant) at <a title="eusecwest" href="http://www.eusecwest.com/" target="_blank">eusecwest</a> in London.  He gave a great talk exploring security vulnerabilities in language interpreters and specifically highlighted some security weaknesses in Python App Engine.  What are your thoughts on his research and specifically the Python issues he highlighted?  When do you anticipate they will get fixed?<br />
</em></p>
<p>GvR: We&#8217;ve anticipated all of the possibilities raised in Justin&#8217;s talk, and took measures to protect our users. Justin highlighted weaknesses in Python, but not in App Engine. Furthermore, our security model does not rely solely upon protections within the Python interpreter; there are additional protections that these external analyses have missed.<em><br />
</em><br />
<em>cloudsecurity.org: How do you contain an attacker that exploits bugs in App Engine from exploiting the underlying OS and potentially interfering with other users processes or attacking backend systems?<br />
</em></p>
<p>GvR: You are correct that there are strong measures in place, but I&#8217;m not at liberty to discuss details.</p>
<p><em>cloudsecurity.org: Python was the first language to get the App Engine treatment, what language is next and what are some of the language specific security challenges the team has had to deal with?<br />
</em></p>
<p>GvR: Although I can&#8217;t comment on what language is next, we are working on this, and have gotten a lot of great feedback from our developers. As far as language-specific security challenges, they stemmed mostly from the complexity of the Python interpreter. We spent a lot of time auditing this, and did a great deal more than just identifying buffer overflows.  I can also add that Google is actively researching the security of interpreted languages.  Google engineers routinely contribute security fixes to open source projects, including but not limited to Python.<em><br />
</em><br />
<em>cloudsecurity.org: How does the team decide when &#8216;enough is enough&#8217; in terms of hardening the interpreter?<br />
</em> <em> </em></p>
<p>GvR: That&#8217;s not really how we approach it. We realize that security is an ongoing effort, and try to stay ahead of threats through continuous monitoring and testing.</p>
<p><em>cloudsecurity.org: Some <a style="color: #551a8b;" title="commentators" href="http://blog.ianbicking.org/2008/04/13/app-engine-and-pylons/" target="_blank">commentators</a> have suggested that perhaps the difficulty of auditing the implementation led to some modules being more heavily restricted than perhaps necessary.  What are your thoughts on that and what plans, if any, are there to bring back code objects/functions that were eliminated in the initial release?  (with the benefit of hindsight).<br />
</em> <em> </em></p>
<p>GvR: The only thing we are likely to put back is the _ast module, which was not audited based upon an underestimation of its usefulness (see my answer to question #3 above).  We will also put back some dummy functions and other objects whose absence currently prevents some popular frameworks from being loaded without modifications. For example, some harmless functionality in the imp module will come back. We&#8217;re also looking into making urllib2 work (to some extent), though that&#8217;s not really a security issue but merely a matter of API adjustment.</p>
<p><em>cloudsecurity.org: It is reported that Google encourages small groups to go off and create.  How involved were the Google security team with App Engine in terms of design and implementation review/testing?  Given the dynamics, is it possible to have a meaningful security process that shadows the development process?<br />
</em> <em> </em></p>
<p>GvR: The Google Security team is involved in everything we do. They have been extremely helpful.</p>
<p><em>cloudsecurity.org: How can people report security weaknesses they discover in App Engine?  What commitment does Google give in terms of dealing vulnerability reports?<br />
</em> <em> </em></p>
<p>GvR: There is a standard process for submitting security issues. See <a title="http://www.google.com/corporate/security.html" href="http://www.google.com/corporate/security.html" target="_blank">http://www.google.com/corporate/security.html</a>. Google moves very fast to protect its users when a verifiable security vulnerability is reported.<span><em><br />
</em></span><br />
<em>cloudsecurity.org: One concern is the potential misuse of App Engine to exploit security vulnerabilities in visitors browsers.  This is not a new problem per se, shared hosting providers know all about this.  But with Google and other Cloud providers, the scalability potential is much higher.  What are your thoughts on this and what pro-active steps is Google taking to detect and terminate evil apps?<br />
</em> <em> </em></p>
<p>GvR: This is high on our list of concerns. We deal with this through a combination of restrictions on what you can do (e.g. certain HTTP headers and ports are off-limits) and, again, monitoring.</p>
<p><em>cloudsecurity.org: Beyond App Engine, what role do you think Python will play in the Cloud both now and in the future?<br />
</em> <em> </em></p>
<p>GvR: Sorry, I&#8217;m not prone to philosophizing about the future.</p>
<p><em>cloudsecurity.org: Trust is often cited as a barrier to enterprise adoption of Cloud Computing.  What role do you personally think Google can play in building that trust?<br />
</em> <em> </em></p>
<p>GvR: I think trust is built up over a long period of experience. Our actions in terms of being open to our users will be the most important factor in establishing trust. Of course, Google&#8217;s reputation also helps: everybody understands that Google doesn&#8217;t want its name associated with a bad product.</p>
<p><em>cloudsecurity.org: Looking at the Cloud Computing landscape beyond Google, what are your thoughts on the current state of Cloud Computing and Security?<br />
</em></p>
<p>GvR: It&#8217;s obvious that Cloud Computing is only just taking off. The next few years will be very exciting.</p>
<p><em>cloudsecurity.org: Lastly, what are some of your favourite App Engine apps?<br />
</em></p>
<p>GvR: There are too many to enumerate. If you insist on a highlight, well, I like Rietveld (<a title="http://codereview.appspot.com" href="http://codereview.appspot.com/" target="_blank">http://codereview.appspot.com</a>), a tool for collaborative code review which I (largely) wrote myself. It is open source and includes some essential components from Mondrian, a similar internal tool which I created before I joined the App Engine team.</p>
<h4><strong>Thanks</strong></h4>
<p>My thanks to Guido for his time and sharing his views.</p>
<img src="http://feeds.feedburner.com/~r/CloudSecurity/~4/324271347" height="1" width="1"/>]]></content:encoded>
      <pubDate>Tue, 01 Jul 2008 15:03:10 +0000</pubDate>
      <category domain="http://securityratty.com/tag/app engine">app engine</category>
      <category domain="http://securityratty.com/tag/google app engine">google app engine</category>
      <category domain="http://securityratty.com/tag/app">app</category>
      <category domain="http://securityratty.com/tag/app engine treatment">app engine treatment</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/app engine project">app engine project</category>
      <category domain="http://securityratty.com/tag/app engine crew">app engine crew</category>
      <category domain="http://securityratty.com/tag/secure app engine">secure app engine</category>
      <category domain="http://securityratty.com/tag/security vulnerabilities">security vulnerabilities</category>
      <source url="http://feeds.feedburner.com/~r/CloudSecurity/~3/324271347/">Cloudsecurity.org Interviews Guido van Rossum: Google App Engine, Python and Security</source>
    </item>
    <item>
      <title><![CDATA[Buffer overflows can be prevented by GS cookies]]></title>
      <link>http://securityratty.com/article/b2e08dc8e6ee3bc99880117c8a1f1f8c</link>
      <guid>http://securityratty.com/article/b2e08dc8e6ee3bc99880117c8a1f1f8c</guid>
      <description><![CDATA[Buffer overflows have plagued Windows users for years, but by using a compile time technology known as GS cookies, you can prevent them from damaging your Windows...]]></description>
      <content:encoded><![CDATA[Buffer overflows have plagued Windows users for years, but by using a compile time technology known as GS cookies, you can prevent them from damaging your Windows shop.<img src="http://feeds.feedburner.com/~r/WhatisEnterpriseItTipsAndExpertAdvice/~4/324055416" height="1" width="1"/>]]></content:encoded>
      <pubDate>Tue, 01 Jul 2008 05:25:40 +0000</pubDate>
      <category domain="http://securityratty.com/tag/buffer overflows">buffer overflows</category>
      <category domain="http://securityratty.com/tag/compile time technology">compile time technology</category>
      <category domain="http://securityratty.com/tag/cookies">cookies</category>
      <category domain="http://securityratty.com/tag/windows users">windows users</category>
      <category domain="http://securityratty.com/tag/windows shop">windows shop</category>
      <category domain="http://securityratty.com/tag/prevent">prevent</category>
      <source url="http://feeds.feedburner.com/~r/WhatisEnterpriseItTipsAndExpertAdvice/~3/324055416/0,289483,sid45_gci1311714,00.html">Buffer overflows can be prevented by GS cookies</source>
    </item>
    <item>
      <title><![CDATA[Al-Qaeda Pwns Your Coffee Machine]]></title>
      <link>http://securityratty.com/article/8aebc78e5bd9f33d556f2cf6b257c281</link>
      <guid>http://securityratty.com/article/8aebc78e5bd9f33d556f2cf6b257c281</guid>
      <description><![CDATA[This, is one of the funniest things I have read in a while
From The Register
An Aussie risk advisory services manager has issued a chilling security alert concerning the Jura F90 net-connected coffee...]]></description>
      <content:encoded><![CDATA[<p>This, is one of the funniest things I have read in a while.</p>
<p>From The Register:</p>
<blockquote><p>An Aussie risk advisory services manager has issued a chilling security alert concerning the Jura F90 net-connected coffee machine, warning caffeine-heads that the hi-tech brewing device could open their Windows PC to exploitation by internet paedophiles and al-Qaeda*, CNET reports.</p>
<p>Craig Wright, who works for &#8220;professional services&#8221; outfit BDO, posted his alert yesterday on the BugTraq security email list, highlighting possible lines of attack, including buffer overflow menaces. The F90 (see pic) is apparently the &#8220;world&#8217;s first household espresso machine with internet capability&#8221;, which allows users to select &#8220;coffee specialities&#8221; via their PCs without having to walk the five feet between their desks and the machine.</p></blockquote>
<p>Someone took the <a href="http://www.cl.cam.ac.uk/coffee/coffee.html">Trojan Room Coffee Machine</a> idea and made it open to <b><i>TERRORISM</i></b>. Run screaming if you feel so compelled.</p>
<p>LOL! Yes there is a fair degree of tongue in cheek in this story. Thanks to Lester Haines for making my day. Be sure to read the full piece on the Reg.</p>
<p><a href="http://www.theregister.co.uk/2008/06/18/coffee_machine_menace/">Article Link</a></p>

<p><a href="http://feeds.feedburner.com/~a/Liquidmatrix?a=iT49Dx"><img src="http://feeds.feedburner.com/~a/Liquidmatrix?i=iT49Dx" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Liquidmatrix?a=Q9i2uI"><img src="http://feeds.feedburner.com/~f/Liquidmatrix?i=Q9i2uI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Liquidmatrix?a=UZoIgi"><img src="http://feeds.feedburner.com/~f/Liquidmatrix?i=UZoIgi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Liquidmatrix?a=RkkNWi"><img src="http://feeds.feedburner.com/~f/Liquidmatrix?i=RkkNWi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Liquidmatrix?a=u4YJri"><img src="http://feeds.feedburner.com/~f/Liquidmatrix?i=u4YJri" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Liquidmatrix?a=K9f7Ki"><img src="http://feeds.feedburner.com/~f/Liquidmatrix?i=K9f7Ki" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Liquidmatrix/~4/314622863" height="1" width="1"/>]]></content:encoded>
      <pubDate>Wed, 18 Jun 2008 09:38:01 +0000</pubDate>
      <category domain="http://securityratty.com/tag/machine">machine</category>
      <category domain="http://securityratty.com/tag/coffee machine idea">coffee machine idea</category>
      <category domain="http://securityratty.com/tag/coffee machine">coffee machine</category>
      <category domain="http://securityratty.com/tag/household espresso machine">household espresso machine</category>
      <category domain="http://securityratty.com/tag/jura f90">jura f90</category>
      <category domain="http://securityratty.com/tag/f90">f90</category>
      <category domain="http://securityratty.com/tag/buffer overflow menaces">buffer overflow menaces</category>
      <category domain="http://securityratty.com/tag/select coffee specialities">select coffee specialities</category>
      <category domain="http://securityratty.com/tag/al-qaeda">al-qaeda</category>
      <source url="http://feeds.feedburner.com/~r/Liquidmatrix/~3/314622863/">Al-Qaeda Pwns Your Coffee Machine</source>
    </item>
    <item>
      <title><![CDATA[Dude Dont Hack My Coffee]]></title>
      <link>http://securityratty.com/article/cd4604e1c8f021cce395547f55b55d92</link>
      <guid>http://securityratty.com/article/cd4604e1c8f021cce395547f55b55d92</guid>
      <description><![CDATA[As someone trying to get off the coffee train I find the recent reports of vulnerabilities in network connected coffee machines somewhat amusing. It seems some guy tht has $2,900 to spend on a coffee...]]></description>
      <content:encoded><![CDATA[<p>As someone trying to get off the coffee train I find the recent reports of vulnerabilities in network connected coffee machines somewhat amusing. It seems some guy tht has $2,900 to spend on a coffee maker(!!) also has the skillz to find a buffer overflow in it.</p>
<p>This type of thing is only going to increase as people slap more stuff onto the network with little to no care about security. These things generally all have web UIs which makes the vulns that much more interesting. It is somewhat easy to detect the spread of a mass SQLi attack on public facing web sites but what happens when we get this attack on internally facing systems? They are much harder to track and even detect. What if my coffee maker now does drive by malware attacks? What if my wireless router does? Our jobs are only geting harder people.</p>
<p><a href="http://news.cnet.com/8301-10784_3-9970757-7.html?part=rss&amp;subj=news&amp;tag=2547-1009_3-0-20" target="_blank">Link</a></p>
<p class="addtoany_share_save">
    <a name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/bookmark?sitename=Grumpy%20Security%20Guy&amp;siteurl=http%3A%2F%2Fwww.grumpysecurityguy.com%2F&amp;linkname=Dude%20Don%E2%80%99t%20Hack%20My%20Coffee&amp;linkurl=http%3A%2F%2Fwww.grumpysecurityguy.com%2Fdude-dont-hack-my-coffee%2F"><img src="http://www.grumpysecurityguy.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">a2a_linkname="Dude Don’t Hack My Coffee";a2a_linkurl="http://www.grumpysecurityguy.com/dude-dont-hack-my-coffee/";</script>
    <script type="text/javascript" src="http://www.addtoany.com/menu/page.js"></script>

	</p><div class="aizattos_related_posts"><span class="aizattos_related_posts_header" >Related Posts</span><ul><li><span class="aizattos_related_posts_title"><a href="http://www.grumpysecurityguy.com/hp-printer-hack-old-news/" rel="bookmark" title="Permanent Link: HP Printer Hack Old News" >HP Printer Hack Old News</a></span><div class="aizattos_related_posts_excerpt">I chuckled when I saw this Change the message on HP printers cause I thought it was pretty funny. Th...</div></li><li><span class="aizattos_related_posts_title"><a href="http://www.grumpysecurityguy.com/mac-hacked-in-2-minutes-apple-is-a-lame-patcher/" rel="bookmark" title="Permanent Link: Mac Hacked in 2 Minutes, Apple is a lame patcher" >Mac Hacked in 2 Minutes, Apple is a lame patcher</a></span><div class="aizattos_related_posts_excerpt">At the CanSec West conference Charlie Miller wins the PWN 2 OWN contest. I think these contest are k...</div></li><li><span class="aizattos_related_posts_title"><a href="http://www.grumpysecurityguy.com/these-are-the-crazy-people-in-your-security-neighborhood-part-2-private-pyle/" rel="bookmark" title="Permanent Link: These are the crazy people in your security neighborhood - Part 2 Private Pyle" >These are the crazy people in your security neighborhood - Part 2 Private Pyle</a></span><div class="aizattos_related_posts_excerpt">When you have been around the IT/Security space as long as I have you run into to a lot of whacky pe...</div></li><li><span class="aizattos_related_posts_title"><a href="http://www.grumpysecurityguy.com/review-the-web-application-hackers-handbook/" rel="bookmark" title="Permanent Link: Review: The Web Application Hacker&#8217;s Handbook" >Review: The Web Application Hacker&#8217;s Handbook</a></span></li><li><span class="aizattos_related_posts_title"><a href="http://www.grumpysecurityguy.com/these-are-the-crazy-people-in-your-security-neighborhood-part-4-packet-pete/" rel="bookmark" title="Permanent Link: These are the crazy people in your security neighborhood - Part 4, Packet Pete" >These are the crazy people in your security neighborhood - Part 4, Packet Pete</a></span></li></ul></div><p>Post from: <a href="http://www.grumpysecurityguy.com">Grumpy Security Guy</a></p>
<p><a href="http://www.grumpysecurityguy.com/dude-dont-hack-my-coffee/">Dude Don&#8217;t Hack My Coffee</a></p>

<p><a href="http://feeds.feedburner.com/~a/GrumpySecurityGuy?a=UeoZzl"><img src="http://feeds.feedburner.com/~a/GrumpySecurityGuy?i=UeoZzl" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/GrumpySecurityGuy?a=eDByvI"><img src="http://feeds.feedburner.com/~f/GrumpySecurityGuy?i=eDByvI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrumpySecurityGuy?a=7jI2rI"><img src="http://feeds.feedburner.com/~f/GrumpySecurityGuy?i=7jI2rI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrumpySecurityGuy?a=MlUbri"><img src="http://feeds.feedburner.com/~f/GrumpySecurityGuy?i=MlUbri" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrumpySecurityGuy?a=sKGszi"><img src="http://feeds.feedburner.com/~f/GrumpySecurityGuy?i=sKGszi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrumpySecurityGuy?a=OOY19I"><img src="http://feeds.feedburner.com/~f/GrumpySecurityGuy?i=OOY19I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrumpySecurityGuy?a=azI4DI"><img src="http://feeds.feedburner.com/~f/GrumpySecurityGuy?i=azI4DI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrumpySecurityGuy?a=GjDTzI"><img src="http://feeds.feedburner.com/~f/GrumpySecurityGuy?i=GjDTzI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrumpySecurityGuy?a=uyNWYi"><img src="http://feeds.feedburner.com/~f/GrumpySecurityGuy?i=uyNWYi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrumpySecurityGuy?a=A2sOqi"><img src="http://feeds.feedburner.com/~f/GrumpySecurityGuy?i=A2sOqi" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GrumpySecurityGuy/~4/314352228" height="1" width="1"/>]]></content:encoded>
      <pubDate>Wed, 18 Jun 2008 01:19:11 +0000</pubDate>
      <category domain="http://securityratty.com/tag/coffee">coffee</category>
      <category domain="http://securityratty.com/tag/coffee train">coffee train</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/security neighborhood">security neighborhood</category>
      <category domain="http://securityratty.com/tag/coffee maker">coffee maker</category>
      <category domain="http://securityratty.com/tag/hack">hack</category>
      <category domain="http://securityratty.com/tag/grumpy security guy">grumpy security guy</category>
      <category domain="http://securityratty.com/tag/attack">attack</category>
      <category domain="http://securityratty.com/tag/mass sqli attack">mass sqli attack</category>
      <source url="http://feeds.feedburner.com/~r/GrumpySecurityGuy/~3/314352228/">Dude Dont Hack My Coffee</source>
    </item>
    <item>
      <title><![CDATA[SQL Server memory configurations for procedure cache and buffer cache]]></title>
      <link>http://securityratty.com/article/c0303d784d165a52eef784b23273e50a</link>
      <guid>http://securityratty.com/article/c0303d784d165a52eef784b23273e50a</guid>
      <description><![CDATA[To determine how much memory your SQL Server database uses for buffer cache and procedure cache, factor in the SQL version you're using, whether it's x86, x64 or Itanium and the amount of memory...]]></description>
      <content:encoded><![CDATA[To determine how much memory your SQL Server database uses for buffer cache and procedure cache, factor in the SQL version you're using, whether it's x86, x64 or Itanium and the amount of memory allocated to the SQL Server instance. SQL Server expert Denny Cherry lays out how the system configures memory and how to allocate the amount of buffer and procedure cache that's available.<img src="http://feeds.feedburner.com/~r/WhatisEnterpriseItTipsAndExpertAdvice/~4/308918358" height="1" width="1"/>]]></content:encoded>
      <pubDate>Tue, 10 Jun 2008 07:11:06 +0000</pubDate>
      <category domain="http://securityratty.com/tag/memory">memory</category>
      <category domain="http://securityratty.com/tag/procedure cache">procedure cache</category>
      <category domain="http://securityratty.com/tag/buffer cache">buffer cache</category>
      <category domain="http://securityratty.com/tag/buffer">buffer</category>
      <category domain="http://securityratty.com/tag/system configures memory">system configures memory</category>
      <category domain="http://securityratty.com/tag/sql server instance">sql server instance</category>
      <category domain="http://securityratty.com/tag/sql server database">sql server database</category>
      <category domain="http://securityratty.com/tag/sql version">sql version</category>
      <category domain="http://securityratty.com/tag/amount">amount</category>
      <source url="http://feeds.feedburner.com/~r/WhatisEnterpriseItTipsAndExpertAdvice/~3/308918358/0,289483,sid87_gci1316780,00.html">SQL Server memory configurations for procedure cache and buffer cache</source>
    </item>
    <item>
      <title><![CDATA[Using Data Execution Prevention (DEP) in Windows XP and Vista: Fighting back against buffer overflows and memory corruption]]></title>
      <link>http://securityratty.com/article/a5ef3fac42280b513c7c8d31f1a499be</link>
      <guid>http://securityratty.com/article/a5ef3fac42280b513c7c8d31f1a499be</guid>
      <description><![CDATA[New Video: Using Data Execution Prevention (DEP) in Windows XP and Vista: Fighting back against buffer overflows and memory corruption
Ive recently become interested in measures that modern CPUs can...]]></description>
      <content:encoded><![CDATA[<b>New Video:</b><a href="http://irongeek.com/i.php?page=videos/using-data-execution-prevention-dep-in-windows-xp-and-vista">Using Data Execution Prevention (DEP) in Windows XP and Vista: Fighting back against buffer overflows and memory corruption</a><br>
&nbsp;I’ve recently become interested in measures that modern CPUs can take to prevent various types of memory corruption attacks. One such feature is the NX bit (as AMD calls it, XD is Intel’s term), which allows for memory pages to me 
marked as not executable. Microsoft Windows started using this ability with XP 
SP2 as part of their Data Execution Prevention (DEP) feature. Unfortunately, to 
get most out of DEP you have to configure it. This video will show how to 
configure DEP protection in Windows XP and Vista.
<p><a href="http://feeds.feedburner.com/~a/IrongeeksSecuritySite?a=c8SqYS"><img src="http://feeds.feedburner.com/~a/IrongeeksSecuritySite?i=c8SqYS" border="0"></img></a></p><img src="http://feeds.feedburner.com/~r/IrongeeksSecuritySite/~4/307708597" height="1" width="1"/>]]></content:encoded>
      <pubDate>Sun, 08 Jun 2008 20:36:29 +0000</pubDate>
      <category domain="http://securityratty.com/tag/dep">dep</category>
      <category domain="http://securityratty.com/tag/data execution prevention">data execution prevention</category>
      <category domain="http://securityratty.com/tag/memory corruption">memory corruption</category>
      <category domain="http://securityratty.com/tag/windows">windows</category>
      <category domain="http://securityratty.com/tag/configure dep protection">configure dep protection</category>
      <category domain="http://securityratty.com/tag/configure">configure</category>
      <category domain="http://securityratty.com/tag/memory corruption attacks">memory corruption attacks</category>
      <category domain="http://securityratty.com/tag/vista">vista</category>
      <category domain="http://securityratty.com/tag/buffer overflows">buffer overflows</category>
      <source url="http://feeds.feedburner.com/~r/IrongeeksSecuritySite/~3/307708597/i.php">Using Data Execution Prevention (DEP) in Windows XP and Vista: Fighting back against buffer overflows and memory corruption</source>
    </item>
    <item>
      <title><![CDATA[Corrupted Heap Termination Redux]]></title>
      <link>http://securityratty.com/article/a724b98a0e84d0038871d63b124215da</link>
      <guid>http://securityratty.com/article/a724b98a0e84d0038871d63b124215da</guid>
      <description><![CDATA[Hi, Michael here
In a previous post I explained how to use HeapSetInformation correctly. In short there's an option when calling this function that will terminate your application if the heap manager...]]></description>
      <content:encoded><![CDATA[<P>Hi, Michael here.</P>
<P>In a <A href="http://blogs.msdn.com/michael_howard/archive/2008/02/18/faq-about-heapsetinformation-in-windows-vista-and-heap-based-buffer-overruns.aspx">previous post</A> I explained how to use HeapSetInformation correctly. In short there's an option when calling this function that will terminate your application if the heap manager detects some form of heap corruption, or the potential to cause heap corruption.</P>
<P>I would recommend you read the previous post before continuing.</P>
<P>You guessed it, the number one email I got after this post was, "So, what sort of corruption will terminate my app?"</P>
<P>So for all those who emailed me, here's a list:</P>
<UL>
<LI>Corruption of an uncommitted range (region inside heap segments which are reserved but not committed)</LI>
<LI>Heap header corruption, for example the heap header checksum is invalid. This can be a single header, or multiple headers.</LI>
<LI>Walk of the large virtual blocks shows corruption (all blocks above about 512Kb on x86 and 1Mb on 64 bit are not allocated from segments; they are direct virtual allocations, the heap just holds a list of them along with some metadata to assure consistency with the rest of the heap. They are chained in a double linked list so corruption can be detected by walking the list.)</LI>
<LI>Buffer overrun: the next block header size does not match the expected current block size.</LI>
<LI>Buffer underrun: same as above, but the previous block header size does not match the expected current block size.</LI>
<LI>Attempting to free a free'd block (double-free bug)</LI>
<LI>Attempting to free a non 8-byte aligned block.</LI>
<LI>Passing a bogus heap handle, it could simply be an invalid heap or a handle to a different heap.</LI>
<LI>Corruption of free block list. A bit of a catch-all, including: writing after free, overrunning a previous and managing to step over the list entry. </LI></UL>
<P>But there is one huge and critically important caveat to using the defense: it only works if you use the Windows heap manager. You might be surprised to learn that many applications actually implement their own heap functionality for various reasons, often legacy reasons based on historically poor performance of operating system heap managers. A great deal of performance work was performed on the Windows Vista and Windows Server 2008 heap managers, but the work performed is way beyond the scope of this document. Another common scenario is to allocate a huge block of memory from the operating system and then perform custom allocation within that heap block. Again, if you do this, you will not get benefit from using the heap corruption termination capability and you will still be subject to repeatable heap based attacks.</P>
<P>Another down side of not using the native Windows heap manager (or if you use your own sub-allocation mechanism) is you cannot take advantage of Windows leak-detection tools because you are not using the Windows heap in the way it's meant to be used, or you're not using the Windows heap at all.</P>
<P>With all this said, I realize that moving off a custom heap to another heap is never an easy task, but if you want to take advantage of this defense, you should add "Move off our custom heap" to the list of development tasks.</P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8579450" width="1" height="1">]]></content:encoded>
      <pubDate>Sat, 07 Jun 2008 00:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/heap">heap</category>
      <category domain="http://securityratty.com/tag/free block list">free block list</category>
      <category domain="http://securityratty.com/tag/block">block</category>
      <category domain="http://securityratty.com/tag/handle">handle</category>
      <category domain="http://securityratty.com/tag/bogus heap handle">bogus heap handle</category>
      <category domain="http://securityratty.com/tag/invalid">invalid</category>
      <category domain="http://securityratty.com/tag/invalid heap">invalid heap</category>
      <category domain="http://securityratty.com/tag/custom heap">custom heap</category>
      <category domain="http://securityratty.com/tag/block header">block header</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/06/06/corrupted-heap-termination-redux.aspx">Corrupted Heap Termination Redux</source>
    </item>
    <item>
      <title><![CDATA[Webmail security: Best practices for data protection]]></title>
      <link>http://securityratty.com/article/442aec35aabf7de71d526ef11e8938df</link>
      <guid>http://securityratty.com/article/442aec35aabf7de71d526ef11e8938df</guid>
      <description><![CDATA[Webmail has become a popular choice for enterprises looking to provide users with email access outside the office, but deployment of any Web-based email system presents a unique set of security...]]></description>
      <content:encoded><![CDATA[Webmail has become a popular choice for enterprises looking to provide users with email access outside the office, but deployment of any Web-based email system presents a unique set of security challenges. In this Messaging Security School tip, Sandra Kay Miller explains various strategies that can solve authentication problems and prevent attacks involving cross-site scripting, buffer overflows and phishing.<img src="http://feeds.feedburner.com/~r/WhatisEnterpriseItTipsAndExpertAdvice/~4/303779658" height="1" width="1"/>]]></content:encoded>
      <pubDate>Tue, 03 Jun 2008 06:25:41 +0000</pubDate>
      <category domain="http://securityratty.com/tag/security school tip">security school tip</category>
      <category domain="http://securityratty.com/tag/unique set">unique set</category>
      <category domain="http://securityratty.com/tag/provide users">provide users</category>
      <category domain="http://securityratty.com/tag/popular choice">popular choice</category>
      <category domain="http://securityratty.com/tag/buffer overflows">buffer overflows</category>
      <category domain="http://securityratty.com/tag/email system">email system</category>
      <category domain="http://securityratty.com/tag/webmail">webmail</category>
      <category domain="http://securityratty.com/tag/security challenges">security challenges</category>
      <category domain="http://securityratty.com/tag/prevent attacks">prevent attacks</category>
      <source url="http://feeds.feedburner.com/~r/WhatisEnterpriseItTipsAndExpertAdvice/~3/303779658/0,289483,sid14_gci1313468,00.html">Webmail security: Best practices for data protection</source>
    </item>
    <item>
      <title><![CDATA[Giving SQL Injection the Respect it Deserves]]></title>
      <link>http://securityratty.com/article/57d875bb80f61dde372def8fc9b27b27</link>
      <guid>http://securityratty.com/article/57d875bb80f61dde372def8fc9b27b27</guid>
      <description><![CDATA[Hello, Michael here
You may have read recently about a large number of Web servers that were compromised through a SQL injection attack. The malicious SQL payload is very well designed, somewhat...]]></description>
      <content:encoded><![CDATA[&nbsp; 
<P>Hello, Michael here...</P>
<P>You may have <A href="http://blogs.iis.net/bills/archive/2008/04/25/sql-injection-attacks-on-iis-web-servers.aspx">read</A> recently about a <A href="http://blog.washingtonpost.com/securityfix/2008/04/hundreds_of_thousands_of_micro_1.html">large number of Web servers</A> that were compromised through a SQL injection attack. The malicious SQL payload is very well designed, somewhat database schema agnostic and generic &nbsp;so it could compromise as many database servers as possible. While the attack was a SQL injection attack that attacked and compromised back-end databases courtesy of vulnerable Web pages, from a user's perspective the real attack was compromised Web pages that serve up malware to attack user's through their browsers. In essence, there were two sets of victims: the Web site operators and the users who visited the affected Web sites. In this post, I want to focus on what the first set of users, the Web site operators, can do to protect themselves.</P>
<P>The fact that the malicious payload was so generic shows that the science of SQL injection has not taken a back seat to research in other vulnerability types, such as buffer overflows or cross-site scripting issues. </P>
<P>I think the first lesson from this attack is this:</P>
<P>If you have a Web server (doesn't matter what type), and it's hooked up to a database (doesn't matter what type) you need to go in and review your code that performs the database work.</P>
<P>So now that you've determined the database access code, now what? The SDL is very specific about what do here, there are three requirements - they are requirements not recommendations, which means you must do the following coding requirements and defenses</P>
<UL>
<LI>Use SQL Parameterized Queries</LI>
<LI>Use Stored Procedures</LI>
<LI>Use SQL Execute-only Permission</LI></UL>
<H2>Use SQL Parameterized Queries</H2>
<P>From the SDL documentation: </P>
<P>"Applications accessing a database must do so only using parameterized queries.</P>
<P>Creating dynamic queries using string concatenation potentially allows an attacker to execute an arbitrary query through the application. This vulnerability allows for unauthorized, interactive, logon to a SQL server which may result in the execution of malicious commands leading to the possible modification (or deletion) of Operating System or user data. </P>
<P>Combining the use of parameterized queries and stored procedures helps to mitigate the risk of successful exploitation of user input which is not correctly verified."</P>
<P>This defense has been known about forever; heck, <A href="http://blogs.msdn.com/david_leblanc/">David</A> and I discussed this in detail in the first edition of Writing Secure Code in 2002:</P>
<P>From page 320, "Another way to perform this kind of processing is to use <I>placeholders</I> which are often referred to as <I>parameterized commands</I>."</P>
<P>Just about every database access technology supports parameterized queries; work out what they are for your DB technology and use them: the defense for a PHP/MySQL combo will not be the same as a C#/SQL Server combo.</P>
<P>The most likely cause of these recent compromises is using string concatenation to build SQL statements. Just don't do it, even if you think you're safe, just don't use string concatenation to build SQL statements! There are some very specialized cases where string concatenation is valid, but they are rare, especially for Web apps. In my opinion, any use of string concatenation in a Web application is a high-priority bug. </P>
<H2>Use Stored Procedures</H2>
<P>From the SDL documentation: </P>
<P>"Applications accessing databases should do so only using stored procedures. "</P>
<P>-and-</P>
<P>"Do not use "exec @sql" construct in your stored procedures.</P>
<P>Using stored procedures helps to mitigate the SQL injection threat to a great extent since type checking is available for parameters. If the attacker supplies input that does not match the type constraints the stored procedures will throw an exception. In the vast majority of the cases, this should be properly handled within the application. </P>
<P>However, if the stored procedures perform string manipulation in their code and then execute that query using the "exec @sql" construct incorrect handling of user input can produce the same SQL injection vulnerability as would be seen at the application layer."</P>
<P>Note the words "help mitigate," by themselves stored procedures do not remove SQL injection vulnerabilities; they just raise the bar on the attacker by hiding much of the underlying database schema from the attacker.</P>
<H2>Use SQL Execute-only Permission</H2>
<P>This next defense is interesting in that it is a defense in depth method; in this case it assumes the attacker has successfully found a SQL injection bug in your code. Now what? Thankfully, this defense will stop most every attack dead in its tracks.</P>
<P>From the SDL documentation:</P>
<P>&nbsp;"Only grant ‘execute' permission on all stored procedures, and grant that permission only for the application domain group. </P>
<P>Ensure that this group is granted execute permissions only on your stored procedures. Do not grant any other permission on your database to any other user or group."</P>
<P>This is a great defense, because if the attacker attempts to access any other database object other than through a stored procedure (you can use views also), the underlying database permissions model prevents the attack by denying access to the attacker.</P>
<P>It's interesting that the SDL offers three SQL injection requirements; only one actually remedies the problem (secure by design) and the other two offer mores defenses assuming failure (secure by default.)</P>
<P>Of course, a simple set of rules is not a substitute for careful design, implementation, and test. The SDL is a holistic process that covers the software lifecycle end-to-end, so don't mistake these simple rules as a guarantee that you will avoid SQL injection problems. You need to understand the situations in which the rules apply. You may find, for example, that string concatenation is the best - or perhaps only - solution to a particular problem and these rules may not guard against SQL injection in those situations. Follow secure development practice throughout the lifecycle of your project - including things we left out of this blog, like testing and security response, for best results.</P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8508828" width="1" height="1">]]></content:encoded>
      <pubDate>Thu, 15 May 2008 14:45:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/sql">sql</category>
      <category domain="http://securityratty.com/tag/sql injection bug">sql injection bug</category>
      <category domain="http://securityratty.com/tag/sql injection requirements">sql injection requirements</category>
      <category domain="http://securityratty.com/tag/sql injection attack">sql injection attack</category>
      <category domain="http://securityratty.com/tag/sql server">sql server</category>
      <category domain="http://securityratty.com/tag/sql execute-only permission">sql execute-only permission</category>
      <category domain="http://securityratty.com/tag/malicious sql payload">malicious sql payload</category>
      <category domain="http://securityratty.com/tag/sql injection">sql injection</category>
      <category domain="http://securityratty.com/tag/sql injection vulnerability">sql injection vulnerability</category>
      <source url="http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx">Giving SQL Injection the Respect it Deserves</source>
    </item>
    <item>
      <title><![CDATA[The Ethics of Vulnerability Research]]></title>
      <link>http://securityratty.com/article/fe00e316d36d853b7bb960b4d2097a75</link>
      <guid>http://securityratty.com/article/fe00e316d36d853b7bb960b4d2097a75</guid>
      <description><![CDATA[The standard way to take control of someone else's computer is by exploiting a vulnerability in a software program on it. This was true in the 1960s when buffer overflows were first exploited to...]]></description>
      <content:encoded><![CDATA[<p>The standard way to take control of someone else's computer is by exploiting a vulnerability in a software program on it. This was true in the 1960s when buffer overflows were first exploited to attack computers. It was true in 1988 when the Morris worm exploited a Unix vulnerability to attack computers on the Internet, and it's still how most modern malware works. </p>

<p>Vulnerabilities are software mistakes--mistakes in specification and design, but mostly mistakes in programming. Any large software package will have thousands of mistakes. These vulnerabilities lie dormant in our software systems, waiting to be discovered. Once discovered, they can be used to attack systems. This is the point of security patching: eliminating known vulnerabilities. But many systems don't get patched, so the Internet is filled with known, exploitable vulnerabilities. </p>

<p>New vulnerabilities are hot commodities. A hacker who discovers one can sell it on the black market, blackmail the vendor with disclosure, or simply publish it without regard to the consequences. Even if he does none of these, the mere fact the vulnerability is known by someone increases the risk to every user of that software. Given that, is it ethical to research new vulnerabilities? </p>

<p>Unequivocally, yes. Despite the risks, vulnerability research is enormously valuable. Security is a mindset, and looking for vulnerabilities nurtures that mindset. Deny practitioners this vital learning tool, and security suffers accordingly. </p>

<p>Security engineers see the world differently than other engineers. Instead of focusing on how systems work, they focus on how systems fail, how they can be made to fail, and how to prevent--or protect against--those failures. Most software vulnerabilities don't ever appear in normal operations, only when an attacker deliberately exploits them. So security engineers need to think like attackers. </p>

<p>People without the mindset sometimes think they can design security products, but they can't. And you see the results all over society--in snake-oil cryptography, software, Internet protocols, voting machines, and fare card and other payment systems. Many of these systems had someone in charge of "security" on their teams, but it wasn't someone who thought like an attacker. </p>

<p>This mindset is difficult to teach, and may be something you're born with or not. But in order to train people possessing the mindset, they need to search for and find security vulnerabilities--again and again and again. And this is true regardless of the domain. Good cryptographers discover vulnerabilities in others' algorithms and protocols. Good software security experts find vulnerabilities in others' code. Good airport security designers figure out new ways to subvert airport security. And so on. </p>

<p>This is so important that when someone shows me a security design by someone I don't know, my first question is, "What has the designer broken?" Anyone can design a security system that he cannot break. So when someone announces, "Here's my security system, and I can't break it," your first reaction should be, "Who are you?" If he's someone who has broken dozens of similar systems, his system is worth looking at. If he's never broken anything, the chance is zero that it will be any good. </p>

<p>Vulnerability research is vital because it trains our next generation of computer security experts. Yes, newly discovered vulnerabilities in software and airports put us at risk, but they also give us more realistic information about how good the security actually is. And yes, there are more and less responsible--and more and less legal--ways to handle a new vulnerability. But the bad guys are constantly searching for new vulnerabilities, and if we have any hope of securing our systems, we need the good guys to be at least as competent. To me, the question isn't whether it's ethical to do vulnerability research. If someone has the skill to analyze and provide better insights into the problem, the question is whether it is ethical for him not to do vulnerability research.</p>

<p>This was originally published in <i>InfoSecurity Magazine</i>, as part of a point-counterpoint with Marcus Ranum.  You can read Marcus's half <a href="http://searchsecurity.techtarget.com/magazineFeature/0,296894,sid14_gci1313268,00.html">here</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=ycY9bH"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=ycY9bH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=3jUZWH"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=3jUZWH" border="0"></img></a>
</div>]]></content:encoded>
      <pubDate>Wed, 14 May 2008 07:29:45 +0000</pubDate>
      <category domain="http://securityratty.com/tag/software security experts">software security experts</category>
      <category domain="http://securityratty.com/tag/software">software</category>
      <category domain="http://securityratty.com/tag/vulnerabilities nurtures">vulnerabilities nurtures</category>
      <category domain="http://securityratty.com/tag/vulnerabilities">vulnerabilities</category>
      <category domain="http://securityratty.com/tag/exploitable vulnerabilities">exploitable vulnerabilities</category>
      <category domain="http://securityratty.com/tag/vulnerabilities lie dormant">vulnerabilities lie dormant</category>
      <category domain="http://securityratty.com/tag/security vulnerabilities">security vulnerabilities</category>
      <category domain="http://securityratty.com/tag/computer">computer</category>
      <category domain="http://securityratty.com/tag/computer security experts">computer security experts</category>
      <source url="http://www.schneier.com/blog/archives/2008/05/the_ethics_of_v.html">The Ethics of Vulnerability Research</source>
    </item>
  </channel>
</rss>
