You are on page 1of 8

Seguridad en redes Qu es? Cmo lograrla?

1. Definiendo seguridad 2. Aspectos de la seguridad en redes 3. Implementando seguridad / Ecologa ciberntica 4. La seguridad y el Software Libre 1. Definiendo seguridad Qu es seguridad?

Que el sistema se comporte como esperamos Que el sistema se comporte como nosotros (los programadores, administradores y usuarios del sistema) esperamos

Un poco vago, no? Bueno, vamos un poco ms a detalle... Antes de continuar, tenemos que asegurarnos de comprender una palabra muy importante Caractersticas de un sistema seguro

Consistencia:
o

Ante las mismas circunstancias, el sistema debe presentar el mismo comportamiento

Proteccin y Separacin:
o

Los datos, instrucciones y espacio de memoria de un programa no deben interferir ni ser interferidos por otros Los datos y las acciones de un usuario no deben ser visibles o modificables por otros, y no deben tener efecto para otros. Las condiciones anormales de un proceso -sean accidentales o expresas- deben tener un impacto mnimo en el sistema

Control de acceso:
o

El administrador del sistema, as como cada usuario, deben poder controlar granularmente los permisos de acceso a su informacin Quin tiene acceso y qu tipo de acceso tiene.

Autenticacin:
o

El sistema debe poseer los mecanismos necesarios para asegurarse que un usuario es realmente quien dice ser

Auditora:
o

El sistema debe ser capaz de notificar al administrador (y opcionalmente a los usuarios) de cualquier anomala o evento importante

El utpico 100% Es imposible alcanzar un 100% de seguridad.

Los programas son escritos por humanos, y por tanto son susceptibles a tener todo tipo de errores La complejidad de los programas -an los ms simples- no permite al programador mantener en mente todos los factores Hay una gran cantidad de interacciones entre los elementos de un programa y el sistema, y un cambio en cualquiera de ellos puede tener consecuencias inesperadas si no se hace con cuidado y conciencia Constantemente aparecen nuevas categoras de errores capaces de llevar a problemas de seguridad

2. Aspectos de la seguridad en redes Capa fsica

Cableado mal instalado


o o o

Paso del cableado por reas no confiables Cables no entubados o canalizados Puntos en lugares impensables

Inalmbrica no cifrada Facilidad de conexin sin trmites Basurero con contenido confidencial

2. Aspectos de la seguridad en redes Sistemas operativos

Sistemas poco tolerantes o robustos


o o

Situaciones frontera Datos mal formados

Revisin no exhaustiva de posibles respuestas

Falta de delimitacin clara de objetivos Falta de una auditora real, constante y proactiva APIs/ABIs cambiantes

Aplicaciones

Confianza ciega en los datos recibidos


o o o

Buffers no verificados Tipos de datos no verificados Contenido de los datos no verificado

Uso de bibliotecas inestables Errores insalvables en el diseo


o

Consecuencia de la falta de una metodologa formal adecuada

Protocolos

Envo de datos sensibles no cifrados Confianza ciega en el host que reporta la capa de red Entrega de informacin potencialmente daina/sensible Confianza ciega en lo que "promete" el cliente
o o o

content-type length encoding

Ejemplos: FTP, NFS, RPC, UDP, Finger, HTTP+contraseas, SMB, y un largo etctera

Usuarios

Polticas de uso aceptable inexistentes, incompletas, no aplicables o carentes de autoridad Falta de conciencia

Capa 8 defectuosa "Lucha entre los programadores y el universo" Analoga entre las contraseas y la ropa interior

3. Implementando seguridad / Ecologa ciberntica Ecologa ciberntica?!

La importancia de ser conscientes de nuestro entorno

...Y de actuar en consecuencia Ser programadores seguros


K.I.S.S. Pensar en los posibles futuros programadores/mantenedores de nuestro software Revisar siempre todo
o o o o

Valores de retorno Creacin de objetos Tipos de datos Contenido vlido

Ser programadores seguros


Llevar a cabo un buen anlisis previo a comenzar a escribir cdigo Utilizar estructuras de datos comprensibles y acordes a nuestro problema Documentar conforme programamos Escribir pruebas conforme documentamos, basndonos en la documentacin y no en nuestro otro cdigo
o

Mejor an: Yo escribo tus pruebas, t escribe las mas

Ofrecer APIs consistentes y estables

Ser administradores seguros

