

Capslock es una CLI de análisis de capacidades para paquetes Go que informa a los usuarios de las operaciones privilegiadas a las que puede acceder un paquete determinado. Esto funciona clasificando las capacidades de los paquetes Go mediante el seguimiento de llamadas transitivas a operaciones privilegiadas de la biblioteca estándar.
El reciente aumento de los ataques a la cadena de suministro dirigidos al software de código abierto ha puesto de manifiesto que las dependencias de terceros no deben considerarse inherentemente confiables. Las capacidades indican a qué permisos tiene acceso un paquete y pueden utilizarse junto con otras señales de seguridad para indicar qué código requiere un escrutinio adicional antes de que pueda considerarse confiable.
El análisis de seguridad actual se centra en gran medida en identificar vulnerabilidades en los paquetes -- un objetivo importante dada la tasa de nuevos CVEs que se están identificando. Para complementar este análisis, estamos alertando sobre las capacidades de los paquetes, es decir, estamos identificando a qué permisos tiene acceso el paquete a través de sus dependencias transitivas de funciones de la biblioteca estándar con accesos privilegiados.
Esto tiene muchas aplicaciones potenciales, desde identificar el propósito de los paquetes observando qué capacidades utilizan, hasta dirigir las revisiones de seguridad hacia rutas de código más privilegiadas, e incluso alertar sobre cambios inesperados en las capacidades para detener posibles amenazas a la cadena de suministro antes de que se conviertan en un problema.
Esto está motivado por el Principio de Mínimo Privilegio -- la idea de que el acceso debe limitarse al conjunto mínimo que sea factible y práctico. Pretendemos aplicar esto al desarrollo de software para garantizar que el código pueda limitarse al conjunto mínimo de capacidades necesarias para realizar su propósito previsto.
Para obtener más información sobre las capacidades en tus dependencias, instala Capslock
go install github.com/google/capslock/cmd/capslock@latest
A continuación, puedes invocar Capslock ejecutando capslock desde la ruta de los paquetes que quieras analizar.
Consulta el archivo advertencias.
Consulta el archivo contribuciones.