Acabo de terminar de leer la Apple Secure Coding Guide.
La verdad me llevé una sorpresa con la facilidad de lectura que tiene la guía y la sencillez con la que se explican diversos problemas de seguridad en el Software.
El libro habla de varios puntos, explica con gran facilidad el BoF de Stack y Heap. “Aunque crean que ya lo saben todo recomiendo leer esto”
Uno de los temas que más llamo mi atención fue lo referente a los problemas con race conditions de TOCTOU.
Pero que es un race condition ?
Es algo que ocurre cuando 2 eventos van fuera de secuencia y si la secuencia es un requisito para la correcta funcionalidad del programa, esto resulta en un bug.
Voy a poner un ejemplo:
Cuando un programa se ejecuta generalmente checa condiciones antes de hacer las acciones correspondientes.
Por ejemplo si necesita escribir el output de alguna herramienta, primero tiene que ver que exist la herramienta y que exista un archivo en el cual escribir correcto ?
Otro ejemplo es que para poder ejecutar una herramienta que utilize libpcap para escribir raw packets es necesario tener permisos de administrador.
Y esto trata de explotar el tiempo que existe entre el chequeo y el uso de algún recurso.. Ya que por una fracción de segundo es posible explotar esto.
En fin, recomiendo leer esta guía ampliamente.
Yo volví a retomar algunos conceptos y reforzarlos. De igual manera aprendí cosas nuevas con respecto a la prevención de BoF y Race Conditions.