Filosofa "Less is more": La belleza del minimalismo No hay nada como una sana paranoia Buscando la comodidad y la facilidad en el lugar correcto
o

Usar un OS bien diseado y simple de administrar

... aunque tenga que aprender a utilizarlo

Caracterizar las verdaderas necesidades de los usuarios, saber decirles que no, ayudarles a ajustar lo que buscan
o

Mi usuario no es malicioso por naturaleza

...aunque tal vez s profundamente ignorante Ser usuarios seguros

No confiar en que nadie atacar nuestro sistema nicamente por ser casero
o

Recuerden a los virus, troyanos, gusanos y dems... Y a las hordas de script kiddies

No restar importancia a las actualizaciones No restar importancia a la solidez general del sistema Enviar bug reports ...Realmente necesitamos un entorno tan rico? Saber lo que pedimos o ... Pues lo recibiremos

4. La seguridad y el Software Libre Qu es el Software Libre? Software cuya licencia nos permite expresamente:

Uso irrestricto, bajo cualquier circunstancia y para cualquier fin, del programa en cuestin Acceso irrestricto a su cdigo fuente para aprender de l, adecuarlo, modificarlo, adaptarlo, corregirlo, mejorarlo, etc. Libre redistribucin, gratuita o comercial, del programa completo o porciones del mismo, en su forma original o modificado

'libre' != 'gratis' Es incorrecto referirse al Software Libre como software gratuito


Es vlido cobrar por desarrollar Software Libre Es vlido cobrar por adecuar Software Libre Es vlido cobrar por distribuir Software Libre

'libre' != 'dominio pblico' o 'shareware' El Software Libre no es perteneciente al dominio pblico.

El Software Libre est protegido por una licencia (copyright, copyleft) que impone claras restricciones y condiciones de uso/distribucin El Software Libre pertenece a sus autores o a quien ellos designen

El Software Libre no es shareware


No condiciona funcionalidad al pago de regalas Se distribuye con todo y fuentes No condiciona la distribucin a un pago

Por qu confiar en el Software Libre? (1)

El cdigo est disponible - puede ser analizado por quien quiera (y sepa) hacerlo. Generalmente se apega estrictamente a estndares que permiten la operacin en redes heterogneas Muchas veces es desarrollado de forma altruista, no siguiendo los compromisos de negocios de una compaa
o o o o

Como producto de investigacin formal Porque es divertido Como ejercicio intelectual "Rscate donde te pique"

Por qu confiar en el Software Libre? (2)

Muchos proyectos son resultado de colaboracin de desarrolladores de todo el mundo


o

El cdigo producido es ms limpio y est mejor documentado que en desarrollos cerrados Es ms extensible y adecuable, pues los desarrolladores comparten la filosofa de la libertad y porque estn acostumbrados a aprender de otros proyectos libres Hay menos "ceguera cultural" en los productos resultantes

Principales proyectos libres - Sistemas operativos

Linux
o

Y sus muchsimas distribuciones: Debian, Suse, Mandrake, RedHat, y una largusima lista

FreeBSD OpenBSD NetBSD Sistemas operativos menores


o

Hurd, AtheOS, Exokernel, Unununium, VOiD, PicoGUI, XMach, y un largusimo etctera

No volatilidad del contenido

La razn de existir de todo nuestro software claramente es dar soporte al contenido Pensando a futuro, no podemos confiar la base de nuestro (casa|negocio| empresa|gobierno|planeta) en productos propietarios
o

Nuevos formatos incompatibles/falta de soporte para formatos de versiones anteriores Dependencia de que un slofabricante contine dando soporte al producto

Nos resta la capacidad de hacer cambios en nuestra tecnologa base (hardware, OS, etc.) Ver: Proyecto de ley peruano

Programadores conscientes Tpicamente, los programadores de software libre son conscientes de la seguridad

Hay ms proyectos, ms pequeos, menos complejos y que interoperan mejor entre s que en los grandes productos comerciales o Es ms fcil auditar cdigo de proyectitos independientes que de grandes proyectos
o o

Es ms fcil reescribir componentes que no cumplan ciertos criterios Es MUY IMPORTANTE mantener en el sistema una lista relacionar de dependencias

La seguridad es mayormente parte del inconsciente colectivo Otros programadores van a leer mi cdigo, ms vale que no haga cochinadas...

Fuente: http:www.abcdatos.com/tutoriales/tutorial/l10406.html

You might also like