none
CreateDirectory 사용시 CEW-266 검출 RRS feed

  • 질문

  • MFC 기반의 프로그램을 만들었습니다.

    IBM 사의 Security AppScan Source for Analysis 프로그램으로 취약성을 분석 하던중

    CreateDirectory() 함수와 ShExecute() 함수에서 권한에 따른 취약성(CEW 266) 이 발생 하였습니다.

    타겟 장비는 윈도우 10 버전을 사용 하는데 해당 취약점이 발생 할수 있을까요?

    발생 할수 있다면 조취할수 있는 방법은 무엇이 있을까요?

    2020년 7월 17일 금요일 오전 2:48

모든 응답

  • CreateDirectory()를 사용하여 디렉토리와 파일을 만들 때 대부분 보안 설명(security description)을 NULL로 전달하기에 문제가 발생할 수 있습니다. 예를 들어, 관리자가 만든 파일 및 디렉토리는 관리자가 아닌 사람이 액세스하거나 사용하지 못합니다. 
    따라서 이 두 함수를 사용하여 파일 및 디렉토리를 작성할 때 이와 관련된 요구 사항이있는 경우 보안 설명을 작성하거나 작성된 파일 및 디렉토리의 보안 레벨을 낮추어야합니다.

    SECURITY_ATTRIBUTES sa;
    SECURITY_DESCRIPTOR sd;

    InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
    SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
    sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.bInheritHandle = TRUE;
    sa.lpSecurityDescriptor = &sd;

    CreateDirectoryW(lpPathName, &sa );


    CreateDirectory 함수가 권한을 잘못 할당하기 때문에 권한 문제가 발생합니다. ShExecute()도 권한 문제를 유발합니다. 따라서 첫 번째 질문이 해결되면 두 번째 질문도 해결될것입니다.

    MSDN Community Support Ricky

    다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.

    2020년 7월 21일 화요일 오전 6:13
    중재자