<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0"
  xmlns:ent="http://www.purl.org/NET/ENT/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
  <title>Chris Seary&#39;s blog</title>
  <link>http://blog.searyblog.com/blog</link>
  <description></description>
  <language>en-us</language>
  <lastBuildDate>Mon, 12 Dec 2011 01:48:30 -0800</lastBuildDate>
  <category domain="http://blog.searyblog.com/blog">Main Page</category>
  <generator>Blogware</generator>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Application service accounts</title>
    <link>http://blog.searyblog.com/blog/_archives/2010/1/24/4436957.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2010/1/24/4436957.html</guid>
    <pubDate>Sun, 24 Jan 2010 12:57:08 -0800</pubDate>
    <description>Networking/infrastructure specialists often have a very different view to developers when it comes to security. To be quite frank, the network guys have a very good track record these days (setting up firewalls, locking down servers etc.). The developers, being relatively new to the game, are having to play catch up at a time when many malicious users have discovered the vulnerabilities within web application code (such as SQL injection, cross-site scripting).&lt;br&gt;&lt;br&gt;It&#39;s difficult for developers because there are very few tools or standard configurations that can lock down the application. A developer has to ensure that each function written has the necessary layers of security. For instance, has the input been validated? Is the database being accessed securely via stored procedures when adding the data to the database? Has the user been authenticated somewhere on the web page?&lt;br&gt;&lt;br&gt;The two points of view (infrastructure specialist and developer) sometimes lead to conflict due to misunderstanding.&lt;br&gt;&lt;br&gt;A case in point is the use of service accounts. The infrastructure specialist is often, but not always, keen for the logged on user to be identified and authorised by the operating system in all components of the application, by flowing the identity. This can be achieved via kerberos, or simply re-supplying cached credentials to re-authenticate (IIS and its use of NTLM is a good example of this).&lt;br&gt;&lt;br&gt;The developer sees this quite differently. By flowing the identity to the database, a new security context is used each time. This means that connection pooling (several instances using one database connection, that is retained between batches) is lost, and so performance grinds to a snail&#39;s pace very quickly. Also, if one is authenticating and authorising the caller at the database, then that user has direct rights to the database, and can access it without going through the application.&lt;br&gt;&lt;br&gt;This is why internet facing web sites generally use an application service account. The web server authenticates the user. The web application then uses that identity for checking whether the user can access specific functionality. However, it does not run under the context of that user - it functions under contect of the service account. Only that service account is granted access to the database.&lt;br&gt;&lt;br&gt;Although this improves performance and prevents users accessing the database directly, there are certain vulnerabilities that have to be controlled. Firstly, this service account has very high levels of access to the database. Compromise of the application can give a lot of potential pwoer to a malicious user. To control this, it&#39;s important that secure coding practices are used. Also, tools such as Code Access Security, which restrict what each component of the application can do, mitigate the potential damage. As well as this, the database access should be locked down as much as possible. Never give service accounts dbo or sysadmin privilege. It&#39;s always best to give execute permission to stored procedures only.&lt;br&gt;&lt;br&gt;Secondly, accounting and auditing is reduced. The operating system will log that every operation was performed by the service account. This is where a lot of &#39;plumbing&#39; has to be coded. Usernames have to be passed to stored procedures, history tables have to be created, database columns with the name &#39;created by&#39; are added to almost all tables. This can, and usually is, tightly managed.&lt;br&gt;&lt;br&gt;Architecture guides, such as the ones produced by SUN and Microsoft, give a good overview of the risks, architectural patterns, and implementations that will satisfy security requirements:&lt;br&gt;http://msdn.microsoft.com/en-us/library/aa302415.aspx&lt;br&gt;http://www.sun.com/security/index.jsp</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/HowTo">How To</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="security" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=security">security</ent:topic>
    
    </ent:cloud>
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>The thoughts of Chairman Chris - 1:Browser Compatibility</title>
    <link>http://blog.searyblog.com/blog/_archives/2009/2/24/4103091.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2009/2/24/4103091.html</guid>
    <pubDate>Tue, 24 Feb 2009 02:48:31 -0800</pubDate>
    <description>&lt;P&gt;I was having problems with a site rendering properly in Internet Explorer. A friend of mine suggested that I use Firefox instead.&lt;/P&gt;
&lt;P&gt;I thought I&#39;d write this blog article to vent my annoyance, and put everyone right!&lt;/P&gt;
&lt;P&gt;Now, I&#39;ve used IE to access the following:&lt;/P&gt;
&lt;P&gt;-sites containing Java applets&lt;BR&gt;-eBay&lt;BR&gt;-Amazon&lt;BR&gt;-Flickr&lt;BR&gt;-YouTube&lt;BR&gt;-BBC web page&lt;BR&gt;-various sites that use Javascript to mimic 1980s pub games (such as Space Invaders)&lt;BR&gt;-a virtual, secure desktop environment of one of my clients, which is separated from the host operating system&lt;/P&gt;
&lt;P&gt;IE has no problems whatsoever with any of these.&lt;/P&gt;
&lt;P&gt;The very few sites I encounter that have display problems in IE don&#39;t do anything major. They really are simple. The problem is usually just rendering of stylesheets.&lt;/P&gt;
&lt;P&gt;Why don&#39;t they work?&lt;/P&gt;
&lt;P&gt;Enterprise Architects have an expectation now that a web site will work on a browser. That&#39;s that. No hassles.&lt;/P&gt;
&lt;P&gt;Your web server can emit HTML and Javascript that will work on different browsers. Or it can pick up the type of browser, and send different output to each. You then test it on the last couple of versions of:&lt;BR&gt;IE&lt;BR&gt;Firefox&lt;BR&gt;Opera&lt;BR&gt;Safari&lt;/P&gt;
&lt;P&gt;And then your web site will work. This is very simple, basic stuff. This is what websites have done for years, and it succeeds.&lt;/P&gt;
&lt;P&gt;The website that I mentioned at the beginning of this article carried a notice stating &#39;IE is having problems rendering our pages&#39;.&lt;/P&gt;
&lt;P&gt;This isn&#39;t what is happening.&lt;/P&gt;
&lt;P&gt;Only one thing is going on: 68% of their target audience is not able to do business through their web page.&lt;/P&gt;
&lt;P&gt;If you can&#39;t get this right, then you&#39;re missing the point of having a web site.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Architecture">Architecture</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Google and your data</title>
    <link>http://blog.searyblog.com/blog/_archives/2009/1/27/4071394.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2009/1/27/4071394.html</guid>
    <pubDate>Tue, 27 Jan 2009 02:41:55 -0800</pubDate>
    <description>&lt;P&gt;Another Google tool where you may be exposing your data across the internet, and have no control over where/how it&#39;s stored:&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://www.guardian.co.uk/technology/2009/jan/25/google-drive-gdrive-internet&quot;&gt;http://www.guardian.co.uk/technology/2009/jan/25/google-drive-gdrive-internet&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;How are they storing your data? Will it be encrypted? Doubtful, as this will slow down performance.&lt;/P&gt;
&lt;P&gt;You&#39;re handing over your personal data to another company. In another country.&lt;/P&gt;
&lt;P&gt;It was tried ten years ago, and never took off.&lt;/P&gt;
&lt;P&gt;The private sector are the biggest users of PCs. Business will not use this, as they have to meet their legal and compliance responsibilities. That&#39;s why it ain&#39;t gonna fly.&lt;/P&gt;
&lt;P&gt;Rant over.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="security" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=security">security</ent:topic>
    
    </ent:cloud>
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>25 most dangerous coding mistakes</title>
    <link>http://blog.searyblog.com/blog/_archives/2009/1/18/4061961.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2009/1/18/4061961.html</guid>
    <pubDate>Sun, 18 Jan 2009 14:19:05 -0800</pubDate>
    <description>&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;The &lt;A href=&quot;http://www.nsa.gov/&quot;&gt;US National Security Agency&lt;/A&gt; helped put together a list of the &lt;A href=&quot;http://news.bbc.co.uk/1/hi/technology/7824939.stm&quot;&gt;25 most dangerous coding mistakes&lt;/A&gt;.&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Here they are, in all their glory:&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Improper Input Validation&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Improper Encoding or Escaping of Output &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Failure to Preserve SQL Query Structure&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Failure to Preserve Web Page Structure &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Failure to Preserve OS Command Structure &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Cleartext Transmission of Sensitive Information&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Cross-Site Request Forgery&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Race Condition &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Error Message Information Leak &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Failure to Constrain Operations within the Bounds of a Memory Buffer &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;External Control of Critical State Data &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;External Control of File Name or Path&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Untrusted Search Path&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Failure to Control Generation of Code&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Download of Code Without Integrity Check &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Improper Resource Shutdown or Release &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Improper Initialization &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Incorrect Calculation &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Improper Access Control &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Use of a Broken or Risky Cryptographic Algorithm &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Hard-Coded Password &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Insecure Permission Assignment for Critical Resource &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Use of Insufficiently Random Values &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Execution with Unnecessary Privileges &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Client-Side Enforcement of Server-Side Security&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Looking down the list, we can see that a number of the issues have been around for a long time. &lt;EM&gt;SQL injection&lt;/EM&gt; – why are web sites still allowing this, after all the publicity and information disseminated on prevention? Many large organisations are still suffering from these problems, so it isn’t just confined to smaller businesses.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Most of the flaws come into being during implementation (development), such as:&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Injection attacks&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Improper file access&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Some occur during design, such as:&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Poor authentication&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Broken security&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;And some occur during the deployment/testing period, such as excess privilege for web applications. This is usually a result of developers running as administrator on their machines, and finding that the application won’t run any other way when it’s installed onto the production server.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;There are also other categroies and flaws in the list, but I&#39;m not going to be exhaustive in covering it. I&#39;m focusing on initiatives to improve the development process.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;So where do we start in tackling this? The problem really is a good example of how we must look at security as a process, rather than just trying to find a quick fix.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Concrete solutions that I have been involved in at various organisations have included the following:&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Secure coding requirements&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Training programs&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Penetration testing&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Code inspection&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Validation frameworks&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;One generally has to target both .Net and Java, as large organisations will tend to use both.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Secure coding requirements seem to be continuously written over and over again at one organisation after another. A good basis for Microsoft products is the &lt;A href=&quot;http://msdn.microsoft.com/en-gb/library/aa302415.aspx&quot;&gt;Building Secure Asp.Net Applications&lt;/A&gt; document, and &lt;A href=&quot;http://msdn.microsoft.com/en-gb/library/ms994921.aspx). &quot;&gt;Improving web application security&lt;/A&gt; This guidance can be used, with company specific guidance appended. Java documentation gives less of an integration overview, but this is because it will be more implementation specific. However, the Microsoft patterns are quite generic.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Once these documents are written, they will then feed into the development process, and end up being part of the specific non-functional requirements for the application.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Training programs are another essential part of the process. I have worked with a global client recently, creating a training program that was based on the &lt;EM&gt;secure coding requirements&lt;/EM&gt;, and the &lt;EM&gt;processes involved in getting security sign-off&lt;/EM&gt;. This training was computer based, so that all technology-based employees could learn how to integrate security.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Penetration testing&amp;nbsp;may take place, depending on the criticality and vulnerability of the application. For instance, an internet facing application with extremely sensitive data would certainly need a pen test. This will usually reveal discrepancies, which then have to be prioritised and fixed. Let the development team know early on whether this will be necessary, as it will have to be budgeted for.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Code inspection can take many forms. An audit based approach, taking a sample and manually checking, is useful. Also, there are many code checking tools, such as &lt;A href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyId=0178e2ef-9da8-445e-9348-c93f24cc9f9d&amp;amp;displaylang=en&quot;&gt;CAT.Net&lt;/A&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;From the cat.net code download site:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;EM&gt;CAT.NET is a snap-in to the Visual Studio IDE that helps you identify security flaws within a managed code (C#, Visual Basic .NET, J#) application you are developing. It does so by scanning the binary and/or assembly of the application, and tracing the data flow among its statements, methods, and assemblies.&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;I’m planning to produce an article on this tool soon.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Finally, validation frameworks are becoming more popular. There are lots of types of invalid input, such as&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;EM&gt;Mistyped entry&lt;/EM&gt; – simply something which is misspelled or wrongly formatted, such as a date&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;EM&gt;Broken business rules&lt;/EM&gt; – Perhaps the email field for your external-facing web site needs more validation than just a regex to check the formatting. What if someone were to enter an internal email address, from within the organisation? This could perhaps be fraudulent.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;EM&gt;Request manipulation&lt;/EM&gt; – querystring manipulation to access the wrong data is common&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Validation frameworks are libraries that are geared to checking for all of the above, and more, so that they can be plugged into an application, giving a reliable, tested implementation. They have to be lightweight (so that they don’t take up too much memory, especially in web applications) and efficient (many of the functions will be called repeatedly during a request). Unfortunately, due to the inability of .Net and Java to call each other’s libraries efficiently, two versions would have to be built and maintained.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;The &lt;A href=&quot;http://www.owasp.org/index.php/ESAPI&quot;&gt;OWASP Enterprise Security API (ESAPI)&lt;/A&gt; Project is an attempt to produce a strong security framework. The ESAPI is the result of over a decade of code review and penetration testing of critical enterprise applications. At present, only the Java version is available. Efforts to build ESAPI in .NET and PHP are already underway.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Hopefully, this article will give you some clues where to start when introducing an application-level security regime to your organisation.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    <category domain="http://blog.searyblog.com/blog/HowTo">How To</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    <category domain="http://blog.searyblog.com/blog/Architecture">Architecture</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="security" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=security">security</ent:topic>
    
    <ent:topic ent:id="java" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=java">java</ent:topic>
    
    <ent:topic ent:id="development" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=development">development</ent:topic>
    
    </ent:cloud>
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>SQL Server 2008 Encryption - more details</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/11/10/3971517.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/11/10/3971517.html</guid>
    <pubDate>Mon, 10 Nov 2008 14:40:28 -0800</pubDate>
    <description>I&#39;ve just had a &lt;A href=&quot;http://www.nxtgenug.net/Article.aspx?ArticleID=308&quot;&gt;piece published by the nextgenug on SQL Server encryption&lt;/A&gt;, which is an expansion of my previous post. Hope&amp;nbsp;you find this&amp;nbsp;useful.</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    <category domain="http://blog.searyblog.com/blog/HowTo">How To</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="user" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=user">user</ent:topic>
    
    <ent:topic ent:id="sql2008" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=sql2008">sql2008</ent:topic>
    
    <ent:topic ent:id="security" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=security">security</ent:topic>
    
    <ent:topic ent:id="next" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=next">next</ent:topic>
    
    <ent:topic ent:id="group" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=group">group</ent:topic>
    
    <ent:topic ent:id="generation" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=generation">generation</ent:topic>
    
    <ent:topic ent:id="development" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=development">development</ent:topic>
    
    </ent:cloud>
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>SQL Server Transparent Data Encryption</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/10/15/3931592.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/10/15/3931592.html</guid>
    <pubDate>Wed, 15 Oct 2008 07:15:55 -0700</pubDate>
    <description>&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;A major problem in the commercial world is getting people to look after their data. Too often, a staff member will save sensitive data in a document without adequate protection, bypassing all logical controls set up by the system administrator.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;How do we solve this? Ask everyone to apply strong Access Control Lists to all data that they save? This would cause problems:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;-A lot of wasted effort if the data is not sensitive&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;-For the sensitive data, how should one apply the ACLs? Which people should be allowed to access it?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;A common solution has been to use the concepts of security classification from the defence world.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;You’ll recall all those documents in James Bond movies marked ‘Top Secret’ and ‘For Your Eyes Only’. Well, this can be applied to the different types of data in an organisation. You can make up your own labels, but I’ll use these four:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Top Secret&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-Could harm organisation if made public&lt;BR&gt;-Secret keys &lt;BR&gt;-Take over plans&lt;/FONT&gt; &lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-Store encrypted&lt;BR&gt;-Backup encrypted&lt;BR&gt;-Transmit encrypted&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Secret&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-Board meeting minutes &lt;BR&gt;-High value contracts&lt;/FONT&gt; &lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-Transmit encrypted&lt;BR&gt;-Backup encrypted&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Restricted &lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-Low value contracts&lt;/FONT&gt; &lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-Transmit encrypted&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Public &lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-All other material&lt;/FONT&gt; &lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-Unprotected&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Now we have this, we can decide what type of data falls into each classification:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Top Secret&lt;/TD&gt;
