¿Cómo sé si una pieza de software solo hace lo que afirma el autor?

91

Sin ser un programador o un experto en informática, ¿cómo puedo saber si un programa en particular o alguna pieza de software en general no tiene funciones no deseadas ocultas que comprometen la privacidad y la seguridad?

    
pregunta user3533 06.02.2013 - 22:08
fuente

7 respuestas

165

Puede saber si algún software hace solo lo que anuncia de la misma manera que puede saber si la comida que le sirven en los restaurantes está envenenada o no. En palabras sencillas, no puede, pero la Sociedad ha ideado varios esquemas para hacer frente al problema:

  • Puede escuchar a amigos y críticos para saber si la comida en un restaurante determinado tiene buena reputación o no.
  • Puede tomar una muestra y enviarla a un laboratorio que buscará muchas (pero no todas) sustancias venenosas conocidas.
  • Puedes preguntar amablemente si puedes observar al cocinero mientras él prepara los platos.
  • El cocinero tiene un gran interés comercial en que su cliente esté contento con la calidad de la comida, y la felicidad incluye, en particular, no estar muerto.
  • La sociedad castiga a los envenenadores con la mayor severidad y generalmente se puede suponer que el cocinero lo sabe.
  • Siempre tienes la opción extrema de no comer allí si estás demasiado preocupado.

Todos estos se pueden trasladar directamente al mundo del software. Los métodos extremos para determinar la calidad del software y la adherencia a su comportamiento publicado incluyen cosas muy caras y aburridas como Criterios comunes que se resumen en, Básicamente, saber quién hizo el programa y con qué herramientas.

Respuesta alternativa: cada pieza de software tiene errores, por lo que está 100% garantizado de que no haga exactamente lo que se supone que debe hacer. (Esta afirmación incluye el software que se ejecuta en una docena de computadoras pequeñas que están incrustadas en su automóvil, por cierto).

    
respondido por el Tom Leek 06.02.2013 - 22:39
fuente
23

No puedes, al menos no con el 100% de precisión. Hablando como programador, es muy fácil codificar lo que quiera, y no es necesariamente lo que se anuncia.

Sin embargo, no toda actividad inesperada es maliciosa. Supongo que te preocupa más la actividad maliciosa. Incluso eso no es 100% posible de detectar todo el tiempo, pero hay esperanza.

Puedes usar un software que supervisa cosas como el tráfico de red, la actividad de los archivos, etc., para encontrar pistas de que el software se está comportando de una manera inesperada. Por ejemplo (y sé que esto es solo una herramienta básica) puede usar Fiddler para ver si una aplicación en particular está accediendo a Internet a través de http (s). (Sí, sé que hay mejores herramientas que hay por ahí, sin embargo. Fiddler es solo el primero que me viene a la mente). En Windows, puede usar Monitor de proceso para obtener aún más información. Existen herramientas similares para otras plataformas.

También hay varios otros servicios disponibles para que los utilice y que realizarán el análisis por usted.

respondido por el David Stratton 06.02.2013 - 22:35
fuente
9

Especialmente a medida que el software se hace más grande y más complicado, se vuelve imposible * incluso para los expertos responder a eso. En ese sentido, la privacidad y la seguridad de una aplicación se manejan mejor mediante el uso de sandbox o Mandatory Access Control . La idea detrás de estos métodos es que el software se ejecuta en un sistema que controla lo que puede hacer y usted le permite hacer solo lo que espera que haga. Hecho correctamente, puede limitar las conexiones posibles y recibir una notificación si el programa alguna vez intenta acceder a archivos que no esperaba. Se pueden usar métodos muy avanzados para monitorear la memoria o descifrar el tráfico de la red a través de un servicio proxy.

En resumen, si no puedes entender todo lo que hace, la respuesta es restringir todo lo que puede hacer con algo que se ejecuta dentro (el sistema operativo).

    
respondido por el Jeff Ferland 06.02.2013 - 22:41
fuente
7

