SlideShare una empresa de Scribd logo
Ataques de
inyección SQL:
qué son y cómo
protegerse
La mayoría de las aplicaciones web desarrolladas hoy en día hacen uso de
una base de datos para ofrecer páginas dinámicas y almacenar información
tanto de los usuarios como de la propia herramienta, datos a los que se
accede por medio del lenguaje SQL, un lenguaje para interaccionar con
bases de datos relacionales.
El uso de este tipo de lenguaje ha traído consigo la aparición de una de las
vulnerabilidades más peligrosas a la que nos podemos enfrentar. Nos
estamos refiriendo al ataque por inyección de código SQL, una
vulnerabilidad que no sólo pone en riesgo la integridad de la aplicación, sino
de todos los datos almacenados de los usuarios que la utilicen, y que se
produce cuando no se filtra de forma correcta la información enviada por los
usuarios.
A continuación, Supra te presentará todo lo que debes saber sobre los
ataques de inyección SQL, desde su definición hasta métodos de
protección.
¿Qué es el ataque por inyección SQL?
Consiste en la inserción de código SQL por medio de los datos de entrada
desde la parte del cliente hacia la aplicación. Es decir, por medio de la inserción
de este código el atacante puede modificar las consultas originales que debe
realizar la aplicación y ejecutar otras totalmente distintas con la intención de
acceder a la herramienta, obtener información de alguna de las tablas o borrar
los datos almacenados, entre otras muchas cosas.
Dentro de este tipo de ataques, nos podemos encontrar el denominado“Blind
SQL Injection”, traducido al español como “Ataque a ciegas por inyección de
SQL”, que se da cuando en una página web no aparece ningún mensaje de
error al ejecutar una sentencia SQL errónea, por lo que el atacante va
realizando pruebas hasta dar con el nombre de los campos o tablas sobre los
que poder actuar.
Entre las bases de datos susceptibles a este tipo de ataques nos encontramos
MySQL, Oracle, Postgres o MS SQL.
Consecuencias de la inyección SQL
● Omisión de autenticación: Si la forma de autenticación de la
aplicación es vulnerable a la inyección de SQL, el usuario puede
iniciar sesión en la aplicación sin proporcionar las credenciales
adecuadas.
● Obtener acceso a datos no autorizados: A través de la inyección de
SQL, un usuario puede obtener acceso a datos que solo personal
autorizado debería.
● Manipulación de datos no autorizada: La inyección de SQLtambién
puede permitir que un usuario de la aplicación inserte, modifique o
elimine datos que no esté autorizado. Esto hace que la integridad de
los datos se vea comprometida.
● Obtenga privilegios administrativos: la inyección de SQLpodría permitir a
un atacante o un usuario malintencionado obtener privilegios
administrativos en la base de datos o en el servidor de la base de datos y,
en última instancia, realizar acciones como cerrar la base de datos. Esto
afecta su disponibilidad y, en consecuencia, la falta de disponibilidad de la
aplicación.
Medidas a tomar para protegerse de las inyecciones
SQL
Veamos a continuación algunos consejos para evitar sufrir el ataque por
inyección de código SQL en nuestros desarrollos:
a) Escapar los caracteres especiales utilizados en las consultas
SQL
Al hablar de “escapar caracteres” estamos haciendo referencia a añadir la
barra invertida “” delante de las cadenas utilizadas en las consultas SQL
para evitar que estas corrompan la consulta. Algunos de estos caracteres
especiales que es aconsejable escapar son las comillas dobles (“), las
comillas simples (‘) o los caracteres x00 o x1a ya que son considerados
como peligrosos pues pueden ser utilizados durante los ataques.
b) Delimitar los valores de las consultas para mitigar ataques de
inyección SQL
Aunque el valor de la consulta sea un entero, es aconsejable delimitarlo
siempre entre comillas simples. Una instrucción SQL del tipo:
SELECT nombre FROM usuarios WHERE id_user = $id
Será mucho más fácilmente inyectable que:
SELECT nombre FROM usuarios WHERE id_user = ‘$id’
Donde $id es un número entero.
c) Verificar siempre los datos que introduce el usuario
Si en una consulta estamos a la espera de recibir un entero, no confiemos en
que sea así, sino que es aconsejable tomar medidas de seguridad y realizar la
comprobación de que realmente se trata del tipo de dato que estamos
esperando. Para realizar esto, los lenguajes de programación ofrecen
funciones que realizan esta acción, como pueden ser ctype_digit () para saber
si es un número o ctype_alpha () para saber si se trata de una cadena de
texto en el caso del lenguaje PHP.
d) Asignar mínimos privilegios al usuario que conectará con la
base de datos
El usuario que utilicemos para conectarnos a la base de datos desde nuestro
código debe tener los privilegios justos para realizar las acciones que
necesitemos. No utilizar nunca un usuario root con acceso a todas las bases
de datos ya que de esta forma estaremos dando facilidades a los hackers
para que puedan acceder a toda la información.
e) Programar bien para evitar ataques de inyección SQL
Aunque pueda parecer una tontería, no hay mejor medida para evitar este tipo
de ataques que realizar una buena programación, poniendo en práctica las
necesidades básicas y el interés para desarrollar una aplicación totalmente
segura.
Ahora que ya sabes cómo es que funciona un ataque de inyección SQL y
como minimizar este tipo de ataques con buenas prácticas a nivel de
programación, es importante recalcar que también incorporar equipos de
seguridad perimetral como por ejemplo un Firewall ayudaría a mitigar este tipo
de ataques, en el siguiente video se muestra como un ataque SQL inyección
es mitigado por un Fortiweb ( equipo perimetral de la familia Fortinet ).
SUPRA maximiza la seguridad de redes para que tus comunicaciones de
datos e incrementa la productividad de tu red interna a través de productos
Fortinet. Si deseas más información sobre soluciones Fortinet, nuestros
productos y servicios puedes contactarnos a través del formulario de contacto
y con gusto te responderemos a la brevedad.
Enlace:
https://www.supra.com.pe/blog/ataques-de-inyeccion-sql-que-son-y-como-protegers
e/
Ataques de inyección SQL: qué son y cómo protegerse

