Aquí hay 5 formas en que los piratas informáticos piratean el software

Aquí hay 5 formas en que los piratas informáticos piratean el software (y cómo evitarlo)

El mundo perderá 10,5 billones de dólares al año por delitos cibernéticos en 2025. Es una cantidad de dinero increíble, pero ¿cómo se producen estos delitos cibernéticos? Con cientos de lenguajes de programación, miles de marcos de trabajo y MILLONES de líneas de código… siempre hay un error que puede resultar costoso.

El software se parece mucho a nosotros, los humanos: versátil, inteligente… PERO profundamente inseguro.

En este artículo, voy a describir 5 formas en las que el software puede ser vulnerable y ser atacado por aquellos que tienen intenciones que pueden ser cuestionables.

1.) Inyección SQL

Una de las fuentes centrales de verdad para cualquier aplicación es su base de datos. Bases de datos es un término muy amplio, incluso hay muchos tipos diferentes de bases de datos. Sin embargo, la forma principal de comunicarse con esta base de datos es a través de un lenguaje llamado SQL o lenguaje de consulta estructurado para abreviar. Una aplicación común tendría una arquitectura como esta.

Un usuario en un sitio web tendrá un formulario que enviará la información al servidor y luego el servidor toma esa entrada del usuario y la obtiene de la base de datos que luego se devuelve al cliente. Profundicemos un poco más.

Digamos que nuestro formulario tiene una barra de búsqueda donde un usuario puede buscar nombres en nuestra base de datos. Cuando inserto el nombre “Lewis” en la base de datos, la información se envía a la base de datos. Entonces tengo que escribir el código del servidor para hablar con la base de datos para obtener los resultados para el usuario. Entonces creo esta declaración SQL donde busco

la tabla del usuario donde el nombre es igual a la entrada de esta manera. Entonces, cada vez que ingrese:

  • Lewis
  • Sally
  • Will

Buscará esos valores. Genial.

No hay absolutamente NADA malo con esta declaración, ¿leíste el título? Realmente no necesito anticipar esto, ¿verdad? ¿Qué sucede si en lugar de poner otro nombre, pongo una determinada declaración SQL? Si pongo OR (1=1). Extrae toda la base de datos debido al valor verdadero 1=1. Esto es inyección SQL y es extremadamente peligroso.

En 20017, 7-Eleven perdió más de 4,2 millones de números de tarjetas de débito y crédito debido a un ataque de inyección SQL. Hay formas sencillas de evitar este ataque. 1. Sanitiza tus entradas. Sanitizar puede significar muchas cosas, pero esencialmente hace que la entrada de los usuarios se vea como UN tipo de datos y NO uno que pueda afectar tu código. 1. Usa un paquete de mapeo relacional de objetos. Este es un paquete que convierte tus declaraciones SQL en una API fácil de usar. No necesariamente están libres de vulnerabilidades, pero a menudo se mantienen para evitar esto. 1. Establece los permisos correctos para el usuario de tu base de datos. Si configuras al usuario de la base de datos para que lea una cantidad muy limitada de datos, incluso si realiza una inyección SQL, no podrá acceder a los datos críticos.

2.) Secuencias de comandos entre sitios
¿Alguna vez has notado que casi todas las aplicaciones que usas hoy en día están en la web? Probablemente es como estás viendo mi hermoso rostro en tu pantalla ahora mismo. En la web, los sitios web se organizan y presentan utilizando un lenguaje de marcado llamado HTML. Si haces clic derecho y lo inspeccionas, puedes verlo en cualquier sitio web que visites.

HTML está compuesto de etiquetas que organizan el texto en tu pantalla… pero ¿cómo puede el texto en una etiqueta hacerte daño? Bueno, esa es una forma. La respuesta real es la etiqueta que ejecuta el código JavaScript que está dentro de ella.

Digamos que hice un blog que era bastante popular y permitía que cualquiera comentara… Quiero que todos tengan un poco de jazz en sus comentarios, así que permito a mis usuarios diseñar sus comentarios con HTML. Después de regresar, veo una alerta que no recuerdo haber puesto allí… Ok, no es gran cosa… espera… ¿por qué todo se ve tan raro?

Dado que permití a los usuarios insertar HTML, pudieron agregar una etiqueta que puede hacer cosas como obtener toda tu información de cookies o almacenamiento local, cambiar comentarios o potencialmente contactar a mi servidor.

Esto se ejecutó porque se asumió que el sitio web al que iba era confiable. En 2005, un usuario de MySpace llamado Samy escribió una etiqueta que automáticamente te agregaría como amigo y te agregaría a la sección de “héroes”. Este fue un efecto exponencial que reunió a más de 1 millón de amigos en 24 horas.

Hay formas de evitar esto como 1 Evitar que tus usuarios usen marcado Restringir a tus usuarios el uso de etiquetas confiables. Muchos marcos que podrías usar probablemente ya tengan esto cubierto. 1 Protege tus cookies Muchas aplicaciones web vinculan las cookies de sesión a la dirección IP del usuario que inició sesión originalmente, luego solo permiten que esa IP use esa cookie.

