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

16 de noviembre de 2010

Gestión de dispositivos de almacenamiento II

Continuando con los apuntes dirigidos al “Módulo Profesional de Seguridad informática” (del FP.“Téc. Sist. Microinformáticos y Redes”), y como prometí en la entrada anterior seguimos.

Criptografía.


La criptografía es el proceso mediante el cual un texto en claro (o texto plano) pasa a ser un criptograma (o texto cifrado).

El arte de la criptografía ha sido usada desde la época de los griegos y romanos. Existen gran numero de cifrados de hecho cada uno de nosotros podríamos imaginar una técnica distinta para cifrar de forma simple texto o bytes.

Para simplificar vamos a dividir las técnicas en varios tipos:

  • Cifrado simétrico: Estos algoritmos hace uso de la misma clave para cifrar que para descifrar (DES o AES por ejemplo).

  • Cifrado asimétrico: Estos algoritmos hacen uso de dos claves, una pública y una privada. Con la clave privada se cifra el mensaje, con la clave pública se descifra el mensaje y viceversa (RSA por ejemplo).

  • Cifrado resumen: Con este cifrado realizamos un resumen del mensaje. Estos cifrados no son de una sola vía, es decir, no se puede obtener el texto original con el resumen (MD5 o SHA1 por ejemplo).

  • Esteganografía: Esta técnica permite ocultar un mensajes, dentro de un portador, de modo que no se conozca su existencia. Por ejemplo podríamos ocultar un texto usando una imagen como portador.

  • Firma digital: Esta técnica es usada para conseguir la integridad y no repudio de un documento. Se varias de las técnicas anteriores para realizar esta labor. Consiste en realizar un cifrado resumen al cual se le añade un cifrado asimétrico y se añade al documento. De este modo podemos saber quien es el propietario del documento (no repudio) y que el documento no ha sido modificado (integridad).


Si pensáis en un modo de cifrar un mensaje es muy posible que estés pensando en técnicas de transposición ( 'A'+n donde n es el desplazamiento ) o de sustitución ('A' = 'B' como pasa en Base64 por ejemplo).
Los cifrados por transposición o sustitución son fáciles de saltar usando técnicas de análisis de frecuencias. Esta técnica se basa en sustituir el símbolo que más a parezca por el carácter más común del lenguaje origen del texto.

Copias de seguridad e imágenes de respaldo.


Como ya comentamos en la introducción para una organización lo más importante son los datos, por ello, estos deben de mantenerse siempre a salvo.
Dado que es imposible garantizar que un disco no va a romperse es importante realizar copias de seguridad o backup de los datos y configuraciones de los sistemas.
Podemos diferenciar como realizamos el backup según el estado del disco:

  • Copia en frío: Las copias frías se llaman así porque se realizan con el disco duro sin uso, es decir no hay ningún fichero en uso. La mejor forma es hacerlo arrancando con otro sistema operativo Live (ya que corre en la memoria RAM) y copiar las particiones de los discos de forma completa tal cual están, sin ni siquiera acceder a los ficheros en sí. Este tipo de copias se usan habitualmente para realizar instalaciones típicas ya que no solo incluyen los datos sino que también el sistema y los programas.

  • Copia en caliente: Consiste en copiar los datos más importantes de un sistema, estando el sistema en uso.


Pero también podemos realizar una separación según lo que vallamos ha abarcar:

  • Copias totales: En este tipo de copias se copia la totalidad de los datos. Es similar a la copia en frío sin incluir el sistema.

  • Copias incrementales: Solo se copiaran los datos nuevos o modificados (Necesitamos una copia total inicial que sirva de referencia).

  • Copias diferenciales: Solo se copian las diferencias entre los ficheros (Necesitamos una copia total inicial que sirva de referencia). Se usan en programación como controladores de versiones.

Medios de almacenamiento


Los materiales físicos en donde se almacenan los datos se conocen como medios de almacenamiento o soportes de almacenamiento (disquetes, discos duros, CD, discos Zip, ...).

Los elementos donde se escriben o leen datos en los medios de almacenamiento se conocen como dispositivos o unidades de almacenamiento (disquetera, una unidad de disco óptico, ...).

El propósito de los dispositivos de almacenamiento es almacenar y recuperar la información de forma automática y eficiente.

