다음을 통해 공유


C6248

경고 C6248: SECURITY_DESCRIPTOR의 DACL을 NULL로 설정하면 보호되지 않는 개체가 만들어질 수 있습니다.

이 경고는 SECURITY_DESCRIPTOR의 DACL 필드를 null로 설정하는 호출을 식별합니다.개체의 보안 설명자에 속하는 DACL이 NULL로 설정되면 null DACL이 만들어집니다.null DACL은 이를 요청하는 모든 사용자에게 모든 액세스 권한을 부여하므로 해당 개체와 관련되어 일반적인 보안 검사가 수행되지 않습니다.null DACL을 빈 DACL과 혼동해서는 안 됩니다.빈 DACL은 적절하게 할당되고 초기화된 DACL이며 ACE를 포함하지 않습니다.빈 DACL은 이를 할당받은 개체에 대해 액세스를 허용하지 않습니다.

개체에 null DACL이 있으면 악의적 사용자가 해당 개체의 보안 설명자를 수정하여 개체에 아무도 액세스하지 못하도록 만들 수 있습니다.

모두가 개체에 대한 액세스가 필요해도 관리자만 보안을 변경할 수 있도록 개체에 보안을 적용해야 합니다.작성자만 개체에 대한 액세스가 필요한 경우에는 개체에 DACL을 설정하지 않아야 합니다. 이 경우 시스템에서 적절한 기본값을 선택합니다.

예제

다음 코드에서는 SetSecurityDescriptorDacl 함수에 null DACL이 전달되기 때문에 이 경고가 생성됩니다.

#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
    }
}

보안 설명자를 만드는 방법에 대한 전체 예제를 보려면 Creating a Security Descriptor for a New Object in C++를 참조하십시오.자세한 내용은 Creating a DACL을 참조하십시오.