Home > Articles > Security > Software Security

Software [In]security: Securing Web 3.0

Gary McGraw

Toggle Open Article Table of ContentsArticle Contents

Close Table of ContentsArticle Contents

  1. Web 3.0, a.k.a. the Semantic Web
Close Table of Contents
  • PrintPrint
  • Share ThisShare This
  • DiscussDiscuss
Close WindowGary McGraw

Gary McGraw

Learn more…

Software [In]security: BSIMM Europe
Nov 10, 2009
Software [In]security: Startup Lessons
Oct 22, 2009
Software [In]security: BSIMM Begin
Sep 24, 2009
Software [In]security: Attack Categories and History Prediction
Aug 25, 2009
Software [In]security: Moving U.S. Cybersecurity Beyond Cyberplatitudes
Jul 16, 2009
Software [In]security: Measuring Software Security
Jun 18, 2009
Software [In]security: Twitter Security
May 15, 2009
Software [In]security: Software Security Comes of Age
Apr 16, 2009
Software [In]security: The Building Security In Maturity Model (BSIMM)
Mar 16, 2009
Software [In]security: Nine Things Everybody Does: Software Security Activities from the BSIMM
Feb 9, 2009
Software [In]security: Top 11 Reasons Why Top 10 (or Top 25) Lists Don’t Work
Jan 13, 2009
Software [In]security: Software Security Top 10 Surprises
Dec 15, 2008
Software [In]security: Web Applications and Software Security
Nov 14, 2008
Software [In]security: A Software Security Framework: Working Towards a Realistic Maturity Model
Oct 15, 2008
Software [In]security: Getting Past the Bug Parade
Sep 17, 2008
Software [In]security: Software Security Demand Rising
Aug 11, 2008
Software [In]security: Application Assessment as a Factory
Jul 17, 2008
Software [In]security: DMCA Rent-a-cops Accept Fake IDs
Jun 12, 2008
Why Is Security a Software Issue?
Jun 2, 2008
Software [In]security: Securing Web 3.0
May 15, 2008
Software [In]security: Paying for Secure Software
Apr 7, 2008
Game Hacking 101
Nov 21, 2007
The Role of Architectural Risk Analysis in Software Security
Mar 3, 2006
Reverse Engineering and Program Understanding
Dec 23, 2004
Security Expert Gary McGraw on Black Hats, the U.S. Government, and Good vs. Evil
Jun 11, 2004
Introduction to Software Security
Nov 2, 2001
Building Secure Software: Race Conditions
Nov 2, 2001

Sorry, this author hasn't posted any blogs.

The heady promise of Web 3.0 is true multipurpose apps mixing public and private data sources. But Gary McGraw warns that we haven't yet solved (or perhaps even thoroughly considered) some of the serious security issues involved.

Securing Web 3.0 presents some serious challenges worth considering. Though we have yet to secure simple Web 1.0 applications or more complex SOA-based Web 2.0 applications, the world marches on while security plays perpetual catch-up. According to marketers and those at the cutting edge of Web development, the time has come for Web 3.0.

Web 3.0, a.k.a. the Semantic Web

The big idea behind Web 3.0 is to be able to create applications impervious to data representation issues, in order to enable automated and flexible integration between public and private data sources. Think about the problem this way: A Web app built to process data that comes to it as an internal Excel spreadsheet looks significantly different from a Web app constructed to process data that arrives in the form of a public database[md]which in turn looks significantly different from a Web app designed to interact with a specially created PC-based client component. Wouldn't it be nice to be able to build an app that can handle either or all data sources without complete recoding?

To do this, Web 3.0 relies on lots of XML tagging and bagging, URIs to allow pass by reference, and the idea that everything is addressable. This move allows for what practitioners call "representational state transfer" (ReST), in a resource-oriented architecture, which provides the power to create "mash-ups" and other advanced apps more easily.

Think of all of this as the Web on steroids, with pointers that point to globs of stuff that comes categorized and tagged with a consistent ontology. In some sense, this is one of the dreams of symbolic AI, with Doug Lenat's Cyc project providing a prime example. That's why some people call Web 3.0 "the semantic Web." (There are lots of reasons the symbolists got things wrong, as any of Doug Hofstadter's Ph.D. students knows, but that's not what this column is about.)

Web 3.0 is not a replacement for the Web we know today. Rather, it's an extension of the information with which we already work. New tags and data exchange formats that provide meaning to things already in the incubator stage. In any case, a majority of Web 3.0 instances today create "YourSpace" situations in which data is protected in business-controlled silos (but big plans exist to open things up).