3.) DDoS
Probablemente hayas oído hablar de este ataque antes, ya que es posible que hayas intentado visitar un sitio o un juego que acaba de lanzarse y te hayas visto abrumado por la cantidad de usuarios.

Sin embargo, esa experiencia se puede utilizar de forma maliciosa. Un ataque de denegación de servicio directo es una forma maliciosa de interrumpir el tráfico de un servidor al sobrecargarlo como si fuera tu propio tráfico. Imagina que intentas girar en una intersección y pasan millones de coches.

Lo que hace que este ataque sea difícil de combatir es el aspecto distribuido del ataque: a veces, estas computadoras son bots u otras computadoras que se controlan de forma remota. Esto hace que sea difícil para el servidor identificar quiénes son los impostores entre nosotros.

Un DDoS no es una vulnerabilidad en sí, pero a menudo se utiliza como una forma de descubrir vulnerabilidades o explotarlas. Por lo general, este tipo de ataques son complejos y se pueden aislar en función de la capa a la que se dirigen. Hay muchas formas creativas de llevar a cabo ataques DDoS, por lo que es muy difícil estar 100% a prueba de balas contra ellos, sin embargo, existen medidas preventivas. En 2018, Github sufrió un ataque DDoS que registró 1,35 terabits por segundo durante 20 minutos… lo que significa que se enviaron 202 terabytes… Eso es como enviar 540 millones de imágenes en 20 minutos… ¡vaya! Hay dos cosas que puedes hacer para asegurarte de que estás al menos preparado para algo así.

1 Conocer el tráfico de tu red. ¿Cuánto volumen recibes normalmente e intentar detectar cualquier tráfico sospechoso que pueda provenir de direcciones IP aleatorias? 2. Aprovechar las plataformas en la nube para equilibrar la carga de tu tráfico. Por supuesto, un centro de datos gigante será mejor que tu pequeño y miserable servidor.

4.) Log4J
Este se descubrió recientemente y fue una BOMBA nuclear en Internet. Log4J es una utilidad de registro para el lenguaje de programación Java. Se utiliza para registrar información que los desarrolladores pueden ver en sus aplicaciones. Cuando se anunció que había una vulnerabilidad MORTAL que lo afectaba… la gente se asustó.

Esto era algo que podría afectar a MILLONES… quizás a MILES DE MILLONES… ya que a Java le gusta restregárnoslo en la cara y todo eso. Java tiene algo llamado Interfaz de nombres y directorios de Java (JNDI, por sus siglas en inglés) que te permite obtener recursos de otro servidor. Al desarrollar una aplicación, esto resulta muy útil porque puedes descargar rápidamente código que puedes conectar a tu aplicación. Similar a la inyección SQL y al Cross Site Scripting. Si un usuario ingresa una búsqueda JNDI como entrada y el registrador la registra, ejecutará esa búsqueda donde un hacker podría extraer sus

recursos y ejecutarla en tu aplicación. Cuando se descubrió esto, hubo 10 millones de intentos por hora para explotar esta vulnerabilidad. Lo más importante que puedes hacer ahora para protegerte contra esto es actualizarte a la versión más reciente de Log4J. De esa manera, estarás actualizado.

5.) Falsificación de solicitud entre sitios
Digamos que tengo un sitio web increíble donde puedo agregar y eliminar imágenes de gatos realmente geniales que me gustan. También tengo una función para permitir que la gente comente sobre lo geniales que pueden ser estos gatos. La forma en que programé esto en el backend es que si envío una solicitud POST a la URL coolcats.com/delete-cat con mi cookie adjunta para la autenticación y la identificación del gato que quiero eliminar, esto significa que es 100% seguro, ¿verdad? … ¿Aún caíste en mi truco de presagio? Cuando hago clic en un enlace que estaba en los comentarios, vuelvo a mi aplicación y veo que TODOS mis gatos se han ido… ¿por qué? En el enlace en el que hice clic en los comentarios, había una solicitud oculta realizada al punto final que he creado que, dado que ya he iniciado sesión, incluía automáticamente el token de autenticación.

Me han vuelto a engañar. En 2020, TikTok se vio afectado por una vulnerabilidad que permitía a los atacantes enviar mensajes a otros usuarios de TikTok. TikTok terminó solucionando este problema en 3 semanas, pero se produjeron muchos daños. Este tipo de ataque todavía ocurre hoy en día, pero se puede prevenir fácilmente. El más común son los tokens anti CSRF. Estos son tokens que genera aleatoriamente tu servidor cuando se lo solicitas, por lo que cuando envías el formulario, debes proporcionar el token correcto. La mayoría de los marcos de backend lo admiten.

La web puede ser un lugar aterrador, pero si piensas constantemente en la seguridad, lo más probable es que estés en buenas manos.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *