Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Trustworthy Computing es una iniciativa de Microsoft para garantizar la producción de código seguro. Un elemento clave de la iniciativa Trustworthy Computing es el ciclo de vida de desarrollo de seguridad (SDL) de Microsoft. El SDL es una práctica de ingeniería que se usa junto con los procesos de ingeniería estándar para facilitar la entrega de código seguro. El SDL consta de diez fases que combinan procedimientos recomendados con formalización, medibilidad y estructura adicional, entre las que se incluyen:
Análisis de diseño de seguridad
Comprobaciones de calidad basadas en herramientas
Pruebas de penetración
Revisión de seguridad final
Administración de la seguridad del producto tras el lanzamiento
Especificaciones de WPF
El equipo de ingeniería de WPF aplica y amplía el SDL, la combinación de las cuales incluye los siguientes aspectos clave:
Herramientas de análisis y edición de seguridad
Administración de código crítica
Modelado de amenazas
El modelado de amenazas es un componente principal del SDL y se usa para generar perfiles de un sistema para determinar posibles vulnerabilidades de seguridad. Una vez identificadas las vulnerabilidades, el modelado de amenazas también garantiza que las mitigaciones adecuadas estén en vigor.
En un nivel alto, el modelado de amenazas implica los siguientes pasos clave mediante el uso de una tienda de comestibles como ejemplo:
Identificación de recursos. Los activos de una tienda de comestibles pueden incluir empleados, una caja fuerte, registros de efectivo e inventario.
Enumerar puntos de entrada. Los puntos de entrada de una tienda de comestibles pueden incluir las puertas delanteras y traseras, las ventanas, el muelle de carga y las unidades de aire acondicionado.
Investigación de ataques contra recursos mediante puntos de entrada. Un posible ataque podría dirigirse a la caja fuerte de una tienda de comestibles a través del punto de entrada del aire acondicionado; la unidad de aire acondicionado podría ser desatornillada para permitir que la caja fuerte se extraiga a través de ella y fuera de la tienda.
El modelado de amenazas se aplica en WPF e incluye lo siguiente:
Cómo lee el analizador XAML los archivos, asigna texto a las clases de modelo de objetos correspondientes y crea el código real.
Cómo se crea un identificador de ventana (hWnd), envía mensajes y se usa para representar el contenido de una ventana.
Cómo el enlace de datos obtiene los recursos e interactúa con el sistema.
Estos modelos de amenazas son importantes para identificar los requisitos de diseño de seguridad y las mitigaciones de amenazas durante el proceso de desarrollo.
Herramientas de edición y análisis de origen
Además de los elementos de revisión manual del código de seguridad del SDL, el equipo de WPF usa varias herramientas para el análisis de código fuente y las ediciones asociadas para reducir las vulnerabilidades de seguridad. Se utiliza una amplia gama de herramientas de origen, que incluye lo siguiente:
Advertencia
La seguridad de acceso al código (CAS) no es compatible con .NET moderno, es un concepto de solo .NET Framework. Todas las funcionalidades relacionadas con CAS se tratan bajo la suposición de plena confianza. Para obtener más información, vea Diferencias con WPF .NET - Seguridad de acceso al código.
FXCop: busca problemas de seguridad comunes en código administrado que van desde las reglas de herencia hasta el uso de seguridad de acceso al código a cómo interoperar de forma segura con código no administrado. Consulta FXCop.
Prefijo/Prefast: busca vulnerabilidades de seguridad y problemas comunes de seguridad en código no administrado, como saturaciones de búfer, problemas de cadena de formato y comprobación de errores.
API prohibidas: busca código fuente para identificar el uso accidental de funciones que son conocidas por causar problemas de seguridad, como
strcpy. Una vez identificadas, estas funciones se reemplazan por alternativas que son más seguras.
Técnicas de prueba
WPF usa una variedad de técnicas de prueba de seguridad que incluyen:
Pruebas de caja blanca: los evaluadores ven el código fuente y, a continuación, compilan pruebas de vulnerabilidades de seguridad.
Pruebas de caja negra: los evaluadores intentan encontrar vulnerabilidades de seguridad mediante el examen de la API y las características y, a continuación, intentan atacar el producto.
Pruebas de regresión de vulnerabilidades de seguridad en otros productos: Cuando sea relevante, se prueban las vulnerabilidades de seguridad de productos relacionados. Por ejemplo, se han identificado y probado las variantes adecuadas de aproximadamente sesenta problemas de seguridad para Internet Explorer para su aplicabilidad a WPF.
Tools-Based Pruebas de penetración a través de fuzzing de archivos: El fuzzing de archivos es la explotación del rango de entrada del lector de archivos a través de una variedad de entradas. Un ejemplo en WPF donde se usa esta técnica es comprobar si hay errores en el código de descodificación de imágenes.
Administración de código crítica
En el caso de las aplicaciones del explorador XAML (XBAPs), WPF crea un espacio aislado de seguridad mediante el soporte de .NET Framework para marcar y realizar un seguimiento del código crítico para la seguridad que eleva privilegios (consulte la metodologíaSecurity-Critical en la estrategia de seguridad de WPF - Seguridad de la plataforma). Dados los requisitos de alta calidad de seguridad en el código crítico para la seguridad, este código recibe un nivel adicional de control de administración de código fuente y auditoría de seguridad. Aproximadamente 5% a 10% de WPF consta de código crítico para la seguridad, que es revisado por un equipo de revisión dedicado. El código fuente y el proceso de registro son administrados mediante el seguimiento del código crítico para la seguridad y la asignación de cada entidad crítica (es decir, un método que contiene código crítico) a su estado de aprobación. El estado de cierre de sesión incluye los nombres de uno o varios revisores. Cada compilación diaria de WPF compara el código crítico con el de las compilaciones anteriores para comprobar si hay cambios no aprobados. Si un ingeniero modifica el código crítico sin aprobación del equipo de revisión, se identifica y se corrige inmediatamente. Este proceso permite la aplicación y el mantenimiento de un nivel especialmente alto de control sobre el código de sandbox de WPF.
Advertencia
Los XBAP requieren que los exploradores heredados funcionen, como Internet Explorer y versiones anteriores de Firefox. Normalmente, estos exploradores más antiguos no son compatibles con Windows 10 y Windows 11. Los exploradores modernos ya no admiten la tecnología necesaria para las aplicaciones XBAP debido a riesgos de seguridad. Los complementos que habilitan XBAPs ya no se admiten. Para obtener más información, vea Preguntas más frecuentes sobre las aplicaciones hospedadas por el explorador (XBAP) de WPF.
Consulte también
.NET Desktop feedback