¿Es fundamentalmente posible una infraestructura de servidor que la persona más inteligente no pueda romper?

30

TL; DR:

Tal vez me haya excedido con los detalles de mi pregunta, pero quería estar seguro de que la pregunta era clara ya que el tema parece muy amplio. Pero aquí está. La palabra "más inteligente" significa fundamentalmente, no literalmente.

¿Es fundamentalmente posible una infraestructura de servidor que la persona más inteligente no pueda romper?

Fondo:

He leído artículos sobre los servidores de bancos masivos (o sitios de trampas) comprometidos, y en un artículo basado en una entrevista con una compañía de seguridad de Internet interesada en el caso, un especialista afirmó que existen organizaciones criminales altamente calificadas especialmente en China y Rusia, que tienen vastos recursos, herramientas y algunos de los "mejores" piratas informáticos del mundo a su disposición, y este especialista afirmó que no había "ningún sistema en la tierra" (conectado a la web, por supuesto) que no podían comprometerse con los recursos disponibles para ellos.

(Servidor web) La seguridad de la información es como el ajedrez:

No soy un gran jugador de Ajedrez, y no soy mucho un Info Sec. experto, pero soy un programador que escribe software de servidor, y estoy interesado en esto. Sin tener en cuenta cualquier factor del Ajedrez que pueda anular mi escenario, como que la persona que se mueve primero tenga una ventaja o algo por el estilo, imagina que la Seguridad de la Información es un juego de Ajedrez entre dos de los mejores jugadores de Ajedrez del mundo.

Clásico: Si tú y yo jugáramos un juego de Ajedrez, el que posee mayor habilidad, conocimiento e inteligencia con respecto al juego de Ajedrez ganará.

Escenario programado 1: O quizás, si jugamos el juego digitalmente, ganará el que escriba el software de juego de ajedrez más inteligente.

Escenario programado 2: O, y aquí está la clave, tal vez sea posible que ambos seamos tan buenos tanto en el ajedrez como en la programación que los dos escribamos programas de computadora de juego de ajedrez tan buenos. que ninguno de nuestros programas puede ganar, y el juego termina en un punto muerto.

Considere una infraestructura de servidor, por ejemplo, un servidor bancario o un servidor de aplicaciones que debe comunicarse con los clientes en la web, pero que no debe permitir que las partes criminales ingresen a sus almacenes de datos.

  • La seguridad de esta infraestructura de servidor podría ser como Escenario Programado 1 , es decir, sin importar qué, quien tenga el mejor software y conocimiento de Seguridad de la Información, las personas que inventan las estrategias de seguridad. por ejemplo, siempre tendrá la oportunidad de romper la defensa de la infraestructura de un servidor, sin importar qué tan seguro sea. Ninguna defensa perfecta es fundamentalmente posible.

  • O podría ser como Escenario Programado 2 , donde es fundamentalmente posible desarrollar una infraestructura de servidor que use una estrategia de seguridad que (fundamentalmente) no pueda ser superada por un programa más inteligente. Una defensa perfecta es fundamentalmente posible.

La pregunta

Entonces, ¿cuál es?

    
pregunta Viziionary 25.08.2015 - 05:45
fuente

13 respuestas

31

La seguridad se puede probar, pero hay que entender lo que se demuestra

enlace

  

Nuestra declaración de prueba en lenguaje natural de alto nivel es la siguiente:

     

El código binario del microkernel seL4 implementa correctamente el comportamiento descrito en su especificación abstracta y nada más. Además, la especificación y el binario seL4 satisfacen las propiedades de seguridad clásicas llamadas integridad y confidencialidad.

     

Integridad significa que los datos no se pueden cambiar sin permiso, y confidencialidad significa que los datos no se pueden leer sin permiso.

     

Nuestra prueba incluso va un paso más allá y muestra que los datos no se pueden inferir sin permiso, hasta cierto punto. Se sabe que los llamados canales del lado de la información (también llamados canales ocultos) existen. La prueba solo cubre los canales de inferencia de información que están presentes en el modelo formal: la prueba de confidencialidad cubre todos los canales de almacenamiento en el kernel, pero excluye los canales de tiempo que deben tratarse empíricamente.

