spectre

Microsoft 전용

함수에 대한 Spectre variant 1 추측 실행 장벽 명령을 삽입하지 않도록 컴파일러에 지시합니다.

구문

__declspec( spectre(nomitigation) )

설명

/Qspectre 컴파일러 옵션을 사용하면 컴파일러가 추측 실행 장벽 명령을 삽입합니다. 스펙터 변형 1 보안 취약성이 존재한다는 분석이 표시되는 위치에 삽입됩니다. 내보내는 특정 지침은 프로세서에 따라 달라집니다. 이러한 지침은 코드 크기 또는 성능에 최소한의 영향을 주어야 하지만 코드가 취약성의 영향을 받지 않고 최대 성능이 필요한 경우가 있을 수 있습니다.

전문가 분석을 통해 스펙터 변형 1 경계로부터 함수가 안전한지 검사 결함을 우회할 수 있습니다. 이 경우 함수 선언에 적용하여 함수 내에서 완화 코드 생성을 __declspec(spectre(nomitigation)) 억제할 수 있습니다.

주의

/Qspectre 투기적 실행 장벽 지침은 중요한 보안 보호를 제공하며 성능에 미미한 영향을 줍니다. 함수의 성능이 매우 중요하고 해당 함수의 안전성이 파악되는 드문 경우를 제외하고, 버퍼 보안 검사를 억제하지 않도록 권장합니다.

예시

다음 코드에서는 __declspec(spectre(nomitigation))사용 방법을 보여 줍니다.

// compile with: /c /Qspectre
static __declspec(spectre(nomitigation))
int noSpectreIssues() {
    // No Spectre variant 1 vulnerability here
    // ...
    return 0;
}

int main() {
    noSpectreIssues();
    return 0;
}

Microsoft 전용 종료

참고 항목

__declspec
키워드
/Qspectre