Making USB Great Again with USBFILTER

Documentos relacionados
Índice. Introdução. Pré-requisitos. Requisitos

USB - Introdução. Meios Eletrônicos I 2011

DSL- 500G Generation II Configurações de Segurança

Configurando a autenticação radius por meio de Cisco cache engine

Introdução aos Sistemas Operacionais. Subsistema de Entrada e Saída

Gerência de Entrada e Saída

Netfilter e Iptables

Como configurar o Microsoft NetMeeting com os Cisco IOS Gateways

Cap. 12 Gerência de Dispositivos 1

O registro Cisco unificou o telefone IP 9971 ao Cisco Unified Communications Manager Express

Pesquisando defeitos o valor de utilização da alta utilização da CPU às interrupções

Laborato rio: Roteamento Esta tico

Instale o sistema operacional de Redhat/CentOS no server das M-séries UCS

SEGURANÇA INFORMÁTICA E DAS COMUNICAÇÕES - Ficha de Apoio Extra- CAPÍTULO 3. SEGURANÇA EM REDES E SISTEMAS

Introdução a Engenharia Elétrica

Sistemas Operacionais. Laboratório 1 (Ambiente de Aprendizado)

Instalação e Configuração de Servidores Linux Server Gerenciamento de Processos. Prof. Alex Furtunato

Instalação do servidor radius com autenticação via ldap e entrega de vlan dinâmica por grupo de usuário do Ldap.

Configurando e Testando a sua Rede

LINGUAGEM C PARA O 8051

Comandos de Verificação. Alberto Felipe Friderichs Barros

AXC Trainer Primeiros passos. Laboratório B-003 Prof. Thiago A. R. Passarin - DAELT - UTFPR

LINGUAGEM C PARA O 8051

Arquitectura de Computadores MEEC (2013/14 2º Sem.)

Arquitectura de Computadores MEEC (2013/14 2º Sem.)

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Guia de Start-Up. LightDrive LD3032

Dispositivos Externos Guia do Usuário

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Exemplo Cliente-Servidor. Cliente. Servidor 1/ Requisição / Resposta Enlace 2 Físico 1. Kernel. Kernel

Network Address Translation - NAT. 2 Mecanismo de Operação. Pedroso. 4 de março de 2009

Configuração do Servidor Gateway Firewall e DHCP

Entrada/Saída e Armazenamento

Barramento USB. Trabalhos Práticos AM 2007/2008. Barramento USB. Objectivos

Chromecast como o serviço do mdns a fim moldar a configuração da tela no WLC

Subsistema de Entrada/Saída. Aleardo Manacero Jr.

Como usar os comandos standby preempt e standby track

INSTALACAO PRODUTOS DIGIVOICE NO ISSABEL PREPARAÇÃO DO SISTEMA

Nexo 9000: & ARP; Comportamento da sincronização da tabela de MAC com o tronco NON-VPC L2

Como configurar IPTV na ONU FiberHome

Entrada e Saída. Tópicos de E/S

Gerência de Redes de Computadores. 05 Gerência de Hospedeiros (Hosts)

Boas práticas para obter o máximo de desempenho com equipamentos da MikroTik.

Do Wireless LAN taxa por usuário que limita a solução

Compilando o Kernel Linux

Responder as questões propostas e relatar as principais observações feitas durante a prática.

Disponibilidade de Hardware

Infra-Estrutura de Software. Introdução. (cont.)

Sistemas Operacionais João Bosco T. Junior. Sistemas Operacionais João Bosco Junior - V1.3

MOSAIC: Stateless Mobility for HTTP-based Applications

UTILIZAÇÃO DA BIBLIOTECA DIMEPSAT PARA ANDROID

Exceeding Automation Limits. Instruções FDT/DTM

Começando com o AWS IoT

Flexible NetFlow que filtra com monitoramento de desempenho

Marilda Ferrari Mendes Giafarov Sidinei Donisete Marin

Policy Routing with Catalyst 3550 Series Switch Configuration Example

Sistemas Operacionais Profa. Roberta Lima Gomes ROTEIRO LAB File System

Uso do PIN-Pad USB com o SCOPE Versão 1.0

Guia de Start-Up. LightDrive LD G250x. OLTs LightDrive 2502, 2502F ou 2504

PCS-2042 Sistemas Operacionais. Projeto 3: Drivers

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Uso de scripts EEM monitorar a utilização elevada da CPU em Series Switch do Cisco catalyst

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de condição. Prof. Alex Camargo

Aula 09 Firewall (Configuração) Prof. Roitier Campos Gonçalves

Configurar a interface de gerenciamento IPv4 em um interruptor SG350XG ou SG550XG com o CLI

