Remarque
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 recommended.qls inclut toutes les requêtes recommandées pour les développeurs de pilotes, tandis que la suite 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 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 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 | Liste des faiblesses communes |
|---|---|---|
| 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 recommandée.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 | Liste des faiblesses communes |
|---|---|---|
| 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 | 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/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 | Liste des faiblesses communes |
|---|---|---|
| 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 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 | Liste des faiblesses communes |
|---|---|---|
| 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 CA 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/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/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