Logo Studenta

Entregable Previo 2 - Javier Mendoza (1)

¡Estudia con miles de materiales!

Vista previa del material en texto

Introducción.
En la siguiente actividad se expondrán las principales ideas extraídas a partir del documento recomendado por el profesor que es titulado “The Software Vulnerability Guide”, como el titulo lo indica el libro contiene una serie de consejos, escenarios y buenas prácticas que los autores recomiendan para que los lectores puedan brindar mayor seguridad al software que desarrollen. Gracias al incremento en el uso del internet ha supuesto una mejoría en diversas actividades como su uso en el ámbito educativo, en el caso específico de su uso para el desarrollo y distribución de software, con el incremento en la cantidad de usuarios también han aumentado los ciberataques, virus y gusanos. 
En su mayoría los ciberataques han sido posibles debido a vulnerabilidades en el software puesto que los consumidores ignoran la existencia de fallas en el software, y por parte de los desarrolladores y empresas de software toman como respuesta la creación de defensas perimetrales, como lo son cortafuegos, enrutadores, software antivirus, aplicaciones de actualización de parches, filtros de correo electrónico y otras aplicaciones que intentan proteger al usuario de atacantes externos. La mejor oportunidad que se tiene para combatir estos problemas es abordar las vulnerabilidades desde su raíz, es decir, en el software.
Este problema debe de ser enfrentado por todos los actores involucrados en su desarrollo como lo son programadores y puestos administrativos, para que el problema pueda ser realmente superado. Es por ello que nombres importantes en la industria del desarrollo de software como Microsoft e IBM, crearon estándares, guías y documentación acerca del desarrollo seguro de software en respuesta a la necesidad de seguridad en todas las etapas del ciclo de vida del desarrollo. 
En este esfuerzo por la seguridad de aplicaciones Microsoft implemento campañas de capacitación para desarrolladores y testers, además de la creación de su metodología de desarrollo seguro Microsoft SDL. Este impulso de seguridad por parte de los grandes proveedores comenzó con la concientización sobre la seguridad, estas acciones impactaron directamente en toda la industria principalmente en entornos de producción rápida como los sitios de comercio electrónico, lo a su vez trajo como resultado la reducción en el número de reportes de vulnerabilidades. 
A continuación, en la parte de desarrollo se presentarán herramientas que son de gran utilidad para poder incrementar la seguridad de nuestras aplicaciones, en donde se mostraran sus funciones y algunos ejemplos de estas.
Desarrollo.
Cuando se habla de ciberataques es común asociarlo con escenarios representados en películas o series de televisión en donde parece muy fácil hackear a organizaciones gubernamentales y grandes empresas, cuando la realidad es que las víctimas más frecuentes de los hackers son grupos débiles como universidades, pequeñas empresas que no pueden actualizar a la última versión de software o conseguir de forma oficial todas las licencias que usan y usuarios finales que ignoran la importancia de la seguridad. 
El ciberataque phishing es en donde el atacante intenta engañar a la víctima para que le den información ha aumentado recientemente a causa del incremento de la población que usa equipos computacionales y desconocen de este tipo de ataques, volviéndose personas vulnerables y fáciles de atacar.
En cuanto a la seguridad existen distintos tipos de pruebas y herramientas que nos permiten conocer el estado de seguridad del sistema, la mayoría de estas herramientas están disponibles gratuitamente, además, la mayoría de los programadores poseen los conocimientos y habilidades necesarios para usarlas con eficacia. 
Escáneres de Seguridad.
Los escáneres son el tipo de herramienta de seguridad más común, estas herramientas hacen mucho más que solo escanear o buscar vulnerabilidades, los administradores del sistema los utilizan para identificar hosts autorizados y no autorizados en la red, para probar máquinas en busca de vulnerabilidades para aplicar parches e inspeccionar tráfico entrante y saliente en busca de signos de intrusión en la red. Los hackers principalmente los utilizan para escanear la red en busca de servicios disponibles, sondear máquinas vulnerables y investigar contraseñas, cookies y datos confidenciales. 
Los desarrolladores y testers pueden usar estas herramientas para encontrar vulnerabilidades conocidas en sus sistema host o plataforma de aplicación y aprender sobre los protocolos de su aplicación, sin embargo, no porque se realice una gran inversión en un escáner de seguridad esto quiere decir que pueda arreglar los problemas de seguridad de las aplicaciones, puesto que estas herramientas están destinados a administradores de sistemas y usuarios finales, no desarrolladores. 
Herramientas integrales de escaneo
Estas herramientas buscan vulnerabilidades conocidas, estas herramientas requieren de una dirección IP o un rango de direcciones para escanear cada número de puerto sucesivamente buscando los que están abiertos. También buscan números de versión y otras respuestas específicas que indiquen el software en la máquina remota es vulnerable, algunas herramientas realizan un examen más exhaustivo como verificación del contenido del archivo, permisos, aplicación versiones, etc.
La herramienta más famosa de este tipo es SATAN, la herramienta de administración de seguridad. para el análisis de redes, originalmente SATAN buscó 10 vulnerabilidades en los sistemas Unix puesto que estos eran populares entre los hackers, la mayoría de estas vulnerabilidades fueron configuraciones incorrectas en NFS o FTP que permitió a un usuario remoto no autenticado obtener acceso al sistema de archivos de una máquina. Las instalaciones de Unix de tamaño medio y grande, como las universidades, solían servicios abiertos al acceso público en lugar de configurarlo y mantener un servicio de directorio como NIS. SATAN también escaneó versiones del software sendmail de Unix que eran vulnerables a desbordamientos de búfer.
Existe un escáner más reciente llamado Unix Nessus este funciona según el mismo principio que SATAN, sin embargo, proporciona dos características que lo hacen más versátil y mantenible en el entorno de seguridad moderno, este implementa escaneos individuales en la forma de complementos, con uno o más complementos para cada vulnerabilidad conocida. También incluye NASL2, el lenguaje de secuencias de comandos de ataque de Nessus, este lenguaje tipo C facilita la creación de secuencias de comandos de nuevos análisis y firmas de vulnerabilidades para crear complementos de Nessus. Algunos informes de nuevas vulnerabilidades incluyen un script NASL2 que se puede usar para buscarlas.
Nmap y escáneres de red.
Este tipo de escáneres examinan una red para identificar los hosts y las aplicaciones disponibles. En lugar de solo buscar vulnerabilidades, estas herramientas ayudan al usuario a tener una mejor comprensión de toda la red: su topología, hosts, sistemas operativos y aplicaciones que se ejecutan en la red, estas herramientas realizan dos funciones, el escaneo de puertos que identifica todas las aplicaciones de red que se ejecutan en un determinado host intentando conectarse al número de puerto asociado con esa aplicación.
Pinging y Escaneo de Puertos.
Los escáneres de red y la herramienta de ping se pueden usar para determinar si un host o el servicio de la aplicación se bloqueó como resultado de un caso de prueba, estas herramientas son comúnmente usadas para el craqueo y la prueba de protocolos en donde se utilizan para determinar si un exploit fue exitoso. 
Rastreo y falsificación de paquetes.
Estas herramientas registran todo el tráfico asociado con un host o red en particular, todos los datos se transmiten a todos los hosts, cada host debe determinar qué datos están destinados a él y luego pasar esos datos a la aplicación correcta. Los rastreadores interceptan estos datos de forma pasiva abriendo la red al dispositivo en modo promiscuo,esto significa que intercepta todo el tráfico independientemente de si está destinado a la dirección de hardware asociado con el dispositivo. Esto permite que el rastreador vea todo el tráfico en la red independiente de la pila de red del sistema operativo. 
El rastreador entonces reconstruye los datos tal como aparecerían en la aplicación, generalmente con la ayuda de bibliotecas de ayuda construidas para ese propósito.
Un programa representativo de este tipo de herramienta Ethereal este sniffer cuenta con una interfaz gráfica de usuario y es de uso gratuito, el programa decodifica todo el tráfico en la red y la presenta en forma de tabla, organizada por campo de protocolo, además permite filtrar de los resultados basados ​​en un rico lenguaje de filtros orientado a objetos, esta característica no se encuentra en muchos sniffers.
Herramientas de Hackeo y Crackeo.
Estas herramientas están diseñadas principalmente enfocadas al hacking, algunas de estas son útiles para encontrar vulnerabilidades en aplicaciones, los principales usos legales de estas herramientas son para educar a las personas sobre la debilidad relativa de ciertos tipos de contraseñas y para recuperar contraseñas perdidas.
Crackers de contraseñas.
La mayoría de las herramientas para descifrar contraseñas se basan en ataques de diccionario de fuerza bruta. Este tipo de ataque supone que el hacker tiene acceso a una versión encriptada o codificada del base de datos de contraseñas y un diccionario de nombres de usuario y contraseñas de uso común. El programa encripta sistemáticamente cada combinación de nombre de usuario y contraseña usando el mismo algoritmo que el sistema operativo y prueba el resultado encriptado contra la base de datos de contraseñas, cuando se encuentra una coincidencia la herramienta ha descifrado una clave. Esta técnica tiene éxito porque las computadoras modernas pueden probar muchas combinaciones de nombre de usuario y contraseña en un período de tiempo relativamente corto, y muchos sistemas tienen al menos un nombre de usuario común. 
Fuzzing implica el envío de datos aleatorios a un puerto de red o aplicación en un intento para encontrar desbordamientos de búfer y vulnerabilidades de denegación de servicio análisis de los datos, es útil en protocolos binarios y cualquier otro protocolo. que carecen de documentación, también es útil para forzar el código de manejo de excepciones dentro una aplicación a invocar a la que no se podría acceder fácilmente de otro modo.
Escáneres binarios y de código.
Muchas vulnerabilidades de seguridad son el resultado de errores de programación que son fácilmente detectable al inspeccionar el código fuente, los programadores pueden usar versiones no seguras de funciones de biblioteca y objetos de seguridad como cifrado las claves pueden liberarse en la memoria sin sobrescribir su contenido. Escáneres de código intentan identificar posibles vulnerabilidades buscando en un archivo de código.
Conclusiones.
Para finalizar esta actividad concluyo que es muy importante conocer todas estas herramientas puesto que no únicamente sirven para causar el mal, como se mostro anteriormente estas son también de gran ayuda para evaluar nuestras aplicaciones y así poder identificar posibles vulnerabilidades, además de las herramientas anteriormente mencionadas también existen más como debuggers, desensambladores, las cuales hemos utilizado en la sesión anterior del presente curso, así como también en cursos anteriores y he podido comprobar que efectivamente son herramientas muy útiles que facilitan mucho el análisis de las aplicaciones y redes, dejando el motivo de su uso a la ética de cada programador.
Otro punto muy importante es que estas herramientas no requieren que el usuario sea experto en redes o programación, por lo que ocasiona que estén al alcance de un gran numero de personas, elevando la probabilidad de que estas sea usadas con un propósito negativo, puesto que apenas falta investigar un poco en internet y ya es posible empezar a usar estas herramientas, lo que facilita el aprendizaje de estas tanto para bien como para mal.
2

Continuar navegando