&lt;TD&gt;-Could harm organisation if made public&lt;BR&gt;-Secret keys &lt;BR&gt;-Take over plans &lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-Store encrypted&lt;BR&gt;-Backup encrypted&lt;BR&gt;-Transmit encrypted&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Secret&lt;/TD&gt;
&lt;TD&gt;-Board meeting minutes &lt;BR&gt;-High value contracts &lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-Transmit encrypted&lt;BR&gt;-Backup encrypted&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Restricted &lt;/TD&gt;
&lt;TD&gt;-Low value contracts &lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-Transmit encrypted&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Public &lt;/TD&gt;
&lt;TD&gt;-All other material &lt;/TD&gt;
&lt;TD&gt;&lt;FONT color=white&gt;-Unprotected&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;This enables staff to know how to categorise data.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Now we add details of how the data is to be protected:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;Top Secret&lt;/TD&gt;
&lt;TD&gt;-Could harm organisation if made public&lt;BR&gt;-Secret keys &lt;BR&gt;-Take over plans &lt;/TD&gt;
&lt;TD&gt;-Store encrypted&lt;BR&gt;-Backup encrypted&lt;BR&gt;-Transmit encrypted &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Secret&lt;/TD&gt;
&lt;TD&gt;-Board meeting minutes &lt;BR&gt;-High value contracts &lt;/TD&gt;
&lt;TD&gt;-Transmit encrypted&lt;BR&gt;-Backup encrypted &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Restricted &lt;/TD&gt;
&lt;TD&gt;-Low value contracts &lt;/TD&gt;
&lt;TD&gt;-Transmit encrypted &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Public &lt;/TD&gt;
&lt;TD&gt;-All other material &lt;/TD&gt;
&lt;TD&gt;-Unprotected &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;So now staff can see how to handle each type of data. The table above would probably be a lot larger for most organisations, but you get the point. Staff can now identify the type of data, and from that they are able to use the correct safeguards.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;Encryption of sensitive data at rest and in backups is very common for major institutions. This can be a very computationally intensive and difficult to implement control.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;SQL Server 2008 introduces a new tool called Transparent Data Encryption. This encrypts data at the page level of the database, but decrypts it as it is read into memory. And it doesn’t increase the size of the database!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;The encryption is performed by a database encryption key (DEK). This is a symmetric key, which is then encrypted by a certificate stored in the master database of the server. This is then protected using the DPAPI.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;The following slide from MSDN makes things a little clearer.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;IMG src=&quot;http://i.msdn.microsoft.com/Bb934049.5d48ac7d-a374-4d5b-87ab-caafeba4031e(en-us,SQL.100).gif&quot;&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;This is great news for those of us who work in compliance related positions, such as security consultancy. A lot of effort has previously gone into development of solutions or selection of third party tools that provide this protection. Now SQL database administrators can provide this with minimal financial cost to the organisation.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    <category domain="http://blog.searyblog.com/blog/HowTo">How To</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    <category domain="http://blog.searyblog.com/blog/Architecture">Architecture</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="sql2008" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=sql2008">sql2008</ent:topic>
    
    <ent:topic ent:id="security" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=security">security</ent:topic>
    
    <ent:topic ent:id="development" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=development">development</ent:topic>
    
    </ent:cloud>
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Real World Application Security</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/10/13/3929183.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/10/13/3929183.html</guid>
    <pubDate>Mon, 13 Oct 2008 12:57:58 -0700</pubDate>
    <description>&lt;P&gt;I gave this presentation at two events this week. The first was in front of a room full of MVPs (obviously stressful, but their comments were very kind).&lt;/P&gt;
&lt;P&gt;Second was at the &lt;A href=&quot;http://www2.surrey.ac.uk/&quot;&gt;University of Surrey&lt;/A&gt;, where I presented to a class of Masters students for an Information Security module.&lt;/P&gt;
&lt;P&gt;Apologies to everyone for the delay in posting the slides.&amp;nbsp; &lt;IMG src=&quot;http://blog.searyblog.com/_images/emoticons/em.icon.blush.gif&quot;&gt;&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/SecurityPresentations">Security Presentations</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="security" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=security">security</ent:topic>
    
    <ent:topic ent:id="development" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=development">development</ent:topic>
    
    </ent:cloud>
    
    
    <enclosure url="http://blog.searyblog.com/_attachments/3929183/Real%20world%20application%20security%20-%20final.ppt" length="2872832" type="application/msword" />
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Why use WS-Security</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/9/3/3867340.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/9/3/3867340.html</guid>
    <pubDate>Wed, 03 Sep 2008 08:12:41 -0700</pubDate>
    <description>&lt;P&gt;I was having a &lt;A href=&quot;http://blogs.msdn.com/ericnel/archive/2008/09/01/10-years-on-is-software-development-getting-any-better.aspx&quot;&gt;discussion with Eric Nelson on his blog&lt;/A&gt; the other day. I was having a rant about requirements, which I think is one of the most vital aspects of software today.&lt;/P&gt;
