lunes, 28 de diciembre de 2009

!!eConfianza!! - Trust in the Information Society (Inteco-León, 10-11 febrero 2010)

El Instituto Nacional de las Tecnologías de la Comunicación (INTECO), la CE y la plataforma tecnológica eSEC orgnizan los días 10 y 11 de febrero de 2010 en la ciudad de León el evento Trust in the Information Society. Se celebrará en la sede de INTECO en León.

El origen de esta iniciativa se encuentra en las conclusiones del informe RISEPTIS elaborado por la Comisión Europea. A partir de las conclusiones de este informe, se ha planteado un evento en torno a un conjunto de temáticas fundamentales y enfocadas en la eConfianza y que conforman el núcleo temático de esta conferencia:

• vida digital y confianza,
• confianza en los servicios de comunicación y software,
• la gestión de identidades digitales en un marco común europeo,
• el desarrollo del marco jurídico de la UE en cuanto a protección de datos y privacidad,
• y la Cooperación Internacional.

Organización del evento:
Web: https://trustworthyict.inteco.es/
http://www.inteco.es/

- Programa
- Programa en pdf
-----------------------------------
Por si alguien de la FI se anima a asistir, en la provincia de León hay varios lugares a visitar, aquí dejo algunas posibilidades.

Y si prefieres algo de deporte en la naturaleza en un entorno magnífico, lo más aconsejable es visitar la cueva de Valporquero, en Vegacervera, muy cerca de León. No, no hace falta que seas un conocedor de este deporte, existen algunas empresas, como Gueko, que te pone los guías y te proporciona todo el material.

Para los que quieran hacer más actividad, también en la espectacular zona de Caldas de Luna está el descenso del Quincoajo. También existen empresas que te facilitaran esta y otras actividades.

lunes, 21 de diciembre de 2009


Un alumno del año pasado me pregunta por alguna referencia para obtener exploits e información relacionada. Bueno, existen varias referencias posibles, pero aquí te dejo una. Me imagino que tendrás suficientes, a fecha 21 de diciembre esta base de datos tiene un total 9880 exploits.

martes, 24 de noviembre de 2009

DISI 2009 por videostreaming (lunes 30 de noviembre)

Lunes 30 de noviembre: transmisión del DISI 2009 por videostreaming en la url: mms://amon.gate.upm.es/campus-sur

El horario de transmisión será desde las 08:45 hasta las 15:15 horas del lunes 30 de noviembre de 2009.

Posteriormente se subirán los vídeos (ya editados) de cada sesión al Canal YouTube de la UPM donde se encuentran otras grabaciones de eventos que ha realizado la Cátedra UPM Applus+ (DISI 2008 y Seminario Seguridad Redes Sociales): http://www.youtube.com/user/UPM#g/u

De 09:30 a 10:30 horas se realizará la conferencia inaugural "Randomized Hashing: Secure Digital Signatures without Collision Resistance" a cargo del Dr. Hugo Krawczyk de IBM Research, Estados Unidos.

De 10:30 a 12:00 horas se celebrará el coloquio "Tendencias en Malware" con la participación de D. José Bidot, Director de Segurmática (Cuba), D. Ero Carrera, Chief Research Officer - Collaborative Security Virus Total (España) y D. Emilio Castellote, Director de Marketing de Panda Security (España), moderado por D. Justo Carracedo, Catedrático de la EUITT.

De 12:45 a 14:45 horas, el segundo coloquio "Mitos y Realidades en Hacking" cuenta con la participación de D. Luis Guillermo Castañeda, Director de Servicios Profesionales de Rusoft (México), D. Chema Alonso, Consultor de Seguridad de Informática64 (España), D. Alejandro Ramos, Manager de TigerTeam SIA (España) y D. Fermín Serna, Security Software Engineer MSRC Microsoft (España), moderado por D. Daniel Calzada, Profesor de la EUI.

Ya se encuentran para su descarga las actas del V CIBSI en la Red Temática: http://www.criptored.upm.es/paginas/eventos.htm#not08nov09

Toda la información de este evento, que se celebrará el 30 de noviembre de 2009 en el Salón de Actos del Campus Sur de la UPM, en http://www.capsdesi.upm.es/

viernes, 20 de noviembre de 2009

4a Edición del Día Internacional de la Seguridad de la Información (30 noviembre 2009-EUITT de la UPM)

Toda la información de este evento, que se celebrará el 30 de noviembre de 2009 en el Salón de Actos del Campus Sur de la UPM, en http://www.capsdesi.upm.es

Retratos da Nosa Terra (exposición fotográfica)

Incluyo referencia a esta exposición por dos motivos, el primero, por la enorme calidad de los trabajos que este autor suele realizar y, segundo, al tratarse de un compañero de la facultad.

La exposición "Retratos da nosa Terra", tendrá lugar el próximo sábado 21 de noviembre a las 18:30 h, en el Forum Metropolitano de La Coruña (Parque de Europa, zona "Corte Inglés").

Más información en http://www.raul-lamoso.com

miércoles, 18 de noviembre de 2009

Partido Pirata

El Partido Pirata, opuesto al "copyright", llega a la Eurocámara y desafía a las grandes formaciones.

Wardog y el Mundo

Lectura recomendada, Wardog y el Mundo. Es muy posible que incluya este enlace en la sección de referencias complementarias de la asignatura de Protección y Seguridad de la Información. En este blog, con un original toque de humor, se cuenta las aventuras de Wardog, un informático puteado acosado por usuarios avanzados.

martes, 10 de noviembre de 2009

miércoles, 28 de octubre de 2009

El siglo XXI está a punto de comenzar, o no

Lectura recomendada "El esquema nacional de seguridad". Habrá que hacer oficinas de gestiones electrónicas para atender a nuestros mayores, entre otros.

lunes, 26 de octubre de 2009

Seguimiento en directo del ENISE por video streaming

Información remitida por la organización del ENISE

Hoy comienza el Tercer Encuentro Nacional de la Industria de la Seguridad en España (ENISE).

Gracias a la tecnología video streaming webcast en formato Flash Vídeo podrán seguir en directo la retransmisión de las sesiones que les indicamos a continuación, a través de la dirección http://www.inteco-enise.webcastlive.es/:

Día 27 de Octubre

P11: Innovación en Seguridad en la Sociedad de la Información de 10h30 a 11h45
T11: Nuevas formas de delincuencia en la Sociedad de la Información de 12h15-14h30
T14: Secreto y privacidad de 16h00-18h00Día 28 de Octubre
P21: Negocio e innovación en seguridad de 9h45-11h15
T21: Gestión de la seguridad en las organizaciones de 11h45-14h30
T24: Impacto de la falta de seguridad en el negocio de 16h00-18h00

Día 29 de Octubre

P31: Innovación en Servicios electrónicos seguros de 10h00-11h15
T31: Servicios seguros en la Administración electrónica basados en DNI electrónico de 11h45-14h00

jueves, 22 de octubre de 2009

jueves, 8 de octubre de 2009

Toma parte activa en toda relación (II Jornadas Seguridad 2009 de la Facultad de Informática de la UDC)


En toda relación se pueden tomar distintas posturas, tanto activas como pasivas. Una postura pasiva te hará perder mucha información. En todo lo que hacemos, tanto en el ámbito profesional, como fuera del mismo, podemos tomar una postura participativa o, con cara de soy le leche y estoy de vuelta de todo, tomar una actitud pasiva.

Los días 15 y 16 de octubre se celebran las II Jornadas de Seguridad en la Facultad de Informática. En este sentido hay varias opciones en el caso de que decidas asistir.:

- Sentado en tu butaca y esperar a ver lo que te cuentan. En el caso de que controles del tema es lo más recomendable pero, en el caso de que no sea así, te perderás muchas cosas o, en el peor de los casos, desconectarás de la temática quedándote únicamente con lo más anecdótico de las charlas. No es el objetivo.
- Sentado en tu butaca pero antes de las charlas le has dedicado unas cuantas horas a la temática tratada, partiendo de una situación que te permitirá obtener una gran cantidad de información. A este segundo grupo está dirigida esta entrada.

