Un fallo sutil

Parece que últimamente, además de tener este sitio un poco abandonado, apostamos por historias un poco truculentas y sutiles. Supongo que para temas más del día a día hay otros blogs y a uno le gustan las cosas que le gustan. En I Saw An Extremely Subtle Bug Today And I Just Have To Tell Someone cuentan como encontraron un fallo bastante sutil y cómo descubrieron el origen.

De hecho, en este caso se trata de una condición de carrera que es un fallo difícil de encontrar, sobre todo cuando ni siquiera se está pensando en ello.

Podemos extraer enseñanzas generales: tenemos sistemas muy complejos (combinación de hardware diverso, sobre el que va el sistema operativo, y seguramente varios niveles más de software apildos). Cuando el fallo es obvio, está más o menos claro donde mirar; pero cuando hay interacciones, la cosa se complica.

Cuidado con los secretos

Hay gente que cree que es suficiente con ofuscar algo para que otros no puedan acceder a la información (de hecho, creen que sus métodos de ofuscación son realmente métodos de cifrado). En Nuclear sub secrets revealed by mod ‘schoolboy error’ nos cuentan un caso de estos:

But in what was described as “a schoolboy ­error” the technique used by MoD staff to censor the ­document was easy to reverse. The bunglers turned the text background black – making the words unreadable – but crucially left them in place. That meant anyone wanting to read the censored sections just had to copy the text.

Fallos frecuentes en el código

En Olores de código (Code Smells). Ya hablábamos antes de las metodologías ágiles de este tipo de problemas pero no hay que negar que la literatura con la que lo adornan los hacen todavía más atractivos.

Buscando, encuentro aquella entrada sobre la complejidad y la seguridad.

Pagar la ‘deuda técnica’

Me pareció muy sugerente el concepto y quiero dejarlo anotado aquí: En ¿Como pagar la “deuda técnica”? se hace la analogía económica con las ‘hipotecas’ en que incurrimos cada vez que aceptamos una chapuza o una mala solución en nuestros sistemas, pensando que ya lo arreglaremos más adelante. Apuntan a la entrada de la Wikipedia, Technical debt y se puede leer algo más sobre el tema en Technical Debt

Un fallo de 17 años

Esta vez se trata de un fallo en Windows, Windows plagued by 17-year-old privilege escalation bug. Concretamente afecta a la ‘Virtual DOS Machine’ introducida en 1993 con Windows NT. En Microsoft Windows NT #GP Trap Handler Allows Users to Switch Kernel Stack se pueden ver más detalles del fallo.

Es una cosa medio técnica y poco ‘glamourosa’ (creo), pero ¿por qué lo traigo aquí?
Me gusta recopilar este tipo de cosas, y ya habíamos hablado de fallos que permanecen mucho tiempo y que aparecen años después (en esta ocasión casi con la ‘mayoría de edad’) en El mito de los miles de ojos, hablando del software libre y este que traemos ahora es de software privativo, pero de difusión muy amplia.

Actualización del OWASP Top 10

Tenía pendiente comentarlo desde hace unos días y la gente de Hispasec me da la ocasión: OWASP: Los diez riesgos más importantes en aplicaciones web (2010).

En OWASP Top 10 for 2010 hay más detalles y puede ser una lista de los fallos que sí o sí debería conocer cualquier desarrollador web:

* A1: Injection
* A2: Cross-Site Scripting (XSS)
* A3: Broken Authentication and Session Management
* A4: Insecure Direct Object References
* A5: Cross-Site Request Forgery (CSRF)
* A6: Security Misconfiguration
* A7: Insecure Cryptographic Storage
* A8: Failure to Restrict URL Access
* A9: Insufficient Transport Layer Protection
* A10: Unvalidated Redirects and Forwards

También se puede descargar de OWASP Top 10 2010 – PDF