Compartir a través de


C6248

Advertencia C6248: Si establece DACL de SECURITY_DESCRIPTOR como NULL dará como resultado un objeto desprotegido

Esta advertencia identifica una llamada que establece el campo DACL de un SECURITY_DESCRIPTOR en null. Si la DACL que pertenece al descriptor de seguridad de un objeto se establece en NULL, se crea una DACL null. Una DACL null concede acceso total a cualquier usuario que lo solicite; no se realiza la comprobación de seguridad normal con respecto al objeto. Una DACL null no se debería confundir con una DACL vacía. Una DACL vacía es una DACL inicializada y con propiedades asignadas correctamente que no contiene ninguna ACE. Una DACL vacía no concede ningún acceso al objeto al que se asigna.

Los descriptores de seguridad de los objetos que tienen DACL null podrían ser modificados por usuarios malintencionados de modo que nadie tuviera acceso al objeto.

Aunque todos los usuarios necesiten tener acceso a un objeto, éste debe protegerse de modo que sólo los administradores puedan modificar su seguridad. Si únicamente el creador necesita tener acceso a un objeto, no se debe establecer una DACL en dicho objeto; el sistema elegirá el valor predeterminado apropiado.

Ejemplo

El código siguiente genera esta advertencia porque se pasa una DACL null a la función SetSecurityDescriptorDacl:

#include <windows.h>

void f( PSECURITY_DESCRIPTOR pSecurityDescriptor )
{
  if (SetSecurityDescriptorDacl(pSecurityDescriptor,
                                TRUE,     // Dacl Present
                                NULL,     // NULL pointer to DACL    
                                FALSE))   // Defaulted

    {
      // Dacl is now applied to an object
    }
}

Para ver un ejemplo completo de cómo crear un descriptor de seguridad, vea Creating a Security Descriptor for a New Object in C++. Para obtener más información, vea Creating a DACL.