&lt;P&gt;For instance, I&#39;ve been told by&amp;nbsp;a number of&amp;nbsp;developers that MVC is the &#39;correct&#39; way to develop a web&amp;nbsp;application. However, I disagree strongly with this.&lt;/P&gt;
&lt;P&gt;I don&#39;t doubt that Model View Controller is very useful for certain applications. It is a valid design pattern for solving certain problems.&lt;/P&gt;
&lt;P&gt;However, it&#39;s not &#39;the correct&#39; way to develop a web application. The only thing that is correct is the requirements. If you use MVC, and it either hinders achieving the requirements, or it adds nothing to those requirements, than MVC is not the correct design pattern to follow. Simple as that.&lt;/P&gt;
&lt;P&gt;There have been similar patterns used in security that added no value. I worked on a project three years ago that used WS-Security, because it was the latest &#39;cool thing&#39;. At the end of the day, it added no value, as SSL matched the security requirements more efficiently.&lt;/P&gt;
&lt;P&gt;So, when should you use WS-Security? &lt;A href=&quot;http://download.microsoft.com/documents/uk/msdn/security/Why%20use%20WS-Security.docx&quot;&gt;I wrote an article recently&lt;/A&gt; that is on the &lt;A href=&quot;http://msdn.microsoft.com/en-gb/aa570330.aspx&quot;&gt;MSDN Developer Security&lt;/A&gt; page.&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://download.microsoft.com/documents/uk/msdn/security/Why%20use%20WS-Security.docx&quot;&gt;The article matches requirements to technologies&lt;/A&gt;, and has been used by various clients as I was writing it. I hope you find it useful.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    <category domain="http://blog.searyblog.com/blog/HowTo">How To</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    <category domain="http://blog.searyblog.com/blog/Architecture">Architecture</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="security" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=security">security</ent:topic>
    
    </ent:cloud>
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Custom authentication with WS-Security</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/7/27/3812426.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/7/27/3812426.html</guid>
    <pubDate>Sun, 27 Jul 2008 12:25:27 -0700</pubDate>
    <description>&lt;P&gt;The SOAP and WS-Security formats, although very verbose when compared to RESTful implementations, have a much more advanced security model. They give the ability to override the authentication used within IIS (which uses&amp;nbsp;Active Directory). By&amp;nbsp;moving the credentials (username and password) from the HTTP headers into the XML of the message, one can use the UserNamePasswordValidator class to implement custom authentication.&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://www.nxtgenug.net/Article.aspx?ArticleID=289&quot;&gt;Here&#39;s an article I wrote for the Next Generation User Group&lt;/A&gt; giving all the technical details.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Requirements are king!</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/7/25/3809348.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/7/25/3809348.html</guid>
    <pubDate>Fri, 25 Jul 2008 04:50:01 -0700</pubDate>
    <description>&lt;P&gt;I read a post on &lt;A href=&quot;http://blogs.msdn.com/ericnel/archive/2008/07/24/developer-vs-the-others.aspx&quot;&gt;Eric Nelon&#39;s blog regarding Developers vs the &quot;others&quot;.&lt;/A&gt; Eric is justifiably annoyed that various levels of managers expect:&lt;BR&gt;-developers to do the managers&#39; job as well as his/her own&lt;BR&gt;-developers have to understand the end goal just as well as the managers&lt;BR&gt;-developers have to agree with what the manager says, even if the developer&#39;s argument is backed up by facts&lt;BR&gt;-developers have to accept that their needs are unimportant (course, books etc.), whereas managers go on whatever courses, conferences that are necessary&lt;/P&gt;
&lt;P&gt;I think that the meeting of minds here should be achieved by defining requirements:&lt;BR&gt;-agree requirements. This will involve both development team and management agreeing the end result. Not something vague - you need concrete bulet points, even if this is Agile development&lt;BR&gt;-map the project plan to these requirements, breaking it down to individual work tasks&lt;/P&gt;
&lt;P&gt;This will mean that both sides know what to expect. If the manager wishes to alter the requirements, then the developer can easily track which tasks need to be altered, and give a justified, detailed estimation of how much more time/resources will be needed. So often, I&#39;ve seen unprepared developers bullied into accepting ridiculous timelines because they&#39;re not giving the full picture.&lt;/P&gt;
&lt;P&gt;Unfortunately, there&#39;s just too little management of requirements in many projects. I&#39;ve even heard people say &quot;we don&#39;t define requirements, because we do Agile development&quot;. This is wrong - agile is all about defining requirements. &lt;A href=&quot;http://blog.searyblog.com/blog/_archives/2007/7/17/3100634.html&quot;&gt;See this post.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This is particularly relevant to security. If you define security requirements early (for instance, the roles/access matrix for the app), then this becomes a milestone on your project plan that the team works towards. If you engage with the security team late, then there&#39;s no management buy-in to that requirement. When you try to introduce it, you are seen as a blocker.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Security Wordle</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/7/15/3793976.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/7/15/3793976.html</guid>
    <pubDate>Tue, 15 Jul 2008 06:18:49 -0700</pubDate>
    <description>&lt;P&gt;Decided to &lt;A href=&quot;http://wordle.net/&quot;&gt;Wordle&lt;/A&gt; my blog. Glad to see that &#39;security&#39; is prominent!&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/wordle1small.jpg&quot;&gt;&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Next Generation User Group Fest 08</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/7/3/3774206.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/7/3/3774206.html</guid>
    <pubDate>Thu, 03 Jul 2008 05:55:36 -0700</pubDate>
    <description>&lt;P&gt;Well, Fest 08 was a great success with &#39;Data Today, Data Tomorrow&#39;. Loved the sessions and the usual Dave and Rich game show.&lt;/P&gt;
&lt;P&gt;Here&#39;s a write up of the day:&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://www.nxtgenug.net/Article.aspx?ArticleID=283&quot;&gt;http://www.nxtgenug.net/Article.aspx?ArticleID=283&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;and here&#39;s a shot of Dave McMahon giving a live demonstration of various yoga positions. Don&#39;t ask......&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://www.nxtgenug.net/imagescontent/art283/davetalk.jpg&quot;&gt;&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Google Charts</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/6/11/3739051.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/6/11/3739051.html</guid>
    <pubDate>Wed, 11 Jun 2008 03:48:05 -0700</pubDate>
    <description>&lt;P&gt;&lt;A href=&quot;http://www.infoq.com/articles/bass-google-charts-gchartrb&quot;&gt;Google charts&lt;/A&gt; are an interesting tool for producing graphic representations of your data.. &lt;A href=&quot;http://code.google.com/apis/chart/&quot;&gt;The Google Chart API&lt;/A&gt; returns a PNG-format image in response to a URL.&lt;/P&gt;
