Archivo de la categoría: Tecnologia

Resumen de la novena conferencia de OWASP Spain Chapter Meeting Barcelona, 12 de junio de 2015

Cómo cada año esta conferencia no te deja indiferente, un mundo que nunca descansa. El de la seguridad online.

Lo bueno de esta jornada fue la presentación de ideas sobre el desarrollo y el testing, y la necesidad de mejorar las metodologías de la aplicación de la misma.

Un cambio necesario con la continua aparición de bugs en tantas distintas áreas, que lo que llevamos del 2015 y el 2014, en la cantidad de problemas detectados ha podido ver lo expuestos que podemos estar de la noche a la mañana.

Pues aquí las distintas ponencias, vale la pena cada una de ellas.

Presentación de la jornada, lamentablemente este año no contamos con la presencia de Vicente Aguilera Díaz, que gracias a su trabajo y esfuerzo podemos disfrutar de estas charlas que difunden un excelente trabajo de la Owasp.

 

Primera ponencia (ingles):
Ashar Javed. – @soaj1664ashar.
Cat-and-Mouse Game with Sucuri’s Web Application Firewall

Una excelente demostración de lo que sigue siendo la vulnerabilidad XSS y lo presente que está a pesar de usos de herramientas como WAF CloudProxy (Programadores web preparar la pastilla para no amargase el día)

 

Segunda ponencia (No se grabó a pedido del ponente)
Marc Muntañá Vergés.
Estableciendo las tres líneas de defensa en proyectos web
Presentó un modo de presentar los problemas que surgen a la hora de una empresa / compañía al evaluar su plan de seguridad, los roles de los departamentos, como también los de los jefes de los mismos, presentando 3 capas.


Tercera ponencia
Fabio Cerullo. – @fcerullo. CEO y Fundador de Cycubix.
Desarrollo Rápido y Seguro de Aplicaciones. ¿Es posible tener las dos cosas?

En esta ponencia comenzamos a abordar el problema de la forma de desarrollar y la necesidad de hacer el Testing y el cómo hacerlo, que etapas implica, en que parte del desarrollo y que metodologías se aplican como AGILE y los Sprint.

 

Cuarta ponencia
Stephen De Vries. – @stephendv

Pruebas de seguridad contínuas para DevOps
En esta ponencia se continua el análisis de la forma de desarrollar y la presentación de metodologías, acompañado de demostración de herramientas de testing, las cuales son una excelente recomendación para cualquier desarrollador sea para el área que sea, el visionado de estas para mejorar la forma de trabajo donde el Testing forme parte de la aplicación desde su nacimiento.

 

Quinta ponencia
Miguel Ángel Hernández Ruíz. – @miguelangelher
Abuse Cases – from scratch to the hack

Muy buena ponencia donde se demuestra que el cambio continuo a veces hace olvidar la fuente. Muestra errores en sistemas que sólo implementan controles a nivel usuario capa final, con JS y nos olvidamos de que hay un servidor detrás para poder comprobar valores.

Este tema se trata hace años, pero supongo que la comodidad del JS y el AJAX hace que dejen el control de los valores a la simple capa de presentación de datos.

 

Sexta ponencia
Marc Rivero López. – @Seifreed , Senior eCrime. Deloitte.
APT, Ataque y defensa en entorno hostil

Una ponencia que no se puede perder nadie, un poco de la realidad que vivimos en este mundo de la informática, las estrategias de seguridad, sus versiones cinematográficas y todo!

Se plantea como se ataca y como deberíamos tener una empresa lista para la defensa y lo más importante la prevención de ataques futuros.
Como siempre Marc, le puso el punto de ánimo y sacó una sonrisa a pesar de llevar horas ya de conferencias!

 

Mesa redonda (ponentes e invitados) y cierre de la jornada

Buen resumen de la jornada y una excelente charla sobre temas variados que se presentan cada día, aunque la respuesta casi siempre es la misma “es lo que toca y si queremos comodidad para delante”.

Como resumen de cierre la verdad que me sorprendió los cambios a los que nos enfrentamos cada día y como se está abordando más seriamente la forma de desarrollar en las empresas, ya que cada una implemente o no es un tema, pero como cliente de un software no te puedes dejar colar un BUG sin Testing real.

