Forgot your password?
typodupeerror
Government Security Your Rights Online

Voting System Test Hack Elects Futurama's Bender To School Board 210

Posted by Soulskill
from the bite-my-shiny-metal-ballot dept.
mr crypto writes with this quote from El Reg: "In 2010 the Washington DC election board announced it had set up an e-voting system for absentee ballots and was planning to use it in an election. However, to test the system, it invited the security community and members of the public to try and hack it three weeks before the election. 'It was too good an opportunity to pass up,' explained Professor Alex Halderman from the University of Michigan. 'How often do you get the chance to hack a government network without the possibility of going to jail?' With the help of two graduate students, Halderman started to examine the software. Despite it being a relatively clean Ruby on Rails build, they spotted a shell injection vulnerability within a few hours. They figured out a way of writing output to the images directory (PDF) on the compromised server, and of encrypting traffic so that the front-end intrusion detection system couldn't spot them. The team also managed to guess the login details for the terminal server used by the voting system. ... The team altered all the ballots on the system to vote for none of the nominated candidates. They then wrote in names of fictional IT systems as candidates, including Skynet and (Halderman's personal favorite) Bender for head of the DC school board."
This discussion has been archived. No new comments can be posted.

Voting System Test Hack Elects Futurama's Bender To School Board

Comments Filter:
  • At least (Score:5, Insightful)

    by stillpixel (1575443) on Friday March 02, 2012 @11:40AM (#39221217) Homepage Journal
    the election board had the common sense to ask for this publicly and not cross their fingers and hope no one did this when they used it for real. More gov't entities should open up to testing like this.
  • by Anonymous Coward on Friday March 02, 2012 @11:54AM (#39221383)

    Every single technology profession I have EVER communicated with, does not think electronic voting machines are a good idea. If EVERYONE is in agreement this is a BAD idea, why the FUCK are we still making these things?

  • Re:At least (Score:4, Insightful)

    by ackthpt (218170) on Friday March 02, 2012 @11:56AM (#39221411) Homepage Journal

    the election board had the common sense to ask for this publicly and not cross their fingers and hope no one did this when they used it for real.

    More gov't entities should open up to testing like this.

    Sure, but if you run Diebold and favor one party over another (justsayin') you don't want some hacker finding your backdoor, do you?

  • by GmExtremacy (2579091) on Friday March 02, 2012 @11:57AM (#39221437)

    If EVERYONE is in agreement this is a BAD idea, why the FUCK are we still making these things?

    Because what is popular is not always correct.

  • by Anonymous Coward on Friday March 02, 2012 @11:58AM (#39221445)

    Indeed.

    Ruby does a lot of things, but encouraging security isn’t one of them. Building a properly secured application means thinking about security right from the beginning and working it in at the core levels. Upper level code shouldn't even be _able_ to do something insecure without some kind of token from the minimalist security layers at the base. A language designed to "handle that shit for you" leads to a lot of "oh, didn't think about that" type issues.

    See also: diaspora

  • by Todd Knarr (15451) on Friday March 02, 2012 @11:59AM (#39221461) Homepage

    What I want to see is a real compromise of one of these systems that can be held up as a true scare story:

    1. The compromise is undetected. At the time the results are reported, the election officials are unaware that the system has been compromised and none of the systems in place for detecting a compromise has indicated any trouble. According to all evidence in the audit trail the results are undeniably correct and true.

    2. There was no indication of tampering at the time of voting. As votes were being cast there was no indication of tampering with the ballots or any other visible indication that the results weren't being correctly recorded and reported.

    3. The results reported are undeniably wrong. Eg., the test voting was done in a controlled manner where everyone knew what the correct results should be and that everyone saw that everyone else had voted the way they were supposed to, so if the system functioned correctly it's known exactly how many votes should be cast for which candidate.

    4. The reported results are undeniably wrong. Eg., according to the reported results 100% of the votes cast were for a candidate who should've received zero votes.

  • Re:At least (Score:2, Insightful)

    by Anonymous Coward on Friday March 02, 2012 @12:15PM (#39221609)

    Off course, with paper, you can simply walk in after the fact with boxes full of votes for you guy or gal ( Washington gov and Minnesota Sen, right?)

  • by kbob88 (951258) on Friday March 02, 2012 @12:19PM (#39221651)

    Nice troll. Actually, it's kind of a lame troll. I suppose, as is normal on /., you didn't read the report from Prof Halderman.

    The initial problem was a string interpolation vulnerability in a modified Ruby library that executes a shell command to encrypt PDF ballots. That's a pretty basic mistake that has nothing really to do with Ruby or Rails. If you interpolate into a string (or concatenate data into a string) without sanitizing the data, and then execute it, you're asking for trouble, no matter whether it's Rails or Java or C. This is also pretty basic security stuff, and there are tons of guidelines and tutorials in the Rails community for avoiding this kind of mistake. There are also plenty of code vulnerability scanners that would pick this up. It's amazing that the DC team didn't use one of these to check their code.

    But they had plenty of other problems such as easy-to-guess passwords and a lousy IDS configuration.

    So the real problem was with the people who developed and implemented the system, not with the tools. I've seen plenty of similar mistakes in systems developed using all sorts of technologies. The developers clearly didn't have a very solid background in security. That's OK actually, as long as you have someone on the project who does and who can check their designs and implementation. Sounds like they didn't have anyone well versed in security, which seems a bit odd for an e-voting project. I'm certainly no expert on security, but I am RoR coder, and even I know not to make these mistakes.

    But I suppose it's fun to bash the Rails programmers because they are in really high demand and able to command very high billing rates :-) I'll take the bashing along with the money and the ease of programming!

  • by Tackhead (54550) on Friday March 02, 2012 @12:24PM (#39221693)

    Every single technology profession I have EVER communicated with, does not think electronic voting machines are a good idea. If EVERYONE is in agreement this is a BAD idea, why the FUCK are we still making these things?

    Because neither politicians nor voters understand the concept of experimental error.

    And because in 2000, a Presidential election's electoral vote count was close enough that the entire contest depended upon the poopular vote count of a single state, which was itself close enough to fall within the experimental error of the measuring apparatus. (Hanging chads, ballots with improperly marked "X"s, scantron errors, etc.)

    After that, of course, the usual political process took care of itself, to wit:

    Ignorant public: "Something must be done to eliminate all experimental error!"
    Ignorant politicians: "Computers are something!"
    Frustrated techies: "Just because the computer always reports an unambiguous tally, doesn't mean that the tally reflects the will of the voters..."

    They were, of course, drowned out by a chorus of...

    Contractors and Lobbyists: "Hey, you politicians look like you want a whole lot of voting machines, and we happen to know some people who can build them... for a price."

    Most people (with the exception of politicians and rabid hyperpartisans, and in 2000, they were the minority of the electorate), whether they voted Jackass or Elephant, were willing to accept that it was possible that their candidate lost.

    But nobody - and I mean nobody - wanted to accept the possibility that there was insufficient data to discern the actual will of Florida's voters because the margin of victory was within the expected error of a voting process.

    The recorded vote count in Florida was 2,912,790 to 2,912,253. Even ignoring the experimental error associated with the voting process, a traffic accident on a highway leading to/from a Democratic- or Republican-leaning neighborhood (or a bad rainstorm, or any number of a thousand random occurrences) could have changed the outcome by making enough people stay home, delay voters' arrival at the polling stations after closing time, etc., to have changed the outcome. No matter what technology you use, 269 votes out of almost six million isn't signal, it's noise.

  • Re:At least (Score:4, Insightful)

    by kbob88 (951258) on Friday March 02, 2012 @12:30PM (#39221777)

    I agree. Asking the community to test the system out does show remarkable common sense and good intentions, which seems to be lacking in e-voting community.

    Unfortunately, they did not have the common sense (or perhaps judgement) to hire a technical team that knew what they were doing when comes to security. Which is not good in any project, but seems like a huge lapse of judgement in an e-voting project.

    They also appear not to have hired an independent security review group to scan the code and review the implementation, or if they did hire one, they hired one that was no good.

  • by Shados (741919) on Friday March 02, 2012 @12:34PM (#39221827)

    I really hate Ruby, but its hard to ignore that there's a ton of Ruby shops hiring in the big north american metro areas and that they have more contracts than they can deal with right now. Ruby is pretty hot these days.

  • by halexists (2587109) on Friday March 02, 2012 @12:38PM (#39221877)
    It's not news that electronic systems can be insecure. Those selecting such systems are certainly lobbied to believe that, whatever system they choose, "this time it will be different... this one IS secure."

    The truth is all voting systems -- manually or electronically administered -- are insecure. The feature that traditionally manual voting systems have is that the scale of voting fraud exacted is correlated with the scale of corrupt election officials overseeing the process. To increase fraud you either need a) more conspirators or b) higher-level conspirators in the body that oversees the process. That is a feature that is worth keeping in any new version of voting system.

    This article is just another example of a voting system that has given up the feature. Not all electronic voting systems forsake this feature, but those that keep it are at most electronic-assisted voting systems that retain distributed verification at multiple stages of the counting process. That's because voting is most secure when it's a distributed activity, not a centralized one. With thousands of tiny precincts collecting pockets of votes, any one could tamper with results -- but many would have to tamper to have a big impact. Election commissioners, keep this feature!
  • by telekon (185072) <canweriotnow&gmail,com> on Friday March 02, 2012 @02:03PM (#39223071) Homepage Journal

    This was a system created by Rubyists. They don't understand security because that's a "low-level detail" they can't be arsed to learn.

    Rubyists pay attention to low-level details. This is why we write C extensions rather than executing shell commands from web applications, which is asinine.

    "Rails developers" are rarely Rubyists, properly speaking. This is one of the issues plaguing the Rails community. It could be worse, though. Rails developers can become Rubyists. In the PHP community, given that the preferred development methodology seems to be having two cats copulate on a keyboard, I don't hold much hope.

  • Re:At least (Score:4, Insightful)

    by rtfa-troll (1340807) on Friday March 02, 2012 @02:10PM (#39223155)

    They also appear not to have hired an independent security review group to scan the code and review the implementation, or if they did hire one, they hired one that was no good.

    It's explicitly stated in the summary, let alone the article that this was a good system with a clean Ruby set up. That is more or less "state of the art security". If we take the lesson that this was a "bad" team and that most others would do better we would be deeply wrong. There were IDSis systems and filters in place. That a considerably higher level of protection and a sign of a higher level of security awareness than most competing systems.

    The main message is that the currernt state of the art doesn't come close to providing decent security. Even key military systems have been showing a bunch of failures such as the Windows based battleship propulsion system. That shows that people who know how to build secure systems don't know how to build reasonable sized / commercial systems and are losing in competitive battles to cowboys using completely unsuitable technologies.

  • Re:At least (Score:5, Insightful)

    by rtfa-troll (1340807) on Friday March 02, 2012 @02:17PM (#39223279)

    This protocol is simple enough that no expertise is necessary to memorize it, understand why it works, and verify that it is followed correctly.

    This can't be stated strongly enough. If there is any part of this that can't be understood by retired clerk without higher education and with no real interest in mathematics and/or computing then you are getting rid of some of the most important volunteers who can ensure that the voting goes correctly.

  • by medv4380 (1604309) on Friday March 02, 2012 @02:32PM (#39223507)
    Why even use passwords. This is the kind of system that should require a two factor authentication. You shouldn't be able to gain access to an election system unless you actually have the key to the ballot box.
  • Re:At least (Score:5, Insightful)

    by Pumpkin Tuna (1033058) on Friday March 02, 2012 @04:05PM (#39225069)

    I disagree. The key is that equal numbers of representatives from both parties are part of the process and essentially watch each other for cheating. I've run a polling place for several years now as chief judge, and I've seen no way that I could have cheated, even though I transported the paper ballots to the board of elections by myself in my own car. There were too many failsafes. It actually made me feel very good about our democracy. You can't say the same for some code, no matter how secure it is. Security can always be broken.

  • by laird (2705) <lairdp AT gmail DOT com> on Friday March 02, 2012 @08:41PM (#39228209) Journal

    "I am a poll worker in Virginia, and we follow a very similar protocol for our DRE voting machines. "

    While it sounds like you're trying to do a good job, there are many fundamental problems with DRE machines.

    - The software is proprietary, and not open to inspection, only to "black box" testing, which cannot only detect some kinds of errors, and cannot be counted on to detect all errors or intentional fraud.
    - There is no way to prove that the vote recorded by the DRE is the same as the vote cast. The lack of voter verification of the actual recorded vote is the fundamental problem with DREs, rendering them unsuitable for use in elections. Note that printing a record of the vote within the machine does not help, because the receipt inside the machine is not verified by the voter, so there's no way to validate that it reflects actual votes cast, so it cannot be used as the basis of an audit or recount.
    - There is no way to prove that the vote recorded by the DRE cooresponds to the votes reported.
    - There is no way to audit reported vote counts against actual votes cast, so no way to discover fraud or error in the voting system.
    - There is no way to recount actual votes cast by voters. You can recount whatever the software happened to record, but that can easily be different from the vote cost.

    Or, as NIST put it "Simply put, the DRE architecture’s inability to provide for independent audits of its electronic records makes it a poor choice for an environment in which detecting errors and fraud is important."

    There are advantages the electronic voting systems, such as providing immediate voter feedback to prevent overvoting and warning of undervoting, and assisting seeing impaired voters.

    The right way to go, I believe, is to use electronic voting systems to assist voters in producing a paper ballot (AKA the Voter Verified Paper Ballot), which the voter can then inspect and cast. That gives the advantages of a DRE, but with the added benefit that the election results can be (relatively) trusted. That is, for example, the type of system used in Nevada after the Gaming Commission rejected all of the DRE systems. This is particularly relevant, because they're the only state with significant experience in securing DRE-like devices, because they certify gambling machines, which are under similar attacks to DREs.

    Check out http://www.openvotingconsortium.org/ [openvotingconsortium.org] for an open source system that does the right thing.

The ideal voice for radio may be defined as showing no substance, no sex, no owner, and a message of importance for every housewife. -- Harry V. Wade

Working...