&lt;P&gt;This is an extremely useful tool, and there is already more than one wrapper for the API so that you can call it from your code.&lt;/P&gt;
&lt;P&gt;But how about the security aspects of this tool? Well, if you&#39;re worried about availaibility, you can store the resulting .png file on your own server, and provide your own resilience.&lt;/P&gt;
&lt;P&gt;However, the confidentiality and integrity aspects are quite suspect. Only http is available, not https. This is a shame, as your business data deseerves better than this. You&#39;ve provided HTTPS for your website, perhaps strong authentication and have protected your servers and database. Then you send that data unprotected across the internet.....&lt;/P&gt;
&lt;P&gt;Also, you&#39;re at the mercy of Google for protection of the data while it&#39;s on their servers. I know all the techies are going to&amp;nbsp;say &quot;Yeah, but Google use &lt;EM&gt;xyz&lt;/EM&gt; operating system and &lt;EM&gt;abc&lt;/EM&gt; brand firewalls.&quot; Fine, but have they vetted the CVs of the admin staff that work on those servers? How do they dispose of the discs? How is the dev environment segregated from production?&lt;/P&gt;
&lt;P&gt;If I was a hacker/criminal/hostile government,&amp;nbsp;Google Charts&amp;nbsp;would be a prime target for my attack.&lt;/P&gt;
&lt;P&gt;I&#39;d suggest the answer at present is to only send non-sensitive data across the internet to this service.&lt;/P&gt;
&lt;P&gt;What&#39;s non-sensitive for your company? OK, answer the following question:&lt;/P&gt;
&lt;P&gt;Can you print out the data on A4 paper, stand in your local shopping mall and hand it out to everyone passing? If the answer is NO, then don&#39;t use Google Charts for that data.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Patterns and Practices for Securing WCF</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/6/9/3739249.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/6/9/3739249.html</guid>
    <pubDate>Mon, 09 Jun 2008 23:01:35 -0700</pubDate>
    <description>&lt;P&gt;Microsoft have produced a beta of the &lt;A href=&quot;http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=WCFSecurityGuide&amp;amp;ReleaseId=14070&quot;&gt;WCF&amp;nbsp; Security Guide&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I&#39;m chuffed to bits to see this appear. I&#39;ve waited for quite a while to see some of the older guides updated, and this is very good quality.&lt;/P&gt;
&lt;P&gt;I worked with a security consultancy last year that gave their graduates the older Patterns and Practices Guides on the first day at work. The new graduates all wondered why they&#39;d not been given the documents&amp;nbsp;at university!&lt;/P&gt;
&lt;P&gt;One of the strengths of these documents is that they&#39;ve been tried and tested. This is proven by the code samples that are included - so many questions are answered by providing this.&lt;/P&gt;
&lt;P&gt;Several solutions are included, which can be mapped on to your requirements. This is what design patterns are all about for me - integrating parts of the application together, rather than being lost in classes and interfaces. This is extremely useful, as security often changes (fundamentally) the architecture of an application. Having a mapping from requirements to architecture saves a great deal of time and money, as there is less change later in development. The overall security integration can be done sooner.&lt;/P&gt;
&lt;P&gt;What are the downsides? Well, they&#39;re vey few in number:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P&gt;Only Microsoft products are considered. Shame, as MS are much stronger in the enterprise now. I&#39;d like to see how a WCF service can be called from web server &lt;EM&gt;xyz&lt;/EM&gt;, rather than just IIS. I&#39;m not asking for all web servers to be covered (that would be duplication) but just some general guidelines.&lt;/P&gt;
&lt;P&gt;IPSec. Several sections of the guidance sugest setting up IPSec for security. This just doesn&#39;t happen (usually) in ver secure environments. There are too many technical and beaurocratic reasons why you won&#39;t get this sort of connection set up when requested. For instance, many large organisations are moving toward application layer security as the hardware encryption accelerators just can&#39;t keep up with WAN traffic.&lt;/P&gt;
&lt;P&gt;ASP.Net membership providers. They&#39;re a good suggestion, but they&#39;re not as useful in the enterprise as one might imagine. Generally, one would provide a heirarchy of &lt;EM&gt;roles&lt;/EM&gt; and &lt;EM&gt;permissions&lt;/EM&gt; within the application, and the roles would map to groups within the enterprise. The Asp.Net providers only allow the user to role mapping, which can lead to spaghetti code after a few releases (if user.isinrole(&quot;Manager&quot;) or user.isinrole(&quot;External&quot;) or user.isinrole(&quot;Support&quot;) etc. for each programmatic role check).&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;Then again, that&#39;s what MVPs like myself are for, isn&#39;t it? I humbly aim to fill in the gaps in some future presentations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Irish Microsoft Technology Conference</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/4/10/3631727.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/4/10/3631727.html</guid>
    <pubDate>Thu, 10 Apr 2008 12:39:33 -0700</pubDate>
    <description>&lt;P&gt;I was fortunate enough to be invited to the IMTC this year to speak on WCF security. Had a great time, but what a busy day!&lt;/P&gt;
&lt;P&gt;I left my home at 7am and travlled continuously until 2.30pm, when I arrived. And I was speaking at 3.15!&lt;/P&gt;
&lt;P&gt;Thanks to the (large) audience that came to see me. I promised to put up the slides and code, so here it is.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/SecurityPresentations">Security Presentations</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="IMTC" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=IMTC">IMTC</ent:topic>
    
    <ent:topic ent:id="user" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=user">user</ent:topic>
    
    <ent:topic ent:id="security" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=security">security</ent:topic>
    
    <ent:topic ent:id="development" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=development">development</ent:topic>
    
    </ent:cloud>
    
    
    <enclosure url="http://blog.searyblog.com/_attachments/3631727/Vista%20VS2008%20files.zip" length="406880" type="application/x-zip" />
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Next Gen Oxford Community Launch</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/4/10/3631812.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/4/10/3631812.html</guid>
    <pubDate>Tue, 01 Apr 2008 13:12:00 -0700</pubDate>
    <description>&lt;P&gt;Last month saw the launch of stacks of new Microsoft technology, so to celebrate we gave away loads of swag (Vista,&amp;nbsp;VS 2008 and more!). Barry even had the foresight to set up a raffle.&lt;/P&gt;
&lt;P&gt;To top it all, we had the fabtastic Simon Sabin speaking on SQL development. Really enjoyed hearing about all the new facets of the world&#39;s best database, and the&amp;nbsp;co-ordinates tool that Simon showed us was awesome.&lt;/P&gt;
&lt;P&gt;The usual suspects:&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/audiencelaunch.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;Barry hurling swag:&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/barryprizes.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;Simon Sabin speaking on SQL Server 2008:&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/simonspeaks.jpg&quot;&gt;&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/SecurityPresentations">Security Presentations</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Excess privilege</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/3/11/3739226.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/3/11/3739226.html</guid>
    <pubDate>Tue, 11 Mar 2008 14:36:23 -0700</pubDate>
    <description>&lt;P&gt;I had to laugh. I&#39;ve worked on a Unix based application recently. The service account is also granted access to log on to the application. Production support is also performed using this account.&lt;/P&gt;
