Impenetrable: desde todos los aspectos es una ilusión, pero una muy buena para tener.
Usted ha enfatizado en dos cosas: piratería y vigilancia del gobierno. Puede tomar una página de Apple, que se trata más de dar a los usuarios más control sobre la privacidad que de hacer algo a favor o en contra de la vigilancia gubernamental.
El gobierno es lo último de lo que quiere preocuparse. Porque cuando almacena datos que no están encriptados, no encriptados con la clave que pertenece al usuario, cualquier persona que pueda tener acceso a su red / base de datos puede leer los datos (puede ser por medios legales o por piratería o trabajo interno).
- ¿Qué es centrado en API?
- ¿Qué base de datos debo usar para una aplicación web excelente en la que estoy trabajando: MongoDB, PostgreSQL o MySQL, con MongoDB / Redis como secundario?
- ¿Cuáles son algunos de los mejores marcos de desarrollo web?
- Cómo construir una página de inicio de sesión múltiple
- ¿Cuáles son los VPS asequibles con Cpanel?
Hackeo: tiene muchas formas, exploits tradicionales en aplicaciones web o servidores web o en su red u otras. Para ser completamente infalible, debe construir todo por su cuenta, incluido el hardware en el que se ejecutarán sus aplicaciones (los caballos de Troya no solo se encuentran en el software sino que también están ocultos en el hardware / firmware o se pueden plantar una vez que el sistema cobra vida )
Espero que te hagas una idea y es por eso que hay tantas respuestas como “no escribas la aplicación ni desconectes el cable”.
Ahora echemos un vistazo a cómo puede lograr esto en una medida que sea factible, significativa y aborde el riesgo.
Hardware / SO / Red y parches:
¿Tiene las habilidades y los recursos para construir su propio hardware, sistema operativo (o al menos una versión limpia de Linux conocido) y construir una red segura y aplicar parches en un intervalo regular? Si no es así, ¿confía en uno de los proveedores de la nube para que haga ese trabajo por usted?
Por lo tanto, aborde este riesgo utilizando un proveedor de confianza de la nube (AWS / Azure) y tome precauciones adicionales como imágenes encriptadas, reglas de firewall fuertes, elementos de seguridad de red: detección, prevención, etc.
Pila de software :
¿Va a construir una pila de software completamente nueva: DB, servidor web, lenguaje de programación, etc. Si no, tiene que elegir uno que tenga un buen soporte del proveedor o de la comunidad.
Las soluciones preempaquetadas tienen una vulnerabilidad común, un mercado para exploits, etc. A menudo escuchas gritos de ingenieros de seguridad sobre el cambio de contraseñas predeterminadas y otras cosas. Eso es muy cierto, ya que es el punto de entrada más común. No tenemos que hackear nada.
Aplicación web en sí:
¿Cómo planeas diseñar tu aplicación web? La autenticación y la autorización son lo primero para comenzar. ¿Qué se considera información confidencial que desea evitar que se filtre (ya sea intrusión pirateada o gubernamental)? ¿Cómo se encriptan y administran las claves? Echa un vistazo a OWASP que es un buen comienzo.
O tiene que construir un sistema ecológico completo donde controle todo … al igual que Apple.
Datos :
Cómo se producen, consumen, etc., los datos. Cuántas capas lógicas y físicas cruza. Debe analizar cada punto débil para abordar la seguridad de los datos en tránsito y en reposo.
Personal :
¿Confiaría en las personas que contrata o trabaja (contratistas) para hacer el trabajo en la mejor medida posible? Siempre hay una información privilegiada, ya sea un empleado descontento o alguien que hace clic en un correo electrónico por error. De cualquier manera, debe abordar todos los riesgos asociados con el personal.
Aplicación web impenetrable:
Dado que hay demasiadas partes móviles y cosas que no están bajo su control, desea establecer sus expectativas: la mejor postura de seguridad para su aplicación. No puede lograr el 100% de su objetivo, pero seguramente puede hacer que 10 o 100 veces sea más difícil para un hacker ingresar a su sistema si “simplemente sigue los datos” y busca varias formas de piratear el sistema.
Tiempo, recursos y conflictos con los desarrolladores:
Para crear una aplicación web segura y confiable, necesita tiempo y recursos (hecho conocido), pero también debe tratar con los desarrolladores. Los desarrolladores no van a pensar primero en la seguridad. Quieren que la aplicación funcione, por lo que debe intervenir constantemente y crear una cultura donde la seguridad sea lo primero. El desarrollo seguro lleva tiempo.
Buena suerte.