Investigando um dongle RJ45 “maligno”
(lcamtuf.substack.com)- Circulou a alegação de que um adaptador Ethernet-para-USB comprado na China vinha com malware embutido, mas os indícios confirmados se pareciam mais com o método de distribuição de driver de chips antigos RJ45-para-USB
- Os “elementos em russo” no scan do CrowdStrike Falcon batiam com características do EXE autoextraível do 7-Zip de Igor Pavlov, e o conteúdo do arquivo também parecia corresponder ao driver público do SR9900 da CoreChips Shenzhen
- O SR9900 é um chip sobre o qual quase não há informações, mas parece ser um clone direto do Realtek RTL8152B, o que combina com o contexto de dispositivos USB 2.0·100BASE-TX que forneciam drivers por armazenamento próprio na época do Windows 7
- O flash SPI de 512 kB no formato 25x40 da PCB não se mostrou um repositório para captura de pacotes, mas sim uma configuração em que a ferramenta de produção grava diretamente uma imagem ISO 9660 e drivers do Windows para funcionar como um CD-ROM virtual
- O código do microcontrolador USB·Ethernet interno do SR9900 continua sendo uma área não verificada, mas este caso isolado não oferece base suficiente para concluir imediatamente que “hardware estranho” é malicioso
O ponto de partida da suspeita de hardware malicioso na cadeia de suprimentos
- No setor de segurança da informação, alegações de grande sabotagem na cadeia de suprimentos aparecem com frequência, mas parte-se da premissa de que, na prática, a maioria acaba sendo falsa
- Não porque esse tipo de ataque seja impossível, mas porque é complexo, demorado e arriscado de executar
- No mundo real, costuma ser mais simples roubar credenciais ou induzir alguém a baixar um arquivo malicioso
- A polêmica cresceu quando um jovem fundador afirmou nas redes sociais que um adaptador Ethernet-para-USB comprado na China vinha pré-carregado com malware
- A alegação incluía expressões como evasão de máquina virtual, captura de teclas e uso de elementos em russo
- As publicações relacionadas tiveram milhões de visualizações, mas as informações técnicas concretas permaneceram pouco claras
Verificação do scan público e dos arquivos de driver
- O relatório de scan do CrowdStrike Falcon compartilhado pelo autor da postagem era ambíguo e estava mais para pista confusa do que para evidência decisiva
- O binário analisado era um EXE autoextraível baseado no 7-Zip, programa de compressão open source criado por Igor Pavlov
- Os elementos em russo podem ser entendidos como traços ligados à nacionalidade do autor
- O fato de ser um arquivo autoextraível que instala drivers explica boa parte do comportamento que pareceu suspeito
- O conteúdo do arquivo parecia coincidir com o driver público assinado 2.0.7.0 para chips RJ45-para-USB fabricados pela CoreChips Shenzhen
- No arquivo
.infincluído, a empresa também usa o nome Corechip Semiconductor
- No arquivo
O chip SR9900 e o contexto de um projeto antigo
- O driver faz referência ao chip SR9900
- Quase não há informações públicas sobre o chip e seu fabricante
- A investigação indicou que o SR9900 parecia ser um clone direto do Realtek RTL8152B
- Uma apresentação de produto em inglês sugere que “SR” significa “Supereal”, e a marca Supereal também aparece no contexto dos antigos chips falsos FTDI FT232RL, que causaram problemas no setor
- Essa linhagem importa porque o projeto original da Realtek é antigo, baseado em um datasheet de 2013
- O dispositivo suporta 100BASE-TX e USB 2.0
- Isso se encaixa nas práticas de periféricos da era do Windows 7
- Naquela época, os drives de CD-ROM estavam desaparecendo, mas ainda não dava para presumir que todos os computadores estivessem sempre online
- Alguns periféricos se apresentarem como dispositivos de armazenamento em massa contendo seus próprios drivers fazia sentido nesse contexto
- Do ponto de vista de segurança, isso não era claramente melhor nem pior do que outros métodos improvisados de entregar arquivos de driver
O uso real do flash SPI
- As fotos da desmontagem mostravam uma PCB simples com um CI de flash serial do tipo 25x40 montado ao lado do SR9900
- A principal dúvida era se o flash de 512 kB servia para firmware ou para armazenar pacotes capturados
- A documentação do SR9900 e do RTL8152B não explicava suficientemente a finalidade do CI de flash associado, e nem mesmo buscas por imagens de esquemas encontraram um projeto do chip original da Realtek com algo conectado aos pinos seriais
- O próprio barramento SPI é simples
- O host fornece o sinal de clock na velocidade desejada
- A cada borda de subida do clock, o periférico lê 1 bit do “serial in”, e o host lê 1 bit do “serial out”
- Não há handshake, cabeçalho, bit de paridade nem controle de fluxo
- Uma leitura comum de flash serial consiste em enviar o comando READ 0x03 e um endereço de 3 bytes, depois receber os dados em sequência
- Por isso, também era possível comprar o dongle real e despejar o conteúdo da memória
- Após localizar o texto original em chinês no site da CoreChips e pesquisar mais, foram encontrados posts antigos em fóruns chineses e arquivos protegidos por senha e pagos relacionados à “ferramenta de produção em massa do chip série SR9900 para sistema Windows”
- O arquivo “SR9900(A)设计资料1018.rar” foi obtido por US$ 2,99 para verificação
- O pacote incluía a ferramenta de produção SR9900Efuse, com uma interface de estilo retrô
- A imagem de sistema de arquivos ISO 9660 de 168 kB incluída continha um driver autoextraível para Windows
- A ferramenta de produção grava o arquivo
.isodiretamente no flash SPI - O chip passa a funcionar como um CD-ROM “definido por software”, substituindo um CD-ROM físico
- A imagem de disco pode ser baixada aqui, e a senha é
rj45
- A ferramenta de produção grava o arquivo
- A imagem do CD-ROM foi criada com “ULTRAISO V9.3 CD & DVD CREATOR, (C) EZB SYSTEMS”
- O UltraISO é apresentado como uma ferramenta com cara da era Windows XP
- O requisito para execução informado é Intel Pentium 166MHz ou superior
Função opcional de CD-ROM virtual e limitações restantes
- O arquivo principal também incluía o documento “SR9900(A)设计前必看.docx”
- Segundo um trecho traduzido automaticamente, ao usar o SR9900 como placa de rede USB, é possível usar o SPI como drive óptico virtual para instalar o driver no Windows
- O flash SPI pode ser previamente gravado com o driver do SR9900 para Windows
- O uso do chip de flash é explicitamente opcional
- O aspecto estranho neste caso parece vir não de um comportamento malicioso, mas de um método antigo de distribuição de drivers para periféricos
- Mesmo sem um laboratório de hardware, foi possível resolver as dúvidas centrais apenas com pesquisa em material público e paciência
- A área ainda não totalmente verificada são os dois pequenos núcleos de microcontrolador dentro do CI SR9900
- Há núcleos internos para USB e Ethernet, e cada um executa seu próprio código interno
- Se o fabricante do chip estivesse envolvido, talvez fosse possível inspecionar essa parte
- A Realtek fornece um driver Linux open source para o RTL8152, e esse driver aplica patches de firmware a partir da memória
- Visualmente, não parecia haver criptografia nem assinatura aplicada
- Não é possível descartar completamente a possibilidade de um dongle USB malicioso
- O texto menciona que, se você fosse um cientista do programa nuclear iraniano, isso seria motivo de preocupação
- Se você fosse o CISO de uma empresa civil estrategicamente importante, algum nível de cautela seria apropriado
- Em redes domésticas, porém, este caso por si só não oferece base para tratá-lo como ameaça imediata
1 comentários
Opiniões no Hacker News
Essa formulação é enganosa. O problema não era exatamente o chip falsificado em si, mas o fato de que, ao detectar uma falsificação, o driver oficial da FTDI alterava para 0000 o PID do hardware em funcionamento, fazendo com que ele não fosse mais reconhecido: http://www.rei-labs.net/changing-ftdi-pid/
Ri da frase “requer Intel Pentium 166 MHz ou superior”. O texto também é divertido, e gosto muito desse gênero de “uma pessoa inteligente, entediada, vai até o fim investigando uma conclusão que parece óbvia pelo senso comum, mas cuja prova exige uma criatividade e persistência inesperadas”
eu estava pronto para ir à Dark Web (amazon.com) e comprar um dongle para despejar o conteúdo do chip de memóriaTambém é mais confortável dizer que se é vítima e que se descobriu uma conspiração do que aceitar que isso era apenas um resultado remendado, comum em engenharia. Aplausos ao autor
Não estou dizendo que spyware chinês não seja um problema. Mas, se você não tem a competência técnica básica para distinguir isso, não deveria sair correndo por aí gritando “China! China! China!”. É assim que políticos pegam fake news e as usam como desculpa para políticas idiotas, e isso é prejudicial à sociedade
Assim que vi o tuíte sobre esse dongle “malicioso”, reconheci que era exatamente o mesmo item com o qual eu já tinha trabalhado. Em vez de malicioso, ele é só irritante
https://blog.brixit.nl/making-a-usb-ethernet-adapter-work-sr...
No meu caso, desativei o módulo de flash SPI para que ele não aparecesse como unidade de CD, mas o autor deste texto chegou a encontrar documentação dizendo que o SPI era opcional. Curiosamente, agora o texto também fornece uma ferramenta para reflashear e criar um verdadeiro dongle RJ45 malicioso
Parece que colocaram um footprint de diodo para encapsulamento SOT23 de 3 pinos e, por não terem estoque do componente especial, soldaram um diodo SOD323 inclinado uns 30 graus entre dois pinos
Se foi uma consequência não intencional, no máximo era segurança por obscuridade desde o início, e o correto é que isso venha à tona para que as pessoas não dependam dela
autorun.infao CD falso?Gosto bastante da abordagem em que um dispositivo USB se faz passar por armazenamento e fornece seu próprio driver. A forma “correta” hoje em dia provavelmente seria colocar coisas nos servidores da Microsoft e fazer o sistema baixar o necessário quando o dispositivo for conectado, mas já lidei o suficiente com equipamentos que exigem instalação manual de driver para saber que isso não é tão simples quanto parece. Por exemplo, preciso baixar drivers ADB específicos de fornecedores com muita frequência
De qualquer forma, é uma abordagem esperta quando o periférico ajuda na configuração inicial, e ter o driver dentro do dispositivo é um pouco mais fácil do que sair procurando a fonte oficial de download
Mas vários modos de operação tornaram difícil configurar dispositivos como dongles USB 4G/LTE. Eles aparecem como armazenamento USB, ou como algum tipo de dispositivo serial, ou como algo parecido com um modem CDC-ACM, e para alternar para o modo correto é preciso combinar ferramentas e comandos AT específicos do fornecedor. Eu queria voltar a dispositivos simples que fazem seu trabalho assim que são conectados
Não sei qual é o estado da arte hoje, mas por muito tempo foi comum acoplar uma pequena flash a ICs de periféricos USB para armazenar VID/PID e outras informações de configuração USB. Assim, quando conectado, o dispositivo podia ser enumerado corretamente e associado ao driver certo. Dependendo da época do projeto, a menor capacidade facilmente disponível na cadeia de suprimentos talvez fosse 512 kB, então não seria estranho usar um chip desses para armazenar algumas dezenas de bytes
A parte do ISO é um pouco estranha, mas, sendo sincero, é uma forma criativa de contornar políticas corporativas de segurança de TI que restringem dispositivos USB de armazenamento em massa. Unidades ópticas usam outra classe de dispositivo e provavelmente escapam da maioria das restrições; se forem enumeradas como um dispositivo composto que combina unidade óptica e adaptador de rede, parece possível instalar seu próprio driver até em computadores onde “USB drives” estejam bloqueados
O estranho é que eles gastaram dinheiro adicionando flash, mas removeram os componentes de isolamento magnético. Só há capacitores em série, o conector é pequeno demais para parecer ter componentes magnéticos integrados, e incluir capacitores em série junto com isso também não faz sentido
Eu ficaria realmente irritado se descobrisse que o dongle USB Ethernet que comprei não tem componentes de isolamento magnético
Existem dongles USB Ethernet “maliciosos”? Claro que existem. Só que este produto não é um deles
https://hak5.org/products/lan-turtle
Do ponto de vista de um purista de RJ45, isto deveria ser chamado de 8P8C. Vou me retirar
Por exemplo, já vi “dongles RJ45” que convertem USB para serial RS232 para portas de console de muitos equipamentos de rede
Para quem se importa com desempenho em USB-1000BASE-T e, hoje em dia, dongles 2.5GBaseT em geral, é bom saber a diferença entre ser um dispositivo USB e ser um dispositivo PCI Express
Depois de conectar a quente em um notebook com um kernel Linux recente, basta ver se ele aparece em
sudo lsusb -vou emsudo lspci -vDispositivos PCIe nativos entregam desempenho muito melhor, chegam até a velocidade de linha de 2.5GBASE-T e se comunicam com o host por meio de uma implementação de Thunderbolt sobre USB. Dispositivos exclusivamente USB também podem funcionar razoavelmente bem, mas há um motivo para serem baratos. Claro, notebooks de baixo custo talvez nem tenham implementação de Thunderbolt, então isso também precisa ser levado em conta
Mesmo assim, basicamente ainda é um dongle e, no Mac, chega a 9,4 Gbit/s com iperf3. Naturalmente, aparece como um dispositivo PCIe
[1] https://www.amazon.com/gp/product/B0DHSWSSBY
Se você só tem uma porta USB e se importa com desempenho, a diferença maior provavelmente é se o dispositivo Ethernet USB implementa CDC-NCM ou apenas CDC-ECM. O CDC-ECM envia os frames um a um para o driver, e o driver precisa confirmar e processar um por um, gerando bastante trabalho de CPU; já o CDC-NCM, mais recente, envia os frames em lotes
No meu notebook, mesmo um dongle ECM de 1 Gbit chega à velocidade de gigabit, mas usa 100% de um núcleo de CPU; um dongle NCM de 1 Gbit quase não usa CPU
Criar uma conexão prejudicial por uma porta Ethernet é extremamente difícil, mas criar uma conexão prejudicial por uma porta USB é muito fácil. Deve-se chamar as coisas pelo que são. Isto é um dongle USB malicioso que também tem um soquete Ethernet