&lt;P&gt;Apparently, I&#39;ve been told, this is fine. It&#39;s on a Unix server. Unix is secure.&lt;/P&gt;
&lt;P&gt;Look, you can make any OS insecure if you want. And these guys really have tried......&lt;/P&gt;
&lt;P&gt;It&#39;s important to segregate the accounts.&amp;nbsp;That service account will have a high level of access to the database. The production support person, using that account,&amp;nbsp;can now read and write to the database containing production data. What if you were a bank and this was a trading system? You&#39;ve just blown all your legal and compliance responsibilities!&lt;/P&gt;
&lt;P&gt;The service account should only be used for the application to run.&lt;/P&gt;
&lt;P&gt;Create another account with access to the files for support.&lt;/P&gt;
&lt;P&gt;Don&#39;t let someone log on to the application with this account.&lt;/P&gt;
&lt;P&gt;This is called least privilege. Doesn&#39;t matter whether it&#39;s Unix, Windows or &lt;EM&gt;xyz&lt;/EM&gt; operating system, the principle is absolute.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Production data and testing</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/2/20/3791777.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/2/20/3791777.html</guid>
    <pubDate>Wed, 20 Feb 2008 19:34:31 -0800</pubDate>
    <description>&lt;P&gt;Testing is, perhaps, not the most exciting aspect for a security consultant. However, there have been some difficult issues commonly cropping up recently.&lt;/P&gt;
&lt;P&gt;What data do you use for testing? A more difficult question than you would think.&lt;/P&gt;
&lt;P&gt;You have to control access to production data, as in many instances disclosure could have serious legal and compliance issues. What if someone&#39;s personal data was taken and sold by someone who works in your development team?&lt;/P&gt;
&lt;P&gt;The standard answer is to generate data by SQL scripts. Produce your own data, and there&#39;s no problem.&lt;/P&gt;
&lt;P&gt;However, there are times when we need to use actual production extracts.&lt;/P&gt;
&lt;P&gt;Some applications applying complex algorithms to business data (such as trading calculations) would need a spread of data similar to real ife, otherwise the algorithms could not be tested properly. In this instance, a process called sanitisation is often applied to production data extracts.&lt;/P&gt;
&lt;P&gt;Sanitisation involves &#39;scrambling&#39; any parts of the data that could be traced back to a person or organisation, so that it is unreadable. In a database table, the columns containing name and address of the client, for instance, would be scrambled, and all the other data (as long as it really unidentifiable, and one could not figure out details via aggregation of the other fields) could be left as it is. The spread of the data is true to life, but your compliance issues are satisfied.&lt;/P&gt;
&lt;P&gt;If HMRC had used this when they had sent those discs through the post, then there would have been less risk of the names and addresses being compromised.&lt;/P&gt;
&lt;P&gt;The algorithm used to scramble the data has to have a high degree of entropy, and have an element of randomness in it, so that the data cvan&#39;t be pieced back together again.&lt;/P&gt;
&lt;P&gt;However, this doesn&#39;t solve everything. Some applications are reliant on others. In the banking world, you may have a payment system that needs data similar to production for testing. First option is to sanitise the data. However, the transactions may have to be reconciled against a number of systems. This would be problematic whether it&#39;s done manualy or through a batch process. For instance, how do you match organisation &#39;w4gbsdf435&#39; against &#39;MetroBank&#39; (the first is the sanitised version in your test app, the second is the name in the other app against which it has to be reconciled). So now you have to apply the same type of sanitisation against two or more different aplicatons? The randomness required in the algorithm is one of the problems here.&lt;/P&gt;
&lt;P&gt;Bottom line is that you&#39;re going to have to manage the security of unscrambled production data in some applications. You&#39;re going to need to accomplish the following:&lt;BR&gt;-check references of the people working on the development team when hiring&lt;BR&gt;-apply access acontrols to all aspects of the application development. No more admin access for everyone&lt;BR&gt;-make sure your dev environment is well segregated from other networks (either physically or logicaly)&lt;BR&gt;-ensure someone is designated as the data owner&lt;BR&gt;-work with the information security team of your organisation to ensure all possible controls are applied&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Risk - what&#39;s your data worth?</title>
    <link>http://blog.searyblog.com/blog/_archives/2008/2/16/3739223.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2008/2/16/3739223.html</guid>
    <pubDate>Sat, 16 Feb 2008 05:43:03 -0800</pubDate>
    <description>&lt;P&gt;What&#39;s security about? Well, the bottom line is that we&#39;re specialist risk managers.&lt;/P&gt;
&lt;P&gt;Why bring this up? Well,&amp;nbsp;I&#39;ve recently sat through a talk on securing applications where the speaker said &quot;You must always encrypt communications between the application and the server&quot; and &quot;You must always add PrincipalPermission checks on your components&quot;.&lt;/P&gt;
&lt;P&gt;Not true. If you tried to apply security to every aspect of every application, you just wouldn&#39;t ever finish.&lt;/P&gt;
&lt;P&gt;The important&amp;nbsp;question is &quot;What is the cost to the organisation of the breach?&quot;&lt;/P&gt;
&lt;P&gt;If the data within an application is of no value, can be released to the public, and will not cause the company harm if the integrity is breached, then I&#39;d suggest there are &lt;EM&gt;&lt;STRONG&gt;some&lt;/STRONG&gt;&lt;/EM&gt; instances where you wouldn&#39;t apply security at all. Notice my italics.&lt;/P&gt;
&lt;P&gt;There are lots of calculations and methodologies involved, but I&#39;d suggest looking at ISO 27001 as a starting point.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>MVPs galore</title>
    <link>http://blog.searyblog.com/blog/_archives/2007/10/5/3272828.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2007/10/5/3272828.html</guid>
    <pubDate>Fri, 05 Oct 2007 08:41:50 -0700</pubDate>
    <description>&lt;P&gt;Great news for me - Microsoft have renewed my MVP status for Visual Developer - Security. I&#39;m really honoured to have received this renewal, and am very proud to be the recipient of this award.&lt;/P&gt;
&lt;P&gt;Even better - my mate &lt;A href=&quot;http://idunno.org/&quot;&gt;Barry Dorrans&lt;/A&gt; has been awarded his. He&#39;s a great speaker, so please make the effort to see him if he&#39;s visiting your user group.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Next Gen UG goes international!</title>
    <link>http://blog.searyblog.com/blog/_archives/2007/9/20/3242693.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2007/9/20/3242693.html</guid>
    <pubDate>Thu, 20 Sep 2007 11:59:06 -0700</pubDate>
    <description>&lt;P&gt;&lt;A href=&quot;http://www.jpboodhoo.com/blog/&quot;&gt;Jean-Paul Boodhoo&lt;/A&gt; from Calgary, Canada spoke at Next Gen UG in Oxford on 17th September.&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/jpstanding.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;His subject was Generics, but he went much further than his, sharing his experience as both a presenter and a technical expert.&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/jpaudience.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;The audience were spellbound - Jean-Paul gave the presentation without slides, just code, all completely from scratch. This is no mean feat!&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/jptyping.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;Here, Jean-Paul is speaking, taking questions, coding - and taking a quick bite of pizza when he got the chance!&lt;/P&gt;
