inyecci[pleaseinsertprerenderunicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos...

55
μAgenda Introducci´ on: testing e inyecci´ on de defectos Introducci´ on: Protocolo USB Inyecci´ on de defectos sobre USB Inyecci´ on de defectos y su aplicaci´on en dispositivos USB Ariel Sabiguero Andr´ es Aguirre Instituto de Computaci´on Facultad de Ingenier´ ıa Universidad de la Rep´ ublica, Uruguay {asabigue|aaguirre}@fing.edu.uy 3/3/2011 A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyecci´ on y USB

Upload: others

Post on 10-Apr-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Inyeccion de defectos y su aplicacion endispositivos USB

Ariel Sabiguero Andres Aguirre

Instituto de ComputacionFacultad de Ingenierıa

Universidad de la Republica, Uruguay{asabigue|aaguirre}@fing.edu.uy

3/3/2011

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 2: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

1 Introduccion: testing e inyeccion de defectos¿que es probar?Conceptos...La vision del servicio

2 Introduccion: Protocolo USBConceptos generalesTipos de endpointsUn poco mas de detalleUso de USB en los sistemas embebidos

3 Inyeccion de defectos sobre USBConceptos generales¿Porque inyeccion de defectos sobre USB?Conceptos basicos de USB en GNU/LinuxHerramienta para inyectar defectos en USB

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 3: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

¿que es probar?

Testing

Glenford Myers

Testear (probar) es el proceso de ejecutar un programa con el obje-tivo de encontrarle errores.

IEEE

Una actividad en la cual un sistema o componente es ejecutado bajocondiciones especificadas, sus resultados son observados o grabadosy una evaluacion es hecha de algun aspecto del sistema o compo-nente.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 4: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

¿que es probar?

Verificacion y testing

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 5: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

¿que es probar?

... no olvidemos que

Edsger Dijkstra

El testing puede ser usado para mostrar la presencia de bugs, peronunca para mostrar su ausencia!

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 6: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

¿que es probar?

Hay que probar mas

Aeroespacio: Mariners 1, 3, 8, Ariane 5 (1996)

Sobredosis radiologicas en Panama

Durante 2006, el 60% de los automoviles de una marca delujo alemana volvieron a taller por fallas en el software

Las menos notorias, estan entre nosotros

¿colgadas de nuestros PCs?¿colgadas de celulares?¿el cambiador de CDs?

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 7: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:
Page 8: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

¿que es probar?

Costo y dificultades

Del 50% al 60% del costo total (recursos humanos ymateriales) en el ciclo de vida completo van a testing

Dificultades

vinculadas a la comprension del proceso de introduccion deerrores en el sistema finalde orden psicologico y/o culturalformales: no puede existir un algoritmo o maquina capaz dedemostrar la exactitud total de ningun sistema

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 9: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Conceptos...

defecto (fault)

Es una anomalıa en el software, en el hardware o en los datos quetienen el potencial de causar errores y fallos. Ejemplos de defectosincluyen cortos en circuitos de hardware, o la division por cero enun fallo de software. Los defectos son las causas de los errores, perono todo defecto lleva a un error. Un defecto se dice activo cuandoproduce un error.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 10: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Conceptos...

error (error)

Es la ocurrencia de la condicion invalida o valor incorrecto en elsistema. La interaccion entre el defecto y un estımulo es lo queproduce el error. Un error es entonces la manifestacion de un defectoen el sistema. Un error es por naturaleza temporal. Existen dosestados posibles de un error: latente y detectado. Un error es latentemientras no ha sido reconocido como tal. Puede ser detectado pormecanismos de deteccion o por los efectos del error sobre el sistema.

falla (failure)

de un sistema se da cuando el mismo no se comporta de acuerdo asu especificacion.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 11: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Conceptos...

Relacion entre Defecto, Error y Falla

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 12: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Conceptos...

Clasificacion de defectos

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 13: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Conceptos...

Defectos por duracion

Defectos permanentes: son irreversibles. La recuperacion deestos defectos se logra solo con el reemplazo del componentedanado.

Defectos transitorios: son usualmente causados porelementos del entorno que interactuan con el sistema,causando que el mismo entre en un estado erroneo.

Defectos intermitentes: Ocurren debido a hardwareinestable o variaciones en el estado del hardware.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 14: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Definiendo dependability:

En los ultimos anos se ha avanzado en la formalizacion deparametros y caracterısticas de los sistemas que van mas alla de sudefinicion funcional clasica (conformance e interoperability).

La provision de servicios por aplicaciones de infraestructuradepende fuertemente de la correcta operacion de sistemas deinformacion, y la falla de estos generalmente elimina servicios deinfraestructura rapida y completamente.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 15: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Definiendo dependability:(cont)

La dependability es una propiedad que un sistema puede tener yusualmente es definida como un conjunto de requerimientos que unsistema debe cumplir.

Veremos dependability en funcion de otras propiedades o aspectoscomo reliability, availability, safety y survivability entre otros.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 16: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Definiciones

Reliability

R(t) es la probabilidad que un sistema cumpla sus requerimientoshasta un tiempo t cuando opera bajo sus condiciones establecidasde funcionamiento.

Availability

A(t) es la probabilidad que un sistema este operando correctamenteen el instante de tiempo t.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 17: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Definiciones (cont)

Safety

S(t) es la probabilidad que condiciones que pueden derivar en unasituacion adversa, no ocurran, independientemente de si el sistemacumple o no con su mision. Especialmente se deben considerar danosa la propiedad, medio ambiente e incluso, vidas humanas.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 18: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

a modo de ejemplo...

A los sistemas de control embebidos usualmente se lesrequiere altos niveles de reliability (confiabilidad).

A los sistemas de base de datos en produccion generalmentese les requieren altos niveles de availability (disponibilidad).

A los sistemas de control de transito se les requieren altosniveles de safety (seguridad).

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 19: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Observaciones

Hay quienes sostienen que safety no es una propiedad que describael software, dado que este nunca puede causar un dano directamente(no es hardware).

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 20: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Observaciones

Es interesante notar que los aspectos anteriores pueden serindependientes, y un nivel alto en uno puede no involucrar a otro.

A modo de ejemplo, pensemos en un sistema que fallafrecuentemente, pero que su restauracion es casi inmediata,teniendo tiempos de indisponibilidad (unavailability) casiimperceptibles. Este ejemplo tiene alta disponibilidad y bajaconfiabilidad.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 21: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Observaciones (cont)

Muchos sistemas son ası disenados -alta disponibilidad sindemasiado cuidado por la confiabilidad- por razones de costoscuando la confiabilidad (desde el punto de vista de su definicionformal) no es requerida.

En general, los requerimientos de confiabilidad buscan desarrollarun sistema libre de fallos, mientras que los requerimientos de(safety) buscan sistemas que no produzcan incidentes.No todos los errores en el software causan problemas del tipo desafety, y no todo el software que funciona de acuerdo con suespecificacion es seguro.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 22: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Definiciones (cont)

Survivability

Informalmente, cuando decimos que un sistema es survivable esta-mos diciendo que posee la capacidad de continuar brindando ser-vicios (posiblemente degradados o diferentes) en un entorno dado,cuando diversos eventos causan un dano mayor al sistema o su en-torno operativo.Un sistema es survivable si cumple con su especificacion de surviv-ability.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 23: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Observaciones

Cuando hacemos que un sistema sea survivable, nos referimos a lamision del sistema, mas que los componentes del mismo. Enotras palabras, disenamos un conjunto de componentes que brindanun servicio que se brinda incluso ante el caso de degradacion.

Este es otro aspecto que hace a la dependability de un sistema.No hay presuposiciones de como se debe alcanzar: es un aspectode diseno del sistema.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 24: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Definiciones (cont)

Survivability specification

de un sistema es:

a)Una declaracion precisa del entorno operativo esperado delsistema

