Hola, todos.
Hoy, en lugar de hablar de piratería e intrusión en sistemas como
solemos hacer, hablaremos de seguridad y, específicamente, de cómo proteger sitios web, aplicaciones web, aplicaciones móviles,
etc.
Obviamente, los ataques y las infracciones tienen un gran impacto negativo en las empresas, desde la pérdida de la confianza de los
clientes hasta las pérdidas financieras.
Datos de usuario filtrados, problemas legales y la lista continúa.
Ahora, si va y hace una búsqueda rápida en Google sobre cómo proteger su sitio web
o aplicación, obtendrá mucha basura.
De hecho, estaba tan decepcionado con los artículos de clickbait que en realidad no explicaban ni daban ninguna información
útil.
La mayoría sugirió que use copias de seguridad, contraseñas seguras y asegúrese de usar HTTPS.
Pero las copias de seguridad no protegen su sitio web, simplemente lo ayudan a recuperarse.
Además, el uso de ETP cifra la comunicación, pero en realidad no protege el sitio web.
El único consejo útil fue utilizar contraseñas seguras.
Pero la mayoría de los piratas informáticos no se van a sentar a intentar adivinar la contraseña como se ve en las películas de Hollywood.
Dependerán de las vulnerabilidades y debilidades dentro de su aplicación, y las explotarán para
obtener acceso a ella, independientemente de la contraseña que use.
Incluso si tiene una contraseña muy, muy compleja, incluso si está usando HTTPS e incluso si tiene copias de seguridad, mucho
de esto es realmente irrelevante.
Además, realmente no importa dónde tenga alojada la aplicación, si usa una A. W. o cualquier otro proveedor
de nube, y no importa cómo esté implementando esta aplicación.
Si está usando Kubernetes o si está usando Docker, realmente no importa.
De hecho, es muy, muy simple.
Si tiene una aplicación web vulnerable, los piratas informáticos utilizarán estas vulnerabilidades o debilidades para
obtener acceso a esta aplicación.
De todos modos, basta de despotricar.
Hablemos sobre cómo proteger realmente los sitios web y las aplicaciones.
En primer lugar, antes de empezar a hablar de ello, es muy importante comprender que lograr
el 100 por ciento de seguridad es imposible.
Todo lo que estamos tratando de hacer es mejorar la seguridad de nuestras aplicaciones y asegurarnos de que sean lo
más seguras posible.
Dicho esto, los siguientes cuatro enfoques lo ayudarán a mejorar la seguridad de sus aplicaciones, independientemente del
tipo de aplicaciones que sean y sin importar dónde estén instaladas.
Como dije, no importa si los instala en Amazon o en cualquier otro lugar en un WIC o
cualquier otra cosa, y no importa cómo lo esté implementando si está usando Docker, etc.
Entonces, lo primero que debe hacer es asegurarse de que está escribiendo código seguro de esta manera.
Su aplicación está construida desde cero para ser segura y no introducir errores o vulnerabilidades que los
piratas informáticos puedan aprovechar para obtener acceso.
Ahora, esto sería genial si puede hacerlo, pero el problema es que es más fácil decirlo que hacerlo
porque los desarrolladores necesitan ser educados y enseñados los métodos que los piratas informáticos utilizan para explotar los sistemas y obtener
acceso.
E incluso si lo hace, muchas veces los desarrolladores confían en bibliotecas de terceros y es posible que otra persona
escriba toda la aplicación.
Por lo tanto, simplemente no puede escribir código seguro porque en realidad no es el escritor o el desarrollador
de esta aplicación.
Lo que me lleva al segundo punto.
Revisión del código.
Esto es realmente muy bueno, incluso si escribió la aplicación usted mismo, e incluso si se aseguró
de escribir código seguro, es una muy buena idea que ese código sea revisado por otros desarrolladores u
otro equipo.
En caso de que los desarrolladores escribieran que la aplicación omitió algo o pasaron por alto algo, entonces será
atrapado en la etapa de revisión.
Además, si está utilizando el código escrito por otros desarrolladores o bibliotecas de terceros, una revisión
del código solucionará este problema porque puede revisar y todo.
Y nuevamente, esto es realmente bueno porque en realidad estás revisando cada línea y
asegurándote de que nada sea vulnerable o permita a los piratas informáticos explotar tu aplicación y obtener acceso.
La principal desventaja aquí es que si tiene una base de código grande, esto podría llevar mucho
tiempo y también podría ser muy costoso.
El tercer enfoque, que es muy esencial, en mi opinión, es realizar una prueba de penetración.
En una prueba de penetración.
Básicamente, contrata a un equipo de piratas informáticos éticos para intentar piratear su aplicación.
Estos piratas informáticos éticos abordarán su aplicación de la misma manera que lo hacen los piratas informáticos de Black Hat.
Intentarán recopilar la mayor cantidad de información posible y descubrirán todas las debilidades y vulnerabilidades y
verán si pueden explotarlas para obtener acceso.
Al final, cuando hayan terminado, te darán un informe detallado de todo lo que encontraron
para que puedas pasarlo a tus desarrolladores y corregir las vulnerabilidades que descubran.
La principal ventaja de este método es que puede probar superficies de ataque que no puede probar con
otros métodos, como sus servidores que ejecutan su aplicación web y el enlace más débil, que son
los empleados.
Entonces, estos piratas informáticos, los piratas informáticos éticos, pueden incluso usar la ingeniería social y encadenarla con otros ataques
más simples o vulnerabilidades más simples que puedan encontrar en su sistema para ver si pueden usarlos para
obtener acceso.
Las desventajas aquí es que podría ser un poco caro y no está preparado para el futuro.
Lo que quiero decir es que si un hacker ético realmente bueno prueba su aplicación hoy y luego se
asegura de parchear todas y cada una de las vulnerabilidades que encuentren, esto solo significa que su aplicación web es segura
hoy.
No garantiza que permanecerá seguro durante el próximo mes o el próximo año, porque cada cambio
que realice, cada función que presione o incluso cada error de visualización que corrija podría introducir otros
errores o debilidades de seguridad que luego se pueden usar para hackear su aplicación.
No solo eso, sino que nuevamente si está actualizando software o complementos de terceros nuevamente, todo
eso podría introducir vulnerabilidades, y una prueba no podrá detectar eso porque solo está haciendo los Panthers
hoy, y estos cambios futuros son no va a ser probado.
El cuarto enfoque, que realmente puede abordar este problema, es tener un programa de recompensas por errores.
Un programa de recompensas por errores es básicamente una invitación a todos los piratas informáticos éticos de todo el mundo para
que prueben su aplicación y envíen sus hallazgos.
Y solo pagaría por errores válidos o informes válidos.
La principal ventaja está aquí, como ya habrá adivinado, probablemente a estas alturas, es que una
gran cantidad de piratas informáticos están probando su aplicación, por lo que las posibilidades de que encuentren vulnerabilidades son mayores.
Y en realidad es una prueba para el futuro porque mientras tenga esa lista de recompensas de errores en vivo, estos
piratas informáticos siempre continuarán probando su aplicación y usted los motivará con recompensas.
Entonces esto podría ser cualquier cosa, desde una camiseta hasta premios monetarios.
Para asegurarse de que realmente continuarán probando su aplicación.
Entonces, incluso si está impulsando nuevos cambios, nuevas funciones o actualizando cosas, realmente no importa
porque los piratas informáticos continuarán probando su aplicación con la esperanza de encontrar errores y obtener recompensas por sus hallazgos.
Es por eso que grandes empresas como Facebook y Google utilizan estos programas de recompensas por errores, aunque
siguen todos los demás enfoques.
Como dije, todavía usan esto para asegurarse de que sus sistemas sean siempre lo más seguros posible y tan libres
de errores como sea posible.
Las desventajas aquí es, en primer lugar, que es difícil garantizar que todas las superficies de ataque estén cubiertas.
Y en segundo lugar, muchas empresas no tienen el alcance que tienen Google y Facebook, por lo que realmente no pueden
anunciar sus recompensas por errores tan bien como lo hacen las grandes empresas.
No pueden conseguir que muchos piratas informáticos éticos prueben su sitio web.
Es un desafío para ellos crear estos programas de recompensas por errores y validar los informes enviados.
Pero esto se soluciona con las plataformas de recompensas de errores que tenemos en estos días, como las recompensas de errores, las
puntocom y otras plataformas.
Bug Bounty es en realidad una empresa hermana de esa seguridad.
Entonces, mi opinión puede ser un poco sesgada, pero estoy bastante seguro de que nuestros precios son los más competitivos
y ofrecemos el mismo servicio.
De todos modos, estoy incluido en todo lo que hay allí.
Tú tienes la elección.
Puedes ver lo que quieras, y lamento si realmente te confundí con el enfoque de otoño.
Es lo que acabo de mencionar, pero en mi opinión, lo ideal sería seguir todos estos cuatro enfoques,
si es posible.
Esto puede resultar bastante caro.
Es por eso que muchas empresas no hacen eso.
Y se comprometerían y solo irían con tres y cuatro.
Así que solo harán una prueba de parche y tendrán un programa de recompensa por errores.
Y luego, otras empresas a veces se comprometen aún más.
Y elija uno de los dos, o haga un programa de recompensa de errores o haga una prueba de penetración.
En mi opinión, una prueba de lápiz no sustituye a un programa de recompensas por errores y viceversa.
Te recomendaría hacer las dos porque, como dije, cada una tiene sus ventajas
y desventajas.
Pero si realmente no puede hacer ambas cosas, al menos haga una de ellas como mínimo.
Como propietario de un sitio web o propietario de una aplicación, usted es responsable de los datos de usuario que los usuarios
le confían y, por lo tanto, debe hacer al menos lo mínimo para tratar de asegurarse de
que sus datos se manejen de manera segura.