Los medios de almacenamiento han evolucionado mucho, desde las tarjetas perforadas hasta los nuevos sistemas ópticos o basados en semiconductores.

Sistemas RAID


Raid son las siglas de Redundant Array of Independent Disks, "conjunto redundante de discos independientes", es decir, un conjunto de discos independientes que funcionan como uno.
Existen múltiples formatos RAID, así como combinaciones de varios. Cuando se crea un formato de RAID se busca mejorar la fiabilidad, capacidad o rendimiento es los dispositivos independientes.

Para no extendernos vamos a ver solo tres tipos de ellos.

  • RAID 0 ó volumen dividido:
    Distribuye los datos equitativamente entre dos o más discos sin información redundante (paridad, checksum, ... ). El RAID 0 se usa normalmente para incrementar el rendimiento. Una buena implementación de un RAID 0 dividirá las operaciones de lectura y escritura en bloques de igual tamaño, por lo que distribuirá la información equitativamente entre los dos discos.

  • RAID 1 o copia espejo:
    Un RAID 1 crea una copia exacta de los datos de un disco en varios. Esto es útil cuando el rendimiento en lectura es más importante que la capacidad, dado que la capacidad de este viene dado por el volumen más pequeño. Un RAID 1 puede estar leyendo simultáneamente dos datos diferentes en discos diferentes, por lo que su rendimiento se incrementa. También se usa en seguridad dado que existen menos posibilidades que falle el hardware.

  • RAID 5:
    Un RAID 5 usa división de datos a nivel de bloques distribuyendo la información de paridad entre todos los discos miembros. Generalmente, el RAID 5 se implementa con soporte hardware para el cálculo de la paridad. Gracias a la información de paridad en ocasiones se pueden reconstruir fallos de almacenamiento en bloques.

Programación de copias de seguridad


Dado que realizar copias de seguridad es algo muy importante para asegurar la información de la
organización, para facilitar esta labor, lo más cómodo es automatizarlo.
Cuando mantenemos un sistema lo más recomendable es combinar todas las técnicas de backup, buscando la optimización de recursos, así como el uso de los mismos.
TipoVelocidad. creaciónVelocidad. reparaciónSaturacion de red
TotalLentaRapidaAlta sat.
IncrementalRapidaLentaBaja sat.
DiferencialMediaMediaMedia sat.

Dado que cada organización tiene unos habitos de trabajo distintos, las horas en las que se realizarán las copias de respaldo puede cambiar.
Por ejemplo, podríamos hacer una copia fría del sistema cuando se modifica el kernel. Mensualmente realizar copias en caliente de tipo Total, y semanalmente copias incrementales o diferenciales, según la variación que se espere en los datos.

11 de agosto de 2010

Regreso desde las JLA

Este fin de semana han sido las Jornadas Lúdico Andaluzas o JLA en Maracena.

Las jornadas se realizaron en un colegio de la zona. El lugar tenía varias zonas:

- Zona de acampada. En los alrededores de la guardería.

- Zona de organización y juegos. (La guardería) Esta zona constaba con stands de tiendas e informador, una habitación de consolas y varias  salas para jugar.

- Dormitorio. Se habilitó un pabellón cubierto para quienes no tenían tiendas.

- Campo de fútbol.

- Zona de carpas. Junto al colegio principal, tenía multitud de mesas para jugar a diversos juegos.

- Colegio. En el colegio se alojaban la organización y las asociaciones que colaboraban.

Desde el jueves al domingo se realizaron todo tipo de juegos, torneos y vivos.

El jueves estuve organizando todo y echando varias partidas a juegos de cartas.

El viernes por la mañana toco ir de compras y por la tarde torneo de StarWars, que duró hasta la madrugada del sábado, y me lo pasé genial.

El sábado por la mañana torneo de 7ºmar y por la tarde campeonato de Wii tenis, que gané, luego un concurso de "antonio carlos"(un niño que salía en el programa "gente con chispa", le ponía unos auriculares con música y tenía que intentar cantarla para que los concursantes la acierten), jugando a las cartas y por último una partida de rol (interpretativa, sin dados) improvisada.

El domingo la final de 7ºmar y a recoger, comimos en casa de un amigo y para casa.