José Palazón nos hablará de fallos de seguridad en aplicaciones web, SQL injection, blind-SQL inj., CSS, etc. Te recomiendo un vistazo a http://www.owasp.org/index.php/Category:OWASP_Testing_Project
La versión 3 está disponible en castellano en http://www.owasp.org/images/8/80/Gu%C3%ADa_de_pruebas_de_OWASP_ver_3.0.pdf
Puede que de cara a las charlas no sea un buen plan leer sus 372 páginas, aunque no estaría mal, pero revisar todo tipo de información de algunos de los principales problemas de seguridad en aplicaciones web puede ser una buena opción.
También puedes pasarte por http://sechack.blogspot.com/2009/05/sql-injection-lo-necesario-y-un-poquito.html con referencias de interés en SQLinj.

En el caso de Ángel Prado no incluiré nada por la propia naturaleza de sus charlas y por los múltiples caminos que puede tomar. Abre los ojos, como diría Amenábar, y déjate llevar.

Para la charla de Miguel Ángel Calvo, sin duda alguna, te recomiendo http://psi-udc.blogspot.com/2009/09/en-las-jornadas-de-este-ano-en.html. Es una de las herramientas clásicas que todo “bicho”, bueno o malo, debe conocer.

Alejandro Ramos nos hablará de test de intrusión. No recomendaré ninguna lectura dado que aquí seguramente asistiremos a mucha información de naturaleza propia, experiencias en casos reales, etc. En esta nuevamente mejor abrir los ojos y … Puedes seguir algunos de sus posts en Security by Default

Alejandro Martín nos trae el apasionante mundo de los metadatos. Como antesala de la charla recomiendo pasar por http://www.slideshare.net/chemai64/tactical-fingerprinting-using-metadata-hidden-info-and-lost-data-1309602

En el caso de Chema Alonso, nos trae un tema de seguridad en el apasionante mundo del correo electrónico, que “engrana” perfectamente con algunas de las cosas que se ven en la asignatura de PSI. Te recomiendo el artículo de la revista PC World, nº 267 de 2009, pp. 78-85. En este artículo de Chema se evoluciona desde la típica conexión telnet al 25 de un servidor, para hablar SMTP, a los mecanismos de autenticación como SPF o DKIM. Puedes acceder a una gran cantidad de post de Chema Alonso en el lado del mal

También te encontrarás otras magníficas charlas, como las de Miguel Gesteiro o Diego Ferreiro, entre otras. No incluiré más referencias, aunque son muchas las disponibles.

Toda la información de estas más que interesantes charlas en http://jornadas.feval.info/ y complementada en http://quegrande.org/foro/viewtopic.php?f=2&t=3525

Pdt.: En el segundo cuatrimestre de PSI solicitaré un listado de matriculados que han asistido a estas charlas y …

--
Un ser activo no muere de viejo, pero …

miércoles, 30 de septiembre de 2009

Curso de metasploit

En las jornadas de este año en seguridad he visto una charla sobre metasploit y, en el foro del evento, algunos participantes que hacían referencia a que algunas cosas se le escapaban, en referencia a las charlas del año pasado. Aquí os dejo un enlace a un curso reciente de metasploit, muy completo y recomendable, para que los asistentes tengan un cierto conocimiento de esta potente herramienta libre de pen testing. Si conoces esta herramienta el curso puede complementar muchas cosas y, en otro caso, te abre todo un mundo para cacharrear y hacer un buen montón de pruebas.

En este curso encontrarás temas relacionados con.:

- Information Gathering
- Vulnerability Scanning
- Writing a simple fuzzer
- Exploit Development
- Client Side Exploits
- MSF Posts Exploitation
- Meterpreter Scripting
- Maintaining Access
- etc.

Y recuerda, utiliza este tipo de herramientas con buen criterio

V Congreso Iberoamericano de Seguridad Informática (CIBSI 2009) del 16 al 28 de noviembre

Toda la información en http://www.fing.edu.uy/cibsi09

II Jornadas Seguridad 2009 (FI-UDC. 15 y 16 octubre)

Toda la información de estas más que interesantes charlas en http://jornadas.feval.info/ y complementada en http://quegrande.org/foro/viewtopic.php?f=2&t=3525

Muy recomendables, y además se juega en casa.

jueves, 24 de septiembre de 2009

Pentester.es

Pentester.es

Como segunda entrada, y no por ello de menor calidad, me gustaría incluir en la sección de referentes en el ámbito de la PSI, el blog Pentester.es. Sin duda alguna las entradas de estos profesionales te harán encender el equipo y ponerte a probar cosas. Este blog, lejos de tener un aspecto meramente informativo, aporta todo tipo de pruebas orientadas a lo que más nos gusta, "cacharrear" con nuestros equipos y, de esta forma, aprender.

Existe una frase bien conocida de B. Franklin que se le podría asignar a este blog, "Dímelo y lo olvidaré; enséñamelo y lo recordaré; involúcrame y lo aprenderé"

lunes, 14 de septiembre de 2009

III Encuentro Nacional de la Industria de la Seguridad en España, ENISE 2009

Está en marcha el III Encuentro Nacional de la Industria de la Seguridad en España (ENISE), que se celebrará en León los días 27, 28 y 29 de octubre, dirigido a todos aquellos profesionales o usuarios interesados en la Seguridad de la Información.

Todos aquellos que quieran participar como ponentes en el evento, el plazo para la presentación de ponencias singulares termina el 15 de septiembre, fecha a partir de la cual se publicarán en la web del evento los ponentes, así como la información relativa a las ponencias que impartirán en los talleres y plenarias que tendrán lugar a lo largo de los tres días del evento.

Más información: http://enise.inteco.es/

martes, 8 de septiembre de 2009

Protección y Seguridad de tu hardware

Hoy me he levantado con un considerable dolor en el ojo derecho. Ciertamente, solemos castigar demasiado ese hardware tan preciado que poseemos, nuestros queridos ojos. Todo se automatiza y, en la actualidad, nos pasamos largas horas leyendo todo tipo de escritos y proyectos de cientos de páginas directamente sobre la pantalla de nuestro computador. Eso sin contar el tiempo que dedicamos a probar cosas, preparar documentación, navegar, etc., etc. Pasamos demasiado tiempo delante de esas cosas brillantes llamadas pantallas. Tal vez ese brillo nos haga gritar, espero que no, alguna gilipollez del tipo “mi tesoro”. Los tesoros no se encuentran en nuestras pantallas.

Mientras, en nuestros trabajos, asistimos a todo tipo de cursos, campañas, etc. sobre seguridad en el trabajo. Después de media vida detrás de una pantalla nunca había tenido la necesidad de buscar un manual de buenas prácticas en el tema. No pensamos en ello hasta que asistimos a los primeros indicios de mal funcionamiento en el sistema. Como en toda “profesión”, en lugar de buscar un amigo que sepa algo del tema para arreglar y configurar nuestro hardware de forma gratuita, un oftalmólogo me informa de lo que acontece. Este hardware es importante, y con esto no se juega. En pocas palabras, los 40 años es un punto de inflexión para muchas cosas, y entre ellas la vista. Parece ser que existe un bug en nuestro hard llamado presbicia. Había oído hablar de este problema, no en CVE, pero hasta que sufres un ataque no tomas consciencia de la importancia de la seguridad. Pero dejando de lado los aspectos espacio temporales, mantener durante mucho tiempo la vista y enfoque en un punto como es nuestra pantalla hace que se reduzca considerablemente la tasa de parpadeo. Como consecuencia, podemos sufrir lo que se conoce como vista cansada y, o, pequeñas lesiones en el ojo. En mi caso, dos pequeñas heridas en el ojo derecho que, además, pueden producir un desagradable dolor de cabeza.

Por lo tanto, y como mecanismo de protección de este nuestro hardware más querido, procura incrementar la tasa de parpadeo cuando estés ante tu pantalla. Levanta cada cierto tiempo la vista y procura observar escenas alejadas. Si tienes la suerte de disponer en tu casa de una ventana con buenas vistas, no es una mala solución. Y en caso de cansancio, algún colirio puede engrasar el hardware de visión. Sin duda alguna, puede resultar un buen parche. Si en la carretera nos encontramos el “querido conductor, descansa cada dos horas”, tal vez no sea mala idea aplicarlo a nuestro trabajo, aunque seguro que la patronal no lo ve con buenos ojos, los suyos. Estimado alumno, puede que con 20 años en tu cuerpo no sientas esta necesidad, pero unas buenas prácticas alargarán la vida del hardware, de tu hardware.

Otro tema de gran importancia, pero que no incluiré en esta entrada, es la forma y costumbres de colocarnos en las sillas de trabajo. Es habitual encontrar gente que no se sabe muy bien si está sentada o acostada en la silla. Pero bueno, esto es otra batalla y dejaremos para futuras entradas el estudio de nuestro ecosistema incluyendo, por ejemplo, las formas de uso que nos llevan a padecer dolor de muñecas.