En su conocida conferencia ACM Turing Award "Reflexiones sobre la confianza" (¡ahora hace casi exactamente 30 años!) Ken Thompson dijo: "No puedes confiar en el código que no creaste totalmente". En la práctica, el software comercial no es una excepción a otros productos comerciales, ya que aquellos de productores que tienen buenos nombres en el mercado generalmente tienen una mayor probabilidad de ser mejores. Sin embargo, no hay ninguna garantía absurda para eso. Hace décadas recibí disquetes de un productor conocido que tenía virus. En ese caso yo personalmente creo que ese no fue un acto malicioso de nadie dentro de la empresa, sino que algunas computadoras de la empresa se infectaron con virus desde el exterior. Sin embargo, evidentemente no es posible, en general, excluir al 100% la posibilidad de que los empleados internos de la empresa introduzcan puertas traseras en el software, ya sea que su CEO lo sepa o no. Las puertas traseras podrían ser, en mi humilde opinión, un problema extremadamente crítico, ahora que las guerras cibernéticas se avecinan en el mundo. Una agencia secreta de un gobierno podría gestionar de alguna manera (mediante dinero, coersión o incluso malware) implantar tales puertas traseras en ciertos programas que normalmente sirven para garantizar la seguridad de las comunicaciones (por ejemplo, aquellas relacionadas con firmas digitales) y que se venden y utilizados por ciertas naciones extranjeras no amigables o potencialmente no amigables y de forma inmediata o en algún momento posterior apropiado ("bombas de tiempo", etc.) explotan las puertas traseras para lograr sus objetivos de interrumpir la infraestructura crítica de las naciones objetivo, etc. Stuxnet, Flame y Gauss son un par de nombres que deberían dar algunas indicaciones de las capacidades de los potenciales falos de fe.

    
respondido por el Mok-Kong Shen 07.02.2013 - 14:35
fuente
1

En última instancia, todo se reduce a la confianza. ¿Confías en la reputación de la empresa que lanza el software? Si es de código abierto, ¿está siendo usado por suficientes desarrolladores para que estén subiendo banderas si hubiera problemas? Hay una cierta cantidad de fuerza en los números, ya que un producto de uso común es más probable que se realice una investigación exhaustiva sobre si es confiable. A menos que sea muy paranoico, generalmente lo mejor es la opinión de lo que la comunidad tiene que decir sobre un software en particular, pero siempre habrá errores y siempre habrá errores.

    
respondido por el AJ Henderson 06.02.2013 - 22:43
fuente
1

Lamentablemente, no puedes ...

Como un buen programador podría llamarse wizard por sus usuarios, un buen troyano falsificaría por completo un entorno normal para que la víctima esté tranquila.

Algunos virus / troyanos realizan una desinfección del sistema víctima, con el fin de

  • asegúrate de que otro virus no rompa su trabajo
  • asegúrate de que un antivirus no lo encuentre
  • haga que el sistema de la víctima funcione bien para garantizar que la víctima se mantenga segura.

¡Entonces, no puedes! En caso de duda consulte !!!!

    
respondido por el F. Hauri 06.02.2013 - 22:43
fuente
0

Como han señalado otros, no hay una forma garantizada de saber. La mayor parte del tiempo, debe confiar en la integridad y la reputación del proveedor. Seguir prácticas seguras, como solo instalar software de fuentes confiables, puede ayudar, pero al igual que en la vida real, a veces confiamos en las personas equivocadas.

Al final, creo que deberíamos adoptar un cierto nivel de paranoia. Si instala una aplicación en su teléfono, no solo acepte o diga que sí cuando el sistema operativo de su teléfono le informa que el teléfono desea acceder a su información privada, a su ubicación, etc. Pregúntese a sí mismo por qué necesita ese acceso. Si cree que el acceso que solicita la solicitud está justificado en función de lo que espera que haga, entonces decir que sí tal vez está bien. Por otro lado, si parece que está solicitando acceso a información o servicios que están fuera de lo que debería necesitar o en lo que debería estar interesado, entonces sea un poco sospechoso y sea cuidadoso antes de simplemente decir que sí.

    
respondido por el Tim X 07.02.2013 - 22:36
fuente

Lea otras preguntas en las etiquetas