Beruflich Dokumente
Kultur Dokumente
3, septiembre2013489
I. Introducción
La composición es los medios de ingeniería primarios de la
construcción del sistema complejo. No importa lo que otros
enfoques de ingeniería o patrones de diseño AP- se aplica, la
realidad económica es que un sistema informático complejo
en última instancia, será tirado gether a- partir de
componentes fabricados por diferentes personas y grupos de
personas. Las interacciones entre estos componentes implican
la creación de los límites de los componentes de
comunicación y marcar el comienzo de los protocolos de
mensajería. Estos límites y protocolos se convierten entonces
en las áreas de ataque, dominando el panorama actual de la
inseguridad de Internet.
Para la división tradicional de un sistema en el hardware,
firmware y software y de software en los controladores de
dispositivos, núcleo del sistema operativo genérico y sus sub-
capas, y varias pilas de software de aplicaciones y bibliotecas,
el hecho de esta composición es tan obvio que comúnmente se
desestimó tan trivial. ¿Cómo más se puede construir
computadoras modernas y software moderno, si no de una
manera modular? Por otra parte, la modularidad se supone que
es bueno
Manuscrito recibió 9 de octubre de del 2011; revisado 17 de de abril de,
2012; aceptado 22 de septiembre de 2012. Fecha de la versión actual 3 de
julio de 2013. La obra de L. Sassaman fue apoyado en parte por la
Universidad Católica de Lovaina Consejo de Investigación: GOA TIEMPO
bajo la subvención GOA / 11/007, y por el IAP Programa P6 / 26 bcrypt del
composición basada en mensajería segura, y el gráfico de
diseño básico princi- pios para reducir estos desafíos. En
particular, se muestra que los retos difíciles de entrada segura
manipulación y asegurar comu- nicación surgen debido a la
para la seguridad y la fiabilidad ya que sin ellos subyacente teoría duro o problemas (es decir, undecidable)
programación se intratable. capaces unsolv- que ciertos diseños de protocolo y los
Sin embargo, los componentes de la composición que se programadores de las implementaciones de la fuerza para
comunican de forma segura ha emergido como el principal resolver para asegurarlos. Postulamos que el (involuntario)
desafío para asegurar la construcción del sistema. introducción de este tipo de proble- mas en la etapa de diseño
profesionales de la seguridad saben que los límites de del protocolo explica la propensión extrema de ciertos
comunicación se convierten en blancos de ataque de protocolos y formatos de mensaje para producir un flujo
elección, y que las capacidades vulnerables son a menudo aparen- vez más sin fin de vulnerabilidades 0-día a pesar de
causados por interacciones inesperadas entre los los esfuerzos para detener que,
componentes. Sin embargo, las razones de esto son difíciles Nosotros También trazar formas de evitar diseños que son
de alcanzar. Los atacantes desean naturalmente ejecución propensos a convertirse en pesadillas de seguridad para
fiable de sus hazañas, que les lleva a atacar las fronteras de futuros protocolos de Internet. Empíricamente, los intentos de
comunicación como las partes descritas mejor- de resolver un problema de ingeniería que implica una lo
componentes, con el estado tratable. Sin embargo, esto no suficientemente bueno (o 80% / 20%) solución al problema
explica por nuestra incapacidad colectiva para diseñar acostado teoría undecidable sub están condenados a la
sistemas sin interacciones no deseadas. frustración y el fracaso, que se manifiesta de muchas maneras
En este trabajo, se argumenta que a fin de hacerlo bien tales como ninguna cantidad de pruebas para sufficing
seguridad- sabia, necesitamos una nueva comprensión más deshacerse de los insectos, o la complejidad abrumadora y no
fuerte computacional de la teoría de las interacciones del todo correcto funcionamiento de las herramientas de
basadas en mensajes entre los componentes. Utilizamos automatización o de detección creado para hacer frente al
argumentos formales lenguaje complejidad para explicar por problema. Por lo tanto, para evitar estos problemas en el
qué ciertos protocolo y formato de los mensajes decisiones primer lugar (en la etapa de diseño) ahorra mala inversión de
de diseño son conocidos empíricamente que fuentes de la esfuerzo de programación y los costes operativos.
vulnerabilidad, y por qué no parecen los componentes de Observamos que muchos sistemas prácticos no fueron ni no
software respectivos para dar a los esfuerzos de la industria diseñados desarrollados pensando en la seguridad. Sin
concertados para asegurar ellos. embargo, sólo tiene que dar
Se demuestra que existen fuertes razones lenguaje teórico-
computacionales teóricos y formales para los desafíos de la
1932-8184 / $ 31.00 §do IEEE 2012
490 IEEE Systems Journal, vol. 7, NO. 3, septiembre 2013
en ellos mayor y reconstruir desde cero no es una opción. En entrada nonheuristic. Comenzamos nuestra discusión con la
lugar de condenar este tipo de sistemas basados en su historia validación de SQL, pero también muestran que el mismo
de explotación, se muestra un camino hacia la mejora de ellos, enfoque se aplica a los idiomas más com- plejos como PKCS #
siempre y cuando sus límites commmunication pueden ser 1 (en la Sección VB probamos que PKCS # 1 es sensible al
identificados, analizados y mejorados de acuerdo con nuestra contexto). También se discuten las fallas en
propuesta.
Nuestro argumento se centra en la aplicación de los
resultados fundamentales cidability de- a los dos desafíos
básicos de la construcción del sistema integrado y distribuido
que respuestas sobre la comunicación entre los componentes:
aceptar entradas y gastos de envío en todos los componentes
de forma segura, y la interpretación idéntica de mensajes
pasados entre los componentes en cada punto final . En
particular, se consideran los siguientes dos puntos de vista
sobre la composición.
1) Monocomponente perspectiva: Un componente en un
sistema com- plejo debe aceptar entradas o mensajes a
través de una o más interfaces. Esto crea una superficie
de ataque, apalancado por la mayoría absoluta de la
explotación téc- nicas. Discutimos el endurecimiento de
la superficie de ataque de cada componente en contra de
los insumos artesanales maliciosos, por lo que un
componente es capaz de rechazar sin perder la
integridad y exhibir un comportamiento inesperado, en
una palabra, sin ser explotados.
2) perspectiva de varios componentes: Como los mensajes
de cambio de componentes, deben asegurarse de que, a
pesar de las posibles diferencias implemen- tación,
interpretan los mensajes de forma idéntica. Aunque este
requisito parece ser trivialmente necesaria para el
funcionamiento correcto, en realidad diferentes
implementaciones de un protocolo por diferentes
compo- nentes producir variaciones, o alects di-
mutuamente inteligibles, con el mensaje semántico
diferencias enmascarados (y por tanto ignorados) en
intercambios no malintencionada. Una clase más
pequeña, pero importante de técnicas de ataque
aprovecha estas diferencias, y puede conducir a ataques
devastadores como los de X.509 ASN.1 y analizado en
este documento.
La importancia de estos requisitos es un hecho empírico de la
experiencia de seguridad de Internet (ver [1] - [3]), que
nuestro documento pone en perspectiva la teoría sólida.
validación anterior se acerca, y mostrar por qué estos una aplicación ad hoc de entrada en lengua no puede
defectos son importantes para la seguridad práctica. proporcionar todas las propiedades del idioma de entrada
La discusión de defectos nos lleva a la Sección VI, en la como de hecho especificado. En un trabajo más reciente [8],
que se presenta una nueva técnica para el análisis de la hemos demostrado que las variaciones entre las
seguridad de las diferencias entre los dialectos mutuamente implementaciones pueden ser explotados para subvertir la
inteligibles que surgen de diferencias de implementación. interoperación de estas implementaciones, y que la
Esta técnica, árbol de análisis diferen- análisis ential, ambigüedad o
demostró ser una herramienta poderosa para mejorar la 1Esto incluye formatos de archivo, formatos de alambre y otras
auditoría de código y análisis de protocolo. codificaciones, y en scripts idiomas Ing, y el significado convencional del
término, por ejemplo, sistemas concurrentes de estados finitos tales como
En la sección VII, se muestra que los retos y fracasos de protocolos de red y de seguridad.
IDS / IPS, sin duda la forma más común de la seguridad
com- posición, se pueden explicar a través de la equivalencia
computacional del lenguaje teórico. Se concluye con un
resumen de los trabajos futuros.
subespecificación en una norma aumenta las posibilidades de validación de entrada formales requiere un autómata (en lo
vulnerabilidad en las implementaciones de otra forma sucesivo, analizador) al menos tan fuerte como el idioma de
compatible con los estándares. entrada. Es una presunción útil pensar en una gramática
Sobre esta base, argumentamos que dialectos protocolo en términos de su lugar en la jerarquía Chomsky, y el
mutuamente inteligibles de un protocolo no ofrece procesador y el código de
garantías sobre su funcionamiento L L BE- causar el 2Aunque con excepciones notables, tales como XSLT [11], [12], HTML5 +
Equivalente problema ((G) = (H)) es indecidible cuando G CSS3 (mostrado ser undecidable en virtud de su capacidad para implementar la
Regla 110 [13], [14]), y PDF (por muchas razones, incluyendo su capacidad
y H son gramáticas más potentes que determinista libre de para integrar Javascript [15]).
contexto [ 9], [10]. También observamos que los sistemas
que constan de más de un componente, de facto tienen
contratos de diseño inherentes para la interacción de sus
componentes, pero por lo general no hacen cumplir estos
contratos; ataques de inyección SQL (en adelante SQLIA),
por ejemplo, se producen cuando un atacante presenta una
base de datos con una consulta de entrada que es válido
para la base de datos de forma aislada, pero no válida en el
contexto de la función de la base de datos en una aplicación
más grande.
Dado que los idiomas de entrada bien especificados son en
su mayor parte cidable2 de- (o se pueden hacer de manera), no
hay excusa para no verificar las entradas con las herramientas
que han existido para este propósito exacto durante décadas:
programas de análisis formales. Vamos a examinar la
verificación de entrada desde varios ángulos diferentes ya
través de múltiples clases de computabilidad, destacar los
problemas específicos que surgen cuando los diferentes
programas que interactúan sobre un permiso estándar de las
variaciones idiosincrásicas a esa norma, y demostrar
formalmente cómo restringir el idioma de entrada de un
propósito general componente de sistema (tal como una base
de datos) para que acepte solamente aquellos insumos que está
contractualmente obligada a aceptar.
Dado el reciente advenimiento de demostrablemente
correcta, guaranteed- que terminan combinadores analizador
[16] y generadores de analizadores sintácticos basados en
análisis sintáctico ambas gramáticas de expresión [17] y
gramáticas libres al contexto (CFGS) [18], tenemos que el
objetivo del análisis formal, general de entradas está a nuestro
alcance práctico. Por otra parte, las garantías informales de
reconocimiento de entrada correcta son fáciles de obtener a
través de las bibliotecas comúnmente disponibles y
herramientas de generación de código; alentamos el uso más
amplio de estas herramientas en las implementaciones de
protocolo, como el manejo de entrada incorrecta pone en
peligro otras propiedades de una aplicación.
cadenas en un recursivo.
494 IEEE Systems Journal, vol. 7, NO. 3, septiembre 2013
dos CFGs arbitrarias, G y H, ambos( mensaje decodificado que el que la fuente destinado a
LGRAMO)L= (
MARIDO ) y transmitir, las acciones las realiza destino es probable que
diverge- quizá de manera significativa, desde la fuente de lo
L (G) ⊆L
(H) son undecidable [10], a excepción de una
construcción particular se detalla en [21]. Los CFGs forman que se esperaba. En la comunicación hu-, es difícil evaluar si
dos conjuntos disjuntos: deterministas y no deterministas, que una respuesta inesperada significa un fallo en la transmisión de
corresponde a los autómatas de pila deterministas y no significado o que la evaluación de la fuente de lo que puede
deterministas respectiva- mente. Todos CFGs sin esperar el comportamiento
ambigüedades son deterministas [22], y el problema de
equivalencia para CFGs deterministas es decidible (aunque el
problema de contención no lo es) [9].
Cualquier gramática en la que el valor de un elemento en la
cadena influye en la estructura de otra parte de la cadena es al
menos sensible al contexto [23]. Esto se aplica a la mayoría de
los protocolos de red y muchos formatos de archivos, donde
los campos de longitud, por ejemplo, el campo Content-
Length de una cabecera HTTP [24] o el DIH y campos de
longitud de un datagrama IPv4 [25], son comunes. gramáticas
de lenguaje de programación que soportan enunciados de la
forma si B1 B2 entonces, si a continuación, S1 S2 otra cosa,
por ejemplo, Javascript [26], son al contexto libre (en el
mejor) no determinista debido a la ambigüedad de los
problemas que cuelgan introduce otro lugar [27]; si el
conflicto de reducción por desplazamiento se resuelve sin
añadir llaves o sintaxis alternativa (por ejemplo, elif o END
IF), la gramática resultante está libre de noncontext.
Convenientemente, los motores de bases de datos
PostgreSQL, SQLite, MySQL y todo el uso de gramáticas LR,
que son deterministas contexto- libre [28]. Existen pruebas de
membresía para ciertas subclases de LR (por ejemplo, LALR,
LR (k), etc.) y métodos de detección ambigüedad aproximadas
[29]; sin embargo, la determinación de si un CFG arbitraria es
inequívoco es indecidible [30].
desde el destino que estaba mal. En informática, SIN decodificación (parsing) algoritmo (M), seguido por (es decir,
EMBARGO, podemos hacer afirmaciones formales sobre las integrado con) oper- subsiguiente
propiedades de destinos (es decir, programas), razón acerca ationsconditional
CDE en el resultado de; →
así, (METRO)
de estas propiedades, y demostrar que un programa es
correcta hasta decidibilidad [34]. Cuando la semántica y la re((M)) · do Nunca es el caso de que simplemente analizar
mi (((M))).
implementación de un programa de destino son una entrada procedente de una fuente no confiable debe dar
Delaware
lugar a la ejecución de código cious Malí-o divulgación no
demostrablemente correcta, si es o no lleva a cabo su función
prevista [34] es una cuestión de si el destino recibe el autorizada de sensible
mensaje deseado. Si la respuesta de un destino verificado al 4Este fenómeno sugiere que la máxima de relación [35] de Grice, sea
mensaje de una fuente M no concuerda con la respuesta de relevante, se aplica a la pragmática de las lenguas artificiales y las naturales.
que la deducción sobre el programa y M predecir, el receptor
ha decodificado algo más que el M que el transmisor
codificado. En la práctica, esta situación es demasiado
frecuente entre las diferentes implementaciones de un
protocolo.
de adaptaciones de Schramm Berlo y dibujaron con razón
críticas por su enfoque en la codificación y decodificación,
lo que implicaba la existencia de alguna métrica para la
equivalencia entre el decodificador de una persona y el
inverso del codificador de otra persona. Sin embargo, en
transmisiones a través de redes de ordenadores, donde tanto
el origen y el destino son máquinas universales de Turing,
podemos probar la equivalencia de estos autómatas si son lo
suficientemente débil; si son no determinista contexto de
libre o más fuerte, su equivalencia es indecidible. Puntos de
codificador-decodificador inequivalence- específicamente, ED D mi
casos en los que, para un mensaje M, una
codificaciónfunción, y una descodificación
función,( ( M E T R O )) METRO- puede hacer ED mi /
que el destino de tomar alguna acción que la fuente no
anticipó. Un atacante que puede generar una señal (M) tal m
ese( (METRO)) = M puede tomar ventaja de esta falta i re
de equivalencia. De hecho, muchas hazañas clásicas, tales Del
como desbordamientos de búfer, implican aw mi
elaboraciónalgunos( METRO) -donde el are
significado de M, en su caso, es irrelevante 4-tal que
aplicando a ( M E T R O ) , o paso( (METRO))
como una entrada al destino, o ambos, provoca una
secuencia de cálculos ventajoso para el atacante (por
ejemplo,
la apertura de un shell remoto).
Naturalmente, un atacante que puede alterar (M) en el m
canal, o que puede modificar M antes de su codificación, i
también puede provocar cálculo inesperado. El primero es un
hombre en el medio de ataque; el último es un ataque de
inyección. Ambos afectan a sistemas en los que el conjunto
de mensajes que la fuente puede generar es un subconjunto
de aquellos sobre los que puede operar el destino.
Tenga en cuenta que no tenemos en cuenta las situaciones Del
en que ((M)) = M, pero diferentes destinos responden a M aw
con diferentes acciones; estos constituyen la semántica del are
programa divergentes, lo que es relevante para el
razonamiento correcto en general, pero fuera del alcance de
este documento. Sólo estamos interesados en la semántica de
D y E.
información; sin embargo, esta es la base de la mayoría de los débil entre canales de control y de datos [41] para modificar la
ataques eficaces en sistemas informáticos en red modernos, estructura, y de este modo la semántica de ejecución, de una
especialmente porque permiten, a pesar de que no esperan, la entrada a un componente de aplica- ción [21], [41]. Halfond et
ejecución de algoritmos maliciosos cuando se proporciona la al. [42] enumerar muchas defensas de inyección de heurísticas;
entrada correspondiente. Que este cálculo es inesperado es lo en la Sección VA describimos la validación árbol de análisis,
que lleva a este tipo de vulnerabilidades ser considerado una técnica de defensa verificable. Ahí
hazañas, pero en última instancia, el problema constituye un
fallo en el diseño. Ya sea implícita o explícitamente, los
diseñadores van a trabajar con un contrato [36] en cuenta por
el comportamiento de su software, pero si el código no
establecer y hacer cumplir las condiciones previas para
describir entrada válida, son posibles muchos tipos de
exploits.
Este comportamiento es especialmente perjudicial través de
las capas de AB- straction y sus interfaces correspondientes,
ya que en la práctica estos límites de capas se convierten en
los límites de competencia de los programadores.
varias categorías de defensa contra inyección: escape, que [10], es fácil para definir una rutina de validación positiva
trata de transformar la entrada del usuario que pueda alterar [42], que sólo admite la entrada del usuario que no contiene
la estructura de una entrada posteriormente construido en un marcadores de posición de formato.
equivalente literal String; contaminar, que las banderas de Por lo tanto, vemos que el endurecimiento rutinas de
usuario de entrada como no fiable y advierte si esa entrada entrada, por lo que no proporcionan las operaciones
se utiliza en condiciones de riesgo; listas negras de entradas posteriores con argumentos que violan
maliciosos conocidos; y la abstracción programática, que
proporciona acceso de canal de control a través de un API y
relega entrada del usuario para el canal de datos [42]. Otra
técnica, la validación árbol de análisis sintáctico, pases
entradas construye a través de un validador que les analiza,
compara el árbol de análisis sintáctico resultante a un
conjunto de candidato aceptable analizar árboles, y rechaza
las entradas cuya estructura no está en ese conjunto.
1) Autómata suficientemente fuerte: Varios validadores SQL ANSI 92 estándar, aumentada con extensiones de
basados automata- [59] - [63] modelo el conjunto de lenguaje MySQL-específicos; SQLPrevent [65] utiliza ANSI
consultas aceptables usando una máquina de estado finito, SQL, pero no menciona qué versión. Otros sólo afirman que
siguiendo el enfoque de Christensen et al. [64], en el que el las gramáticas que utilizan son [58], [69] independiente del
análisis estático de las llamadas a métodos que emiten contexto, [70].
consultas SQL produce un gráfico de flujo que representa Si bien es posible demostrar la equivalencia de las dos
posibles cadenas generadas, que luego se amplió a un gramáticas LR, ninguno de estos autores no han aportado
lenguaje regular para tratabilidad. Sun y Besnozov pruebas de equivalencia de sus gramáticas de aplicación y el
identificar los casos en que tales modelos FSA generar SQL
informes falsos positivos [65], y de hecho Wassermann et al.
concede que su aproximación del conjunto de las cadenas de
consulta legítimos es excesivamente permisiva. Sin
embargo, afirman:
En la práctica, no encontramos una función que
concatenación Nates alguna cadena, el valor de
retorno de una llamada recursiva a sí mismo, y la
otra cadena (que sería la construcción de un { }
lenguaje como (NA) n), por lo que esta etapa de
ensanchamiento no hace daño la precisión del
análisis.
Nosotros examinado la gramática bisontes que genera el
analizador Post-greSQL y, lamentablemente, descubierto
cuatro de estas fun- ciones. Los lados de la derecha de las
normas de producción SE- Lect con parens y se unieron
tabla contiene la sintaxis precisa paréntesis de equilibrio que
Wassermann et al. No creído encontrar en la práctica.
paréntesis desequilibradas solo son sufi- ciente para
desencadenar esas vulnerabilidades clasificadas en la
taxonomía de Halfond et al. consultas como ilegales /
lógicamente incorrectos [42].
Las demás funciones que encontramos son más sutiles y
más preocupante. El lado derecho de la expr producción
com- mon mesa, que puede preceder SELECT, INSERT,
FECHA UP- o DELETE, contiene la secuencia '('
PreparableStmt ')'; un PreparableStmt es en sí mismo un
SELECT, INSERT, UPDATE o DELETE. Además, las una
expr y c producciones expr, que reconocen unario, binario, y
otras expresiones tales como X no NULL, x como y, y todas
las expresiones aritméticas-son cursiva mutuamente re-.
Estas producciones aparecen a lo largo de la gramática
PostgreSQL, y son los objetivos gramaticales de casi todas
las categorías de SQLIA, dado que los insumos
suministrados por el usuario normalmente uso corresponden
a las producciones en el lado derecho de una una expr.
Por lo tanto, mientras que las herramientas que utilizan
esta metodología han obtenido buenos resultados contra
suites SQLIA como el banco de pruebas AMNESIA [66],
[67], se cuestiona su eficacia contra los ataques que se
dirigen deliberadamente a la falta de concordancia entre un
modelo FSA generado y una gramática SQL subyacente.
2) validador y la Base de Datos de utilizar diferentes
gramáticas: Muchos enfoques de validación árbol de análisis
representan adecuadamente el conjunto de estructuras
aceptables utilizando un CFG, pero derivan su estructura
aceptable ajustar desde una gramática distinta de la del
sistema de base de datos destino, posiblemente, la
introducción de una falta de concordancia. SQLGuard [56]
compara analizar árboles de consultas ensamblados con y sin
la entrada del usuario, utilizando el analizador ZQL [68];
CANDID [57] utiliza un analizador SQL estándar basado en
500 IEEE Systems Journal, vol. 7, NO. 3, septiembre 2013
dialectos que tienen como objetivo validar. Dejector elude 6) Hasta que se alcance q0, o se alcanza el final del extremo
este problema utilizando directamente léxico y la gramática de derecho de la cinta, aplicar el siguiente procedimiento.
PostgreSQL bisonte. inconveniente de de- JECTOR es que su a) Consumir un octeto.
implementación se acopla no sólo a la distribución de la base b) qn → qn-1.
de datos, pero la revisión analizador específico; sin embargo,
se evita que un atacante la construcción de una entrada que da
directamente al validador, pero produce un comportamiento
no deseado cuando llega a la base de datos. Como un ejemplo,
CVE-2006- 2313 y CVE-2006-2314 describen una
vulnerabilidad relevante en PostgreSQL codificaciones
multibyte [71], [72]. Un atacante podría crear una cadena que
un validador de codificación-conscientes (es decir, uno que
asume de entrada para estar en ASCII, Latin-1 o alguna otra
codificación byte simple) acepta, pero que un servidor
utilizando una codificación multibyte (UTF-8, Shift-JIS, etc.)
analiza de una manera tal como para poner fin a una cadena
literal temprano.
Un medio más indirectos del uso de los diferenciales de facto entre el IDS y las unidades de tratamiento de entrada de
árbol de análisis sintáctico como oráculos aparece en la obra destino. El primer trabajo [82] para demostrar exhaustivamente
de Clayton en el sistema CleanFeed contra la pornografía de la debilidad fundamental de los sistemas de detección de
British Telecom [80]. Se construye paquetes TCP con un valor intrusiones de red (NIDS) fue, como era previsible, en base a
TTL elegido especialmente que, si se utiliza realmente, intuiciones hackers. Estas intuiciones probablemente fueron
permitiría la obtención de un comportamiento de redirección informados por el uso previo de diferencias de implementación
de tráfico- del sistema proxy de CleanFeed contra el pila TCP / IP para la toma de huellas dactilares en el sistema
comportamiento del tráfico noninterdicted que ponga de
manifiesto de forma selectiva con exactitud qué direcciones IP
materiales alojada que BT estaba tratando de bloquear!
En particular, el ataque de Clayton hace uso de tres
protocolos TCP, IP, ICMP y separadas-siendo utilizado por
varios siste- mas (BTS de un usuario, y la de un sitio
prohibido). Esta alta se enciende la observación empírica bien
conocido que los sistemas compuestos tienden a tener
comportamientos característicos que resultan de la
composición y no son, evidentemente, inherente a los
componentes individuales. En aplicaciones críticas (por
ejemplo, un sistema de anonimato utilizada para evadir la
represión violenta), estos comportamientos pueden ser
mortales. Para citar una máxima hacker, Composición Veces.
1) Una orden bien definido en Parse árbol Diferenciales:
Con- Sider diferencial de un ataque al árbol de análisis
ejecutado entre dos implementaciones diferentes de un mismo
protocolo de un árbol de análisis diferenciales de orden cero.
Dispone de dos pasos, el protocolo de codificación y
decodificación de protocolo.
Ahora considere un ataque diferencial árbol de análisis
ejecutado entre dos implementaciones diferentes de dos
protocolos diferentes,→pro ejemplo, HTTP ASN.1. (Por
ejemplo, X genera ASN.1 que se transforma en HTTP que se
analiza por Y). La transformación entre un protocolo y otro es
un punto de interés; puede, por ejemplo, ASN.1 malformado
ser generada con respecto a la función de transformación a
HTTP tal que Y realiza algún cálculo inesperado? Se trata de
un árbol de análisis diferencial de primer orden. Tiene tres
pasos: protocolo de codificación, la transformación de
protocolo (el protocolo ') y el protocolo' decodificación.
La construcción se extiende de forma recursiva.
Reconocimiento
Los autores desean agradecer a E. Feustel por sus observa-
ciones sobre la seguridad de los sistemas compuestos, D.
Kaminsky por su colaboración en el análisis de fallas en
programas de análisis ASN.1,
A. Bogk, R. Farrow, D. McCardle, J. Oakley, F. Piessens, A.
Shubina, y SW Smith por sus útiles sugerencias sobre
versiones anteriores de este documento, y N. Borisov, N.
Kisserli,
F. Lindner, D. McIlroy, y D. Molnar por sus conversaciones
interesantes durante el proceso de esta investigación.
referencias
[1] D. Geer, “cumplimiento vulnerables”, entrada:. El USENIX Mag, vol.
35, no. 6, Dic de 2010.
[2] F. “FX” Lindner, “El efecto observador comprometida,” McAfee
Security J., vol. 6, 2010.
[3] DJ Bernstein, “Reflexiones sobre la seguridad después de diez años de
qmail 1.0”, en Proc. ACM CSAW, 2007, pp. 1-10.
[4] L. Lamport, “La demostración de la corrección de los programas de
multiproceso,” IEEE Trans. N del software. Eng., Vol. 3, no. 2, pp.
125-143, marzo de 1,977 mil.
[5] R. Jhala y R. Majumdar, “la verificación de modelos de software”,
ACM Comput. Surv., Vol. 41, no. 4, 2009.
[6] H. Finney, “RSA falsificación de la firma de Bleichenbacher basa en
el error mentación imple-”, de agosto de 2006.
[7] T. Izu, T. Shimoyama, y M. Takenaka, “Extender ataque falsificación
de Bleichenbacher,” Informe a J.. Proceso., Vol. 16, pp. 122-129, Sep.
de 2008.
[8] D. Kaminsky, ML Patterson, y L. Sassaman, “pastel de capas PKI:
Nuevos ataques de colisión contra la infraestructura X.509 global”, en
Criptografía financiera. Berlín, Alemania: Springer, 2010, pp 289-
303..
[9] GRAMO. Se'nizergues, “L (A) = L (B)? decidibilidad resultados de
los sistemas formales completos “, Theor. Comput. Sci., Vol. 251,
núms. 1-2, pp. 1-166, 2001.
[10] M. Sipser, Introducción a la Teoría de la computación, segunda ed.,
Inter- nacional ed. Clifton Park, Nueva York: Thompson Course
Technology, 2006.
[11] S. Kepser, “Una prueba simple para el Turing-integridad de XSLT y
XQuery”, en Proc. Marcado extrema Lang., 2004.
[12] R. Onder y Z. Bayram “versión 2.0 XSLT es Turing completo: Una
prueba puramente de transformación en base”, en Proc.
Implementación Appl. Autómatas, LNCS 4094. 2006, pp. 275-276.
[13] E. Fox-Epstein. (2011, marzo). Experimentaciones con el extracto
Máquinas
[En línea]. Disponible: https://github.com/elitheeli/oddities
[14] M. Cook, “universalidad en autómatas celulares elemental,” Syst
Complex., Vol. 15, no. 1, pp. 1-40, 2004.
[15] J. Wolf, “OMG-WTF-PDF”, en Proc. 27 Caos Comput. Congr., Dic
de 2010.
[16] NA Danielsson, “combinadores totales analizador”, en Proc. 15a
ACM SIGPLAN ICFP, 2010, pp. 285-296.
[17] A. Koprowski y H. Binsztok, “TRX: Un intérprete analizador
verificado formalmente,” en Proc. Prog. Lang. Syst., LNCS 6012.
2010, pp. 345-365.
[18] T. Ridge, “simple y funcional, el sonido y el análisis completo para
todas las gramáticas libres de contexto”, presentado para su
508 IEEE Systems Journal, vol. 7, NO. 3, septiembre 2013
[22] S. Ginsburg y S. Greibach, “libres de contexto lenguas deterministas”, [55] F. Valeur, D. Mutz, y G. Vigna, “Un enfoque basado en el aprendizaje a
en Proc. 6 de Symp. La conmutación de circuitos Teoría del Diseño la detección de ataques SQL”, en Proc. DIMVA, Jul. De 2005, págs.
Lógico, 1965, pp. 203-220. 123-140.
[23] W. , J. Kannan, y HJ Wang, Cui “descubridor: protocolo automático de [56] GT Buehrer, BW Weide, y PAG Sivilotti, “Uso de la validación árbol
la ingeniería inversa de trazas de red”, en Proc. USENIX Sec. Symp., de análisis sintáctico para prevenir ataques de inyección SQL”, en Proc.
2007. En t. N del software del taller. Ing. Middleware, 2005, pp. 106-113.
[24] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, y T. [57] PAG. Bisht, P. Madhusudan, y VN Venkatakrishnan, “Candid: DY-
Berners-Lee, Protocolo de transferencia de hipertexto: HTTP / 1.1, NAMIC evaluaciones de los candidatos para evitar automáticamente los
Petición de Comentarios: 2616, junio de 1999.. ataques de inyección SQL,” ACM Trans. Inf. Syst. Seguridad, vol. 13,
[25] Instituto de Ciencias de la Información, Protocolo de Internet, Solicitud no. 2, pp. 1-39, 2010.
de comen- tarios: 791, septiembre de 1981. [58] Z. Su y G. Wassermann, “La esencia de los ataques de inyección de
[26] W. Ali, K. Sultana, y S. Pervez, “Un estudio sobre la extensión de comandos en aplicaciones web”, en Proc. 33 Symp. Programa
programación visual de JavaScript,” Int. J. Comput. Appl., Vol. 17, no. principios. Lang., 2006, pp. 372-382.
1, pp. 13- 19, marzo de 2011. [59] W. GJ Halfond y A. Orso, “La prevención de ataques de inyección SQL
[27] PW Abrahams, “una solución definitiva a la persona que cuelga de utilizando amnesia,” en Proc. 28 Int. Conf. N del software. Eng., 2006,
ALGOL pp. 795- 798.
60 y relacionados con los idiomas,”Commun. ACM, vol. 9, pp. 679- [60] G. Wassermann, C. Gould, Z. Su, y P. Devanbu, “comprobación estática
682, Sep. 1 966. de consultas generadas dinámicamente en aplicaciones de bases de
[28] DE Knuth, “Sobre la traducción de idiomas de izquierda a derecha,” datos,” J. ACM Trans. N del software. Ing. Methodol., Vol. 16, no. 4,
Inform. Control, vol. 8, no. 6, pp. 607-639, 1965. 2007.
[29] HJS Basten, “La facilidad de uso de métodos de detección de la [61] K. Wei, M. Muthuprasanna, y S. Kothari, “Prevención de ataques de
ambigüedad de las gramáticas libres de contexto,” Electrón. Notas inyección SQL en procedimientos almacenados”, en Proc. Aus. N del
Theor. Comput. Sci., Vol. 238, pp. 35-46, octubre de 2009. software. Ing. Conf., 2006, pp. 191-198.
[30] RW Floyd, “Sobre la ambigüedad en idiomas frase estructura,” [62] M. Muthuprasanna, K. Wei, y S. Kothari, “ataques de inyección La
Commun. ACM, vol. 5, p. 526, octubre de 1962. eliminación de SQL: un mecanismo de defensa transparente”, en Proc. 8
[31] CE Shannon, “Una teoría matemática de la comunicación,” Campana de IEEE Int. Symp. Sitio Web Evol., Sep. de 2006, pp. 22-32.
Syst. Tech. J., vol. 27, pp. 379-423, Jul. 1 948. [63] C. Gould, Z. Su, y P. Devanbu, “JDBC corrector: Una herramienta de
[32] W. Schramm, “¿Cómo funciona la comunicación”, en el proceso y análisis estático para aplicaciones de SQL / JDBC,” en Proc. En t. Conf.
efectos de la comunicación. Champaign, IL: Univ. Illinois Press, 1954. Suave. Eng., 2004, pp. 697-698.
[33] DK Berlo, el proceso de comunicación. Concord, CA: Holt, Rinehart y [64] AS Christensen, A. Møller, y MI Schwartzbach, “Análisis preciso de
Winston, 1960. expresiones de cadena”, en Proc. 10ª Int. Anal estática. Symp., 2003, pp.
[34] CAR Hoare, “Una base axiomática de la programación informática,” 1-18.
Comu. ACM, Vol. 12, no. 10, pp. 576-583, 1969. [65] S T. Sun y K. Beznosov, “Montaje posterior de las aplicaciones web
[35] HP Grice, estudios realizados en el Camino de las palabras. Cambridge, existentes con protección dinámica eficaz contra los ataques de
MA: Harvard Univ. Press, 1989. inyección SQL,” Int.
[36] B. Meyer, “Aplicación de dsigna por contrato,” Computer, vol. 25, pp. J. Secure Softw. Ing., Vol. 1, pp. 20-40, enero de 2010.
40-51, octubre de 1 992. [66] W. GJ Halfond y A. Orso, “Amnesia: Análisis y seguimiento para
[37] “CWE-77”, en la enumeración debilidad común. Jul. De 2008. neutralizar los ataques de inyección SQL,” en Proc. ASE 2005,
[38] T. Berners-Lee, R. Fielding, y L. Masinter, RFC 3986, Uniform noviembre de 2005, pp. 174-183.
Resource Identifier (URI): Sintaxis Genérica, Petición de Comentarios: [67] W. Halfond, A. Orso, y P. Manolios, “Uso de adulteración positivo y
3986. de enero de 2005. evaluación de sintaxis-consciente para contrarrestar los ataques de
[39] D. Raggett, A. Le Hors, e I. Jacobs, las formas en los documentos inyección SQL”, en Proc. FSE 2006, noviembre de 2006, pp. 175-185.
HTML, HTML 4.01, Dic de 1999. [68] PY Gibello. (2002). ZQL: Java SQL Analizador [En línea].
[40] L. y S. Carettoni di Paola, HTTP Parámetro contaminación. OWASP Disponible:http://zql.sourceforge.net/
UE Polonia, 2009. [69] K. Kemalis y T. Tzouramanis, “SQL-IDS: Un enfoque basado en la
[41] T. Pietraszek y CV Berghe, “La defensa contra los ataques de inyección especificación para la detección de la inyección SQL”, en Proc. Symp.
a través de la evaluación cadena de contexto-sensible”, en Proc. RAID, Appl. Comput., 2008, pp. 2153-2158.
2005, pp. 124-145. [70] A. Liu, Y. Yuan, D. Wijesekera, y A. Stavrou, “SQLProb: una
[42] W. GJ Halfond, J. Viegas, y A. Orso, “Una clasificación de los ataques y arquitectura basada en proxy- hacia la prevención de ataques de
las contramedidas de inyección sql-”, en Proc. IEEE Int. Symp. N del inyección SQL,” en Proc. ACM Symp. Appl. Comput., 2009, pp. 2054-
software seguro. Eng., Marzo de 2006. 2061.
[43] RIX. (2001, agosto). Escribiendo shellcodes alfanuméricos IA32. [71] National Vulnerability Database, CVE-2006-2313, mayo de 2006.
Phrack [línea On-]. 57 (5). \ [72] National Vulnerability Database, CVE-2006-2314, mayo de 2006.
Disponible:http://www.phrack.com/issues.html?issue=57 & Id = 15 [73] D. Knuth, “semántica de los lenguajes libres de contexto,” Matemáticas.
[44] Nergal. (2001, diciembre). El retorno-en-lib avanzada (c) explota: Syst. Theory, vol. 2, pp. 127-145, 1968.
estudio de caso de personas. Phrack [En línea]. 58 (4). [74] B. Kaliski. (1998, marzo). PKCS # 1: RSA Encryption [En línea].
Disponible:http://www.phrack.com/ issues.html? tema = 58 & id = 4 Disponible:http://tools.ietf.org/html/rfc2313
[45] R. Roemer, E. Buchanan, H. Shacham, y S. Savage, “Retorno de [75] B. Ford, “Analizar las gramáticas de expresión: Una base sintáctica
programación orientado a: sistemas, lenguajes y aplicaciones”, que se basada en el reconocimiento”, en Proc. 31 ACM SIGPLAN-SIGACT
publicarán. Symp. POPL, 2004 pp. 111-122.
[46] H. Shacham, “La geometría de carne inocente en el hueso: libc Return- [76] M. Howard, J. Pincus, y J. Wing, “Medición de superficies de ataque
en- sin función llama (en el x86),” en Proc. CCS, 2007. relativos,” en la seguridad informática en el siglo 21, DT Lee, SP Shieh,
[47] T. Durden. (2002, Jul.). Sin pasar por la protección ASLR personas. y
Phrack [En línea]. 59 (9). JD Tygar, Eds. Nueva York: Springer, 2005, pp 109-137..
\
Disponible:http://www.phrack.com/issues.html?issue= 59 & id = 9 [77] D. Cooper, S. Santesson, S. Farrell, S. Boeyen, R. Housley, y W. Polk,
[48] Una. (1996, agosto). Rompiendo la pila para la diversión y el beneficio. certificado de infraestructura de Internet X.509 de la clave pública y la
Phrack [En línea]. 49 (14). lista de revocación de certificados (CRL) Perfil, RFC 5280, RFC 3280
\
Disponible:http://www.phrack.com/issues.html?issue= 49 & id = 14 obsoletes, 4325 , 4630, mayo de 2008.
[49] MaXX. Trucos malloc Vudo. Phrack [En línea]. 57 (8). [78] PAG. Eckersley, “¿Cómo único es su navegador web ?,” Electronic
Disponible:http://phrack.org/issues.html?issue=57&id=8 Frontier Foundation, Tech. Rep., 2009.
[50] autor anónimo. Erase una libre (). Phrack [En línea]. 57 (9). [79] N. Mathewson y R. Dingledine, “análisis de tráfico práctica:
Disponible:http://phrack.org/issues.html?issue=57&id=9 Ampliación y resistir divulgación estadística”, en Proc. Taller de PET,
[51] jp. (2003, agosto). exploits malloc de avanzada Doug Lea. Phrack [línea LNCS 3424. mayo de 2004, págs. 17-34.
On-]. 61 (6). Disponible:http://www.phrack.com/issues.html?issue=61 \ [80] R. Clayton, “Los fallos en un sistema de bloqueo de contenido híbrido”,
& Id = 6 en Proc. Quinto Taller de PET, 2005, p. 1.
[52] T. Newsham. (2000, Sep.). Los ataques formato de cadena [online]. [81] F. Lindner, “El efecto observador comprometida,” McAfee Security J.,
~
Disponible:http://www.thenewsh.com/ newsham / serie-formato- vol. 6, 2010.
attacks.pdf [82] T. Ptacek, T. Newsham, y HJ Simpson, “Inserción, la evasión, y Nial de-
[53] National Vulnerability Database, CVE-2005-3962, Dic de 2005. de servicio: Eludiendo detección de intrusiones en la red,” Secure
[54] National Vulnerability Database, CVE-2011-1153, marzo de 2011. Networks, Inc., de West Palm Beach, FL, Tech. Rep., 1998.
[83] O. Arkin, “el uso de ICMP en la exploración, el know-how completo,”
Sassaman et al .: aplicaciones de seguridad DE teoría del lenguaje FORMAL 509
Grupo de Seguridad Sys, Tech. Rep., Versión 3.0, 2001.
510 IEEE Systems Journal, vol. 7, NO. 3, septiembre 2013
[84] M Handley, V. Paxson, y C. Kreibich, “detección de intrusiones de red: Len Sassaman fue miembro del Grupo de Investigación COSIC, Universidad
Evasión, normalización de tráfico, y la semántica de protocolo de Católica de Lovaina, Bélgica. Sus primeros trabajos con cypherpunks en el
extremo a extremo”, en Proc. 10 de USENIX de Seguridad Symp., sistema despachador Mixmaster anónima y el Proyecto Tor ayudó a establecer
2001, p. 9. el campo de la investigación anonimato. En 2009, él y ML Patterson comenzó
[85] U. Shankar y V. Paxson, “asignación de Active: Resistencia NIDS la formalización de las bases de la seguridad del lenguaje teórico, que se vio
evasión sin alterar el tráfico”, en Proc. IEEE Symp. Privacidad, mayo de involucrado con hasta el final de su vida.
2003, págs. 44-61. El Dr. Sassaman falleció en julio de 2011. Tenía 31 años de edad.
[86] S. Siddharth. (2005, diciembre). NIDS que evaden, Revisited [En línea].
Disponible:http://www.symantec.com/connect/articles/evading-nids-
revisited
[87] T. Garfinkel, “Trampas y escollos: problemas prácticos de las Meredith L. Patterson vive en Bruselas, Bélgica.
herramientas de seguridad basadas en la llamada al sistema de Como Ph.D. estudiante, desarrolló la primera defensa contra el lenguaje de
interposición”, en Proc. Netw. Syst distribuida. Symp seguridad., Feb. la teoría de inyección SQL en 2005 y ha continuado la expansión de la técnica
de 2003, pp. 163-176. desde entonces. En la actualidad con Nuance Communications de Burlington,
[88] SA Hofmeyr, A. Somayaji, y S. Forrest, “intrusión sistema de detección MA, EE.UU.. Es fundadora de honrados hackers LLC, Cheyenne, WY,
utilizando secuencias de llamadas al sistema,” J. Comput. Seguridad, EE.UU..
vol. 6, no. 3, pp. 151-180, 1998.
[89] HH Feng, O. Kolesnikov, P. Fogla, W. Lee, y W. Gong, “La detección
de anomalías utilizando la información de pila de llamadas”, en Proc. Sergey Bratus recibió el Ph.D. grado en matemáticas de la Universidad de
IEEE Symp. Privacidad, mayo de 2003, p. 62. Northeastern, Boston, MA.
[90] D. Wagner y P. Soto, “ataques mimetismo en sistemas de detección de En la actualidad es Profesor Asistente de Investigación de la informática
intrusión basado en host”, en Proc. ACM Conf. CCS, noviembre de con el Dartmouth College, Hanover, Nueva Hampshire. Él ve la piratería del
2002, pp. 255-264. estado de la técnica como una disciplina distinta de investigación e ingeniería
[91] C. Taylor y C. Gates, “desafiante el paradigma de detección de que, aunque todavía no reconocido como tal, alberga una visión profunda de
anomalías: Una discusión provocativa,” en Proc. 15a NSPW, Sep. de la naturaleza de la computación. Estaba con BBN Technologies, Cambridge,
2006, pp. 21-29. MA, trabajando en la investigación de procesamiento de lenguaje natural
[92] R. Sommer y V. Paxson, “Fuera del mundo cerrado: Sobre el uso de la antes de llegar a la universidad de Dartmouth.
máquina de aprendizaje para la detección de intrusiones de red”, en
Proc. IEEE Symp. Privacidad, mayo de 2010, pp. 305-316.
[93] A. Somayaji, S. Hofmeyer, y S. Forrest, “Principios de un sistema
inmune computadora”, en Proc. NPSW, 1998, pp. 75-82. Michael E. Locasto recibió la licenciatura licenciado en ciencias de la
[94] A. Somayaji y S. Forrest, “respuesta automática usando los retrasos de computación (Magna Cum Laude) de la Universidad de Nueva Jersey, Ewing,
llamadas al sistema”, en Proc. 9 de USENIX de Seguridad Symp., y el M.Sc. y Ph.D. títulos de la Universidad de Columbia, Nueva York.
Agosto de de 2000. En la actualidad es profesor adjunto en el Departamento de Ciencias de la
[95] F. B. Schneider, “las políticas de seguridad aplicables,” ACM Trans. Inf. Computación de la Universidad de Calgary, Calgary, AB, Canadá. Se trata de
Syst. Secur., Vol. 3, pp. 30-50, Feb. de 2000. comprender por qué parece difícil construir sistemas seguros, fiables, y cómo
[96] K. Bhargavan, C. Fournet, y AD Gordon, “verificación modular de podemos mejorar en ella.
código de protocolo de seguridad escribiendo,” SIGPLAN Not., Vol. 45,
2010.
[97] S. Chaki y A. Datta, “Aspier: Un marco automatizado para la
verificación de las implementaciones de protocolo de seguridad”, en
Proc. CSF, 2009, pp. 172-185.