Entonces, ¿por qué no todos usan simplemente sel4? (Actualmente, el lugar donde es más probable que se encuentre es en el procesador TrustZone de algunos dispositivos de Apple).

La respuesta es que la prueba solo cubre el kernel, no cualquier software de espacio de usuario que desee ejecutar. No hay un servidor web seguro y probado, por ejemplo, y mucho menos implementaciones de lenguaje para las aplicaciones que desee ejecutar en él. Y también tendrías que probar que tu aplicación web es segura. Desarrollar estas cosas requerirá una gran inversión, que ninguna gran empresa está interesada en hacer.

Los sistemas de alta seguridad generalmente son atacados en la clave y el punto de administración de inicio de sesión

No importa qué tan seguro esté el sistema si su administrador deja su contraseña en pastebin por error. Justo el otro día, vimos a un empleado de TSA publicar una foto de las llaves físicas (físicas) de TSA para candados de equipaje en Twitter, por lo que ahora todos están comprometidos. Contraseñas débiles, contraseñas adivinables, contraseñas almacenadas de forma insegura, tokens de seguridad de hardware incorrectos, huellas dactilares copiadas: todos estos son posibles vectores de ataque.

    
respondido por el pjc50 26.08.2015 - 17:35
fuente
77

"Ninguna defensa perfecta es fundamentalmente posible".

En el ajedrez, tienes 64 casillas, 2 personas jugando y un conjunto de reglas inmutables y comúnmente conocidas.

En las infraestructuras de servidores, hay una cantidad incalculable de activos y formas de abordar esos activos, un número desconocido de personas jugando y reglas que cambian constantemente con jugadores que intentan deliberadamente doblar, romper o eludir las reglas.

Considere 2 elementos que demostrarán mi punto: cero días y barras de chocolate .

En primer lugar, los días cero cambian las reglas mientras se juega el juego. Mientras que un lado obtiene el beneficio de este elemento, el otro desconoce la ventaja y es posible que aún sea incapaz de contrarrestar estos ataques, incluso si finalmente se conocen. Cada día cero es una nueva regla que se aplica de manera desigual al juego. Incluso si una "estrategia de seguridad perfeccionada" se puede diseñar y aplicar perfectamente, cero días puede significar que la estrategia se basa en puntos débiles desconocidos que tal vez nunca sean conocidos por el lado defensor.

En segundo lugar, las barras de chocolate pueden hacer más para romper la seguridad de una infraestructura que cualquier otro elemento. Lo que quiero decir es que las personas pueden ser sobornadas o seducidas para que "cambien de lado" y otorguen ventajas al lado opuesto, a veces por algo tan pequeño como una barra de chocolate (según muestran los estudios). Phishing, sobornos, fuga de datos, etc. son parte del lado humano del juego que la tecnología no puede explicar por completo. Mientras haya un humano con poder en la infraestructura, siempre existirá esa debilidad en el sistema.

¿Qué hacer?

En la historia, vemos múltiples situaciones en las que un pequeño intento de defensa fue derrotado por algo pequeño e imprevisto (por ejemplo, las puertas de la Gran Muralla de China se abrieron a una concubina que era un agente doble para los mongoles). El objetivo, como defensores, no es montar la defensa perfecta, sino diseñar una infraestructura resistente y transparente donde los ataques se puedan ver de forma rápida y respondan por completo. No muros más altos, sino milicias más alertas. No cimientos inquebrantables sino una arquitectura reemplazable.

    
respondido por el schroeder 25.08.2015 - 06:09
fuente
18

Nadie ha encontrado ninguna razón en particular para creer que haya encontrado tal sistema.

Mencionas el ajedrez, que es un buen juego en una cuadrícula de 8x8. Tenga en cuenta que un servidor moderno es un poco más complicado que eso. En su lugar, vamos a jugar en un tablero de 65536x65536, para hacerlo más realista. Además, en Ajedrez, cuanto más juegas, menos posiciones son posibles. En cambio, un sistema más realista es como Go. Cuanto más juegues, más se entrelazará la posición. Observaré que el juego de Go hace que nuestro trabajo en las computadoras de Ajedrez parezca insignificante.