La protección de nuestros activos informáticos es de gran importancia, pero lo es mucho más la seguridad y protección de nuestra salud en el trabajo. No esperes a que tu hardware te genere un mensaje de error para tomar medidas. El tiempo de vida de tu hardware es dependiente de la buena o mala vida que lleve.

--
Aunque el diablo nunca duerme, procura que tus ojos lo hagan de vez en cuando

viernes, 28 de agosto de 2009

Curso paquete ofimático OpenOffice (1 al 4 y 7 de septiembre. Coruña)

A Oficina de Software Libre da Universidade da Coruña oferta 4 prazas destinadas ao colectivo PDI para o curso básico do paquete ofimático OpenOffice.org que terá lugar no edificio CITIC durante os días 1, 2, 3, 4 e 7 de setembro de 9 a 11 da mañá.

O curso é gratuíto cunha duración de 10 horas.

Como requisito, o asistente terá que traer o seu propio portátil.

Para asistir, enviar un correo a softwarelibre@udc.es indicando os seguintes datos:

Nome:
Apelidos:
Departamento:
Posto:

As prazas cubriranse por estrita orde de chegada das solicitudes.

Para calquera dúbida, pódese pór en contacto coa OSL por teléfono na extensión 5506.

Temario do curso:

1. ¿Que é OpenOffice?
2. Vantaxes do paquete OpenOffice
3. Descarga e instalación de OpenOffice
4. Introdución ao procesador de textos Writer
5. Introdución a folla de cálculo Calc
6. Introdución a creación de presentacións con Impress
7. Introdución a deseño gráfico vectorial con Draw

Oficina de Software Libre
Edificio CITIC, 1ª planta, Campus de Elviña s/n
Tel: 981 167 000 ext. 5506
softwarelibre@udc.es
http://softwarelibre.udc.es

domingo, 12 de julio de 2009

Seguridad fuera de las TIC

Existen otros mundos distintos al de las TIC en los que la seguridad es mucho más importante. Estamos hablando del ámbito deportivo. Siguiendo con las entradas dedicadas al deporte, y dado que llegan tiempos de vacaciones, aquí os dejo una propuesta, en el que la seguridad tiene una gran importancia. Se trata de los descenso de cañones y la espeleología. Si probáis seguro que muchos de vosotros os engancharéis a estos deportes.

Es habitual encontrarme deportistas que me preguntan el motivo de que a los informáticos nos gusten estos deportes. Tal vez el pasar tanto tiempo delante de nuestras máquinas haga que busquemos alternativas bastante diferentes. O puede que sea por, entre otras cosas, el gran parecido existente entre las topografías de cueva o de cañones con los escenarios de los típicos juegos de acción para computador (-:. Sin duda alguna, prefiero mil veces antes la espeleo y los cañones, que los juegos de computador. Pero todo es cuestión de gustos. Aquí os dejo un enlace dedicado a este deporte.:


Y recuerda, aquí la seguridad es mucho más importante que en nuestras TIC.

martes, 23 de junio de 2009

Slowloris.: Apache DoS

En clase analizamos los fundamentos de los ataques D[D]oS. Como puedes observar, el D[D]oS es uno de los temas vigentes en seguridad que requieren de toda nuestra atención. Aquí tenéis otra de las muchas noticias que aparecen al respecto "Slowloris.: Apache DoS"

[Fuente.: Pentester]

viernes, 19 de junio de 2009

SHA1 (malos tiempooos, para la líricaaa)

En la asignatura, entre otras muchas cosas, hemos visto las funciones hash y su integración en nuestros protocolos seguros, control de acceso, etc. Nuevas investigaciones debilitan aún más al SHA1. Más información en.:

miércoles, 17 de junio de 2009

The End

Este curso académico PSI llega a su fin. Aunque gran parte de vosotros ha superado la asignatura, animaros a seguir trabajando en temas de seguridad de la información. Dejo de ser vuestro profesor aunque siga a vuestra disposición para cualquier consulta que queráis hacerme. No tengo respuesta para todo, ni mucho menos, pero lo que pueda saber o cualquier consejo que pueda daros, considerando las experiencias profesionales vividas, están a vuestra disposición.

Mañana publicaré las notas de la convocatoria de junio. Las revisiones de examen serán los días 19 y 23 de junio a las 11:00.

En cuanto al blog, en espera de la llegada de los alumnos de PSI del próximo curso académico, seguiré incluyendo cualquier noticia relevante que pueda ser de interés.

jueves, 11 de junio de 2009

Práctica 4.: Protocolos Seguros et al.

Este año la práctica cuatro ha sido optativa. El tiempo, al igual que nuestros discos duros, CPUs, RAM etc., es un recurso limitado. Es tiempo de exámenes pero, tras la tempestad, siempre viene la calma. Dejo en esta entrada copia de la práctica IV por si alguien está interesado en el último tema que hemos visto en PSI y quiere cerrar la asignatura en verano probando herramientas de seguridad. Casi todo el mundo trabaja a cambio de algo, €€s, puntos extra, una buena nota, unas palmaditas al ego personal, etc., pero también debemos pensar que no está nada mal trabajar a cambio de conocimientos y experiencias, sin buscar un premio tangible inmediato. El premio en estos casos suele venir a medio-largo plazo, y muchas veces con intereses.


Práctica IV.: Criptografía y Protocolos Seguros
Prof. A. Santos del Riego
Protección y Seguridad de la Información (PSI)
Facultad de Informática. Universidade da Coruña


El objetivo de esta práctica es comprender la importancia de los algoritmos criptográficos y su aplicación-funcionamiento en la forma de protocolos seguros. Hemos tratado en las clases teóricas los conceptos que rigen el funcionamiento de los criptosistemas simétricos y asimétricos, así como su integración híbrida en protocolos seguros. Se ha estudiado el esquema de funcionamiento de la firma digital y la necesidad de autoridades certificadoras. Finalmente, se ha presentado el funcionamiento de algunos protocolos y entornos seguros (SSH, GPG, SSL, etc.). Se deberán aplicar los conceptos adquiridos en la resolución de los siguientes apartados:


1.- Tomando como base de trabajo el GnuPG y utilizando dos usuarios de su máquina virtual pruebe sus diversas utilidades:


a) Generación de pares de claves
b) Cifrado y descifrado asimétrico de ficheros
c) Cifrado y descifrado simétrico de ficheros
d) Firma de ficheros
e) Verificación de la firma
f) Generación de ficheros de firma acompañante
g) Intercambio de claves
h) Validación de claves
i) Revocación de claves
j) Gestión básica de claves

2.- Analice el proceso criptográfico que se realiza en cada uno de los subapartados del punto anterior.

3.- Tomando como base de trabajo el SSH pruebe sus diversas utilidades:

a) Abra un shell remoto sobre SSH y analice el proceso que se realiza. Configure su fichero ssh_known_hosts para dar soporte a la clave pública del servidor.
b) Haga una copia remota de un fichero utilizando un algoritmo de cifrado determinado. Analice el proceso que se realiza.
c) Exporte una sesión X de forma segura.
d) Configure su cliente y servidor para permitir conexiones basadas en un esquema de autenticación de usuario de clave pública.
e) Utilice el agente de soporte de claves como complemento al apartado anterior.
f) Mediante túneles SSH securice algún servicio no seguro.

3.- Tomando como base de trabajo el servidor Apache2

a) Configure una Autoridad Certificadora en su equipo.
b) Cree su propio certificado para ser firmado por la Autoridad Certificadora. Bueno, y fírmelo.
c) Configure su Apache para que únicamente proporcione acceso a un determinado directorio del árbol web bajo la condición del uso de SSL y previa autenticación.

4.- Tomando como base de trabajo el openVPN deberá configurar una VPN entre dos equipos virtuales del laboratorio para que garantice la confidencialidad entre sus comunicaciones.

--
El diablo nunca duerme,

miércoles, 10 de junio de 2009

Bitácora de PSI.: S y familia

En el capítulo anterior hemos visto los fundamentos y hoy aprenderemos "jugando" con algunas de las herramientas típicas de nuestros entornos de trabajo.