Más contenido relacionado

PPT
Inyeccion sql
PDF
Android Zararlı Yazılım Analizi ve Güvenlik Yaklaşımları
DOCX
PORT TARAMA ve KEŞİF ÇALIŞMALARI
PDF
SQL injection: Not Only AND 1=1 (updated)
PDF
Taller de MySQL (DDL)
PDF
Metasploit El Kitabı
PPTX
Sockets
PPT
Sql injection
Inyeccion sql
Android Zararlı Yazılım Analizi ve Güvenlik Yaklaşımları
PORT TARAMA ve KEŞİF ÇALIŞMALARI
SQL injection: Not Only AND 1=1 (updated)
Taller de MySQL (DDL)
Metasploit El Kitabı
Sockets
Sql injection

La actualidad más candente (20)

PDF
İleri Seviye Ağ Güvenliği Lab Kitabı
PPTX
SQL INJECTION
PDF
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
PDF
Introduction à pl/sql
PDF
sqlmap internals
PDF
TCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
PDF
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
PDF
Ağ Protokollerine Yönelik Adli Bilişim Analizi
PPTX
BTRisk Adli Bilişim Eğitimi Sunumu
PDF
Sızma Testlerinde Armitage Kullanımı
PDF
Hardware trojan detection technique using side channel analysis for hardware ...
PDF
Introduction to Web Application Penetration Testing
PDF
Pl/sql - interaction avec la base de données & structures de contrôle
PDF
Kali ile Linux'e Giriş | IntelRAD
PDF
Introduction aux-sockets
PDF
Introduction aux réseaux informatiques
PDF
WEBSOCKET Protokolünün Derinlemesine İncelenmesi
DOCX
Foro tematico 1 Elementos de calidad de software
PDF
Expanding the control over the operating system from the database
PPTX
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
İleri Seviye Ağ Güvenliği Lab Kitabı
SQL INJECTION
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Introduction à pl/sql
sqlmap internals
TCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Ağ Protokollerine Yönelik Adli Bilişim Analizi
BTRisk Adli Bilişim Eğitimi Sunumu
Sızma Testlerinde Armitage Kullanımı
Hardware trojan detection technique using side channel analysis for hardware ...
Introduction to Web Application Penetration Testing
Pl/sql - interaction avec la base de données & structures de contrôle
Kali ile Linux'e Giriş | IntelRAD
Introduction aux-sockets
Introduction aux réseaux informatiques
WEBSOCKET Protokolünün Derinlemesine İncelenmesi
Foro tematico 1 Elementos de calidad de software
Expanding the control over the operating system from the database
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
Publicidad

