ITcomputer tu blog informático. Cursos, descargas, temas, prácticas. Ofimática, TICS, Soporte, Mantenimiento, Ciencias de la computación, programación, y mucho más!!

ITC - Tecnologías de la Información

Exploro el fascinante mundo de las tecnologías de la información en este espacio personal. Descubre conmigo las últimas tendencias, consejos prácticos y reflexiones sobre el impacto de la tecnología en nuestra vida cotidiana. ¡Acompáñame en este viaje digital!

ITC - Programación

Exploro las últimas novedades en el mundo de las tecnologías de la información y comparto insights sobre el fascinante universo de la programación.

ITC - Redes Informáticas

Aquí, exploraremos a fondo las complejidades y las últimas innovaciones en redes informáticas.

ITC - Redes, Programación, Ciberseguridad, Soporte Técnico y mucho más...

Exploro un amplio espectro que abarca desde redes y programación hasta ciberseguridad y soporte técnico.

Ciberseguridad, Seguridad Informática, Hacking

Ahora, además de abordar temas emocionantes de tecnología, nos aventuramos en el universo de la ciberseguridad.

lunes, 6 de noviembre de 2023

Rootkit y botnet.


Rootkit es una pieza de software instalada y escondida en la computadora de un usuario sin que éste sepa de su existencia. El rootkit puede estar incluido en un paquete de software o haber sido instalado en forma personal por el atacante, aprovechando los puntos vulnerables de una computadora, sobre todo si el usuario “baja” información muy voluminosa de Internet. Un rootkit esconde actividades maliciosas, ya que una vez que está instalado, el atacante puede tener acceso a la información de la computadora, monitorear las actividades del propietario de la computadora, modificar programas y otras actividades sin que nadie lo note.

Además de los rootkit, los atacantes también hacen uso de botnet, un programa que se ejecuta de modo automático en la computadora, el cual tiene su origen en la palabra bot, que proviene de robot. Los botnets se refieren a computadoras que se controlan por una o más fuentes externas.

Durante el ataque con los botnet, el atacante toma el control de una computadora infectándola con un virus u otro intruso maligno, lo que le permite tener acceso a la computadora. Una vez que el atacante ha tomado el control de una computadora, ésta trabaja de manera normal, con lo cual al atacante se le facilitan ciertas operaciones, como la distribución de correos spam, infectar con virus a otras computadoras o realizar ataques de negación de servicio.

Estos ataques son muy difíciles de detectar, tanto el rootkit como el botnet, debido a que los atacantes suelen esconderse muy bien, por lo que pueden pasar inadvertidos para el usuario de la computadora, a menos de que éste busque ciertas actividades; incluso, un buen antivirus no puede detectar, y menos eliminar, estos programas malignos, los cuales son utilizados, entre otras cosas, para modificar información personal del propietario de la computadora, con el fin de dañarlo seriamente, sobre todo en sus cuentas bancarias. Si se considera que un atacante puede tomar el control de una computadora, también puede controlar muchas otras, lo que le permite cometer los mismos delitos (robar y alterar información) con muchos usuarios e incluso vigilar sus actividades en línea.

La mejor forma de evitar convertirse en víctima de alguno de estos tipos de ataque es tener buenos hábitos en lo que se refiere a seguridad informática, ya sea que se trate de una computadora personal o una red; en el caso específico de redes de cómputo, por política de las empresas (para mayor detalle véase capítulo 4, La seguridad física y lógica en redes), corresponde al administrador de la red mantener dichos hábitos. La instalación de un firewall previene esos riesgos de infección, bloqueando el tránsito de información maliciosa antes de que entre a la computadora y limitando la cantidad de información que se envía. También es importante utilizar buenos antivirus y mantenerlos actualizados, pues hay que recordar que los atacantes también actualizan sus virus para facilitar sus ataques.

Por desgracia, es muy difícil que un usuario detecte que ha sido atacado por un rootkit; y aunque logre detectarlo, es muy difícil que consiga eliminar dicha infección, pues una vez que el atacante ha logrado modificar algunos archivos en la computadora del usuario, la eliminación de estos archivos no basta para acabar con el problema y, de hecho, todas las versiones anteriores de ese archivo serán sospechosas de haber sufrido un ataque similar. Una alternativa para solucionar el problema es formatear toda la computadora y reinstalar desde el sistema operativo con un software nuevo. Es tan difícil eliminar una infección de este tipo, que en ocasiones el rootkit se aloja en niveles muy profundos que no se eliminan formateando ni reinstalando el sistema operativo.



