Professional Documents
Culture Documents
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
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
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
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
Falta de delimitacin clara de objetivos Falta de una auditora real, constante y proactiva APIs/ABIs cambiantes
Aplicaciones
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
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
K.I.S.S. Pensar en los posibles futuros programadores/mantenedores de nuestro software Revisar siempre todo
o o o o
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
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
Caracterizar las verdaderas necesidades de los usuarios, saber decirles que no, ayudarles a ajustar lo que buscan
o
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
Es vlido cobrar por desarrollar Software Libre Es vlido cobrar por adecuar Software Libre Es vlido cobrar por distribuir Software Libre
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
No condiciona funcionalidad al pago de regalas Se distribuye con todo y fuentes No condiciona la distribucin a un pago
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"
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
Linux
o
Y sus muchsimas distribuciones: Debian, Suse, Mandrake, RedHat, y una largusima lista
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