Conway, alrededor de 1970 o algo así, intentó romper el juego de Go. Encontró que a menudo el tablero parecía dividirse en subjuegos, cada uno de los cuales se jugaba en su espacio para sumar al ganador final. Encontró que la forma en que trabajaban juntos era muy complicada. Como resultado, encontró números surrealistas, un esquema de números que es literalmente más vasto que los números reales que usamos en física. No es broma, en realidad es más fácil predecir el clima a nivel mundial que ganar en Go por dividir y vencer. ¿Podría haber un caso de "ganar" aquí? Quizás. Buena suerte encontrándolo. La única forma de saberlo con certeza es tener en cuenta la junta completa de 65536x65536, todas a la vez.

Kevin Mitnick en uno de sus libros comentó lo siguiente:

  

La única computadora verdaderamente segura es aquella que está desconectada de Internet, apagada, desconectada, almacenada en un búnker de concreto, bajo guardia armada. E incluso entonces, lo revisaría de vez en cuando ".

    
respondido por el Cort Ammon 25.08.2015 - 07:45
fuente
8

Este sistema probablemente existe, pero probablemente no lo encontremos

Tenemos muchos algoritmos para usar en Seguridad. Algunos de ellos probablemente sean correctos. Específicamente, algunos de ellos probablemente sean exponencialmente difíciles de romper. De hecho, sabemos que algunos son absolutamente imposibles de romper (un pad de tiempo). El problema es implementación .

La seguridad no se trata de quién es más inteligente. La seguridad es sobre el cuidado del defensor v.s. La inteligencia y creatividad del atacante. Un defensor no tiene que ser brillante si puede seguir un algoritmo con mucho cuidado. Defensa perfecta v.s. La ofensiva perfecta resulta en un vencedor defensivo en tierra de seguridad.

El problema es que los servidores son a menudo máquinas complejas. Usted tiene el sistema operativo y las miradas de programas, y diferentes protocolos y lenguajes de programación y AHH. Es casi imposible tener una seguridad perfecta en ese entorno.

Por otro lado, si un sistema es lo suficientemente simple, un humano probablemente puede hacerlo perfecto. Por ejemplo, tengo un mensaje, $ M $, codificado como un número del 1 al 6. Ahora lanzaré un dado, que será la clave $ K $, y agregaré $ M $ y $ K $ modular $ 6 $ , para obtener el texto cifrado $ C $.

El texto cifrado es $ 5 $. ¿Cuál fue el mensaje?

Este es un ejemplo tan simple que podría considerar todas las posibilidades. Por otro lado, un servidor es bastante complejo.

¿Qué consejo podemos extraer de esto? Manténgalo simple, estúpido. (El principio K.I.S.S.) Aunque es probable que esté fuera de nuestra capacidad humana hacer un servidor perfecto, cuanto más simples sean el servidor y nuestros algoritmos, mejor. Documente su código, hágalo comprensible, hágalo simple. Cada línea de código tiene una razón. Use un sistema operativo simple (Nota: no confunda simplicidad con facilidad de uso. Piense en Arch Linux, no en iOS). Mantenga solo el mínimo de programas. Elige un lenguaje de programación con una definición pequeña, y sin reglas extrañas y demás (te estoy mirando, javascript). Aunque esto no lo hará perfecto, recorrerá un largo camino para hacerte más seguro.

    
respondido por el PyRulez 25.08.2015 - 21:41
fuente
8