Las próximas jornadas prometen, sobre todo porque el colegio se encontraba en obras y el año próximo serán mejores si cabe.

15 de julio de 2010

Proyecto Honeypot

Con el termino Honeypot (Tarro de miel) hacemos referencia a un sistema preparado para simunar una aplicación o sistema vulnerable, facil de explotar. La idea es atraer atacantes a este sistema para poder ver que hacen; de este modo podemos conocer el "modu soperandi".

El proyecto Honepot no solo analiza "tarros de miel", sino que también analiza Darknets (redes oscuras), es decir, redes en las cuales no debería existir ningún trafico, o el trafico solo debe ser privado, bien porque no hay servicios en ellas y ellas no acceden a servicios, bien porque son redes coorporativas que no tienen uso desde el internet global.

IANA es la organización encargada en distribuir las IPs en el mundo.

Una darknet sería, por ejemplo, el rango de IPs "179/8", ya que no están en uso y por tanto no debería nadie de acceder a esta red, sin embargo, existen automatismo que no comprueban esto, e intentan explotar todas las IPs que encuentren accediendo a sitios que no son conocidos o públicos.

Por ejemplo si una empresa de hosting piene 100 IPs de las cuales 50 no están en uso no debería recibir comunicación alguna con estas IPs. Del mismo modo si nosotros tenemos una web "ejemplo.com" con un subdominio "honey.ejemplo.com" pero esta url no es pública, sería lógico pensar que nadie puede obtener esta dirección y por tanto solo nosotros accederemos a este equipo, pero esta dirección puede ser recogida por malware, servidores DNSs, ... y por tanto pude ser accedida por alguien no autorizado.

Para colaborar con el proyecto Honeypot podemos poner nuestro propio "enlace oscuro". Yo he instalado uno, el un subominio y para que los robots y sistemas automatizados accedan a ellos tenemos que realizar algún truco que oculte estas direcciones a todo aquel que no sea una máquina.

Por ejemplo:
<a href="http://hp.rollanwar.net/feverishvirgin.php"><!-- awestruck-mosaic --></a>
<a href="http://hp.rollanwar.net/feverishvirgin.php"><img src="awestruck-mosaic.gif" height="1" width="1" border="0"></a>
<a href="http://hp.rollanwar.net/feverishvirgin.php" style="display: none;">awestruck-mosaic</a>
<div style="display: none;"><a href="http://hp.rollanwar.net/feverishvirgin.php">awestruck-mosaic</a></div>
<a href="http://hp.rollanwar.net/feverishvirgin.php"></a>
<!-- <a href="http://hp.rollanwar.net/feverishvirgin.php">awestruck-mosaic</a> -->
<div style="position: absolute; top: -250px; left: -250px;"><a href="http://hp.rollanwar.net/feverishvirgin.php">awestruck-mosaic</a></div>
<a href="http://hp.rollanwar.net/feverishvirgin.php"><span style="display: none;">awestruck-mosaic</span></a>
<a href="http://hp.rollanwar.net/feverishvirgin.php"><div style="height: 0px; width: 0px;"></div></a>

Todos estos enlaces no son vistos por un usuario normal, por tanto quien acceda desde un navegador web no verá nada, sin embargo los robots analizan este código y siguen el enlace. De este modos podemos recopilar direcciones de robots y posibles ataques automáticos.

También podemos donar servidores de correo.

De este modo podemos crear una dirección de correo como "aversicaes@mail.rollanwar.net" o cualquier otra cullo fin es recibir correo no deseado, dado que esta dirección no existe. Cuando donamos un servidor de correo este aceptará todos los correos.

Más Info:
http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml

Stop Spam Harvesters, Join Project Honey Pot

18 de abril de 2010

Redes publicas en España

España como todos los países posé una infraestructura pública (Gestionada por Red.es) para Internet que permite a las distintas administraciones y empresas conectarse con el resto del mundo y entre sí.

La principal red española es RedIRIS.

Cito:
RedIRIS es la red académica y de investigación española y proporciona servicios
avanzados de comunicaciones a la comunidad científica y universitaria nacional.
Está financiada por el Ministerio de Ciencia e Innovación, e incluida en su
mapa de Instalaciones Científico Tecnológicas Singulares. Se hace cargo de su
gestión la entidad pública empresarial Red.es, del Ministerio de Industria,
Turismo y Comercio.

