Buenas prácticas sobre vulnerabilidades y dependencias

En Serquo siempre utilizamos buenas prácticas, y una de las que recomendamos y que alejan al código de posibles ataques, es mantener actualizadas las dependencias. Estas librerías con las que trabajamos para ayudarnos en la construcción, representan de media un 90% del código total de un proyecto.

Os proponemos dos acciones para intentar paliar esta problemática:

1. Revisión manual para incluir una nueva dependencia.

Al incluir una nueva dependencia, la recomendación es intentar usar la ultima versión estable de la misma. Revisando en el repositorio central de maven podemos chequear si ésta tiene vulnerabilidades directas o asociadas.

https://mvnrepository.com/

 

Si por compatibilidades con otras dependencias o para resolver algo de manera temporal hemos de consumir esa versión vulnerable, siempre podemos revisar la severidad de la misma y qué puede pasar en el caso de ser explotada usando el código de vulnerabilidad CVE y visitando las paginas de las asociaciones que se encargan de clasificar y analizar estos casos:

Por ejemplo:

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15250

https://nvd.nist.gov/vuln/detail/CVE-2020-15250

2. Revisión general de dependencias con vulnerabilidades usando un plugin de Maven

Si lo que deseas es revisar tu proyecto completo, existe un plugin de Maven que se encarga de revisar dependencia a dependencia.

https://github.com/jeremylong/DependencyCheck

Para usarlo, es tan sencillo como incluir un profile en el pom de tu proyecto:

 

    

<profiles>
    <profile>
        <id>owasp-dependency-check</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.owasp</groupId>
                    <artifactId>dependency-check-maven</artifactId>
                    <version>7.0.0</version>
                    <executions>
                      <execution>
                        <goals>
                            <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

 

y lanzar desde terminal o tu IDE de confianza:

mvn

Esa es toda la magia que necesitas para que te muestre por pantalla y en un reporte en html todas las dependencias que ponen en riesgo la seguridad de tu proyecto

Por pantalla

 

dependencias

En html

Esta acción debería ser llevada a cabo de manera periódica, siendo lo ideal integrarla en el proceso de CI/CD del proyecto.

Esperamos que esto os ayude a mantener vuestros proyectos seguros.

Para cualquier pregunta sobre seguridad, no dudes en escribirnos a info@serquo.com