b)Un conjunto de especificaciones que definen las funcionesque un sistema debe proveer

c)Un orden del conjunto de funciones denotado como el ordenpreferido de provision de las funciones

d)Una distribucion de probabilidad sobre el conjunto deespecificaciones. La probabilidad asociada a unaespecificacion dada es la probabilidad que la especificacionasociada sea cumplida.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 25: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Intuitivamente

Por a), un sistema que cumple con su especificacion desurvivability sera capaz de proveer la funcionalidad preferida concierta probabilidad.Por b) establecemos que si por alguna razon no es posible, elsistema brindara el siguiente nivel preferido de servicio.En c) definimos el orden preferido de servicios, que reflejara laimportancia dada organizacionalmente a los mismos.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 26: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

La vision del servicio

Inyeccion de defectos

inyeccion de defectos

Se define como un mecanismo de validacion de dependability de unsistema, en base a la realizacion de experimentos controlados, en losque explıcitamente se introducen defectos al mismo.

HWIFI - Hardware Implemented Fault Injection

SWIFI - Software Implemented Fault Injection

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 27: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 28: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Conceptos generales

Caracterısticas de la tecnologıa USB

Bus de comunicacion serial

Varias velocidades

Low speed – 1.5 Mbit/sec desde USB 1.0Full speed – 12 Mbit/sec desde USB 1.1High speed – 480 Mbit/sec desde USB 2.0Super speed – 3.2 Gbit/sec desde USB 3.0

