Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le dépôt GitHub Microsoft CodeQL offre deux suites de requêtes pour simplifier le développement de pilotes Windows et garantir la conformité avec le programme de compatibilité matérielle Windows (WHCP). La suite windows_driver_recommended.qls inclut toutes les requêtes recommandées pour les développeurs de pilotes, tandis que la suite windows_driver_mustfix.qls se concentre sur les requêtes « Must-Fix » requises pour la certification WHCP. Les deux suites sont régulièrement mises à jour.
requêtes Must-Fix pour la certification WCHP
Le sous-ensemble de requêtes suivant est Must-Fix pour la certification WHCP et sont également inclus dans la suite de correctifs recommandés .
Cet ensemble de règles est inclus dans windows_driver_mustfix.qls.
ID | Emplacement | Liste des faiblesses communes |
---|---|---|
cpp/mauvaise-vérification-de-dépassement-d'addition |
codeql/cpp-queries/<Version> /Probable Bugs/Arithmetic/BadAdditionOverflowCheck.ql |
CWE-190, CWE-192 |
cpp/pointer-overflow-check |
codeql/cpp-queries/<Version> /Probable Bogues/Gestion de la mémoire/PointerOverflow.ql |
N/A |
cpp/too-few-arguments |
codeql/cpp-queries/<Version> /Likely Bugs/Underspecified Functions/TooFewArguments.ql |
N/A |
cpp/comparison-with-wider-type |
codeql/cpp-queries/<Version> /Security/CWE/CWE-190/ComparisonWithWiderType.ql |
CWE-190, CWE-197, CWE-835 |
cpp/hresult-boolean-conversion |
codeql/cpp-queries/<Version> /Security/CWE/CWE-253/HResultBooleanConversion.ql |
CWE-253 |
Le fichier windows_driver_mustfix.qls inclut les requêtes de code Must-Fix suivantes.
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
- description: Security queries required to fix when certifying Windows Drivers
- queries: .
from: codeql/cpp-queries
version: 0.9.0
- include:
query path:
- Likely Bugs/Arithmetic/BadAdditionOverflowCheck.ql
- Likely Bugs/Memory Management/PointerOverflow.ql
- Likely Bugs/Underspecified Functions/TooFewArguments.ql
- Security/CWE/CWE-190/ComparisonWithWiderType.ql
- Security/CWE/CWE-253/HResultBooleanConversion.ql
- import: windows-driver-suites/windows_mustfix_partial.qls
from: microsoft/windows-drivers
Cet ensemble de règles est inclus dans windows-driver-suites/windows_mustfix_partial.qls.
ID | Emplacement | Énumération des Faiblesses Courantes |
---|---|---|
cpp/windows/wdk/deprecated-api |
/microsoft/windows-drivers/<Version> /drivers/general/queries/WdkDeprecatedApis/wdk-deprecated-api.ql |
N/A |
microsoft/Security/CWE/CWE-704/WcharCharConversionLimited |
/microsoft/windows-drivers/<Version> /microsoft/Security/CWE/CWE-704/WcharCharConversionLimited.ql |
CWE-704 |
Le fichier windows_mustfix_partial.qls inclut les requêtes de code Must-Fix suivantes.
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
- description: Security queries required to fix when certifying Windows Drivers
- queries: .
from: microsoft/windows-drivers
- include:
query path:
- drivers/general/queries/WdkDeprecatedApis/wdk-deprecated-api.ql
- microsoft/Security/CWE/CWE-704/WcharCharConversionLimited.ql
Requêtes de correction recommandées
Ces requêtes font partie de la suite de requêtes windows_driver_recommended.qls dans le référentiel Microsoft GitHub CodeQL. La colonne « Common Weakness Enumeration » (CWE) identifie les types de problèmes de sécurité que recherche la requête donnée. Pour plus d'informations sur les CWE, consultez la page de Mitre dédiée aux CWE.
La colonne « Common Weakness Enumeration » (CWE) affiche les types de problèmes de sécurité identifiés par la requête.
Meilleures pratiques
ID | Emplacement | Common Weakness Enumeration |
---|---|---|
cpp/utilisation de l'offset avant la vérification de la plage |
codeql/cpp-queries/<Version> /Best Practices/Erreurs Probables/OffsetUseBeforeRangeCheck.ql |
N/A |
Bugs potentiels
ID | Emplacement | Common Weakness Enumeration |
---|---|---|
cpp/mauvaise-vérification-de-dépassement-d'addition |
codeql/cpp-queries/<Version> /Probable Bugs/Arithmetic/BadAdditionOverflowCheck.ql |
CWE-190, CWE-192 |
cpp/multiplication-entière-convertie-en-long |
codeql/cpp-queries/<Version> /Probable Bugs/Arithmetic/IntMultToLong.ql |
CWE-190, CWE-192, CWE-197, CWE-681 |
cpp/signed-overflow-check |
codeql/cpp-queries/<Version> /Likely Bugs/Arithmetic/SignedOverflowCheck.ql |
N/A |
cpp/upcast-array-pointer-arithmetic |
codeql/cpp-queries/<Version> /Probable Bugs/Conversion/CastArrayPointerArithmetic.ql |
CWE-119, CWE-843 |
cpp/pointer-overflow-check |
codeql/cpp-queries/<Version> /Probable Bogues/Gestion de la mémoire/PointerOverflow.ql |
N/A |
cpp/too-few-arguments |
codeql/cpp-queries/<Version> /Likely Bugs/Underspecified Functions/TooFewArguments.ql |
N/A |
cpp/utilisation-incorrecte-opérateur-de-négation |
codeql/cpp-queries/<Version> /Probable Bugs/Probable Typos/IncorrectNotOperatorUsage.ql |
CWE-480 |
cpp/suspicieux-add-sizeof |
codeql/cpp-queries/<Version> /Probable Bogues/Gestion de la mémoire/SuspiciousSizeof.ql |
CWE-468 |
cpp/uninitialized-local |
codeql/cpp-queries/<Version> /Probable Bugs/Memory Management/UninitializedLocal.ql |
CWE-457, CWE-665 |
Sécurité
ID | Emplacement | Common Weakness Enumeration |
---|---|---|
cpp/variable-conditionnellement-non-initialisée |
codeql/cpp-queries/<Version> /Security/CWE/CWE-457/ConditionallyUninitializedVariable.ql. |
CWE-457 |
cpp/appel-variadique-non-terminé |
codeql/cpp-queries/<Version> /Security/CWE/CWE-121/UnterminatedVarargsCall.ql |
CWE-121 |
cpp/échelle-pointeur-suspecte |
codeql/cpp-queries/<Version> /Security/CWE/CWE-468/IncorrectPointerScaling.ql |
CWE-468 |
cpp/échelle-suspicieuse-pointeur-void |
codeql/cpp-queries/<Version> /Security/CWE/CWE-468/IncorrectPointerScalingVoid.ql |
CWE-468 |
cpp/fonction potentiellement dangereuse |
codeql/cpp-queries/<Version> /Security/CWE/CWE-676/PotentiallyDangerousFunction.ql |
CWE-676 |
cpp/incorrect-string-type-conversion |
codeql/cpp-queries/<Version> /Security/CWE/CWE-704/WcharCharConversion.ql |
CWE-704 |
cpp/comparison-with-wider-type |
codeql/cpp-queries/<Version> /Security/CWE/CWE-190/ComparisonWithWiderType.ql |
CWE-190, CWE-197, CWE-835 |
cpp/hresult-boolean-conversion |
codeql/cpp-queries/<Version> /Security/CWE/CWE-253/HResultBooleanConversion.ql |
CWE-253 |
cpp/suspicieux-add-sizeof |
codeql/cpp-queries/<Version> /Security/CWE/CWE-468/CWE-468/SuspiciousAddWithSizeof.ql |
CWE-468 |
Le fichier windows_driver_recommended.qls inclut les requêtes de code recommandées suivantes.
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
- description: Recommended and required queries for Windows Drivers.
- import: windows-driver-suites/windows_mustfix_partial.qls
from: microsoft/windows-drivers
- import: windows-driver-suites/windows_recommended_partial.qls
from: microsoft/windows-drivers
- queries: .
from: codeql/cpp-queries
version: 0.9.0
- include:
query path:
- Best Practices/Likely Errors/OffsetUseBeforeRangeCheck.ql
- Likely Bugs/Arithmetic/IntMultToLong.ql
- Likely Bugs/Arithmetic/SignedOverflowCheck.ql
- Likely Bugs/Conversion/CastArrayPointerArithmetic.ql
- Likely Bugs/Likely Typos/IncorrectNotOperatorUsage.ql
- Likely Bugs/Memory Management/SuspiciousSizeof.ql
- Likely Bugs/Memory Management/UninitializedLocal.ql
- Security/CWE/CWE-121/UnterminatedVarargsCall.ql
- Security/CWE/CWE-457/ConditionallyUninitializedVariable.ql
- Security/CWE/CWE-468/IncorrectPointerScaling.ql
- Security/CWE/CWE-468/IncorrectPointerScalingVoid.ql
- Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql
- Security/CWE/CWE-676/PotentiallyDangerousFunction.ql
- Security/CWE/CWE-704/WcharCharConversion.ql
- Likely Bugs/Arithmetic/BadAdditionOverflowCheck.ql
- Likely Bugs/Memory Management/PointerOverflow.ql
- Likely Bugs/Underspecified Functions/TooFewArguments.ql
- Security/CWE/CWE-190/ComparisonWithWiderType.ql
- Security/CWE/CWE-253/HResultBooleanConversion.ql
Ces requêtes font partie de la suite de requêtes windows_recommended_partial.qls .
Bogues probables - windows_recommended_partial.qls
ID | Emplacement | Common Weakness Enumeration |
---|---|---|
cpp/paddingbyteinformationdisclosure |
microsoft/windows-drivers/<Version> /microsoft/Bugs Probables/Violations de Limite/PaddingByteInformationDisclosure.ql |
N/A |
cpp/badoverflowguard |
microsoft/windows-drivers/<Version> /microsoft/Probable Bugs/Conversion/BadOverflowGuard.ql |
N/A |
cpp/infiniteloop |
microsoft/windows-drivers/<Version> /microsoft/Bugs Probables/Conversion/InfiniteLoop.ql |
N/A |
cpp/uninitializedptrfield |
microsoft/windows-drivers/<Version> /microsoft/Probable Bugs/UninitializedPtrField.ql |
N/A |
cpp/utilisation-après-libération |
microsoft/windows-drivers/<Version> /microsoft/Probable Bugs/Memory Management/UseAfterFree/UseAfterFree.ql |
N/A |
Sécurité - windows_recommended_partial.qls
ID | Emplacement | Avertissement d’analyse du code |
---|---|---|
cpp/weak-crypto/cng/hardcoded-iv |
/microsoft/windows-drivers/<Version> /microsoft/Security/Crytpography/HardcodedIVCNG.ql |
N/A |
Pilotes - Général
ID | Emplacement | Avertissement d’analyse du code |
---|---|---|
cpp/drivers/ke-set-event-pageable |
/microsoft/windows-drivers/<Version> /drivers/general/queries/KeSetEventPageable/KeSetEventPageable.ql |
Aucune vérification CA associée |
cpp/drivers/role-type-correctly-used |
/microsoft/windows-drivers/<Version> /drivers/general/queries/RoleTypeCorrectlyUsed/RoleTypeCorrectlyUsed.ql |
Aucune vérification de l’autorité de certification associée |
cpp/drivers/extended-deprecated-apis |
/microsoft/windows-drivers/<Version> /drivers/general/queries/ExtendedDeprecatedApis.ql |
Avertissement C28719, Avertissement C28726, Avertissement C28735, Avertissement C28750 |
cpp/drivers/irql-not-saved |
/microsoft/windows-drivers//<Version> drivers/general/queries/IrqlNotSaved/IrqlNotSaved.ql |
Avertissement C28158 |
cpp/pilotes/irql-non-utilisé |
/microsoft/windows-drivers/<Version> /drivers/general/queries/IrqlNotUsed/IrqlNotUsed.ql |
Avertissement C28157 |
cpp/drivers/irql-set-too-high |
/microsoft/windows-drivers/<Version> /drivers/general/queries/IrqlTooHigh/IrqlTooHigh.ql |
Avertissement C28150 |
cpp/drivers/irql-too-low |
/microsoft/windows-drivers/<Version> /drivers/general/queries/IrqlTooLow/IrqlTooLow.ql |
Avertissement C28120 |
cpp/drivers/irql-set-too-high |
/microsoft/windows-drivers/<Version> /drivers/general/queries/IrqlSetTooHigh/IrqlTooHigh.ql |
Avertissement C28121 |
cpp/drivers/irql-set-too-low |
/microsoft/windows-drivers/<Version> /drivers/general/queries/IrqlSetTooLow/IrqlSetTooLow.ql |
Avertissement C28124 |
cpp/drivers/pool-tag-integral |
/microsoft/windows-drivers/<Version> /drivers/general/queries/PoolTagIntegral/PoolTagIntegral.ql |
Avertissement C28134 |
cpp/drivers/str-safe |
/microsoft/windows-drivers/<Version> /drivers/general/queries/StrSafe/StrSafe.ql |
Avertissement C28146 |
Pilotes - WDM
ID | Emplacement | Avertissement d’analyse du code |
---|---|---|
cpp/drivers/acces-illegal-au-champ |
/microsoft/windows-drivers/<Version> /drivers/wdm/queries/IllegalFieldAccess/IllegalFieldAccess.ql |
Avertissement C28128 |
cpp/drivers/illegal-field-access2 |
/microsoft/windows-drivers/<Version> /drivers/wdm/queries/IllegalFieldAccess2/IllegalFieldAccess2.ql |
Avertissement C28175 |
cpp/drivers/illegal-field-write |
/microsoft/windows-drivers/<Version> /drivers/wdm/queries/IllegalFieldWrite/IllegalFieldWrite.ql |
Avertissement C28176 |
cpp/drivers/opaque-mdl-use |
/microsoft/windows-drivers/<Version> /drivers/wdm/queries/OpaqueMdlUse/OpaqueMdlUse.ql |
(Aucune vérification de l’autorité de certification associée) |
cpp/drivers/opaque-mdl-write |
/microsoft/windows-drivers/<Version> /drivers/wdm/queries/OpaqueMdlUse/OpaqueMdlWrite.ql |
Avertissement C28145 |
cpp/drivers/erreur-d'état-en-attente |
/microsoft/windows-drivers//<Version> drivers/wdm/queries/PendingStatusError/PendingStatusError.ql |
Avertissement C28143 |
cpp/pilotes/affectation-erronée-de-table-de-dispatch |
/microsoft/windows-drivers/<Version> /drivers/wdm/queries/WrongDispatchTableAssignment/WrongDispatchTableAssignment.ql |
Avertissement C28169 |
Le fichier windows-driver-suites/windows_recommended_partial.qls inclut les requêtes de code recommandées suivantes.
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
- description: Recommended and required queries for Windows Drivers.
- import: windows-driver-suites/windows_mustfix_partial.qls
- queries: .
from: microsoft/windows-drivers
- include:
query path:
- microsoft/Likely Bugs/Boundary Violations/PaddingByteInformationDisclosure.ql
- microsoft/Likely Bugs/Conversion/BadOverflowGuard.ql
- microsoft/Likely Bugs/Conversion/InfiniteLoop.ql
- microsoft/Likely Bugs/Memory Management/UseAfterFree/UseAfterFree.ql
- microsoft/Likely Bugs/UninitializedPtrField.ql
- microsoft/Security/Crytpography/HardcodedIVCNG.ql
- drivers/general/queries/KeSetEventPageable/KeSetEventPageable.ql
- drivers/general/queries/RoleTypeCorrectlyUsed/RoleTypeCorrectlyUsed.ql
- drivers/general/queries/DefaultPoolTag/DefaultPoolTag.ql
- drivers/general/queries/ExaminedValue/ExaminedValue.ql
- drivers/general/queries/ExtendedDeprecatedApis/ExtendedDeprecatedApis.ql
- drivers/general/queries/IrqlNotSaved/IrqlNotSaved.ql
- drivers/general/queries/IrqlNotUsed/IrqlNotUsed.ql
- drivers/general/queries/IrqlTooHigh/IrqlTooHigh.ql
- drivers/general/queries/IrqlTooLow/IrqlTooLow.ql
- drivers/general/queries/IrqlSetTooHigh/IrqlTooHigh.ql
- drivers/general/queries/IrqlSetTooLow/IrqlSetTooLow.ql
- drivers/general/queries/PoolTagIntegral/PoolTagIntegral.ql
- drivers/general/queries/StrSafe/StrSafe.ql
- drivers/wdm/queries/IllegalFieldAccess/IllegalFieldAccess.ql
- drivers/wdm/queries/IllegalFieldAccess2/IllegalFieldAccess2.ql
- drivers/wdm/queries/IllegalFieldWrite/IllegalFieldWrite.ql
- drivers/wdm/queries/OpaqueMdlUse/OpaqueMdlUse.ql
- drivers/wdm/queries/OpaqueMdlUse/OpaqueMdlWrite.ql
- drivers/wdm/queries/PendingStatusError/PendingStatusError.ql
- drivers/wdm/queries/WrongDispatchTableAssignment/WrongDispatchTableAssignment.ql