Empezaremos por el GnuPG. De su página principal “GnuPG is the GNU project's complete and free implementation of the OpenPGP standard as defined by RFC4880 . GnuPG allows to encrypt and sign your data and communication, features a versatile key managment system as well as access modules for all kind of public key directories. GnuPG, also known as GPG, is a command line tool with features for easy integration with other applications. A wealth of frontend applications and libraries are available. Version 2 of GnuPG also provides support for S/MIME
Desde un punto de vista práctico, vemos el funcionamiento del GnuPG en las tareas de cifrar un fichero, tanto de forma simétrica como asimétrica, el proceso de cifrado para envío, tanto con firma como sin ella y, finalmente, el proceso de descifrado. Se hace referencia en todo momento a los aspectos vistos en la clase anterior de fundamentos pero, en este caso, sobre una de nuestras típicas herramientas. Para una completa información GnuPG.

También analizamos el funcionamiento de otro de nuestros clásicos, SSH. De su página principal “OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that their password is transmitted across the Internet unencrypted, but it is. OpenSSH encrypts all traffic (including passwords) to effectively eliminate eavesdropping, connection hijacking, and other attacks. Additionally, OpenSSH provides secure tunneling capabilities and several authentication methods, and supports all SSH protocol versions”.

Vemos las principales posibilidades de openssh, y que hace otras muchas cosas además de un ssh a un host, introducir el user y password y tener un shell remoto sobre una conexión “segura”. En primer lugar se analiza el conjunto de utilidades del openssh. De su página principal “The OpenSSH suite replaces rlogin and telnet with the ssh program, rcp with scp, and ftp with sftp. Also included is sshd (the server side of the package), and the other utilities like ssh-add, ssh-agent, ssh-keysign, ssh-keyscan, ssh-keygen and sftp-server”.

Recuerda que el 22 es el número preferido del SSH, que ningún puerto está casado con nadie, y casi todo bajo este cielo abrasador es cambiable. Recuerda también que podrás incluir políticas de filtrado de este y otros servicios, tanto a nivel de firewall, como de wrappers.

SSH hace tanto autenticación del servidor como de usuarios, proporciona un cierto nivel de privacidad en las comunicaciones mediante la típica aproximación híbrida (asimétrico para intercambio de clave de sesión y simétrico para cifrado) y permite la redirección de canales TCP-IP mediante túneles cifrados. También nos proporciona un servicio de gestión de claves para su centralización.

Bueno, me conectaré a un servidor SSH para ver lo que pasa.

batman@dead: $ ssh 192.111.6.66
The authenticity of host '192.111.6.66 (192.111.6.66)' can't be established.
RSA key fingerprint is f1:36:1c:08:92:54:f8:0a:9d:bd:19:65:d5:38:c6:62.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.111.6.66' (RSA) to the list of known hosts.
batman@192.111.6.66's password:
[…]
batman@alive: $


Bueno, que coñazo estos informáticos, siempre haciendo preguntas raras. Ante la duda, yes. ¿Qué está pasando en ese momento de la conexión?. De forma resumida, el host cliente no dispone de la clave pública del host servidor para poder mantener relaciones y, por lo tanto, el servidor le remite su clave pública. En este punto es el cliente, nosotros, los que deberemos indicar si aceptamos o no la clave pública de dicho servidor, identificado por su IP, su clave pública y la correspondiente huella digital. Es aconsejable verificar este tipo de claves antes de aceptarlas dado que, en futuras conexiones, será utilizada de forma automática. Al igual que vimos en el tema dedicado al “sniffing” y las posibilidades de ataque a conexiones seguras https, también es posible inyectar claves para comprometer la confidencialidad de las conexiones seguras SSH.

La aceptación de la clave pública del servidor hará que se añada en el fichero $HOME/.ssh/known_hosts de la máquina cliente la clave pública del host servidor que, por cierto, se encuentra en /etc/ssh/ssh_host_[rsadsa ]_key.pub.

Si quieres "cargarte" alguna clave pública anteriormente aceptada puedes borrar la correspondiente entrada del fichero known_hosts. También podrás utilizar el fichero /etc/ssh/ssh_known_hosts para mantener de forma manual las claves públicas de los hosts confiables.

En la conexión realizada también vemos que el método de autenticación a nivel de usuario es el típico de user-password que esté definido en el servidor.

Los ficheros que te permitirán configurar distintas opciones SSH los encontrarás en /etc/ssh/ssh_config (cliente) y /etc/ssh/sshd_config (servidor). Un vistazo a dichos ficheros te permitirá identificar rápidamente las posibles opciones disponibles. No dejes para mañana, el fichero que puedas mirar hoy.

En SSH también podrás utilizar un esquema asimétrico de autenticación. En este caso tendrás que crear a cada usuario sus correspondientes claves públicas y privadas, tal y como vimos en la clase anterior de fundamentos.

$ ssh-keygen –t rsa
batman@dead: $ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/batman/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/batman/.ssh/id_rsa.
Your public key has been saved in /home/batman/.ssh/id_rsa.pub.
The key fingerprint is:
31:04:ac:ab:63:13:c0:f4:a5:0b:59:1a:77:a8:52:26
batman@dead

Podemos utilizar la clave pública de los usuarios para el proceso de autenticación contra el servidor. Para ello deberemos añadir al fichero $HOME/.ssh/authorized_keys2 del servidor las claves públicas de los usuarios autorizados, disponibles en los ficheros $HOME/.ssh/id_[dsarsa].pub del cliente.

Finalmente analizamos las posibilidades de tunelizar con SSH servicios no seguros. Para ello podemos hacer forwarding de tráfico de un puerto local a una remoto o de uno remoto a uno local. Por ejemplo, para tunelizar una conexión mediante forward local contra un servidor web no seguro.:
# ssh –L 666:ssh-www.host:80 apache@ssh-www.host

Si abres tu navegador en la máquina local y te conectas a http://localhost:666/ te "forwardeara" el tráfico sobre un túnel SSH contra el puerto 80 del host ssh-www.host. Existen otras muchas posibilidades en el uso de túneles SSH. Para más información openSSH.
Señalar también la existencia de sshfs para exportar sistemas de ficheros de forma segura.

# sshfs batman@alive:/batmovil-remoto /batmovil-local
Para concluir y no dejar fuera el más típico, tópico, …, de nuestro minimundo de la seguridad, se analiza el handshake del SSL-TLS (Secure Socket Layer-Transpor Layer Security). Incluir información básica sobre esta pareja sería redundar la mucha información disponible en la red. Muy recomendable la entrada "The First Few Milliseconds of an HTTPS Connection", que desglosa a todo detalle lo que acontece en una conexión HTTPS (gracias Nacho).
En el último cuatrimestre hemos visto distintos temas relacionados con la PSI. Todo este material constituye una base más que suficiente para evolucionar en cualquiera de los múltiples campos de esta disciplina. Dedicar muchas horas a “cacharrear” con nuestros equipos es la mejor herramienta para adquirir todos aquellos conocimientos, tanto teóricos como prácticos, necesarios para nuestra práctica profesional. Y recuerda que el demonio nunca duerme.
Hay otros muchos temas de interés que, por las limitaciones espacio-temporales de la asignatura, resulta inviable plantear su inclusión, por lo que las nuevas posibilidades que se te abren son muchas y variadas (mecanismos y herramientas de control de acceso, seguridad perimetral a distintos niveles, detección de intrusiones, honeys, WIFI y seguridad, programación segura, auditorías de seguridad, análisis forense, metodologías de seguridad, etc., etc.)
Y recuerda que en muchas ocasiones lo más sencillo puede ser la mejor opción, especialmente cuando no se dispone de personal técnico o, el disponible, no está lo suficientemente cualificado (o está total o parcialmente quemado).

martes, 9 de junio de 2009

Bitácora de PSI.: Protocolos con [s]. Fundamentos

Aunque a este tema se le podría llamar fundamentos de criptografía, el fin de gran parte de lo que hacemos está en su aplicación a distintos ámbitos de la profesión. En gran medida el aplicativo de estos fundamentos coge forma en los llamados protocolos seguros.

Iniciamos el día con la típica y tópica clasificación de criptosistemas.:

- Clásicos vs. modernos. Recuerda que tarde o temprano todo modernillo se acaba pasando al bando de los clásicos.
- Bloque vs. flujo. ¿Cómo lo quieres?, “a lo bruto o poco a poco”
- Secreta (Simétricos) vs. Pública (Asimétricos). A la una, o las dos, ¡vendido!