Deteccion y configuracion automatica de los perifericos.

El bus es arbitrado por el Host, los dispositivos juegan el rolde esclavos

USB OTG

Wireless USB

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 29: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Conceptos generales

Como se comunican los dispositivos

Configuraciones

Interfaces

Representan diferentes funcionalidades

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 30: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Conceptos generales

Endpoints

Todo el trafico en el bus viaja desde o hacia un deviceendpoint

Tıpicamente un endpoint es un bloque de memoria de datos oun registro en el chip del controlador

Poseen direccion (0 a 15) y sentido (IN, OUT)

Tipos:

ControlBulkInterruptIsochronous

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 31: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Tipos de endpoints

Control Endpoints

Usados para configurar el dispositivo, obtener informacion,enviar comandos, obtener informacion de estado

Todo dispositivo tiene un endpoint de control (endpoint 0),utilizado para configurarlo al momento de ser conectado

Utilizado para transferir pequenas cantidades de datos

El protocolo garantiza que la que siempra exista un porcentajedel ancho de banda reservada para estas transferencias (10%)

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 32: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Tipos de endpoints

Bulk Endpoints

Transferencias esporadicas utilizando el ancho de bandaremanente del bus

Utilizadas para transferir cantidades grandes de datos

No hay garatıas respecto al ancho de banda

Reintentos automaticos

Utilizado tıpicamente en unidades de almacenamiento,impresoras, interfaces de red

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 33: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Tipos de endpoints

Interrupt Endpoints

Transferencias periodicas

Utilizadas para transferir cantidades pequenas de datos

Ancho de banda garantizado

Reintentos automaticos

Utilizada en dispositivos que requieren tiempos de respuestagarantidos (mouse, teclados)El host interroga (pooling) al dispositivo

No interrumpe

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 34: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Tipos de endpoints

Isochronous Endpoints

Transferencias periodicas

Utilizadas para transferir cantidades grandes de datos

Tienen velocidad garantizada en el bus

No tiene reintentos automaticos

Utilizado para transferencias con caracterısticas de tiempo real(audio y video)

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 35: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Un poco mas de detalle

Clases de dispositivos

Cuando un grupo de dispositivos o interfaces compartenmuchos atributos, proveen o requieren de servicios similares,tiene sentido definir los atributos y servicios en unaespecificacion de clase

Los sistemas operativos pueden proveer drivers para las clasesen comun, eliminando la necesidad de que los vendedores dedispositivos tengan que proveerlos para los dispositivos en esasclases

Ejemplos: Audio, HID, Printer, Smart Card, Video, ...,Custom

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 36: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Un poco mas de detalle

El proceso de enumeracion

El host necesita aprender de los dispositivos

Es un proceso de intercambio de informacion por el cual elhost descubre que tipo de dispositivo es y requerimientos deconsumo y otras caracterısticas.

Una vez finalizado, el sistema operativo le asigna un driver yel dispositivo esta listo para transferir datos.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 37: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Un poco mas de detalle

El proceso de enumeracion

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 38: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Uso de USB en los sistemas embebidos

