경고 C6248
SECURITY_DESCRIPTOR DACL을 NULL로 설정하면 보호되지 않는 개체가 발생합니다.
개체의 보안 설명자에 속하는 DACL이 NULL로 설정된 경우 null DACL이 만들어집니다. null DACL은 요청하는 모든 사용자에게 모든 액세스 권한을 부여합니다. 일반 보안 검사는 개체와 관련하여 수행되지 않습니다. null DACL은 빈 DACL과 혼동해서는 안 됩니다. 빈 DACL은 ACE를 포함하지 않는 올바르게 할당되고 초기화된 DACL입니다. 빈 DACL은 할당된 개체에 대한 액세스 권한을 부여하지 않습니다. Null DACL이 있는 개체는 악의적인 사용자가 해당 보안 설명자를 변경하여 아무도 개체에 액세스할 수 없도록 할 수 있습니다. 모든 사용자가 개체에 액세스해야 하는 경우에도 관리자만 해당 개체의 보안을 변경할 수 있어야 합니다. 작성자만 개체에 액세스해야 하는 경우 개체에 DACL을 설정하면 안 됩니다. 시스템에서 적절한 기본값을 선택합니다.
코드 분석 이름: CREATINGNULLDACL
다음 코드는 null DACL이 함수에 전달되기 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
}
}
보안 설명자를 만드는 방법에 대한 전체 예제를 보려면 C++에서 새 개체에 대한 보안 설명자 만들기를 참조하세요. DCL을 만드는 방법에 대한 자세한 내용은 DACL 만들기를 참조하세요.