[OT]Hacker da Mozilla usa Arduino para ganhar acesso a 4 milhões de quartos de h...

277 views
Skip to first unread message

Eduardo Gonçalves

unread,
Aug 3, 2012, 9:46:27 PM8/3/12
to ardu...@googlegroups.com, arduino-...@googlegroups.com


 
 

Enviado para você por Bulinha através do Google Reader:

 
 

via BR-Linux.org de Augusto Campos em 03/08/12

A Onity é extremamente bem-sucedida em oferecer a hoteis do mundo todo fechaduras digitais acionadas por um cartão que o hóspede leva consigo, como se fosse chave – mas aparentemente o sucesso não deriva da sua capacidade de produzir um sistema seguro, do ponto de vista digital.

Segundo apresentado em recente evento do ramo, o desenvolvedor Cody Brocious (que além de pesquisar sobre fechaduras é participante das atividades da Mozilla) usou um exemplar do hardware aberto Arduino para descobrir que em apenas 200 milissegundos ele pode abrir qualquer porta desta marca, por meio de uma simples leitura e reenvio de 4 bytes da memória da fechadura, que ficam em um endereço fixo, sem criptografia nem autenticação.

Segundo ele, não há upgrade de firmware possível, a única solução para evitar este tipo de comprometimento (que ele acredita ser do conhecimento de entidades governamentais) é trocar componentes fisicamente, em cada porta.