Motivacion

Tradicionalmente los dispositivos USB eran utilizadosprincipalmente en sistemas de proposito general

En sistemas embebidos generalmente se utilizan modulosperfifericos con protocolos de comunicacion del tipo I2C, SPI,serial, paralelo

Desde un tiempo a esta parte ha aumentado la presencia deHost Controllers en hardware utilizado en sistemas embebidos(System on a Chip)

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 39: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Uso de USB en los sistemas embebidos

Ventajas

Existen estandares definidos (clases en la jerarquıa dedispostivos USB)

Brindan independencia del fabricanteSistemas operativos ya implementan device drivers para lasclases de la jerarquia USB (WiFi, Bluetooth, video, audio)

Menor Costo

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 40: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Uso de USB en los sistemas embebidos

Ventajas vs Complejidad

Estas ventajas al usuario redundan en una mayor complejidadde la tecnologıa comparada con otras sin estas caracterısticas(rs232, paralelo)

Mayor dificultad para asegurar que la implementacion deldispositivo o host USB se comporta correctamente de acuerdoa su especificacion

Permite trabajar con un nivel de abstraccion alto, pero se debeestar conciente de los problemas que pueden llegar a ocurrirpara lograr disenar sistemas embebidos de buena calidad.

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 41: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 42: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

¿Porque inyeccion de defectos sobre USB?

El hardware tambien falla

Aun bajo implementaciones “perfectas” del firmware, driversdel dispositivo, sistema operativo, este va a estar inmerso enun ambiente externo el cual puede afectar el correctofuncionamiento

Defectos transitorios

Interferencia electromagnetica (EMI)Rayos cosmicosCables defectuosos, de baja calidad o poco robustos

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 43: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

¿Porque inyeccion de defectos sobre USB?

Impactos de los defectos transitorios en tecnologıa USB

Entre otros producen errores en la consistencia de lainformacion transmitida entre el host y el device

Problemas en el proceso de enumeracionReintentos pueden afectar la experiencia del usuario

Afectan directamente la reliability, availability y safety (RAS)del sistema

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 44: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

¿Porque inyeccion de defectos sobre USB?

Disenando de manera defensiva

Algunos device drivers son implementados teniendo en menteestos problemas

De todas formas al momento de disenar un sistema embebidose debe ser consciente de estos problemas

En muchos casos no puedo aumentar la reliability

Si puedo buscar alternativas para aumentar la availability delsistema:

Reintentar transmisionReconfigurar dispositivo (re-enumerar)Reiniciar dispostivo/sistema

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 45: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

¿Porque inyeccion de defectos sobre USB?

Ejemplos de soft errors en produccion

08:17:00 kernel: [150021.366375] hub 3-0:1.0: port 2 disabled by hub (EMI?), re-enabling...

08:17:00 kernel: [150021.373151] usb 3-2: USB disconnect, address 19

08:17:00 kernel: [150021.676056] usb 3-2: new full speed USB device using ohci hcd and address 20

08:17:00 kernel: [150021.900474] usb 3-2: configuration #1 chosen from 1 choice

08:17:01 kernel: [150022.244063] usb 3-2: reset full speed USB device using ohci hcd and address 20

08:17:01 kernel: [150022.450354] usb 3-2: can’t restore configuration #1 (error=-62)

08:17:01 kernel: [150022.457089] usb 3-2: USB disconnect, address 20

08:17:01 kernel: [150022.760048] usb 3-2: new full speed USB device using ohci hcd and address 21

08:17:01 kernel: [150022.984470] usb 3-2: configuration #1 chosen from 1 choice

08:17:01 kernel: [150023.164049] usb 3-2: reset full speed USB device using ohci hcd and address 21

08:17:02 kernel: [150024.099349] usb 3-2: device descriptor read/all, error -62

08:17:03 kernel: [150025.012049] usb 3-2: reset full speed USB device using ohci hcd and address 21

150000s · 1m60s ·

1h60m ≥ 41hs desde el inicio del sistema

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 46: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

¿Porque inyeccion de defectos sobre USB?

Aumentando la calidad del sistema

