<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title><![CDATA[[SecurityRatty] tag: xml-rpc]]></title>
    <link>http://securityratty.com/tag/xml-rpc</link>
    <description></description>
    <pubDate>Thu, 14 Aug 2008 09:00:00 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Linux vendors patch XML parser]]></title>
      <link>http://securityratty.com/article/48ce8cfc7bfe516853c78d98f7e6c52d</link>
      <guid>http://securityratty.com/article/48ce8cfc7bfe516853c78d98f7e6c52d</guid>
      <description><![CDATA[Most of the major Linux vendors have released patches for a pair of bugs in libxml2, an XML C parser and toolkit developed for the Gnome project. Both bugs could be exploited in a denial of service...]]></description>
      <content:encoded><![CDATA[Most of the major Linux vendors have released patches for a pair of bugs in libxml2, an XML C parser and toolkit developed for the Gnome project. Both bugs could be exploited in a denial of service attack against systems that rely on the libxml2 module. Ubuntu, Mandriva, rPath and Debian are all out with patches today to remedy the problem.<p><A href="http://ad.doubleclick.net/jump/idg.us.nwf.rss/security;sz=468x60;ord=36487?">
<IMG src="http://ad.doubleclick.net/ad/idg.us.nwf.rss/security;sz=468x60;ord=36487?" border="0" width="468" height="60"></A>
</p>]]></content:encoded>
      <pubDate>Wed, 19 Nov 2008 21:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/libxml2 module">libxml2 module</category>
      <category domain="http://securityratty.com/tag/libxml2">libxml2</category>
      <category domain="http://securityratty.com/tag/major linux vendors">major linux vendors</category>
      <category domain="http://securityratty.com/tag/parser">parser</category>
      <category domain="http://securityratty.com/tag/bugs">bugs</category>
      <category domain="http://securityratty.com/tag/xml">xml</category>
      <category domain="http://securityratty.com/tag/gnome project">gnome project</category>
      <category domain="http://securityratty.com/tag/service attack">service attack</category>
      <category domain="http://securityratty.com/tag/patches">patches</category>
      <source url="http://www.networkworld.com/newsletters/bug/2008/111708bug2.html?fsrc=rss-security">Linux vendors patch XML parser</source>
    </item>
    <item>
      <title><![CDATA[The Economics of Finding and Fixing Vulnerabilities in Distributed Systems ]]></title>
      <link>http://securityratty.com/article/8a34266a61546df04c75d0de7416a33d</link>
      <guid>http://securityratty.com/article/8a34266a61546df04c75d0de7416a33d</guid>
      <description><![CDATA[The Economics of Finding and Fixing Vulnerabilities in Distributed Systems
Quality of Protection Keynote
Alexandria, VA
October 27. 2008

Gunnar Peterson
Managing Principal, Arctec Group
Blog:...]]></description>
      <content:encoded><![CDATA[<div>The Economics of Finding and Fixing Vulnerabilities in Distributed Systems&#0160;</div><div><a href="http://qop-workshop.org/Program.htm">Quality of Protection Keynote</a></div><div>Alexandria, VA</div><div>October 27. 2008</div><br /><div>Gunnar Peterson</div><div>Managing Principal, Arctec Group</div><div>Blog: http://1raindrop.typepad.com</div><br /><div>When Andy Ozment asked me over the summer to do this talk at QoP, I knew back in August that the topic I wanted to address was security and economics. So to that end I would like to start by thanking all of our friends on Wall Street and here in Washington DC for providing such a rich tapestry of recent events that I can speak to.</div><br /><div>Like many people in this industry, my focus on security was fundamentally altered by Dan Geer&#39;s speech &quot;Risk Management is Where the Money Is&quot;[1], there are not many people who can call a ten year shot in the technology business, but Dan Geer did. The talk revolutionized the security industry. Since that speech, the security market, the vendors, consultants, and everyone else has realized that security is really about risk management.</div><br /><div>Of course, saying that you are managing risk and actually managing risk are two different things. Warren Buffett started off his 2007 shareholder letter [2] talking about financial institutions&#39; ability to deal with the subprime mess in the housing market saying, &quot;You don&#39;t know who is swimming naked until the tide goes out.&quot; In our world, we don&#39;t know whose systems are running naked, with no controls, until they are attacked. Of course, by then it is too late.</div><br /><div>So the security industry understands enough about risk management that the language of risk has permeated almost every product, presentation, and security project for the last ten years. However, a friend of mine who works at a bank recently attended a workshop on security metrics, and came away with the following observation - &quot;All these people are talking about risk, but they don&#39;t have any assets.&quot; You can&#39;t do risk management if you don&#39;t know your assets.</div><br /><div>Risk management requires that you know your assets, that on some level you understand the vulnerabilities surrounding your assets, the threats against those, and efficacy of the countermeasures you would like to use to separate the threat from the asset. But it starts with assets. Unfortunately, in the digital world these turn out to be devilishly hard to identify and value.</div><br /><div>Recent events have taught us again, that in the financial world, Warren Buffett has few peers as a risk manager. I would like to take the first two parts of this talk looking at his career as a way to understand risk management and what we can infer for our digital assets.</div><br /><div>Warren Buffett&#39;s evolution as an investor can be broken up into two parts. He began his career very much influenced by Ben Graham, who sought to buy &quot;cheap stocks&quot;, comparing the price of the stock to value of the company&#39;s assets, and placing many, diversified bets on companies whose share price was below the total assets. Note that the businesses may have been of unremarkable quality, but when the price was right Graham would buy in, wait for it to rise and then sell. This was the dawn of value investing.</div><br /><div>Buffett&#39;s later career departed from Graham&#39;s strict, statistical measures, where he sought to buy into companies that were selling at a fair price, but were also high quality businesses. We will examine high quality in Part 2 of this talk, but first we go to Part 1 which is asset value.</div><br /><div>Why does a talk on finding and fixing vulnerabilities start with valuing assets? The reason is that vulnerabilities are everywhere, we are literally marinating in them. Interesting vulnerabilities are attached to high value assets. In a world that quite literally presents us with too much information, we need screens to sift out what is worth paying attention to. &#0160;You can run your vulnerability assessment tool of choice on your system, and come back with hundreds or thousands of vulnerabilities, but which ones should you pay attention to and act on? The first part of answering this question is asset value.</div><br /><div>When Warren Buffett was 19 years old studying at the University of Nebraska, he read Ben Graham&#39;s book &quot;The Intelligent Investor&quot;, Buffett said he thought it was the best book on investing he has ever read and still feels that way today. In the Intelligent Investor Graham lays out the framework of value investing. Specifically, Graham talks about three concepts - Mr. Market, a stock is a piece of a business, and Margin of Safety.</div><br /><div>Mr. Market is a fictional, teaching device invented by Graham. You imagine that you have a somewhat manic depressive business partner called Mr. Market. Every day, Mr. Market comes into the office and offers you quotes on companies, some days he is in a good mood and the prices are high, other days he is gloomy and prices are low. The market is a quote machine, for quoting prices, not a value assessment machine. Your job is to wait for the right price, and you are free to take as many passes and be as patient as you would like, Mr. Market will just show up the next day and throw out a new price.&#0160;</div><br /><div>Graham used Mr. Market to teach us the separation between a price of a stock, and the value of a company. The second big concept from Intelligent Investor is that buying a stock is buying a small piece of the underlying business. You are not buying a roulette chip, or a number that fluctuates in the newspaper every day, rather you are buying a piece of the company&#39;s existing and future cash flow. What the stock market says General Electric is worth yesterday, today or tomorrow is separate from GE&#39;s actual ability to generate cash flow.</div><br /><div>The last big concept in &quot;The Intelligent Investor&quot; and the one seemingly most applicable to information security is the Margin of Safety. Graham&#39;s margin of safety involved calculating the intrinsic value of a business and then buying stock where the market cap of a company is less than its intrinsic value. So if a company has $100 million in assets and a market capitalization of $75 million, then an investor would get a 25% margin of safety. Ideally, Graham wanted to buy stocks that were selling for one half of their book value, i.e. with a 50% margin of safety. Graham said that buying stocks without a margin of safety, above their book value, speculation, not investing.</div><br /><div>So price is readily available, but how do we calculate intrinsic value so that we can ascertain the margin of safety? Graham used quantitative statistical measures, relying heavily on the company&#39;s book value, like its hard assets. What would it take for a competitor to reproduce the company&#39;s assets - its factories, distribution system, and so on. The difference between the book value of the assets and market cap is the margin of safety.</div><br /><div>What can we learn in information security from this quantitative approach? Where price and value are readily ascertainable we should build countermeasures and eliminate on vulnerabilities that give our assets a wide margin of safety. Since budgets are not unlimited we should prefer vulnerabilities that are cheap to find, cheap to fix.</div><br /><div>First to the asset question, information security budgets like all IT budgets are crufty, they are not a reflection of today&#39;s top issues and priorities so much as an accumulating snowball of decisions, legacy contracts, and solution attempts to yesteryear&#39;s problems. Today the normal Information Security budget is just a legacy artifact from bygone years when the network was the purported greatest vulnerability. If you were around in 1995, you remember the great gnashing of gears as the enterprises opened up their networks, connected their back ends to the Web and began to transact business in the giant virtual space.</div><br /><div>The security people huffed and puffed that it was dangerous but there was simply too much money to be made, so businesses went ahead. The security people would not go down without a fight and insisted on countermeasures. They got two - the network firewall and SSL. The firewall was used to separate the average Fortune 500s network of hundreds of thousands of machines, employees, consultants, and partners from the web at large. SSL was used to protect the network channel between the web server and the client browser. so the network firewall separated the network segments, and SSL in effect encrypted the last mile of many million complex transactions and computations.</div><br /><div>In 1995, this seemed like a good security architecture. When we built out these security architectures, the eCommerce market was derided as a toy. Amazon famously lost money for years - losing a little on every transaction but making it up in volume. When the market is nascent, a quaint security architecture offers cost effective protection. But what about 2008? Those cute little eCommerce buggers have grown they even make profits now - market caps measured in the tens of billions, accumulating large cash hordes, no debt, and the largest ones are in better financial shape than the financial services players that kicked sand in their face in the dotcom era.&#0160;</div><br /><div>And its not just eCommerce, the &quot;real&quot; economy Fortune 500 types are all connected as well. Directly and indirectly the Web is seeping into all businesses. Major changes from when the security architecture of the web was built out. But has the security architecture changed to reflect these new business realities? Not a bit of it!</div><br /><div>We can use the book value of the IT budget investments and the book value of the Information Security investments to see what kind of Margins of Safety Information Security groups are engineering.</div><br /><div>Let&#39;s look at some market data, Gary McGraw reviewed the numbers [2] in software security for 2007, breaking down software security sectors like tools and services. Here is a summary of his findings on software security tools:</div><br /><div>&quot;One of the most important developments in the software security market can be seen in the tools space which, combined, almost doubled to $150-180 million. Top of list are two major acquisitions that closed in 2007: Watchfire&#39;s purchase by IBM (somewhere in the range of $120-150 million on 2006 revenue of $26 million) and SPI Dynamics&#39;s purchase by HP (for around $100 million on 2006 revenue of $21.2 million).</div><br /><div>...</div><br /><div>The black box space was flat in 2007, with IBM/Watchfire checking in at $24.1 million and HP/SPI Dynamics earning $22.3 million. Smaller companies in the space, including Cenzic, Codenomicon, WhiteHat and the like had combined revenues around $12.5 million (a growth of 25%, though Cenzic grew 16% and WhiteHat 52%). Most of the growth &quot;hiccup&quot; in the black box market can be attributed to the serious challenges posed by any acquisition. So far 2008 looks to be back on track from a growth perspective in the black box testing space. The global reach that IBM and HP offer are already making a big difference.</div><br /><br /><div>On a more positive note, static analysis tools for code review grew at a healthy clip in 2007 into a $91.9 million dollar market. Fortify was up 83% to $29.2 million. Klocwork grew over 60% to $26 million. Coverity grew over 50% to $27.2 million. Ounce Labs tripled their revenue to $9.5 million.&quot;</div><br /><div>These are very nice growth numbers, what company doesn&#39;t want 83% growth? However, the let&#39;s look at the total picture and compare the software security countermeasures against other security mechanisms. Gary McGraw&#39;s estimate shows the software security space coming in at $150 Million total, yet we see a company like Checkpoint that won the network security war in 1995 with earnings of around $900 Million! One single network security vendor is 6 times bigger than the entire software security space, in what alternate universe does this make sense?</div><br /><div>This is where we begin to see that decisions in the People&#39;s Republic of Information Security have no real risk management thinking, they truly are swimming naked and hoping the tide doesn&#39;t go out.</div><br /><div>Let&#39;s look at network assets. Obviously Cisco is the biggest, they earned $39.5 Billion last year. Pretty stellar. So spending $900 Million (Checkpoint) to defined $39.5 Billion seems like a pretty good deal.</div><br /><div>Except, let&#39;s compare software security spending - last year Microsoft earned $60 Billion, SAP $16 billion, and Oracle $22 Billion. So that is about $98 Billion in just three vendors and you are going to &quot;defend&quot; that with allocating $150 Million worth of software security tools?</div><br /><div>On the network side we are buying $900 million of security countermeasures (Checkpoint firewalls) to protect $39.5 billion worth of Cisco gear, about 2.3% of the network investment goes to security.</div><br /><div>On the software side, we are buying $150 million of security countermeasures (like static analysis and black box scanners) to protect $98 billion of software (you know the stuff that runs the whole business), roughly coming to about 0.2% of the software budget goes to security.</div><br /><div>This is very disturbing. From a prioritization standpoint The People&#39;s Republic of Information Security is misaligned by an order of magnitude at least. Next time you read about a data breach, or see an auditor&#39;s report with thousands of findings you won&#39;t have to wonder how it happened. It happened because Information Security doesn&#39;t have its eye on the ball, it invests in network security not because those controls have greater efficacy (the whole point of networks is they are dumb), no, they invest in network firewalls because they bought a bunch in 1995, some more in 1998, and heck they just kept buying them, the Checkpoint rep kept showing up and taking CISOs out to play golf, contracts got renewed, and poof - there goes the security budget.</div><br /><div>Consider that software security tools could grow 50% a year for five years and still be half of where Checkpoint is today.</div><br /><div>The optimistic way of looking at all this data is that there is major room for growth for software security, if you take network security as a target for a mature industry and assume that 2.3% is a reasonable margin of safety, then the software security space should evolve to around 2% of the software space meaning that it should evolve into a $2 billion space around fifteen times larger than it is today. Unprotected assets will either be protected or will cease to be assets, VCs get your check books ready.</div><br /><div>My friend Brian Chess has a nice way of looking at this he says 2007 was the turning point - &quot;the first year there was a bigger market for products that help you get code right than there was for products that help you demonstrate a problem exists.&quot;</div><br /><div>Now I am not suggesting that Information Security budgets have to be aligned with IT budget one for one, but I do think that looking at the overall IT budget is the starting point. If Information Security has a more cost effective security mechanism they should deploy it, but the starting point should be aligned to the business. Businesses spend most of their money on software, and there are very good reasons - competitive advantage, increased revenues and lower costs. Information Security spends most of its money on network security, and there is no good reason why, except that it was a seemingly good idea in 1995. You really don&#39;t have to go beyond the book value of IT investment as a whole versus Information Security to see a stunning disparity. Information Security&#39;s job is to deliver a Margin of Safety to the business, but they are not.&#0160;</div><br /><div>To deliver a real Margin of Safety to the business, I propose the following based on a defense in depth mindset. Break the IT budget into the following categories:</div><br /><div>- Network: all the resources invested in Cisco, network admins, etc.</div><div>- Host: all the resources invested in Unix, Windows, sys admins, etc.</div><div>- Applications: all the resources invested in developers, CRM, ERP, etc.</div><div>- Data: all the resources invested in databases, DBAs, etc.</div><br /><div>Tally up each layer. If you are like most business you will probably find that you spend most on Applications, then Data, then Host, then Network.</div><br /><div>Then do the same exercise for the Information Security budget:</div><br /><div>- Network: all the resources invested in network firewalls, firewall admins, etc.</div><div>- Host: all the resources invested in Vulnerability management, patching, etc.</div><div>- Applications: all the resources invested in static analysis, black box scanning etc.</div><div>- Data: all the resources invested in database encryption, database monitoring, etc.</div><br /><div>Again, tally each up layer. If you are like most business you will find that you spend most on Network, then Host, then Applications, then Data. Congratulations, Information Security, you are diametrically opposed to the business!</div><br /><div>Its not just about alignment for alignment&#39;s sake, its about applying controls as a way to have a Margin of Safety properly placed so that when not if there is a failure on a higher value asset you are relatively better positioned to deal with it.&#0160;</div><br /><div>The pure statistical approach can only take us so far. Buffett said he would be a lot poorer if all he did was listen to Ben Graham. Book value is great to see the diametric opposition mentioned above, but it doesn&#39;t really tell us much about the efficacy of the security mechanisms.</div><br /><div>What we do get out of this statistical approach is a screen. The asset value screen filters out subjective opinion and narrows the field for where we need to dig in to do the high value, time consuming analytical work.</div><br /><div>The second part of Warren Buffett&#39;s career and the second part of this talk leave behind pure statistical measures. In Warren Buffett&#39;s case he was joined by a guy named Charlie Munger who talked him out of the pure Ben Graham approach. Charlie Munger has a saying - &quot;a great business at a fair price beats a fair business at a great price.&quot; Where Graham was focused on price and margin of safety, Munger wants a fair price but also a high quality business. This lead to Warren Buffett&#39;s company Berkshire Hathaway investing in companies like Coca Cola, Wells Fargo, and American Express, where the prices were far from dirt cheap (as Graham would have wanted), but the long term returns were outstanding.</div><br /><div>In our world of Information Security, we start by aligning our priorities with the business using the thumbnail defense in depth approach, but then we would like to invest in high quality, effective controls.</div><br /><div>To get at the notion of control quality and effectiveness, I am going to start part 2 of this talk with a brief history of software. The first web software was just static HTML, but web software really got interesting when developers started creating dynamic websites using CGI an PERL.</div><br /><div>Once websites were hooked up to company databases and were not just serving static content, the security people realized they needed a security architecture, and they sprung into action. What they came up was was model that divided the world into &quot;good stuff&quot; which was comprised of all their networks, systems, and data; and then there was everything else the &quot;bad stuff&quot; on the Internet. So job one of the early days Internet security architecture was to separate all your good stuff (i.e. your network) for the bad stuff (the Internet). To do this the security people used a sophisticated tool called Visio to draw a flaming brick wall on the network diagram, and this flaming brick wall was supposed to keep the good stuff and the bad stuff separate.</div><br /><div>The security people also realized that the data and session tokens that they served up from their Web server would have to traverse the &quot;bad&quot; neighborhood called the Internet, so they added one more security mechanism to secure the last mile of the transaction - SSL between the browser and the Web server.</div><br /><div>And this was the state of the art security architecture used circa 1995 to protect the earliest dynamic web applications.</div><br /><div>What happened next was that the dotcom boom started to happen and businesses realized they could make some real money on the Web, the web apps started to get more sophisticated, more personalization, richer session experiences and so on. This led the Java people to create JSP and the Microsoft people to create ASP, and of course the PERL people to create even greasier PERL scripts, all of this in the effort to pooling resources and sessions on the Web server. The security people defended this new application programming model with network firewall and SSL.</div><br /><div>Around 1998, developers began building out more distributed N tier or 3 tier applications that separated the business logic layer, the presentation layer and the data access layer. Among other things, your web application could seamlessly integrate data from multiple back ends systems. Let&#39;s say you have pricing data in Oracle, order data in SAP, and customer data in a Mainframe. You write separate data access objects, apply business logic in the middle tier and then you tie it all together in a friendly user interface. At this point the web applications are beginning to integrate across departments and geographic boundaries, huge critical chunks of the business are now connected to the web. How did the security people defend this part of the business? They applied the same 1995 security architecture - network firewall and SSL.</div><br /><div>Around 1999-2000 timeframe businesses relied on web applications for major parts of the revenue, and the apps were built in different technologies like Java and Microsoft technologies, but the customer didn&#39;t care (still doesn&#39;t), the customer wanted (and still wants) data access and functionality. So to integrate the disparate technologies, SOAP and XML were deployed so that Microsoft could talk to Java and so Websphere could talk to Weblogic and so on. And, oh yes, SOAP and XML were used to connect B2B networks so partners in a supply chain and business process can exchange data and interoperate. &#0160;SOAP and XML present a fundamentally new programming model based on a message document style integration, where XML is used to mesh together data and functionality across platforms. SOAP and XML have no security model by default for authentication, authorization, and confidentiality. How did the security people deal with this? They kept the security architecture the same as they had in 1995 - network firewalls and SSL.</div><br /><div>The software world did not stop innovating in 2000 of course, in the last few years we have seen Web services and XML form the basis of baroque and powerful SOAs and simple REST applications. We have seen Web 2.0 come on the scene, and entirely new networked applications built on top of that.</div><br /><div>What we have not seen, is a single meaningful change in security architecture in 13 years. Developers have evolved, businesses have increasingly bet their entire business models on the web and they have increased security budgets. But what has the security architecture as its deployed in the field got to show for all of this? More firewalls and more SSL connections.</div><br /><div>Since Information Security has proven incapable of evolving, it is time to learn from a discipline that has mastered innovation - software development, and yes, I will step back in case the lightning bolts hits.</div><br /><div>What does software development focus on these days? Well, let&#39;s look at Service Oriented Architecture (SOA), all hype aside I look at SOA as a set of technologies that delivers three things:</div><br /><div>Virtualization: we want Beijing, Bangalore and Boston to communicate.</div><br /><div>Interoperability: we want our .Net stuff to talk to our java stuff.</div><br /><div>Reusability: how many order/claim/pricing/customer systems does one company need?</div><br /><div>To build out their SOA, developers separated the application interface from its implementation. So you can host the interface in a variety of locations, but its separate from the application logic and data.</div><br /><div>This is also a useful trick for putting services like SOAP through the firewall. SOAP was designed as a firewall friendly protocol. When SOAP first came out, Bruce Schneier said calling SOAP a firewall friendly protocol is like having a skull friendly bullet. Which is a great line and explains why his books fly off the shelves, it does not explain, why security people think an architecture designed in 1995 is the one we should be using today. Maybe the problem is not that the developers figured out how to go through the firewall to get the data their customers want, maybe the problem is that the firewall is the sum total of the security architecture, and it never adapted.</div><br /><div>A big part of this problem is that we have left Newton&#39;s world behind and entered Einstein&#39;s universe. Mainframes are Newton’s world, we have THE computer, THE price, THE record and so on.</div><br /><div>As Pat Helland explained [4,5], Mainframes are Newron&#39;s world, but Distributed computing is Einstein’s world. More specifically in the Einstein world of distributed computing - &quot;Computers don’t make decisions, computers try &#0160;to make decisions.&quot; Our computers don&#39;t really make a decision, they say you can buy this book from Amazon at this price, we have it in stock and will deliver on such and such a date. But the warehouse runs out, the pallet gets dropped in the warehouse, your boo is crushed, and the package is stolen off your front step. The computer confirmed your transaction, but the real world intervened.</div><br /><div>So we don&#39;t have iron clad decisions, instead its all about Memories (last time I checked your book was in stock), Guesses (we should be able to ship on this date) and Apologies (sorry the forklift ran over your book)</div><br /><div>Translating this into security, security mechanisms don’t make policy-based decisions, security mechanisms try to make policy-based decisions</div><br /><div>Some examples of memories, guesses and apologies in security</div><br /><div>Memories</div><div>Security Policies - for example Triple A policy</div><div>Triple A policies can memorize a map of subjects, objects, and roles. They can even replicate these memories and play them back at runtime to try to make policy enforcement decisions.</div><br /><div>Guesses</div><div>Security Policy Enforcement Decision</div><div>Unfortunately, while the policy enforcement decisions can be based on memorized logic, the decision itself is still a guess, even in the case of Triple A. Any guesses why? Because, the authentication process itself is a guess. It happens to be a guess that you then bind to a principal so it looks very official once you bind your guess to a Kerberos ticket or SAML assertion, but it still a guess.</div><br /><div>Apologies</div><div>Giant Global Bank is sorry your account was compromised!</div><div>And this leads to lots and lots of apologies by companies with poor access control models.</div><br /><div>Some additional examples of information security memories, guesses and apologies.</div><br /><div>Example Memories - Triple A Security Policies, Audit logs, User account information , Authorization Logic - concrete mapping Subject, Resource, Condition, Action</div><br /><div>Example Guesses - Security Policy Enforcement Decision Points, Authentication Logic, Monitoring, detection, fraud response</div><br /><div>Example Apologies - Identity Management tools - provisioning, deprovisioning, Reimburse customer for fraud losses, Compensating Transaction - Giant Global Bank is still sorry your account was compromised!</div><br /><div>The point of this is that security memories, guesses and apologies utilize different processes, different people, and different capabilities to be effective.</div><br /><div>What trends can we identify to lead us toward better qualitative analysis based on the best practices of virtualization, interoperability and reusability.</div><br /><div>Virtualization</div><div>Finding Vulnerabilities in a Virtualized World is a problem because applications are more configured than coded. Runtime behavior and structure not apparent due to weak typing and inversion of control.</div><br /><div>Result - finding bugs becomes harder. Action - use screens to target finding time and resources</div><br /><div>Fixing Vulnerabilities in a Virtualized World is a problem because how do I locate the controls when interfaces run in Beijing, Bangalore and Boston?</div><br /><div>Result - synchronization and/or replication of security policy is problematic. Action - decentralized policy enforcement points and policy decision points. &#0160;</div><br /><div>Interoperability</div><div>Finding interoperable vulnerabilities</div><div>XSS - Javascript is an equal opportunity offender - interoperability for developers and attackers alike.</div><br /><div>Fixing interoperable vulnerabilities</div><div>App servers, ESBs, and services are the attacker’s red carpet to your enterprise, right into your book of business. Interoperable access control can be leveraged across the enterprise.</div><br /><div>Use XML signature for authentication and integrity&#0160;</div><br /><div>&lt;SOAP:Envelope&gt;</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>&lt;SOAP:Header&gt;</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>&lt;WSSE:Security&gt;</div><div><span class="Apple-tab-span" style="white-space:pre">			</span>&lt;ds:Signature&gt;</div><div><span class="Apple-tab-span" style="white-space:pre">				</span>&lt;ds:Reference URI=‘#body’&gt;</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>&lt;/WSSE:Security&gt;</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>&lt;/SOAP:Header&gt;</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>&lt;SOAP:Body wsu:Id=‘body’&gt;</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>…</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>&lt;/SOAP:Body&gt;</div><div>&lt;SOAP:Envelope&gt;</div><br /><div>Use XML encryption to protect sensitive data, don&#39;t pass sensitive data in the clear</div><br /><div>&lt;?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?&gt;</div><div>&lt;soapenv:Envelope xmlns:soapenv=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;&gt;</div><br /><div>&lt;soapenv:Body&gt;&lt;ns1:echo xmlns:ns1=&quot;http://sample01.samples.rampart.apache.org&quot;&gt;</div><br /><div><span class="Apple-tab-span" style="white-space:pre">	</span>&lt;param0&gt;My Credit Card Number&lt;/param0&gt;</div><div>&lt;/ns1:echo&gt;</div><div>&lt;/soapenv:Body&gt;</div><div>&lt;/soapenv:Envelope&gt;</div><br /><div>Encrypt the data</div><br /><div>&#0160;&lt;wsse:Security xmlns:wsse=&quot;http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd&quot; soapenv:mustUnderstand=&quot;1&quot;&gt;…</div><div>&#0160;&#0160; &#0160; &#0160; &#0160; &#0160; &#0160;&lt;xenc:EncryptedKey Id=&quot;EncKeyId-3020592&quot;&gt;</div><div>&#0160;&#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &lt;xenc:EncryptionMethod Algorithm=&quot;http://www.w3.org/2001/04/xmlenc#rsa-1_5&quot; /&gt;</div><div><span class="Apple-tab-span" style="white-space:pre">		</span> &lt;xenc:CipherValue&gt;</div><div>XNQ0a4legiie5mWFxO6CQkk2hhldYNnKroObue/LXS/VYtvaTgMbCujhGExDi+vlkU//Qc2/T6mx0WVTmBMT3z8rogha8jD+nS9Zr2Bc3CwoTh2lh8wL3D0DEu91iwJT9JByLGXvt7v9lyuxK0ooDOYEClsH974CPmTs3tBC+GQ=</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>&lt;/xenc:CipherValue&gt; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160; &#0160;&#0160;</div><div>&lt;/xenc:CipherData&gt;</div><br /><div>To ensure that these controls are applied use automated tools like static analysis to scan for security mechanism use and coverage.</div><br /><div>In terms of reusability findings and fixes consider two bug findings</div><br /><div>Session management bug: session state is passed around to every component, service and user. Makes for many high priority findings in audit report, also the fix is required on virtually every program</div><br /><div>Data validation bug: Data access object (DAO) has a SQL injection hole. One major high priority finding in report. DAO used by many business logic classes, one fix location serves many classes&#0160;</div><br /><div>To bring these factors together, I generally use a scorecard index [6], so you can measure such things as transport security, message security, threat protection and so on. The hard work in developing the index is developing a useful scale. A scale for XML tokens could use the following</div><br /><div>0: no token</div><div>1: hashed token</div><div>2: hashed and signed token</div><div>3: hashed and signed token from standard authoritative source</div><br /><div>An example scale for XML validation could use:</div><br /><div>0: no validation</div><div>1: schema validation</div><div>2: schema validation against hardened schema</div><div>3: schema validation against standard, hardened schema</div><br /><div>These indexed scales are used to show maturity across the factors in the scorecard. The first part of the talk described value, the value assessment is used to focus time and effort on high value assets. The value assessment can be determined quantitatively. There is hard analytical work to qualitatively determine the scorecard, index, and scales, the quantitative value assessment is used to screen out high value targets for these endeavors. The scoring index is used to track progress and improve quality over time. In the best case scenario, automated tools are used to perform the checks described in the index, and once security is automated just like software developers we may see security innovation make progress in years not decades.</div><br /><div>Thank you for your time.</div><br /><div>1 &quot;Risk Management is where the Money Is&quot; by Dan Geer,&#0160;<a href="http://catless.ncl.ac.uk/Risks/20.06.html">http://catless.ncl.ac.uk/Risks/20.06.html</a></div><br /><div>2 Berkshire Hathaway 2007 Shareholder Letter by Warren Buffett, <a href="http://www.berkshirehathaway.com/letters/2007ltr.pdf">http://www.berkshirehathaway.com/letters/2007ltr.pdf</a></div><br /><div>3 &quot;Software [In]security: Software Security Demand Rising, by Gary McGraw</div><div><a href="http://www.informit.com/articles/article.aspx?p=1237978">http://www.informit.com/articles/article.aspx?p=1237978</a></div><br /><div>4 &quot;SOA and Newton&#39;s Universe&quot; by Pat Helland, <a href="http://blogs.msdn.com/pathelland/archive/2007/05/20/soa-and-newton-s-universe.aspx">http://blogs.msdn.com/pathelland/archive/2007/05/20/soa-and-newton-s-universe.aspx</a></div><br /><div>5 &quot;Memories, Guesses and Apologies&quot; by Pat Helland, <a href="http://blogs.msdn.com/pathelland/archive/2007/05/15/memories-guesses-and-apologies.aspx">http://blogs.msdn.com/pathelland/archive/2007/05/15/memories-guesses-and-apologies.aspx</a></div><br /><div>6 &quot;Web Servicres Security Checklist&quot; by Gunnar Peterson, <a href="http://arctecgroup.net/pdf/WebServicesSecurityChecklist.pdf">http://arctecgroup.net/pdf/WebServicesSecurityChecklist.pdf</a></div>]]></content:encoded>
      <pubDate>Tue, 18 Nov 2008 19:47:55 +0000</pubDate>
      <category domain="http://securityratty.com/tag/information security">information security</category>
      <category domain="http://securityratty.com/tag/information">information</category>
      <category domain="http://securityratty.com/tag/information security spends">information security spends</category>
      <category domain="http://securityratty.com/tag/safety information security">safety information security</category>
      <category domain="http://securityratty.com/tag/versus information security">versus information security</category>
      <category domain="http://securityratty.com/tag/information security budgets">information security budgets</category>
      <category domain="http://securityratty.com/tag/information security budget">information security budget</category>
      <category domain="http://securityratty.com/tag/software security">software security</category>
      <category domain="http://securityratty.com/tag/software security space">software security space</category>
      <source url="http://1raindrop.typepad.com/1_raindrop/2008/11/the-economics-of-finding-and-fixing-vulnerabilities-in-distributed-systems-.html">The Economics of Finding and Fixing Vulnerabilities in Distributed Systems </source>
    </item>
    <item>
      <title><![CDATA[Integrated Security]]></title>
      <link>http://securityratty.com/article/f019b5d7dfb1fe329de2cdcc311d5ad1</link>
      <guid>http://securityratty.com/article/f019b5d7dfb1fe329de2cdcc311d5ad1</guid>
      <description><![CDATA[Tom Barnett on what the big consulting companies are doing
Now we're into a world where asking companies to pay you millions for a massive PPT slide deck that says, &quot;This is your company now and this...]]></description>
      <content:encoded><![CDATA[<p><a href="http://www.thomaspmbarnett.com/weblog/2008/10/i_have_waited_years_for_this_a.html">Tom Barnett</a> on what the big consulting companies are doing:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>Now we&#39;re into a world where asking companies to pay you millions for a massive PPT slide deck that says, &quot;This is your company now and this is what your company should look like tomorrow,&quot; is simply a non-starter. So while the tech-heavy firms like Accenture and Cap Gemini do well at the bottom and the high-end starts like the Monitor Group do well at the top of the pyramid, a lot of mid-range, standard cookie-cutter management consulting firms are seeing their market decline. Everyone wants the super-integrated solution now that combines compliance, security, systems-integration, performance metrics—and they want it delivered in a service-oriented architecture that frees companies up to evolve in ways commensurate with globalization&#39;s many demands and opportunities.</p></blockquote>
<p dir="ltr">I see efforts in all the compliance, security, systems-integration, performance metrics, and SOA rabbit holes. I don&#39;t see very much unification. In my swamp - SOA security. I do see a lot of starter efforts where companies build out services, but forget the security - &#0160;and then either an auditor comes asks &quot;so how are you doing authN and authZ for your web services&quot; or a security event happens, or a diligent director comes along and asks variant of the auditor question. Then some things start to happen, usually a purchase of a XML gateway, but Data Power, Vordel and Cisco can&#39;t help you if its just shelfware.</p>
<p dir="ltr">Integration is inherently difficult and messy. Information security groups need to get good at engaging with development and architecture in a proactive way to deiver these security services to the system. I call it &quot;playing offense&quot;, infosec spends most of its time defending against bad guys, and that is ok, it is a huge part of infosec&#39;s job, but sometimes you need to go on offense and raise the bar. Make the bad guys&#39; job harder, build security in.</p>]]></content:encoded>
      <pubDate>Wed, 22 Oct 2008 13:05:50 +0000</pubDate>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/soa security">soa security</category>
      <category domain="http://securityratty.com/tag/information security">information security</category>
      <category domain="http://securityratty.com/tag/web services">web services</category>
      <category domain="http://securityratty.com/tag/services">services</category>
      <category domain="http://securityratty.com/tag/security event">security event</category>
      <category domain="http://securityratty.com/tag/security services">security services</category>
      <category domain="http://securityratty.com/tag/companies">companies</category>
      <category domain="http://securityratty.com/tag/frees companies">frees companies</category>
      <source url="http://1raindrop.typepad.com/1_raindrop/2008/10/integrated-security.html">Integrated Security</source>
    </item>
    <item>
      <title><![CDATA[Web 2.0 Attacks Revealed]]></title>
      <link>http://securityratty.com/article/399f63346ff3bf5fef48d6879df090c4</link>
      <guid>http://securityratty.com/article/399f63346ff3bf5fef48d6879df090c4</guid>
      <description><![CDATA[This paper details various security concerns and risks associated with web 2.0 technologies such as Asynchronous Java script and XML (AJAX), Syndication, aggregation and notification of data in RSS or...]]></description>
      <content:encoded><![CDATA[This paper details various security concerns and risks associated with web 2.0 technologies such as Asynchronous Java script and XML (AJAX), Syndication, aggregation and notification of data in RSS or Atom feeds, mashups created by merging content from different sources. This paper also describes the security implications leading with the usage of web 2.0 technologies such as AJAX, RSS, and Mashups.]]></content:encoded>
      <pubDate>Sun, 14 Sep 2008 20:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/web">web</category>
      <category domain="http://securityratty.com/tag/paper">paper</category>
      <category domain="http://securityratty.com/tag/paper details">paper details</category>
      <category domain="http://securityratty.com/tag/asynchronous java script">asynchronous java script</category>
      <category domain="http://securityratty.com/tag/technologies">technologies</category>
      <category domain="http://securityratty.com/tag/atom feeds">atom feeds</category>
      <category domain="http://securityratty.com/tag/security concerns">security concerns</category>
      <category domain="http://securityratty.com/tag/mashups">mashups</category>
      <category domain="http://securityratty.com/tag/ajax">ajax</category>
      <source url="http://www.infosecwriters.com/texts.php?op=display&amp;id=632">Web 2.0 Attacks Revealed</source>
    </item>
    <item>
      <title><![CDATA[It Was Sposed to Be So Eaaasy]]></title>
      <link>http://securityratty.com/article/5714e6ea5723d4a1d18b692711ca3452</link>
      <guid>http://securityratty.com/article/5714e6ea5723d4a1d18b692711ca3452</guid>
      <description><![CDATA[Earlier this year, I gave a talk with on Breaking Web Services with Brian Chess at RSA. We pointed out that adding security into Web services is an exercise left to the implementer, the standards...]]></description>
      <content:encoded><![CDATA[<p>Earlier this year, I gave a <a href="http://1raindrop.typepad.com/1_raindrop/2008/04/rsa-debrief-p-1.html">talk</a> with on Breaking Web Services with Brian Chess at RSA. We pointed out that adding security into Web services is an exercise left to the implementer, the standards bodies and vendors give you some primitives, but it is still up to you to figure out all of the items on the <a href="http://arctecgroup.net/pdf/WebServicesSecurityChecklist.pdf">Web services security checklist</a>&#160;should work together in a cohesive system. Needless to say, there are many ways to shoot yourself in the foot.</p><br /><div>So during our talk, someone from Oracle stands up and says, &quot;hey, you guys are making this stuff sound hard. Its not hard we support WS-Security...&quot; etc. Again, the whole point of our presentation was *not* that there are not very interesting general purpose security capabilities in Web services, our point was that you need to figure out the architecture yourself, and then bend the tools to your will. Oh, and deliver on time.</div><br /><div>So imagine my surprise, when I read this article <a href="http://www.ddj.com/database/209400693">&quot;Digitally Signing and Verifying Messages in Web Services&quot;&#160;</a>which talks about using Oracle&#39;s WSM tools to sign Web service messages and verify signatures in Web service messages, but only addresses integrity - absolutely nowt on authenticity! Integrity is important, but there are lots of times when it is not enough. Many times your service needs to be concerned with replay attacks, authentication policies and so on. To deal with those things, we would typically add policies and capabilities for timestamps, nonces and other primitives into the signature block, but the article is silent on those things. (Rad Mark O&#39;Neill&#39;s <a href="http://xmlnetworking.blogspot.com/2008/08/digitally-signing-and-verifying.html">post</a> on this as well)</div><br /><div>Its not about _can_ the standards do something or other, I mean given the right resources the standards can put a monkey on the moon, its about what use cases have they engineered in and what is supported in the tools today. I firmly believe SAML has such great adoption across the industry because they have a use case centric view and so gave the vendors something to engineer and optimize for. I think we&#39;ll still get there in WS-Security and other areas as well, but the use cases are not built into the spec (as with SAML) and so its taking longer.</div><br /><div>One of our points in the talk was - we want you vendors to do your job better and instead of shipping a box Legos, ship a Lego gas station, a Lego airport, and so on. Connect some dots for your customers.&#160;</div><br /><div>What I see in <a href="http://arctecgroup.net/training.htm">training</a> on this topic, is sort of the following - 1) Do I need Web service security? 2) Oh ok, well can I get by with SSL? 3) Oh wait that doesn&#39;t actually protect my assets, can I just use WS-Security? 4) Oh wait, WS-Security isn&#39;t just a checkbox for security, I need to figure out timestamps, nonces, signatures, encryption policies and so on.&#160;And finally 5) How do I accomplish this?</div><br /><div>Once we get to step 5 then the real work can begin. Its not easy to get a lot of developers through all of this, and again this is before the real work begins. Even once the lead developers and architects figure this out, there is still the little matter of transitioning it to the rest of the team.</div><br /><div>I remember I was working with an enterprise architect several years ago, and he bought a Web service XML gateway like <a href="http://www.vordel.com/">Vordel</a> to add WS-Security support into his Web services apps, but he didn&#39;t even buy it as a runtime tool, he bought it as Security API, the runtime enforcement in his opinion was a bonus! He said in effect, well I know I need to do this, but I can&#39;t expose all these security primitives directly to my developers.</div><br /><div>So yeah, I wish it was easier, but in my experience its not right now. Its not about raw capabilities its about use case realization. I think learning from what has worked well is the way to go. SAML&#39;s use case centric approach is one that has.</div><br />]]></content:encoded>
      <pubDate>Wed, 10 Sep 2008 03:12:42 +0000</pubDate>
      <category domain="http://securityratty.com/tag/ws-security">ws-security</category>
      <category domain="http://securityratty.com/tag/support ws-security">support ws-security</category>
      <category domain="http://securityratty.com/tag/web service security">web service security</category>
      <category domain="http://securityratty.com/tag/service">service</category>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/primitives">primitives</category>
      <category domain="http://securityratty.com/tag/security primitives directly">security primitives directly</category>
      <category domain="http://securityratty.com/tag/ws-security support">ws-security support</category>
      <category domain="http://securityratty.com/tag/security api">security api</category>
      <source url="http://1raindrop.typepad.com/1_raindrop/2008/09/it-was-sposed-to-be-so-eaaasy.html">It Was Sposed to Be So Eaaasy</source>
    </item>
    <item>
      <title><![CDATA[Adapting to Shelf Life]]></title>
      <link>http://securityratty.com/article/ea6547aa3e5e239ba69d1907590564e9</link>
      <guid>http://securityratty.com/article/ea6547aa3e5e239ba69d1907590564e9</guid>
      <description><![CDATA[Dan Pritchett blogged about Architectural Shelf Life - &quot;The duration that a collection of patterns and technology are applicable when starting a new system design.&quot; He argues that this changes about...]]></description>
      <content:encoded><![CDATA[<p>Dan Pritchett blogged about <a href="http://www.addsimplicity.com/adding_simplicity_an_engi/2008/08/architectural-s.html">Architectural Shelf Life</a> - &quot;The duration that a collection of patterns and technology are applicable when starting a new system design.&quot; He argues that this changes about every 5 years which is pretty fast when you think about it. Our story on the security is measured in decades not years. Kerberos, certificates, RSA, and other workhorse technologies are relatively unchanged since the 70s and 80s. So we security folk are multiple iterations behind developers.</p><div><br />

<a href="http://1raindrop.typepad.com/photos/uncategorized/2008/05/19/innovatecompare_2.png"><img alt="Innovatecompare_2" border="0" height="167" src="http://1raindrop.typepad.com/1_raindrop/images/2008/05/19/innovatecompare_2.png" title="Innovatecompare_2" width="300" /></a><p></p>
</div><div>Out of this comes the need for two things - one we need to innovate at a much higher rate, but equally important, we need better deployment models. The primitives we have that actually work need to be engineered better to form fit to the rapidly changing software side. Its not good enough to say &quot;<a href="http://1raindrop.typepad.com/1_raindrop/2007/10/sacred-cow-gore.html">we have it all figured out</a>&quot;, we have to apply the stuff that works to real software architectures. Why is the a dab of firewalls and SSL still our answer after all these years?</div><br /><div>Two case studies of where security technologies were adapted to technical realities to provide effective security mechanisms in the real world are SAML, which learned a lot from Kerberos and then applied it to the Web and XML; WS-Trust/STS, which owes a lot to SDSI/SPKI and applied it to Web services/XML plumbing.</div><br /><div>Software security is starting to grow as an industry. But a lot of the answers I hear and see in the field are predicated on &quot;we want to reengineer the entire SDLC&quot;, etc. sometimes what is really needed is evolution not revolution, and an easy to use adapter that ships in a few weeks...I remember <a href="http://1raindrop.typepad.com/1_raindrop/2005/12/the_road_to_ass.html">Brian Snow&#39;s</a> talk at black hat several years ago when he talked about how the NSA putting certificate checks in all calls to the Solaris kernel. Its not all about new primitives, its also about finding the art of the possible of what we can do with what we already have. Chief among these is adapting to technical realities.</div>]]></content:encoded>
      <pubDate>Thu, 04 Sep 2008 06:22:34 +0000</pubDate>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/security technologies">security technologies</category>
      <category domain="http://securityratty.com/tag/real software architectures">real software architectures</category>
      <category domain="http://securityratty.com/tag/software">software</category>
      <category domain="http://securityratty.com/tag/security folk">security folk</category>
      <category domain="http://securityratty.com/tag/technical realities">technical realities</category>
      <category domain="http://securityratty.com/tag/software security">software security</category>
      <category domain="http://securityratty.com/tag/web">web</category>
      <category domain="http://securityratty.com/tag/web servicesxml">web servicesxml</category>
      <source url="http://1raindrop.typepad.com/1_raindrop/2008/09/adapting-to-shelf-life.html">Adapting to Shelf Life</source>
    </item>
    <item>
      <title><![CDATA[Null Strings in ASP.NET Declarative DataSource Updates]]></title>
      <link>http://securityratty.com/article/11f8906732a7b86831292456d642b2f5</link>
      <guid>http://securityratty.com/article/11f8906732a7b86831292456d642b2f5</guid>
      <description><![CDATA[I just spent about 15 minutes debugging a problem where a document was getting unexpected nulls where empty strings should have been. Indeed controls like the TextBox have code in them that allows you...]]></description>
      <content:encoded><![CDATA[<p>I just spent about 15 minutes debugging a problem where a document was getting unexpected nulls where empty strings should have been. Indeed controls like the TextBox have code in them that allows you to set the Text property to null and the TextBox will convert that into an empty string. So it&#39;s a bit counterintuitive that <em>the declarative data source works the opposite way by default</em>.</p> <p>When you use a declarative data source to perform a parameterized update that contains string parameters, consider setting ConvertEmptyStringToNull=&#39;false&#39; on your &lt;asp:Parameter&gt; elements, because <em>it&#39;s true by default</em>! In other words, if a text field contains an empty string, it&#39;ll be sent to your declarative data source not as string.Empty, but as null.</p> <p>Now I don&#39;t know about you, but I don&#39;t like dealing with nulls if I can avoid it. Especially strings. Unless there&#39;s a clear need to have a null state, I avoid them like the plague not only in my database designs but also in my XML schema designs. Hopefully this helps somebody out!</p><div style="clear:both;"></div><img src="http://www.pluralsight.com/community/aggbug.aspx?PostID=52773" width="1" height="1">]]></content:encoded>
      <pubDate>Fri, 29 Aug 2008 11:42:47 +0000</pubDate>
      <category domain="http://securityratty.com/tag/strings">strings</category>
      <category domain="http://securityratty.com/tag/declarative data source">declarative data source</category>
      <category domain="http://securityratty.com/tag/empty strings">empty strings</category>
      <category domain="http://securityratty.com/tag/null">null</category>
      <category domain="http://securityratty.com/tag/empty">empty</category>
      <category domain="http://securityratty.com/tag/xml schema designs">xml schema designs</category>
      <category domain="http://securityratty.com/tag/textbox">textbox</category>
      <category domain="http://securityratty.com/tag/text property">text property</category>
      <category domain="http://securityratty.com/tag/nulls">nulls</category>
      <source url="http://www.pluralsight.com/community/blogs/keith/archive/2008/08/29/null-strings-in-asp-net-declarative-datasource-updates.aspx">Null Strings in ASP.NET Declarative DataSource Updates</source>
    </item>
    <item>
      <title><![CDATA[Web Services and XML Security Training at OWASP]]></title>
      <link>http://securityratty.com/article/6d12835067b0b2251fdc4b658b6928cc</link>
      <guid>http://securityratty.com/article/6d12835067b0b2251fdc4b658b6928cc</guid>
      <description><![CDATA[I am teaching Web Services and XML Security training at OWASP's AppSec conference in NYC, Sept 22-23. Web services provide the backbone that integrates many things in the enterprise from application...]]></description>
      <content:encoded><![CDATA[<p>I am teaching <a href="http://www.owasp.org/index.php/Category:OWASP_AppSec_Conference_Training#T3._Web_Services_and_XML_Security_-_2-Day_Course_-_Sep_22-23.2C_2008">Web Services and XML Security training</a> at OWASP&#39;s AppSec conference in NYC, Sept 22-23. Web services provide the backbone that integrates many things in the enterprise from application servers, databases, ERP, and CRM. &#160;Increasingly we are seeing Web services in more B2C roles with Rest, Federation and other technologies. The class looks at how Web services applications are built, what are common threats and vulnerabilities in Web services, and how to build your Web services application to defend against them.</p><br /><div>I have often said that OWASP conferences are my favorite ones because they are in depth technically and very practical. I always look forward to teaching at OWASP and the speaker lineup for this conference looks excellent.</div><br /><div>Here is a quick list of tools we have used in past classes<br /></div><br /><div><span style="color: #333333; line-height: 19px; "><p style="margin-top: 10px; margin-bottom: 10px; text-align: left; "><strong>Web Services frameworks</strong><br /><a href="http://incubator.apache.org/cxf/" style="text-decoration: underline; color: #003366; ">Apache CXF</a>&#160;- very interesting open source Web services framework with support for JMS, SOAP, and Rest<br />Apache&#160;<a href="http://ws.apache.org/axis/" style="text-decoration: underline; color: #003366; ">Axis</a>&#160;&amp;&#160;<a href="http://ws.apache.org/axis2/" style="text-decoration: underline; color: #003366; ">Axis2</a><br /><a href="http://en.wikipedia.org/wiki/Windows_Communication_Foundation" style="text-decoration: underline; color: #003366; ">.Net</a><br /><a href="https://metro.dev.java.net/" style="text-decoration: underline; color: #003366; ">Metro</a>&#160;- interesting framework from Sun for interop with WCF</p><p style="margin-top: 10px; margin-bottom: 10px; text-align: left; "><strong>Identity</strong>&#160;<br /><a href="http://www.pingidentity.com/products/pingfederate.cfm" style="text-decoration: underline; color: #003366; ">PingFederate</a>&#160;- leading federation tool, we&#39;ll look at browser based SSO with SAML<br /><a href="http://www.pingidentity.com/products/web-services.cfm" style="text-decoration: underline; color: #003366; ">PingFederate Web Services</a>&#160;- we&#39;ll look at how to implement a STS in Web services<br /><a href="http://www.bandit-project.org/index.php/Welcome_to_Bandit" style="text-decoration: underline; color: #003366; ">Bandit</a>&#160;-&#160;<a href="http://en.wikipedia.org/wiki/Windows_CardSpace" style="text-decoration: underline; color: #003366; ">Cardspace</a>, authorization, and auditing</p><p style="margin-top: 10px; margin-bottom: 10px; text-align: left; "><strong>Security Services</strong><br /><a href="http://www.vordel.com/products/vx_gateway/" style="text-decoration: underline; color: #003366; ">VordelSecure</a>&#160;- XML gateway, comprehensive web services security policy creation and enforcement, deploying decentralized security services<br /><a href="http://ws.apache.org/axis2/modules/rampart/1_0/security-module.html" style="text-decoration: underline; color: #003366; ">Apache Ramparts</a><br /><a href="http://www.modsecurity.org/" style="text-decoration: underline; color: #003366; ">modecurity</a></p><p style="margin-top: 10px; margin-bottom: 10px; text-align: left; "><strong>Testing</strong><br /><a href="http://www.vordel.com/products/soapbox/" style="text-decoration: underline; color: #003366; ">Soapbox</a>&#160;- web services security testing<br /><a href="http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project" style="text-decoration: underline; color: #003366; ">WebScarab</a>&#160;- web services fuzzing</p><p style="margin-top: 10px; margin-bottom: 10px; text-align: left; "><strong>Static Analysis</strong><br /><a href="http://www.fortifysoftware.com/products/sca/" style="text-decoration: underline; color: #003366; ">Fortify SC</a>A - how to scan your web services code for security bugs *before* you deploy</p></span><br /><div><span style="color: #333333; line-height: 19px; ">This is just a quick list, new tools are added periodically. If you are using tools of these types in your company you may find it interesting <a href="http://www.owasp.org/index.php/Category:OWASP_AppSec_Conference_Training#T3._Web_Services_and_XML_Security_-_2-Day_Course_-_Sep_22-23.2C_2008">to attend</a>.</span><br /></div><br /><div>Testimontials on past classes<br /><br /><div><span style="font-family: Times; font-size: 16px; line-height: normal; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; ">&quot;High quality detailed overview of SOA security standards and approaches. Well thought-out and structured presentation.&quot;<br />- Sr. IT Architect, Fortune 10 enterprise<p>&quot;The knowledge and transfer was a great baseline and with the additional resources Gunnar made available, made this one of the best one day classes I&#39;ve taken.&quot;<br />- IT Security Lead, Fortune 10 enterprise</p><p>&quot;This class was a thorough and well-organized trek through the current Web Services Security landscape. Going beyond just describing the standards and the options available in the Web Services Security world, this class discusses real-world use cases and offers implementable solutions, best practices, even vendor choices in several key areas. &#160;This class provided me with actionable tasks that I took back to my project teams the very next day!&quot;<br />-Jesse Aalberg, Sr. Enterprise Application Architect, United Healthcare</p><p>&quot;The class was distinctly focused on Security requirements and the strength and weaknesses of the various solution approaches we could consider. The result of the course was actionable approaches to providing security in our SOA environment.&quot;<br />-Brad Sillman, Director IT Security, Deluxe Corp.</p><p>&quot;Anyone who wants up-to-date information on SOA Security, security standards and best practices should take this class.&quot;<br />-Kevin Beam, Senior Systems Engineer, Union Pacific Railroad</p><p>&quot;Good comprehensive overview of subject, standards, and threats&quot;&#160;<br />- Sr.Security Consultant, Ubizen</p><p>&quot;The class helped me get my head around what &quot;SOA&quot; and WS-Security is really all about&quot;<br />- Mike Zusman, Independent consultant</p><p>&quot;Topics addressed are timely and relevant. Labs are hands-on and help see concepts in action&quot;<br />- Jerry Tan, Systems Analyst, DTCC</p><p>&quot;This class was concise and covered a majority of the problem set my company is looking at and dealing with.&quot;&#160;<br />- Steve Reilley, Technical consultant, Commerce Insurance</p><p>&quot;Excellent two day overview of security topics as related to Web Services.&quot;<br />- Daniel Reznick, Information Security, ADP</p><p>&quot;Issue affecting&#160;<span style="text-decoration: underline;">most</span>&#160;of us today &amp; for those that don&#39;t - will soon. Very necessary education and technology.&quot;<br />Aaron Delashmutt</p><p>&quot;Great class! Effective and relevant teaching in an area without much guidance.&quot;<br />- Mark DiSabato, Senior Information Security Architect, Roche</p><p>&quot;The class cut through jargon to communicate concepts and implementation details.&quot;<br />- Developer, Fortune 100 insurance company</p><p>&quot;Good overview regarding SOA Security. Contains new technology like AMQP and REST&quot;&#160;<br />- Lars Loland, Statoil</p><p>&quot;The course covered what I had to learn about Web services&quot;<br />- Sven Vetsch, Dreamlab Technologies</p><p>&quot;Very good, eye opening especially for websecurity noob.&quot;<br />-Michael Brandon</p><p>&quot;Presenter has very broad and deep technical knowledge on subject. Content: good overview and comparison of SAML and WS-*&quot;<br />- Security consultant, ING</p><p>&quot;Good to learn where our application is vulnerable to attacks and how we can avoid them.&quot;<br />- Application Development Programmer Lead, Fortune 100 Insurance company</p><p>&quot;Entirely thorough overview of technology surrounding the use of web services with a 1 day presentation&quot;<br />- Technical consultant Contextis</p><p>&quot;Gave a good overview of the Web services security environment&quot;<br />- Francesco Degrassi, Emaze Networks</p><p>&quot;A great entry point for securing your web services&quot;<br />- Stig Kluver</p><p>&quot;Lots of good technical information about an emerging area that&#39;s very useful&quot;<br />- Rory McClune, HBOS PLC</p><p>&quot;This class reinforced the importance of software security assurance to me as it lucidly demonstrated why being &#39;behind the firewall&#39; is an outdated concept.&quot;<br />-Senior Support Engineer, Software Security vendor</p><p>&quot;The area of SOA Security is complicated and youg. A course such as this helps bring it into focus.&quot;<br />-Jayme Frye, System Engineer, Union Pacific Railroad</p><p>&quot;Web services security class provided application security concepts valuable for applications audits.&quot;<br />- Mary Ma, IT Auditor, DTCC</p><p>&quot;Very knowledgeable coverage of security requirements for Web services.&quot;<br />- David Libershal, Network Security Engineer, Johns Hopkins University Applied Physics Laboratory</p><p>&quot;WS/XML security is not a &quot;black art&quot;, but you do need to know about it to be able to take it into consideration.&quot;<br />- Applications Specialist, Global 500 manufacturer</p><p>&quot;Good overview of techniques worth considering when planning secure apps&quot;<br />- EAI Specialist, Leading Mobility company</p><p>&quot;Brought concepts in very easily understood terms.&quot;<br />-Glenn Bernard, Systems Engineer</p><p>&quot;Gives ideas about the latest Web services security standards in the industry&quot;<br />- Security Coordinator, Global 500 manufacturer</p><p>&quot;Class cleared up various WS-* standards and gave great concrete examples of how to build a message using each standard. Very good general thoughts on security groups&#39; role in IT.&quot;<br />- Matt Kasselman, UP Systems Engineering</p><p>&quot;I found this very useful as an IT architect in a &quot;security critical environment&quot;.&quot;<br />- Mika Pullinen, IT Architect, Finnish Defense Forces</p><p>&quot;Lots of useful information packed in a small amount of time. Good overall picture.&quot;<br />- Jari Pirhonen, Security Director, Samlink</p><p>&quot;Gunnar is very knowledgeable about security topics and has a great ability to explain complex ideas using simple, appropriate, and amusing language and analogies.&quot;<br />- Scott Redd, Sr. Project Engineer, Union Pacific</p><p>&quot;Excellent instructor who had a good pace to go through the presentation&quot;&#160;<br />- Anna Vaahtokan, Specialist, Nordea</p><p>&quot;Good application security principles.&quot;<br />- Tuomas Kivinen, IT Security Specialist, Nordea</p><p>&quot;I liked the class quite a bit. I took it in a &quot;survey mode&quot; where I wanted to learn about topics at a high level, and this was accomplished. It was good to listen to those in the class that were much more familiar with SAO than I.&quot;<br />- John Glazeski, Senior Systems Engineer</p></span></div></div></div>]]></content:encoded>
      <pubDate>Thu, 28 Aug 2008 04:55:59 +0000</pubDate>
      <category domain="http://securityratty.com/tag/security">security</category>
      <category domain="http://securityratty.com/tag/soa security standards">soa security standards</category>
      <category domain="http://securityratty.com/tag/security standards">security standards</category>
      <category domain="http://securityratty.com/tag/soa security">soa security</category>
      <category domain="http://securityratty.com/tag/soa">soa</category>
      <category domain="http://securityratty.com/tag/security critical environment">security critical environment</category>
      <category domain="http://securityratty.com/tag/information security">information security</category>
      <category domain="http://securityratty.com/tag/information">information</category>
      <category domain="http://securityratty.com/tag/application security principles">application security principles</category>
      <source url="http://1raindrop.typepad.com/1_raindrop/2008/08/web-services-and-xml-security-training-at-owasp.html">Web Services and XML Security Training at OWASP</source>
    </item>
    <item>
      <title><![CDATA[Serializable XmlDocument]]></title>
      <link>http://securityratty.com/article/94c84cd2ea7a6ea71c9712991d27722d</link>
      <guid>http://securityratty.com/article/94c84cd2ea7a6ea71c9712991d27722d</guid>
      <description><![CDATA[It's surprising that XmlDocument isn't marked [Serializable], because it's very natural to serialize one into a stream. I wanted to put an object into ASP.NET ViewState the other day, and quickly ran...]]></description>
      <content:encoded><![CDATA[<p>It&#39;s surprising that XmlDocument isn&#39;t marked [Serializable], because it&#39;s very natural to serialize one into a stream. I wanted to put an object into ASP.NET ViewState the other day, and quickly ran into this roadblock, because part of the object included an XmlDocument, which is not serializable. A quick search revealed that most people deal with this problem by storing a string instead. Indeed, that was where I started, but I quickly realized that there are multiple places in my code where I want to do this sort of thing, and I don&#39;t want to have to mess with it in each data structure that contains an XmlDocument.</p>
<p>So I put together a simple class that holds an XmlDocument and implements ISerializable and called it SerializableXmlDocument. I&#39;m sharing the source code here in the hopes that</p>
<blockquote>
<p>a) somebody will find it useful, and</p>
<p>b) somebody smarter than I am will point out how I screwed it up and help me make it better.</p>
</blockquote>
<p>SerializableXmlDocument includes implicit conversion operators to make it easy to convert to/from an XmlDocument. It holds the actual document in a property called Value. This &quot;isomorph&quot; pattern is one that I picked up from <a href="http://www.pluralsight.com/community/blogs/craig/default.aspx" target="_blank">Craig</a>.</p>
<p>While writing this code, I also wrote a helpful extension method for getting a byte array out of a MemoryStream that is exactly the length of the data written to the stream so far (CopyUpToSeekPointer). So don&#39;t go looking in the docs for MemoryStream for this method :) This is obviously not the most efficient way to consume bytes written to a MemoryStream since it copies the data into a new byte array, but it&#39;s very convenient in many scenarios.</p>
<p>Here is SerializableXmlDocument.cs:</p>
<pre class="csharpcode"><span class="kwrd">using</span> System;<br /><span class="kwrd">using</span> System.Runtime.Serialization;<br /><span class="kwrd">using</span> System.Xml;<br /><span class="kwrd">using</span> System.IO;<br /><br /><span class="kwrd">namespace</span> Pluralsight.Samples<br />{<br />    [Serializable]<br />    <span class="kwrd">public</span> <span class="kwrd">class</span> SerializableXmlDocument : ISerializable<br />    {<br />        <span class="kwrd">public</span> SerializableXmlDocument() { }<br />        <span class="kwrd">public</span> SerializableXmlDocument(XmlDocument <span class="kwrd">value</span>)<br />        {<br />            <span class="kwrd">this</span>.Value = <span class="kwrd">value</span>;<br />        }<br /><br />        <span class="kwrd">public</span> XmlDocument Value { get; set; }<br /><br />        <span class="preproc">#region</span> ISerializable implementation<br />        <span class="kwrd">public</span> SerializableXmlDocument(SerializationInfo info,<br />                                       StreamingContext context)<br />        {<br />            <span class="kwrd">byte</span>[] serializedData = (<span class="kwrd">byte</span>[])info.GetValue(<span class="str">&quot;doc&quot;</span>,<br />                <span class="kwrd">typeof</span>(<span class="kwrd">byte</span>[]));<br />            <span class="kwrd">if</span> (<span class="kwrd">null</span> != serializedData)<br />                <span class="kwrd">this</span>.Value = Deserialize(serializedData);<br />        }<br /><br />        <span class="kwrd">public</span> <span class="kwrd">void</span> GetObjectData(SerializationInfo info,<br />                                  StreamingContext context)<br />        {<br />            <span class="kwrd">byte</span>[] serializedData = <span class="kwrd">null</span>;<br />            <span class="kwrd">if</span> (<span class="kwrd">null</span> != Value)<br />                serializedData = Serialize(Value);<br />            info.AddValue(<span class="str">&quot;doc&quot;</span>, serializedData);<br />        }<br />        <span class="preproc">#endregion</span><br /><br />        <span class="preproc">#region</span> <span class="kwrd">implicit</span> conversion to/from XmlDocument<br />        <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">implicit</span> <span class="kwrd">operator</span> SerializableXmlDocument(<br />            XmlDocument doc)<br />        {<br />            <span class="kwrd">return</span> <span class="kwrd">new</span> SerializableXmlDocument(doc);<br />        }<br />        <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">implicit</span> <span class="kwrd">operator</span> XmlDocument(<br />            SerializableXmlDocument sdoc)<br />        {<br />            <span class="kwrd">return</span> sdoc.Value;<br />        }<br />        <span class="preproc">#endregion</span><br /><br />        <span class="preproc">#region</span> Xml serialization helper methods<br />        <span class="kwrd">private</span> <span class="kwrd">static</span> <span class="kwrd">byte</span>[] Serialize(XmlDocument doc)<br />        {<br />            MemoryStream stream = <span class="kwrd">new</span> MemoryStream();<br />            doc.Save(stream);<br />            <span class="kwrd">return</span> stream.CopyUpToSeekPointer();<br />        }<br />        <span class="kwrd">private</span> <span class="kwrd">static</span> XmlDocument Deserialize(<span class="kwrd">byte</span>[] serializedData)<br />        {<br />            XmlDocument doc = <span class="kwrd">new</span> XmlDocument();<br />            doc.Load(<span class="kwrd">new</span> MemoryStream(serializedData, <span class="kwrd">false</span>));<br />            <span class="kwrd">return</span> doc;<br />        }<br />        <span class="preproc">#endregion</span><br />    }<br />}</pre>
<p>...and here&#39;s the CopyUpToSeekPointer extension method for MemoryStream:</p>
<pre class="csharpcode"><span class="kwrd">using</span> System;<br /><span class="kwrd">using</span> System.IO;<br /><br /><span class="kwrd">namespace</span> Pluralsight.Samples<br />{<br />    <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">class</span> MemoryStreamExtensionMethods<br />    {<br />        <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">byte</span>[] CopyUpToSeekPointer(<br />            <span class="kwrd">this</span> MemoryStream stream)<br />        {<br />            <span class="rem">// copy only the part of the buffer</span><br />            <span class="rem">// that contains the serialized document</span><br />            <span class="kwrd">long</span> length = stream.Position;<br />            <span class="kwrd">byte</span>[] buffer = stream.GetBuffer();<br />            <span class="kwrd">byte</span>[] result = <span class="kwrd">new</span> <span class="kwrd">byte</span>[length];<br />            <span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i &lt; length; ++i)<br />                result[i] = buffer[i];<br />            <span class="kwrd">return</span> result;<br />        }<br />    }<br />}</pre>
<p>...and here&#39;s a sample object that uses SerializableXmlDocument:</p>
<pre class="csharpcode"><span class="kwrd">using</span> System;<br /><br /><span class="kwrd">namespace</span> Pluralsight.Samples<br />{<br />    [Serializable]<br />    <span class="kwrd">public</span> <span class="kwrd">class</span> Item<br />    {<br />        <span class="kwrd">public</span> <span class="kwrd">string</span> Name { get; set; }<br />        <span class="kwrd">public</span> SerializableXmlDocument Data { get; set; }<br /><br />        <span class="kwrd">public</span> <span class="kwrd">void</span> Print()<br />        {<br />            Console.WriteLine(<span class="str">&quot;Name: {0}&quot;</span>, Name);<br />            Console.WriteLine(Data.Value.OuterXml);<br />        }<br />    }<br />}</pre>
<p>...and here&#39;s a sample program that creates an instance of Item, serializes it, then deserializes it, printing diagnostics along the way to show that it&#39;s working properly.</p>
<pre class="csharpcode"><span class="kwrd">using</span> System;<br /><span class="kwrd">using</span> System.Xml;<br /><span class="kwrd">using</span> System.Runtime.Serialization.Formatters.Binary;<br /><span class="kwrd">using</span> System.IO;<br /><span class="kwrd">using</span> Pluralsight.Samples;<br /><br /><span class="kwrd">class</span> DemoProgram<br />{<br />    <span class="kwrd">static</span> <span class="kwrd">void</span> Main(<span class="kwrd">string</span>[] args)<br />    {<br />        XmlDocument doc = <span class="kwrd">new</span> XmlDocument();<br />        doc.LoadXml(<span class="str">&quot;&lt;root&gt;&lt;child&gt;text&lt;/child&gt;&lt;/root&gt;&quot;</span>);<br /><br />        Item item = <span class="kwrd">new</span> Item<br />        {<br />            Name = <span class="str">&quot;Testing 123&quot;</span>,<br />            Data = doc,<br />        };<br /><br />        <span class="rem">// print object before serialization</span><br />        item.Print();<br /><br />        BinaryFormatter formatter = <span class="kwrd">new</span> BinaryFormatter();<br />        MemoryStream stream = <span class="kwrd">new</span> MemoryStream();<br />        formatter.Serialize(stream, item);<br /><br />        <span class="kwrd">byte</span>[] serializedItem = stream.CopyUpToSeekPointer();<br /><br />        Console.WriteLine(<span class="str">&quot;Serialized data (base64): {0}&quot;</span>,<br />            Convert.ToBase64String(serializedItem));<br /><br />        item = (Item)formatter.Deserialize(<br />            <span class="kwrd">new</span> MemoryStream(serializedItem, <span class="kwrd">false</span>));<br /><br />        <span class="rem">// print object after deserialization</span><br />        item.Print();<br />    }<br />}</pre>
<p>Here&#39;s the output of the previous sample program:</p>
<p><a href="http://www.pluralsight.com/community/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/keith/sample_2D00_output_5F00_2.jpg"><img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" alt="sample-output" src="http://www.pluralsight.com/community/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/keith/sample_2D00_output_5F00_thumb.jpg" width="422" border="0" height="214" /></a>&nbsp;</p>
<p>Flame away!</p><div style="clear:both;"></div><img src="http://www.pluralsight.com/community/aggbug.aspx?PostID=52538" width="1" height="1">]]></content:encoded>
      <pubDate>Mon, 18 Aug 2008 22:58:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/public class item">public class item</category>
      <category domain="http://securityratty.com/tag/public">public</category>
      <category domain="http://securityratty.com/tag/public void getobjectdata">public void getobjectdata</category>
      <category domain="http://securityratty.com/tag/public static byte">public static byte</category>
      <category domain="http://securityratty.com/tag/xmldocument">xmldocument</category>
      <category domain="http://securityratty.com/tag/return doc">return doc</category>
      <category domain="http://securityratty.com/tag/return">return</category>
      <category domain="http://securityratty.com/tag/static byte">static byte</category>
      <category domain="http://securityratty.com/tag/public class">public class</category>
      <source url="http://www.pluralsight.com/community/blogs/keith/archive/2008/08/18/serializable-xmldocument.aspx">Serializable XmlDocument</source>
    </item>
    <item>
      <title><![CDATA[Microsoft patches, updates Mac Office]]></title>
      <link>http://securityratty.com/article/eb3d7be1c3dc40f5b47d72f5fa4b3aaf</link>
      <guid>http://securityratty.com/article/eb3d7be1c3dc40f5b47d72f5fa4b3aaf</guid>
      <description><![CDATA[Microsoft this week updated Office 2008 and Office 2004 for the Mac OS, moving to patch several security bugs and add other enhancements users have been waiting for, including Open XML file...]]></description>
      <content:encoded><![CDATA[Microsoft this week updated Office 2008 and Office 2004 for the Mac OS, moving to patch several security bugs and add other enhancements users have been waiting for, including Open XML file converters.
<p><a href="http://feeds.computerworld.com/~a/Computerworld/Security/News?a=xypQGB"><img src="http://feeds.computerworld.com/~a/Computerworld/Security/News?i=xypQGB" border="0"></img></a></p><img src="http://feeds.computerworld.com/~r/Computerworld/Security/News/~4/365031128" height="1" width="1"/>]]></content:encoded>
      <pubDate>Thu, 14 Aug 2008 09:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/office">office</category>
      <category domain="http://securityratty.com/tag/xml file converters">xml file converters</category>
      <category domain="http://securityratty.com/tag/enhancements users">enhancements users</category>
      <category domain="http://securityratty.com/tag/microsoft">microsoft</category>
      <category domain="http://securityratty.com/tag/security bugs">security bugs</category>
      <category domain="http://securityratty.com/tag/mac">mac</category>
      <category domain="http://securityratty.com/tag/week">week</category>
      <category domain="http://securityratty.com/tag/patch">patch</category>
      <source url="http://feeds.computerworld.com/~r/Computerworld/Security/News/~3/365031128/article.do">Microsoft patches, updates Mac Office</source>
    </item>
  </channel>
</rss>