A continucación podéis ver el mapa de red de RedIRIS

Os recuerdo que esta infraestructura es la relativa a RedIRIS y que no tiene que ver con las redes privadas que seguramente sean más extensas, y que abría que analizar por separado, para ver el impacto real sobre la velocidad final del usuario.

Existen dos nodos españones de intercambio, Espanix y Catnix que interconectan la red pública con nodos privados.

Para poder ver esto desde un punto de vista de los nodos de red (los enrrutadores de internet) podemos visitar las gráficas que genera robtex sobres estos nodos. El Nodo de RedIRIS está identificado como AS776, el de Espanix como AS6895 y Catnix como AS13041.

No solo la comunidad autónoma de Cataluña gestiona su infraestructura de red, la comunidad Andaluza tambien gestiona su red. No he podido encontrar otras comunidades que gestionen sus redes, si sabéis de alguna otra os invito a que comentéis este post.

Pero esta red pública se conecta con otros nodos públicos y privados que permiten la interconexión con el resto del mundo.


Las conexiones internacionales que tiene españa con el resto del mundo son:
Con América por Panamá y Brasil (622Mbps).
Con Africa por Argelia (155Mb).
Con Asia por India (2,5Gbps).
Con Europa por Portugal (10Gbps), Italia (10Gbps), Francia (10Gbps) y Suiza (Fibra oscura).

Documentación:
Redes Nacionales
Conexiones Europeas
Conexiones Internacionales
Conexiones en el mediteraneo
Conexiones con Suramérica

13 de febrero de 2010

Generación dinámica de imagenes en PHP

PHP es un lenguaje de programación que nos permite generar imágenes de forma dinámica.

La generación de imágenes dinámicas puede ser muy util para hacer Captchas, pero en el ejemplo del código a continuación vamos ha ver varias de las funciones que creo más interesantes para esto.
Header("Content-type: image/jpeg");
//Obtenemos la imagen de fondo
$img_fondo = imagecreatefromjpeg("fondo.jpg");

//Obtenemos la imagen para insertar
$img = imagecreatefromjpeg('img.jpg');
$claridad = 100;
imagecopymerge($img_fondo, $img, 40, 40, 0, 0, imagesx($img), imagesy($img), $claridad);

//Escribiendo en texto plano
$texto = "Esto es un texto sin Fuente";
$orange = imagecolorallocate($img_fondo, 220, 210, 60);
$mitad = (imagesx($img_fondo)-7.5 * strlen($texto))/2;
imagestring($img_fondo,5,$mitad,80,$texto,$orange);

//Escribiendo en texto con fuente
$font = './fuente.ttf';
$tam = 20;
$rotado = 0;
$texto = "Text TTF";
$mitad = (imagesx($img_fondo)-7.5 * strlen($texto))/2;
imagettftext($img_fondo, $tam, $rotado, $mitad, 120, $orange, $font, $texto);

imagejpeg($img_fondo);
imagedestroy($img_fondo);

Este código dá como resultado algo similar a lo siguiente:
Imagen generada con el codigo anterior

Podeis mirar más información en la web de PHP

16 de enero de 2010

Arquitectura de Android

Android es un sistema operativo diseñado por capas.

Android usa el Kernel de Linux 2.6 para comunicarse con la capa de Hardware, esto permite a Android ser compatible con muchos de los drivers creados para linux facilitando de este modo ciertos desarrollos. Permite también facilitar la creación de dispositivos de todo tipo (por ejemplo el e-Book Nook o enTourage eDGe corre un Android).

Sobre el kernel de Linux Android contiene ciertas herramientas, servicios y librerías que permiten dar más potencia al sistema (por ejemplo SQLite o OpenGL).

A la par de estas librerías y ayudandose de ellas existe la maquina virtual Dalvik que ejecuta fichero .dex empaquetados en un .apk (compresión en formato zip, similar al usado por java con los .jar); además Dalvik permite traducir las .class de JAVA a .dex usando la herramienta "dx".

Sobre estas tres capas existe un Framework que se encarga de gestionar las distintas llamadas que realicen nuestros programas.