&lt;P&gt;This was one of the best evenings yet, and many thanks to Jean-Paul for coming all the way down from London to give the talk.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="user" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=user">user</ent:topic>
    
    <ent:topic ent:id="next" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=next">next</ent:topic>
    
    <ent:topic ent:id="group" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=group">group</ent:topic>
    
    <ent:topic ent:id="generation" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=generation">generation</ent:topic>
    
    <ent:topic ent:id="development" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=development">development</ent:topic>
    
    </ent:cloud>
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>NextGen - Dave McMahon speaks on Office integration</title>
    <link>http://blog.searyblog.com/blog/_archives/2007/8/22/3175106.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2007/8/22/3175106.html</guid>
    <pubDate>Wed, 22 Aug 2007 09:21:27 -0700</pubDate>
    <description>&lt;P&gt;Another great night last night. Barry spoke on Duck Typing. Or Duct Taping, if like me you get your worms ..err... words mixed up. Is it the same as using the old vbs var? Not really, and Barry Dorrans gave a good overview of the specifics and its uses.&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/barryducksmall.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;The main speaker was Dave McMahon, who gave a brilliant talk on office integration. He demonstrated how to use Access (an always underrated tool) to create queries across SQL, XML, text files, Excel spreadsheets.&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/davemwsssmall.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;He then went on with a demonstration of how to create a web service within the SharePoint site that queried lists.&lt;/P&gt;
&lt;P&gt;This was my favourite talk so far at the Oxford NextGen.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="next" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=next">next</ent:topic>
    
    <ent:topic ent:id="generation" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=generation">generation</ent:topic>
    
    <ent:topic ent:id="development" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=development">development</ent:topic>
    
    </ent:cloud>
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Fame at last!</title>
    <link>http://blog.searyblog.com/blog/_archives/2007/8/7/3143929.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2007/8/7/3143929.html</guid>
    <pubDate>Tue, 07 Aug 2007 03:51:18 -0700</pubDate>
    <description>&lt;P&gt;I&#39;m chuffed to bits to have one of my&amp;nbsp;shots published as &#39;Photo of the Month&#39; in Digital Camera magazine.&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://community.dcmag.co.uk/photos/chrissearycoms_gallery/images/313387/500x343.aspx&quot;&gt;&lt;/P&gt;
&lt;P&gt;It&#39;s great to know that, just occasionally, I manage to click the shuter at the right time and in the right direction.&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/1.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;Please feel free to have a look at my &lt;A href=&quot;http://community.dcmag.co.uk/photos/chrissearycoms_gallery/default.aspx&quot;&gt;gallery&lt;/A&gt;.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Photography">Photography</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Chris Seary - LIVE!</title>
    <link>http://blog.searyblog.com/blog/_archives/2007/8/7/3143925.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2007/8/7/3143925.html</guid>
    <pubDate>Tue, 07 Aug 2007 03:45:11 -0700</pubDate>
    <description>&lt;P&gt;&lt;A href=&quot;http://www.craigmurphy.com/blog/?p=636&quot;&gt;Carig Murphy&lt;/A&gt; has videoed my talk at DDD, and put it on the internet! Very strange to watch yourself speaking - I remember having to do this when I was&amp;nbsp;doing teacher training.&lt;/P&gt;
&lt;P&gt;&lt;EMBED pluginspage=http://macromedia.com/go/getflashplayer src=http://images.soapbox.msn.com/flash/soapbox1_1.swf width=432 height=364 type=application/x-shockwave-flash quality=&quot;high&quot; wmode=&quot;transparent&quot; flashvars=&quot;c=v&amp;amp;v=f82cbdd5-db54-41a6-8a99-da5e87599e9c&quot;&gt;&lt;/EMBED&gt; &lt;/P&gt;
&lt;P&gt;Best to look at the &lt;A href=&quot;http://blog.searyblog.com/blog/SecurityPresentations&quot;&gt;slides&lt;/A&gt; as you watch. Enjoy!&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/SecurityPresentations">Security Presentations</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Roger Whitehead speaking on Windows Mobile Development</title>
    <link>http://blog.searyblog.com/blog/_archives/2007/8/6/3142559.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2007/8/6/3142559.html</guid>
    <pubDate>Mon, 06 Aug 2007 09:51:55 -0700</pubDate>
    <description>&lt;P&gt;Last week&#39;s meeting saw Roger speak on a subject that&#39;s becoming increasingly relevant to all of us.&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/roger.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;Roger not only has an incredibly strong, hands on knowledge of the subject, but he is also able to communicate across all levels on a very technical subject.&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/audience.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;Here you can see Tim Leung at the front. Pay attention, Tim! Ignore the guy with the camera.&lt;/P&gt;
&lt;P&gt;This was one of our best meetings yet at RM in Abingdon.&lt;/P&gt;
&lt;P&gt;RM is&amp;nbsp;one of our corporate sponsors. Roger works for Charteris, our other sponsor. Without these two organisations, we wouldn&#39;t be as successful as we are, and we very much appreciate their help.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Community">Community</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="group" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=group">group</ent:topic>
    
    <ent:topic ent:id="next" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=next">next</ent:topic>
    
    <ent:topic ent:id="mobile" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=mobile">mobile</ent:topic>
    
    <ent:topic ent:id="development" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=development">development</ent:topic>
    
    <ent:topic ent:id="generation" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=generation">generation</ent:topic>
    
    <ent:topic ent:id="user" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=user">user</ent:topic>
    
    </ent:cloud>
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>More work for the developers and architects</title>
    <link>http://blog.searyblog.com/blog/_archives/2007/7/31/3130301.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2007/7/31/3130301.html</guid>
    <pubDate>Tue, 31 Jul 2007 03:25:19 -0700</pubDate>
    <description>&lt;P&gt;Hmmmmm......&lt;/P&gt;
&lt;P&gt;Most of the time, when your application is accessing web services or databases, it&#39;s done within the same datacentre, right? This means that it&#39;s not a problem using network layer security (IPSec) to protect&amp;nbsp;any data in transit across the network/subnet.&lt;/P&gt;
&lt;P&gt;But what if you&#39;re accessing data across a MAN or a WAN? With the enormous bandwidth available now, this is happening more frequently. Also, what good&#39;s designing functionality as a service if it&#39;s only available to servers on the same subnet?&lt;/P&gt;
&lt;P&gt;Well, the problem with applying network layer security is that accessing data across a MAN means that a huge amount of encryption power is required. Many hardware IPSec solutions become problematic and expensive as they reach 1GB.&lt;/P&gt;
&lt;P&gt;Also, we&#39;ve got MPLS to support over a fully meshed network, with the &lt;A href=&quot;http://www.cisco.com/en/US/products/ps6822/products_white_paper09186a00800a85c5.shtml&quot;&gt;problems that may entail&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The result is that you, as a systems architect, may not be able to rely on the infrastructure people simply creating an IPSec security association for you.&lt;/P&gt;
&lt;P&gt;That&#39;s right - security has made another step to the application layer. SSL&amp;nbsp;should be&amp;nbsp;fine, but don&#39;t rule out tools such as &lt;A href=&quot;http://www.nxtgenug.net/Article.aspx?ArticleID=57&quot;&gt;WS-Security&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;No longer can architects rely on just annotating the link between the web app and the database with the words &#39;IPSec&#39; and think that&#39;s enough.&lt;/P&gt;
&lt;P&gt;And don&#39;t just think it&#39;s all covered by the magic words &#39;data security&#39;!&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    <category domain="http://blog.searyblog.com/blog/Architecture">Architecture</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>What are you developing? I don&#39;t know, we do agile.......</title>
    <link>http://blog.searyblog.com/blog/_archives/2007/7/17/3100634.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2007/7/17/3100634.html</guid>
    <pubDate>Tue, 17 Jul 2007 15:16:17 -0700</pubDate>
    <description>&lt;P&gt;&lt;A href=&quot;http://iancooper.spaces.live.com/blog/&quot;&gt;Ian Cooper&lt;/A&gt;, a developer who I respect very much, wrote &lt;A href=&quot;http://iancooper.spaces.live.com/blog/cns!844BD2811F9ABE9C!432.entry#comment&quot;&gt;an excellent article on agile and documentation&lt;/A&gt;. He states that documentation is clearly a part of&amp;nbsp;agile development methodology.