Simétricos. Recuerdo el DES, con su gran clave de 56 bits, su elegancia y seguridad. También su muerte y paso al bando de los clásicos. Si, la longitud sí que importa, al menos en criptografía. Pero el hueco dejado por alguien siempre es cubierto por otros; 3DES, blowfish, IDEA (con sus 128 bits), o la estandarización del flexible Rijndael en la forma del AES (bloque de 128 bits y claves de 128, 192 y 256 bits). Estos tienen una clave más larga. Sobra decir que en los criptosistemas simétricos se cifra con una clave, y se utiliza la misma clave para el descifrado. En muchas de las cosas que hacemos vemos criptosistemas simétricos, por ejemplo.:

$ scp –c blowfish /etc/passwd psi@10.10.106.66:passwd

Es fundamental en seguridad el uso de la (s). Póntela (en el cliente), pónsela (en el servidor).

No se debe pensar en la familia de los md5, sha[2, 3], RIPE128-160 et al. como algoritmos criptográficos, son funciones resumen o hash. Otra cosa muy distinta es su directa aplicación en nuestros protocolos seguros, autenticación, etc. En muchos de nuestros linux se utiliza una función hash como sistema básico de autenticación. ¿Cómo funciona?. Si mi password de superusuario es “acnun1erasu2solocotorp3on4soruges;” (un poco largo este password!), la aplicación de la función hash a cualquier password de “cualquier longitud”, me proporcionará una huella digital. Cuando haga un proceso de autenticación, si la huella resultante del password tecleado coincide con la del usuario, la autenticación será correcta. Y por cierto, no todas las funciones hash son igual de seguras, como es de esperar (ciclo de vida de los algoritmos hash).

Sobre funciones hash tal vez la noticia más relevante en estos momentos sea la competición de algoritmos hash del NIST que, en la forma de SHA-3, nos proporcionará una nueva función para integrar en nuestros aplicativos y protocolos. En 2011 estamos llegando al final de la competición y únicamente quedan 5 funciones en concurso.

Cambiando de bando, cada entidad en un criptosistema asimétrico utiliza dos claves inversas, aunque podría disponer varias, una pública y otra privada. Se cifra con la pública y se descifra con la privada y viceversa. Si quiero enviar algo cifrado necesitaré la clave pública del intercepto o destinatario y cifraré el mensaje con su clave pública, para que dicho receptor la pueda descifrar con su privada. Nota que el nombre de las claves hace referencia a su grado de intimidad. La pública se va con cualquiera y la privada es muy reservada. Como ejemplos de asimétricos, Diffie-Hellman, RSA, DSA, ElGamal o CEE (Criptografía de Curvas Elípticas).

El primero que con la siguiente clave pública RSA de ssh obtenga la privada tendrá una MH en la asignatura. Recuerda que hay otras muchas asignaturas que estudiar y estamos en época de exámenes.

ssh-rsa AAAAB3NzaC1yc2GABAABIwAAAQEAsL2ZngJ0aPrtsrHrJmAAk52SnN0navtOBcDznwTHgyNE+QMVXCux7PlwhDO/fKaziyJJPoipLlGlxv8MGY3vg3YfKqdjoTedJOvqH5egk3D5+LDTd1xQ8UlE31IAlgsFd8tw13pt1axQ5WXSonbZfo5RKv+OrZ8AUSQHcddiuWRvSO3Er6Y2IUYV0hteX6t+NPM9D0gXxy4KBtmehY/xPkwZgaX1AwEQmc/Va0yRMDzlvHqPQSfYhS3FoD7h451FldglNqVYEvo0NkIGOfC14g6+v+tYEBwa01RVwBTFPkCaCUfr0oK+klgGISiqui7IMAXn0ZZP4CyAUj+bYbiEnQ== psi@dead

Aquí os dejo otra, pero esta de verdad

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAkyrFhgJeTOp1OpxgjYoeXv2y9NpTFepLP3HH9eZ4YMjBFiz4mCai4HecLBts6Z1MrViA/x/m7PIC4h7DLpdqi5ifrugaWBPXElD8J8U51JNrxBNB5i3nxWwXYbw/o8uVNItYwftEgxmphSHIn86hbvj3/BWZP59HtS9sFbwB4SxeMiSPuSUmPtC3DB+8/+X/62MxzFldTTV0aGvNaGsjREq3LoDDnBmWY3vfPIDsf8tLCNngdaIFmKWhW5QdEbyZJK1GH9Kb2aFI7w0iohPr4l0BWk+qIEmaM3GvNXEQ62SZ/9J5hbUmQxqS0i6JqysmZZZeeBEJGniibs8mBcjhuQ== psi@dead

También hemos hablado de cifradores de bloque, o a lo bruto, en los que se aplica una función a cada bloque a cifrar normalmente un número de ciclos. Y los cifradores de flujo, poquito a poquito, a nivel de bit o de carácter. Entre los cifradores por bloque, RC2, IDEA, blowfish, RC5, AES, RC6. Entre los cifradores de flujo, el RC4.

Pero bueno, en un planeta plagado de soluciones híbridas, en seguridad no íbamos a ser menos. La mayoría de nuestros protocolos seguros tienen el mismo comportamiento. Sistema asimétrico para intercambio de clave de sesión, y comunicaciones haciendo uso de la clave de sesión mediante un sistema simétrico. Por citar algunos, el GPG, SSH y SSL siguen este comportamiento.

En este punto hemos analizado el sistema de cifrado y descifrado utilizado en RSA y las características que le aportan una cierta fortaleza. Se estudian los teoremas y demostraciones que proporcionan una cierta fortaleza al RSA, que no se incluyen en esta entrada al estar disponibles en varias fuentes. Para más información al respecto recomiendo el capítulo 14 del “Libro Electrónico de Seguridad Informática y Criptografía” del Prof. Ramió Aguirre.

Finalmente hemos analizado el proceso de firma digital y el uso de autoridades certificadoras. De forma resumida, sobre el mensaje a firmar se aplica una función hash, que nos proporciona su huella digital. La huella digital se cifra con la clave privada del remitente. Se envía el mensaje y la huella cifrada. El receptor descifra el hash con la clave pública del emisor. Aplica la función hash al mensaje recibido, que podrá estar o no cifrado y, si el hash remitido y obtenido son iguales, podemos presuponer que todo está bien (que el mensaje es íntegro y que la identidad del remitente es la asociada a la pública utilizada). En el caso de que el mensaje esté cifrado habrá que descifrarlo, con nuestra privada si es un sistema asimétrico puro, o con la clave de sesión en el caso de híbridos. Pero, y las colisiones. En los últimos años mucho se ha escrito sobre que se haya escrito mucho de colisiones. Las colisiones existen en las funciones hash desde su aparición. Es imposible meter un elefante en un seiscientos, al menos sin trocearlo. La teoría de la información no nos engaña y, en toda función hash, por mucho que nos rompamos la cabeza, siempre existirán colisiones. Otra cosa es la posibilidad de poder encontrar colisiones en un tiempo computacional aceptable y su posible uso en romper la seguridad de nuestros sistemas. En este sentido, hemos asistido a la generación de certificados con distinta clave pública con colisión de hash, a colisiones en las elecciones USA, a colisiones en las declaraciones de la renta, a colisiones de tráfico, etc., etc. Hemos visto colisiones, y seguiremos viendo colisiones, nos guste o no.

Propuesta de ejercicio. Coge el ls de tu sistema y genera su hash md5. ¿Podrías encontrar un contenido que produzca una colisión con el ls y, por lo tanto, genere el mismo hash o huella?. ¿Podrías encontrar un binario “usable” que colisione con tu ls?.

Por otra parte, para garantizar que una clave pública pertenece a una determinada entidad, se utilizan certificados y autoridades certificadoras. En pocas palabras, un certificado tiene una cuanta información sobre la entidad o bicho a certificar, además de su correspondiente clave pública. El certificado estará firmado por una Autoridad Certificadora (una función hash aplicada sobre el certificado genera una huella digital que será cifrada con la clave privada de la Autoridad Certificadora). Obviamente, únicamente la AC dispondrá de la clave privada para poder cifrarla. Para verificar el certificado se aplica el hash al certificado y se descifra la huella mediante la clave pública de la AC. Si la huella obtenida y la descifrada son iguales, el certificado será verificado correctamente. Y, ¿dónde tengo la clave pública del la AC?. En gran parte del software que tienes instalado tienes los certificados de las AC, incluidas sus claves públicas. En tus navegadores sueles tener alguna opción de gestión de certificados, entre ellos de varias AC, que serán utilizadas en caso de tener que verificar algún certificado. ¿Y si me he creado una AC propia con la que firmar certificados?. Siempre podrás importar en los sistemas de gestión de certificados de tus clientes el certificado con la clave pública de tu AC. Entre los estándares de certificados digitales destacar el X509, utilizado en muchas de nuestras infraestructuras de PKI (Public Key Infraestructure). Para más información sobre firma digital recomiendo el capítulo 17 del “Libro Electrónico de Seguridad Informática y Criptografía” del Prof. Ramió Aguirre.