Share:

sábado, 26 de agosto de 2023

SNMP PROTOCOL

 


Simple Network Management Protocol se utiliza, habitualmente, para consultar o modificar información en los dispositivos de telecomunicaciones, como routers, switches y firewalls, aunque también existen versiones disponibles para UNIX y Windows. Ofrece una manera fácil de acceder a la información del equipo y a cada una de sus interfaces. La mayoria de las herramientas de monitoreo lo utilizan en mayor o menor medida.

Como el requerimiento principal fue la simplicidad, con el paso de los años fue necesario hacer modificaciones que respondieran a los requerimientos de seguridad actuales.

Las versiones más populares disponibles en varios dispositivos y sistemas son la 1, 2c y 3. Las versiones 1 y 2c utilizan como único método de seguridad el concepto de comunidades, que son algo así como contraseñas, que definen si se tiene permisos de lectura o lectura/escritura. Como el tráfico viaja en texto plano a través de la red, existen grandes posibilidades de que nuestras credenciales sean vistas por alguien que esté capturando paquetes en ella.

La versión 3 del protocolo agrega varias capacidades de seguridad, entre ellas, encripta el tráfico, utiliza credenciales del tipo usuario/contraseña y permite la definición de distintas vistas por usuario. Es evidente que sólo esta versión cumple con los requerimientos de seguridad actuales, de modo que debemos tenerlo en cuenta al seleccionar los equipos de telecomunicaciones que vamos adquirir.


Con el comando de arriba hacemos lo siguiente:

Creamos la vista denominada ReadView, que solamente puede leer los atributos dentro de system.

Creamos el grupo ReadOnly, de SNMPv3, con la vista ReadView.

Creamos el usuario fabian, del grupo ReadOnly, de SNMPv3, con la contraseña mipassword, encriptado con MD5 y el tráfico encriptado con DES56, utilizando la clave pfpfpf.

Para verificar nuestra configuración, podemos utilizar los comandos que mostramos a continuación:

show snmp view
show snmp group
show snmp user


Share:

viernes, 7 de julio de 2023

Inyección SQL

 


El método de inyección SQL permite que un código intruso entre a una aplicación en el nivel de validación de las entradas, para realizar operaciones sobre una base de datos. El lenguaje estructurado para consulta (SQL, por sus siglas en inglés; Structured Query Language) es un lenguaje basado en el desarrollo de programas que especifican o declaran un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y presentan la solución. Permite el manejo del álgebra y el cálculo relacional, lo cual admite consultar las bases de datos para recuperar información de manera sencilla y hacer cambios en la información que poseen las bases de datos.


El origen de la vulnerabilidad radica en que no se verifican de manera correcta las variables utilizadas en un programa que contiene o genera un código SQL, esto es un error que sucede en cualquier lenguaje de programación que está incorporado a otro lenguaje, y por eso es posible incrustar un código intruso dentro del código SQL programado, con lo cual se altera el funcionamiento normal del programa, pues éste ya contiene un código adicional en la base de datos.


Cuando alguien, por lo común un hacker o un cracker, logra “agregar” ese código extra a la base de datos, lo hace para dañar o espiar la información de la base de datos, lo cual se logra más fácilmente cuando el programa se desarrolló con descuido o con ignorancia del problema, exponiendo a un riesgo la seguridad del sistema; por ejemplo, si al programar hay un simple olvido de anotar comillas en el programa, esto puede ser suficiente para volver vulnerable a ese programa, ya que una inyección de código SQL se aprovecha de la sintaxis en este lenguaje para introducir comandos de manera ilícita que permitan leer o modificar la base de datos, comprometiendo el contenido de la consulta original. Una vez que el intruso ha logrado entrar mediante la inyección o adición de este código, éste puede modificar valores en la base de datos en forma arbitraria, instalar cualquier tipo de malware, tener privilegios extras con el uso de las vulnerabilidades del sistema operativo o atacar usuarios de páginas web con inyecciones de código HTML o scripts.

