¿Todas las amenazas de seguridad son provocadas por errores de software?

13

La mayoría de las amenazas de seguridad de las que he oído han surgido debido a un error en el software (p. Ej., Todas las entradas no se verifican correctamente, los desbordamientos de la pila, etc.). Entonces, si excluimos todo pirateo social, ¿todas las amenazas de seguridad se deben a errores? En otras palabras, si no hubiera errores, ¿no habría amenazas de seguridad (de nuevo, excluyendo las fallas de los humanos, como revelar contraseñas y demás)? ¿O pueden los sistemas ser explotados de manera no causada por errores?

gablin
fuente
44
¿Llamas a la posibilidad de que pueda adivinar una contraseña débil un error de software? En todo caso, es un problema de diseño, pero probablemente sea aún más fundamental que esto.
Joachim Sauer
44
¿Definirías un diseño pobre como un error?
StuperUser
1
Para admitir @StuperUser, en el enlace " security.stackexchange.com/questions/25585/… " no hay ningún error en el script de Dave. Pero es un diseño estúpido.
Manoj R
1
Si excluimos todas las razones de los problemas de seguridad, excepto los errores, entonces sí.
andho

Respuestas:

25

Un error se define como un software que no funciona según las especificaciones. Ahora, si las especificaciones son defectuosas, no es un error de software. Si un cliente tonto exige que todas las contraseñas deben ser códigos de tres dígitos sin período de gracia entre las entradas defectuosas, no se debe culpar al software.

Muchos sistemas tienen un "modo de servicio" que puede anular la seguridad, y aunque el acceso a este debe ser seguro, los códigos a menudo se filtran al público.

Los avances en matemáticas comprometen los viejos métodos de criptografía. Algo que era seguridad viable hace 30 años se debilita hoy en día.

Existen varios métodos de robo de datos que a menudo se pasan por alto. Un teclado inalámbrico tiene un alcance de aproximadamente 2 m, debido a las pequeñas antenas, y el código enviado no está cifrado. Leerlo desde el otro lado de la calle con una buena antena es un método bien conocido.

A veces, las compensaciones de seguridad se realizan con plena conciencia de las consecuencias: los sistemas criptográficos requieren energía y tiempo de CPU. Las aplicaciones de monitoreo integradas a menudo envían sus datos de una manera claramente legible para el público porque primero, el valor de comprometer los datos es insignificante, y luego el costo adicional de implementar la seguridad es innecesario.

Toda la seguridad se basa en la confianza. No se necesita ingeniería social para que el administrador designado se vuelva pícaro y lea su correo.

Y al final, ¿se puede considerar aplicar el bate de béisbol a la rodilla como una técnica social?

SF.
fuente
2
"si las especificaciones son defectuosas, no es el error" hm esta redacción suena resbaladiza. Yo diría "es un error en las especificaciones" en su lugar. Cuando he sido probador, envié y verifiqué con éxito algunas correcciones para algunas docenas de tales errores. Y como desarrollador de que tuviera la oportunidad de solucionar algunos de estos "errores" de especificaciones reportadas por los probadores contra documentos de la API me asignaron para mantener ...
mosquito
8
@gnat - Sin embargo, un "error en la especificación" no es un error de software , es un error de diseño . A menos que pueda, por supuesto, el diseño como parte del software. Todo depende de dónde dibujes la línea.
ChrisF
1
@ ChrisF: Gracias por poner en palabras lo que quería decir pero no sabía cómo. Respuesta editada para aclarar.
SF.
No siempre está claro que una característica específica escrita en una especificación sea una falla.
Doc Brown
1
@DocBrown: Sí, a veces se requiere una reducción de la seguridad como compensación de costo-rendimiento ...
SF.
12

Puede haber situaciones en las que los errores de hardware también causen problemas de seguridad. Solo considere un chip RAM defectuoso que voltea espontáneamente el bit "isAdmin".

O considere un error de hardware hipotético donde la protección de la memoria no funciona como se esperaba y un proceso puede sobrescribir la memoria de otro proceso sin activar una interrupción.

Para su placer de lectura: seguridad informática comprometida por fallas de hardware

usuario281377
fuente
¿Cuáles son las probabilidades de que el chip RAM voltee exactamente el isAdmin?
m3th0dman
1
Muy pequeño, obviamente, pero si sucede, es un hilo de seguridad no causado por un error de software.
user281377
La posibilidad de que un sistema informático corrompa los bits de permiso en archivos aleatorios es totalmente posible. Un archivo que se puede escribir globalmente y la raíz SUID se puede editar trivialmente para elevar los permisos del usuario.
SF.
@ user281377 Usted se da cuenta de que la probabilidad solo de seleccionar exactamente el bit isAdmin de todos los bits es 1/34359738368 para una máquina con 4 GB de RAM; esto, ignorando la probabilidad de que el chip se voltee incorrectamente.
m3th0dman
@ m3th0dman Probablemente me malinterpretes. No digo que este sea un problema importante que todos deben preocuparse. Es más como una prueba teórica de que un problema de hardware puede crear un hilo de seguridad. Dicho esto, es imaginable que un atacante que descubre los bits defectuosos en un servidor pueda encontrar formas de rellenar su entrada hasta que se coloque algo crítico en esas ubicaciones de memoria.
usuario281377
6