Eu me hospedo com alguma frequência em hoteis que usam o sistema, e já tomo cuidado com objetos deixados no quarto na minha ausência. Vou começar a ter ainda mais cautela, por via das dúvidas. (via extremetech.com – “Black Hat hacker gains access to 4 million hotel rooms with Arduino microcontroller | ExtremeTech”


A Onity é extremamente bem-sucedida em oferecer a hoteis do mundo todo
fechaduras digitais acionadas por um cartão que o hóspede leva consigo,
como se fosse chave – mas aparentemente o sucesso não deriva da sua
capacidade de produzir um sistema seguro, do ponto de vista digital.

Segundo apresentado em recente evento do ramo, o desenvolvedor Cody
Brocious (que além de pesquisar sobre fechaduras é participante das
atividades da Mozilla) usou um exemplar do hardware aberto Arduino para
descobrir que em apenas 200 milissegundos ele pode abrir qualquer porta
desta marca, por meio de uma simples leitura e reenvio de 4 bytes da
memória da fechadura, que ficam em um endereço fixo, sem criptografia
nem autenticação.

Segundo ele, não há upgrade de firmware possível, a única solução para
evitar este tipo de comprometimento (que ele acredita ser do
conhecimento de entidades governamentais) é trocar componentes
fisicamente, em cada porta.

Eu me hospedo com alguma frequência em hoteis que usam o sistema, e já
tomo cuidado com objetos deixados no quarto na minha ausência. Vou
começar a ter ainda mais cautela, por via das dúvidas. (via
extremetech.com – “Black Hat hacker gains access to 4 million hotel
rooms with Arduino microcontroller | ExtremeTech”)



Paulo Soares

unread,
Aug 3, 2012, 11:23:28 PM8/3/12
to ardu...@googlegroups.com

Qual a possibilidade de hacker aqueles cofres de hotel?

A marca é a mesma.

Ñ¡£†öñ conceicao

unread,
Aug 3, 2012, 11:37:54 PM8/3/12
to ardu...@googlegroups.com
           Ja houve um episodio q não foi por ar de mythbuster "caçadores de mitos! falando
sobre a segurança destes cartões "se me recordo" provando q eles não sãoo laa assim tão seguros.
 

Oscar Marques

unread,
Aug 4, 2012, 12:05:51 AM8/4/12
to ardu...@googlegroups.com
RFID.
ISO14933
openpcd.org
Ja brinquei com MIFARE.
Metro Rio e varios outros servicos vulneraveis.
Tem uma apresentacao da Defcon sobre RFID hacking altamente recomendavel.

===

Hacking no cartao em SP:

Engenharia reversa Bilhete Unico (Full Disclosure)

Decidi fazer full disclosure, por não achar que o problema não é uma vulnerabilidade e sim uma escolha deliberada de usar chaves padrão para proteção do bilhete unico.

O Cartão é o MIFARE CLASSIC 4K. Os dados são organizados em setores, cada setor com 4 blocos de 16 bytes. 
O primeiro bloco eh read-only e tem o UID do cartao + dados do fabricante do cartao
O ultimo bloco de cada sector sempre tem as chaves a e b e o direito de acesso. O ultimo sector estar organizado mais ou menos assim (olhar um hexdump qualquer):

chave A            direitos   chave b
----------------- ----------  ---------------- 
a0 a1 a2 a3 a4 a5 08 77 8f 69 b0 b1 b2 b3 b4 b5


exemplo de como os dados sao organizados no cartao

0000000 9a 49 37 b1 50 08 04 00 62 63 64 65 66 67 68 69 bloco 0, sector 0: uid do cartao 9a4937b1, dados do fabricante 0804006263646566676869
0000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bloco 1, sector 0
0000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..
0000030 ff ff ff ff ff ff ff 07 80 69 ff ff ff ff ff ff bloco 3, sector 0: chave a, direitos de acesso e chave b
0000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bloco 0, sector 1
0000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..
0000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..
0000070 a0 a1 a2 a3 a4 a5 08 77 8f 69 b0 b1 b2 b3 b4 b5 bloco 3, sector 1: chave a, direitos de acesso e chave b


ferramentas usadas para ler e escrever dados no cartão:

* Um leitor de cartão (para mim as melhores são baseadas no chip PN532) um exemplo: http://www.adafruit.com/products/364
* mfoc (nfc-utils)
* nfc-mfclassic (nfc-utils)
* hexedit e vimdiff


O grande problema é que foram utilizada as chaves padrões e por isso em menos de 30 minutos o MFOC conseguiu recuperar todas as chaves para criptografar todos os setores. Por conta disso é possivel, se recarregar o cartão, fazer um backup dos dados, usar todo o cartão e gravar novamente o backup salvo no cartão. grau de dificuldade: 0. 

testes que foram realizados:

p.s: vale salientar que nenhuma vez o cartão foi utilizado depois de carregar o backup no cartão. Só validamos o cartão nos pontos de verificação de saldo.

* Carregar novamente backup no mesmo cartão 
 * compramos o cartão novo, fizemos um backup, usamos o cartão até o fim, carregamos o backup novamente no cartão e o saldo estava lá novamente.

* Clonar o cartão em outro cartão virgem
 * o backup pode ser copiado em outro cartão. É preciso no backup somente alterar o ID do cartão para o ID do cartão virgem, uma vez que essa area do cartão é read-only.

Pq até hoje eu não liberei estas informações?

Pois para mim, esse erro era esperado uma vez que, não é nenhuma surpresa, as empresas brasileiras, não ligarem a minima para segurança. Outro ponto é que foi publicado na midia que alguem "descobriu" isso, mas não foi revelado como. Para mim mais importante do que o disclosure conciente é o full disclosure, principalmente nos sistems que afetam o dia-dia dos cidadãos. Outro ponto importante é que pessoas de outros estados e cidades, possam testar os próprios sistemas.

Tentei por meses, sem sucesso, entender o layout dos dados, ou como os dados são organizados no cartão. Infelizmente sem sucesso tb. O melhor teste aqui é, comprar um cartão carregado, gerar um dump, usar o cartão, gerar um novo dump e comparar quais campos mudaram.  Algumas coisas que descobri:

Sector 0, Sector 1, Sector 2 não há mudança
Sector 3 e Sector 4 são repetidos
 
o sector 3, block 3 guarda ou valor ou timestamp. isso pq ao usar 2 x onibus no mesmo dia e sem cobrar denovo (dentro de periodo de 1 hora) os primeiros 7 bytes não mudaram. somente o ultimo (que pode ser a casa dos minutos em um timestamp ou um CRC para validar campo)


solução sugerida: 

bom primeiro ponto sem duvida nenhuma é alterar as chaves default de criptografia dos cartões. Muito interessante é como fazer isso, sem impactar os clientes. 

Outro ponto que evita a clonagem de cartão é manter uma base de cartão autorizados e fazer essa validação na hora em que o usuário tentar usar o cartão. O desafio aqui é como diariamente (via batch) ou online (duvido que os onibus estão conectados a alguma rede, acredito que toda a operação é offline). 

de qualquer forma, pesquisadores Brasileiros, mãos a obra, não é possivel que um sistema tão falho, ficou tanto tempo no ar. Precisamos olhar os sistemas ao nosso redor e procurarmos entender como eles funcionam e como pode ser burlados e melhorados. (hint: Urna Eletronica)

Abraços

Alguém

Em 3 de agosto de 2012 23:37, Ñ¡£†öñ conceicao <nilton...@hotmail.com> escreveu:
           Ja houve um episodio q não foi por ar de mythbuster "caçadores de mitos! falando
sobre a segurança destes cartões "se me recordo" provando q eles não sãoo laa assim tão seguros.
 



Reply all
Reply to author
Forward
0 new messages