Cuando se ejecuta un programa vulnerable es posible “agregar o inyectar” el nuevo código. Si esta acción se ejecuta en un sitio web, tiene lugar en el servidor huésped. Una inyección de código puede resultar en la pérdida o la corrupción de datos, falta de responsabilidad en acciones o denegación de acceso. Una inyección es capaz, incluso, de tomar control total de un nodo.



Pero el sistema se vuelve más vulnerable cuando en un programa se arma una sentencia SQL en forma descuidada en el intervalo de tiempo en que un programa de la computadora se ejecuta en un sistema operativo, que inicia al poner en la memoria principal el programa, por lo que el sistema operativo empieza a ejecutar sus instrucciones, y concluye al enviar al sistema operativo la indicación de terminación. Otro momento de vulnerabilidad se produce durante la fase de desarrollo, cuando el programador indica directamente la sentencia que se debe ejecutar, pero lo hace de manera desprotegida. Cuando el programador va a hacer una consulta en la base de datos, y hace uso de los parámetros a ingresar por parte del usuario, es dentro de esos parámetros en que se puede “agregar o inyectar” un código adicional malintencionado. En el tiempo en que el programador hace la consulta, el código maligno, que ya forma parte de la base de datos, también se ejecuta y pone en práctica cualquiera de los comandos que se han señalado (insert, update, delete y select).

La inyección de encabezado HTTP es un área relativamente nueva para los ataques basados en la Web, que se produce cuando los encabezados del protocolo de transferencia de hipertexto (HTTP) se generan dinámicamente en función de la entrada del usuario. La inyección de cabeceras en las respuestas HTTP puede permitir la división de respuestas HTTP en la falsificación de solicitudes en un sitio de cruce de información (CSRF, por sus siglas en inglés; Cross Site Request Forgery) y los ataques de redireccionamiento maliciosos a través de la cabecera de ubicación del HTTP.



Existe otra forma de ataque mediante la inyección de comandos, por lo que es importante que los administradores de red conozcan que cualquier dato es factible de ser modificado, ya sea que vaya hacia un buscador o salga de éste, por lo que se recomienda que cada dato de entrada sea validado en el mismo servidor y que el usuario no pueda controlarlo. Esto significa que el administrador de la red deberá configurar el servidor para que haga una autenticación en el directorio de cada archivo que éste contenga.

Un atacante con cierta experiencia logra modificar los parámetros accountnumber y debitamount, con el fin de obtener un beneficio monetario de esta acción, ya que en general estos parámetros están asociados a cuentas y operaciones bancarias. Asimismo, también pueden ser modificados los pará- metros de atributos que tienen datos únicos y que caracterizan el comportamiento de la página que se envía. En la actualidad, hay aplicaciones web para compartir contenidos que sólo permiten que el creador del contenido pueda modificar la información, ya que ésta verifica que el usuario que solicita acceso es el verdadero autor del contenido. Pero, si es un atacante quien solicita el acceso y le es negado, al modificar el parámetro mode readwrite, él podría obtener el permiso para entrar al contenido. Cualquier mecanismo de validación que no sea suficientemente robusto, siempre será una debilidad del sistema que permita ataques maliciosos.




Share:

domingo, 7 de mayo de 2023

SPANNING TREE PROTOCOL EN REDES CISCO (STP)

 


INTRODUCCIÓN

Una práctica muy habitual en redes corporativas consiste en la aplicación de enlaces redundantes con el fin de mejorar el servicio y rendimiento de estas. Sin embargo, dicha redundancia puede generar problemas, traducidos normalmente en bucles de capa 2. Este hecho, también denominado tormenta de broadcast, se produce cuando la misma trama recorre los mismos enlaces de manera infinita, pero ¿cuáles son las consecuencias reales ante tal situación? Se podrían identificar las siguientes:

Las tramas que hayan entrado en bucle lo recorrerán de manera infinita, sin ser descartadas nunca por los switchs. Ello es debido a que no disponen del campo TTL, el cual es utilizado en capa 3 para eliminar paquetes que superen un determinado número de saltos. Su ausencia en capa 2 conlleva que no exista un control sobre la vida o recorrido de las tramas, por lo tanto, serán siempre procesadas y reenviadas. A consecuencia de ello, el ancho de banda de los enlaces se verá afectado considerablemente, hasta tal punto que la red quedará inutilizable. La única manera de detenerlo es desconectando físicamente alguno de los enlaces intervinientes o apagando y encendiendo administrativamente la interfaz implicada con los comandos shutdown y no shutdown.