La comparación con el ajedrez es interesante porque muestra lo que no es proteger un sistema. En comparación con el ajedrez, el juego entre los buenos y los malos en seguridad informática no tiene reglas fijas, no sabes quiénes son tus oponentes y puedes ser atacado fuera del tablero de ajedrez. Y si el oponente pierde una figura, puede obtener una nueva mientras que usted no.

  • Tiene recursos limitados (tiempo, dinero, conocimiento) para proteger sus sistemas. Los atacantes también tienen recursos limitados, pero si eres un objetivo interesante, habrá suficientes piratas informáticos interesados que, en total, podrían tener más recursos que tú.
  • Con estos recursos limitados tienes que asegurar todo. Esto significa cerrar todas las formas posibles (y probablemente desconocidas para usted) / explotación que un atacante podría usar para ingresar. El atacante solo debe encontrar una forma de entrar y usarlo.
  • Aparte de eso, tiene un conflicto entre usabilidad y seguridad. Simplemente eche un vistazo al control de acceso con contraseñas, formas de restablecer contraseñas olvidadas, etc. Estas son, por diseño, no son 100% seguras porque son una compensación entre seguridad y usabilidad. Podría mover a todos sus usuarios a métodos más seguros como la autorización de dos factores, certificados de clientes, tarjetas inteligentes, etc., pero estos podrían ser demasiado inconvenientes para los usuarios y perdería clientes. Y tampoco son 100% seguros, solo son más seguros que las contraseñas.
  • También tiene un conflicto entre la seguridad y el rendimiento. Cuanto más se analicen todos los datos entrantes para detectar ataques, más lento será. Si bien puede lanzar más hardware al problema, no se escalará linealmente, por lo que tendrá que encontrar un equilibrio entre la velocidad y la profundidad del análisis.
  • Y tienes que lidiar con el software que es inseguro. Puede ser de código cerrado, por lo que no puede buscarlo ni repararlo, pero incluso con el código abierto no tiene el tiempo ni la experiencia para descubrir errores o puertas traseras ocultos accidental o deliberadamente. Incluso si tuviera todo el dinero y los mejores expertos que podría obtener por el dinero que tiene un tiempo limitado para realizar la evaluación y el análisis, no se escalará linealmente con la cantidad de expertos (es decir, no ayuda obtener 1000 expertos si hay que analizar 1000 líneas de código, porque estas 1000 líneas no son independientes entre sí).
  • Y, finalmente, están las personas que protegen su infraestructura y también tienen acceso a ella. Son humanos, por lo que pueden ser atacados con ingeniería social, sobornados, chantajeados ...

En resumen: mientras que en teoría puede tener recursos ilimitados (tiempo, dinero, conocimiento, hardware rápido ilimitado) para proteger un sistema y solo tiene clientes que son expertos y que prefieren métodos de acceso seguros y convenientes, en realidad usted no 't Siempre habrá una manera de entrar, así que debes estar preparado para ello. No crea que nunca logrará una infraestructura 100% segura, sino que cree una infraestructura que no solo sea robusta contra ataques externos, sino que pueda detectar un compromiso y recuperarse lo más rápido posible. El daño podría estar hecho, pero debería ser limitado.

    
respondido por el Steffen Ullrich 25.08.2015 - 07:26
fuente
6

Supongamos que la seguridad es como el ajedrez

A diferencia de la mayoría de la gente aquí, en realidad sé bastante sobre el ajedrez y lo suficiente sobre seguridad para hacer de esta una respuesta útil.

Si considera el ajedrez, encontrará que:

  

El número de posibilidades es tan grande que ninguna estrategia práctica las cubre todas explícitamente

Por lo tanto, como también vemos en la práctica, el participante más fuerte tiene más probabilidades de ganar. Pero aún así, siempre existe la posibilidad de que una persona fuerte / jugador de computadora pierda a uno (mucho) más débil.

Así que para concluir:

A menos que sepa el movimiento correcto en cada situación posible, no es posible una defensa perfecta

    
respondido por el Dennis Jaheruddin 25.08.2015 - 10:24
fuente
4

Una defensa perfecta es fundamentalmente posible.

En realidad, soy mediocre en el ajedrez, pero es trivial para mí el estancamiento de los mejores jugadores del mundo e incluso puedo estancarme en las computadoras de juego de ajedrez más rápidas y mejores.

Simplemente me siento en mis manos y espero a que se acabe el tiempo y el gran maestro de ajedrez no puede reclamar una victoria sobre mí.

Del mismo modo, el servidor impenetrable nunca responde a las solicitudes de los clientes y no puede ser derrotado ni por el pirata informático más inteligente.

A pesar de su perfecta seguridad, es totalmente inútil.

    
respondido por el emory 25.08.2015 - 21:11
fuente
2

La seguridad de la información es fundamentalmente diferente al ajedrez. El ajedrez es un modelo pobre para aplicar a la seguridad de la información, aunque las diferencias entre los dos pueden ser esclarecedoras.

