Top.Mail.Ru
? ?
code-injection vs code-reuse attacks.png

El día viernes pasado tuve la oportunidad de dar una charla virtual en la Facultad de Ingeniería de la UdeC, en esta charla se trató el tema de los ataques de reutilización de código y las defensas propuestas hasta ahora. En 2016 Díez-Franco e Igor Santos señalaban que el código C / C ++ va de la mano con los errores de corrupción de memoria, que permiten a un adversario lanzar ataques que explotan esos errores. Los ataques de inyección de código stack-based o heap-based overflows, dangling pointers/use-after free, y format string vulnerabilities son comunes y se pueden prevenir utilizando defensas como write-xor-execute (WE) / Data Execution Prevention (DEP) y stack canaries que se incluyen en los compiladores y sistemas operativos actuales. Sin embargo, los ataques de reutilización de código, como return-into-libc, return-oriented programming (ROP), y jump-oriented programming (JOP) todavía no se pueden prevenir por completo. Los sistemas operativos en sí mismos no están exentos de ataques de reutilización de código, como return-to-user (ret2usr), una variante a nivel de kernel de return-into-libc, y sigreturn-oriented programing (SROP), que explota las capacidades de manejo de señales de sistemas similares a UNIX para implementar gadgets de la misma manera que ROP y JOP lo hacen con las instrucciones ret y jmp respectivamente.
Para los ataques de reutilización de código a la fecha ya se han propuesto contramedidas, una de las principales es el uso de Control-Flow Integrity (CFI) que tiene varias implementaciones, como: MoCFI, CCFIR, Bin-CFI, kBouncer, ROPecker, O-CFI, Virtual-Table  Verification  (VTV) y  Indirect  Function-Call  Checks  (IFCC), SafeDispatch, VfGuard, VTint, PathArmor, TypeArmor, SafeDispatch, VTV, VTrust y VTI, sin embargo, todas ellas tienen una alta exigencia en cuanto a las necesidades de computo, por lo que se han propuestos otras soluciones alternativas, que ya hemos revisado en otras ocasiones: HIPStR, No-Execute-After-Read, JITSafe, Xede, JOP-Alarm, y otras propuestas basadas en hardware. Sin embargo, los code-reuse attacks aún no han sido derrotados y se han propuesto varías técnicas novedosas para la explotación de sistemas.
La presentación de ese día la pueden descargar en este enlace.

Acerca de Juan Anabalón

deoxyt2
Juan Rodrigo Anabalón R.
He estado escribiendo sobre temas de ciberseguridad en Livejournal desde el 2008 y en mi horrible y extinto MSN Spaces desde el 2006. Soy profesor de ciberseguridad en
Universidad San Sebastián, Presidente en ISSA Chile capitulo chileno de ISSA International y fundador de MonkeysLab.
También tomo y publico fotos en flickr y 500px
Este sitio web es personal y no expresa la opinión de esas organizaciones.




MonkeysLab




Copyleft
Copyleft: Atribuir con enlace.




Sindicar

RSS Atom

Tags

Powered by LiveJournal.com
Designed by Lilia Ahner