Dada esta arquitectura un programador podría crear programas en C (por ejemplo) compilados para linux ARM (procesador usado en los moviles) que correría baja el núcleo. También podría crear un programa dex o java que corriera sobre la máquina virtual Dalvik. Por ultimo podría crear un programa que use el framework.

system-architecture

A continuación voy a explicar un poco más como funciona la principal funcionalidad usada para el desarrollo de aplicaciones en Android, que es la última capa explicada, el Framework.

Cuando creamos una aplicación podemos cuatro tipos de clases básicas distintas que podemos crear según el objetivo de estas. La arquitectura de Android define estos cuatros elementos de los que podemos heredar:

  • Activities:
    Toda clase que como consecuencia de instanciarla implique una impresión por pantalla. En un programa lector de rss sería la pantalla donde lista los elementos nuevos por ejemplo.

  • Services:
    Un servicio sería todo proceso que corre sin necesidad de usar un interfaz gráfico. Siguiendo con el ejemplo de antes un servicio sería el proceso que se encarga de ir comprobando cada X tiempo si hay o no algo nuevo en el RSS.

  • Intent:
    Es la interpretación abstracta de una acción. Semejante a un evento o interrupción. (Un click, pulsación en pantalla o pulsación de un botón)

  • Content providers & Broadcast receivers
    Este es un aspecto novedoso y jugoso de Android, bajo mi punto de vista. Está enfocado a la reutilización de código en una aplicación, por tanto una aplicación puede tener ciertos elementos que sean llamados por cuales quieran otras aplicaciones para que realice una acción.
    La diferencia entre "Content providers" y "Broadcast receivers" es que los primero trabajan sobre URIs, es decir sobre tipos de datos MIME, y los segundos trabajan a nivel de "Intent". En el ejemplo uno sería llamado cuando se encontrara el valor "application/rss+xml" y otro cuando se lanza un "Intent".


Fuentes:

http://www.dalvikvm.com/
http://developer.android.com/guide/

6 de enero de 2010

Un poco de Android

Recientemente por un incidente con un pantalón un poco ajustado he perdido parte de la pantalla de mi ex-Nokia N82. Es la segunda vez que pasa, así que he decidido pillarme un nuevo móvil.

Mi nuevo móvil es un HTC Tatoo con un Android 1.6 corriendo como sistema operativo. Yo hubiera preferido haber pillado un HTC Hero, pero el presupuesto no da.

He pillado un Android para poder hacer algún programilla y probar si alguna aplicación que ya programé para mi antiguo Nokia.

En el tema de seguridad solo he podido encontrar dos vulnerabilidades en este sistema y ambas han ocurrido en la versión 1.5.

¿Que es Android?


Android es un sistema operativo para móviles basado en el kernel de Linux. Inicialmente lo desarrolló Google pero luego ha pasado a pertenecer a la Open Handset Alliance (formada por alrededor de 50 empresas del sector). Android trabaja con dos licencias, GPLv2 para componentes como los parches del kernel y Apache 2 para las aplicaciones ya que permite su comercialización de manera más simple.

Android está pensado para trabajar de manera similar a un Framework que además permite la intercomunicación entre distintas aplicaciones usando un interfaz propio para cada aplicación. El modelo usado por Android permite que los distintos programas informen al resto de que capacidades tienen y así el resto de programas pueden usarlas sin necesidad de implementarlas. El mecanismo es similar al usado por las DLLs.

  • Versiones:


Existen varias versiones de Android que podemos encontrar en el mercado, según fuentes oficiales se distribuyen del siguiente modo según dispositivos:



Para poder diferenciar las distintas versiones

Esisten distintos Niveles de API según las versiones, de este modos podemos crear un programa con escalable para distintas versiones.
Para Android 2.0.1 la API 6, para 2.0 API 5, parar 1.6 API 4, para 1.5 API 3, para 1.1 API 2 y para 1.0 API 1

Primeras impresiones


Bueno lo primero que destacaría de Android, por lo menos de la versión que tengo en la mano es que el interfaz es un poco complicado de manejar, aún que recueda mucho al de iPhone.

No contiene un gestor de directorios integrado. Personalmente a mi me gusta poder moverme por los directorios y buscar cosas.

