Detección de vulnerabilidades de seguridad en el código de PowerBuilder

El creciente número de ciberataques ha convertido la seguridad de las aplicaciones en una cuestión crítica.
Para garantizar la seguridad de las aplicaciones, es esencial escanear periódicamente el código para detectar vulnerabilidades que puedan ser explotadas para robar datos o piratear las funcionalidades de la aplicación.

Visual Expert es la primera herramienta que analiza el código de PowerBuilder y detecta las vulnerabilidades de seguridad.

¿Qué reglas de inspección de código sigue VE para el escaneo de seguridad?

VE cuenta con más de 300 reglas de inspección de códigos predefinidas. Enseguida encontrará algunas de ellas:

  • Utilice siempre el algoritmo de cifrado AES en modo seguro
    AES ofrece varios modos (ECB, CBC, CFB...), siendo algunos de ellos más rápidos o seguros.
    Si utiliza AES en su código PowerBuilder, sus llamadas deben utilizar los modos más seguros.
    Visual Expert escaneará su aplicación, encontrará las llamadas menos seguras y las destacará en su código.
  • Nunca utilice el console logging en producción
    El console logging es un método para averiguar discretamente lo que el código está haciendo y avisar si se ha producido un problema. Debe ser desactivado en producción, ya que podría exponer datos sensibles y revelar información sobre el funcionamiento interno de su aplicación. Visual Expert rastreará tales problemas en su código Powerbuilder, para ayudarle a desactivarlos antes de salir a producción.
  • Nunca utilice CoSetProxyBlanket o CoInitializeSecurity
    Las llamadas a las subrutinas CoSetProxyBlanket, CoInitializeSecurity y CoInitializeSecurityAlias pueden generar fallos de seguridad. Visual Expert encontrará dichas llamadas en el código de PowerBuilder para ayudar a eliminarlas.
  • Las claves de cifrado deben ser lo suficientemente largas
    Para que las claves criptográficas sean robustas contra los ataques potentes, deben tener un tamaño de clave suficiente. Visual Expert le dirá si se utilizan claves no robustas en su código de PowerBuilder.
  • Las consultas a la base de datos no deben ser vulnerables a los ataques de inyección
    La inyección de código es un ataque que inyecta código malicioso que será interpretado/ejecutado por la aplicación. En particular, la inyección de código SQL permite realizar operaciones ilegales en su base de datos (acceso a datos sensibles, toma de posesión del servidor o cierre...).
    Por defecto, las aplicaciones PowerBuilder hacen un uso intensivo de las bases de datos y son de misión crítica.
    Manejan grandes volúmenes de datos importantes, lo que las convierte en objetivos prioritarios de los hackers.

    Por ejemplo, Visual Expert buscará concatenaciones de cadenas, usadas para construir SQLs, que no estén debidamente validadas o filtradas. Las mismas pueden crear importantes brechas para la inyección de SQL. Identificar y refactorizar tales consultas reforzará la protección de su base de datos.

    Aprenda más sobre cómo proteger las aplicaciones PowerBuilder contra los ataques de inyección de código.
  • No se debe utilizar DES (Data Encryption Standard) o 3DES
    El estándar de cifrado de datos (DES) es un algoritmo de clave simétrica para cifrar datos digitales.
    Su corta longitud de clave de 56 bits lo hace inseguro. No debería utilizarse más.
    Visual Expert encontrará todas las llamadas a DES en su código de PowerBuilder, para que pueda eliminarlas.
  • Los algoritmos de cifrado deben utilizarse con el modo seguro y el esquema de relleno adecuados.
    Al asegurar su código con algoritmos de encriptación, los modos de operación y los esquemas de relleno deben ser utilizados correctamente. Dependiendo del algoritmo de encriptación utilizado, Visual Expert determinará los valores de relleno y modo adecuados, y verificará que se utilicen correctamente en su código de PowerBuilder.
  • Las excepciones genéricas no deben ser ignoradas
    En términos de manejo de excepciones, los bloques CATCH deben tener siempre un mecanismo de captura apropiado. Visual Expert identifica los bloques catch vacíos para asegurar su código con un manejo de excepciones significativo.
  • Las direcciones IP no deben ser Hardcoded
    La codificación de información sensible como direcciones IP, claves de encriptación o códigos de acceso puede exponerlos a los hackers. Si alguien puede acceder a sus archivos de ejecución, puede decompilarlos y exponer esta información. La filtración de información protegida por regulaciones oficiales como GDPR, SOX, HIPPA puede llevar a importantes consecuencias legales.
    Visual Expert buscará cualquier dirección IP codificada para eliminar esta brecha de seguridad.
  • Las identificaciones de usuario y las contraseñas no deben estar codificadas
    La codificación de información sensible, como nombres de usuario o contraseñas, direcciones IP y claves de cifrado, puede exponer su código a los hackers. Cualquiera que acceda a los archivos ejecutables puede decompilarlos y encontrar la información sensible. El filtro de datos protegidos por normativas oficiales como GDPR, SOX, HIPPA puede generar graves consecuencias legales.

    Visual Expert buscará los identificadores de usuario y las contraseñas codificadas, para permitirte eliminar estas brechas de seguridad.
  • La entrada del usuario no debe permitir ataques de inyección o ataques transversales a la ruta (path traversal)
    Los datos introducidos por los usuarios, como los parámetros de la URL o las cookies, deben considerarse sospechosos. Si su código genera dinámicamente una ruta del sistema de archivos a partir de estos datos, un hacker podría inyectar valores específicos como '../' y cambiar la ruta originalmente prevista.

    Estos ataques suelen denominarse "path traversal" o "directory traversal". Permiten al atacante acceder a directorios prohibidos para leer, modificar o eliminar datos sensibles o ejecutar comandos del sistema operativo.

    Visual Expert identificará el código que introduce tales vulnerabilidades para permitirle modificarlo. Una posible estrategia de defensa consiste en definir una lista blanca de rutas o caracteres autorizados.
  • Los comandos del sistema operativo no deben permitir ataques de inyección
    Si su código ejecuta comandos del sistema operativo basados en la entrada del usuario, debe comprobar el nombre de cada comando. De lo contrario, un hacker podría inyectar sus propios comandos para realizar operaciones ilegales y comprometer su sistema.

    Visual Expert detectará estas fallas en su código PowerBuilder, para que pueda corregirlos. Por ejemplo, puede definir una lista blanca de comandos seguros y modificar los metacaracteres del shell.
  • Las expresiones regulares no deben permitir ataques de denegación de servicio
    Es muy poco recomendable generar expresiones regulares a partir de los datos del usuario porque puede llevar a una denegación de servicio de expresiones regulares (ReDoS). Este tipo de ataque aprovecha la posibilidad de retardar drásticamente la evaluación de expresiones regulares mediante el uso malicioso de caracteres específicos. Un hacker puede inducir esta situación cuando un programa utiliza una expresión regular y la bloquea durante mucho tiempo (de ahí la denegación de servicio).

    Visual Expert localiza estas llamadas en su código PowerBuilder, permitiéndole eliminarlas o corregir la entrada eliminando/anulando los metacaracteres regex.
  • Las Funciones Hash Criptográficas no deben utilizar SHA-1 o Algoritmos de Mensaje Digesto
    Los algoritmos SHA-1 y Message-Digest: MD2, MD4, MD5 y MD6 ya no se consideran seguros. Visual Expert comprobará si dichos algoritmos se utilizan en tu código PowerBuilder y localizará las llamadas correspondientes, para ayudarle a actualizarlas con otras más seguras.
  • Los objetos SOAP e INET no deben utilizarse
    Los objetos SOAP e INET PowerBuilder no soportan el uso de TLS 1.2 y eso lo hace vulnerable a los ataques.

 

Visual Expert 2021, PowerBuilder, Code Security Scanning, Code Security Rules, Vulnerability Assessment