&lt;P&gt;Agile may favour lightweight documentation in many circumstances, but it is still a prerequisite. I&#39;ve seen agile methods used very successfully with condensed documentation for a very large enterprise scale application. I&#39;ve also seen agile used with very heavywieght documentation for a mission critical app using Telelogic DOORS.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;One of the most annoying things in my current work, within a large Information Security team, is when a development team tell me &quot;we don&#39;t have any documentation, we do Agile!&quot;. So how do we meet compliance requirements here, where we have to give assurance that standards have been applied to both process and application?&lt;BR&gt;Well, I went to a conference recently where an agile evangelist declared that compliance is an outdated concept.&lt;/P&gt;
&lt;P&gt;Fine. The bank I work for is thus outdated, as without compliance we&#39;re unable to trade.
&lt;P&gt;Seriously, we use agile, and we do documentation. The agile team I mentioned earlier were told to go back and write some docco if they wanted their app to go live.
&lt;P&gt;The&amp;nbsp;point was that some people think that agile is an excuse not to do documentation.
&lt;P&gt;I&amp;nbsp;feel it&#39;s starting to go&amp;nbsp;further than this. We&#39;re actually losing the practice of &lt;A href=&quot;http://en.wikipedia.org/wiki/Software_engineering&quot;&gt;SOFTWARE ENGINEERING&lt;/A&gt;. Software engineering is where we do everything for a reason - all that we design, code, test is related to requirements.
&lt;P&gt;Ten years ago, the &#39;software crisis&#39; of increasingly unmaintainable code was attributed to programmers not introducing comments to their code. A couple of years ago, with some misinterpretations of agile, it became common to have applications developed without detailed design, component design etc.
&lt;P&gt;I worked on a project last year where I was told that &quot; we don&#39;t document requirements, because we use agile&quot;. Good grief! Agile is a methodology for MANAGING requirements. If you don&#39;t document them, then YOU CAN&#39;T POSSIBLY BE DOING AGILE!&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Where do we go next? In a few years&#39; time, will we not even need someone to approve/describe a PROJECT before we start coding?
&lt;P&gt;What are you developing? I don&#39;t know, we do agile.......&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Architecture">Architecture</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Royal International Air Tattoo</title>
    <link>http://blog.searyblog.com/blog/_archives/2007/7/13/3090903.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2007/7/13/3090903.html</guid>
    <pubDate>Fri, 13 Jul 2007 12:05:12 -0700</pubDate>
    <description>&lt;P&gt;The road&#39;s are choked up with traffic in our little village now, so we&#39;re housebound until Monday. That&#39;s the price you pay for being down the road from the Fairford airbase, which is hosting the &lt;A href=&quot;http://www.rafcte.com/&quot;&gt;world&#39;s biggest air show this weekend&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://blog.searyblog.com/images/arrows3small.jpg&quot;&gt;&lt;/P&gt;
&lt;P&gt;The nice thing is, we get to watch the whole thing from our back garden!&lt;/P&gt;
&lt;P&gt;This is a fantastic event, and we&#39;ve been watching the rehearsals today. I hope everyone who attends over the weekend has a great time.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Java is NOT the platform</title>
    <link>http://blog.searyblog.com/blog/_archives/2007/7/12/3087507.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2007/7/12/3087507.html</guid>
    <pubDate>Thu, 12 Jul 2007 02:39:19 -0700</pubDate>
    <description>&lt;P&gt;I&#39;ve just been reading through &lt;A href=&quot;http://www.javalobby.org/java/forums/t73037.html&quot;&gt;a thread at Javalobby&lt;/A&gt;, where LINQ was discussed. The person who wrote the post was very open minded, but I was staggered by many of the the comments from Java developers. So many (about half) were dismissive of anything that Microsoft did, and they spoke about the Java language almost as though they were members of a cult.&lt;/P&gt;
&lt;P&gt;One guy stated that &lt;EM&gt;&#39;While Java guys have only had one platform for the last ten years, Microsofties got nine! (soon to be ten)&lt;/EM&gt;&#39;.&lt;/P&gt;
&lt;P&gt;There&#39;s a Java community view that the platform is abstracted away by the JVM, so you can port your app to any OS.&lt;/P&gt;
&lt;P&gt;In my capacity as an IT Security consultant, I work on Java and .Net projects. When working on the security design for an application, one generally works with the technical architect to build security into the app. This inevitably entails many structural changes to the architecture.&lt;/P&gt;
&lt;P&gt;Now, although there are&amp;nbsp;a good number of excellent libraries in Java for providing security (such as JAAS for authentication and authorisation), much of the security for an enterprise application is in the implementation tool chosen. For instance, if you wish to secure a message bus, then you&#39;d have to look at the documentation provided by WebSphere (or whichever product you&#39;re using) to know how to secure it. The security changes to the structure of the application are thus dependent on the OS and tools used.&lt;/P&gt;
&lt;P&gt;So, the app is not independent of the OS in the case of enterprise applications that have to be secured. And that&#39;s that!&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/GeneralSecurity">General Security</category>
    
    
    <ent:cloud ent:href="">
    
    <ent:topic ent:id="java" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=java">java</ent:topic>
    
    <ent:topic ent:id="security" ent:href="http://blog.searyblog.com/blog/cmd=search_keyword/k=security">security</ent:topic>
    
    </ent:cloud>
    
    
    
  </item>
  
  <item>
    <dc:creator>chris</dc:creator>
    <title>Splash of colour</title>
    <link>http://blog.searyblog.com/blog/_archives/2007/7/6/3074857.html</link>
    <guid>http://blog.searyblog.com/blog/_archives/2007/7/6/3074857.html</guid>
    <pubDate>Fri, 06 Jul 2007 07:00:41 -0700</pubDate>
    <description>&lt;P&gt;I think it&#39;s nice to have a photo or graphic on your blog - makes it so much nicer to look at.&lt;/P&gt;
&lt;P&gt;My hobby/obsession is photography, so I thought I&#39;d share with you one of my favourite pictures, taken soon after I bought my first digital camera.&lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://community.dcmag.co.uk/photos/chrissearycoms_gallery/images/316170/500x348.aspx&quot;&gt;&lt;/P&gt;
&lt;P&gt;If you&#39;d like to see more of my photos, &lt;A href=&quot;http://community.dcmag.co.uk/photos/chrissearycoms_gallery/default.aspx&quot;&gt;here&#39;s my gallery&lt;/A&gt;.&lt;/P&gt;</description>
    
    <category domain="http://blog.searyblog.com/blog">Main Page</category>
    
    <category domain="http://blog.searyblog.com/blog/Photography">Photography</category>
    
    
    
    
  </item>
  
</channel>
</rss>