Similar a Ataques de inyección SQL: qué son y cómo protegerse (20)

PPTX
SQL-INJECTION ciberseguridad y buenas practicas y otras areas de ti para su d...
PPTX
Inyección sql1
PPTX
Inyecciones SQL
PPT
INYECCION SQL(SEGURIDAD DE LA INFORMACION)
PDF
Inyección_sql
PDF
Ataques a-bases-de-datos
ODP
Seguridad Base de Datos sql injection v1.0
DOCX
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
PDF
Ataques a-bases-de-datos
PPTX
Mejores prácticas desarrollo de base de datos
DOCX
Gestión y seguridad informatica act. 2
PPTX
Seguridad en bases de datos
PDF
Seguridad sql injection
PPT
Seguridad En Programación
DOCX
Amenaza a las bases de datos
PPTX
1 sq linjection
PDF
Webinar Gratuito: "Inyección SQL"
PPTX
Inyeccion de codigo
PDF
Base de datos
PDF
Evaluación de Ataques tipo Inyección SQL a Ciegas a las Aplicaciones Web util...
SQL-INJECTION ciberseguridad y buenas practicas y otras areas de ti para su d...
Inyección sql1
Inyecciones SQL
INYECCION SQL(SEGURIDAD DE LA INFORMACION)
Inyección_sql
Ataques a-bases-de-datos
Seguridad Base de Datos sql injection v1.0
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
Ataques a-bases-de-datos
Mejores prácticas desarrollo de base de datos
Gestión y seguridad informatica act. 2
Seguridad en bases de datos
Seguridad sql injection
Seguridad En Programación
Amenaza a las bases de datos
1 sq linjection
Webinar Gratuito: "Inyección SQL"
Inyeccion de codigo
Base de datos
Evaluación de Ataques tipo Inyección SQL a Ciegas a las Aplicaciones Web util...
Publicidad

Más de Supra Networks (20)

PPTX
Ciberseguridad para tu smartphone: todo lo que debes saber
PPTX
Ataques cibernéticos: ¿qué puede hacer un hacker con tu computadora?
PPTX
Por qué la ciberseguridad es importante para tu negocio
PDF
Ataques cibernéticos: ¿Qué es el eavesdropping y cómo se previene?
PDF
Seguridad informática: ¿Qué es el Spoofing?
PDF
Seguridad informática: ¿Qué son los ataques Backdoor?
PDF
Ataques cibernéticos: pasos para evitar el phishing de manera correcta
PPTX
Phishing, uno de los ataques cibernéticos más populares
PPTX
¿Se pueden evitar los ataques DDoS?
PPTX
Por qué los hoteles necesitan internet dedicado
PDF
Conoce todo sobre la zona desmilitarizada (DMZ)
PDF
Los fundamentos del cableado estructurado
PDF
Redes más seguras en la era de la ciberseguridad
PDF
Las 3 principales vulnerabilidades de seguridad Wi-Fi
PDF
4 formas de optimizar el diseño de la experiencia del usuario
PDF
CAPEX y OPEX: Diferencias y beneficios
PDF
¿Por qué es necesario el Internet para empresas?
PDF
¿Cómo facilitar el acceso wifi para los invitados?
PDF
5 maneras para asegurar tu red wifi
PDF
Cómo proteger mi organización del ataque de un Ransomeware por Fortinet
Ciberseguridad para tu smartphone: todo lo que debes saber
Ataques cibernéticos: ¿qué puede hacer un hacker con tu computadora?
Por qué la ciberseguridad es importante para tu negocio
Ataques cibernéticos: ¿Qué es el eavesdropping y cómo se previene?
Seguridad informática: ¿Qué es el Spoofing?
Seguridad informática: ¿Qué son los ataques Backdoor?
Ataques cibernéticos: pasos para evitar el phishing de manera correcta
Phishing, uno de los ataques cibernéticos más populares
¿Se pueden evitar los ataques DDoS?
Por qué los hoteles necesitan internet dedicado
Conoce todo sobre la zona desmilitarizada (DMZ)
Los fundamentos del cableado estructurado
Redes más seguras en la era de la ciberseguridad
Las 3 principales vulnerabilidades de seguridad Wi-Fi
4 formas de optimizar el diseño de la experiencia del usuario
CAPEX y OPEX: Diferencias y beneficios
¿Por qué es necesario el Internet para empresas?
¿Cómo facilitar el acceso wifi para los invitados?
5 maneras para asegurar tu red wifi
Cómo proteger mi organización del ataque de un Ransomeware por Fortinet

