Mostrando entradas con la etiqueta cdigo. Mostrar todas las entradas
Mostrando entradas con la etiqueta cdigo. Mostrar todas las entradas

jueves, 9 de enero de 2014

Concurso Internacional de Código C Ofuscado (IOCCC): Ganadores de 2013

El Concurso Internacional de Código C Ofuscado o IOCCC - en inglés International Obfuscated C Code Contest - es un concurso que nació en 1984 y que, en cada una de sus hasta ahora 22 ediciones, ha premiado a los programas más llamativos (útiles y a veces poco útiles) cuyo código es ilegible, es decir, está ofuscado u oscurecido intencionadamente.

Aunque las reglas no son demasiado claras al respecto, para participar "basta" con presentar un programa completo y propio de menos de 4096 bytes con el objetivo de:

- Escribir el programa C más oscuro/ofuscado.
- Mostrar la importancia del estilo de programación, de una manera irónica.
- Forzar los compiladores de C con código inusual.
- Ilustrar algunas de las sutilezas del lenguaje C.
- Proporcionar un foro seguro para el código C más pobre :-)
 
Recientemente se han publicado los ganadores del 2013 por lo que os recomendamos echar un vistazo a su originalidad, donde encontraréis algunos tan curiosos como por ejemplo uno de una sóla línea capaz de reproducir sonidos con notación musical ABC, o un pequeño PC emulador/máquina virtual 8086 escrito en solo 4043 bytes de código:

2013 birken    use Tetris to paint a picture
2013 cable1    1-liner party of a US President
2013 cable2    OCR in quick brown fox ASCII art
2013 cable3    IBM PC emulator
2013 dlowe    ASCII spark line graph
2013 endoh1    SKI Combinator Calculus tool
2013 endoh2    JPEG quine that expands and inverts
2013 endoh3    play music with ABC notation
2013 endoh4    ASCII solid rotation
2013 hou    ray tracer
2013 mills    HTTP server ray tracing a timestamp
2013 misaka    horizontal or vertical file concat
2013 morgan1    X11 based Solar system simulator
2013 morgan2    X11 & ASCII domino matching game
2013 robison    multi-precision arithmetic

Página IOCCC: http://www.ioccc.org/index.html


View the original article here


This post was made using the Auto Blogging Software from WebMagnates.org This line will not appear when posts are made after activating the software to full version.

domingo, 8 de diciembre de 2013

FIREBrick: un generador de imágenes y write blocker de código abierto

En los últimos años ha ido creciendo exponencialmente la necesidad de obtener y preservar evidencias digitales y lo que antes era tarea de especialistas ahora se ha convertido en rutina de muchos departamentos. Desgraciadamente la financiación muchas veces no acompaña a esta demanda.

FIREBrick es una alternativa de código abierto a los bloqueadores de escritura (write blockers) de hardware comerciales y generadores de imágenes de disco que se puede montar utilizando componentes con un valor que ronda tan sólo los 200€:

- Placa base ASRock E350M1
- 1Gb de memoria RAM DDR3 (1333 o 1066)
- Dynamode PCIX3FW 3-Port Firewire PCIe
- Una pantalla LCD2USB de 20×4
- Fuente 120W+ PSU
- Caja mini-ITX
- Discos SATA (si quieres almacenamiento interno)

Características:

- Imágenes de disco independientes, a velocidades de hasta 5 GB por minuto
- Imágenes hasheadas sobre la marcha con controles de verificación
- El disco de almacenamiento se puede cifrar (mediante LUKS)
- Funcionalidad bloqueador de escritura FireWire, la unidad de destino es visible como un disco duro FireWire
- Portátil: cabe en una pequeña caja HTPC (incluyendo pantalla)
- Libre, el firmware es de código abierto
- Puede ser totalmente personalizable según las necesidades específicas de los departamentos
- Se adhiere a los protocolos de pruebas con herramientas forenses de la NIST
- Almacenamiento interno configurado automáticamente (ninguno, solo disco o RAID)
- RAID mirroring y soporte striping
- Configuraciones ilimitadas - posibles ideas de desarrollo_ Android, Kindle, imágenes de USB, etc.

Código fuente, ROM e instrucciones:

https://github.com/leetobin/firebrickRemote


View the original article here


This post was made using the Auto Blogging Software from WebMagnates.org This line will not appear when posts are made after activating the software to full version.

sábado, 7 de diciembre de 2013

¿Podría haber un backdoor en un sistema operativo de código abierto?

Que la NSA propuso a Linus Torvalds introducir una puerta trasera en Linux era un rumor que el propio creador del kernel ya reconoció en septiembre durante la conferencia LinuxCon. Ahora sin embargo ya es un hecho confirmado porque así se reveló durante la audiencia sobre la vigilancia de masas en el Parlamento Europeo de esta semana.

Nils Torvalds, padre de Linus y miembro del Parlamento Europeo de Finlandia, comentaba (minuto 3:09:06 del vídeo): “Cuando a mi hijo mayor le hicieron la misma pregunta: "¿te ha hecho la NSA alguna propuesta sobre backdoors", dijo "No" , pero al mismo tiempo él asintió. Era una clase de libertad legal. Le había dado la respuesta correcta, [pero] todos entendieron que la NSA se había acercado a él".

La historia no nos dice todavía qué respondió Linus Torvalds a la NSA, pero supongo que les dijo que no sería capaz de inyectar puertas traseras, aunque quisiera, ya que el código fuente es abierto y todos los cambios son revisados por muchas personas independientes. Después de todo, esa es una de las ventajas del código fuente abierto y la razón por la que, en teoría, se podría confiar cuando se trata de seguridad.

Y digo en teoría porque en este mundo ya nadie se ríe y piensa que eres un paranoico si afirmas que, aun así, también podrían haber introducido un backdoor en Linux, aunque sea un sistema operativo de código abierto...

Descargar e instalar un paquete firmado de un sitio oficial sólo te garantiza de dónde viene y que no ha sido modificado en tránsito. Pero, ¿se puede confiar en que realmente haya sido compilado sin haberse modificado ningún fichero del repositorio público o se hayan introducido cambios reconocidos pero con funcionalidades adicionales ocultas?

Realmente la respuesta da un poco igual para la mayoría. Si lo piensas ¿quién descarga y compila el código de una distribución? Sólo algunos profesionales y entusiastas. Es más, aunque recompilen el código ¿cuantos lo han revisado? Seguramente no haya nadie o muy pocos que tengan la capacidad de analizar todos los componentes del sistema operativo.

Supongamos que alguien decide analizar exhaustivamente el código para verificarlo. Si recordáis hace poco en el blog hablábamos de una iniciativa de financiación colectiva sólo para auditar el código de Truecrypt. Imaginaros el coste de auditar una distribución Linux cuyo código es más de 10 veces mayor.

Pero vayamos un poco más allá. Pensemos por un momento que alguien asume la inversión y se lleva a cabo la revisión completa del código del sistema operativo. Lo lógico sería que la revisión se dividiera por partes ¿no sería factible controlar a una empresa o a algunos grupos de desarrolladores? Es más, ¿no sería posible ocultar un backdoor delante de sus narices?. Ya en 2003 se cambiaron en el kernel dos líneas de código que parecían un error tipográfico pero que al llamar la función sys_wait4 daban acceso como root...

Y ya para rematar y tal como comentaba Valentín Sanjuan en nuestra página de Facebook también en el kernel hay incluidos controladores ya compilados por fabricantes de hardware de los que no se dispone el código fuente, se les llama blobs y tranquilamente ahí se podrían incluir backdoors...

Pensarlo por un momento. Yo amo a Linux porque ofrece más libertad y al menos te da la opción de revisar y modificar código pero creo que sí sería posible introducir una puerta trasera en el sistema operativo, aunque en su mayoría sea de código abierto... ¿por qué si no la NSA se habría dirigido a Linus Torvalds?

Fuentes:
NSA asked Linus Torvalds to install backdoors into GNU/Linux
Torvalds fue requerido por la NSA para instalar un backdoor en Linux
Linus Torvalds responde que el kernel Linux no tiene backdoors de la NSA
¿Una ‘puerta trasera’ de la NSA en Linux? Podría ser


View the original article here


This post was made using the Auto Blogging Software from WebMagnates.org This line will not appear when posts are made after activating the software to full version.

viernes, 6 de diciembre de 2013

Dime quién eres y te diré cuantas líneas de código fuente tienes

En número de líneas de código que tiene un programa normalmente no significa necesariamente que éste sea mejor, más seguro, que tenga mayor funcionalidad o que sea más complejo. De hecho todos los desarrolladores saben que normalmente programan de forma más óptima si pueden hacer la misma función con menos código.

No obstante saber cuantas líneas de código tienen las plataformas, aplicaciones y sistemas más grandes y reconocidos del mundo es un dato cuanto menos curioso.

Existen varias formas de averiguarlo, ya sea mediante fuentes primarias (artículos), cálculo automático mediante herramientas como CLOC o LCFUCount, o consultas en la página OhLoh.

En la infografía de David McCandless de la izquierda (haz clic en la imagen para agrandar o visita el enlace) se muestran gráficamente los millones de líneas de código de varios sistemas, desde un simple juego en iPhone hasta los principales sistemas operativos, pasando por el software de drones militares, coches, el Hubble o el colisionador de hadrones.

De igual forma hemos querido hacer un ejercicio similar y hemos obtenido el número de líneas de algunas de las herramientas de seguridad de código abierto más populares. Y bueno, este es el resultado:


View the original article here


This post was made using the Auto Blogging Software from WebMagnates.org This line will not appear when posts are made after activating the software to full version.