La tabla de MACs de los switchs que forman parte del bucle estarán continuamente actualizándose, dando como resultado registros incorrectos y con ello reenvíos de tramas a través de interfaces erróneas.

Los switchs que intervienen en el bucle tienen que procesar todas las tramas que lo atraviesan de manera continua e infinita, lo que genera una bajada de rendimiento tanto a nivel de hardware como de software (IOS).

Las tramas que atraviesan el bucle también son recibidas por dispositivos finales. Estos las aceptan y procesan siempre, hecho que genera una disminución de su ancho de banda y rendimiento.

Un ejemplo de tormenta de broadcast podría ser el siguiente:

Paso 1: Un PC de la Red A envía una trama al SwitchA. Este, como se trata de un broadcast, la reenvía a través de todas sus interfaces excepto por la que fue recibida, lo que incluye los enlaces hacia el SwitchB y SwitchC.


Paso 2: La trama es recibida por los SwitchsB y C, la procesan, y al ser un broadcast actúan exactamente igual, reenviándola por todas las interfaces excepto por la cual fue recibida, lo que incluye el enlace entre ambos y sus respectivas redes.


Paso 3: Tanto B como C han vuelto a recibir un broadcast, procediendo ambos de la misma manera que anteriormente.


Llegados a este punto, los pasos 1, 2 y 3 se repetirán de manera infinita. Si no se soluciona el problema, el ancho de banda disponible en la red, la capacidad de procesamiento de los switchs y el rendimiento de los hosts disminuirán considerablemente.

Se ha generado un bucle de capa 2 en una topología tan sencilla como la recién mostrada, compuesta tan solo por 3 dispositivos que hacen uso de enlaces redundantes. Imagina un entorno corporativo, con decenas o cientos de Switchs conectados entre sí, el problema resultaría incontrolable. Un detalle a tener en cuenta es que las tormentas de broadcast suelen originarse con los siguientes tipos de tramas:

  • Broadcast: Cuando un switch recibe una trama broadcast la reenvía a través de todas sus interfaces excepto por la cual fue recibida, lo que incluye los enlaces redundantes hacia otros switchs, pudiendo crear un bucle, tal y como se analizó en el ejemplo.
  • Unicast con dirección de destino desconocida: Una trama unicast es aquella cuyo destinatario es un solo dispositivo. En este caso, los switchs leen su dirección de destino, la buscan en la tabla de MACs y la reenvían únicamente por la interfaz asociada. Sin embargo, si la MAC no se encuentra registrada, la trama será reenviada a través de todas las interfaces, al igual que sucede con los broadcasts, generando también bucles de capa 2.
El término tormenta de broadcast se aplica por igual a los bucles generados por ambos tipos de tramas.


Continuando con el ejemplo anterior, para solucionar el problema se puede proceder de dos maneras, bien desconectando físicamente algún enlace que intervenga en el bucle, o bien apagando y encendiendo la interfaz administrativamente con los comandos shutdown y no shutdown. 

Por ejemplo, se podría aplicar cualquiera de las dos acciones sobre el enlace entre el SwitchA y B y el bucle se detendría. Aun así, esta solución sería temporal, ya que una vez conectado el cable o habilitada la interfaz se volverán a formar tormentas de broadcast ante cualquier trama de las ya mencionadas.

Entonces, ¿cada vez que se genere un bucle se debe proceder de esta manera? Evidentemente no, resultaría imposible administrar una red de estas características. Para poner fin a este problema nace el protocolo STP (Spanning Tree Protocol - IEEE 802.1D) cuya función consiste en evitar bucles de capa 2 de manera automática mediante el bloqueo de enlaces redundantes.

Entonces, ¿cada vez que se genere un bucle se debe proceder de esta manera? Evidentemente no, resultaría imposible administrar una red de estas características. Para poner fin a este problema nace el protocolo STP (Spanning Tree Protocol - IEEE 802.1D) cuya función consiste en evitar bucles de capa 2 de manera automática mediante el bloqueo de enlaces redundantes.