Y recuerda, a bicho que no conozcas, no le pises la cola

miércoles, 3 de junio de 2009

Bitácora de PSI.: (Crypto)

Si, aunque Rapsuskley & Hazhe dirían "dame criptonita", nosotros más bien tenemos que decir "dame criptología". Dejando a un lado el mundo de la música paso a entrar en materia.

Palabrejas de nuestro mundo de la PSI.:

- Autenticación (y tú, ¿quién [c...] eres?). No te olvides que tú puedes ser muchas cosas; un cliente, un servidor, un usuario, un proceso, o simplemente un pensamiento. Los típicos sitemas login-password o nuestro amigo kerberos podrán ayudarte, así como la firma digital, la certificación, o la biometría.

- Control de acceso (y tú, ¿qué [c...] quieres?). No te olvides que puedes querer muchas cosas; acceder a un servicio, a un fichero, o a una cuenta bancaria. Y recuerda extremar las precauciones en tu sistema de control de acceso en época de carnavales. La autenticación y el control de acceso suelen ser muy buenos amigos. Esquemas basados en credenciales, roles y atributos podrán ayudarte en la forma de ACLs, filtros, cortafuegos, o en la forma de simples rwx o tickets de kerberos, entre otros.

- Confidencialidad (el contenido de este párrafo es confidencial). Cíframe despacito, pero procura no meterme retardos. Muerte al telnet, ftp, tftp y familia. Larga vida al s(*). No te olvides guardar siempre la etiqueta y el protocolo exigido en cada caso, y mejor con s que sin ella.

- Integridad de datos (soy quien digo ser aunque en muchas ocasiones trate de ser quien no soy, ¿quién soy?). Procura dejar huella en todo lo que hagas y, ante todo, se íntegro en toda decisión que tomes.

- No repudio (yo no he sido, ha sido ...). Cualquier padre o madre asiste diariamente a situaciones más bien de repudio. La firma digital y las autoridades certificadoras podrán ayudarte, no con tus hijos, pero si con tus sesiones y transacciones.

- Accesibilidad (sal a dar un paseo por nuestras ciudades sobre una silla de ruedas y comprenderás lo que es la no accesibilidad). No te olvides que puedes querer acceder a muchos sitios; un servidor, un fichero, una base de datos, etc. Esta palabreja es colega de la disponibilidad y se lleva muy mal con la [D]DoS.

Analizando todas estas palabras es fácil concluir que la criptografía no está nada mal, y que tiene un cierto interés, o tal vez mucho interés. Pero, y la criptología y el criptoanálisis?. La criptología abarca ambos campos, la criptografía y el criptoanálisis. El primero es el lado de la luz, y el segundo el de la oscuridad, aunque recuerda que las fronteras entre ambos son muy difusas. El primero es el mundo de la algoritmia criptográfica, y el segundo el de la contra-algoritmia. El primero crea, y el segundo destruye. Recuerda que esto es un proceso de control de calidad, y que el criptoanálisis realiza una función muy importante, deshacerse de los débiles. Durante los últimos años hemos visto la desaparición y aparición de muchos algoritmos de cifrado pero, en el fondo, seguimos con la sensación, aunque dichos algoritmos han evolucionado considerablemente, que lo único que estamos haciendo es incrementar cada vez más el tamaño de nuestras claves. Esto parece una carrera sin final entre la longitud de nuestras claves y la potencia computacional al servicio de la [pseudo]fuerza bruta. Pues bien, "que la fuerza te acompañe". Y si, hemos asistido a muchas chapuzas tanto en los algoritmos como en los protocolos seguros y sus implementaciones pero, aún así, son una herramienta muy potente de securización.

Bueno, me has convencido que la criptografía, o mejor dicho, la criptología, es de gran importancia pero, ¿a qué la aplico?. De momento no se ha descubierto ningún método para hacer bocadillos de chorizo cifrados, pero quien sabe. Por lo tanto, tendrás que conformarte con tratar de cifrar, de la mejor forma posible, tanto tus servicios-comunicaciones como los datos.

Y, ¿cómo puedo cifrarme?. Recuerda tus enseñanzas, esas que nos hablaban de las malditas 7 capas del modelo OSI, y podrás imaginarte que puedes cifrar la datos-información en muchas de ellas. En principio, sin divagar en exceso, se podría hacer a nivel de aplicación para, por ejemplo, cifrar tus datos-ficheros. Un ejemplo de este nivel puedes encontrarlo en un viejo conocido, el GnuPG, o GPG (también disponible para los otros en la forma de GPg4win). Y, ¿quiénes son los otros?. Tal vez esta pregunta deberías hacérsela a Amenábar, aquí estamos para hablar de "mi" asignatura, como diría Umbral. También puedes bajar de nivel y cifrar la sesión por medio de la "sslificación", toma nueva leche a la RAE, de cualquier amigo que no tenga una "s" al principio o al final. En este caso SSL, o el TLS son nuestros amigos inseparables que, aunque apunta formas, no termina por vislumbrarse su muerte. Para concluir, no podemos dejarnos fuera otro clásico de la seguridad, las VPNs (Virtual Private Networks), con su máximo exponente de implementación en IP[6]sec. Si quieres hacer pruebas en laboratorio, y aplicar el dicho de aprende jugando, te recomiendo OpenVPN. Existen otras soluciones para VPNs o túneles seguros, como Eclipt Secure Tunnel, o por medio de stunnel o el mismo ssh con la redirección de IPs y puertos. También podrás plantearte el uso de túneles de cifrado a nivel 2.

Y los datos, ¿cómo los cifro?. Pues con mucho cuidado. En este punto podemos diferenciar dos ámbitos, el cifrado de ficheros y el de sistemas de fichero. Para jugar con alguna de las múltiples herramientas para el primer caso puedes utilizar el ya comentado GPG y, para el segundo, muchos de nuestros kernels actuales tienen soporte para cifrado de los sistemas de ficheros. De gran interés en medios extraíbles. Ese fichero de las máquinas debian del laboratorio que has estado "tocando" en la práctica 3, llamado /etc/fstab, te proporciona la opción encryption para tal tarea, especificando además el algoritmo de cifrado.

Además de la seguridad en las comunicaciones, también se debe considerar la seguridad en la parte cliente (por ejemplo navegadores), así como en los servidores, sus SGBDs y aplicativo desarrollado (por ejemplo servidores web, JSPs, ASPs, PHP, etc.). En este último nivel son muchos y variados los problemas de seguridad identificados (SQL Injection, XSS o Cross Site Scripting, Ejecución Remota de Código, RFI (Remote File Inclusion) o Directory traversal, entre otros). Sin duda alguna, este mundo no es del todo decidible. En este contexto, toda sesión siempre puede ser susceptible de sufrir una cierta usurpación, tanto en la parte cliente, como en la propia comunicación o en el servidor.

El infierno está lleno de buenas intenciones,

Bitácora de PSI.: El sacrificio

El tiempo es un recurso limitado y, como todos los años, tengo que asumir el sacrificio de algunos temas en PSI (cuatro meses no dan para mucho más). En este curso académico enterraremos los siguientes (que no se quejen estos temas que en el anterior lograron sobrevivir).:

- [*]Virtualización. Dedicado al mundo de la [para]virtualización, sus tecnologías y soluciones. Es la moda desde hace unos años. Pronto "emigraremos" a nuevas modas. De momento muchos están en las nubes, y otros a la espera de acontecimientos.

- Soluciones de almacenamiento. En este nos centramos en las soluciones y tecnologías de almacenamiento, tanto en entornos NAS (Network Attached Storage) como SAN (Storage Area Network). Algunos aspectos del almacenamiento han sido tratados parcialmente en temas anteriores.

-Software y seguridad. Tema dedicado a aspectos generales de la seguridad en el software. Lo resumiré en una frase, "no dejes para mañana el parche que puedas poner hoy". Entre otras muchas cosas trata el tema de las políticas y herramientas para la gestión de parches en nuestros sistemas, especialmente los relacionados con la seguridad. Fuera de este tema quedaría todo lo relacionado con el apasionante mundo de la programación segura.

- LOPD & RD medidas de seguridad. Hace años que eliminé este tema. Aunque es de cierta importancia, aburre, hasta en la sopa. Oirás hablar de esto en muchas otras asignaturas, conferencias, coloquios, etc., etc. Sin duda alguna este tema está bien muerto en el contexto de la asignatura de PSI. También hace años maté la práctica de laboratorio relacionada con esta temática.

- Malware. Este si siento tener que matarlo este año, pero debo elegir entre este o criptografía-protocolos seguros, resultando ganador este último por diversos motivos, incluido los descriptores de la asignatura. Si te interesa el tema, entre las muchas referencias posibles te recomiendo http://vx.netlux.org/.

No es mala la muerte cuando se lleva a quien debe,

martes, 2 de junio de 2009

Bitácora de PSI.: Alta Disponibilidad et al.

No entraré en cuestiones que quedan muy bonitas en la teoría pero que para nuestra operativa profesional no nos van a aportan muchas soluciones, como lo que pueda ser o dejar de ser un sistema tolerante a fallos o un sistema de alta disponibilidad, así como sus sutiles diferencias. En pocas palabras, la Alta Disponibilidad, High Availability (HA), hace referencia a las instalaciones pensadas para "garantizar" un servicio eficiente durante los 525600 minutos del año. Como nota adjunta, señalar la posibilidad de mantener las conexiones y recuperar las sesiones en entornos de alta disponibilidad con persistencia.

Cuando hablamos de clusters siempre pensamos en un grupo o "pandilla" de equipos que, por un motivo u otro, tienen una cierta e "íntima" relación. En cuanto a pandillas, las hay de muchos tipos.

Los clusters para procesamiento de datos constituyen una potente herramienta en tareas que requieren de una gran potencia de cálculo. Aunque en un primer momento se podría pensar en temas de edición de vídeo y rendering, cálculo científico intensivo, etc., en nuestro caso iríamos más bien hacía el cómputo al servicio de los ataques por (pseudo)fuerza bruta. Entre las soluciones disponibles para este tipo de clusters destacar el proyecto Beowulf y Mosix, aunque no tienen un gran interés en nuestro ámbito de actuación.

Otro tipo de clusters estaría orientado a la redundancia de máquinas proporcionando el mismo servicio. Recuerda que la redundancia es un mecanismo de seguridad. De esta forma, nos protegeremos contra posibles fallos del servicio y, o, máquina, además de incrementar la potencia en la prestación del servicio.

En este tipo de instalaciones deberemos plantearnos una serie de tareas, como el control de los computadores del cluster, la monitorización de servicios y su replicación, las comunicaciones y, pensando en sistemas que proporcionan un mismo servicio, la forma de compartir el almacenamiento.

En cuanto al almacenamiento existen varias posibilidades que, en gran medida, estarán en función de los €s disponibles. No debemos olvidar que el factor económico tiene que ser uno de los principales en toda toma de decisión y que bajo ningún concepto "debemos matar usuarios a cañonazos", aunque siempre habrá capullos dispuestos a "matar hippies en la Cíes". El actual despliegue de cañones en nuestra profesión empieza a apestar. Sin duda alguna es el momento de volver al camino de la búsqueda de la sencillez para evitar ???. Recuerdo la semana que pasé impartiendo clase en cierta universidad de un pequeño pero gran país en el que un joven con una creatividad asombrosa proporcionaba servicio de correo electrónico y web a toda la organización con un único PC. De vuelta al contexto de nuestro desarrollo, se podría plantear desde servidores de disco en red sobre NFS (Network File System) o Samba, hasta soluciones de almacenamiento SAN (Storage Area Networks). También otras alternativas como la mera sincronización de dispositivos de almacenamiento, por ejemplo con un rsync (dependiente del entorno de trabajo), el exportado de disco cifrado mediante sshfs (Secure Shell File System), o el uso de sistemas de ficheros distribuidos como GFS (Global File System) o MogiFS.

Por su parte, la detección de servicios deberá encargarse de identificar si están "caídos". De la misma forma habrá que monitorizar si un determinado host está o no operativo. Aunque hay distintas soluciones únicamente incluiremos en este punto mon, para la monitorización de servicios, y heartbeat para la interrogación entre hosts. El proceso de monitorización deberá hacerse en la capa 7 por razones obvias (si, esas con las que nos han torturado a tantos y tantos estudiantes de informática a lo largo de los años). Y, dado que estamos en PSI, sería muy aconsejable que toda comunicación estuviese cifrada adecuadamente. También podremos incluir redundancia parcial en nuestros equipos, por ejemplo de fuente de alimentación, tarjetas de red, controladoras de disco, etc.

En cuanto a soluciones, aunque existen varias, únicamente incluiré el Proyecto Linux Virtual Server (LVS). De forma resumida, instalaremos un conjunto de sistemas en el que un balanceador de carga, que podría redundarse según las necesidades, constituirá el elemento de interacción con cualquier petición de servicios. El balanceador deberá re-direccionar las peticiones a los servidores según unos criterios que "parezcan" medianamente inteligentes (carga de los servidores, anchos de banda, con persistencia, o por cualquier ecuación que pueda integrar de una forma más o menos ponderada diversos parámetros característicos de carga, entre otras). Los servidores podrán atender directamente las peticiones o utilizar el balanceador como un proxy. Recuerda que los "cuellos de botella" son nuestros enemigos. Señalar en este punto la existencia de dispositivos orientados al balanceo de carga. Aunque no soy muy amigo de refernciar soluciones comerciales, en este caso haré una excepción con los balanceadores de carga barracuda para que el alumno tenga referencia de la existencia de este tipo de productos. Obviamente existen otras muchas alternativas.

Sobre la naturaleza del balanceo, podrá plantearse a nivel IP, característico del LVS, o a nivel de aplicación-servicio, mediante el uso por ejemplo de reverse-proxy (cuyo nombre es autoexplicativo). Apache dispone de distintos módulo para implementar reverse proxy.

El servicio de DNS (Domain Name System) nos puede proporcionar una alternativa básica al balanceo de carga y que no requiere "grandes" desplieges. En pequeñas instalaciones esta podría ser una opción aceptable. Los servidores DNS de nuestro dominio responderán a las peticiones hacia el servidor de referencia con una relación de IPs, normalmente mediante un round-robin. Como es obvio, esta solución no contemplará la carga de los servidores, ni el ancho de banda estimado entre el cliente y los servidores que pueden atender su petición (de interés en el caso de clusters distribuidos geográficamente). En el caso de un servicio web, la dirección www.[nuestro-dominio] se resolvería cíclicamente mediante un round-robin sobre varias IPs. Como es obvio, será necesario incluir algún mecanismo que permita retirar una resolución ante una caída de un servidor. ¿Y si está "cacheada" en uno o más clientes?. La implementación en el caso de bind únicamente requerirá de varias entradas CNAME, por ejemplo.:

server1 IN A 193.144.48.10

server2 IN A 193.144.51.16

server3 IN A 193.144.63.83

www IN CNAME server1

IN CNAME server2

IN CNAME server3

Unido a la multitud de referencias en internet sobre configuración de clusters de HA, con o sin NAT, a nivel 2 o 3, etc., para los amantes de la literatura técnica en papel, esa que debería tender a su desaparición completa, señalar por ejemplo el artículo "Replicación y alta disponibilidad con pgpool II de PostgreSQL" del número 108 de la publicación Mundo Linux.

Entre las diversas herramientas con las que podremos "jugar", considerando que jugar es la mejor técnica para aprender, señalar ldirectord (para monitorización de servicios HTTP y HTTPS), heartbeat (para monitorización de equipos), o el entorno gráfico lvs-gui (para configurar un cluster LVS). Existen muchas otras opciones de HA y load balancing aunque esta entrada no tiene como objetivo tal revisión.

Al finalizar la clase se analiza la evolución en nuestros sistemas de información y servidores, desde los monoservidores, pasando por soluciones redundantes con o sin balanceo de carga a las configuraciones de servidores basados en la virtualización y para-virtualización. Finalmente vemos que las posibilidades que nos ha proporcionado el mundo de la virtualización y su aportación en el salto a lo que hoy se conoce como computación en la nube (ver por ejemplo simulador del IBMSmartCl​oud).
Juega aprendiendo y aprende jugando,

jueves, 28 de mayo de 2009

Security A(r)t Work

