Con lo complejo que es el software, es un desafío asegurarse de que no haya errores. Esta es simplemente la forma en que las cosas son diseñadas por humanos y altamente complejas. Para minimizar el problema, las empresas de desarrollo de software incluyen revisiones de código en su ciclo de vida de desarrollo de software. Pero incluso la revisión cuidadosa de expertos no puede abarcar todo. Las limitaciones presupuestarias y de tiempo real exacerban esto. Debido a esto, los errores llegan a los sistemas de producción. Algunos errores tienen poco o ningún efecto, pero otros pueden introducir vulnerabilidades de seguridad desagradables.
Una vulnerabilidad de seguridad es una clase de error que afecta la seguridad del sistema de alguna manera. Hay una amplia gama de posibles resultados, pero al final, todas las vulnerabilidades de seguridad son malas para todos. Desafortunadamente, encontrar errores puede ser difícil y llevar mucho tiempo. Si bien los desarrolladores solo pueden pasar una cantidad limitada de tiempo probando errores, otro grupo combinado pasa mucho más tiempo usando la aplicación: los usuarios.
Los usuarios de un sistema, combinados, pasan mucho más tiempo en un sistema que los desarrolladores de ese sistema. También utilizan una variedad mucho más amplia de dispositivos. Combinado, esto crea el entorno perfecto para encontrar errores: muchos ojos y casos extremos.
Poner a los usuarios a trabajar
La forma tradicional de usar a los usuarios para resolver errores es tener alguna función de informe de errores que permita a los usuarios informar un error que encuentren. Los desarrolladores pueden usar esta información para replicar, identificar y remediar el problema. El problema es que hay un incentivo mínimo para que el usuario informe cualquier problema. Es un proceso que lleva tiempo, tiene posibles implicaciones para la privacidad y, por lo general, no genera comentarios, incluso si se soluciona el problema.
Las vulnerabilidades de seguridad son aún peores. Un usuario malintencionado podría optar por utilizar una vulnerabilidad que encuentre de forma activa. Dependiendo del problema, es posible obtener acceso a algo valioso, ya sea en el mercado negro o mediante rescate o chantaje. Alternativamente, es posible vender el conocimiento de la vulnerabilidad en el mercado negro. De cualquier manera, los usuarios no tienen incentivos para reportar errores y no están incentivados para reportar vulnerabilidades de seguridad.
Cambiando las tablas
Un sistema de recompensas por errores es una forma de cambiar las tornas para fomentar la notificación activa de problemas de seguridad. El método es simple, premiarlos. El método estándar es pagar una prima monetaria y proporcionar un reconocimiento público de la contribución. Esto recompensa directamente a los usuarios por informar una vulnerabilidad de seguridad y los alienta a hacer lo correcto.
Los sistemas de recompensas por errores suelen estar abiertos a cualquiera. Cualquier usuario que identifique una vulnerabilidad de seguridad puede informarlo y recibir el pago. Sin embargo, hay algunas advertencias. Para recibir el pago, generalmente debe ser la primera persona en informar un problema, aunque a veces hay raras excepciones en circunstancias excepcionales. También tienes que seguir las reglas.
Las reglas de un sistema de recompensas por errores brindan protección general contra acciones legales si se mantiene dentro de ellas. A menudo son detallados pero relativamente sencillos. No acceda a los datos de otras personas, no utilice las vulnerabilidades de forma malintencionada y divulgue de forma privada y responsable. También puede haber algunas cosas que se consideran prohibidas.
¿Cómo son las recompensas?
Siendo realistas, las recompensas se basan en la buena voluntad. También hay un elemento de "si esto causó una violación de datos, tendríamos que pagar una multa mucho mayor". Generalmente, la empresa paga lo que es una cantidad relativamente baja por ello. Sin embargo, esto puede ser mucho para el reportero. Algunos errores se pueden pagar por menos de cien dólares. Sin embargo, en casos extremos, algunas empresas han pagado cien mil dólares por vulnerabilidades graves. Por supuesto, la mayoría de las recompensas son mucho más bajas que eso.
Históricamente, las recompensas por errores han sido mucho más bajas y, a veces, más que un simple agradecimiento. Enviar una camiseta gratis o proporcionar una suscripción gratuita de por vida al servicio, por ejemplo. Sin embargo, las grandes empresas de tecnología han impulsado el mercado, al igual que la llegada de las plataformas de recompensas por errores. Las plataformas de recompensas por errores son sitios web que alojan los programas de recompensas por errores de muchos clientes. Agrupan todo en un solo lugar. Esto hace que sea mucho más fácil para una organización más pequeña ejecutar un sistema de recompensas por errores. Una de las formas en que lo hace es simplemente estandarizando el proceso.
Por supuesto, la recompensa en una recompensa por un error es mucho menor que la que se podría lograr vendiendo el error en el mercado negro. El concepto confía en que, en general, la mayoría de la gente quiere hacer lo correcto. O al menos no quieren que el riesgo de infringir la ley vuelva a acosarlos.
Conclusión
Una recompensa por errores es un sistema de pago de una recompensa por encontrar y revelar de manera responsable una vulnerabilidad de seguridad. Alienta activamente a los usuarios a probar y mejorar la seguridad de los productos. Aporta muchos ojos nuevos al proceso de prueba, todo a un costo mínimo para la empresa. Por supuesto, como alguien que participa en un sistema de recompensas por errores, es esencial tener cuidado y comprender las reglas.
La piratería es ilegal; el programa de recompensas por errores permite probar algunas cosas, pero generalmente incluye limitaciones. Si no sigue las reglas, puede ser penalmente responsable. Si sigue las reglas, encuentra e informa un error, puede obtener un buen pago y aumentar la seguridad para usted y otros usuarios.