Slashdot Mirror


Virus Jumps to RFID

MrShaggy writes "According to a BBC article, researchers have been able to make the jump between RFID tags and viruses. They found that the mere act of scanning a mere 127 bytes could cause an attack vector that would corrupt databases. From the article;'"This is intended as a wake-up call," said Andrew Tanenbaum, one of the researchers in the computer science department at Amsterdam's Free University that did the work revealing the weaknesses on smart tags. "We ask the RFID industry to design systems that are secure," he said.'"

21 of 109 comments (clear)

  1. FUD? by LiquidCoooled · · Score: 5, Insightful

    Hang on a minute, in this case the tag is not the problem.
    It is the software running on the host machine which does not validate the data coming from the tag that has major issues.

    If I can corrupt a database by entering an invalid lookup code then theres something severely fucked up.
    My bet is its something like the sql injection attacks we see on the web, and you don't see people blaming the input box in those cases.

    quote from the article:

    In some cases, said the researchers, viruses could be spread by household pets such as cats and dogs that are injected with the tags to help identify their owner.

    The pets aren't going to be spreading this "virus" themselves its not sexually transmitted, it cannot be passed by rubbing up against your leg. It will be the vets computer which gets infected because of crappy validation.

    MEOOOOOOOOEEEEEEEEOOOOOOOOOOOWWWWWWWWWWWWW!

    Charlie says: always validate your external inputs before doing any data processing.

    Smart tags, dumb research.

    (and thats coming from someone who doesn't like RFID)

    --
    liqbase :: faster than paper
    1. Re:FUD? by andrewman327 · · Score: 4, Insightful

      I could not agree more. I fail to see how (in this case) RFID tags are any more dangerous than barcodes. This should be a wakeup call to developers to remember to include basic validation and error catching into their programs. Just because it is new and flashy, some people think it is a panacea that has no problems. I have learned always to write code remembering Murphy's Law because in computer science, everything does go wrong at one point or another. This story should not make people stop using tags, but it is always worth asking your vendor about security, especially if you are implementing an RFID system.

      --
      Information wants a fueled airplane waiting at the hangar and no one gets hurt.
    2. Re:FUD? by Z0mb1eman · · Score: 4, Insightful

      I agree that was my first (knee-jerk?) reaction after reading the somewhat FUD-ish summary. However:

      "We ask the RFID industry to design systems that are secure"

      If the "RFID industry" creates the reader software as well, and if the vulnerability is in that reader software (which is what it sounds like), then the criticism is perfectly valid.

      FTA:

      ""Everyone working on RFID technology has tacitly assumed that the mere act of scanning an RFID tag cannot modify back-end software and certainly not in a malicious way. Unfortunately, they are wrong," wrote the trio in their research paper."

      and

      "The researchers urged companies working on RFID systems to start thinking seriously about security measures to protect against future threats."

      No one's really saying the tags are inherently insecure, any more than they might say that a floppy disk or a CD are insecure. If the reader software currently has many vulnerabilities, no matter how obvious it might seem in hindsight, this seems like valuable research to me.

      --
      ClutterMe.com - easiest site creation on the Net. Just click and type.
    3. Re:FUD? by StarvingSE · · Score: 3, Interesting

      This is very different from barcodes. A barcode has to be manually scanned, so you know when a system is reading the information and you can do (probably minimal) research into whether the software reading the barcode is secure enough to handle your personal data.

      The trouble with RFID is that anyone scanning can pick up your tag without you knowing about it. This includes secure and non-secure software. If 99% of software reading these tags are secure, there is still that 1% that isn't and you wouldn't know that it picked up your personal info until you get the bogus credit card bills in the mail.

      --
      I got nothin'
    4. Re:FUD? by DrSkwid · · Score: 3, Informative

      You have totally missed the point.

      I walk up to the reader with a crafted RFID and infect the database.

      This is "I can to read ANYONE's card" not "anyone can read MY card".

      Bit obvious really : "don't trust random stranger's data" - Film at 11

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    5. Re:FUD? by LiquidCoooled · · Score: 5, Informative

      If the tag data is expected to be an alphanumeric code to represent the customer: Slashdot_LiquidCoooled_634315

      this can be used (incorrectly) to produce a raw piece of SQL:

      select * from Customers where Code='Slashdot_LiquidCoooled_634315'

      if that code contains quotes and they are not being handled correctly then it is certainly possible to corrupt the database.

      Suppose my RFID was programmed with something like this and it was not being validated correctly:

      '; Drop table [customers];

      The resulting SQL could end up something like:

      select * from Customers where Code=''; Drop table [customers];'

      bye bye customers table (if permissions set at defaults and the wind is blowing your way)

      --
      liqbase :: faster than paper
  2. Correction on the University name by MartijnL · · Score: 3, Informative

    The University is called the "Vrije Universiteit" or VU for short ( http://www.english.vu.nl/home/index.cfm/ ). Which is not "Free as in Beer". It also didn't stand for Free as in: open for everyone. That didn't come along until the 1960's.

  3. Like the JPEG "virus" by kherr · · Score: 4, Interesting

    It is the software running on the host machine which does not validate the data coming from the tag that has major issues.

    Absolutely. This is just like the Windows JPEG "virus" that was due to buggy JPEG parsing. Describing RFIDs as an attack vector is appropriate, but inert data can not be a virus. You typically don't execute images or identification information. Perhaps there needs to be some catchy name for this type of attack, but really it's just a new example of the common overflow bug.

    1. Re:Like the JPEG "virus" by morgan_greywolf · · Score: 3, Insightful
      Perhaps there needs to be some catchy name for this type of attack, but really it's just a new example of the common overflow bug.


      How's about "programmer dumbass attack"? Seems quite apt, to me. Any programmer worth his salt knows that he has to check for invalid data, yet so many software developers (both open source and closed source) let code go to production levels that fails to perform even the most basic of validations.

      Maybe we need to send a bunch of programmers back to basic training! "Security boot camp"! Only let's make it real tough: make them all write basic currency conversion programs and for every piece of invalid data that makes it through without being validated, that program's author loses a finger! That'll teach 'em! :-P
    2. Re:Like the JPEG "virus" by Anonymous Coward · · Score: 5, Insightful

      Absolutely. This is just like the Windows JPEG "virus" that was due to buggy JPEG parsing. Describing RFIDs as an attack vector is appropriate, but inert data can not be a virus.

      Inert data can certainly be a virus: that's especially true in biology, where the entire virus metaphor arose in the first place. After all, virus is an piece of inert genetic data. When in contact with a live host, it alters the behaviour of the host; but without a host system to carry it, viruses are inert. Some people like to characterize them as the boundry case between "living" and "non-living": they're an inert substance that alter living beings in a self-replicating way to make more of themselves; in that sense, they "reproduce", despite not being "alive".[1]

      As for your original point, you're right that it's probably not correct to call RFID tag exploits "viruses": but not because viruses are inert. It's because the RFID virus is not being copied on by the host system it contacts; although, it sounds like it should be possible to craft a virus that does, assuming you could infect the RFID code writing software.

      --
      AC
      [1] People debate terms like "alive", "dead", "reproduce" for hours on end, until they realize they're arguing over definitions, which by definition is pointless....

    3. Re:Like the JPEG "virus" by RovingSlug · · Score: 3, Insightful

      Perhaps there needs to be some catchy name for this type of attack

      How about "poison" instead of "virus", since its presence may cause illness or death but does not self replicate. As in "attackers injected poison RFID tags into system, which is now inoperable until repairs are made."

  4. Erm by LordPhantom · · Score: 4, Informative

    2 words - Input Validation

    This article can be summed up in the following sentance:

    OH NO! Anyone can put ANYTHING on a tag that might be read by database software! Horrors!

    C'mon people, this is basic data security 101 - never trust inputs without validation. This isn't a problem with insecure tags, it's a problem with import software/database code.

  5. #ERROR by Doomedsnowball · · Score: 3, Informative

    I can see premade RFID tags containing SQL code being sold on eBay. Lower your grocery store prices, evade background checks, travel anonymously, use VIP entrances, ignore 'Authorized Personnel' signs! This is total FUD. The database equivalent of believing everything you hear. If there is no authenticating, then it's no surprise that there could be malicious hacking. The real story is that if it is possible to have a single binary check system, someone could change their Zero value to a One to defeat it.
    Noooooooooooooooooo!!!

    --
    7h3$3 4r3n'7 7h3 Ðr01Ð$ ¥0 4r3 £00|{1n9 f0r. M0v3 4£0n9. --OB1
  6. read only by Lord+Ender · · Score: 3, Informative

    So a specially-crafted RFID tag could cause code to execute on a vulnerable RFID reader. That's not a virus. But if this code causes the RFID reader to begin writing copies of the bad data to tags, then we have a virus.

    But read-only RFID tags and RFID readers are much cheaper than the writable kind, so this is not very practical. And RFID tags typically can't hold bit strings which are long enough to contain useful software. So, again, this is a bit silly.

    --
    A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
  7. oh no!! by preppypoof · · Score: 3, Funny
    They found that the mere act of scanning a mere 127 bytes could cause an attack vector that would corrupt databases.
    looks like their grammar databases have already been corrupted...
  8. What about other forms of external data? by JanusFury · · Score: 3, Insightful

    This is a good example of how people will sometimes trust data that isn't trustworthy at all.

    I'd be willing to bet that someone with enough cleverness and free time could come up with a 'credit card virus' that could compromise specific vulnerable payment systems/credit card processing devices when swiped. For all we know, there may already be such exploits out there now. At least in the case of credit card processing, it's financial code so hopefully there are some stringent security processes along with multiple layers of verification, but still - pretty scary to think about.

    --
    using namespace slashdot;
    troll::post();
  9. I'm sorry Uncle Kent; I lost my thesaurus by spun · · Score: 3, Funny

    Brockman: Big game fever is reaching a fever pitch as the
                    fevered rivalry between Springfield U. and
                    Springfield A&M spreads like wildfever. [looks
                    offstage] This is writing?
    Intern: I'm sorry Uncle Kent; I lost my thesaurus.

    --
    - None can love freedom heartily, but good men; the rest love not freedom, but license. -- John Milton
  10. Not a RFID problem, more a database flaw by Opportunist · · Score: 3, Insightful

    As much as I distrust RFIDs, and as much as I detest the way they are being used, this is a problem of the backend, not the RFID itself. It's an ancient problem of databases with data injection that has been used for years now, on the internet, to inject data into online databases or to mess with them generally.

    It's not really new news either. I think I remember that report from about a year ago when RFIDs in our passports became an issue and Tanenbaum raised those concerns. So is this something new or do the old news get repeated for a lack of anything new?

    Must be summer, all the politicians are on holiday...

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  11. No expects an RFID tag to send a SQL injection... by rickkas7 · · Score: 3, Interesting
    From the real paper: "No one currently expects an RFID tag to send a SQL injection attack or a buffer overflow."

    I think the point of the research is that many RFID tags are read by closed or theortically isolated systems like inventory control devices and pet identity scanners that probably have not been examined for the kinds of vulnerabilities that we (theoretically) look for Internet accessible servers.

    While we have a mediocre system for updating Internet-based applications in the face of vulnerabilties, the prospect of updating piles of non-Internet accessible devices is indeed an issue.

  12. The full article -- it's legit by davecb · · Score: 4, Informative

    There is a PDF and also a complete discussion at http://www.rfidvirus.org/virus.html, breifly outlining "Replication Using Self-Referential Queries" and "Replication Using Quines".

    For example,
    Database systems usually offer a way to obtain the currently running queries for system administration purposes. However, these functions return queries as an normal string, which makes it possible to store them in the database, thereby replicating the query.

    We have developed two versions of the virus, one that is contained in a single query, and one the requires multiple queries. The virus using a single query requires less features from the database, but cannot carry SQL code as a payload. The virus using multiple queries requires a database that supports this, but it does allow SQL code as a payload.

    Details on the virus using self-referential queries can be found athttp://www.rfidvirus.org/exploits/sql_self/index .html

    --
    davecb@spamcop.net
  13. Completely Innacurate by Philodoxx · · Score: 3, Informative

    First off this is basically a dupe of http://it.slashdot.org/article.pl?sid=06/03/15/132 4233. It was innacurate when it was first reported and it's innacurate now.

    Here is my reply from the original post and it applies here:

    "There are a variety of standards on how RFID tags are encoded, all of which break down into partitioning the tag's data into segments to form the unique identifier

    For the sake of argument I'll use EPC SGTIN96. In the SGTIN tag has four partitions: Filter, Company Prefix, Item Reference, and Serial Number. Each of these fields is of varying size depending on how big tag is. Typically RFID tags are 96 bits (although some tags can get up to 1Kbit), even using 7 bit ascii there's not a whole lot you can fit in 96 bits. When I poll the reader, or the middleware I'm getting back a number, e.g. 12345 and it's my responsibility to parse through that number to get the fields I'm interested in. In this scenario I would have to be doing some *very* sloppy programming to open myself to an SQL injection attack (something along the lines of treating known numeric data as a string).

    ISO and EPC Gen 2 tags do support custom data, which I suppose could be used to store strings but since it is severely space constrained (typically in the range of 2-32 bytes) I question the viability of such an attack. Not to mention that the field will likely be used to writing in ids instead of human readable data. Finally, it is common to encrypt the custom payload on an rfid tag. So even if somebody were to change it to "AND 1 = 1" it would be caught when the program tries to decrypt the tag."

    An RFID tag contains just a number; newer RFID tags have support for custom payload but 99% of RFID tags are so space constrained that nobody would put raw strings in the tag. I spent a good chunk of last year devleloping RFID applications and not once did I do a straight lookup on the database from data I pulled from the RFID tag. So while I guess this classifies as a vulnerability somebody who does straight database lookups using RFID tag data will bring down the company long before an RFID tag exploit will.

    --
    Oh, a lesson in history from Mr. I'm my own grandpa.