023.2 Lección 1
Certificado: |
Fundamentos de seguridad |
Versión: |
1.0 |
Tema: |
023 Seguridad de dispositivos y almacenamiento |
Objetivo: |
023.2 Seguridad de aplicaciones |
Lección: |
1 de 1 |
Introducción
La seguridad del software es fundamental para mantener la integridad de los sistemas y los datos. Comienza por garantizar la instalación segura del software mediante la obtención de aplicaciones de proveedores confiables y evitando la introducción de código malicioso durante el proceso de instalación. Ya sea en una computadora de escritorio, un servidor o plataformas móviles. Cumplir con las mejores prácticas para la adquisición de software es esencial para evitar el acceso no autorizado o el malware. Además, la gestión de las actualizaciones de software es crucial, porque las actualizaciones y los parches regulares abordan las vulnerabilidades que podrían explotarse si no se aplican los parches.
Otro aspecto clave es la protección del software contra conexiones de red no deseadas. Esto implica el uso de herramientas como cortafuegos, filtros de paquetes y protección de puntos finales para garantizar que el software se comunique únicamente con redes y entidades autorizadas. Al proteger las instalaciones, garantizar actualizaciones oportunas y administrar las conexiones de red, las organizaciones pueden minimizar eficazmente los riesgos y mantener la integridad del software.
Tipos comunes de software y sus actualizaciones
En el campo de la informática y la ciberseguridad, es esencial comprender las categorías clave de software que forman la columna vertebral de los sistemas digitales. Estas categorías incluyen firmware, sistemas operativos y aplicaciones. Cada tipo cumple una función distinta para garantizar la funcionalidad, la facilidad de uso y la seguridad de un dispositivo o sistema.
El firmware es un software de bajo nivel integrado directamente en los dispositivos de hardware. Funciona como interfaz entre los componentes de hardware y el software de nivel superior, lo que garantiza que el hardware del sistema funcione correctamente. El firmware se almacena normalmente en una memoria no volátil y es esencial para arrancar el sistema y administrar los componentes de hardware, como la placa base, los discos duros y las interfaces de red.
Las actualizaciones de firmware son particularmente importantes porque una vulnerabilidad puede comprometer todo el dispositivo, ya que controla la comunicación entre el hardware y el software de nivel superior. Los fabricantes de hardware suelen publicar estas actualizaciones para solucionar problemas de seguridad, mejorar la compatibilidad con otros componentes de hardware o admitir nuevas funciones. Dado que el firmware es fundamental para el funcionamiento de un dispositivo, mantenerlo actualizado garantiza la integridad y la seguridad continua del sistema.
Un sistema operativo (SO) es el software principal que administra los recursos de hardware y software de una computadora. Algunos ejemplos son Windows, macOS y Linux, que proporcionan una interfaz de usuario y permiten que las aplicaciones se ejecuten en el sistema. El SO es responsable de administrar la memoria, la potencia de procesamiento, los sistemas de archivos y los dispositivos periféricos. La seguridad en los sistemas operativos es crucial, ya que actúan como la primera línea de defensa contra el acceso no autorizado y el malware.
Las actualizaciones del sistema operativo suelen incluir parches de seguridad para corregir vulnerabilidades conocidas, como las relacionadas con los protocolos de red, la gestión de la memoria o el control de acceso. Al garantizar que el sistema operativo esté actualizado, los usuarios reducen el riesgo de que sus sistemas sean explotados por malware u otros ataques. También es importante supervisar el ciclo de vida de un sistema operativo, ya que los sistemas más antiguos pueden dejar de recibir actualizaciones de seguridad críticas, lo que los deja vulnerables a los ataques.
Las aplicaciones son programas de software diseñados para realizar tareas específicas para el usuario, que van desde herramientas de productividad como procesadores de texto hasta navegadores web y plataformas de entretenimiento. Las aplicaciones dependen del sistema operativo para funcionar y ofrecen una amplia variedad de funcionalidades. Debido a su uso generalizado, las aplicaciones son un objetivo común de los ciberataques.
Las actualizaciones de aplicaciones se centran en corregir errores, mejorar la usabilidad y reparar vulnerabilidades en el software con el que los usuarios interactúan directamente. Estas actualizaciones pueden evitar riesgos de seguridad, como ataques de inyección, desbordamientos de búfer de memoria o acceso no autorizado a datos confidenciales. Mantener las aplicaciones actualizadas reduce la probabilidad de que se exploten estas vulnerabilidades.
Adquiera e instale software de forma segura
En la era digital, las aplicaciones de software se obtienen de una amplia gama de fuentes, por lo que es fundamental comprender dónde y cómo adquirir e instalar software de forma segura. La diversidad de fuentes, desde tiendas de aplicaciones oficiales hasta sitios web de terceros, puede presentar importantes riesgos de seguridad si no se maneja adecuadamente. Saber cómo verificar la legitimidad de una fuente de software y garantizar prácticas de instalación seguras son esenciales para prevenir infecciones de malware, violaciones de datos y acceso no autorizado.
Las tiendas de aplicaciones son una de las fuentes más comunes y confiables de aplicaciones de software, especialmente para dispositivos móviles. Plataformas como Apple App Store, Google Play Store y Microsoft Store ofrecen a los usuarios acceso a una gran colección de aplicaciones que han pasado por algún nivel de verificación de seguridad por parte del proveedor de la plataforma. Estas tiendas suelen emplear mecanismos para verificar la existencia de códigos maliciosos, lo que garantiza que las aplicaciones cumplan con ciertos estándares de seguridad antes de que estén disponibles al público. Sin embargo, si bien las tiendas de aplicaciones brindan un entorno más seguro para la adquisición de software, no son infalibles. Han habido casos en los que aplicaciones maliciosas se han escapado al proceso de verificación, por lo que es esencial que los usuarios verifiquen las calificaciones, las reseñas y los permisos de las aplicaciones antes de descargarlas.
En el caso de los entornos empresariales y de escritorio, el software se puede adquirir en sitios web de proveedores, distribuidores externos o sistemas de gestión de paquetes. Al descargar desde sitios web oficiales de proveedores, es importante verificar que la fuente sea legítima, a menudo comprobando los certificados HTTPS y las firmas digitales de los paquetes de software. El uso de gestores de paquetes confiables, como APT para sistemas Linux o el Administrador de paquetes de Windows de Microsoft, también puede garantizar que las aplicaciones provengan de repositorios confiables de forma segura.
Para instalar software de forma segura, los usuarios deben seguir las mejores prácticas, como evitar fuentes no confiables o desconocidas, verificar la integridad del software mediante hashes o firmas digitales y mantener actualizados sus sistemas y software de seguridad. Estos pasos ayudan a garantizar que no se instale software malicioso por accidente, lo que evita la posible vulneración de un sistema.
Fuentes para aplicaciones móviles
Las aplicaciones móviles se han convertido en una parte integral de nuestra vida diaria, desde herramientas de comunicación hasta aplicaciones de productividad y plataformas de entretenimiento. Sin embargo, el uso generalizado de aplicaciones móviles también genera importantes problemas de seguridad. Para garantizar que las aplicaciones que se instalan en los dispositivos móviles sean seguras y confiables, es fundamental comprender las distintas fuentes de aplicaciones móviles y los riesgos de seguridad asociados.
Las fuentes más comunes y seguras de aplicaciones móviles son las tiendas de aplicaciones oficiales, como Apple App Store y Google Play Store. Estas plataformas funcionan como repositorios centralizados donde los desarrolladores pueden distribuir sus aplicaciones, y ambas tiendas tienen procesos de verificación rigurosos para minimizar la distribución de software malicioso. Apple, en particular, mantiene un control estricto sobre la App Store, y exige que todas las aplicaciones pasen por un proceso de revisión que verifica el cumplimiento de los estándares de seguridad y las pautas de privacidad. De manera similar, Google Play Store analiza las aplicaciones en busca de malware y otras amenazas de seguridad mediante sistemas automatizados como Google Play Protect. Si bien estas tiendas de aplicaciones son generalmente seguras, ningún sistema es infalible y los usuarios siempre deben revisar las calificaciones de las aplicaciones, los permisos y la credibilidad del desarrollador antes de descargarlas.
Además de las tiendas de aplicaciones oficiales, las aplicaciones móviles pueden obtenerse de tiendas de aplicaciones o sitios web de terceros. Estas plataformas alternativas pueden ofrecer aplicaciones que no están disponibles en las tiendas oficiales, pero plantean riesgos de seguridad significativamente mayores. Las aplicaciones de fuentes de terceros a menudo no están sujetas al mismo nivel de escrutinio que las de las plataformas oficiales, lo que aumenta la probabilidad de descargar aplicaciones maliciosas o comprometidas. Los usuarios que eligen descargar desde estas fuentes deben ser conscientes de los posibles peligros y tomar precauciones adicionales, como analizar las aplicaciones con software antivirus y verificar la legitimidad de la fuente.
Otra forma de distribuir aplicaciones móviles es a través de tiendas de aplicaciones empresariales. Se trata de tiendas de aplicaciones privadas que suelen utilizarse dentro de las organizaciones para distribuir aplicaciones personalizadas desarrolladas para uso interno. Si bien las tiendas de aplicaciones empresariales pueden proporcionar acceso seguro a aplicaciones específicas de la empresa, requieren una gestión cuidadosa para garantizar que las aplicaciones se desarrollen, prueben y distribuyan de forma segura. Los empleados también deben recibir formación sobre cómo descargar e instalar estas aplicaciones de forma segura para evitar ataques accidentales.
Vulnerabilidades de seguridad comunes en el software
Las vulnerabilidades de software son fallas o debilidades en el código que los atacantes pueden explotar para comprometer la seguridad de un sistema. Dos de las vulnerabilidades más comunes y peligrosas son los desbordamientos de búfer y las inyecciones SQL. Estas vulnerabilidades han sido ampliamente explotadas y pueden tener consecuencias graves, como acceso no autorizado, violaciones de datos y fallas del sistema.
Un desbordamiento de búfer ocurre cuando un programa escribe más datos en un búfer (un área de almacenamiento de datos temporal) de los que esa área puede contener. Cuando esto sucede, los datos sobrantes pueden sobrescribir la memoria adyacente, lo que podría alterar el flujo de ejecución del programa. Los atacantes aprovechan los desbordamientos de búfer para inyectar código malicioso, obtener el control de un sistema o hacer que un programa se bloquee. Esta vulnerabilidad suele ser el resultado de una validación de entrada incorrecta o de la falta de comprobaciones de límites en el código. Para mitigar las vulnerabilidades de desbordamiento de búfer, los desarrolladores deben utilizar prácticas de codificación seguras, como la comprobación de límites y la validación de entrada, e implementar funciones de seguridad modernas como los canarios de pila y la aleatorización del diseño del espacio de direcciones (ASLR).
La inyección SQL es otra vulnerabilidad de seguridad común que ocurre en aplicaciones que interactúan con bases de datos. En este tipo de eventos, un atacante inyecta código SQL malicioso en un campo de entrada, manipulando la consulta de la aplicación a la base de datos. Si la entrada no se desinfecta correctamente, el atacante puede obtener acceso no autorizado a la base de datos, recuperar o alterar datos confidenciales o incluso ejecutar operaciones administrativas. Los ataques de inyección SQL son el resultado de una validación de entrada incorrecta y un uso insuficiente de declaraciones preparadas o consultas parametrizadas. Para defenderse contra la inyección SQL, los desarrolladores siempre deben desinfectar la entrada del usuario, utilizar consultas parametrizadas y evitar construir declaraciones SQL con entrada directa del usuario.
Software de protección local
El software de protección local desempeña un papel fundamental en la protección de los sistemas frente a una amplia gama de amenazas de seguridad, ya que controla el tráfico de red entrante y saliente, y filtra la actividad maliciosa. Esta protección suele proporcionarse mediante herramientas como filtros de paquetes locales, cortafuegos (firewalls) perimetrales y de capa de aplicación, cada uno de los cuales ofrece diferentes niveles de seguridad adaptados a las necesidades específicas de un sistema.
Los filtros de paquetes locales funcionan en la capa de red e inspeccionan los paquetes de datos individuales que se transmiten hacia o desde un sistema. Estos filtros deciden si permiten o bloquean los paquetes según reglas predefinidas, como direcciones IP, números de puerto o protocolos. El filtrado de paquetes es una parte fundamental de la funcionalidad del firewall y ayuda a evitar el acceso no autorizado al detener los paquetes maliciosos antes de que puedan llegar a su destino. Si bien son eficaces para el control básico del tráfico, los filtros de paquetes pueden carecer de la capacidad de detectar ataques más sofisticados que ocurren en capas superiores de comunicación.
Los firewalls perimetrales están diseñados para proteger dispositivos individuales, como computadoras portátiles o de escritorio, actuando como una barrera entre el dispositivo y la red. Brindan una protección más integral que los filtros de paquetes básicos, ya que monitorean todo el tráfico que entra y sale del dispositivo, bloqueando la actividad maliciosa y evitando el acceso no autorizado. También pueden aplicar políticas de seguridad, como bloquear el acceso a la red de ciertas aplicaciones o evitar que se conecten dispositivos externos.
En el contexto del software de protección local, las funciones de un filtro de paquetes local y un firewall de punto final comúnmente se implementan juntas, proporcionando una capa integral de protección al filtrar el tráfico de red y aplicar políticas de seguridad directamente en dispositivos individuales.
Tanto Windows como macOS cuentan con firewalls integrados que proporcionan filtrado de paquetes y un firewall de punto final como parte de sus capacidades de seguridad generales. Esta doble funcionalidad garantiza que el acceso no autorizado y las actividades maliciosas se bloqueen de manera eficaz, lo que ofrece una defensa sólida.
Por ejemplo, Windows Defender Firewall supervisa y controla el tráfico en la capa de red, aplicando políticas de seguridad a nivel del dispositivo para evitar que las aplicaciones realicen acciones que violen esas políticas.
De manera similar, macOS cuenta con un firewall integrado que combina el filtrado de paquetes con las capacidades del firewall de punto final, lo que permite a los usuarios establecer reglas que regulen el tráfico entrante y saliente. macOS también proporciona opciones avanzadas como el registro y el modo oculto, que ayudan a evitar que el sistema sea detectado en una red, lo que mejora aún más la seguridad a nivel de dispositivo. Estas funciones brindan a los usuarios un mayor control sobre cómo sus dispositivos interactúan con la red, lo que garantiza una protección integral.
Iptables, ampliamente utilizado en sistemas Linux, funciona como una herramienta de filtrado de paquetes que permite a los usuarios definir reglas para administrar el tráfico de red entrante y saliente. Al operar en la capa de red, permite a los usuarios bloquear o permitir el tráfico en función de criterios como direcciones IP, números de puerto y protocolos. Iptables es altamente personalizable y ofrece opciones avanzadas para administrar la seguridad de la red, pero requiere una sólida comprensión de los conceptos de redes para una configuración adecuada.
Además, SELinux (Security-Enhanced Linux) desempeña un papel fundamental en la protección de los puntos finales en entornos Linux. Aunque no es un firewall tradicional, SELinux aplica controles de acceso obligatorios (MAC) que limitan las acciones que pueden realizar los procesos. Esto añade una capa adicional de seguridad al controlar cómo interactúan las aplicaciones con el sistema. Al gestionar estrictamente los permisos, SELinux ayuda a evitar que procesos no autorizados expongan en peligro el sistema, lo que lo convierte en un complemento valioso para los firewalls y otras herramientas de seguridad a la hora de garantizar la integridad del sistema.
Los firewalls de capa de aplicación funcionan a un nivel superior que los filtros de paquetes o los firewalls de punto final, inspeccionando el tráfico relacionado con aplicaciones o servicios específicos. Estos firewalls monitorean los datos intercambiados en la capa de aplicación, que es donde operan protocolos cruciales como HTTP, FTP o SMTP. Los firewalls de capa de aplicación brindan una inspección y un control más profundos, lo que permite a los administradores bloquear el tráfico según el tipo de aplicación o el contenido de los datos que se transmiten. Esto los hace muy efectivos contra ataques que apuntan a vulnerabilidades en las aplicaciones, como cross-site scripting (XSS), inyección SQL y desbordamiento de búfer.
Un ejemplo de un firewall de capa de aplicación es ModSecurity, que es un firewall de aplicación web (WAF) de código abierto que protege contra amenazas basadas en la web, como la inyección SQL y el ataque de secuencias de comandos entre sitios. Otro ejemplo es F5 BIG-IP, que incluye funciones avanzadas para gestionar el tráfico a nivel de aplicación y garantizar que las aplicaciones confidenciales estén protegidas contra ataques dirigidos.
Muchos proveedores de servicios en la nube ofrecen firewalls de aplicaciones basados en la nube para proteger las aplicaciones alojadas en sus plataformas.
Por ejemplo, AWS ofrece el AWS Web Application Firewall (AWS WAF), que brinda protección contra ataques web comunes al permitir que los usuarios definan reglas personalizadas para bloquear tipos específicos de tráfico. Google Cloud ofrece un servicio similar a través de su Cloud Armor, que ayuda a mitigar las vulnerabilidades de las aplicaciones y garantiza la protección contra ataques DDoS y de capa de aplicación. De manera similar, Microsoft Azure ofrece Azure Web Application Firewall (Azure WAF), que brinda protección centralizada para las aplicaciones alojadas en su plataforma en la nube al filtrar el tráfico malicioso antes de que llegue a la aplicación. Estos firewalls basados en la nube son altamente escalables, fáciles de integrar y ofrecen protección integral para aplicaciones web en entornos de nube.
Ejercicios guiados
-
¿Cuál es la importancia de la instalación segura de software?
-
¿Por qué es crucial para la seguridad la actualización periódica del software?
-
¿Cómo la gestión de conexiones de red protege el software de amenazas?
Ejercicios exploratorios
-
¿Qué sucede durante un desbordamiento de búfer?
-
¿Cómo explotan los atacantes las vulnerabilidades de inyección SQL?
-
¿En qué se diferencia un firewall de punto final de un filtro de paquetes?
Resumen
En esta lección se describen las prácticas esenciales para mantener la seguridad del software, centrándose en la instalación segura, las actualizaciones periódicas y la gestión de las conexiones de red. Se destaca la importancia de obtener el software de fuentes confiables para evitar el malware y garantizar que todo el software, incluidos el firmware, los sistemas operativos y las aplicaciones, se mantenga actualizado para corregir las vulnerabilidades. Además, la lección explica cómo los atacantes pueden explotar vulnerabilidades de software comunes, como desbordamientos de búfer e inyecciones SQL, y cómo las prácticas de codificación segura y la validación de entradas pueden mitigar estos riesgos.
La lección también examina el software de protección local, diferenciando entre filtros de paquetes locales, firewalls de puntos finales y firewalls de capa de aplicación, cada uno de los cuales ofrece distintos niveles de protección. Ejemplos como iptables, Firewall de Windows Defender y ModSecurity demuestran cómo estas herramientas protegen los sistemas filtrando el tráfico de red y evitando ataques específicos de la aplicación. También se analiza el papel de los firewalls basados en la nube, como los que ofrecen AWS, Google Cloud y Microsoft Azure, como elementos esenciales para proteger las aplicaciones alojadas en la nube de amenazas avanzadas.
Respuestas a los ejercicios guiados
-
¿Cuál es la importancia de una instalación segura de software?
Asegurarse de que el software se instala desde fuentes confiables ayuda a prevenir la introducción de código malicioso. Este proceso garantiza que el software que se instala sea legítimo y esté libre de amenazas de seguridad, lo que reduce el riesgo de acceso no autorizado o infecciones de malware.
-
¿Por qué es fundamental para la seguridad la actualización periódica del software?
Las actualizaciones y los parches de software son vitales porque solucionan vulnerabilidades que los atacantes podrían explotar. Las actualizaciones periódicas garantizan que se solucionen los fallos de seguridad, lo que ayuda a proteger los sistemas de amenazas conocidas.
-
¿Cómo protege el software de amenazas la gestión de conexiones de red?
Los firewalls, filtros de paquetes y protección de puntos finales garantizan que el software pueda comunicarse únicamente con redes autorizadas. Esto evita el acceso no autorizado y protege el software de ser comprometido por conexiones no deseadas, como tráfico entrante malicioso.
Respuestas a los ejercicios exploratorios
-
¿Qué sucede durante un desbordamiento de búfer?
Un desbordamiento de búfer ocurre cuando se escriben más datos en un búfer de los que puede contener, lo que provoca que se sobrescriba la memoria adyacente. Esto puede permitir que los atacantes inyecten código malicioso o bloqueen el sistema. Para evitarlo, los desarrolladores deben utilizar prácticas de codificación seguras, como la validación de entrada y las comprobaciones de límites, y emplear funciones de seguridad como los canarios de pila y ASLR.
-
¿Cómo explotan los atacantes las vulnerabilidades de inyección SQL?
La inyección SQL se produce cuando los atacantes insertan código SQL malicioso en los campos de entrada de una aplicación web, manipulando la base de datos para obtener acceso no autorizado a datos confidenciales o realizar operaciones destructivas. Esto se puede mitigar desinfectando las entradas del usuario y utilizando consultas parametrizadas, que evitan la manipulación directa de las instrucciones SQL.
-
¿En qué se diferencia un firewall de punto final de un filtro de paquetes?
Un firewall de punto final se diferencia de un filtro de paquetes en que proporciona una protección más integral para dispositivos individuales. Mientras que un filtro de paquetes solo inspecciona y filtra los paquetes de datos en función de reglas de capa de red predefinidas (por ejemplo, direcciones IP, puertos o protocolos), un firewall de punto final va más allá al monitorear y controlar todo el tráfico entrante y saliente específico del dispositivo. Los firewalls de punto final pueden aplicar políticas de seguridad más complejas, como bloquear aplicaciones no autorizadas, evitar que se conecten dispositivos externos y controlar a qué datos pueden acceder ciertos programas. Este nivel más profundo de inspección de tráfico y aplicación de políticas hace que los firewalls de punto final sean más efectivos para proteger sistemas individuales, en comparación con el control de tráfico más básico de los filtros de paquetes. Algunos ejemplos de firewalls de punto final incluyen el Firewall de Windows Defender y el firewall integrado de macOS.