Espero que el material sea del agrado de todos, cosa difícil, pero lo intento.
El uso que se le de a este conocimiento es responsabilidad de quien lo use.

Como siempre recuerden que en la web de la OWASP pueden ver mas contenidos, acceder a materiales y mas cosas.

https://www.owasp.org/index.php/Spain/Chapter_Meeting

 

Trabajando con DateTime en PHP 5.3

Trabajando con DateTime en PHP 5.3

Aunque no escribo mucho sobre programación esta vez tocó.

Estoy trabajando actualmente con un proyecto personal, donde me ha tocado preparar sistema de fechas para reservas.

Si bien nunca me gustó como PHP trabaja las fechas; “que si unix time stamp, que si str, que si ingles que la mar en coche”.
Me pregunté si tanto hablar de OOP en PHP no tendrá una clase “digna” de trabajo con fechas…

Y casi la tienen, creo que aun la pueden mejorar, pulir y hacerla más completa, pero al menos con lo que hay, se puede trabajar con un estándar más o menos preciso.

Las primeras críticas que me llovieron fueron las cantidades de NEW pero si quiero que los datos se interrelaciones bien, sin problemas, debo usar la base de ejemplos que esta online (php.net).

A mi ver me parce totalmente valido, donde un lenguaje una simple $variable puede ser un array o un fichero o una clase, no creo que por los news sea preocupante.

Lo bueno de todo esto es que al final para mi, lo han simplificado mucho el modo de trabajar, de poder recorrer las fechas con un simple bucle, aunque para ello hay que definir cosas previas.

Lo que use:

Clase DateTime (http://php.net/manual/es/class.datetime.php)
Clase DateInterval (http://www.php.net/manual/es/class.dateinterval.php)
Clase DatePeriod (http://www.php.net/manual/es/class.dateperiod.php)

Una aclaración el código que muestro es a ejemplo para aprender a utilizarlo no es el más pulido ni optimizado, lo que intento es que puedas amigarte con estas hermosas clases y su potenciales.

Es más me fui encontrando cosas que a mi entender no son lo mejor, pero bueno andan. ( :-/ )

Dejare un txt con el código para que lo puedan descargar.

Defino que trabajo en castellano y otras cosas:

setlocale(LC_ALL,”es_ES@euro”,”es_ES”,”esp”);

Lo primero crear una fecha

$init = new DateTime(“2013-09-17 00:00”); // Fecha de inicio
$end = new DateTime(“2014-09-30 23:59”); // Fecha Final (Atención a este detalle 23:59)

Bien, comienza lo lindo, los intervalos, que son? Pues es un modo de recorrer la fecha por el periodo definido en mi caso el primero es el de un mes

$interval = new DateInterval(‘P1M’); // Intervalo de un mes para el bucle

Y ahora otro new, que seria el periodo, esto hace falta para el foreach, por asi decirlo 😉

$daterange = new DatePeriod($init, $interval ,$end); //Bien esto creara algo que recorrer, pueden ver que las fechas son Fecha inicio – Intervalo de tiempo por el cual saltar – Fecha tope.

Y ahora el foreach

foreach($daterange as $date) { // Iré mes a mes

Dentro del foreach quiero recorrer cada mes con sus correspondientes días. Acá es donde me encontré un problema básico, quería saber según el día que tengo, cual es su último día, en el caso de septiembre es el 30, pensé con mi ilusión que existía algo, pero es en pecl así simplifique lo que pude.

$str_mes = “1-“.$date->format(“m-Y”); // Y nos pasamos a los string =( Como $date es el mes actual, pues de aqui consigo el primero de mes.

Creo una nueva fecha

$fin_mes = new Datetime($str_mes); // En este caso seria 1-09-2013

Y mi truco para obtener el fin de mes!!!

$fin_mes ->add(new DateInterval(‘P1M’)); // A la fecha le agrego un mes! (P1M)
$fin_mes ->sub(new DateInterval(‘P1D’)); // A la fecha le resto un dia!

Y wala! tengo el 30-09-2013, pero me encontré una sorpresa con el bucle, al amigo le gustan los datos totales para recorrerlo, parece ser que si no tienes las 23 horas, mas los 59 minutos y sus 59 segundos el día no es 30!
Ser o no ser, pues tranquilos, se lo agregamos!

Al principio pensé que pasaría un día mas por el tiempo, pero no, no se suma!

$fin_mes ->add(new DateInterval(‘PT23H59M59S’)); // Arreglo para que cuente el 30/31 (raro no?)

Ahora ya tengo mi fecha lista! A recorrerla según vamos necesitando.

Creo mi nuevo intervalo de un día P1D

$intervalo_dias = new DateInterval(‘P1D’);

Bueno, necesito controlar los meses:

$control_mes = $date->format(“m-Y”); // Mes actual mas año! para poder recorrer
$control_init_mes = $init->format(“m-Y”); // Mes de inicio del bucle
$control_end_mes = $end->format(“m-Y”); // Mes de final de bucle

Imprimo nombre del mes:

echo “<br/>”.strftime(“%B”, strtotime($date->format(“y-m-d”))).”<br /><br />”;

Bueno mi control de movimiento para el futuro bucle que recorrerá el mes

Algo que pongo en este caso y es muy útil, lo pongo a modo debug, pero para calcular cosas es lo más importante.
Calcular la diferencia entre dos fechas, $date ->diff($fin_mes); (http://php.net/manual/en/datetime.diff.php)
Defino 3 segmentos para hacer el bucle, fecha inicial, entre inicio y final, fecha final.
Esto lo hago porque no siempre empezaremos desde el día 1 y terminaremos el día 30/31

// Fecha inicial hasta fin de ese mes
if($control_init_mes == $control_mes) {
$dias_final_mes = $date ->diff($fin_mes); // Diferencia entre día de venta inicial y final de mes
echo “Días hasta el final del mes: “.$dias_final_mes->format(‘%r%a’).”<br /><br />”; // Simple debug
$dias_venta = new DatePeriod($init, $intervalo_dias,$fin_mes); //rango dentro del mes
}
//Fecha final, debo obtener el 1 de mes
else if($control_end_mes == $control_mes) {
// Genero fecha 1 de mes
$str_mes_fin = “1-“.$date->format(“m-Y”); // mas texto!
$dia_pri_fin_promo = new Datetime($str_mes_fin); // Fecha al día 1 de el ultimo mes
$dias_hasta_mes = $dia_pri_fin_promo ->diff($end); // Diferencia entre ultimo día de $end y el primero de ese mes
echo “Días hasta final de la promo: “.$dias_hasta_mes->format(‘%r%a’).”<br /><br />”; // Otro simple debug
$dias_venta = new DatePeriod($dia_pri_fin_promo, $intervalo_dias,$end); //Rango dentro del ultimo mes
} else {
// Meses que hay entre INICIO y FIN
$str_inicio_mes = “1-“.$date->format(“m-Y”);
$dia_inicio_mes = new Datetime($str_inicio_mes);
$dias_venta = new DatePeriod($dia_inicio_mes, $intervalo_dias,$fin_mes); //rango dentro del mes
}

// Muestro en pantalla la salida
foreach($dias_venta as $dias){
echo $dias->format(“d-m-Y”).”<br/>”;
}

}

?>
</pre>
</body>

Bien con esto no pretendo más que dar simples ideas y nociones de uso de esta excelente clase y sus clases amigas!

Un detalle interesante que me encontré a la hora de estar haciendo pruebas!
Usando diff y la salida con signo – para saber si era un valor negativo me encontré con que el valor 0 y -0 son cosas distintas,
Me quede flipando con lo cuántico de esto jijijiij

2013-09-13 00:00 diff 2013-09-13 18:19 => 0
2013-09-14 00:00 diff 2013-09-13 18:19 => -0
next -1 ….

Descargar txt del ejemplo: http://poisonclub.g1.re/ejemplo-date-time-php.txt
Saludos!

Vídeos de la conferencia: OWASP Europe Tour – Barcelona, viernes 14 de junio 2013

Vídeos de la conferencia: OWASP Europe Tour – Barcelona, viernes 14 de junio 2013

Un total de 4 conferencias, más la presentación y la mesa de debate.

Esta vez no tuve problemas para que Youtube me deje subir vídeos de larga duración!!

Un detalle, usé una cámara “Toshiba Camileo P100” que pensé que me ahorraría un poco de tiempo y mejoraría la calidad contra una vieja DV, pues al final, todo el tiempo está enfocando y la calidad del audio y vídeo no son lo mejor, por eso recomiendo no comprarla! 🙁

Pues aquí los vídeos:

OWASP Europe Tour – Barcelona 2013 / Presentación
(Bienvenida) Josep Maria Ribes / Director d’Enginyeria de La Salle Campus Barcelona.
(Introducción a la jornada) Vicente Aguilera Díaz / OWASP Spain Chapter Leader. Socio y Director Dpto. Auditoría en Internet Security Auditors.

Selva María Orejón Lozano / Directora ejecutiva de onbranding. Co-fundadora AERCO-PSM. Fundadora y Directora del Congreso Brand Care.

Seguridad en redes sociales.
Ya estamos todos conectados Online, incluso hiperconectados, hiperexpuestos con nuestros contactos. Saben qué hacemos, dónde estamos, con quién, qué compramos, qué consumimos … pero ¿y nuestra seguridad? ¿Ya sabemos quién ve qué? ¿Nos interesa comunicar todo lo que hacemos? ¿Tener tanta visibilidad? Y como empresa ¿ya controlamos a quien lleva nuestra comunicación? ¿Y si se va de la empresa? ¿Tenemos acceso real y completo en nuestra comunidad?.

Fabio Cerullo / CEO & Founder Cycubix Limited. OWASP Ireland Chapter Leader.
PCI Para Desarrolladores.
Los estándares PCI-DSS y PCI-PA DSS son bien conocidos por los profesionales de seguridad y auditoria informática, pero como son interpretados por los equipos de desarrollo de software? Muchas veces no es claro si todos los requerimientos son necesarios y mas importante, como tienen que ser implementados. Esta charla tiene como objetivo ayudar a los desarrolladores a interpretar de manera rápida y sencilla cuales son los puntos críticos de estos estándares a tener en cuenta y poder implementarlos durante el ciclo de desarrollo de software.

Chema Alonso / CEO en Telefónica Digital Identity & Privacy.

Why cyberspies always win.
Todos los días sitios webs pertenecientes a grandes empresas son vulneradas. Muchas de esas empresas pasan revisiones constantes de seguridad, y sin embargo, siguen apareciendo en las noticias las contraseñas de usuarios, los datos de los clientes o información sensible de la empresa. ¿Por qué? En esta sesión se presentarán algunas ideas al respecto sobre este tema… de forma muy maligna.

Albert López Fernández / Analista de Seguridad en Internet Security Auditors.

Low Level Miseries when Exploiting Linux Heap.
Se explicarán varias vulnerabilidades que afectan a la implementación del heap en sistemas GNU/Linux. Se realizará un repaso del estado del arte, y cómo aprovecharse de las vulnerabilidades presentes en el código encargado de gestionar la memoria dinámica en Linux y se detallará cuál ha sido la problemática al desarrollar los payloads necesarios para explotar dichas vulnerabilidades. Asimismo, se repasará a alto nivel cómo funciona la gestión de memoria dinámica en Linux para luego destripar su funcionamiento a bajo nivel.



Mesa de debate / OWASP Europe Tour – Barcelona 2013
Cierre de la jornada con la mesa de debate.

Estados Unidos nos espía! No solo existe el PRISM

Aunque esto parece una noticia nueva, está claro no lo es….

Es sabido por todos que un sistema operativo como el que produce Microsoft diseñado en USA no solo tiene puertas traseras si no que hasta debe enviar estadísticas de nuestro comportamiento, pero que no cunda el pánico, de momento somos demasiados PCs como para que puedan segmentar a cada ser del planeta y meterles un puro en USA ? no…?

Todo un tema, con eso de los centros de detención clandestinos, como en los que participo España, (http://es.wikipedia.org/wiki/Centros_clandestinos_de_detenci%C3%B3n_de_la_CIA)

Si bien, de momento dice ser usado por el tema del Terrorismo y ¿Pedofilia? Hago hincapié en mi anterior post.

Si bien USA siempre fue la vanguardia en desarrollos, mientras otros países no tenían mucho más que un “sistema operativo dependiente”, para entender esto tenemos que ir al pesado! Sí señor, agradezco mis años a veces… Ya está la NSA tocando las pel… con el PGP (http://www.satorre.eu/historia_pgp.htm)

Bueno y ahora viene lo bueno en mi juventud instalando un NT4 (Jo pedazo de Kernel jijijii) recuerdo que en unos de los “services packs” actualizaba el gran amado nucleo, y el gran hermano de la NSA, el Internet Explorer, si señor y ya como eran otras épocas por la cara te decía, que por estar fuera de USA solo podrías usar certificados de seguridad de 64Bits (si algo así como las claves web de las WIFI).
O sí un https muy seguro, Nuevamente por el año creo 1999/8 la NSA metiendo sus narices en los países que no son USA.

Bueno para todas esas personas y políticos que esto les suena como el medicamento que le da el Doctor para la presión alta, ósea a nada, estamos entregando hasta a nuestra madre en bandeja… o sí a veces la ignorancia en esto nos hace feliz (Ciertamente eso lo aprendí con el tiempo).
Bueno si bien el GNU es una rama interesante como sistema operativo, no quiere decir seguro, claro si lo comparamos a su primo lejano Winpocho la pantera, claro es seguro, pero eso es como comparar (…pienso analogía…) una comode64 (W), una nintendo Wii(L) Contra una PS4 (troll aun no está en la calle), Pero justamente lo que se dice seguro, es difícil de comprender, un kernel contra caídas, desbordes de pilas, llamadas no soportadas etc… (estará en la calle?)

Pues después del Stuxnet, llegue a leer que la Siemens prometía un sistema operativo para Alemania, será que se da cuenta el daño que hace esto día a día… (No encontré el enlace =( )

Volviendo al Linuxete, este amigo si bien es más seguro, no es el más grande, existen otras versiones de OS como BSD (freeBSD) el que tiene un diablito simpático de logo, pues acá hubo todo un tema de ataques a sus repositorios y eso es todo un marron, Debian, BSD y no sé cuantos más han sufrido este tipo de ataque, pensaremos que serán niños jugando con una red de bots no..?
Pues no, atacar y logar acceso a los repositorios de código fuente o tanto como de paquetes de la hermosa posibilidad de meter unos 32KBytes de código para accesos remotos y más cosas no deseadas. Ahí es donde entra en juego la seguridad, si piensan cuantas líneas de código que solo tiene el kernel de Linux?, pues por lo que busque en el señor Google amigo de la NSA, el kernel 3.2 sobrepasa las 15 millones de líneas de código, ahora esto es solo una pequeña parte del sistema, los paquetes como Apache, Php, Mysql y otros más que pueden correr como super root?
Bien esto es como esconder una aguja en 15 millones de pajares, no sé cuantos ojos harán falta para verlo, por ende el tema de que yo me lo cocino yo me lo como, si me bajo el código fuente y me lo compilo pero no tengo ni idea que hace ni como, aunque sepa de programación C, C++ y algo de ASM te lees todo el código por ejemplo del apache ¿? Vale, vamos mas allá si me leo el código, y mi pregunta tu GCC ósea tu compilador de C y C++ es realmente el compilador limpio, no te agregara nada a la salida de tus obj ¿?
Si lo sé es demasiada paranoia pero a que mola… 😛

Con esto quiero solo contar lo que yo veo referente a la seguridad hoy en día, hay países que confían a ciegas en la tecnología como el caso de los IPADs en el gobierno Español, imagínate por un segundo activar los micrófonos de forma remota en una reunión…
También cabe recordar que todos los Hosting alojados en USA o Empresas que tengan parte de su negocio en USA se ven obligados a dar acceso a la NSA, ósea Dropbox, Amazon, (etc…) no alcanza la excusa de que tengan el servidor físicamente en Europa, Sudamérica, eso es solo un señuelo para pescar más datos que espiar.

Bueno dejo un par de enlaces para que profundicen un poco mas:

La NSA construyó puertas traseras en Windows en el 1999
http://goo.gl/avZCO

Un poco mas sobre PRISM
http://goo.gl/WkQSs

Que es PRISM:
http://goo.gl/o6BJC

PRISM extraería datos directamente desde los servidores de Facebook o Google
http://goo.gl/fXOU1

Saludos!