Slashdot Mirror


Cryptography in the Database

Ben Rothke writes "Noted security guru Marcus Ranum has observed that "these days, with the kind of plug-ins that come in your typical browser, combined with all the bizarre undocumented protocols used by new Internet applications; makes it highly unlikely that a firewall is doing anything more complex than a thin layer of policy atop routing. As such, the applications behind the firewall are now more critical to security than the firewall itself. Which should scare the holey moley out of you."" Read on for Ben's review. Cryptography in the Database : The Last Line of Defense author Kevin Kenan pages 312 publisher Addison-Wesley rating 9 reviewer Ben Rothke ISBN 0321320735 summary Excellent reference for those that are serious about securing their corporate databases

Taking Ranum's observation to the next level, it is not only the applications that need to be secured, but databases also. The theme of Cryptography in the Database - The Last Line of Defense is that databases, being the main repository for critical consumer and business data, are often not given the adequate level of security that they deserve.

Large databases often contain terabytes of data. This data often contains R&D, client, customer data and more, that if compromised, could wreak havoc on an organization; both from a public relations perspective, in addition to a regulatory perspective. In a large customer driven organization, a database breach can wreak havoc on tens of thousands of customer records. With all of that, companies will spend large amounts of money on the security appliance of the month, but often let their databases sit unprotected.

Cryptography in the Database is a valuable book in that it shows how a formal methodology is required to adequately protect large corporate databases. The emphasis of the book is on designing and integrating a cryptosystem into the database to protect it against the various threats that are specifically launched against corporate database systems.

The books 4 parts contain 21 chapters. Part one is brief overview of the need for database security, along with related threats to database, and also covers the basic concepts of cryptography and encryption.

Part two provides a comprehensive synopsis on the cryptographic infrastructure necessary to secure corporate databases. Chapter 3 goes into details on how to set up an effective key management scheme. Such a scheme is crucial as the author notes that all it takes is the loss of a single 128-bit key, and gigabytes of data can become inaccessible.

Part two also creates a sample cryptographic architecture that is flexible and modular so that it is easily adaptable to various situations. The author notes that such systems can be difficult to manage if they become overly complex, and the challenge is to find the right balance between security and complexity on one side, and usability on the other. Creating an effective cryptographic database infrastructure. is not an elementary task given the different requirements of security and functionality.

Chapter 3 details the various entities that go into a complete cryptographic architecture, including the cryptographic engine, and the various controls around the crypto keys. The chapter provides a good overview of the key life cycle. Historically, controls around the key life cycle are crucial. One of the ways the Allies were able to break the German Enigma cipher machine during World War II was that the German's reused their crypto keys, which obviates much of the security that cryptography can provide. Had the German's not done that, the outcome of the war may have been dramatically different.

Part 3 details the issues that need to go into the entire cryptography project. Kenan notes that for security to be effective, it must be dealt with at the commencement of a project and must permeate the overall design and seep into every line of code. Also, in the long term, developing a culture of security depends on looking at security as an opportunity to provide extra value. Where security fails is when it is viewed merely as a series of checklists that are meant to get in the way.

Chapter 9 shows how data flow diagrams can be used by a database analyst to better understand how a system works. These data flow diagrams are valuable as that they show the various inputs into the system and where potential failures can crop up.

Part 4 provides various Java code examples of the cryptographic infrastructure that were detailed in the previous 12 chapters. The example code is meant to show how to implement the primary functionality of the various components that the book describes.

One of the popular terms in security today is data at rest, which refers to all data in storage. Businesses, government agencies, and others need to deal with attacks on data at rest, which more often then not will be found on databases.

After reading Cryptography in the Database, the reader can understand why database cryptography must be implemented in a methodological fashion, since incorrectly implemented cryptography can often be worse than no cryptography at all. With that, database administrators, architects and others who have input into the design of database security are highly advised to read Cryptography in the Database.

Databases are far too critical to an organization to be left unsecured, or incorrectly secured. The database is indeed the last line of defense in an organization. Books such as this are thusly vital to ensure that the last line of defense is not easily breached.

You can purchase Cryptography in the Database from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