Último (20)

PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PDF
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
Propuesta BKP servidores con Acronis1.pptx
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
DOCX
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
Estrategia de Apoyo de Daylin Castaño (5).pdf
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
PPTX
Presentación de Redes de Datos modelo osi
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
MANUAL de recursos humanos para ODOO.pdf
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Propuesta BKP servidores con Acronis1.pptx
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
Power Point Nicolás Carrasco (disertación Roblox).pptx
Documental Beyond the Code (Dossier Presentación - 2.0)
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
historia_web de la creacion de un navegador_presentacion.pptx
Estrategia de Apoyo de Daylin Castaño (5).pdf
Diapositiva proyecto de vida, materia catedra
Presentacion de Alba Curso Auditores Internos ISO 19011
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
TRABAJO DE TECNOLOGIA.pdf...........................
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
Presentación de Redes de Datos modelo osi
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO

Ataques de inyección SQL: qué son y cómo protegerse

  • 1. Ataques de inyección SQL: qué son y cómo protegerse
  • 2. La mayoría de las aplicaciones web desarrolladas hoy en día hacen uso de una base de datos para ofrecer páginas dinámicas y almacenar información tanto de los usuarios como de la propia herramienta, datos a los que se accede por medio del lenguaje SQL, un lenguaje para interaccionar con bases de datos relacionales. El uso de este tipo de lenguaje ha traído consigo la aparición de una de las vulnerabilidades más peligrosas a la que nos podemos enfrentar. Nos estamos refiriendo al ataque por inyección de código SQL, una vulnerabilidad que no sólo pone en riesgo la integridad de la aplicación, sino de todos los datos almacenados de los usuarios que la utilicen, y que se produce cuando no se filtra de forma correcta la información enviada por los usuarios. A continuación, Supra te presentará todo lo que debes saber sobre los ataques de inyección SQL, desde su definición hasta métodos de protección.
  • 3. ¿Qué es el ataque por inyección SQL? Consiste en la inserción de código SQL por medio de los datos de entrada desde la parte del cliente hacia la aplicación. Es decir, por medio de la inserción de este código el atacante puede modificar las consultas originales que debe realizar la aplicación y ejecutar otras totalmente distintas con la intención de acceder a la herramienta, obtener información de alguna de las tablas o borrar los datos almacenados, entre otras muchas cosas.
  • 4. Dentro de este tipo de ataques, nos podemos encontrar el denominado“Blind SQL Injection”, traducido al español como “Ataque a ciegas por inyección de SQL”, que se da cuando en una página web no aparece ningún mensaje de error al ejecutar una sentencia SQL errónea, por lo que el atacante va realizando pruebas hasta dar con el nombre de los campos o tablas sobre los que poder actuar. Entre las bases de datos susceptibles a este tipo de ataques nos encontramos MySQL, Oracle, Postgres o MS SQL.
  • 5. Consecuencias de la inyección SQL ● Omisión de autenticación: Si la forma de autenticación de la aplicación es vulnerable a la inyección de SQL, el usuario puede iniciar sesión en la aplicación sin proporcionar las credenciales adecuadas. ● Obtener acceso a datos no autorizados: A través de la inyección de SQL, un usuario puede obtener acceso a datos que solo personal autorizado debería. ● Manipulación de datos no autorizada: La inyección de SQLtambién puede permitir que un usuario de la aplicación inserte, modifique o elimine datos que no esté autorizado. Esto hace que la integridad de los datos se vea comprometida.
  • 6. ● Obtenga privilegios administrativos: la inyección de SQLpodría permitir a un atacante o un usuario malintencionado obtener privilegios administrativos en la base de datos o en el servidor de la base de datos y, en última instancia, realizar acciones como cerrar la base de datos. Esto afecta su disponibilidad y, en consecuencia, la falta de disponibilidad de la aplicación.
  • 7. Medidas a tomar para protegerse de las inyecciones SQL Veamos a continuación algunos consejos para evitar sufrir el ataque por inyección de código SQL en nuestros desarrollos:
  • 8. a) Escapar los caracteres especiales utilizados en las consultas SQL Al hablar de “escapar caracteres” estamos haciendo referencia a añadir la barra invertida “” delante de las cadenas utilizadas en las consultas SQL para evitar que estas corrompan la consulta. Algunos de estos caracteres especiales que es aconsejable escapar son las comillas dobles (“), las comillas simples (‘) o los caracteres x00 o x1a ya que son considerados como peligrosos pues pueden ser utilizados durante los ataques.
  • 9. b) Delimitar los valores de las consultas para mitigar ataques de inyección SQL Aunque el valor de la consulta sea un entero, es aconsejable delimitarlo siempre entre comillas simples. Una instrucción SQL del tipo: SELECT nombre FROM usuarios WHERE id_user = $id Será mucho más fácilmente inyectable que: SELECT nombre FROM usuarios WHERE id_user = ‘$id’ Donde $id es un número entero.
  • 10. c) Verificar siempre los datos que introduce el usuario Si en una consulta estamos a la espera de recibir un entero, no confiemos en que sea así, sino que es aconsejable tomar medidas de seguridad y realizar la comprobación de que realmente se trata del tipo de dato que estamos esperando. Para realizar esto, los lenguajes de programación ofrecen funciones que realizan esta acción, como pueden ser ctype_digit () para saber si es un número o ctype_alpha () para saber si se trata de una cadena de texto en el caso del lenguaje PHP.
  • 11. d) Asignar mínimos privilegios al usuario que conectará con la base de datos El usuario que utilicemos para conectarnos a la base de datos desde nuestro código debe tener los privilegios justos para realizar las acciones que necesitemos. No utilizar nunca un usuario root con acceso a todas las bases de datos ya que de esta forma estaremos dando facilidades a los hackers para que puedan acceder a toda la información.
  • 12. e) Programar bien para evitar ataques de inyección SQL Aunque pueda parecer una tontería, no hay mejor medida para evitar este tipo de ataques que realizar una buena programación, poniendo en práctica las necesidades básicas y el interés para desarrollar una aplicación totalmente segura. Ahora que ya sabes cómo es que funciona un ataque de inyección SQL y como minimizar este tipo de ataques con buenas prácticas a nivel de programación, es importante recalcar que también incorporar equipos de seguridad perimetral como por ejemplo un Firewall ayudaría a mitigar este tipo de ataques, en el siguiente video se muestra como un ataque SQL inyección es mitigado por un Fortiweb ( equipo perimetral de la familia Fortinet ).
  • 13. SUPRA maximiza la seguridad de redes para que tus comunicaciones de datos e incrementa la productividad de tu red interna a través de productos Fortinet. Si deseas más información sobre soluciones Fortinet, nuestros productos y servicios puedes contactarnos a través del formulario de contacto y con gusto te responderemos a la brevedad. Enlace: https://www.supra.com.pe/blog/ataques-de-inyeccion-sql-que-son-y-como-protegers e/