Envenenamiento de la fuente


  Share  
|

Así pues, hemos visto una variedad de uso de los malos individuos de las técnicas de exprimir funcionalidad del Trojan Horse en nuestros sistemas. Sin embargo, quizás el vector ma's worrisome del Trojan Horse implica el insertar de código malévolo en un producto de software antes de que incluso se lance. Los atacantes podrían los programas de Trojanize durante los procesos del desarrollo y de la prueba del vendedor del software. Suponga los hires de un atacante encendido como un empleado en una tienda importante del desarrollo del software o voluntarios para contribuir código a un proyecto abierto del software de la fuente. La blanco podía ser cualquier cosa; un sistema operativo importante, una herramienta extensamente usada del planeamiento del recurso de la empresa, o aún un programa muy esotérico usado por los bancos para manejar su transferencia de los fondos todas las blancos jugosas de la marca. Como un revelador o aún probador, el atacante podía insertar un backdoor relativamente pequeño de menos que 100KB del código dentro de centenares de megabytes del código legítimo. ¡Eso es realmente una aguja en un haystack! Cualquier usuario que compra el producto entonces estaría comprando involuntariamente un Trojan Horse y lo estaría instalando en sus sistemas. El producto de software entero sí mismo se convierte en el Trojan Horse, haciendo algo útil (que es porqué usted lo compra o descarga), con todo enmascarando esto backdoor.

Ken Thompson, cocreator conocido de UNIX y gurú del lenguaje de programación de C, discutido la importancia de controlar código de fuente y la posibilidad de plantar backdoors en él en su papel famoso 1984 tituló "reflexiones en confiar en confianza." En ese papel clásico, Thompson describió el modificar del código de fuente para un recopilador de modo que construyera un backdoor en todo el código que compila. El ataque propuesto era particularmente insidioso, como incluso un recopilador brandnew que se compila con una versión de Trojan del viejo recopilador tendría el backdoor en él, también. Esta avenida del ataque ha sido de largo una preocupación, y es un problema potencial incluso más grande hoy.

Esta preocupación es que disturba ma's que el Trojaning de los sitios de la distribución del software que discutimos en la sección pasada. Cuando un atacante Trojanizes un sitio de la distribución del software, los reveladores del software tiene por lo menos una versión limpia del software contra el cual pueden comparar para detectar el subterfuge. Retirar problemas es relativamente más fácil después de descubrimiento, pues una versión limpia del software se puede poner en el sitio del Web para la distribución. Por otra parte, si un atacante encaja un Trojan Horse durante el proceso del desarrollo del software, el vendedor no pudo incluso tener una copia limpia. Si los atacantes son particularmente listos, intertwine un backdoor pequeño, discreto a través del código normal, haciendo la extirpación extremadamente difícil. El revelador del software tendría que explorar cantidades enormes de código para asegurar la integridad de un producto entero. Cuanto más grande es el producto de software, más difícil la detección y la extirpación se convierten. Analicemos porqué esto está tan.

Cifre El Ataque De las Marcas De la Complejidad Más fácil

La mayoría de las herramientas modernas del software son extensas en alcance. La detección desinsecta en código, dejó backdoors solos, es muy difícil y costosa. A Trojanize un producto de software, un empleado malvado incluso no tiene que realmente escribir un backdoor entero en el producto. En lugar, el revelador malévolo podría escribir útil el código que contiene un defecto explotable, tal como un desbordamiento del almacenador intermediario, que dejaría a atacante asumir el control la máquina. Con eficacia, un defecto tan útil actúa justo como un backdoor. Si el defecto hace furtivamente más allá del equipo de prueba del software, el revelador sería el único quién sabe sobre el agujero inicialmente. Explotando ese defecto, el revelador podía controlar cualquier sistema usando su o su código.

