Programación

Sensiolabs, The web service failed for an unknown reason (HTTP 403)

Uno de los elementos favorables en la CI (Integración continua) es el uso de un paso dedicado a la aplicación de Sensiolabs para la detección de fallas de seguridad no sólo en nuestro código sino en los paquetes de terceros (vendors). Hoy tras mucho tiempo sin dedicarme a ello, me encontré con un error en el despliegue de CI en un proyecto nuevo.

$ php security-checker security:check ../composer.lock
The web service failed for an unknown reason (HTTP 403).
Cleaning up file based variables
ERROR: Job failed: exit code

Escenario

Para la integración continua uso sensiolabs en mi gitlab personal, en un paso (stage). Originalmente he usado en mi .gitlab-ci.yml:

sensiolabs:
  stage: security
  script:
    - test -d security-checker || git clone https://github.com/sensiolabs/security-checker.git
    - cd security-checker
    - composer install
    - php security-checker security:check ../composer.lock
  dependencies: []
  cache:
    paths:
      - security-checker/

Pero esto me llevó al fallo del artículo.

Tras una búsqueda localicé el paquete original en Packgist con una advertencia indicándome que el paquete estaba abandonado y el enlace al paquete actual mantenido por Fabien Potencier (aka fabpot).

Local PHP Security Checker  es el paquete actual, y esta programado en Go, por lo que las instrucciones son claras.

  • Descargar el binario que nos corresponda
  • Renombrarlo a local-php-security-checker
  • Hacerlo ejecutable
  • Ejecutarlo

Modificar nuestro .gitlab-ci.yml

sensiolabs:
  stage: security
  image: edbizarro/gitlab-ci-pipeline-php:7.3
  script:
    - curl -L -sS --output local-php-security-checker https://github.com/fabpot/local-php-security-checker/releases/download/v1.0.0/local-php-security-checker_1.0.0_linux_amd64
    - chmod +x ./local-php-security-checker
    - ./local-php-security-checker
  dependencies: []
  cache:
    paths:
      - security-checker/

Después de esto, nuestro repositorio podrá ejecutar el paso (stage) de seguridad sensiolabs de forma correcta.

Alternativa

También puedes instalarlo como paquete en el dev de tu proyecto

❯ composer require --dev thibautselingue/local-php-security-checker-installer
❯ vendor/bin/local-php-security-checker-installer && vendor/bin/local-php-security-checker
Symfony Security Check Report
=============================

No packages have known vulnerabilities.

Note that this checker can only detect vulnerabilities that are referenced in the security advisories database.
Execute this command regularly to check the newly discovered vulnerabilities.

Agradecimientos

Comparte este articulo en

Abkrim

Yo solo se que no se nada, y que me paso la vida aprendiendo

Entradas recientes

Youtube – Mod Security en DirectAdmin. Conocerlo y gestionarlo en el panel de control DirectAdmin.

¡Hola a todos! Vamos a sumergirnos en el fascinante mundo de Mod Security y aprender…

3 meses hace

Apertura del canal Youtube, Tecno Boomer, dedicado al mundo del hosting

Ya son muchos años en el sector, muchos años pasando por varios paneles de control,…

3 meses hace

El Uso de la Lista UCEPROTECT en los Niveles 2 y 3: Una Falacia de Causa Cuestionable

La lista UCEPROTECT es una herramienta utilizada por muchos administradores de sistemas y proveedores de…

5 meses hace

Fatal error: Allowed memory size of 268435456 bytes exhausted en WordPress. Otro post más… pero diferente

No es la primera vez que me encuentro con el agotamiento de la memoria en…

11 meses hace

Problemas de Acceso con Centos 7, Almalinux 8, Ubuntu 20.04, y Debian 10/11: Un Enigma Firewall CSF

Descubre cómo solucionar problemas de acceso a servidores con Centos 7, Almalinux 8, Ubuntu 20.04…

1 año hace

MySQL no inicia debido a errores en la base de datos interna de MySQL

Uno de los mensajes más alarmantes que puedes encontrarte es aquel que indica que tu…

1 año hace