Muchas amenazas de seguridad surgen de las características del software, no de errores. Muchas funciones de software muy útiles resultan útiles para bien o para mal, dependiendo solo de la intención del usuario.

ddyer
fuente
El atajo de un hombre es la hazaña de la puerta trasera de otro.
Daniel Hollinrake
5

Considere un ataque distribuido de denegación de servicio (DDOS). Eso puede ser un riesgo de seguridad, pero no es causado por un error de software, sino más bien por un atacante que supera los límites para los que fue diseñado el sistema. Y cada sistema tiene un límite.

Entonces, la respuesta a su pregunta es: no, no todas las amenazas de seguridad son provocadas por errores de software.

Pieter B
fuente
¿Es un riesgo de seguridad ? Ciertamente puede romper su sitio, pero ¿puede romper la seguridad de su sitio?
Carson63000
1
Eso depende de cuán amplia o limitada sea su definición de riesgo de seguridad.
Pieter B
4

Ingeniería social.

Hola, soy XX del departamento de TI. Su computadora actualmente está propagando virus a otras computadoras de oficina. Necesito su nombre de usuario y contraseña para poder eliminarlo.

Cuando el hacker tiene el nombre de usuario / contraseña, puede instalar troyanos de forma segura, etc.

La ingeniería social se puede aplicar de varias maneras y usarla para evadir la seguridad es una.

jgauffin
fuente
44
Una razón probable por la que esto no se vota más es que el autor de la pregunta excluyó explícitamente el "pirateo social".
Joachim Sauer
@JoachimSauer Buen punto. No lo vi.
jgauffin
3

¿Qué tal algo como Firesheep , el complemento de Firefox que roba las cookies que se transmiten en una red inalámbrica compartida?

Podría argumentar que la vulnerabilidad a tales ataques es un error, pero también podría argumentar en contra. No hay mucho que un sitio web pueda hacer para evitar que los usuarios se vean comprometidos aparte de simplemente ejecutar todas las comunicaciones a través de HTTPS. ¿Puede decir que es un error aceptar las comunicaciones HTTP en su sitio web?

Carson63000
fuente
1
Clasificaría la decisión de transferir información importante y privada a través de un medio no cifrado, un error de diseño. Si esto se considera un "error de software" es una discusión separada, en mi opinión.
Joachim Sauer
@JoachimSauer, ¿qué pasa si su sitio web se niega a transferir cualquier información a través de HTTP y en realidad es un MITM que está asignando HTTP a HTTPS? Si bien los navegadores admiten HTTP y los enrutadores permiten que pase, existe una vulnerabilidad al rastreo que solo pueden evitar los clientes extremadamente conscientes de la seguridad. Entonces, la pregunta es: ¿es un error que los navegadores web admitan HTTP?
Peter Taylor
@PeterTaylor: para este problema, existe HTTP Strict Transport Security , que básicamente garantiza que el navegador sepa que su sitio solo debe visitarse a través de una conexión segura. Además: el autor de la pregunta excluyó explícitamente el "pirateo social" y, según el usuario, ignorar una línea no segura podría considerarse contenido en ese aspecto.
Joachim Sauer
@JoachimSauer ¿Qué sucede si simplemente delego todo el tráfico al Sitio de transporte estricto, pero permito conexiones HTTP a los clientes?
Joshua Drake
@JoachimSauer: De hecho, estoy de acuerdo contigo. Son decisiones de diseño arquitectónico imprudentes las que causan esta vulnerabilidad. No hay nada implementado incorrectamente en el código, que es lo que yo llamaría un "error".
Carson63000
1

Sí, en la medida en que un fallo en la seguridad del software es, cualquiera que sea la causa inmediata , un incumplimiento por parte del software de sus requisitos.

Acepto que esto es solo una tautología, pero esa es la medida.


fuente
A veces la seguridad simplemente no es un requisito (definido). Y si se agrega a la lista de requisitos después de la violación de seguridad, no lo llamaría un "error".
Joachim Sauer
El hecho de que un requisito no se haya obtenido al comienzo de un proyecto, @JoachimSauer, no significa que no se haya requerido. La industria del software ha pasado más tiempo que mi vida tratando con ese hecho.