Consigamos una sensación para cómo fácilmente un defecto tan intencional o aún un Trojan Horse completo podría chirriar más allá de procesos de la calidad del desarrollo del software, consideran el expediente de pista de la calidad de la industria de la tecnología de información en un cierto plazo. Los problemas de la calidad del software nos han plagado por décadas. Con la introducción de virutas más altas de la densidad, de la tecnología fiber-optic, y de impulsiones duras mejores, el hardware continúa consiguiendo en un cierto plazo más confiable. El software, por otra parte, sigue estropeado obstinado. Los vatios de Humphrey, un gurú de la calidad del software y el investigador de la universidad de Carnegie Mellon, ha conducido exámenes en el número de errores que los reveladores del software hacen comúnmente al escribir código. Los varios análisis han revelado que, en promedio, un revelador típico introduce accidentalmente entre 100 y 150 defectos por 1.000 líneas de código. Estas ediciones son enteramente accidentales, pero un solo defecto intencional se podría hacer furtivamente adentro también.

Aunque muchos de estos errores son problemas sintácticos simples descubiertos fácilmente por un recopilador, un buen reparto de los defectos restantes da lugar a menudo a agujeros gaping de la seguridad. En hecho, esencialmente, una vulnerabilidad de la seguridad es realmente justa la explotación muy controlada de un insecto para alcanzar la meta específica de un atacante. Si el atacante puede hacer el fall del programa de una manera que beneficie el atacante (estrellando el sistema, rindiendo el acceso, o exhibiendo la información confidencial), el atacante gana. Estimando muy conservador, si solamente uno en 10 de los defectos en software tiene implicaciones de la seguridad, que las hojas entre 10 y 15 defectos de la seguridad por 1.000 líneas de código. Estos números apenas no miran muy que animan.

Un sistema operativo complejo como Microsoft Windows XP tiene aproximadamente 45 millones de líneas de código, y este número gigantesco está creciendo mientras que se lanzan las características y los remiendos nuevos. Otros sistemas operativos y usos tienen cantidades enormes de código también. Haciendo la multiplicación para XP, pudo haber cerca de 450.000 defectos de la seguridad en Windows.xp solamente. Incluso si nuestro cálculo del detra's-de-$$$-SOBRE es demasiado alto por un factor de 100, ése podría los defectos de seguridad inmóviles del medio 4.500. ¡Ouch! De hecho, muy el mismo día que Windows.xp fue lanzado en octubre de 2001, Microsoft lanzó 18 megabytes whopping de los remiendos para él.

No me consiga incorrecto; Amo Windows.xp. Es más confiable lejano y más fácil utilizar que lanzamientos anteriores de Windows. Es definitivamente un movimiento en la dirección derecha de estas perspectivas. Sin embargo, esto es justo una ilustración del problema de la seguridad inherente en proyectos grandes del software. No es justo Microsoft publica tampoco; la industria entera del software es el introducir más grande, (y a veces feature-cargado) programas más complejos, ultra-caracteri'stica-ma's ricos con toneladas de defectos de seguridad. A través de la industria del software, vemos el suelo muy fértil para un atacante para plantar un Trojan Horse sutil.

¿Prueba? ¿Qué Prueba?

A pesar de estos insectos de la seguridad, alguna gente todavía piensa que el proceso de prueba empleado por los reveladores nos ahorrará y encontrará los caballos de Trojan antes de que los productos corrompidos golpeen los estantes. Assuage mis preocupaciones con esa discusión también. Me ayudó a dormir mejor en la noche. Pero hay otra dimensión aquí a tener presente para destruir su slumber pacífico: Huevos de Pascua. Según el archivo del huevo de Pascua™, se define un huevo de Pascua como:

Cualquier tidbit de diversión que los creador ocultaron en sus creaciones. Podían estar en software, películas, música, arte, libros, o aún su reloj. Hay millares de ellas, y pueden entretener absolutamente, si usted sabe dónde mirar.