Sometimes a demo can make abstractions like this easier to understand by making them tangible. To play around with a Web 3.0 app today, surf over to the SIMILE Project website and try your luck.

Security Concerns

The biggest security problem in the Web 3.0 world will be controlling state over time with a jungle of new syntax. We supposedly already learned this lesson the hard way with SOA systems and massively distributed systems embodied in massively multiplayer online role-playing games (MMORPGs), where the idea of controlling state over trust boundaries presents a formidable challenge. There are lots of lessons to draw from online game security, which is the main reason that Greg Hoglund and I wrote Exploiting Online Games: Cheating Massively Distributed Systems.

Let's zoom in. The problem in online games is that much of the game itself runs on literally millions of untrusted client PCs that connect to central servers. The idea of trusting state information (or data) that has been reported to central services by those millions of untrusted clients may seem naïve from a security perspective, and it leads to lots of potential for exploit, but that's how things work today. In the Web 3.0 world, trust boundaries get even trickier. In this case entire applications are constructed by mashing up data and functionality from all over the Web. Who is to say which data will be trusted and which pieces of functionality actually do what they say they do?

Practitioners of Web 3.0 invoke a "web of trust" idea, echoing the excellent thinking of PGP's Phil Zimmerman, but those of us in security know that the PKI web of trust as it currently exists leaves much to be desired. Challenges that remain open include revoking identities, privacy concerns, and figuring out how to evolve trust over time. In the meantime, attackers can literally play with the "minds" of Web 3.0 apps by falsifying XML data, providing services that don't do what they claim, and interposing on legitimate services. It ain't pretty.

Another big concern in Web 3.0 is control over data. In the simplest cases, this devolves to access control. As many of us in commercial security know, the Bell/LaPadula access control matrix has outlived its utility as a data security concept. Simply put, the matrices we're trying to manage are already too big, and Web 3.0 does all it can to make them even bigger. But things get much more complicated when you try to anticipate the eventual uses of the data you're providing to the Web. Very little thinking has gone into the privacy implications of massive data mash-ups. Think about how two separate databases that seem innocuous on their own (such as Google Maps and who owns Blu-ray DVD players) might be useful to a Robin Hood intent on preying on the rich, and you see a glimmer of the problem.

Trust transitivity is a huge can of worms. If I allow you access to my tagged/bagged good data, thinking that you will control access to it, how can I anticipate that you won't make a mistake and publish it to the world for anyone to use? Attackers may set up services to do this on purpose. Likewise, data ambiguity will be something that attackers manipulate on purpose. "Semantic injection" errors, anyone?

On the positive side, the idea of passing by reference instead of exposing objects in transit could be good for security. Ultimately, it may allow more control over the stuff. One of the known problems with SOAP messaging is that the actual stuff moves around and carries credentials, signatures, and other security things with it. In the worst cases, developers refer to the security tags as "goo" and do what they can to avoid having goo touch their stuff.

I've only addressed the tip of the iceberg when it comes to Web 3.0 security in this brief introduction. Looks to me like we have enough to keep us all duly entertained for years to come! As one of my Cigital colleagues puts it, "Web 3.0 will accelerate the de-perimeterization of enterprises, which will completely blow up the trust models inherent in enterprise application architecture today." Yay!

Acknowledgments: Special thanks to Brian Sletten of Zepheira, who actually works on Web 3.0 stuff all day and who brought me up to speed quickly. Also thanks to the Cigital Software Security Group for a stimulating internal discussion of Web 3.0 risks, which I mined for this article.

  • Share ThisShare This
  • Your Account

Discussions

Make a New Comment

You must log in in order to post a comment.

Related Resources

Danny KalevMinutes from the October 2009 Meeting
By Danny Kalev on November 19, 2009 No Comments

The minutes from the Santa Cruz (October 2009) meeting are available here. Even if you're not a language layer at heart, I encourage you to read them.

Social Networking for the Anti-Socialites
By John Traenkenschuh on November 11, 2009 No Comments

How would Scrooge handle today's emphasis on social networking?

Danny KalevA Reader's Opinion on Attributes
By Danny Kalev on October 20, 2009 No Comments

In August I dedicated a series to the debate about C++0x attributes. I believe that it covered the subject in a balanced and detailed way, but I keep getting complaints from C++ users who don't like attributes for various reasons. Here's a recent email I received from a Polish C++ programmer. While it  doesn't represent my opinion about attributes -- I'm rather neutral about this feature and consider it a "solution waiting for a problem" -- but it suggests that attributes are still a highly controversial issue that will haunt C++ for a long time. The email is quoted here with minor edits that and as usual, with all private details removed.

See All Related Blogs

Informit Network