Beruflich Dokumente
Kultur Dokumente
2018 I
Los pecados capitales en la seguridad del software
10. Descuidar el control de cambios. Estos sistemas nos permiten administrar los
cambios realizados por los desarrolladores. Este control ayuda a eliminar la
posibilidad de confusiones que pueden resultar de alto costo para el proyecto y
asegurar que no existan inconsistencias en el sistema desarrollado, generadas por:
12. Uso incorrecto de Secure Sockets Layer (SSL): Es un protocolo de seguridad que
hace que sus datos viajen de manera íntegra y segura, es decir, la transmisión de
los datos entre un servidor y usuario web, y en retroalimentación, la cual crea
claves para cifrar y descifrar información enviada y recibida, se obtiene a través de
certificados SSL.
SSL 3.0 fue la última revisión del protocolo de comunicación seguro SSL (“Secure
Sockets Layers”) resulta que este protocolo criptográfico, en el que hemos
confiado para hacer más segura la comunicación a través de Internet tiene una
grave vulnerabilidad en el protocolo de seguridad.
La vulnerabilidad en SSL 3.0 descubierta por los investigadores de Google es
diferente a Heartbleed, ya que no afecta a la parte servidor (que aloja, por
ejemplo, páginas web), sino a la parte cliente (navegadores de Internet, clientes de
correo, etc.), lo que la hace menos grave y fácil de solucionar.
El exploit podría ser usado para interceptar los datos sensibles que se supone que
son cifrados entre clientes y servidores.
El exploit permite a los atacantes iniciar un “downgrade” que le dice al cliente que
el servidor no soporta el protocolo TLS (Transport Layer Security) y los obliga a
conectarse a través de la versión 3.0 de SSL. Desde allí, realizan un ataque man in
the middle para descifrar las cookies seguras por HTTP. Google ha nombrado este
ataque como ataque POODLE (Padding Oracle On Degradado Encryption Legacy).
Básicamente consiste en aprovecharse de una característica que hace que, cuando
un intento de conexión segura falla, se proceda a intentar realizar de nuevo esa
conexión pero con un protocolo de comunicación más antiguo. De esa forma, un
atacante podría ocasionar intencionadamente errores de conexión en protocolos
seguros como TLS 1.2, 1.1 y 1.0 y forzar así el uso de SSL 3.0 para aprovechar la
nueva vulnerabilidad.
16. Inyección SQL: La inyección de código SQL es un ataque en el cual se inserta código
malicioso en las cadenas que posteriormente se pasan a una instancia de SQL
Server para su análisis y ejecución. Todos los procedimientos que generan
instrucciones SQL deben revisarse en busca de vulnerabilidades de inyección de
código, ya que SQL Server ejecutará todas las consultas recibidas que sean válidas
desde el punto de vista sintáctico. Un atacante cualificado y con determinación
puede manipular incluso os datos con parámetros.
La forma principal de inyección de código SQL consiste en la inserción directa de
código en variables especificadas por el usuario que se concatenan con comandos
SQL y se ejecutan. Existe un ataque menos directo que inyecta código dañino en
cadenas que están destinadas a almacenarse en una tabla o como metadatos.
Cuando las cadenas almacenadas se concatenan posteriormente en un comando
SQL dinámico, se ejecuta el código dañino.
19. Uso de URL mágicas y formularios ocultos: No hay nada que impida que un
usuario mire el contenido de origen y luego envíe un formulario "actualizado" con
una información modificada (utilizando Perl, por ejemplo) al servidor. Los campos
ocultos no están realmente ocultos en absoluto. Muchas aplicaciones basadas en
web llevan información de autenticación u otros datos importantes en las URL. En
algunos casos, estos datos no deben hacerse públicos, ya que pueden utilizarse
para secuestrar o manipular una sesión
20. Uso de sistemas basados en contraseñas débiles: el error más común que se
cometen en las empresas en temas de ciberseguridad.
Si con las claves que utilizamos para nuestras cuentas personales ya hay que tomar
ciertas precauciones (y los datos revelan que no lo hacemos) con las que dan
acceso a la información de nuestra empresa, ya nos podemos imaginar.
Para ello, debemos seguir las recomendaciones habituales para crear una buena
contraseña:
Una de las amenazas más importantes a la hora de analizar los riesgos de una
aplicación son los errores de usuario. Y no sólo por su frecuencia de aparición, sino
por el elevado impacto que pueden llegar a causar. ¿No es acaso la poca usabilidad
de las aplicaciones una de las causas principales de que los usuarios cometan
errores? Por lo tanto, si mejoramos la usabilidad estaremos mejorando también la
seguridad de la aplicación, al disminuir la probabilidad de que el usuario cometa
errores. ¿Acaso no es más fácil cometer errores manejando una aplicación en línea
de comandos que utilizando una buena interfaz gráfica? ¿Cuántos errores de uso
se pueden llegar a evitar con un buen diseño, menús contextuales, ayudas
emergentes e interfaces intuitivas? Y en sentido contrario... ¿no es acaso un factor
de riesgo el hecho de que un usuario se pueda enfadar con la organización debido
a lo poco usables que son las aplicaciones que le facilita?