Los huevos de Pascua son esas pequeñas "características goofy inesperadas" atesorado lejos en su software (u otros productos) ese hacen estallar para arriba bajo circunstancias muy especiales. Por ejemplo, si usted funciona el programa mientras que mantiene las llaves de E, de F, y de S, usted puede ser que consiga ver un cuadro dorky del revelador del programa. El archivo del huevo de Pascua mantiene una lista principal de estas pequeñas gemas en www.eeggs.com, con más de 2.775 huevos de Pascua del software en expediente en fecha esta escritura.

¿Qué los huevos de Pascua tienen que hacer con los caballos de Trojan en software? Mucho, en hecho. Un huevo de Pascua es realmente una forma del Trojan Horse, no obstante de a (típicamente) el benigno. Sin embargo, si los reveladores del software pueden hacer furtivamente un huevo de Pascua benigno más allá de los equipos de la prueba del software y de la garantía de calidad, no hay duda en mi mente que podrían pasar semejantemente un Trojan Horse o un desbordamiento intencional del almacenador intermediario también. En hecho, el atacante podía incluso poner el backdoor dentro de un huevo de Pascua encajado dentro del programa principal. Si los equipos de la prueba y de la garantía de calidad no notan el huevo de Pascua o aún no lo notan sino lo dejan a través, no lo comprobarán probablemente para saber si hay tal funcionalidad ocultada. A mí, la existencia de los huevos de Pascua prueba absolutamente claramente que un revelador o un probador malévolo podría poner funcionalidad ocultada repugnante dentro del código de producto y conseguirla a través de lanzamiento de producto sin ser notado.

Para conseguir una sensación para un huevo de Pascua, miremos uno encajó dentro de un producto popular, Microsoft sobresalen programa de hoja de balance. Sobresalga es absolutamente famoso por sus huevos de Pascua. Una versión anterior del programa, sobresale 97, incluido un juego del simulador de vuelo. Una versión más reciente, sobresale 2000, incluye un juego coche-que conduce llamado Dev Hunter.

Para que este huevo de Pascua trabaje, usted debe tener sobresalir 2000 (pre el lanzamiento del servicio 1), Internet Explorer, y DirectX instalados en su computadora. Para activar el huevo de Pascua y para jugar el juego, usted debe hacer el siguiente:

  • Funcione Sobresalen 2000.

  • Bajo menú de archivo, seleccione excepto como página del Web.

  • En el interfaz de ahorro, selecto publique y después chasque la caja de la interactividad de la adición.

  • El tecleo publica para ahorrar la página del htm que resulta en su impulsión.

  • Después, abra la página del htm que usted acaba de crear con el Internet Explorer. La hoja de balance en blanco aparecerá en el centro de su ventana de browser del Internet Explorer.

  • Aquí está la parte difícil. Enrolle abajo para remar 2000, y el excedente al WC de la columna.

  • Ahora, seleccione la totalidad de la fila 2000 chascando en los 2000 números a la izquierda de la fila.

  • Golpee el tabulador para hacer WC la columna activa. Esta columna será blanca, mientras que las otras columnas en la fila serán obscurecidas.

  • Mantenga Shift+Ctrl+Alt y, en el mismo tiempo, chasque la insignia de Microsoft Office en la esquina izquierda superior de la hoja de balance.

  • En un segundo o dos, el juego funcionará.

  • Utilice las llaves de flecha para conducir y para dirigir y el espaciador para encender. Las gotas dominantes de O engrasan slicks para confundir los otros coches. Cuando consigue obscuridad, usted puede utilizar la llave de H para girar sus linternas.

Si el juego no se invoca en su sistema, es probable porque usted tiene el lanzamiento 1 del servicio o una versión más última de Microsoft Excel instalada en su máquina, que no incluye el huevo de Pascua. Usted podría buscar abajo de una versión anterior de Microsoft Excel, o de toma justa mi palabra para ella.

Ahora, importe de usted, esta "característica" está en una hoja de balance, un programa de la productividad de la oficina. Dependiendo de su mindset, puede ser que sea quirky y diversión. ¿Sin embargo, cómo tal cosa consigue más allá del proceso de la calidad del software (que debe incluir revisiones de código) y equipo de prueba? El personal quizá de calidad de la garantía y de prueba no la notó. O, quizás la gente y los probadores de la garantía de calidad estaban en cahoots con los reveladores para ver que el juego consiguió incluido en el lanzamiento de la producción. Cualquier manera, me refiero a las perspectivas de un Trojan Horse que es insertado en una manera similar en otros vendedores.

Una vez más no estoy escogiendo en Microsoft justo aquí. En hecho, Microsoft ha conseguido mejor sobre los últimos pares de años con respecto a estas preocupaciones. Los nuevos paquetes del servicio o los arreglos calientes con frecuencia y aplastan rápidamente cualquier huevo de Pascua incluido en lanzamientos anteriores. La iniciativa que computa confiada en de Microsoft, aunque derided a menudo, está comenzando a llevar un poco de fruta como menos y pocas vulnerabilidades de la seguridad y huevos de Pascua aparece venir poner en los programas de Microsoft. Sin embargo, digo esto con la gran vacilación, pues otro huevo gaping enorme se podría descubrir cualquier día. No obstante, subrayando que esto no es una edición de Microsoft-only, muchas otras tiendas del desarrollo del software tienen huevos de Pascua incluidos en sus productos, incluyendo la computadora de Apple, Norton, adobe, Quark, el browser abierto del Web de Mozilla de la fuente, y el browser de la ópera. La lista se enciende encendido y, y se explica para que el mundo considere en www.eeggs.com.

El Movimiento Hacia El Desarrollo Internacional

Un motivo de preocupación final con respecto los reveladores del software y a los caballos de Trojan malévolos se asocia al código que es convertido alrededor del mundo. Los fabricantes del software están confiando cada vez más en los equipos altamente distribuidos alrededor del planeta para crear código. ¿Y por qué no? De una perspectiva económica, los países numerosos tienen ciudadanos con habilidades del desarrollo del software de la tapa-muesca y bajan mucho tarifas de trabajo. Aunque la economía tiene sentido, la edición de seguridad del Trojan Horse asoma mucho más grande con este tipo de desarrollo del software.

Supóngale comprar o descargar un pedazo de software del vendedor X. Ese vendedor, alternadamente, contrae con los vendedores Y y Z para desarrollar ciertas partes del código. Subcomponentes de los subcontratos del vendedor Z diversos del trabajo a tres diversos países alrededor del globo. Para el momento en que el producto se siente en su impulsión dura, los millares de manos distribuidas a través del planeta habrían podido estar implicados en desarrollarlo. Algunas de esas manos pudieron haber plantado un backdoor repugnante. Peor todavía, el mismo análisis se aplica a los sistemas financieros back-end usados por su banco y los programas de la base de datos que contienen sus expedientes médicos. Los leyes de seguridad de la información y las reglas de la responsabilidad por la fabricación de un producto varían perceptiblemente de país al país, con muchas naciones no teniendo regulaciones muy robustas en todos.

Esta preocupación no se asocia a la moralidad de los reveladores en varios países. En lugar, la preocupación se ocupa del nivel del control de calidad que se puede aplicar con el contrato limitado y las estructuras de soporte reguladoras. También, los mismos efectos económicos que están conduciendo el desarrollo a los países con personal menos costoso del desarrollo podrían exacerbar el problema. Un atacante pudo poder sobornar un revelador que hacía $100 por semana o mes en poner un backdoor en el código para el dinero muy pequeño. "aquí está el sueldo de 10 años … cambia por favor dos líneas de código para mí" pudo ser todo que tomaría. No deseamos ser xenófobos aquí; el desarrollo internacional del software es una realidad con las ventajas significativas en negocio de hoy de la tecnología de información. Sin embargo, debemos también reconocer que aumenta los riesgos de la seguridad de los caballos de Trojan o de los defectos intencionales del software.

Defensas contra el envenenamiento de la fuente

¿Cómo puede usted defenderse de un Trojan Horse plantado por un empleado de su casa del desarrollo del software? Esto es una pregunta particularmente resistente, pues usted tiene poco control sobre el desarrollo de la mayoría extensa del software en sus sistemas. No obstante, hay cosas que podemos todos hacer como comunidad para mejorar esta situación.

Primero, usted puede animar a sus vendedores comerciales que tengan regímenes robustos de los controles y de la prueba de la integridad para sus productos. Si no , batirlos para arriba y amenazar utilizar otros productos. No significo batirlos para arriba literalmente. No deseo incitar violencia, para los sakes de la calidad. Por "golpe ellos para arriba," significo les doy un rato duro. Desafíelos. Grite en ellos. Deje a sus vendedores del desarrollo del software saber el código seguro importante está a sus operaciones. Cuando el mercado comienza a exigir un código más seguro, comenzaremos gradualmente a avanzar a poquitos en esa dirección. Además, si usted utilizan muchos de software abierto de la fuente, ayuda que comunidad con su tiempo y esfuerzo en defectos del software que entienden. Si usted tiene las habilidades, ayude hacia fuera repasando código de fuente abierto para cerciorarse de que es seguro.

, cuando usted compra o descarga nuevo software, pruébelo después primero para cerciorarse de él no incluye ninguna capacidad obvia del Trojan Horse. Con una prueba del software y un proceso cuidadosos de la evaluación en casa, usted puede ser que apenas encuentre algunos caballos de Trojan en sus productos antes de cualquier persona los avisos otros ellos. Comunique esta información al vendedor para ayudar a resolver la edición.

Si su organización desarrolla cualquier código en casa, cerciórese de que su equipo de prueba del software esté enterado de los problemas de los huevos de Pascua, de los caballos de Trojan, y de los defectos intencionales. Tristemente, los probadores del software se ven a menudo como la grada inferior misma de la importancia en la jerarquía del desarrollo del software, consiguiendo generalmente poco respecto, el reconocimiento, o la paga. Todavía, su importancia para la seguridad de nuestros productos es suprema. Entrene a esta gente de modo que ella pueda manchar rápidamente el código que no mira la derecha y no la divulga al personal de gerencia apropiado. Recompense sus probadores cuando encuentran problemas importantes de la seguridad antes de que usted envíe software. Tenga cuidado, aunque. Usted no desea tener probadores el trabajar con los reveladores al juego de los insectos del sistema y de planta así que pueden hacer más dinero. Eso es como tener una lotería donde la gente puede imprimir sus propios boletos que ganan. Supervise cuidadosamente cualquier programa de la recompensa del insecto que usted cree para tal subterfuge.

Además, asegúrese de que sus probadores y reveladores puedan divulgar preocupaciones de la seguridad sin represalias de los encargados desesperados que intentan resolver un plazo terminante del software. Dependiendo del tamaño de su organización y de su cultura, usted puede ser que incluso tenga que introducir un tipline anónimo para que sus reveladores divulguen tales preocupaciones. Dando esta atención adicional muy necesaria a sus probadores del software, usted puede ayudar a los problemas del silenciador con los caballos de Trojan tan bien como mejora la calidad total de sus productos.

Para infundir este mindset a través de la cultura de sus equipos del desarrollo del software, considere el transformar de su organización de prueba en una función hecha y derecha de la garantía de calidad. La organización de la garantía de calidad se debe cargar con responsabilidad de la seguridad del software como faceta de la calidad. Construya su proceso de la garantía de calidad en el ciclo entero del desarrollo del software, incluyendo diseño, revisiones de código, y la prueba. Usted debe también imponer controles cuidadosos ante su código de fuente, requiriendo a reveladores authenticar antes de trabajar en cualquier módulo. Todos los cambios se deben seguir y repasar por otro revelador. Solamente con calidad cuidadosa los procesos y el control del código de fuente pueden nosotros mejorar la situación asociada a código de fuente untrustworthy.

esto es un artículo agregado por Greg McKlein


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions