Slashdot Log In
Oklahoma Leaks 10,000 Social Security Numbers
Posted by
Zonk
on Tue Apr 15, 2008 10:31 AM
from the that's-some-good-securitying dept.
from the that's-some-good-securitying dept.
DrJokepu writes "Apparently the folks at the Department of Corrections of Oklahoma just forgot to use common sense when they created the state's Sexual and Violent Offender Registry. By putting SQL queries in the URLs, they not only leaked the personal data of tens of thousands of people, but enabled literally anyone with basic SQL knowledge to put his neighbor/boss/enemies on the sexual offender list. Fortunately, after the author of the blog The Daily WTF notified the department about the issue, the site went down for 'routine maintenance' on April 13 2008."
Related Stories
This discussion has been archived.
No new comments can be posted.
Oklahoma Leaks 10,000 Social Security Numbers
|
Log In/Create an Account
| Top
| 245 comments
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Pleeeese! (Score:3, Insightful)
Re:Pleeeese! (Score:5, Interesting)
Parent
Oblig. (Score:5, Funny)
(2)Put your own name in the registry
(3)Sue the state
(4)Profit!!!
(5) (remember to have your name removed from the registry!)
Re:Oblig. (Score:5, Funny)
This is government you're dealing with. It will never happen.
"But, but, I sued the state and won! Look, here's my legal documents! I'm not a sexual predator, honest!"
"Yeah, sure.. Time to organize the community to hassle you until you leave. Enjoy being a hermit you sick pervert."
Parent
Minor Correction (Score:4, Insightful)
Parent
Re:Oblig. (Score:4, Interesting)
Rather, this is a boon to those already on the list. Now they can simply claim that their status as a listee was simply a vengeful prank courtesy of an unnamed drinking buddy.
I do hope they have validated archives somewhere.
Parent
Re:Added to list (Score:4, Funny)
Parent
*facepalm* (Score:5, Informative)
SQL queries IN THE QUERY STRING. Someone reading their FIRST BOOK on web development would know not to do that! And now God help the people who have been affected by this: try proving to the government that you're not a sexual offender when you're already on their list.
SQL injections. [wikipedia.org] Learn them. Learn how to mitigate them [php.net] (a PHP-specific example, but there are similar mitigation techniques for other languages). And I mean, hell, in a site like this (and especially with programmers apparently this bad), stored procedures [wikipedia.org] might be the thing to implement. Or even better, use a framework like CakePHP [cakephp.org], Rails [rubyonrails.org], or Django [djangoproject.com] with this sort of sanitation built into the queries it generates.
Ugh. I hope someone gets fired for this. I bet, though, that in reality this was programmed by the lowest bidder.
Re:*facepalm* (Score:4, Funny)
It's scary how lazy some of the web developers are. For years Yahoo used a system where their login system had the URL to go to once login succeeded urlencoded in the URL. It would have been exceedingly easy to duplicate the login page with a "Username/Password was typed incorrectly. Please try again." Then send people to the authentication page with your page as the follow-on one.
URLs should only be able to contain sanitized field values to search on that the server composes into actual SQL, URLs, etc.
Parent
Re:*facepalm* (Score:4, Insightful)
In these cases, there's little or no commenting. Some things are done as classes, some as functions, there's no particular rhyme or reason, and it became so bloated that the original coders appear to have simply given up. It's terrible spaghetti code, but because it's on the web, no one seems to consider it software development. When you combine this with security, it can create a rather frightening mix of shitty almost undebugable code with an unknown number of potential security holes.
I know I sound elitist here, but goddamn it, PHP and all those lovely little scripting languages have unleashed a disaster on the web. It's bad enough that there's hackers out there, but much worse that there are incompetents being given the keys to the internal networks and data, without any knowledge of sound coding principles and of how to harden sites against injection attacks and the like.
Parent
Re:*facepalm* (Score:5, Insightful)
Parent
Re:*facepalm* (Score:5, Insightful)
Parent
Re:*facepalm* (Score:5, Insightful)
Java, Perl, and Python all make it easier to do it the wrong way than the right way too. Simply because the wrong way is less work than the right way in almost every aspect of these types of problems.
(The above paragraph is also true for performance)
The parent to your post is spot on. Don't blame the tool because the user is an idiot. The incompetent programmer from this article doesn't have any business doing web development in any other language either, regardless of how much "easier" that language makes it.
Parent
Re:*facepalm* (Score:5, Insightful)
Lumber and bricks make it very easy to build something that will fall on you and very hard to make a house.
Steel and wire make it very easy to build something that will snap and kill thousands and very hard to build the Golden Gate Bridge.
The solution is not to build the world out of Nerf. The solution is to keep Nature's fry cooks out of skilled labor jobs.
Parent
We need accreditation and liability (Score:5, Insightful)
Software, on the other hand, is a free-for-all today. We need an accreditation program and a code of ethics, just like more traditional disciplines of engineering. That's not to say that we'll restrict compilers to professionals; we don't reserve wrenches for professional mechanics.
But for a project that has the potential to cause so much harm to so many, a requirement to use trained and certified software engineers (with all the implications of the second word) would be invaluable.
Parent
Re:*facepalm* (Score:5, Insightful)
By the way, on a somewhat unrelated note, we're using Django [djangoproject.com] for our new web game, and it's both interesting and easy to code, while still (rigorously) maintaining good coding practices. So I think there's also something to be said for those who work with frameworks like CakePHP, Rails, and Django, as those tend to both be object-oriented and to promote good coding practices.
As I've said before, I think PHP can and should be used well; there are just a lot of ways it can be used poorly.
Parent
Re:*facepalm* (Score:5, Interesting)
This particular site was coded in java, so PHP was not at fault here. I don't know what got you onto the topic of PHP.
The problem is that when these projects come up, rather than contracting out to someone who knows what they're doing, or at least hiring or training somebody who can code, they go to Bob the IT guy
Software development has always been rife with contracts that go to the lowest bidder based on a spec that mentions only features and deadlines (not security, quality, or other metrics). This is because most IT projects are managed by people who don't understand IT, and who do the IT equivalent of asking their neighborhood carpenter to build the golden gate bridge. You get what you pay for.
I know I sound elitist here, but goddamn it, PHP and all those lovely little scripting languages have unleashed a disaster on the web.
If PHP didn't exist, someone would invent it. PHP fills the niche of an environment that lets you get up and running quickly with web applications, just like visual basic did it for windows apps, and access did it for databases. Yes, it's a bit elitist to say that all programming environments should be so difficult to program in that they weed out all but the most dedicated (and knowledgeable), but it's also unrealistic, because people would invent easier environments if there weren't any. PHP is actually quite good at blending the capability for quality coding with a low barrier to access.
And besides, the problems with web app security have nothing to do with PHP or any other scripting language, they have to do with visibility. Think about how many two-tier desktop apps there are that let anyone with a bit of knowledge bypass the app and do whatever they want in the database. Nobody makes a fuss about this, because the visibility of those apps is lower.
I would say the primary problem with web app development is not any of the tools, but the perception among IT managers that web app development is simpler, and requires less skill, than desktop development, while the inverse is true. I do both desktop and web development, and it is much more difficult to build good web apps, because you have to pay more attention to architecture, security, performance envelopes, and gui design. That management (even my management) still doesn't understand that is disappointing, but understandable given how the web started out as a toy and still hasn't quite shaken that perception.
Parent
Re:*facepalm* (Score:5, Interesting)
Parent
Re:*facepalm* (Score:5, Insightful)
Parent
Re:*facepalm* (Score:4, Interesting)
Not only did they put SQL in the query string, they granted more permissions to the DB user for the web app than it needed. If you're just looking up data, not changing it, why does the app need anything other than SELECT ( or EXECUTE if you're using stored procedures )?
A great example of why "just give the app admin rights so it can work" is one of the dumbest statements a developer can make.
Parent
Routine Maintenance (Score:1)
Umm... (Score:2)
Without reading TFA... how do they know it was (just) 10,000 SSNs? Did they just approximate the number of entries already in the offenders list and just use that? Couldn't there potentially be more?
Re:Umm... (Score:4, Interesting)
Parent
Get your lawyer ready.... (Score:1)
Re:Get your lawyer ready.... (Score:4, Funny)
Parent
Author of WTF article made security mistake also (Score:5, Informative)
i dare someone (Score:3, Funny)
Let me be the first to say... (Score:1)
In all seriousness, though, this just goes to show that it always helps to slow down in order to avoid this sort of disaster. One hope s that the genius responsible for this is held accountable. 10,000 social security numbers is a lot of personal data to be throwing around like that.
Humor? (Score:4, Funny)
Generally, no retraction is ever as effective as the original statement. That's probably one of the reasons why libel is such a big deal for some people--just saying "sorry, we were wrong" may not be good enough.
SSNs (Score:1)
Bad blurring (Score:3, Insightful)
I read the daily WTF, and usually I think it's pretty good, but Alex has made his own WTF here, IMHO.
Simon
obligatory (Score:3, Funny)
injectin sql.
Oh the Chaos! (Score:1)
"OMFG It was only one piss on a tree!!"
And they others saying:
"I remember something about being convicted for that" *shrug* "Out of sight, out of mind!"
Not Entirely Unexpected (Score:1)
The registry is stupid anyway. (Score:4, Insightful)
Let's assume that a given person on the list was really a rapist (and not just convicted of it). If he's served his time and has repented, he won't do it again. So why do we punish him for the rest of his life with the registry? And if you think he will do it again, why is he not in jail?
You may as well just shoot him and be done with it.
Why Would Anyone Care? (Score:3, Insightful)
Why would anyone care if they were put on this list?
This issue has gone to the Supreme Court and they have ruled [wikipedia.org] that these lists are not punishment, and hence does not run afoul of restrictions against ex post facto punishment [wikipedia.org] or due process [wikipedia.org]. So if it is not punishment, why would anyone care if they are on the list?
Re:Why Would Anyone Care? (Score:5, Insightful)
In California, we have this thing called Jessica's Law. That law prohibits registered sex offenders from living a certain distance (usually 1000 ft) away from places children might congregate, such as schools, churches, playgrounds, parks, and in some cases, shopping centers.
So, if you are on the list, there are alot of places you CANNOT live. There are many cities in California where you can't live at all, simply because there is no place that is at least 1000 ft from the prohibited locations. If I was put on this list, I would be forced to sell my house and move as I live 1000 ft from a church. In fact, I would have to move out of the City I live in entirely as there is no residential areas outside of the prohibited locations.
Parent
missed opportunity (Score:1)
DAMN! I'll guess just have to find another way to mess with my old bosses..
And we are ... (Score:1)
The Real WTF (Score:1)
I think you'd have to try to be that incompetent (Score:2)
Maybe they meant to mess it up on purpose? Sabotage? Maybe it was meant as a back door for later?
Tell me again... (Score:2)
Being a resident... (Score:1)
Now, would one of you be so kind as to get me the fuck out of here?
"Routine" maintenance? (Score:2)
"Routine," as in "we clean up messes similar to this one, all the time?"
Obligatory XKCD reference (Score:4, Funny)
http://xkcd.com/327/ [xkcd.com]
uh oh (Score:1)
Now, my fellow Texans, you may be worried that a leak in the hose could cause them to lose their powerful vacuum, but in fact it's only served to multiply the sucktion! We're safer than ever!
I can just feel my karma evaporating
You would be suprised... (Score:3, Interesting)
There is one county in Florida that will return more results by walking thru their ID numbers than by searching for everyone in thier site. That means people who for whatever reason aren't supposed to show up on the website get harvested by companies like the one I worked at.
A county in Texas tried to stop the harvesting by making people sign in and limiting searches but managed to introduce a sql injection hole that lets you do whatever you'd like to the Users tables. I didn't try messing w/ the offenders tables but wouldn't be suprised if it was possible.
These are just two examples that I recalls. There were quite a few more.
Not the only site (Score:1)
Re:wow (Score:2)
Parent
Re:wow (Score:2)
Parent
Re:wow (Score:5, Interesting)
However, if Oklahoma has problems similar to California, then they're faced with a Hobson's choice. They can fire the guy/gal but given the low pay scales, they could well end up with someone just as bad.
Parent
lists should be minimal in size (Score:5, Insightful)
If every public urinator and teenager in love gets put on these lists, it's that much harder to spot the really bad guys. The same goes for the really bad people who are now harmless 89-year-old men dying in a nursing home. Get these people off the list ASAP.
If you aren't "level 3" or whatever "really really dangerous" is in your state, only the cops and those who have a proven need to know should have access to your information.
Parent
Re:wow (Score:4, Insightful)
The real issues are that
(a) No one in the OK government probably cared much about the privacy of these "sex offenders" because, well, they're "sex offenders."
(b) Government agencies are constantly tasked by executives and legislatures to implement programs they're ill-equipped to handle and often receive no additional funding to carry out these mandates. Do you think the OK agency involved had tens of thousands of dollars to hire outside contractors with solid coding skills to undertake this task? Probably they handed it to someone in house who knew how to write SQL queries and a little PHP.
I'd fire the lot of them, including the department heads, and start over with people who have at least some clue about good IT practices. If this fiasco was actually the product of an outside consulting shop, I'd ban them from working for my state government for a very long time.
If we don't have substantial and public penalties for poor management like this, we're just going to be repeating our mistakes.
Parent
Re:SQL (Score:2)
Parent
Re:wow (Score:2)
Woulda made a great April Fools prank...
Parent
Re:Sex Offender Lists (Score:2)
Actually, urination in public will win you a spot there too...
Parent
If it were eldorado Texas, just one (Score:1)
Parent
The purpose of the SO list (Score:1)
Great in theory miserable in practice.
If you want to do an offender registry right, evaluate every ex-con and create lists of people likely to commit new serious crimes.
I'd like to see likely-offender lists for:
* violent crimes including forcible sex crimes, murder, assault, etc.
* crimes involving con games/trickery of people who have no reason to know better
* financial crimes not relying on con games, e.g. bank fraud, felony burglary, etc.
* crimes against children, the elderly, and other easily-victimized groups
For each category, have a "level 1, level 2, level 3" system where level 1 means private registration, level 2 means those who ask and need to know get to see your info, and level 3 means public registration.
If a person is the reincarnation of Adolf Hitler but he's not in a position to commit new crimes, he doesn't get on the list. If a person has a single felony on his record but is deemed likely to commit one of those types of crimes in the near future, he's on the relevant list.
People change, so re-evaluate the list every year.
Parent
Re:Indecent Exposure = Sex Offender (Score:2)
Parent
Re:Sex Offender Lists (Score:2)
I'm not convinced such published lists are all that effective. I know of no actual research that demonstrates their effectiveness, and it appears to be simply a way to further punish an offender after their release.
My other big problem with this category is that in many places it's an extremely broad brush. Yes, you get the pedophiles and rapists, but you also get gropers, peepers and flashers that, while clearly people committing some kind of crime, cannot under any reasonable standard be considered in the same league as a child molester or rapist.
The problem with a lot of these laws is that they're extremely kneejerk. Some serial rapist terrifies a neighborhood, the outcry grows, and politicians bring in harsher laws that are really not well thought out at all, but rather seemed to be designed to mollify the mob.
If you want to bring in harsh crimes to keep serious sex offenders behind bars, then sign me up. But if you want every mentally ill flasher forced into the same category as a rapist, then no, I think you're being unreasonable. It's like treating every shoplifter to the same punishments that a bank robber gets.
Parent