Skip to main content

Snyk Code agrega análisis de seguridad para C# y .NET

Escrito por

Frank Fischer

blog feature snyk code path traversal

29 de julio de 2021

0 minutos de lectura

Como nota rápida, tengo una historia personal con .NET: trabajé un tiempo en Microsoft como evangelista de .NET. Además, conocí brevemente a Anders Jejlsberg, el diseñador de C# y TypeScript, así que este blog es un poco personal para mí.

Nos alegra anunciar que Snyk Code analiza otro lenguaje para detectar vulnerabilidades de seguridad y ofrece sugerencias para corregirlas: C#. Así, sumamos un lenguaje importante a nuestro portafolio, que incluye compatibilidad con Java, JavaScript, TypeScript y Python.

Análisis de seguridad que muestra el flujo de datos de una vulnerabilidad de recorrido de rutas en C# hacia System.IO.File.ReadAllText

C# está estrechamente ligado al framework .NET y ha experimentado muchos cambios. La versión 9.0 se lanzó en 2020 y es un estándar tanto de ECMA (ECMA-334) como de ISO (23270). C# es multiparadigma (estructurado, imperativo, orientado a objetos, basado en eventos, basado en tareas, funcional, genérico, reflexivo y concurrente); en pocas palabras, es un lenguaje maduro con historia.

C# representa aproximadamente el 8 % del mercado de lenguajes de programación, lo que lo ubica en el cuarto lugar, detrás de Java, JavaScript y Python. Aunque C# comenzó como el lenguaje preferido para Windows y las aplicaciones empresariales, también se adoptó en las industrias del desarrollo de videojuegos y la realidad virtual porque se usa ampliamente en las aplicaciones de Unity.

Análisis de una vulnerabilidad de recorrido de rutas con ejemplos de recorrido de directorios, comandos de explotación y correcciones de código en C#.

Cómo agregar proyectos de C# a Snyk

Hay varias formas de analizar tu repositorio. El IDE te permite analizar el código fuente independientemente del sistema de control de versiones para que puedas revisar tu código antes de confirmarlo.

Consejo: Puedes analizar repositorios de código abierto sin bifurcarlos ni clonarlos. Solo usa Add project > Monitor public GitHub repos.

En general, Snyk Code es compatible con GitHub, GitLab, Bitbucket Cloud y Azure Repos. Las integraciones se configuran en Settings. Nota: Azure Repos no aparece directamente en el menú del proyecto Add. Haz clic en + Other para encontrarlo.

Si ya usas Snyk, deberás volver a analizar los proyectos que ya importaste para ver de inmediato los resultados de C#. De lo contrario, los resultados aparecerán cuando se realice el análisis periódico.

Cómo encontrar vulnerabilidades con Snyk Code

Snyk Code realiza análisis del flujo de datos para detectar ataques de inyección comunes, como la inyección SQL, la inyección XML, la redirección abierta o la inyección LDAP, entre otros. En nuestro conjunto de entrenamiento, encontramos con frecuencia traversal de rutas. En este tipo de ataque, se usan datos externos sin depurarlos antes para abrir archivos. Un atacante podría usar la ruta del archivo para recorrer directorios y leer o escribir archivos que quieres proteger. Además, descomprimir archivos ZIP y usar las rutas almacenadas en estos paquetes puede hacer que se sobrescriban archivos importantes. (Esto se conoce como Zip Slip y sí, Snyk Code también analiza este tipo de vulnerabilidad). Snyk Code también detecta problemas entre archivos, algo especialmente útil porque en C# puedes dividir las definiciones de clases en varios archivos.

Snyk Code es compatible con los principales frameworks de .NET: .NET Framework, .NET Core, ASP.NET (4.x) y ASP.NET Core. Como siempre, Snyk Code es compatible de forma inmediata con todas las bibliotecas que usan C#.

Consejo: Snyk Code analiza los archivos de código fuente con extensión *.cs, pero no analiza los archivos de marcado *.cshtml.

Protege tus proyectos de C# hoy mismo

Tras 6 meses en el mercado, Snyk Code ahora es compatible con JavaScript, TypeScript, C#, Python y Java. Hay más por venir y planeamos publicar compatibilidad con nuevos lenguajes en rápida sucesión durante los próximos meses. Si el tuyo todavía no está en la lista, vuelve a consultar con frecuencia: quizá tengamos novedades para ti.

Comienza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag con nuestro taller virtual 101 a pedido.