El ajedrez es un juego de información perfecta. Ambas partes saben exactamente dónde están todas las piezas en todo momento. En la seguridad de la información, gran parte de la información está oculta, y una de las partes puede obtener una ventaja al tener más información que la otra. "El más inteligente" no tiene nada que ver con esto.

El ajedrez es un juego donde todas las reglas son conocidas y establecidas. En la seguridad de la información, la existencia de reglas es, en el mejor de los casos, cuestionable. Las "Reglas" se consideran mejor como un entorno y, por lo tanto, como un objetivo móvil.

El ajedrez es un juego de suma cero. En seguridad de la información, todos pueden perder, todos pueden ganar, nadie puede ganar, y ganar y perder no pueden significar nada.

El ajedrez es un juego con dos jugadores. La seguridad de la información tiene múltiples actores con diferentes motivaciones (consulte "no es un juego de suma cero").

El ajedrez tiene una ganancia y una pérdida claramente definidas. Las ganancias son completas, y las pérdidas son completas. La seguridad de la información es mucho más fangosa y en absoluto blanca y negra. El sistema se puede comprometer parcialmente y las pérdidas se mitigan.

    
respondido por el Steve Sether 25.08.2015 - 23:32
fuente
2

Sí. Una infraestructura de servidor nula es fundamentalmente imposible de romper.

Ningún servidor = nada que infringir = fundamentalmente imposible de infringir.

Cualquier otra cosa es fundamentalmente posible de violación.

    
respondido por el LawrenceC 27.08.2015 - 16:36
fuente
1

Obviamente, no existe una solución técnica perfecta para evitar un error humano o evitar que un atacante soborne a su administrador de sistemas. Pero si nos fijamos en el aspecto técnico puramente determinista de esto, entonces la respuesta es (trivial) sí.

Puede ver un sistema conectado a la red como una función. Tiene alguna función que desea calcular, donde las entradas son un estado del sistema y los bits que entran por el cable y las salidas son un nuevo estado del sistema y los bits se envían por el cable. Si la función es computable, entonces hay una implementación del sistema que hará exactamente eso.

El problema es que decidir si un sistema dado computa perfectamente una función es imposible en general, y es imposible determinarlo con certeza en la práctica cuando el comportamiento del sistema es complejo. Por lo tanto, una persona cuyo sistema es realmente impenetrable (de nuevo, desde esta perspectiva técnica limitada) nunca podría estar seguro de ello. A la inversa, alguien que está completamente seguro de la seguridad de un sistema muy complejo, casi seguro mantiene esa creencia de manera irracional.

    
respondido por el Thom Smith 25.08.2015 - 23:15
fuente
1

La verdadera pregunta detrás de esto es más bien: ¿cuántos recursos estás dispuesto a gastar para romper la defensa? ¿Y cuál es el nivel mínimo de seguridad que se puede considerar perfectamente seguro? No hay acceso a lo que es tan nunca? ¿Accediendo a algún dato aleatorio? ¿O solo acceder a los datos que se pueden usar para obtener ganancias se considera una violación?

Para usar tu ejemplo de ajedrez: en algún momento en el futuro, construiremos una computadora que tenga todas las posiciones de todos los juegos de ajedrez posibles. Enfrentarse contra sí mismo probablemente resultará en empates / estancamientos del 100%. Con un conjunto "limitado" de posibles movimientos, esta es una suposición válida de una defensa perfecta.

La realidad tiene demasiadas opciones para eludir las reglas y las posibles situaciones. Tal vez no quiera robar los datos, tal vez quiera que todas las copias de seguridad dejen de existir. Así que bombardeas la instalación del servidor y estás contento con los escombros no funcionales.

En la vida real, soluciones como sistemas de detección de intrusos, almacenamiento en frío (sistemas de almacenamiento que no están disponibles en la web), cuenta agresiva & los procesos de administración de contraseñas, el diseño defensivo de la aplicación y el análisis del comportamiento de uso pueden aumentar los costos de hackear esos sistemas a un nivel tal, solo los bolsillos más profundos podrían pensar en atacarlo.

Y necesitarías habilidades similares a "James Bond" y habilidades tácticas bien entrenadas para lograrlo. Para una parte muy importante de la comunidad de hackers, esto se consideraría una defensa "casi" perfecta.