Creo que el recolector de basura usado por Android podría mejora un poco, de hecho existen aplicaciones que realizan las funciones típicas de un recolector.

Más Información:


http://www.openhandsetalliance.com
http://www.android.com
http://code.google.com/intl/es-ES/android

7 de noviembre de 2009

Busquedas optimizadas con Google y Bing

Hoy en día dada la gran cantidad de información que existe en Internet es indispensable tener mecanismos que nos faciliten la búsqueda de información en la web.
En la actualidad existen gran cantidad de buscadores, que nos ayudan en esta labor; pero sin duda dos de los más potentes en la actualidad son Google y Bing.


Estos buscadores contienen una serie de palabras reservada que se pueden usar para realizar búsquedas más precisas. Según el buscador que usemos soportará unas u otras palabras.



  • (G) allinanchor:WORDS
    Busca paginas con un enlace que contenga todas esas palabras.

  • (G) allintext:WORDS
    Busca paginas que contenga todas esas palabras.

  • (G) allintitle:WORDS
    Busca paginas cuyo titulo(<title>) contenga todas esas palabras.

  • (G) allinurl:WORDS
    Busca paginas cuya url contenga todas esas palabras.

  • (G) cache:URL
    Muestra todos los datos de la cache de google sobre una url.

  • (B) contains:FILE_TYPE
    Muestra las paginas con un enlace que contenga el tipo de fichero especificado.

  • (G) define:WORD
    Busca una pagina donde aparezca el significado de la palabra.

  • (G, B) filetype:FILE_TYPE
    Muestra todos los ficheros del tipo indicado

  • (G, B) inanchor:WORD
    Busca paginas con un enlace que contenga esa palabra.

  • (B) inbody:WORD / (G) intext:WORD
    Busca paginas que contengan esa palabra en el texto.

  • (G) id / info:URL
    Muestra información sobre la url indicada.

  • (G, B) intitle:WORD
    Busca paginas cuyo titulo(<title>) contengan esa palabra.

  • (G) inurl:WORD
    Busca paginas cuya url contenga esa palabra.

  • (B) ip:IP
    Busca paginas cuya ip sea la indicada.

  • (B) language:CODE
    Busca paginas cuyo idioma sea el indicado.

  • (B) loc / location:CODE
    Busca paginas alojadas en la región indicada.

  • (G) link:URL
    Busca paginas que contengan un enlace a la url.

  • (G) phonebook:PERSONA
    Busca todos los datos sobre la persona indicada

  • (B) prefer:WORD
    Busca con más prioridad este termino

  • (G) related:URL
    Busca paginas relacionadas con la url indicada.

  • (G, B) site:URL
    Busca en la url indicada.

  • (B) feed:WORD
    Busca sistemas de suscripción RSS o Atom relacionados con la palabra.

  • (B) hasfeed:WORD
    Busca una pagina donde se encuentra un enlace a una suscripción RSS o Atom relacionada con la palabra.

  • (B) url:URL
    Muestra si está indexada la url.


Nótese que allintitle y intitle son iguales salvo porque allintitle soporta múltiples palabras.


Además de las palabras reservada existen ciertos caracteres que nos permiten mejorar la búsqueda.



  • (G, B) +
    Búsqueda de la palabra exacta.

  • (G, B) " "
    Búsqueda exacta de la frase.

  • (B) ()
    Agrupa.

  • (G, B) AND / &
    Concatena búsquedas.

  • (G, B) NOT/ -
    Excluye términos.

  • (G, B) OR / |
    Una u otra palabra.

  • (G) ~
    Busca también las palabras similares.

  • (G) *
    Comodín usado para sustituir por palabras.


Como se puede observar existen muchas más palabras en Google que en Bing, lo que hace que este buscador sea usado en gran cantidad de ocasiones para buscar vulnerabilidades.


Referencias:
Palabras reservadas de Bing
Busqueda avanzada en Bing
Google guide
Soporte google
Información basica de busqueda en Google

29 de septiembre de 2009

¡Hola, mundo!

Este es el primer post de espero, muchos.

En este blog pretendo que se escriba sobre varias temáticas. Las pricipales temáticas que me gustaría abordar son referentes a la informática en genera, a la seguridad en informática en particular y al rol.