Los problemas producidos por defectos transitorios puedenllevar a fallos que ocurren esporadicamente y donde lassituaciones que lo provocan son difıciles de reproducir

La inyeccion de defectos es un tecnica util para lograrreproducir situaciones que ocurren de forma exporadica ypermite probar que el sistema bajo prueba las resuelve

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 47: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Conceptos basicos de USB en GNU/Linux

URB’s

Los datos intercambiados entre el sistema y los dispositivos sehace en unidades llamadas URB (USB Request Block)

Son similares a los paquetes de Internet (red IP)

Cada endpoint puede manejar una cola de URBs

Posee un campo status donde se puede consultar si ocurrieronerrores en la comunicacion

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 48: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Conceptos basicos de USB en GNU/Linux

Errores tıpicos debido al cable USB o al firmware deldispositivo

El campo status toma los valores:

-EPROTO: Bitstuff error, no se recibio paquete de respuesta entiempo por el hardware, o error USB desconocido-EILSEQ: error de CRC, no se recibio paquete de respuesta entiempo por el hardware, o error USB desconocido-EOVERFLOW: La cantidad de datos retornados por el endpointfue mayor que el mayor tamano de paquete del endpoint o elespacio disponible en el buffer

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 49: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Conceptos basicos de USB en GNU/Linux

Otros tipos interesantes de error

El campo status toma los valores:

-EINPROGRESS: siendo porcesado por el host controller-ECOMM: Los datos se recibieron mas rapido de lo que puedenescribirse-ENOSR: no puede proveerse la informacion desde la memoriadel sistema a la velocidad necesaria para cumplir con la tasarequerida.-ESHUTDOWN: error severo con el USB host controller driveresta deshabilitado o el dispositivo fue desconectado..... hay muchos valores mas

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 50: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Herramienta para inyectar defectos en USB

Prototipo construido

Permite inyectar defectos sobre el protocolo USB

Intenta brindar una herramienta que permita ejecutarsituaciones de error de forma repetible

Principalmente centrado en inyectar defectos similares a losproducidos por defectos transitorios

Permite evaluar como responden los device drivers antedefectos hardware

Parte de la tesis de grado de Juan Gomez y Alvaro Martınez

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 51: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Herramienta para inyectar defectos en USB

Demo

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 52: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Herramienta para inyectar defectos en USB

Ejemplo de inyeccion

Determinar el dispositivo al que queremos inyectarlsusb

Cargamos el modulo del kernel que hace la inyeccioninsmod usbfi.ko

Cargamos el interprete de comandos./fik x86 1

Indicamos el dispositivo al que queremos hacer la inyeccionusbdevice 04fc 0013

Definimos la inyeccionusbstatus 1 5 1 -84

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 53: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Herramienta para inyectar defectos en USB

Conclusiones

Las tendencias en dispositivos embebidos indican que seincrementara el reuso de componentes de alto nivel (placas,sistemas operativos y subcomponentes complejos)

La complejidad de los desarrollos obligan al uso de tecnicasavanzadas para la deteccion y correccion de errores

Mas alla de las tecnicas utilizadas para el testing funcional, losrequerimientos de dependability obligan a pruebas encondiciones adversas, pero a la vez repetibles y economicas

La inyeccion de defectos por software es una herramienta muyadecuada para abordar los proyectos de desarrollo embebidosactuales

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 54: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Herramienta para inyectar defectos en USB

Muchas gracias por su tiempo

¿preguntas?

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB

Page 55: Inyecci[PleaseinsertPrerenderUnicode{ó}intopreamble]n de defectos … · 2018-11-09 · estos defectos se logra solo con el reemplazo del componente danado.~ Defectos transitorios:

µAgenda Introduccion: testing e inyeccion de defectos Introduccion: Protocolo USB Inyeccion de defectos sobre USB

Herramienta para inyectar defectos en USB

Inyeccion de defectos y su aplicacion endispositivos USB

Ariel Sabiguero Andres Aguirre

Instituto de ComputacionFacultad de Ingenierıa

Universidad de la Republica, Uruguay{asabigue|aaguirre}@fing.edu.uy

3/3/2011

A. Sabiguero, A. Aguirre (InCo-FING-UdelaR) Inyeccion y USB