SISTEMAS DE ARMAZENAMENTO UNIFICADO EMC VNXe3150, VNXe3300

LED RGB, PWM, Comunicação Serial, Acelerômetro

Infra-Estrutura de Software

Instalação. Versão de 13/10/99. Volnys B. Bernal & Edson T. Midorikawa. Agenda. Instalação Linux. Introdução. Introdução.

FICHA TÉCNICA M07TSC-ET / M07TSC-NN

Instalação Linux Volnys Borges Bernal Laboratório de Sistemas Integráveis

Configurar transportes e a engenharia de tráfego múltiplos com política de controle centralizado e política da rota do App

Dispositivos Externos Guia do Usuário

MANUAL CONFIGURAÇÃO OLT EPON PHYHOME FHL104C

Introdução ao Gerenciamento de Entrada e Saída (E/S)

Ambos são sensores capacitivos de toque com alta oferecer componentes biométricos para as mais

Infra-Estrutura de Software

Protocolos da escavação de um túnel Assíncrono no exemplo de configuração BSTUN

Lic. Engenharia de Sistemas e Informática

Application protocol. Presentation protocol. Session protocol. Transport protocol. Network protocol. Data link protocol. Physical protocol.

Webinar Redes Definidas por Software (SDN)

Manual de Configuração Rápida. Magellan 2200 VS / Magellan 2300 VS

ASA 8.3(x): Conecte três redes internas com o exemplo de configuração do Internet

Preparatório LPIC-1 Tópico 101

Exemplo de configuração da característica de Wireshark dos Catalyst 4500 Series Switch

Exemplo da configuração de HSRP do IPv6

Configurar o 2.1 ISE e a verificação da postura USB de AnyConnect 4.3

MICROPROCESSADORES. Unidade de Entrada/Saída (I/O) Nuno Cavaco Gomes Horta. Universidade Técnica de Lisboa / Instituto Superior Técnico

Troubleshooting da configuração da tradução de endereço de rede ASA

SDM: Filtragem URL no exemplo da configuração de roteador do Cisco IOS

Configurar a âncora da mobilidade em controladores sem fio do catalizador 9800

Este documento não se restringe a versões de software e hardware específicas.

NT-EPON Nota Técnica sobre Boas práticas FK-C Objetivo. 2. Descrição

GV4 SDI2 Devices. Security Systems. Department 11/9/ Robert Bosch LLC and affiliates. All rights reserved.

Switches de Rede AirLive

Arquitetura de Computadores

Seminários S2i. Barramento USB. Teoria e Projetos. Guilherme Francisco Mallmann

Transcrição:

Making USB Great Again with USBFILTER Dave Tian Nolen Scaife Kevin Butler Patrick Traynor University of Florida Adam Bates University of Ilinois Tradução: Leandro Fabian Junior Universidade Tecnológica Federal do Paraná

Por que o USB era ótimo? Universal Serial Bus Velocidade USB 1.0/2.0/3.0/3.1/Type-C 1.5 Mb/s 10 Gb/s Ubíquo 2

Por que o USB não é mais tão bom? 3

Por que o USB não é mais tão bom? 3

Por que o USB não é mais tão bom? 3

Por que o USB não é mais tão bom? 3

Por que o USB não é mais tão bom? 3

Enumeração USB Host Dispositivo AtribuiEndereco(n) Confirmação PegaDescritor(Dispositivo) Kingston, Unidade Flash, nº Série,... PegaDescritor(Interface) Armazenamento Interface Humana 4

Dispositivo USB EP 0 EP 0 EP 0 EP 0 EP 0 EP 0 EP 1 EP1 EP 1 EP 2 EP 1 EP 2 EP 1 EP 2 EP 1 EP 2 Out EP n In EP n Out In Out Interface 0 In Interface 1 Interface 2 Dispositivo USB 5

Pacote USB USB_pacote( tecla ) USB_pacote( dado ) 6

Pacote USB USB_pacote( tecla ) USB_ paco te( te c la ) USB_pacote( dado ) 6

USBFILTER App1 App2 App3 usbtables Espaço de Usuário Espaço do Kernel Operação de I/O netlink Storage Driver Input Driver Video Driver URB banco de regras Controlador do Host USBFILTER módulos usbfilter Pacote USB Dispositivos USB 7

Metas Mediação completa Inviolável Verificável Granularidade Extensibilidade Monitores de Referência 8

Regras de Construção Processo Dispositivo Pacote LUM pid, ppid, pgid, uid, euid, gid, egid, comm bus#, dev#, port#, if#, devpath, manufacturer, product, serial type, direction, endpoint, address name 9