En este caso se ha aplicado STP y el protocolo ha bloqueado automáticamente el enlace entre el SwitchA y C para evitar tormentas de broadcast. Con ello, la comunicación se llevaría a cabo de la siguiente manera:

Paso 1: SwitchA recibe la trama broadcast y la reenvía a través de todas sus interfaces excepto por la cual fue recibida. Como el enlace entre A y C está bloqueado por STP, solo será reenviada hacia B.

Paso 2: SwitchB recibe la trama, la procesa y reenvía por todas las interfaces excepto por la recibida, lo que incluye la red B y el enlace con C.

Paso 3: Por último, el SwitchC recibe la trama, la procesa y tan solo la reenvía hacia la red C. Ello es debido a que el enlace entre C y A está bloqueado por STP y el de C y B recibió la trama, por lo tanto, no se reenvía a través del mismo.

Gracias a ello se evita la formación de bucles de capa 2 pero por contra se inutiliza un enlace. En el caso de que el link entre A y B caiga, el protocolo activa automáticamente el de A y C, por lo que la comunicación entre las diferentes redes no se verá afectada.

En resumen, STP es un protocolo de capa 2 utilizado para evitar tormentas de broadcast mediante el bloqueo de enlaces redundantes.

Share:

viernes, 28 de abril de 2023

Ataque en la capa de red

 


Aunque el ataque de ARP Poisoning es potencialmente el más funcional para la realización de la técnica de hombre el medio, no es el único existente. Aun siendo menos functional, existe también la posibilidad de hacer uso de la técnica de lCMP Redirect. Este ataque presenta un problema fundamental y es que no es factible realizarlo en una red con Switch, se encuentra limitado a una red con concentradores. Pero sin en una red con concentradores la infonnación ya llega al atacante ¿para qué vale? Pues en este caso para manipular el tráfico que envfa la víctima.

El ataque de ICMP Redirect se basa en el envio a un equipo de la red de un mensaje de redirección ICMP, haciendo creer que es la mejor ruta hacia Internet. Todas las conexiones serán enviadas al atacante, el cual las enviará al Gatcway. El ataque es de tipo M1TM Half Dúplex, es decir solo hacia un sentido: victima hacia el router. El router enviará las respuestas directamente hacia el cliente. Es importante tener en cuenta que no deberla modificarse el tamaño del paquete, puesto que entonces se producirla un fallo en la secuencia TCP al no poder ser actualizado en ambos sentidos. Los paquetes podrán ser alterados pero deberá mantenerse el tamaño.



Para que este ataque sea factible hay que facilitar como datos la dirección MAC y la lP del router real. Este ataque como se ha dicho implica que no puede ser utilizado en una red con dispositivos de conmutación.

En la capa de red se dan también otros tipos de ataques donde los mlis significativos corresponden con las técnicas de Spooflng de protocolos de enrutamiento. La capacidad para alterar las rutas de encaminamiento permitirla a un atacante reconducir el tráfico a su antojo a la vez que podría analizar el tráfico circulante. La idea fundamental es ganar la confianza y declarar ser la mejor opción o bien inyectar nuevas rutas en los dispositivos de enrutamiento. La mayor parte de protocolos de enrutamiento dinámicos determinan que la mejor forma de llegar a un punto viene determinada por un proceso de prelación. El mismo se consigue estableciendo la menor ruta factible como la más óptima en una métrica de rutas. Si se alteran las rutas o se introducen nuevas, podría suponer una reconfiguración del escenario muy significativo.


Aunque no es muy habitual que los protocolos de enrutamiento dinámicos sean utilizados en las redes internas de una organización, a veces por la complejidad de las mismas, se hace necesario emplearlos. En otras ocasiones se encuentran activos en los dispositivos de enrutamiento pero no configurados. Las condiciones de enrutamiento entre VLAN, también necesitan de la configuración de rutas y a veces son mantenidos automáticamente por los dispositivos de Capa 2/3, sin la intervención del administrador de red. Estas situaciones podrían ser aprovechadas por un atacante para mediatizar el tráfico que circula en la organización

Share:

Blogroll

FacebookTwitterYoutubeVimeoTumblrPinterest

Translate

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *