13 junio 2009

Microsoft, ejemplo de seguridad

Normalmente, Microsoft ha sido un pim-pam-pum en temas referentes a la seguridad, históricamente ha ido arrastrando fama de que sus productos son inseguros, y ciertamente hace unos años así era.

En estos últimos tiempos, por contra, Microsoft se está tomando muy en serio la seguridad en sus desarrollos, aparte de fichar a verdaderos cracks para su equipo de seguridad, ha ido dando pasos significativos a la hora de desarrollar sus productos.

Tal vez el primer hito fue añadir a su compilador Visual Studio el flag /GS que introduce en el software compilado con ese flag una interesante protección basada en 'canarios' ante buffer overflows.

Otro paso bastante significativo ha sido recopilar una serie de funciones que tradicionalmente han sido problemáticas a la hora de provocar vulnerabilidades, y crear una lista de funciones baneadas para que jamas sean usadas en sus productos y siempre se usen sus funciones alternativas mas seguras. Es conocido que el lenguaje de programación C tiene, por compatibilidad, un buen numero de funciones que gestionan el copiado de cadenas / memoria sin preocuparse de si lo que van a copiar excede el tamaño de la variable destino, y estas funciones han sido un enorme lastre que ha ido generando innumerables bugs.

En definitiva, va tocando replantearse antiguos tópicos ¿no?

13 comments :

Zerial dijo...

Todos los programas tienen algun fallo de seguridad, no nos damos cuenta hasta que es encontrado, obviamente. Creo que lo que importa es el tiempo de respuesta que hay desde la empresa y la disposicion por solucionar este fallo.

Si comparamos los productos de microsoft con los de otras empresas o de otras personas que desarrollan en comunidad, como los desarrollos con software libre, el tiempo de respuesta es menor y la disposicion por solucionar ese fallo es mejor, ademas hay mas "mentes pensantes" para solucionar un fallo. Esto le da solidez al software.

En cierta forma es bueno que un software tenga fallos, se imaginan los programas no tuviesen fallos? Que aburrido :P

josemaria dijo...

Yo suelo comentar que Microsoft y *nix recorren el mismo camino pero en sentidos opuestos. La baza de Microsoft en sus comienzos fue hacer sistemas para bobos (fáciles de poner en marcha) y sin preocuparse de nada más (rendimiento, seguridad, etc.) mientras que los *nix han sido tradicionalmente seguros y eficientes pero difíciles de manejar. Ahora, cada vez nos encontramos windows más eficientes y seguros mientras que los *nix se van haciendo más amistosos en su primer contacto y, a veces y sobre todo en algunas distribuciones, descuidando otras cosas.

jg dijo...

Si con lo de comparar microsoft con otras empresas en cuestión de tiempo de respuesta de arreglar bugs, resulta bastante interesante la charla que realizo Crispin Cowan en la ShmooCon 2009 sobre su primer año trabajando en el equipo de seguridad de Microsoft.

En el software comercial pocas empresas gestionan la seguridad mas eficiente y velozmente que Microsoft. Aunque a veces sea más criticada que las demas, solo hay que mirar a empresas como Adobe o Apple para hecharse las manos a la cabeza (Vease el ejemplo de los bugs de Adobe Reader a principios de año).

En cuanto al software libre, Crispin lo resumió en su charla mejor de lo que yo podría hacerlo en este post, pero salvo proyectos grandes y muy concretos como el Kernel, la mayoria del resto del proyectos permanecen largamente desatendidos. Proyectos en los que la teoría del "muchos ojos mirando" no se lleva a la practica.

SpamLoco dijo...

Es interesante el cambio que se está viendo, hoy ya tienen el tema de seguridad sobre la mesa cuando comienzan a desarrollar algo... en Vista se notó y en Win 7 van por la revancha.

David dijo...