Consistência de Regras Conflito Geral conflito_geral (Ra, Rb ) valor Conflito Fraco Conflito Forte valor conflito_fraco (Ra, Rb ) conflito_geral (Ra, Rb ) ^ ação (Ra ) = ação (Rb ). conflito_forte (R a, Rb ) conflito_geral (Ra, Rb ) ^ ação (Ra ) = / ação (Rb ). 10

Módulo USBFILTER Linux (LUM) Extensão definida pelo usuário para o USBFILTER Unidade de construção de regras <linux/usbfilter.h> escrevendo novas regras com LUM Olhando dentro do pacote USB comandos SCSI, pacotes IP, pacotes HID, etc. 11

LUM: detectar escrita pelo SCSI 1 int lbsw_filter_urb(struct urb *urb) 2 { char opcode; 3 4 /* HastobeanOUTpacket 5 */ if (usb_pipein(urb >pipe)) 6 return 0; 7 8 /* Makesurethepacketislargeenough 9 */ if (urb >transfer_buffer_length<=lum_scsi_cmd_idx) 10 return 0; 11 12 /* Makesurethepacketisnotempty 13 */ if (!urb >transfer_buffer) 14 return 0; 15 16 /* GettheSCSIcmdopcode 17 */ opcode=(( char *)urb >transfer_buffer)[lum_scsi_cmd_idx]; 18 19 /* CurrentonlyhandleWRITE_10forKingston 20 */ switch (opcode){ 21 case WRITE_10: 22 return 1; 23 default: 24 break; 25 } 26 27 return 0; 28 29 } 12

Visão Geral USBFILTER 27 arquivos fonte no kernel 4 novos arquivos, 23 arquivos modificados Através do USB, SCSI, Block, e Networking USBTABLES Mecanismo Prolog interno 21 regras de construção 13

USBTABLES -h d debug Enable debug mode c config Path to configuration file(tbd) h help Display this help message p dump Dump all the rules a add Add a new rule r remove Remove an existing rule s sync Synchronize rules with kernel e enable Enable usb filter q disable Disable usb filter b behave Change the default behavior o proc Process table rule v dev Device table rule k pkt Packet table rule l lum LUM table rule t act Table rule action proc:pid,ppid,pgid,uid,euid,gid,egid,comm dev:busnum,devnum,portnum,ifnum,devpath,product, manufacturer,serial pkt:types,direction,endpoint,address lum:name behavior/action:allow drop 14

Parando ataques BadUSB Para teclado/mouse: usbtables a mymouse v busnum=1,devnum=4,portnum=2, devpath=1.2,product="usbopticalmouse", manufacturer=pixart ktypes=1 t allow usbtables a mykeyboard v busnum=1,devnum=3, portnum=1,devpath=1.1, product="dellusbentrykeyboard", manufacturer=dell ktypes=1 t allow usbtables a noducky k types=1 t drop 15

Fixar webcam ao Skype Para uma webcam Logitech C310: usbtables a skype o uid=1001,comm=skype v serial=b4482a20 t allow usbtables a nowebcam v serial=b4482a20 t drop 16

Sem vazamento de dados Para qualquer dispositivo USB de armazenamento: usbtables a nodataexfil4 l name=block_scsi_write t drop 17

Headset surdo Para headsets USB Logitech: usbtables a logitech headset v ifnum=2,product= "LogitechUSBHeadset",manufacturer=Logitech k Direction=1 t drop 18

Carga segura Para o Nexus 4: usbtables a n4 charger v product="nexus4" t drop Para qualquer smartphone usbtables a charger v busnum=1,portnum=4 t drop 19

Escalabilidade USBTABLES: Adicionando uma nova regra 20 Regras 100 Regras Média (ms) 5.9 5.9 USBFILTER: Filtragem de pacotes 20 Regras 100 Regras Média (µs) 2.6 9.7 20

MB/Segundo Rendimento Tamanho Médio do Arquivo 21

Latência Latência (µs) 1 KB 10 KB 100 KB 1 MB 10 MB 100 MB Stock 97.6 98.1 99.2 105.5 741.7 5177.7 USBFILTER 97.7 98.2 99.6 106.3 851.5 6088.4 Overhead 0.1% 0.1% 0.4% 0.8% 14.8% 17.6% 22

Tempo/Pontos Desempenho no mundo real Cargas de trabalho do mundo real 23

Limitações e Trabalhos Futuros Chamadas de interrupção Drivers específicos de vendedor Filtrar caminho de resposta Criar mais LUMs Usabilidade 24

Download do USBFILTER: https://github.com/daveti/usbfilter Informe os bugs em: root@davejingtian.org