209 comments

  1. Money Talks by fembots · · Score: 5, Insightful

    I think most companies know the importance of security on firewall, server, application and database, but trying to get a budget for such measures is another matter.

    So maybe to most companies, extreme-security is a gamble they are willing to take, or they simply don't value customer data as much as customers do.

    We have seen so many cases of stolen university data, or even credit card details, but when have we heard a Press Release saying "no worries, the data is crypto-protected with this how-many-bit technology".

    1. Re:Money Talks by BlogPope · · Score: 2, Insightful
      but when have we heard a Press Release saying "no worries, the data is crypto-protected with this how-many-bit technology".

      Because what good is 4096-bit encryption when the application, the weak link, has to know the key to decode it? Proper application/network/security design solves this problem, and while encryption might be a part of it any idiot who says "no worries, its protected by ROT-13 (or whatever) encryption" reveals himself to be that idiot.

      --
      My other car is a Popemobile
    2. Re:Money Talks by Anonymous Coward · · Score: 0

      Regarding your sig, it seems like any player making an attempt would face really stiff competition: http://vinc.iclod.com/city.aspx?show=shops

      Well, I hope whoever will is, that he/she plays nice with that super-monopoly ;)

    3. Re:Money Talks by Feyr · · Score: 5, Insightful

      working for a software company, i'd say most developper see encryption as a panacea.

      as a real world example. we developped an application which i was asked to beta test (im the sysadmin, i dont do software devel). within 5 minutes i had hacked the application, had full access to the database and every users' passwords.

      when i pointed out the app was flawed, their answer was "that's ok, we'll add encryption to the database before releasing it". in this case the whole design was flawed, encryption in the database would have stopped me for 10 minutes instead of 5. to this day they still haven't fixed it (thankfully, they haven't sold it yet either)

      moral of the story: design your apps properly. don't rely on the buzzword du jour. encryption is a tool, not a panacea. and good security is HARD to design.

      and more importantly, database encryption is mostly snake oil. usually if a hacker get to your database, he found your application first, and he has the key to decrypt your super-secure-2048bit-encrypted-database. it will slow him down for a few more minutes, that's all

    4. Re:Money Talks by Qzukk · · Score: 2, Insightful

      Database encryption makes as much sense as drive encryption. Works great, unless they get it while it's running, and face it, the vast majority of database apps are not on a laptop that can walk away. When it comes down to "improving security" there are better things to throw money at than the processor and development time required to encrypt your database.

      Firewalls, proper network design, proper user and access credentialing, proper system maintenance, even proper hardware decomissioning techniques, all of which are strictly maintained or at least implemented with multiple layers to mitigate the failure of that maintenance at any point (say, DOD wipe before you pull the drives out to be crushed, lest someone walk off with one. User access audit trails that allow you to detect improper access, and undo database changes done by whoever was using that account should someone's password get compromised) are going to go farther to protect your data than any encryption key hiding somewhere in your application, waiting to be read out of memory.

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    5. Re:Money Talks by Anonymous Coward · · Score: 0

      Does this book bring up anything that was not already discussed in Translucent Databases by Peter Wayner (ISBN: 0967584418)? Other than more reasons why information in databases should be encrypted?

      http://books.slashdot.org/article.pl?sid=02/06/26/ 1342218&tid=93&tid=6

    6. Re:Money Talks by platypus · · Score: 1

      and more importantly, database encryption is mostly snake oil. usually if a hacker get to your database, he found your application first, and he has the key to decrypt your super-secure-2048bit-encrypted-database.

      Absolutely - if you do it with one key for all.
      I once had to design such a system, and started by looking at scenarious on how what information from the db had to be available clear text, and more importantly, to whom.
      What I came up with was using two dbs. One driving the front end to the users, storing the sensitive per-user data encrypted with the user's password, and a hash of the password for authentication.
      The second database would be totally disconnected from the system, holding the data unencrypted for usage by us, and only receiving updates from the frontend when necessary (User updates his record), and that in real time.
      There was no (implemented) way to get data back from the second db to the frontend system.
      So even if an attacker roots the frontend system+db, he's only able to get at the data of users logging in at that time.

      That way I think we miniminzed the timespan when unencrypted data exists at all in the frontend system.

    7. Re:Money Talks by Feyr · · Score: 1

      indeed, that's a nice system, although not always a workable one. but a good one if it work for you. that's why i said "mostly snake oil". i didn't mean that there's no way to do it, just that the ways people usually do it, or are sold stuff by vendors to do it, doesn't work

    8. Re:Money Talks by platypus · · Score: 1

      Hey, I didn't mean to implied that everything related to encryption is snake oil ;).

      It's just that most people forget that with some careful analysis, there are indeed
      ways to avoid having to store data in plaintext on the system. Or encrypted with a key which is
      available on the system anyway, which is - as you said - as secure as storing plaintext.

      And that the alternative is just securing the publically reachable server with firewalls,
      keep up to date with security fixes and stuff and hope your defense is good enough.

      The key IMO is a combination of encryption and network security, and I bet that
      you can use a system like I outlined above in many cases.

  2. Must agree altogether by pegr · · Score: 4, Interesting

    I can't tell you how many times I've seen apps all using the same credentials to log into the database... The ID and password are hardcoded into the app, and it's the same for all the vendor's customers. And no, these aren't little one-off apps for small businesses, these are enterprise apps. I've also taken advantage of this fact for pen testing....

    1. Re:Must agree altogether by TheRealMindChild · · Score: 5, Interesting

      While you and I would love to beat the skull of the programmers involved, I shamefully admit I was part of several projects in the same situation you just stated. The problem was, though, the same problem IT deals with everyday... it is a bad decision forced on by management. I remember one day getting REEEEEEEEEMED and practically fired because I "voiced concern" about such. Within the screaming and yelling was reasoning like "No one can get the password", "Even if they did, how would they know what to do with it?", "Nobody wants to remember another password", and my favorite "If you knew what you were doing, this wouldn't BE a security issue". You can't make this crap up. So like everyone else in the world, I did was I was told....

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    2. Re:Must agree altogether by Anonymous Coward · · Score: 1, Insightful

      many times I've seen apps all using the same credentials to log into the database...

      How exactly is this bad?

      The whole purpose of the -database- is to make it easier for everyone to access data. Anyone who deals with databases knows never to rely on database security for... security.

      Why would you want to add an extra layer of security/encryption between your app and the database??? Or put -more- load on the database? A busy database can barely keep up with the loads as they are... (storing terabytes in Oracle, here)

      Besides, in a properly designed tiered architecture, nobody -but- the app server can access the database, and nobody can access anything -but- the app server (that's what firewalls are for). The app of course can do whatever it wants when it comes to security.

      All this business about `encrypting' data or relying on database security doesn't apply to everyone---not by a long shot.

    3. Re:Must agree altogether by E-Rock · · Score: 1

      Act! does this and it pisses me off. It's a special instance of the MS SQL Desktop Engine (you should already be worried) with a SE password known only to the app. There's a tool that you can use to reset it (probably where I'd start if I wanted to capture it), but you can't ever get it to reval it.

      This is really annoying since you then can't actually back up the data from SQL; since you can't connect to it. You either have to manually export or trust the users do this occassionally.

    4. Re:Must agree altogether by pegr · · Score: 2, Informative

      Act! does this and it pisses me off. It's a special instance of the MS SQL Desktop Engine (you should already be worried) with a SE password known only to the app. There's a tool that you can use to reset it (probably where I'd start if I wanted to capture it), but you can't ever get it to reval it.
       
      Write a PERL script that listens for connections and fakes the authentication routine. Point your app at the host running the script. Have the script record the authentication credentials the app uses. Have the script respond to the app with a "failed login" equivilent. Bingo, got your SA password... (Post it to Slashdot when your done, please...)

    5. Re:Must agree altogether by IdleTime · · Score: 2, Informative

      I wish I had mod points!

      I work for a database company and I can assure you that there are several methods of access identification and internal encryption in the database (security in case the datafiles are stolen) etc.

      But security is never a single thing but the sum of several layers of measures which combined give the best acceptable security level. Note! This is not the same as the best possible security level, such a level is not functional.

      --
      If you mod me down, I *will* introduce you to my sister!
    6. Re:Must agree altogether by temojen · · Score: 1

      Or how about the gazillions of web applications and intranet code where the webserver MUST connect as the user that owns the database? Garrr... just stick a grenade in your server, it's faster.

    7. Re:Must agree altogether by mcrbids · · Score: 3, Interesting

      Really should get to work, but can't pass this up..

      Sometime in 2002, I found a security hole in the implementation of a particular Credit Card processing company's online processing software while implementing an interface between it and an application I was tending to.

      It was the very worst type of security hole - one that would let me order whatever I like from any of their customers without paying a thin dime, without doing anything exotic at all. (EG: File->Save Page; Edit the html file, use it to submit a post with altered values)

      I sent in a simple summary of the security issue found, and included sample code and explicit instructions for what to do and when to recreate the issue, in its entirety. And, I sent it to every email address I could find or think up for this company, along with my contact information and expressed my desire and willingness to assist their engineers. I even detailed a way to completely close the security hole with a minimum of fuss.

      Nothing happened for some 6 months. (!)

      Then, I got a phone call, from somebody who didn't identify himself. He identified me, in a most nervous and rattling fashion. He went on and on about how it "wasn't a security hole", and "nobody works likee that", and how "nobody would exploit it" and even told me what I might be thinking! I said nothing - this guy scared the hell out of me, even though I made perfectly clear my intentions. He went on and on, for perhaps 10-15 minutes, and I was silent the whole time. He never once asked me a question, other than to identify me!

      Finally, he hung up, and that was it. I've never heard or seen anything since, and I've had the same email addresses and contact info. I have never publicly revealed the company involved, and don't intend to. If they get screwed by the security hole, they clearly deserve it.

      But I sure as hell refuse to do business with them!

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    8. Re:Must agree altogether by chris_mahan · · Score: 3, Insightful

      Which is why, my friend, next time this happens, you say nothing.

      It is the job of the people getting paid (management) to hire competent developers to protect the data of consumers of products made by the company owned by shareholders. If these people fail in their duty, the company should lose enough money to make the shareholders hopping mad and terminate and sue the management team.

      The shit has to hit the fan before things get better.

      --

      "Piter, too, is dead."

    9. Re:Must agree altogether by pegr · · Score: 1

      The whole purpose of the -database- is to make it easier for everyone to access data.
       
      No, the purpose of the database is to make it possible for authorized users to access data.

      The app of course can do whatever it wants when it comes to security.
       
      Which is why the app server is a target. You didn't eliminate your security problem, you just moved it. You moved it to a host that is exposed to the entire world (for Internet apps). Hope you did your homework.
       
      Oh, but wait, you don't care, you're a database guy! The app server is someone else's problem! NOW I understand your approach! Way to go! I bet you're management material!

    10. Re:Must agree altogether by Anonymous Coward · · Score: 0

      I worked for a company that not only did that, but they ate their own dog food. (And drank the Kool-Aid.) All the corporate documents and email by contact were perfectly visible using a SQL Explorer tool. As soon as I popped someone else's offer of employment Word doc open, I closed it, never did that again and never mentioned it. (And started sending out my resume elsewhere when I saw what they were paying him!)

    11. Re:Must agree altogether by Lehk228 · · Score: 1

      i know of an online store that will still let you edit the URL to change the final billing amount, though i think their ordering system is hand processed so hopfully the human filling the order would see the problem

      --
      Snowden and Manning are heroes.
    12. Re:Must agree altogether by AJWM · · Score: 1

      No problem, just store the ID and password in the app as an encoded string. When the app starts up, it just decodes it using the ... Oh, wait.

      --
      -- Alastair
    13. Re:Must agree altogether by Fulcrum+of+Evil · · Score: 1

      i know of an online store that will still let you edit the URL to change the final billing amount

      I know of a certain online bookstore that would let you do hand edit the rating you gave book reviews (since fixed) without doing any validation.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    14. Re:Must agree altogether by Coniptor · · Score: 1

      I agree with you but how will the shit EVER hit the fan
      If everyone who knows the problem at hand keeps quite about it?
      What, it reaches a critical state and because no one has mentioned
      it before management/hr can sit around and come up with excuses and
      lies as to why it happened and search for a fall guy? TELL SOMEONE,
      GO OVER YOUR BOSES HEAD. If they aren't taking you seriously then
      go to the very top if you can. Failing that I would take the issue
      out side the company to consumer rights groups and people who will
      bite and never let go. If you don't you give those shit heads in management
      that don't take these issues seriously the chance to shuck their responsibility
      and have it fall on a fall guy/gal and continue to be promoted.
      These things I can't forgive. It would be irrational and absurd to do so.

    15. Re:Must agree altogether by Anonymous Coward · · Score: 0

      you must be a pussy.

      if a grown man ever raised his voice to me he woudl have like 3 seconds to realise what a mistake he had made and how much he has watsed his life.

    16. Re:Must agree altogether by chris_mahan · · Score: 1

      I agree with you.

      In this case, however, he does not work for the company.

      What can happen, you ask? Well, a hacker steals 20 million credit card and the Wall Street Journal reports the loss. Then NPR talks about it and Congressman Clinton calls for an investigation. That's hitting the fan.

      --

      "Piter, too, is dead."

    17. Re:Must agree altogether by ocelotbob · · Score: 1

      This is when you get an anonymous webmail account (trust me, there are shitloads of ancient phpnuke apps out there with no security in their webmail), and you put a friendly note on lists like full disclosure stating, "okay, I found a bug in xxx shopping cart app, here's how you exploit it." Amazing how fast the shopping cart vendor will update their software then.

      --

      Marxism is the opiate of dumbasses

    18. Re:Must agree altogether by jbolden · · Score: 1

      Or we can have a Ralph Nadar type guy. Back in the 1960s American car companies engaged in all sorts of unsafe practices to save money. Nadar proved these things in court which:

      a) Created safety regulations
      b) Caused car companies to start losing law suits

      We need the same thing to happen to software. We need a crusader who interviews programmers and gets them to say, on the record, how they engaged in negligence at companies they used to work for. How they alerted management that these actions were unsafe and how management either disagreed or refused to listen. The law is a whole different once you show intent.

      Right now a company loses credit card data and "whoops sorry about that". Show intent and they are part of the theft and liable for the money stolen (at the very least).

  3. I might be wrong here but... by Volanin · · Score: 3, Informative

    Isn't this exactly the kind of security that Reiser4 wants to address via its plugins system, while also adding more speed to the filesystems?

    --
    If I clone myself, can I call it a thread?
    If a girl winks to us, can I call it a race condition?
    1. Re:I might be wrong here but... by Homology · · Score: 1
      Isn't this exactly the kind of security that Reiser4 wants to address via its plugins system, while also adding more speed to the filesystems?

      I'm sure that all those enterprise DB users will very, very shortly convert all their DBs to Reiserf4.

    2. Re:I might be wrong here but... by Anonymous Coward · · Score: 0

      So, now that we've compared a relational database to a filesystem, how about we move on to comparing apples and potatos?

    3. Re:I might be wrong here but... by Tet · · Score: 1
      I'm sure that all those enterprise DB users will very, very shortly convert all their DBs to Reiserf4.

      Ha ha ha ha. You're a very funny man.

      --
      "The invisible and the non-existent look very much alike." -- Delos B. McKown
    4. Re:I might be wrong here but... by Anonymous Coward · · Score: 0

      You spelt potatoe wrong.

  4. why stop at databases? by Anonymous Coward · · Score: 0

    All access to information can be governed with crypto keys. Either you have the rights to the information, or you don't. Even root can be managed: without the key, root can't see what's actually in the files. Backups still work, and even in the archives the files' contents are encrypted.

  5. This has been a concern of mine for a while! by GecKo213 · · Score: 2, Interesting

    I have certain programs on my computer that can get past my firewall for various reasons. I often wonder about some of the biggest heists in the world, they're usually done by someone on the inside. If your network is locked down and something from the inside punches a hole in it how do you control any of that?

    --
    Generation Trance: What generation are you?
    1. Re:This has been a concern of mine for a while! by Anonymous Coward · · Score: 0

      With a firewall? You do realize they can block outgoing traffic too, right?

    2. Re:This has been a concern of mine for a while! by earnest+murderer · · Score: 2, Insightful

      I have certain programs on my computer that can get past my firewall for various reasons. I often wonder about some of the biggest heists in the world, they're usually done by someone on the inside. If your network is locked down and something from the inside punches a hole in it how do you control any of that?

      You don't. If someone has access (user or physical) you have no real defense. You have to trust the people you give access to and hope that the repucussions of wrong doing keep them honest.

      --
      Platform advocacy is like choosing a favorite severely developmentally disabled child.
    3. Re:This has been a concern of mine for a while! by Anonymous Coward · · Score: 0

      Did you read the description? It's dirt simple to get around a firewall from the inside. It takes a little bit of luck on the outside. If there's much traffic at said address, then it's just a matter of time.

    4. Re:This has been a concern of mine for a while! by Anonymous Coward · · Score: 0

      Um, no. Repurcussions for wrong doing is one part, but not all of it. You don't run every program on your computer in ring 0, do you?

    5. Re:This has been a concern of mine for a while! by legirons · · Score: 1

      I have certain programs on my computer that can get past my firewall for various reasons. I often wonder about some of the biggest heists in the world, they're usually done by someone on the inside. If your network is locked down and something from the inside punches a hole in it how do you control any of that?

      I'll put specific names where you've only talked generally. At work, I have a brand new Windows XP Pro machine. It had a built-in firewall which is designed to prevent internet access (in or out) without specific permission from me, the user and Administrator of that computer.

      Some time later, I notice that InstallShield has successfully contacted the internet to update its list of programs. I checked the firewall again, and it was still set to "no internet access without user permission", and the exceptions were all turned off.

      More recently, I was using Windows update, and noticed that it never popped up a window to ask whether I should allow this new program to access the internet. Come to think of it, Internet Explorer itself should never have had permission to connect according to the firewall settings as displayed. And I bet that if I tried, Windows Media Player would be able to download content from the internet regardless of firewall settings.

      Insider job indeed! Sure, I could install a firewall from a company that I trust, and the problems would likely go away. But it rather reinforces the point about attacks being insider jobs (in this case, from programs)

    6. Re:This has been a concern of mine for a while! by Bishop · · Score: 1

      The majority of corporate data theft is by malicious insiders. The second most frequent cause is accidental (selling harddrive full of data). Malicious remote attacks are probably less then 10%. This is conjecture ofcourse. It is hard to get real numbers on malicious insiders and harder still to get numbers on accidental causes. These numbers don't include the popular worms and trojans which don't usually access coporate data.

    7. Re:This has been a concern of mine for a while! by Fulcrum+of+Evil · · Score: 1

      At work, I have a brand new Windows XP Pro machine. It had a built-in firewall which is designed to prevent internet access (in or out) without specific permission from me, the user and Administrator of that computer.

      You don't have a firewall, you have a program that attempts to implement a network policy on your PC. As you found out, it can be compromised.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    8. Re:This has been a concern of mine for a while! by legirons · · Score: 1

      "You don't have a firewall, you have a program that attempts to implement a network policy on your PC."

      I'm not sure what level of sarcasm to read into your comment, but it's labelled "Windows Firewall"...

    9. Re:This has been a concern of mine for a while! by Fulcrum+of+Evil · · Score: 1

      I'm not sure what level of sarcasm to read into your comment, but it's labelled "Windows Firewall"...

      Just because it says firewall, don't make it one. Firewalls come in a box and plug into your network, not install on your pc.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
  6. you won't hear it by ChipMonk · · Score: 2, Interesting

    At least in California, the data compromise notification law makes a specific exception for encrypted data (which is usually on backup tapes).

  7. Scare the holey moley? by slavemowgli · · Score: 2, Interesting

    It may be just me, but I honestly have to question whether someone can really be a "security guru" when they tell me that something should "scare the holey moley" out of me (or anyone, for that matter). That kind of sensationalism just leads to blind panics and failed attempts at security that actually makes thing less secure than they originally were.

    What's more, someone who actually knows something about security (whether it's computer security or not) should not have to resort to that kind of attention-whoring, anyway - so if someone still does, it also makes me wonder just how competent they really are.

    --
    quidquid latine dictum sit altum videtur.
    1. Re:Scare the holey moley? by pfharlock · · Score: 0

      I'm impressed that he used the words holey moley.

    2. Re:Scare the holey moley? by Jokkey · · Score: 2, Informative

      Actually, Ranum tends to speak out against blind panics and failed attempts at security (see point #6) and attention-whoring. While I understand your point, I'm not sure that it's fair to accuse him of doing what he speaks against just because he says that the state of a particular facet of computer security is scary.

    3. Re:Scare the holey moley? by phlamingo · · Score: 2, Insightful

      Apparently, "slavemowgli" believes that you cannot use humorous or colorful language if you want to be taken seriously.

      Calling attention to a common problem is hardly sensationalism. For it to be sensationalism, it would require exaggerations, and unsubstantiated claims. Something like, "Unencrypted databases make firewalls and other network protections completely irrelevant [overstatement], and will cost industry more in the next few years than all the phishing and spyware in the world [unsubstantiated]."

      That would be cheap sensationalism, not just colorful writing.

      --
      I had forgotten how much cooler teenagers look when they are smoking. Oh, wait ...
    4. Re:Scare the holey moley? by harrypelles · · Score: 0

      Thanks - had to go back and read that line again.

      I thought it was funny at first, but that was when I thought he said "Holy Money".

  8. Border security by Concern · · Score: 4, Insightful

    The larger point of database security measures notwithstanding, I think the days of the "dumb" application-blind firewall are over.

    Most companies that handle credit cards in modest amounts are required by their providers to use application-aware systems like Teros, which inspect every detail of every transaction across the border at the highest levels - providing a redundant check in the form of a policy controlling things like what cookies and querystring values can accompany a request for a particular path, and looking for things like cookies appearing that you didn't set, or form values being submitted that weren't in the HTML form you sent out...

    --
    Tired of Political Trolls? Opt Out!
    1. Re:Border security by arkanes · · Score: 1

      I put a great deal of blame on Microsoft for thier pushing of web services and SOAP as "firewall friendly", an incredibly stupid phrase that every security admin in the industry should have jumped all over them for. I place a good amount of blame on anal retentive and power tripped security admins who make asking for and implementing changes in firewall rules such a horrible pain that technologies that bypass those rules were recieved so well. I place an equal amount of blame on retarded managers who created the policies that let the admins to be so restrictive.

    2. Re:Border security by PPGMD · · Score: 1
      Agreed, I have been a big fan of application aware firewalls for a long time. There is no way that a simple firewall can protect a server and a network, when it's the applications that are allowed internet access that are getting compromised.

      An application firewall is the answer IMO, it's all about defense in depth.

    3. Re:Border security by yosemitesammy · · Score: 1

      You're HIGH if you think that companies handling credit card transactions are *required* to use an application level firewall... PCIDSS Section 1.1 requires a FIREWALL... and that's it... I've been through a PCIDSS audit and a stateful packet inspection firewall will pass just fine...

    4. Re:Border security by Concern · · Score: 1

      Eh? Nice link, but you didn't really read it I guess. I have seen PCI compliance many times which required truly comprehensive standards for IT security, and the use of a certified vendor like Teros, as well as a (quarterly) inspection by a certified inspection service and many other things. Picture an 80-item questionare where every answer has to be yes. And these are orgs with stellar fraud/CB stats.

      I don't know what level you are. You may have lesser requirements if you don't have that much volume...

      You might want to either do some reading in advance, or be a little more circumspect next time...

      --
      Tired of Political Trolls? Opt Out!
    5. Re:Border security by Anonymous Coward · · Score: 0

      Visa's requirements, in the real world, are applied in a reactionary manner - something bad happens, they will be used to punish you. Very little prevention occurs.

    6. Re:Border security by chunews · · Score: 1
      Unfortunately, those application firewalls often have to be "dumbed down" to urlscan or mod_security levels, based on the high support requirements which they require as a direct result of the huge increase in client side javascript that renders the rules engine mostly useless.

      To wit, I'd like to hear how any of this application level firewalls are protecting against Ajax? (Well, perhaps an XML firewall like the recently-bought-out Datapower) Or how to teach an application firewall that 1) the cookies may change as a result of client-side javascript, 2) hidden form values may change as a result of client-side javascript, or 3) completely new forms may be created and submitted as a result of client-side javascript.

      Application firewalls will continue to be a niche player - or deployed en masse as a stop gap measure to satisfy regulatory compliance requirements.

      What needs first and foremost is to integrate security into the SDLC. Until that happens, we will simply continue to change the type, model, and price of fancy bandaids.

    7. Re:Border security by Concern · · Score: 1

      You're absolutely right. Of course, if the providers are smart, they won't let people get away with crippling the system, but time will tell on that... Different places will take it more or less seriously. You never get a magic box you can just plug in and get security for free. It only works when everyone begins to think about the security systems from the get-go. In my experience there is often something to be gained across the board (not just in security) from the simple practice of formally declaring your expectations about traffic patterns (to the point where you could feed those rules into an appliance for enforcement).

      --
      Tired of Political Trolls? Opt Out!
    8. Re:Border security by yosemitesammy · · Score: 2, Informative

      Level 1 service provider ... recently passed PCIDSS v1.0 compliance ... auditor was Cybertrust, an approved auditor, and yes we have the 3rd party scans quarterly, and NO application aware firewall is required, either in the PCIDSS standard, OR the Audit Procedures.... I've got a ROC to prove it. Additionally some flawed items from PCIDSS are that certificates and password is sufficient for 2-factor authentication, that NAT is required as a security feature, and that *Compensating Controls* can be accepted by Visa instead of compliance with the PCIDSS standard ... IE: an additional firewall limiting access to cleartext database server rather than *actually* encrypting or rendering unreadable account # information in the database everywhere on disk or on tape.... see a big processor's example of a compensating control. I know for a *fact* that FDMS and VISA are current in violation of at least a portion of PCIDSS, as the routers and switches VISA deploys as part of a DEX package are not capable of SSH (v1 or v2) and neither is FDMS's equipment.

    9. Re:Border security by Anonymous Coward · · Score: 0

      Complete BS. They're quite proactive these days - not directly, of course, but through the service providers who do most of the work of enforcing the rules, and they will hit you on rates and fines if you don't comply... cut you off altogether if your stats aren't good, especially in certain market segments.

    10. Re:Border security by Concern · · Score: 1

      So, just a stateful firewall, eh? What did you do for sections 11.4 and 11.5?

      --
      Tired of Political Trolls? Opt Out!
    11. Re:Border security by yosemitesammy · · Score: 1

      11.4 == SPAN traffic from appropriate subnets to a box running Snort for a NIDS, IPTables on Linux hosts as HIDS, trapping to multiple syslog servers which email, page, SMS msg, etc 11.5 == Osiris doing the same sort of notifications

    12. Re:Border security by Concern · · Score: 1

      And section 6.5?

      --
      Tired of Political Trolls? Opt Out!
    13. Re:Border security by yosemitesammy · · Score: 1

      which part?
      application penetration testing and code review covers most of that just fine, with firewalled CVS config repository with strong user access authentication handling 6.5.10

    14. Re:Border security by yosemitesammy · · Score: 1

      which part?
      application penetration testing and code review covers most of that just fine, with firewalled CVS config repository with strong user access authentication handling 6.5.10

    15. Re:Border security by Concern · · Score: 1

      I think I get it now. I think many people see those sections and head straight for an appliance like Teros as a "conclusive" way to demonstrate compliance with a lot of 6.5 and a few other ones. But you're right, the AL firewall is not specifically required.

      Damn, I wish I could revise my post. :) Thanks, I learned something.

      --
      Tired of Political Trolls? Opt Out!
    16. Re:Border security by yosemitesammy · · Score: 1

      We have app proxy firewalls (Cyberguard TSP), but have found that actually *using* the proxy and app-aware firewall proxy features inbound breaks the application either due to the firewall/app proxy slamming the connections shut at some interval and Oracle not checking for connectivity before trying to use these closed connections.... using proxy features outbound breaks many websites out there on the net.... so the functionality is essentially wasted.
      Securing the application via *good* coding and code review is the only sustainable way to prevent application level attacks, IMHO.

    17. Re:Border security by Bishop · · Score: 1

      So called application firewalls are snake-oil. It is just another bad hack attempting to fix broken services. The only way an application firewall can work is if it is a feature complete version of the service that needs protecting. It is easier to fix the broken service.

    18. Re:Border security by Evil+Grinn · · Score: 1

      To wit, I'd like to hear how any of this application level firewalls are protecting against Ajax? (Well, perhaps an XML firewall like the recently-bought-out Datapower) Or how to teach an application firewall that 1) the cookies may change as a result of client-side javascript, 2) hidden form values may change as a result of client-side javascript, or 3) completely new forms may be created and submitted as a result of client-side javascript.

      You probably know this, but I can imagine there are people who would read the above to mean that your (1), (2), and (3) are new features of the "Ajax age". Just for the record, they are not!

    19. Re:Border security by chunews · · Score: 1
      Well stated and very true; client-side javascript has been a problem for a very long time.

      The one hope I have for Ajax is that it be so widely used and adopted as to properly separate middleware calls from presentation logic. This way, XML documents can be very tightly checked against a schema (and use an application firewall built for schema validation) and something simple like urlscan will suffice for keeping the presentation logic 'in check'.

    20. Re:Border security by Concern · · Score: 1

      Very true, although I think if you do the AL piece the way you're supposed to, where you're really forced to formally codify your assumptions about how your application interacts with clients (to the point where you can roll out a highly restrictive ruleset in production), that's actually something I'd call _part_ of good coding and code review. In no way a panacea, but the rigor, the redundancy, can be very beneficial.

      --
      Tired of Political Trolls? Opt Out!
    21. Re:Border security by Panaflex · · Score: 1

      Well, I admin'd a credit card server and web server farm that processed 1.5 Billion in transactions each year. There are no such requirements as it was well known that we would simply eat the cost of most fraud we didn't catch. The only actual requirement was that we gathered the customer information and properly followed the processor's format as we wrote and maintained our own interface software.

      --
      I said no... but I missed and it came out yes.
  9. Fortunately... by Anonymous Coward · · Score: 0

    All my moley is unholy!

  10. Openwall by Broadcatch · · Score: 1, Informative

    There's no doubt that running a secure OS and adhering to good practices (such as never do anything as root that doesn't have to be done by root) is increasingly important these days. One client I work with is running Openwall and it seems to be a good solution. There are many other security enhanced Linix possibilities, too, as well as OpenBSD - which I don't have direct experience with, but I hear it's pretty tight.

    At home, I just keep up-to-date with Debian and practice careful management, but for any corporate systems, I'd start with a secure OS.

    --

    The antidote for misuse of freedom of speech is more freedom of speech.
    -- Molly Ivins

    1. Re:Openwall by Zerbs · · Score: 1

      So what's wrong with using Active Directory security/Windows authentication if your database allows it? I don't see why only Linux and BSD systems are secure.

      --
      "22 astronauts were born in Ohio. What is it about your state that makes people want to flee the Earth?" Stephen Colbert
    2. Re:Openwall by Anonymous Coward · · Score: 0

      And this has what to do with with cryptographic databases or preventing theft of sensitive information?

  11. where is the "encrypting the monitor" book? by ranjix · · Score: 4, Funny

    since the apps are too simple and encryption is needed on all layers, I do expect a book like the one in the subject. ONLY the persons allowed (with special glasses) will be able to understand the warped rays of light coming from the monitor, for everybody else will look like BSOD...
    hey, you heard it here first

    --
    I had another sig before, but this one is better
    1. Re:where is the "encrypting the monitor" book? by drinkypoo · · Score: 1

      You can get something much like that now, in the form of displays which require the wearing of specially polarized glasses to view. I know you can get LCDs, dunno if they have over-screens for CRTs but I would assume they do. I don't think they have them "printed" with a BSOD yet, though :)

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:where is the "encrypting the monitor" book? by Anonymous Coward · · Score: 0

      Special glasses are far too easy to obtain. At work, we use special retinal implants, DNA-hardcoded, that explode after 3 incorrect viewing attempts. ;)

    3. Re:where is the "encrypting the monitor" book? by ranjix · · Score: 1

      damn! And I can't patent BSOD either, it's not new, original or ornamental ("Design Patent - new, original or ornamental design for an article of manufacture granted to protect the appearance rather than the function of a product.")

      --
      I had another sig before, but this one is better
    4. Re:where is the "encrypting the monitor" book? by dumpster_d · · Score: 1

      If you built those, our company would buy them.

      Even now, we are *required* to use LCDs, due to the fact that a CRT signal can be reproduced from outside the building.

  12. Punish Companies Monetarily by dotslashdot · · Score: 4, Insightful

    The only way to convince companies to spend the money to protect consumer data is to make it more expensive for the company not to implement basic safety features by punishing companies monetarily for loss of consumer data such as social security numbers and birth dates on a per consumer or record basis. Other consumer information such as name/telephone number is obviously not as critical and should not be subject to monetary fines/punishment. Every company that stores SS#s or Drivers License or Passport numbers would then have a financial motivation to do everything possible to protect critical consumer information or not use/store it at all. Given all the national security issues, this should be easy to justify since identity theft was identified by the Administration as a national security threat. As for protecting the company's own information, it should be pretty easy to show the cost of losing the data versus the cost of implementing a security feature. If you notify your boss in writing of the consequences, then if data is breached, he/she will be accountable.

    1. Re:Punish Companies Monetarily by shams42 · · Score: 1

      I wish I had mod points for you!

    2. Re:Punish Companies Monetarily by Anonymous Coward · · Score: 0

      While this is somewhat true, no company writes every single piece of software it uses. Should you hold a company responsible for it's vendors? Maybe if someone cuts corners, but are there any vendors that are totally trustworthy?

      What if, for instance, we have a good, dynamic, scalable data security setup, but there's an exploitable hole in Oracle? We didn't create it, didn't know about it, trusted the best of breed product, and it failed. Are we monetarily responsible for the loss of data? And is a rival company, who has the same database, not liable for anything just because they were fortunate enough not to get targeted by a hacker using the exploit?

      Now, what if that Oracle hole had a patch, but we didn't apply it. Ah--now you're liable. Wait--how long was the patch out? Do YOU apply all patches on day 1 they're out? What if the patch is only a week old? What if we're running it right now on the test system, to make sure it doesn't crash anything? Are we still liable?

      OK, other avenues. It's pretty darn hard to have a perfect data security even with good policies and applications. Let's say that we have certain customer data that's supposed to be available ONLY to members of our customer support staff. It's password protected, encrypted in the DB, only available from trusted IP's, and is even encrypted on our internal network. But someone downloaded a "kewl" screensaver that turns out to have a keylogger attached. Now someone can read whatever this person brings up (bad). They can even possibly forge this users' login credentials to get other things out of the DB and transmitting them to the hacker (worse). How do you defend against this? Blocking all installs of software by users, and probably cutting off access to the outside internet for employees seem like the obvious steps. How well do you suppose those will go over?

      Hey--let's also go over that "liability for lost data" concept. Seems like something of an invitation to corporate espianoge. Now, if I hack my rival's database and publish it anonymously on the internet, I can put him out of business! Fun times. Hey, Linux people--hack Microsoft's customer database, and you can cost The Evil Empire millions of dollars. And since it's clearly their negligence that got them that fine, they can't even claim you "cost" them those millions if you're caught...

      Here's my point--security precautions range from non-existant to very, very, very, very good. But never to perfect. There's no such thing as being unhackable. Where do you mandate companies stop? What's the level of "good faith" that a company should be required to demonstrate when we decide whether "man, the guys who broken into this network were GOOD!" vs. "these people are criminally negligent in their data security policy"?

    3. Re:Punish Companies Monetarily by gte910h · · Score: 1

      In general, you do not want to set a specific fine amount, otherwise buisinesses can do a fight club-esque calculation to figure out if something is worthwhile. (This is the whole point behind tort reform, companies want to do calculations like the recall calculation described in that movie).

      What you want is juries given the power to charge whatever they see fit, with the company being completely liable, then you'll see companies quaking in their boots, actually taking steps to insure security, with criminal penalties for not notifying of possible data loss.

                          --Michael

      --
      Want to see every step I took to start my company? http://www.rowdylabs.com/blogs/pitchtothegods
    4. Re:Punish Companies Monetarily by Funakoshi · · Score: 1

      "As for protecting the company's own information, it should be pretty easy to show the cost of losing the data versus the cost of implementing a security feature."

      It may be easy to show on paper, but it will still be a cost/benefit question, including the probability that something "bad" will happen. Seems like a job for the salespeople of the security products more than the internal employees. Some companies are also willing to take on the risk, in place of spending the money.

      "If you notify your boss in writing of the consequences, then if data is breached, he/she will be accountable."

      Depending on the organization, that may or may not matter. Paper trails do not always lead to accountability. Moreover, using the same logic, if you show he/she that you can end these costs by implementing the recommended tools and something "bad" DOES happen, you will be accountable, whether or not it is your fault.

    5. Re:Punish Companies Monetarily by Anonymous Coward · · Score: 1, Interesting
      There's no such thing as being unhackable. Where do you mandate companies stop? What's the level of "good faith" that a company should be required to demonstrate when we decide whether "man, the guys who broken into this network were GOOD!" vs. "these people are criminally negligent in their data security policy"?

      You just fine them. Negligence has nothing to do with it. If their oracle database has an exploit, too bad - they should have made oracle agree to pay in the event of a breach. Oracle won't do that? Hmmm. As the business folks are so happy to point out, the free market will find a solution.

      I suggested something similar a couple years ago after the big blackout. All the utilities were clamoring for handouts from the government to modernize the power grid. My solution would be to force them to pay X amount per hour to each customer that goes without power. People got all defensive... Oh, they'd go out of business and stuff like that. So what? Let them go bankrupt - someone will buy the pieces and spend a bit to make upgrades. Airlines want a bailout? F-them. Let them go under and sell the assets to competitors - air service will not suffer.

      If you want to play capitalism, you have to be willing to take a risk - its part of the game. If the downside is always protected you're cheating (the public). Same applies here. If you want customer data to be secure, you've got to have penalties for data loss - the market will figure out the solution. People always jump to the opposite end and say no one will play because they can't afford to. Duh! Just don't make the penalties astronomical, but do make them hurt a bit.

      No one is willing to use negative feedback on corporations though, so evolution on a larger (national?) scale will eventually take care of things.

    6. Re:Punish Companies Monetarily by ao_coder · · Score: 1

      Another way might be to come up with a better system- one of the issues that makes all this vulnerability so scary is that we have invested way too much value in bits of information like the social security number. How hard would it be to issue citizens a private key to go along with that public one? I've seen some insecure databases- especially back when every bad IIS web designer seemed to store their password in the global.asa- it isn't the risk of compromise on that one service that "scares the holey moley" out of me- it's that once a criminal compromises my privacy, the scope seems to be global and to some degree permanent. Does any country issue better primary keys to their citizens than the US social security number?

      --
      The best lack all convictions, while the worst Are full of passionate intensity. -Yeats, The Second Coming
    7. Re:Punish Companies Monetarily by Anonymous Coward · · Score: 0

      What's the rationale for obfuscating cost analysis for companies? If they're not
      concerned about the penalties, then the penalties are too low and should be
      increased.

  13. Battlestar Galactica solution by davidwr · · Score: 3, Interesting

    On the new Battlestar Galactica, the rule is you don't connect critical computers to other computers. This limits the damage the bad guys can do.

    There was that one episode....

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    1. Re:Battlestar Galactica solution by Anonymous Coward · · Score: 0

      This solution went haywire in one of the Hitchhiker's Guide books.

    2. Re:Battlestar Galactica solution by drinkypoo · · Score: 2, Informative

      Unfortunately, that doesn't work in the real world. What you have in the really real world is networks that aren't connected to other networks, or more frequently, internal networks connected to other internal networks via firewall. It's rare that a computer by itself is useful any more...

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    3. Re:Battlestar Galactica solution by Anonymous Coward · · Score: 0

      The scary part was how later on they had to use a Cylon's help to un-fsck said computer system because they broke that rule.

      That's kind of like hiring the author of the Melissa or SoBig virii to hunt down and kill a worm in your network. Its a sobering concept, one of proactive security, and a lesson I don't think enough companies out there will learn in time.

    4. Re:Battlestar Galactica solution by tsotha · · Score: 2, Informative

      Yes, and that's based in reality. Lots of DoD computers aren't networked. It's a pain to get the results you want from place to place (by some kind of storage media), but even if you were on the inside you'd have to be working on that project to get at the complete dataset.

  14. Network Security's Achiles' Heel by MOBE2001 · · Score: 2, Insightful

    The problem with data security on an open network is not the lack of adequate technology or know-how because current methods of securing computers do work. Otherwise, our electronic commerce systems would have collapsed years ago. The problem is that hackers look for and often find ways of getting around the security barriers by exploiting defects in the underlying software. A network's security is thus intimately tied to the reliability and robustness of the network's software. Security companies have no way of guaranteeing that the various software modules used in their systems are defect-free. This uncertainty is the Achilles' heel of the security industry. The solution is to move away from algorithmic software and adopt a non-algorithmic, signal-based, synchronous software model.

    1. Re:Network Security's Achiles' Heel by istartedi · · Score: 1

      The solution is to move away from algorithmic software and adopt a non-algorithmic, signal-based, synchronous software model.

      Will we get synergy with that?

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  15. This book is potentially dangerous by Secret+Rabbit · · Score: 5, Insightful
    The last line of defense? What's going to stop someone if they own the system? Poke poke poke, oh, looky lou, I've found a key.

    Point of fact, you don't implement crypto yourself. That is the most horrid mis take that anyone can make. Let the security professionals implement it, and just use it. They are far more paranoid that you are and are far better to do this specialised way of coding.

    Security is a feild in which you must have a good level of mastery of many different areas otherwise you are a liability. If you don't got that, then don't implement a system. Use one that someone else has written.

    IMO, this book will make too many people think that they are good enough to do what they can't do. I can only imagine how many insecure system will be developed because of it.

    1. Re:This book is potentially dangerous by ValentineMSmith · · Score: 1
      Ummmm.... I think you're missing the point. As I understand the reviews, both here and on Barnes and Noble's website, the author is not talking about implementing new cryptographic algorithms or processes. He is simply discussing their use in a database environment.

      It is entirely possible to, say, use the Blowfish algorithm to encrypt all of the data in a specific table without being an expert in cryptography.

      Unfortunately, the review didn't go into enough detail to say this for certain, but I expect that these concepts will enhance security, not hurt it.

      --
      Karma: Chameleon - mostly influenced by bad '80s New Wave music
    2. Re:This book is potentially dangerous by Torne · · Score: 1

      It's not just implementing new crypto algorithms that causes security failures; implementing new processes, new protocols, new ways of using the same crypto primitives you know and trust do it too.

      Using your example, it is indeed entirely possible to use Blowfish to encrypt all the data in a table. But, if you do it in a naieve way, the protection afforded by the (perfectly good choice of) primitive will be reduced or lost entirely.

      The GP poster was probably more worried about this kind of error. Read Bruce Schneier's "Secrets and Lies", or Ross Anderson's "Computer Security", for many, many examples of why implementing your own security system involving crypto is *very* hard and *does* require you to be an expert.

      If the database had, built in, a crypto system that was designed by an expert and which only required you to flip the right switches and chuck in a few keys to make it work, *that* would be far more likely to be secure than rolling your own methods.

    3. Re:This book is potentially dangerous by ValentineMSmith · · Score: 1
      Using your example, it is indeed entirely possible to use Blowfish to encrypt all the data in a table. But, if you do it in a naieve way, the protection afforded by the (perfectly good choice of) primitive will be reduced or lost entirely.

      I can see your point. However, the level of expertise required to implement security at this level doesn't rise to the level of expertise required to implement a completely new crytographic algorithm (while, to me, it looked like the original poster was implying that implementing even this level of security should only be done by crypto experts). Opinions may differ, but I think that this is within the scope of a book provided the reader of the book has some level of education as a programmer already.

      In my opinion, if you don't have some knowlege of security (and how to write secure code in your language of choice), you probably shouldn't be a (professional) programmer to begin with.

      --
      Karma: Chameleon - mostly influenced by bad '80s New Wave music
    4. Re:This book is potentially dangerous by Hiro+Antagonist · · Score: 1

      If you have knowledge of security, you know why this is a bad idea.

      If an application can access data on the backend, so can a thief who either breaks in through that application, or who manages to gain login access to the machine, because THE APPLICATION NEEDS THE CRYPTOGRAPHIC KEY. All the encryption in the world is useless if the key is known by Alice, Charlie, AND Bruce.

      The only valid use I can think of for encrypting information that goes into the database is a public key system. For example, let's say that I've got some type of system that bills customers using their credit cards. The front-end application doesn't need to know what those credit card numbers are, but needs a way of telling the back-end application (that does the billing and is otherwise separate) about those cards.

      Enter public key crypto. The front-end app has a key that can be used to encrypt, but not decrypt, the sensitive data, and the backend has the keys needed for both encryption and decryption. That way, the front end can write, but not read, and the back end, which is totally isolated from the front-end app, has full control.

      --

      --
      I Hit the Karma Cap, and All I Got Was This Lousy .sig.
    5. Re:This book is potentially dangerous by ValentineMSmith · · Score: 1
      You are correct. And I'll admit I was curious when I read the Barnes and Noble review that the the book concerns the use of private keys instead of public. I'll withhold judgement on that until I've read the book (it's the first book I've seen reviewed on /. that I've actually considered buying), but I'd be interested to see how the author plans on effectively securing the private keys to the various portions of the database.

      I'll still stand by my statement that it should be possible to present a technical solution in a book that is robust, secure, understandable, and usable by a professional-level developer, though.

      --
      Karma: Chameleon - mostly influenced by bad '80s New Wave music
    6. Re:This book is potentially dangerous by Anonymous Coward · · Score: 0

      There's an old adage: Encryption is easy, Key Management is bloody difficult.

      (Most encryption "systems" that use good algorithms are generally broken due to poor key management rather then a flaw in the actual encryption.)

    7. Re:This book is potentially dangerous by Secret+Rabbit · · Score: 1
      In my opinion, if you don't have some knowlege of security (and how to write secure code in your language of choice), you probably shouldn't be a (professional) programmer to begin with.
      This I agree with.

      But, at the same time, I know this to be far from reality. What will happen now, is that some piss poor programmer will read the book, assume they know what they are doing, and do very, very stupid things that make the encryption essentially useless.

      Case in point, look at all the misconfigured systems out there. How easy is it to read a man page and look on the net for something that says "Don't do X, or you'll get owned." There are tonnes of sites that do this for various applications/systems. Yet we still have a wildly insecure world.

      And this isn't as nearly as complicated as crytpo!

      Books like this will help a select few, but in the end will probably make things worse.

  16. How the hell is this informative. by Anonymous Coward · · Score: 0

    How the hell is this informative.

    A link to OpenBSD that says it is tight. Wow, I didn't even know what OpenBSD was before you posted that.

    A link to a google search on selinux (spelled wrong in the link at that)

    Wow, is that new, or maybe magic. I had no idea selinux existed. Must be new like OpenBSD.

    And for the openwall link. WTF, Open wall is much more then a product. It is like saying my client needed a network wifi solution and decided to go with Cisco. WHAT PRODUCT ASSHAT?

    That's all.

    The parent is overrated as fuck and should be modded down into oblivion.

    1. Re:How the hell is this informative. by MrPink2U · · Score: 1

      ...and you posted a/c so STFU, we don't want to hear your useless drivel.

  17. Holey moley! by BigZaphod · · Score: 1

    I've never been so scared by a slashdot story in my whole life! Help! What do I do? Where do I go for help?!? WHAT'S THAT SHADOW BEHIND MY MONITOR!! AGHHHHHRRGGHHH!@&73.23.....

  18. Crypto-Database? by osewa77 · · Score: 1

    Anyone who can access the code for your web application can read the decryption key for an encrypted database. So I am not sure that data encryption a very useful feature in relational databases.

    1. Re:Crypto-Database? by NineNine · · Score: 1

      Hint: There are such things as non-web based apps. More importantly, there any many different ways of getting to databases that have nothing to do with web applications.

  19. Live CD's better than layers of crap by Anonymous Coward · · Score: 1, Insightful

    With Knoppix it is almost stupid to connect a standard PC to the net. If you need a second PC you can now get notebooks for under $400. For most organizations I bet one of these PC's with Knoppix is cheaper than securing an employee's primary PC considering security software and administration. And is a whole lot more secure. Add a thumb drive with sever restrictions if some network crossover is required. Knoppix is very configurable if you need to make custom implementations.

  20. Secure customer processing by Sheetrock · · Score: 1
    The most fragile point in any computer-based security system is the point at which an attacker can interface with the system.

    With regard to databases, one means of preventing illicit data retrieval is to implement a one-way directional data filter. In a business setting, this can be achieved by removing the (server-side) TX wires from the Ethernet cable.

    --

    Try not. Do or do not, there is no try.
    -- Dr. Spock, stardate 2822-3.




    1. Re:Secure customer processing by Mad+Merlin · · Score: 0, Offtopic
      Grammer tip: 'Effect' is used as a noun. 'Affect' is used as a verb.

      s/Grammer/Grammar/;

    2. Re:Secure customer processing by Phreakiture · · Score: 0, Offtopic

      Sig says: Grammer tip: 'Effect' is used as a noun. 'Affect' is used as a verb.

      Spelling tip: Grammar is spelled grammar, not grammer.

      Grammar tip: From Merriam-Webster's dictionary: effect[2, transitive verb] 1. to cause to come into being. 2 a. to bring about often by surmounting obstacles : ACCOMPLISH <effect a settlement of a dispute> b : to put into operation <the duty of the legislature to effect the will of the citizens>

      You didn't do your homework.

      --
      www.wavefront-av.com
    3. Re:Secure customer processing by Jon_Hanson · · Score: 2, Interesting

      Even if data transfer is one way you still need the other way because of how TCP/IP works with acknowledgements and retransmit requests. Your idea of removing wires would break all network communication.

    4. Re:Secure customer processing by Sheetrock · · Score: 1
      If you use TCP/IP. But I was thinking UDP/IP. Barring that, IP is encapsulated in Ethernet frames, which offers another possibility for the intrepid.

      I do wonder how to figure out whether the data was written successfully, however.

      --

      Try not. Do or do not, there is no try.
      -- Dr. Spock, stardate 2822-3.




    5. Re:Secure customer processing by Lehk228 · · Score: 1

      doyou regularly use thermonuclear weapons to kill flies? configuring a firewll to prevent anything but very specific messages, ack, retransmit requests etc. would be much more sane and would allow you to have a consistant database

      --
      Snowden and Manning are heroes.
    6. Re:Secure customer processing by Anonymous Coward · · Score: 0

      This wouldn't work, for precisely that reason. If you want a reasonable guarantee that your data will be reliably transmitted, you need a two way conversation.

      You can very easily set up firewall rules on the database machine (using iptables/netfilter) which will restrict traffic to incoming transactions on the database port(s). If you are really paranoid, you can put a packet sniffer on a replica port for the databse server and look for any inappropriate traffic in case somehow someone compromises the database server thru the database port(s).

      As far as network security, this is not too bad (and not too costly or difficult to implement). In practice, I usually have port 23 allowed to my desktop also. Attention still needs to be paid to securing the database with proper client design, good database design and access policies etcetera.

    7. Re:Secure customer processing by iluvcapra · · Score: 1
      In a business setting, this can be achieved by removing the (server-side) TX wires from the Ethernet cable.

      Role playing is a good way to discuss this suggestion. I'll play the role of your ethernet switch, and you be the server...

      YOU: Here I am, server A! Ready for packets

      ME: (silence)

      YOU: Not the chatty type, ay! OK.

      ME: (silenece; then suddenly) OK, I've got a packet for machine A! Machine A's not on my list, which one of you is it?

      YOU: I'm right here!

      ME: I'm looking for machine A!

      YOU: I'M RIGHT HERE!!!

      ME: Hey, Network Bridge, you ever heard of this "Machine A"?

      YOU: HELLO! I'M RIGHT HERE!!

      ME: I can't seem to find machine A, so I'm gonna send this packet to everybody on the party-line. I hope none of you are listening ;)

      How ethernet works.

      --
      Don't blame me, I voted for Baltar.
    8. Re:Secure customer processing by Sheetrock · · Score: 1
      Well, that's if you hook it into a switch.

      My brief experience with the concept was a crossover patch cable modified to work in one direction. One interface wired directly to the other with the ability to use a packet sniffer on the receiver to see what's on the wire.

      Clearly the machine wouldn't respond to ARP probes, but quality routers permit the manual specification of ARP mapping entries (for example, 'arp -s' under Linux).

      Hypothetical situation: a Linux webserver with an external interface card to deal with the Internet (ignored here) and an internal interface card connected to transmit over unidirectional crossover patch cable directly to an interface card in the database server. Assuming 10.0.0.0/255.255.255.0 is unused, set the database server interface to 10.0.0.1/255.255.255.0 and the webserver interface to 10.0.0.2/255.255.255.0. Obtain the Ethernet hardware address and use 'arp -s' on the webserver to tie 10.0.0.1 to the Ethernet address of the database server.

      At this point, a UDP server application on the database server should be capable of receiving packets from the webserver over the internal interface. Assuming of course the Ethernet cards don't get confused about the lack of signal over the transmit wires to the webserver. The cards in the setup I saw didn't care, but if you're using this sort of system as a passive sniffer on a hub it is probable you will need to work around the hub detecting a bad connection to the card and ignoring it (and I presume the same for connection to a switch.)

      --

      Try not. Do or do not, there is no try.
      -- Dr. Spock, stardate 2822-3.




  21. Why it Doesn't get Done by Anonymous Coward · · Score: 3, Interesting

    Sorry, but it needn't be that hard to do, given the right tools; the author is really scaring off the troops fm even attempting it.

    You need to design against what's widely accepted as the most usual scenario, intrusion by an insider. Requirements shd include not less than the following:

    Protect against data visibility even in the worst case, a massive physical compromise of the entire database.

    Compromised access to any single record must not lead directly to compromised access to any other record.

    I did field-level encryption against these requirements at a major federal agency, and the result got blessed by the security troops there.

    What I've seen happen is that there's two different cultures working here: When you ask the application guys what they're doing re database security/encryption, they'll too often reply " It's a network problem, so go talk to those guys. " Ask the network guys what they're doing re the same thing, they'll too often reply " That's an application problem, so go talk to the application troops. "

    This hurdle needs to be cleared if there's any hope for progress.

    1. Re:Why it Doesn't get Done by Sanat · · Score: 1

      It's a network problem, so go talk to those guys. " Ask the network guys what they're doing re the same thing, they'll too often reply " That's an application problem, so go talk to the application troops.

      It is both... so ROT13 at each level.

      --
      And in the end, the love you take is equal to the love you make
  22. Now where did I leave my holey moley? by Anonymous Coward · · Score: 0

    I had it earlier ...I think. It seems to have just disappeared :( Suppose I had better get another.

    1. Re:Now where did I leave my holey moley? by Duhavid · · Score: 1

      I have it .

      $10,000.00 american, or you will never see it again!

      --
      emt 377 emt 4
  23. hmm... from a former comunist country? by ranjix · · Score: 1

    "punish the companies!!!", "take bill gates glasses and give'm to the poor!!!". well, not quite there but close. Still, besides the tone of the comment, I can see you believe that a 100% unbreachable security is possible. Kind of naive, would'n you say? Do you really believe that all the latest breaches happened because of the lack of "database cryptography"? If you don't know the answer, I'll give you a hint: no. The software apps are extremely complex. It's impossible to verify all the paths thru an application (the number is equal - no more, no less :-) - to infinity). So hold your horses, don't get too excited, back to earth

    --
    I had another sig before, but this one is better
    1. Re:hmm... from a former comunist country? by ichigo+2.0 · · Score: 1

      Do you really think corporations would care about the private information they store if they could lose them without consequence? I'm not a communist, but there is no doubt in my mind that if corporations would be allowed free reign, we'd lose even the rest of our freedom. And why do you think 100% security is impossible? If you make a program that's designed properly and is programmed properly, then it should be quite possible. The reason programs are riddled with security holes is because it's cheaper to patch them instead of making a solid piece of software.

    2. Re:hmm... from a former comunist country? by ranjix · · Score: 1

      in the first place, there are always consequences of loosing information. you don't have to regulate this, the customers will do it for you (at least in a normal market). take a look at the stock market and check how is it going for a company when something bad is happening. so no need for EXTRA punishment. in the second place, because programs are written by people, they'll contain mistakes. if they are automatically generated in any way, then the generator is written by people, so it'll contain mistakes. and so on. and, in the end, even presuming a program is perfect (no holes whatsoever), then you have the social engineering to create a breach in security. so, as I said, 100% security is not possible.

      --
      I had another sig before, but this one is better
    3. Re:hmm... from a former comunist country? by tchuladdiass · · Score: 1

      > I can see you believe that a 100% unbreachable security is possible.

      Well, I don't know of any bank vault or safe that is 100% unbreachable, but it doesn't stop banks from buying them. And their financial loss could be extreeme if the vault is breached.

    4. Re:hmm... from a former comunist country? by ichigo+2.0 · · Score: 1

      If you are saying that falling stock prices is punishment enough then you need to remember stock owner != company, the price of an individual stock has no meaning whatsoever to a company. If you mean "voting with your wallet" we have to remember that in a completely unregulated and free market, customers wouldn't even hear about privacy breaches. But I agree with you that it shouldn't be regulated, I think it should be criminalised. Security can be 100%, if social engineering is a problem, design around it. If a security system can be compromised by calling a secretary and telling a few lies, then it isn't a very good system in the first place. :)

    5. Re:hmm... from a former comunist country? by ranjix · · Score: 1

      well, usually managers and uppper levels OWN a lot of stocks in that company (so they'll be the first ones to pay the price - kind of, I admit that severance packages and all the clauses in the contracts make their fall a lot more pleasant, too pleasant).
      about designing around security engineering, I don't think is possible, we have a past with cold war and cia spending like crazy with doubtful results (spies and lack of intelligence galore). do you think a company can ever come close to that kind of investment? I don't.

      --
      I had another sig before, but this one is better
  24. App Developers Have Enough Security Problems... by Anonymous Coward · · Score: 0
    dealing with potentially hazardous incoming data without making them responsible for encrypting the database too. If indeed, "databases are the last line of defense", then let the other "lines of defense" handle the problem!

    Whatever happened to "division of labor", "specialization" and "modularization"?

    The poster sounds like a Microsoft ad:

    "Don't have enough to worry about in your apps?

    You need the just-released MDSEB (M$ Data Security and Encryption Blocks) now available in the latest Visual Studio 45.5 Beta update, 200MB downloadable right now [with included PPSRBMSM (Procto-Probe Scan and Report Back to Mother Ship Module)] Now!
    And be sure to sign up all developers for Introductory, Intermediate and Advanced 'Application Development with MDSEB' classes now available from your local M$ training centre."

    1. Re:App Developers Have Enough Security Problems... by Anonymous Coward · · Score: 0

      You oviously have no idea what you are talking about otherwise you would understand the concept of defense in depth.

    2. Re:App Developers Have Enough Security Problems... by Anonymous Coward · · Score: 0
      You oviously [sic] have no idea what you are talking about otherwise you would understand the concept of defense in depth.

      I practically invented the concept of "defense in depth" [AND I know how to spell, too].

      Years before you were a quiver in your fathers left nad, I insisted that merely having an encrypted corporate VPN and firewall were insufficient and that every system component would have to stand on it's own for security . IOW every system component was responsible for checking it's inputs. The result is a "layered defense".

      Those managers who took my advice never suffered a significant penetration and never a system-wide penetration; all those who did not listen were hacked 99 ways to Sunday.

      But involving the app developer in cryptography is going too far. Crypto should be transparent to the app and to the app developer. For example, maintaining the database in encrypted format is easy and transparent to the app developer and prevents loss of data if backups are stolen.

      In contrast, encrypti

  25. I don't get the point by Anonymous Coward · · Score: 0

    I really don't understand the point of encrypting your database.  A reasonably safe setup is this:

                    only http                      only http
      Internet <-> Firewall  <->   WebServer  <-> Firewall <->  Application server <-> DB
                                   or Reverse proxy

    You put a webserver in between two firewalls and allow only http over these.
    Next put your database behind the second firewall.

    A webserver is somthing like apache webserver.
    In the case of asp and iis you would use a reverse proxy.

    The application server is something like iis or tomcat.
    ODBC or jdbc is only spoken between app server and database.
    This means that the application server must have password and encryption keys.

    So I ask: how is encrypting the database going to help anything?

    If somebody can hack trough 2 firewalls and steel the database url, userid and password.  Then what is to keep him from steeling the encryption key???

    1. Re:I don't get the point by Kookus · · Score: 2, Interesting

      First you need to allow more then just http through the 2nd firewall since it needs database access...
      Second, firewalls really don't do that much for you. They stop things like blaster which attack an open port on the operating system, but let's fix the damn oeprating system to patch those holes, not just cover them up with a rug.
      You don't really have to "hack through" a firewall. The hack is you leaving any ports open. If I can get through http, that's all I need. The real protection should be that all incomming and outgoing traffic from http will not harm your system in any possible way.

      It looks like the main purpose of crypting your personal data in a database is so that people that have access to the database cannot read the information in plain text. If you're using Oracle, you can put permissions on each of the individual columns to mimic the same results crypting your database would produce. These people are really just worried about their data readers opening a sql client and just extracting information, kind of like how you're luggage goes through an airplane. We'd like to think that the workers there won't steal anything out of our luggage, but we sure as hell won't put our luggage through without a lock on it at least.
      Security to me is a huge deal, but beyond my application level security and the permissions I put on the data, most other things are out of my control. The solutions people propose do nothing but delay me in my work that I should be doing instead.
      I'd rather push all of this burden to the people that can really make the difference in this field. The manufacturer's of the software that run our systems (os) and the servers (apache/mysql/ms*/etc.), you make those secure, and we won't have to be this damn paranoid.

      Secure software is not impossible.

    2. Re:I don't get the point by Anonymous Coward · · Score: 0

      > Secure software is not impossible.

      Go ahead, write it then. Let us know how that goes ;-)

      In all seriousness, Bruce Schneier bought (and then sold us) that one, hook, line and sinker in Applied Cryptography. Then issued a retraction via Secrets and Lies.

      Given computing as is, we will not write secure software. We might write better software, (and I sure hope we do). We might have some exciting new paradigms that really help us (security as the foundation for OS design, language design, application design, etc.) but there always will be security problems - logic problems, interface failures, and, the weakest link of all: people.

      Meh.

    3. Re:I don't get the point by Anonymous Coward · · Score: 0

      Not having read Secrets and Lies yet, I'm curious--did Schneier claim that developing secure software is impossible, or just that we aren't going to do it because of the effort required?

  26. Hint: Quit putting your key in the code by xxxJonBoyxxx · · Score: 1

    Hint: Quit putting your key in the code

    That will be $200, thank you.

  27. Simple security solution by Urusai · · Score: 3, Insightful

    1) Use your firewall to block everything except port 80.
    2) Invent a generic TCP/IP tunneling protocol over HTTP (like SOAP); call it TP.
    3) Tunnel all your network traffic through TP.
    4) Problem solved!

    The beauty of this system is that you can run TP over TP as many times as you wish, adding as many layers of security as you feel necessary to keep you from shitting your pants over the big bad hackers who are pwnz0ring j00r data.

    1. Re:Simple security solution by ValentineMSmith · · Score: 1

      And it's called ssh.

      --
      Karma: Chameleon - mostly influenced by bad '80s New Wave music
  28. Master Key and Indexes by chill · · Score: 2, Insightful

    There must be a master key somewhere, so the database itself can see all the unencrypted data. If not, then indexes are meaningless as the fields to be indexed would be gibberish and not subject to any form of ordering. Database performance would tank and large systems would be unusable.

    This master key must then be highly guarded. If it is kept on the machine, it is subject to pillage just like any other compromised machine and the encryption does no good. If it isn't, then whenever the database service is restarted the key must be fetched.

    The current forms of database protections -- views & user rights -- limit the data available to the various users. These are usually not properly implemented and can provide a great deal of protection in shared databases.

      -Charles

    --
    Learning HOW to think is more important than learning WHAT to think.
    1. Re:Master Key and Indexes by borgboy · · Score: 1

      No. There mustn't. The field just insn't indexed in a meaningful way. Security is just another tradeoff.

      Which makes sense in terms of the popular example of a credit card number. For a credit card tender, you would probably store your internal transaction number, a point of service location identifier, date/time, transaction type (sale, refund, etc) credit card processor transaction reference number, and the credit card number.
      Why in this scenario does credit card number need to be indexed? You'll normally be searching by transaction refnum and sales date.
      By the way, when I think of encrypted database columns, I mean encrypted, on disk, permanent storage.

      IIARG (I AM a retail geek)

      --
      meh.
    2. Re:Master Key and Indexes by chill · · Score: 1

      Correct. I should have specified. If you're encrypting the ENTIRE database, then indexes become meaningless. If you're talking about just encrypting a column or two it becomes feasable.

      I work on a daily basis with databases that average 50-60 Gb in size. Not using indexes is not an option. Basic queries go from seconds to hours.

      The problem still remains, that SOMETHING needs to be able to read the data. That something then needs the decrypt key. If that something is then compromised, encryption is meaningless. For example, if Program X reads encrypted data as part of its job, and someone buffer-overflows Program X and obtains the rights of Program X, then they can get the key and get the encrypted data.

      Separation of duties would help. Program X can only WRITE PKI-encrypted data, but can't read it. Program Y can only READ it. Program Y isn't exposed to the world. Etc.

        -Charles

      --
      Learning HOW to think is more important than learning WHAT to think.
    3. Re:Master Key and Indexes by legirons · · Score: 1
      There must be a master key somewhere, so the database itself can see all the unencrypted data. If not, then indexes are meaningless as the fields to be indexed would be gibberish and not subject to any form of ordering.

      That's rather defeatist.
      • Who needs to order the table? Give them a token which allows them to maintain an index of the obscured IDs.
      • Who needs to handle references and JOINs? Let them use the hashed version of the ID.
      • Who needs to do statistics on the data (e.g. totals from a sales column)? Give then a column of numbers which can be mathematically translated into the total without revealing individual amounts.
      • Who needs to do a search? Give them the tokens that allow them to construct the correct query on obscured data.
      • Who needs to decrypt a record? Put it's key somewhere constructed so only they can determine it.
      Who needs to decrypt the entire database? Actually no-one.

      Most people already understand this well enough -- think of password files for example, where it's common practise to use hashes and salts, to remove sensitive data from view to a different location, etc.

      Thing is, people don't do that most of the time because it's time-consuming and complex and requires lots of thought, not because it's impossible.
    4. Re:Master Key and Indexes by Anonymous Coward · · Score: 0

      As some have already pointed-out, security must be approached from a holistic point of view.

      Some the things one can do are listed below.

      1) You need a firewall that stops intruders from gaining access to you network.
      2) You need to control access to the application(s) that access the database.
      3) if possible, delegate user authentication to a centralize service. The service should enforce proper password policies (aging, strength, ...). The beauty of this is that you can revoke a users' access to all systems that use the service, by revoking their right in one place only. Further, you don't need to implement, test and worry about this function, since it's taken care of for you. Assuming that the group responsible for the centralized service know what they are doing.
      4) Every user that accesses an application that connects to a database must have their own application username and password (ignore the password requirement if using a centralized authentication service). In addition, they should have a separate database username and password and they should never be told what database username and password are. This allows for proper auditing of user access without the need for a mapping function.
      5) The database credentials are created by the application but managed by a separate service (or you could combine both into one service). The application should gain access to the user's database credentials via a secure service that uses Certificates and PKI to authenticate the calling application and to encrypt the returned credentials. This service should not be installed on the same server/database instance that the application database is running on.
      6) Use database access controls to further limit user privileges, such as view, grants, stored procedures and roles. If these mechanisms can't meet all the security requirements, then implement a row and/or field level access control mechanism, such as Oracle Label Security.
      5) All servers used by the application should have maximum (read pain in the rear) security settings. All non-essential services turned-off and packages un-installed. Essential services must be secured. No FTP, Telnet, RSH, REXEC services. For these services user secured version such as SSH. No non-essential login account. Essential services that can't be secured, you be run in a root jail or other such restricted environment.
      7) Activate as much auditing functions on all servers and actually check the audit logs.
      8) No build tools installed on the production servers.
      9) No unauthorized devices are allowed to connect to the network.
      10) Traffic between the database and the application(s) needs to be encrypted. Protects against #9.
      11) If you are trying to secure a legacy monolithic application that is installed on the user's desktop, move the application to a terminal server and activate encryption between the terminal server and the client. A side benefit is the reduction in deployment effort and it provides a more stable environment for the application.
      12) Apply all critical security updates on all your machines. Don't forget to test these updates in a duplicate environment. You do have a duplicate environment? Right?
      13) No hot patching the production environment!
      14) Test, Test, Test
      15) There is no such thing as a Secure System or Application. They all have flaws, if you haven't found any, then you are not looking hard enough.
      16) Everyone is responsible for ensuring a more secure system, users, programmers, analysts, architects, and management.
      17) And my favorite, LOOSE COUPLING, STRONG COHESION!

    5. Re:Master Key and Indexes by ahmusch · · Score: 1

      Indexes are gibberish if and only if each row (tuple) uses a different initialization vector, or in Unix vernacular, salt.

      Oracle's Transparent Data Encryption by default uses a different initialization vector for each encrypted column and for each row. Oracle will not permit you to index columns with row-level initialization vectors, but it will permit you to use index columns with no row-level initialization vectors. This preserves the use of indexes for keyed reads, although not for range (or skip) scans.

      You can also specify the initialization vector for a given column, which means that you can have two identical cleartext values in different tables being stored with identical ciphertext, which means indexes can be used in join operations.

      There's definitely a tradeoff between usability and security -- after all, if all CC's use the same column-level IV and no row-level IV, then once you break the crypto on one row, you break the crypto on all rows.

      Incidentally, the book under review (which I hammered through last night at Borders) uses a design where the IVs are stored in line, in the table. Yeah -- everyone's gonna rewrite their app to store the attribute's IV. Sure they are.

    6. Re:Master Key and Indexes by borgboy · · Score: 1

      Absolutely.
      50-60GB is roughly the size of our sales OLTP. We only keep a 7 day window of sales there. The rest gets melted down for the data warehouse. Not using indices (in a general sense) is certainly not an option, but not encrypting your credit card number isnt one either.

      --
      meh.
  29. Firewalls irrelevant because of firewalls by mcrbids · · Score: 4, Insightful

    Firewalls have become largely irrelevant because they stop people from doing things, so people specifically design applications to easily pierce a firewall!

    Thus, the firewall becomes less and less relevant with time.

    Originally, the great designers of IP gave us any number of protocols, and 65,534 ports in each protocol. Different applications could use different ports, and these ports would identify what application you wanted to connect to. Port 80 was used for web traffic, Email uses port 25. This gives incredible room for growth and expansion, and was "a good design". (TM)

    Firewalls block all but ports 80, 25, 443, and maybe a few others. Thus, many applications are now built using ONLY one of these ports!

    So now, we have the dog, the kitchen sink, Instant Messaging, RSS, XML/RPC, and god knows what else tunnelled over port 80. Dude, Like where's my firewall?

    So, push comes to shove, there are no real shortcuts without a long term price.

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
    1. Re:Firewalls irrelevant because of firewalls by rherbert · · Score: 1

      I have yet to meet the firewall that I couldn't pierce with SSH over stunnel, with a little extra work if it's a proxy.

    2. Re:Firewalls irrelevant because of firewalls by Kenja · · Score: 1

      Get a good firewall. Use statefull packet checking and tell it to enforce rules that limit whats able to run on a given port (so only HTTP over port 80 etc). Block outgoing connections from unknown ports. Hey, presto your secure. The problem is not the firewalls, its that people dont want to secure their networks becuase it limits what they can use them for.

      --

      "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    3. Re:Firewalls irrelevant because of firewalls by palad1 · · Score: 1

      Actually most of my traffic is routed through port 443 of a machine whose ssh daemon took apache-ssl's place... Praised be putty's awesome http tunneling abilities :p

    4. Re:Firewalls irrelevant because of firewalls by WoTG · · Score: 2, Informative

      But that's the point. Almost anything can be encapsulated within proper HTTP packets over port 80 (for example). In fact, there are standards to do just that, such as SOAP. These will pass a statefull inspection because they are proper packets. You need something beyond statefull inspection, you need to be able to magically tell what is a "good" or "safe" http connection from a "bad" http connection.

    5. Re:Firewalls irrelevant because of firewalls by freebeer · · Score: 1
      You need something beyond statefull inspection, you need to be able to magically tell what is a "good" or "safe" http connection from a "bad" http connection.
      Hey, isn't this as easy as blocking packets that have the evil bit set?
    6. Re:Firewalls irrelevant because of firewalls by asdfghjklqwertyuiop · · Score: 1

      Stateful packet filtering has nothing to do with the application layer... a fireall that is stateful alone can't ensure that only HTTP runs on port 80.

      And block outgoing connections from unknown ports? That isn't going to accomplish anything. Source ports are usually allocated dynamically.

    7. Re:Firewalls irrelevant because of firewalls by mcrbids · · Score: 1

      Insightful? The parent comment really has no idea what a firewall is or what it's used for, nor how many different application ports are actually allocated and used in /etc/services.

      Really?

      [php@jane ~]$ wc -l /etc/services
      580 /etc/services

      Wouldn't that would be, uh, 580?

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
  30. Translucent Databases by faqmaster · · Score: 1

    Another excellent resource on this theme is Translucent Databases by Peter Wayner.

    --
    Are you...Are you some kind of genius?
    No, ma'am, I'm just a regular Slashdot reader.
    1. Re:Translucent Databases by nicolaiplum · · Score: 1

      Yes, it's excellent.
      The fundamental idea is not to reveal information even to a database administrator, whether the DBA-empowered entity is legit or not.

      --
      "For a successful technology, reality must take precedence over public relations, for Nature cannot be fooled"
  31. Having worked on such a problem... by Anonymous Coward · · Score: 0

    ...and failed at it, I can attest that this indeed is a real problem which isn't solved practically - yet. Means to solve it in a reasonable manner do exist but are very limited and carry a significant risk especially when one is dealing with an existing database measuring in tera bytes and already running at near full capacity. A major retalier in the US was audited and they found severe security flaws in their online system. Majority of it was to do with how the sensitive data such as Credit card and SS numbers were stored - plain text, in a non access controlled database! DBAs came and went and they could look at the credit card data and SSN numbers at their will which was the primary concern. We worked out a near fool proof cryptography mechanism on paper but were never able to clarify to them how would we deal with the reduced database performance without investing an additional cent worth on hardware!

  32. Unix Shell Scripts by Hoi+Polloi · · Score: 1

    Unix scripts always take the cake. They have login/pw hardcoded into them to perform automated admin tasks. Then of course they get backed up, printed out, shared, etc. A nice big security leak.

    --
    It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
    1. Re:Unix Shell Scripts by Anonymous Coward · · Score: 0

      The solution is a shell script compiler. Mark the compiled executable with only the execute bit so that the file is only executable, not readable by anyone else. You can even have the original shell version installed alongside the binary with the usernames and passwords removed.

  33. Will the database finish what it begins? by fossa · · Score: 1

    "I won't fail you. I'm not afraid."

    "You will be. You will be."

  34. Database Security by queenb**ch · · Score: 2, Informative

    The fact is that most database engines (the entire database application) come with a fairly good security model that almost never gets implemented. There is typically very little done to most databases in the way of restricting user accounts to specific databases (not instances of the engine), tables, rows, columns, etc. One of the biggest lessons in this ought to come from the sheer number of SQL worms out there that look for instaces that don't have a SQL admin password set - DUH! The fact that these are still being issued means that DBA's still have not wised up enough to even set the password. If your security model is so lax that you can't be bothered to either set a password or change the factory default, you're not going to be concerned with minor details like patching your operating system and application, doing any kind of hardening, or setting appropriate access permissions.

    The fact of the matter is that until more mandatory disclosure laws are passed companies will simply choose to ignore the simple basic things they can do to secure a database. Security to many (PHB) managers is a widget of some kind that they can buy and plug in to their network. This writer ignores a very simple flaw in his logic. Typcially, one compromises the database to get the box. If I own the box, encrypting the contents of the datbase won't help you any. It's going to have to be encrypted in such a way that it can be decrypted for use, unless you plan on turning all your data into MD5 hashes (evil grin).

    Given the assumption that you want to be able to decrypt your data, you'll have to have the means to do so either stored on that box or on the receiving box, which is also likely on your network. If it's stored on that box, guess what, I've got access to it since UR ()WN3D. If it's another box, hey, I got this one so I can see what this one answers requests from and then I know what I need to ()WN next. Since your security on box was obviously lax enough to let me in, getting the next box down the line won't be any harder.

    Mind you that all this assuming that I don't fire up the Beowulf cluster and just crack your encryption the hard way.

    2 cents,

    Queen B

    --
    HDGary secures my bank :/
    1. Re:Database Security by peacefinder · · Score: 1

      "Typcially, one compromises the database to get the box. If I own the box, encrypting the contents of the datbase won't help you any."

      That goes straight to the heart of the matter, doesn't it?

      You scare me, but in a good way. :-) Thanks for the insight.

      --
      With reasonable men I will reason; with humane men I will plead; but to tyrants I will give no quarter. -- William Lloyd
  35. Doubly hard for Databases by einhverfr · · Score: 5, Interesting

    You can't just encrypt your data and share keys. If you do, then the compromise of a key provides access to that data. If someone hacks into your network, maybe that key will be found somewhere on a system that they compromise. Then, they can actually evesdrop on the database connections and pull data as it is being sent across the wire without authenticating.

    A better solution (and one that PostgreSQL uses) is to use SSL to secure the connection and thus encrypt the traffic to and from the server. Yes, if you compromise the database server, you get the data anyway, but in the other approach, if you compromise the key management server, you might get far more than the data. Note that PostgreSQL also supports client-side certificates which, while not perfect, provide an added layer of security (cient-side SSL is a host authentication mechanism, not a user authentication mechanism so normal login requirements still apply-- basically now you have 2-factor authentication).

    The second vital area is that of access control. Encrypting your data doesn't do you any good if you don't adequately lock down access. Shared database accounts? No. Use one account per *user* and use groups/roles for access control.

    Finally, encrypting some data in the database might be required by some applications (for example, if you store credit card transactions in your database so you can later reverse a charge, the PCI-DSS requires that the number is encrypted in storage). But encrypting most data will simply prevent your relational model from working properly.

    --

    LedgerSMB: Open source Accounting/ERP
    1. Re:Doubly hard for Databases by Rodness · · Score: 2, Informative

      I disagree. SSL is only useful for protecting data in transit, where the data is only valuable in transit. Too many companies make the mistake that if data is protected while on the network, the databases don't matter. Then malicious intruders who hack in past the firewall have unfettered access to clear data.

      Don't misunderstand me, SSL *IS* a useful part of a secure design, but it's only a part and is in no way a security solution in and of itself.

      A more optimal solution is one which encrypts sensitive portions of the database. XML-Encryption and XML-Signature are good examples of how to represent data with sensitive bits encrypted and/or signed. It's the data in the database that's important, not the connections to the database, so it's the data which should be secured at all costs.

      Using X509 certificates, data can be encrypted via a session key, which can then in turn be encrypted with the various certificates of people who require access to that data. A private key passphrase is then required to gain access to the private key, which gains access to the session key, which gains access to the data. Further measures can be taken such as key separation, where a certain number of private key fragments (ie the owners of those fragments) are required to recover the private key to gain access to the data.

      Furthermore, if the database is encrypted then an intruder can't gain access. I completely agree with the statement that the database is the last line of defense, and should therefore be Done Right(TM).

      My work revolves primarily around network security, and even in my own company I've watched divisions of people design applications with the intent of tacking security on later. Encryption is NOT a panacea, digital signatures are NOT a panacea. Intelligent key management infrastructure is difficult to do right, but investing the time and effort up front leads to the ability to easily leverage it and reap its benefits in many different ways down the road. Authentication, authorization, key escrow and recovery, nonrepudiation, and so forth. In addition to key exchange for sending encrypted data.

      The people that stand up and shout about the evils of shared encryption keys have a point, shared keys are bad, but key management has evolved to the point where it's becoming useful in the real world. I've written a research paper on the subject (http://www.dodccrp.org/events/2005/10th/CD/papers /081.pdf), in which the concept of secured data is discussed in depth. Anyone interested in discussing it further is welcome to email me (email address is in the paper) or to directly message me through slashdot.

      -Rod

    2. Re:Doubly hard for Databases by einhverfr · · Score: 2, Informative

      Note that I stated in my post that certain data might need to be encrypted. The example I used was the credit card number as stated in the PCI-DSS.

      In general, mixing relational databases and encryption opens up more problems than it solves. In many cases these can be solved (i.e. one hopes that the credit card number is not being used as a key ;-)) but this is not perfect. So my advice is still to use backend encryption *sparingly* because it breaks the majority of your backend features. I.e. you can't do proper reporting if the backend can't process the data. And if it is encrypted either the keys are accessible to an attacker or the backend functions are limited to data retrieval and your application will be required to do its own reporting (application-level views, for example).

      --

      LedgerSMB: Open source Accounting/ERP
    3. Re:Doubly hard for Databases by legirons · · Score: 1

      The obvious (but perhaps offtopic) thing missing from that list is what some people call "Translucent databases", i.e. a database which is secure against someone with root access to it.

      In the simplest case, that means not storing information that isn't required; what the database doesn't know it can't reveal. e.g. why did the SpreadFirefox.com crack reveal phone numbers? Why are universities' computers haemmoraging SSN's and dates of birth? Just don't store them unless they're specifically required.

      For other things, you might need a unique identifier rather than a name, SSN, etc., so create one instead of using the actual data. e.g. giving the webstats department a database with a random identifier instead of username in the tables.

      If you design your application with these principles in from the start (and I've taken this example from Peter Wayner's book), you can do things like hashing the ID fields with a salt, so that you can reference them, and search on them, but unless you know the salt, you can't look-up an individual item and know what it means.

      Then there's data which will only ever be accessed or changed by the user themselves, so why not encrypt it with their password (which isn't stored in the database either) -- it might be inconvenient not being able to "just go in and fix stuff" if the user forgets their password, but sometimes it's worth it for when the database gets cracked and you can say for sure that no information was revealed.

      Fake rows of information marked with tokens that require special knowledge to spot. Databases split between buildings. Values stored that require a certain number of users' collaboration to decode. Quantising data (e.g. access times in logs) so that you know approximately what happened when, but the bad guys can't search for a particular transaction by its timestamp -- There's plenty of security you can add to a database, even after you've installed the firewall and set a root password...

    4. Re:Doubly hard for Databases by einhverfr · · Score: 2, Insightful


      Then there's data which will only ever be accessed or changed by the user themselves, so why not encrypt it with their password (which isn't stored in the database either) -- it might be inconvenient not being able to "just go in and fix stuff" if the user forgets their password, but sometimes it's worth it for when the database gets cracked and you can say for sure that no information was revealed.


      These approaches only work when used sparingly and only for information that doesn't need to be presented differently by the backend (i.e. for reporting). All a translucent database is, is a data storage engine. It is not and will never be practicle on an enterprise, production RDBMS for reasons that RDBMS's do plenty of intelligence things that cannot be done if you cannot access the data.

      Translucent databases are fine as far as they go, but if you are going to do that, why use an RDBMS anyway? The relational model really breaks down when you start trying to make the data inaccessible to the backend, and as such an RDBMS becomes nothing more than a standard interface for accessing rows that could just as easily be stored/accessed using an OODB.

      Again, some data may need to be encrypted. But this needs to be a last resort rather than a first impulse and used as sparingly as possible to guarantee the required level of security.

      --

      LedgerSMB: Open source Accounting/ERP
  36. Database encryption hasn't been important... by ahmusch · · Score: 5, Informative

    ... but it sure is now, and here's two giant reasons why:

    HIPAA
    PCIDSS

    Both specify, more or less, that sensitive information must be encrypted within the database. That means the data at rest on disk must be encrypted. Encrypting customer-sensitive information in the database will prevent exposure of customer sensitive information from:

    Disk-scraping attacks (such as if the storage rep who replaces a failed drive in the SAN is ethically challenged)
    Backup attacks (where a complete database backup can be restored and hacked)

    What doesn't it save you from?
    Users who have rights they don't need looking at data they don't need.
    Users who don't need access to the system but have it anyway.
    Poor security standards (not changing default passwords, insufficient password strength, etc).
    The DBA, who can always log in and see whatever the heck he wants(I almost said he or she, but who am I kidding).
    The SysAdmin, who can become the DBA, and can scrape the disks himself.

    What are the costs of encryption?
    1. It will cost you CPU cycles. (Don't even think about sending all the crypto calls over the wire to a hardware module -- it'll cut application througput in half).
    2. You won't be able to have queries like "Select name from patients where ssn between '5030000000' and '503999999'" use indexes, as the ordering of crypto is gone forever.

    What's being done about this?
    Enterprise vendors are busy rolling out encryption solutions (the other security holes already have support around them, but often aren't implemented in applications.) DB2 lets you encrypt the file system, or tables, or values within tables.

    Oracle lets you encrypt columns within tables with AES128, AES192, AES256, or 3DES. (You can also set it up so that the same value in 2 columns has the same ciphertext, which is a good thing.)

    SQL Server's got... something, but I don't support it, so I don't care.

    (PostgreSQL and MySQL users, I left you out on purpose. I said enterprise vendors, and I meant it.)

    1. Re:Database encryption hasn't been important... by yosemitesammy · · Score: 1

      What does it NOT save you from?
      someone sniffing the traffic as it crosses the network via SPAN session on a switch, or tcpdump from a unix-based firewall (ie: Cyberguard or Secure Computing)
      In-flight data encryption, even internally on the private network is needed, in addition to at-rest data encryption.

    2. Re:Database encryption hasn't been important... by caluml · · Score: 1
      Oracle lets you encrypt columns within tables with AES128, AES192, AES256, or 3DES.

      psql=> update table set column = encrypt(column, 'password', 'aes'); (PostgreSQL and MySQL users, I left you out on purpose. I said enterprise vendors, and I meant it.)

      Well, both PG and MySQL can do this. Don't leave them out.

    3. Re:Database encryption hasn't been important... by Zamfir · · Score: 2, Insightful
      Both specify, more or less, that sensitive information must be encrypted within the database. That means the data at rest on disk must be encrypted.
      no, HIPAA most certainly does not specificy that sensitive data within a database must be encrypted. such a very, very strict interpretation is something vendors looking to make a dime off of HIPAA would make you believe. if this was really true, you really would not be able to do data warehousing and decision support (which happens to be my meal ticket) in the healthcare market without rolling your own. NONE of the big insurers do this. by the way, you cannot specify something "more or less."
    4. Re:Database encryption hasn't been important... by Anonymous Coward · · Score: 0

      In most of the environments I have been in, the connection from the database to the middleware server is probably one of the least vulnerable connections. Any reasonably secure environment will have the servers physically secured, with access limited to data center staff. In almost all cases, anyone who can get away with plugging into the config port of a swich (or anyone who could find the right switch) will know enough about the systems to directly compromise one of the servers.

      Again, this is assuming a physically secure datacenter with securely configured network hardware and physically isolated networks for the internal servers.

    5. Re:Database encryption hasn't been important... by tsotha · · Score: 1
      The DBA, who can always log in and see whatever the heck he wants(I almost said he or she, but who am I kidding).

      This is one area where I think you're probably off base. There are lots of female DBAs out there, and some of them are quite good. I would say about half the DBAs I've known in my career have been women.

    6. Re:Database encryption hasn't been important... by ahmusch · · Score: 1

      Yeah -- but key management is the hard part.

      Which you apparently don't know yet.

      With Oracle, neither the application nor end user need know the specific value of the encryption key. Oracle's been able to do that using DBMS_OBFUSCATION_TOOLKIT for several releases now. However, using statements like yours above means you can not manage or rotate keys easily. If you can't do that, you don't have an encryption solution, you have a disaster in waiting.

      Further, you're relying on application calls to the DBMS to do the encryption -- which assumes your app is the one and only app to get data into or out of the database.

      Which is not a practical assumption in the real world.

    7. Re:Database encryption hasn't been important... by juergen · · Score: 2, Interesting

      First, where does Oracle store that magical key? Somewhere OBFUSCATED? We all know about security by obscurity right?

      Than, PostgreSQL implements stored procedures and triggers which makes it easy to automate encrypting of columns too, or do any transformation on reading/writing from your records automatically. (Yes, function based indices and other goodies too.)

      Quite likely someone already wrote something like this, and maybe it is even in your contrib/ directory. But it sure is more sensibly named than DBMS_OBFUSCATION_TOOLKIT.

      Last, I bet Postgres supports more languages for programming embedded procedures in than either Oracle or DB2.

    8. Re:Database encryption hasn't been important... by ahmusch · · Score: 1

      The key is stored in a password protected Oracle Wallet, which can either be an encrypted file or in an HSM.

      Stored procedures and triggers, ah, so very performant. And completely bulletproof. Unless, of course, someone disables a trigger or doesn't use the stored procedure to perform DML.

      Also, if your keys are embedded in your code (server or client), how do you rotate them? Oh, you're using public/private keys? Well, have fun with bad crypto performance.

      Oracle rather sensibly renamed DBMS_OBFUSCATION_TOOLKIT to DBMS_CRYPTO in 10g -- don't blame them for using a stupid name back in... 1999, was it?

      If you're thinking you can code procedural encryption that is in any way faster or more robust than declarative encryption, you're not thinking clearly. Hell, if you think you're that good of a coder, why bother using declarative RI or constraints? Handle all those in stored procs and triggers as well.

      Lastly, having more languages does not a better system make -- having more languages means... having more languages. Oracle natively supports C, COBOL, and Java as external languages, and that's probably sufficient unto the day.

    9. Re:Database encryption hasn't been important... by ahmusch · · Score: 1

      No argument. However, in SAT-ese:

      Packet sniffing : database file scraping :: panning for gold : strip mining
      or
      Packet sniffing : stealing a backup set :: robbing a liquor store : robbing a bank

      Yes, you can steal data. However, you can only steal the data that passes over the network. If you scrap the files or steal a backup, you get all of the data.

    10. Re:Database encryption hasn't been important... by peacefinder · · Score: 1

      Yeah, I thought pretty much the same thing. There's a lot of money to be made by making HIPAA sound big, scary, and hard. But HIPAA security is hard only inasmuch as security in general is hard. The technical safeguards are dead easy for anyone who pays attention to computer security. (The auditing requirements, now those are a pain.)

      The grandparent poster, while he apparently knows a good bit about Oracle, seems to view HIPAA from vendor sales perspective, not a covered entity perspective. I'd guess he's listened to his own company's sales staff with insufficient skepticism.

      Remember, kids: if a salesman says their product is required by HIPAA or is HIPAA compliant, odds are that they're wrong.

      --
      With reasonable men I will reason; with humane men I will plead; but to tyrants I will give no quarter. -- William Lloyd
    11. Re:Database encryption hasn't been important... by ahmusch · · Score: 1

      Actually, I was projecting (read: guessing) HIPAA requirements were every bit as stringent as PCIDSS (which I've do understand). I work in the payment card industry, not the healthcare industry.

      Here's what PCIDSS boils down to from a database perspective:

      Thou shalt not store Track2 (magnetic stripe) or CVV (card verification value) outside of the authorization system.

      Thou shalt encrypt customer sensitive information, at a minimum, credit card/account numbers.

      To further comply with Gramm-Leach-Bliley and California... 1950, I think, you better also encrypt information which might be of interest to identity theives, including:

      Social Security Numbers / Tax ID numbers
      Drivers License Numbers

      I don't believe there's a defensible requirement to encrypt customer name/address listings, as those are more or less public domain.

      I am somewhat concerned if HIPAA requirements are not more stringent than PCIDSS... but that's a different issue.

    12. Re:Database encryption hasn't been important... by peacefinder · · Score: 1

      I don't know beans about PCIDSS. (Not even sure what it is.) But the HIPAA rule requires a broad, basic approach to security. It's much more about policies, procedures, and training than it is about technical measures.

      It's actually very light on technical implementation details. This is bad in that covered entities are kind of left to fend for themselves in determining which technical measures are appropriate, but good in that the regulation is basically immune to changes in technology. Covered entities are responsible for assessing the threats, picking appropriate countermeasures and changing with the times... which is as it should be, IMHO.

      You may be right to worry about the lack of specific technical requirements, but I can flat guarantee that your medical records are far, far safer now that HIPAA is in force than they were before. HIPAA may prove insufficient, but it's a hell of a good start.

      --
      With reasonable men I will reason; with humane men I will plead; but to tyrants I will give no quarter. -- William Lloyd
    13. Re:Database encryption hasn't been important... by ahmusch · · Score: 1

      PCIDSS -- Payment Card Industry Data Security Standard.

      http://usa.visa.com/download/business/accepting_vi sa/ops_risk_management/cisp_PCI_Data_Security_Stan dard.pdf

      If you are a processor of Visa and/or MasterCard transactions (not a merchant, but a financial institution or payment processor) then it applies. It's got differing levels of compliance required depending on the volume of transactions processed -- a small processor has a lower bar than, say, First Data Corporation, one of the (if not the) largest payment processor.

      It's similarly light on the implementation details -- which means there's plenty of good money to be made by consulting/auditing firms.

    14. Re:Database encryption hasn't been important... by juergen · · Score: 1

      So the Oracle Password Wallet is completely magical and does not suffer from the drawbacks you wrote about above.

      I never suggested embedding passwords into the code directly, but of course stored procedures can retrieve the passwords by whatever means neccessary (from a password wallet if neccessary).

      I wonder how you can purely declarative instead of precedural crypto. Surely, somewhere some code has to actively do it. And I did not suggesst you code the crypto routines yourself, of course stored procedures would only be thin glue code to some (open, of your choice!) crypto library and password managing mechanism. After having those SPs, crypto would be solely declariative from the point of the table designer's view too.

      Lastly, you seem to forget that Orcale's stored procedure performance applies to Postgres too, or you have not seen smart SP programmers yet. I recommend to use extended types so PG knows how to build indices and smart queries for your new (encrypted) column types. (Never mind you could hack the postgres source if brave enough, but that would be overkill and stupid imho).

      Jürgen

    15. Re:Database encryption hasn't been important... by ahmusch · · Score: 1
      It's magical from the perspective that unless one provides the database encryption key to the system, one can't read cleartext from encryption columns/tables, because the database won't let you.

      You also can't update, insert, or delete from those table either. I'd say they're read only, but it's more like they're "look-at" only, because you can't read them.

      The problems I have with stored procs are manifold:

      1. Stored procs are not always used to manipulate or select data. For example, if I have to "fix" data from a bad program run, I know I'm lots more inclined to run straight SQL which does what I tell it too -- because SQL is a declarative language, not a procedural one.

      2. So, what if I don't use your stored proc? Oh, you'll use triggers? Triggers can be disabled, and some applications/APIs (such as Oracle's direct-path option within SQL*Loader) never passes through the SQL interface, so triggers, even if enabled, do not get called. Congratulations -- your encryption routine never got called.

      Telling Oracle to encrypt my data like this:
      ALTER TABLE SECRET_STUFF MODIFY CC_NUMBER ENCRYPT USING '3DES';
      is declarative encryption, just as:
      ALTER TABLE SECRET_STUFF ADD CONSTRAINT SS_FK FOREIGN KEY (CHILD_COL) REFERENCES SECRET_PARENT (PARENT_COL)
      is declarative integrity. The logic to perform those operations is built into the kernel and is 99.44% sure to have been optimized within an inch of its life.

      Declarative integrity will always be as or more performant because it will not require more SQL calls to verify the integrity than equivalent procedural code. The integrity checks (SELECT for DELETE RESTRICT, UPDATE for CASCADE UPDATE SET NULL, DELETE for CASACADE DELETE) are in the kernel, not requiring a full client SQL call. It's got a shorter round trip for each deleted row, so it will be no slower, and may be faster.

      Declarative joins will always be as or more performant than procedural joins because the database can perform your join in fewer calls, and it might be able to find a better access plan than you thought of when coding.

      Quit treating SQL and RDBMS's as access layers -- it's not dbFAT, it's not dbISAM. It's not even some big VMRAM area for writing HashMaps and Arrays. SQL is a language -- a language with warts, to be sure -- but it's the best available tool for working with the database. Procedural solutions to generally indicate either a lack of understanding of SQL or a lack of features in the database.
    16. Re:Database encryption hasn't been important... by juergen · · Score: 1

      1. Your comments are very Oracle specific. You only show why stored procedures/triggers are bad with Oracle, not in principle. And I believe the right to disable triggers can be managed in Oracle too, just to name one flaw.

      2. I also suggested using Postgres' extensible type mechanism to create a new field type that implements an encrypted field. This new type can be used as declarative as in Oracle. After the initial work (which can be outsourced) there is no procedural programming to be done.

      CREATE TYPE MY3DES ...

      CREATE TABLE secretstuff (
          INT id PRIMARY KEY,
          MY3DESTYPE secret )

      PG Manual: http://www.postgresql.org/docs/8.1/interactive/sql -createtype.html

      3. Nitpick: The ALTER TABLE command is not "declarative", it is a Data Definition/Alteration command and quite procedural. SQL is not purely declarative. INSERT, UPDATE are procedural too, in a different way. I agree SQL is quite high level, and obscures the actual low level algorithms used by automatically selecting optimal ones, but nonetheless there are procedural elements.

      4. You probably only know MySQL, your last paragraph shows this. Forget treating PostgreSQL and MySQL as equal. Read up on Postgres. It is much closer to Oracle than to MySQL. I don't want to disparage MySQL here, these 2 open source DBs have very different audiences and that was my original point.

      http://www.postgresql.org/

      I won't reply after this, because I think we are repeating arguments and the whole point is moot -- if data needs to be encrypted "at rest", I'd do this at volume level (encrypted block devices) where the data is stored, completely independant of DB apps.

  37. Application level by charnov · · Score: 2, Interesting

    That's why application layer firewalls are such a big deal. They are supposed to understand what data and more importantly what kind of data specific apps from both sides are supposed to be generating and filter at that level. They can be a royal pain to design and keep running. With custom apps, however, it's a whole different story.

    One of the great concepts I learned at my last training was the idea of compartmentalization. This is after many other layers of defense, but the idea is even if you are compromised, they get nothing of real value.

    There also many, many other ways to add protection: gambits, exclusion, audit-traps, active detection, etc.

    Like the author, one of my big concerns is with poorly written apps. Anytime anything is specifically designed to release data but has restrictions on who gets what and how, you have a security concern. I have seen companies go to such extremes as pushing data to the screen as one big jpeg to keep from anything grabbing said data (of course, there are tools that can grab visual data from graphics just like humans now). My biggest concern is the original and still number one concern of all types of security: corruption from within. Be it sabotage, espionage, or unintentional damage (virus) the equipment and personnel inside an organisation is always more dangerous than those outside it.

    And that's when manageing your information through compartmentalization and multilayer defense, etc. come in. You may get in systems, but you are not getting anything of real value and you aren't getting out again.

    --
    [RIAA] says its concern is artists. That's true, in just the sense that a cattle rancher is concerned about its cattle.
    1. Re:Application level by Anonymous Coward · · Score: 0
      That's why application layer firewalls are such a big deal.

      No, application level firewalls are meant to stop people tunneling over (typically) http and bypassing your packet filter. The irony being that they wouldn't be tunneling over http if you had a decent firewall policy.

  38. middle ground by SethJohnson · · Score: 1



    I can appreciate your attempt to reign in the GP perspective of punishing companies over security breaches. Like you wisely wrote, no usable security system is 100% invincible.

    There is a middle ground in this debate, though, and I believe that is fining companies over negligent security practices. After a breach and theft of consumer data, an independent security audit can identify if the damage to consumers was the result of a corporate negligence towards security. In that case, they would be susceptible not only to fines, but also civil suits, I think. In the same way a property owner can be sued by visitors if they get hurt due to the owner's negligence in maintaining their safety. Since slip-and-fall lawsuits raise such negative conotations, I know this isn't the most palatable example, but that's what I've got for you!

    Seth

  39. I wish Slashdot did book reviews. by shess · · Score: 5, Insightful

    You know, where you _review_ the book? As in whether the book is high-quality, or not. As in whether the author is a good writer, or not. As in whether the contents are relevant, or not. As in whether I should buy the book rather than some other book.

    Instead, we get a synopsis of what the book covers, plus a blurb for why the topic is important. Yes, securing databases is important! Yes, Part 4 provides Java examples! But why do I want to buy THIS book about securing databases? Why do I want to buy THIS book with Java examples?

    They should have some sort of guidelines to follow. They could call them "Slashdot Book Review Guidelines". The guidelines could include points like "Is the book readable as well as technically accurate?" and "How gracefully do you expect the content to age?" That would be amazing.

  40. Money by C10H14N2 · · Score: 2, Informative

    Granted, hard-coding those values is pretty absurd, but the single login does make sense, mostly financial, but in a very, very non-trivial way.

    When you're sold an enterprise server for an enterprise app with a $1250 per-seat (much less named users) fee and you have 5,000 concurrent users, that's $6.25 million. You can buy the same server with five or ten user licenses for $40k. Provided the application is secure enough, the cost v. benefit of having per seat licenses just doesn't pan out. Cut another way, fine, you have named users passing through to the database and those logins come through the application. Does that _really_ make you much more secure if those logins can be compromised? Sure, you might sniff out the lowliest account, but if you can do that, you can sniff out the admin account as well. Where's the $6M advantage? I'm seeing a subtle variant of security-via-obscurity here. "Gosh, if they have to pick from thousands of accounts instead of dozens, we're secure!" Right.

    Case in point: The state of California was sold a named user license by Oracle for $1.5 BILLION. That's right, name every goddamned user working on the State of California network. Not really much different than a per-seat license, but I suppose they could have saved, say, a billion, leaving them with a $500,000,000 database license. I believe the purchase orders -- and the careers of those who signed them -- were cancelled prior to payment.

    So, where do you draw the line on this nonsense? 100 users? 1,000? 10,000? Does it really make a difference? If you can hack 1:100, what's the value of reducing it to 1:10,000?

    1. Re:Money by danpritts · · Score: 1

      of course, oracle's line is that the licensing refers not to the implementation details at the database level (ie, whether you use one db user or 1,000,000) but rather how many human beings are actually using it.

      that's what their reps say, anyway. i haven't had an attorney review their contracts but how much you wanna bet they thought of it in the contract?

  41. Save SIX BUCKS!! by Anonymous Coward · · Score: 0

    Save yourself $6.30 by buying the book here: Cryptography in the Database. And if you use the "secret" A9.com discount, you can save an extra 1.57%!

  42. yeah, well... by ranjix · · Score: 1

    in order to get to fines/civil suits, several things must happen:
    - the breach/data theft should happen and be recognized as such (I think a lot of times companies don't even realize)
    - there should be a way to find the way it happened (not always possible)
    - there should exist some sort of definition for "negligence in security practices" (good luck)
    - there should be some damage on the customers side, provable that it was caused by the breach in the first place (well?)
    add to this any kind of license agreement in the first place and then just forget it

    --
    I had another sig before, but this one is better
  43. Odd Ranum quote by rpg25 · · Score: 2, Interesting

    This seems like a very odd quote to use to introduce this book, because one of the things Ranum seems to be talking about is that use of encryption and complex protocols can make security worse.

    Why worse? Because the firewall, mainstay of our security efforts, becomes less and less effective. In the old days, your firewall could give a fairly cursory glance at packet headers, and have a good shot at catching the bad ones. Now, the packet header isn't so useful, because there is complex stuff inside the packet --- protocols are layered three deep or more.

    That's why we need security at the application layer, instead of at the network transport layer --- the network transport layer just doesn't "know" enough to catch threats. What makes this really scary is that there is less of a bottleneck for the threats. It's nice as a defender to have a bottleneck you can protect. If the bottleneck goes away, and you have to protect all the applications, that's pretty scary.

    Cryptography isn't going to give us a lot of help here, IMO. Yes, when our security has been breached, it can give a second line of defense, but that's about all (and even that seems a little suspect in a world with keystroke loggers).

  44. Real Software Companies Don't Care by Anonymous Coward · · Score: 1, Interesting

    I used to work for a software company that is the second largest player in their market. Their software is in use at companies tracking the time records of 40,000+ employees. Within two months of hire - as a phone support tech - I was able to write an application that would bypass the security auditing of the system, open the internal database and write in false clock in-out times for an employee. I showed how to automate this process in a semi-random way so that you could never come to work, but you would show in the database as punching in and out every day at different times. Their reaction? "No one will do that." I thought about selling my application, and still do.

  45. SE Linux can stop insiders by r00t · · Score: 1

    You'll need some physical security of course. Given that plus SE Linux, the only info that gets out will be what the insider can remember in their head. (it is illegal to retain their head)

    With SE Linux, you can prevent an app from accessing both secret info and the Internet. An employee may get access to both, but interprocess communication is restricted in a way that blocks leaking the info.

    Some extra words to Google for: "Mandatory Access Control"

    1. Re:SE Linux can stop insiders by Kent+Recal · · Score: 1

      (it is illegal to retain their head)

      Oh?!
      Hmmmmmmmmm...

      Must get rid of that bizley.

  46. Untrue for HIPAA by peacefinder · · Score: 2, Informative

    HIPAA [specifies], more or less, that sensitive information must be encrypted within the database. That means the data at rest on disk must be encrypted.

    That's not actually the case when it comes to HIPAA. Encryption is not a required element of the technical safeguards for data, it's only an addressable element. See section 164.312 part (a)(2)(iv) of the final Security Rule, which can be found in the Federal Register (volume 68 number 34 page 8378) or on my desk.

    The regulation requires the covered entity to implement appropriate administrative, physical, and technical safeguards for protected health information. Encryption is just one element of those safeguards, and an optional one at that. Remember that HIPAA views security as including not only confidentiality, but also integrity and availablility of data. Encrypting data at rest would often be a marginal improvement to confidentiality at a potentially large risk to availablility (or even integrity). It may be a good idea in some security environments, of course, but encryption is not a blanket requirement of HIPAA.

    (Even data in transit does not require encryption under HIPAA. It simply requires protection commensurate with the risk. Protected health information transmitted over a dialup line probably does not need encryption, whereas any transmission containing PHI over the internet certainly does need encryption.)

    The attacks you suggest solving by database encryption can also be dealt with by policies regarding media disposal and backup media safeguards. A HIPAA covered entity is required to have a media disposal policy anyway, and offsite backup tapes are just another form of data in transit to be protected accordingly. Database encryption may be a valuable additional layer, but it's certainly not the only way to skin that cat.

    (Incidentally, about half the Oracle DBAs at my EMR vendor are women.)

    --
    With reasonable men I will reason; with humane men I will plead; but to tyrants I will give no quarter. -- William Lloyd
  47. maybe they should stop buying the vaults by ranjix · · Score: 1

    altogether since they allow now access thru internet... IMHO the degree of security of internet banking won't come close to the one of a vault (very complex systems vs rather simple - and because of that, verifiable - ones).

    --
    I had another sig before, but this one is better
  48. Great book by Heembo · · Score: 1

    I agree with many of the intelligent posts around the idea that "database encryption is just one small piece of the puzzle" - I agree that *selective* database encryption is one crucial piece to a defense-in-depth multi-layered security strategy.

    Yet still, the is a fantastic well though out book. Its not a cure all, but a great book on this one segment of a good secure database solution.

    For the beginner, just dive right in to page 37 and read the overview of Cryptographic structures. Then, stare at the diagram on page 41 for many hours and understand the workflow of this architecture.
    For the advanced practicioner, a lot of this was review, but I got the most out of Chapter 8, "reqirements hardening" - although most clients think I'm paranoid when I talk security at the initial requirements gathering meetings, this small chapter helped my fine-tune my approach.

    --
    Horns are really just a broken halo.
  49. Better idea. by jhantin · · Score: 1

    Put part of the key hidden in the code (that the production admins never see), another part of the key in a config on the production server (that the developers never see), and hash them together to generate the real key. If that isn't paranoid^H^H^H^H^H^H^H^Hsecure enough, generate the key offline and load it into hardware modules that can apply the key but not cough it back up.

    That'll be $350 and two karma points, thanks. :-)

    --
    ...when you're writing a game...tweak the difficulty of "Easy" to something [your mother] can cope with. -- onion2k
    1. Re:Better idea. by Anonymous Coward · · Score: 0

      Put part of the key hidden in the code (that the production admins never see), another part of the key in a config on the production server (that the developers never see), and hash them together to generate the real key.

      Your production admins don't have read access to the code? If they do, then they can most certainly find the key. If the app is coded in a language like Java that is easily decompiled, it won't be hard to find that key at all.

      If that isn't paranoid^H^H^H^H^H^H^H^Hsecure enough, generate the key offline and load it into hardware modules that can apply the key but not cough it back up.

      In which case, the attacker need only use the same access path to the database as the application. That hardware device will then happily apply the super secret key on behalf of the attacker.

  50. are you also a stockholder? by Anonymous Coward · · Score: 0

    Is this a publically traded corporation? Is this really a hyper critical unpatched major security flaw that could expose the company and any of their customers to significant loss?

    If so,all of the above, you have a ton more rights than what you may think, not only rights but some obligations most likely. Don't let management buffalo you or threaten you or scare you, get a nasty mercenary lawyer,give him the skinny then do exactly what he says to do, and you could walk away with a hefty sum, decent FU money.

  51. This is why... by Anonymous Coward · · Score: 0

    It's better to report these things anonymously.

    Then if they do nothing at all, you drop the bomb on BugTraq or Full Disclosure or wherever.

    Can't retalliate when they don't know who you are.

  52. Firewalls suck by typical · · Score: 1

    Second, firewalls really don't do that much for you. They stop things like blaster which attack an open port on the operating system, but let's fix the damn oeprating system to patch those holes, not just cover them up with a rug.

    Firewalls provide perhaps a single security benefit -- they might buy you a small amount of time after an exploit is released before your network is hit (e.g. if someone releases a simple worm). They are not long-term solutions at all. "Personal firewalls" are a complete waste of time -- there are too many clever ways to subvert the things.

    For a long time, I've been arguing that the kinds of people who deploy incredibly restrictive firewalls left and right (and then proceed to ram things like SOAP through the firewall because they just blew away the usefulness of their network and need a hack to try to get things working again) aren't doing anything but hurting network performance and increasing complexity -- they *still* have the same servers and clients going through their firewall, but now they spent a lot of money to essentially slow everything down.

    A web browser is one of the most complex applications on your system, and has to deal with some of the most complex data, and some of this data is already intended to be executed. It also changes at a very rapid rate compared to most applications (compare, say, the evolution of Navigator-Mozilla-Firefox to Photoshop). It is, quite simply, *the* most attackable thing on your system.

    What's the second most attackable thing on your system? Data files. Sure, programmers go to a lot of work to ensure that they have robust handling of malicious network input. But what about in their data file formats? Plus, these often change every time a new feature is added to an application. A virus that sits in a data file can spread even on an incredibly-locked down network, where the only common access that the machines on the network use is a file server. Common, well-examined file formats like MP3 (see Nullsoft's ID3 tag problems), JPEG (libjpeg's had security problems in the past that have hit Slashdot), and so forth have had their share of blemishes. How much more likely do you think it is that the case of a more complex format (Illustrator or Word, for example) that many, many holes still exist? Plus, while server admins may patch their servers, the number of people that use old versions of WinAmp is *immense* -- lots of these holes won't be closed for a long, long time.

    But what do we get? Firewalls. Granted, Microsoft had an attitude for a while that computers didn't *have* to be secure against remote attacks, and the complex filesharing/IPC/etc systems were by default exposed to the remote world, and that if their software had holes that got attacked, then the network admin was at fault. Some use of firewalls were a response to that. A hell of a lot, though, isn't. Most firewalls are Band-Aids -- they may not do much, but it's easy to point at them as progress, and everyone feels a lot better.

    --
    Any program relying on (nontrivial) preemptive multithreading will be buggy.