Los sitios más pirateados en las noticias, incluso no saben quién está en su "césped digital". Muchos hackers pasan semanas o meses en sus sistemas, sin ser detectados. Simplemente no pensaron gastar millones de dólares en defensa mínima, ya que no están obligados por ley y las demandas son potencialmente más baratas que comenzar el juego de ajedrez de "defensa pirata".

    
respondido por el Michael K. 27.08.2015 - 13:34
fuente
1

Es mucho más fácil diseñar un sistema para mantener fuera a las personas más inteligentes que diseñar uno para mantener fuera a las personas sin nombre, descaradas, creativas y persistentes.

Las personas inteligentes proceden de una manera identificable con un patrón, a lo largo de vías predecibles de esfuerzo y exploración, y confían en un conjunto de supuestos similar y predeciblemente miserable. Un genio parece asumir siempre que cuando se utiliza la función de suma, 2 y 2 siempre son 4, y nunca 22, o 2 & 2.

La mayor amenaza para un sistema empírico y racional, en términos humanos, demuestra ser un adversario que posee un coeficiente intelectual inferior a un genio, tiende a ser un inconformista o baila al ritmo de su propio tambor en lugar de seguirlo. Las normas sociales de la manada, y escasas, nunca se identifican como inteligentes en los grupos sociales. Bien ajustados, cómodos en su propia piel y en quiénes son y aceptando su condición de no ser el líder de la manada en ninguna área, esta persona no se deja llevar por la frívola competencia personal que podría rodearla. Impulsado por sí mismo, autoestable, inspirado e impulsado por la realidad interna interna, este individuo combina una cierta chispa de espontaneidad y una creatividad genuina, no racional, con una persistencia inquebrantable y una voluntad o voluntad interna, moderada y disciplinada.

No necesitan tu validación social, por lo que toda una serie de proezas de ingeniería social resultan inútiles. A menudo pasan desapercibidos en las multitudes, ya que ni se preocupan ni compiten por la atención de nadie, salvo a quienes ellos mismos identifican como interesantes o dignos de su esfuerzo y atención.

Personalmente, he presenciado la posibilidad de que en pocos momentos preciosos de la vida una persona como la que describo desafíe, viole e invalide las especificaciones de diseño e implementación de los genios más inteligentes.

Una vez más, prefiero diseñar un sistema para las personas más inteligentes que para una persona como la que describí.

    
respondido por el Francis from ResponseBase 28.08.2015 - 01:36
fuente
1

Si hay una forma legítima de entrar, hay una forma ilegítima de entrar.

El único servidor que es fundamentalmente imposible de romper es uno al que es fundamentalmente imposible de acceder. En seguridad de red, esto se conoce como "espaciamiento de aire"; un servidor o subred está físicamente desconectado de cualquier otra red, incluido el mundo exterior. Combinado con la seguridad física de los componentes de esta red con espacio de aire, lo que impide que personas no autorizadas puedan contactar y tocar físicamente cualquier pieza de hardware informático conectado a la red, las computadoras de esta red no son responsables por un pirata informático.

... Tipo de. Nuevamente, si hay una forma legítima de entrar, hay una forma ilegítima de entrar. La seguridad física es en última instancia un esfuerzo humano y, por lo tanto, en última instancia, falible. La ingeniería social se puede usar para eludir los protocolos de seguridad cara a cara, ya sea engañando a un "portero" para que deje entrar a una persona no autorizada, o engañando a una persona autorizada para que haga algo que no debería hacer en nombre de una persona no autorizada. Cuanto mejor entrenados estén los humanos involucrados para seguir los protocolos de seguridad física, menos probable es que esto sea así, pero siempre existe una posibilidad no nula de pasar por alto la seguridad física hasta e incluir la fuerza bruta (algo como la redada Zero Dark Thirty, Si bien no es sutil en lo más mínimo, en teoría podría perpetrarse contra cualquier sede corporativa en el planeta; solo se trata de tener a las personas adecuadas con el equipo adecuado para hacer el trabajo).

    
respondido por el KeithS 28.08.2015 - 20:49
fuente

Lea otras preguntas en las etiquetas