Inicio esta sección de referentes en el ámbito de la PSI, incluyendo los que, por un motivo u otro, me hayan llamado la atención. Security A(r)t Work es una "delicia" en el campo, con una visión y una forma de "plasmar" los contenidos muy de agradecer.

martes, 26 de mayo de 2009

Bitácora de PSI.: Una de cuotas

En el capítulo anterior hemos hablado, entre otras cosas, de los sistemas de ficheros. Hoy trataremos de poner algunas barreras al campo en la forma de cuotas.

Es necesario definir cuotas en nuestros sistemas de ficheros, tanto locales como en red, especialmente en entornos multiusuario. Bueno, si tu máquina únicamente te tiene a ti por usuario, no será tan crítica esta tarea, aunque ...

Nuestro espacio de almacenamiento no suele ser infinito, por lo que será necesario limitar su uso. No es bueno dejar llenar nuestros discos duros. Como mínimo poner cuotas al número de bloques e inodes por usuario y, o, grupo. De forma resumida para vuestras máquinas de laboratorio podéis utilizar este mini-howto "Debian Disk Quota Management". Para asignar cuotas podrás utilizar el quotatool o el edquota. Normalmente se definen varias cuotas tipo a usuarios que se utilizan para asignar a otros usuarios:

$ sudo edquota -p ...

# for i in `cat /etc/passwd [pipe] cut -f1 -d:`; do edquota -p $i; done

Este último comando asignará cuota a todo usuario del /etc/passwd, incluido root, admin, etc. Si quieres asignárselo a un grupo determinado, según el caso, puedes utilizar algún pequeño "script" o comando para seleccionar los usuarios afectados.

En este punto, utilizamos unas viejas conocidas en el mundo de los procesos, las llamadas "fork bombs", que sirve para ilustrar la necesidad de configurar otro tipo de cuotas, como las de procesos. Es bastante habitual encontrarnos en la actualidad máquinas multiusuario con cuotas de disco, pero no de procesos. Tal vez la más conocida, publicada y comentada de las "fork bombs" sea :(){ :[pipe]:& };:

De forma resumida, abre un terminal como usuario y ejecuta dicha cadena. En el caso de que el sistema no tenga cuotas de proceso, se comerá el procesador de la máquina y la dejará tirada. Esta cadena es una función llamada : que se auto-llama de forma recursiva dos veces y que se vuelven a llamar, como diría el inminente Buzz Light Year, "hasta el infinito y más allá". Esta función se puede reescribir de la siguiente forma para una mejor comprensión:

mifuncion(){ mifuncion[pipe]mifuncion& };mifuncion

Para microsoft en un cmd si se ejecutas un fichero por lotes mifuncion.bat cuyo contenido sea %0[pipe]%0 el efecto será el mismo. Existen otras muchas fork bombs, pero que no tienen ningún interés más que el de ilustrar la necesidad de definir cuotas en los distintos subsistemas gestionados por nuestros sistemas operativos. Aunque aquí veremos cuotas para el sistema de ficheros y procesos, recuerda que también tenemos otros recursos que pueden requerir de cuotas, como por ejemplo nuestros interfaces de red (por IP, servicios, etc.), para evitar posibles abusos (traffic shapping y QoS).

En el caso de cuotas de proceso, en los equipos del laboratorio (debian) tienes el fichero de configuración de linux-pam /etc/security/limits.conf. En el que podrás definir cuotas para distintos elementos, por ejemplo.:

@colegas hard nproc 100
@enemigos hard nproc 10

La primera línea definiría un límite "hard" de número de procesos a los usuarios del grupo colegas de 60 y, en la segunda, de 10 para los enemigos.

* hard nproc 60

Esta línea establecerá un límite de procesos de 60 para todo bicho que pulule en el equipo, a excepción del root. No olvides que un proceso puede generar un gran número de procesos. Analizar el perfil de los procesos de tus usuarios y sus necesidades te permitirá definir la política de asignación de cuotas. Bajo ningún concepto debemos considerar la típica coña de "usuario bueno, usuario muerto". Nosotros trabajamos para ellos y, sin ellos, nuestro trabajo no tendría sentido.

Y, es suficiente con las cuotas que hemos visto?. En el caso del fichero /etc/security/limits.conf podrás definir, al igual que se hace con nproc, límites para otros parámetros (fuente fichero de configuración de las debian de laboratorio).:

core limits the core file size (KB)
data max data size (KB)
fsize maximum filesize (KB)
memlock max locked-in-memory address space (KB)
nofile max number of open files
rss max resident set size (KB)
stack max stack size (KB)
cpu max CPU time (MIN)
as address space limit
maxlogins max number of logins for this user
maxsyslogins max number of logins on the system
priority the priority to run user process with
locks max number of file locks the user can hold
sigpending max number of pending signals
msgqueue max memory used by POSIX message queues (bytes)
nice max nice priority allowed to raise to
rtprio max realtime priority

Otros muchos parámetros configurables del sistema los encontrarás en /etc/login.defs y /etc/pam.d/common-password

password required pam_unix.so nullok obscure min=4 max=8 md5

¿Qué opinas de la línea anteriore que puedes localizar en los ficheros common-password de las máquinas de laboratorio?. ¿Qué opinas del uso de password md5 de longitud mínimo 4?. ¿Debemos enviar al md5 a hacerle compañía al crypt?. De momento no, pero requiere unos ciertos cuidados, que recuerdan a los últimos días del crypt.

Para que puedas dedicar un poco de tiempo a probar alguna herramienta, señalar dos dedicadas a la reproducción de ataques por fuerza bruta sobre una gran cantidad de servicios, Medusa y THC Hydra. Sin entrar en IDSs de propósito general, existen herramientas para su detección y filtrado, como fail2ban, denyhosts, blocksshd o sshdfilter. Su funcionamiento se centra en la identificación en los ficheros de "log" de ataques por fuerza bruta desde determinadas IPs para su filtrado normalmente mediante iptables. Será necesario incluir excepciones, para no filtrar lo que no se debe, y tener en cuenta la posibilidad de paquetes IP spoofing que nos puedan producir el filtrado de equipos confiables.

Y la pregunta que está en el aire, ¿no vas a dar más niveles RAID?. Hemos llegado hasta aquí hablando de sistemas de ficheros y RAIDs, y no hemos terminado nuestra aventura. Es hora de cerrarla, y descubrir al asesino.

Se analiza el funcionamiento de los RAID3 y 4, de los que no incluyo en esta entrada nada, al no ser de gran interés para nosotros. El RAID5, uno de nuestros clásicos, ilustra la utilización de información de paridad distribuida entre un grupo de discos para garantizar la recuperación ante el "casque" de un disco duro. El RAID5 incrementa el rendimiento respecto al 3 y 4, evitando el cuello de botella de tener toda la paridad en un único disco duro.

Desde un punto de vista operativo, la mayoría de los RAID que montamos son 0, 1 y 5. Existen otros muchos RAID, pero no son de este mundo -:). Recuerda que los discos duros se pueden llenar (el próximo día de clase hablaremos de LVM), se pueden estropear, te los pueden robar. RAID puede proporcionar un cierto nivel de seguridad, pero no funciona ante un borrado accidental de ficheros, no sustituye al backup, no protege de incendios, inundaciones, etc. También puedes plantear hacer RAID sobre discos remotos, por ejemplo con Fibre Channel.

En algunas ocasiones los RAID se van de fiesta y se montan RAID10 (grupos de "mirrors" "stripeados") o RAID01 (grupos de "stripeados" "mirroreados") [estos últimos términos son el resultado de un proceso de fusión, mis disculpas a la RAE].

Aunque los RAID pueden incrementar el rendimiento también puedes plantear el uso de distintos planificadores de entrada salida a disco o ajustar algunos de sus parámetros. Sin duda alguna, el "tunning" es un deporte maravillo que, por desgracia, se practica poco.

Recuerda que la partición de swap puede darle mucho trabajo a tu disco. No te olvides dimensionar al swap adecuadamente, y meterlo en un disco rápido. También puedes crear varias particiones de swap y distribuirlas entre varios discos, asignándoles prioridades. De esta forma, tu swap podrá irse de vacaciones a varios discos, y utilizar eso que se llama acceso concurrente.

Otra instalación que puede sernos de interés es hacer "mirroring" del sistema operativo. Y finalmente, para que puedas crear, monitorizar y hacer todo tipo de pruebas con los RAID en los equipos del laboratorio, el mdadm.