Estoy de acuerdo, creo que la gente exagera con Microsoft y hoy en día tiene unos productos de una calidad indiscutible y completamente seguros. Y lo que me parece más importante, su premisa es sobre todo hacerle la vida fácil al administrador y al programador, por que no a todo el mundo le dusta trastear con el ordenador, hay gente que lo ve solo com un trabajo, lo cual es muy respetable...
Mucha gente critica a Microsoft, pero desde mi punto de vista ellos son los que popularizaron la informatica y sin ellos hoy no sería lo que es...
Saludos!!

Zerial dijo...

¿Microsoft? ¿Popularizar la informatica?
que vaaaaaaaaaaaaaaaaaaaa

Miguel Ángel dijo...

A ver si es cierto lo que dicen y los programas de microsoft se hacen realmente seguros.
¿Para cuando será innecesario tener un antivirus en windows porque no haya bugs que puedan aprovechar los virus?

Yago Jesus dijo...

Está claro que bugs siempre habrá, en el caso de Microsoft por ser mas lucrativo encontrarlos, siempre en mayor porcentaje. El ejemplo palmario de que este juego siempre lo ganan los mismos es OpenBSD, a pesar de estar ultra-auditado y contar con cientos de protecciones, le siguen localizando bugs

Anónimo dijo...

como leí arriba es cierto MS popularizó la informática con DOS y posteriormente windows y office el que no lo acepte simplemente no ha vivido la realidad.

Zerial dijo...

Para @Anonimo y @David: La informática es MUCHO MAS que una empresa o un sistema operativo. Microsoft popularizó DOS y Windows, claro, son sus productos, pero en ningun caso popularizo la informatica.

David dijo...

@Zerial , está claro que la informática es mucho más que eso, pero no me negaras que hasta que salio ubuntu hace poco, la opción más sencilla para utilizar un ordenador para un simple mortal era usar Windows, y mira que a mi me gusta linux y soy linuxero, pero no soy linuxero antimicrosoft. Soy programador y suelo programar en PHP, C# o Java, y hay que reconocer que el Visual Studio es una herramienta impresionante que realmente ayuda muchísimo al programador y que pienso que ninguna otra herramienta ha alcanzado ese nivel de calidad, ni siquiera Eclipse pienso que se acerque. Yo siendo informático uso Linux siempre que puedo, por que me da ventaja sobre Windows al ahorrarme costes y poder poner un precio más competitivo, que luego recuperaré con el mantenimiento del sistema Linux, al que no todo el mundo sabe meterle mano al servidor con la pantalla negra... pero hay que reconocer cuando alguien lo hace bien, y para mi, Microsoft lo esta haciendo horrorosamente mal en a web (Bing, Windows Live Spaces, etc...), pero en el escritorio, es el mejor....

Saludos!!

Anónimo dijo...

Creo que estás en lo cierto cuando dices que Microsoft ha cambiado "su visión" sobre la seguridad. Está claro que hay una evolución, que también se da en otros sistemas operativos, a preocuparse por la seguridad.

DEP, ASLR, UiPi, MIC ... en fin, todas esas siglas .. dicen algo respecto a aquellos Windows 95/98/ME/2000. Pero vamos, si miras entorno a Windows ves que el resto tampoco se queda parado.

No obstante el principal problema de windows no es "su preocupación por la seguridad ahora" es el hecho de "la compatibilidad hacia atrás". Aunque "evolucionan", y aunque "reescriben", en Microsoft Windows existen muchas opciones de diseño y mucho código heredado que son incompatibles con principios de buenas prácticas en seguridad de la información: simplicidad en el diseño, aislamiento de roles y privilegios, ejecución con los mínimos privilegios posibles, etc.

En definitiva, Microsoft Windows, en sus orígenes optó por decisiones que puede que de cara a "la experiencia de usuario" hayan sido muy importantes para facilitarla, pero de cara a la seguridad de la información han supuesto y supondrán un lastre en el futuro.

Un saludo.

Julio Jaime dijo...

Después de 20 años en una posicion monopolica, podemos decir que Microsoft se tomo en serio la seguridad.

De todas maneras para ser un "ejemplo de seguridad" este tipo de problemas :

http://packetstormsecurity.org/0906-exploits/CORE-2008-0826.txt

Debería tener al menos un workaround publico en menos de 8 meses.


Excelente blog.