Есть ли способ убедиться, что загруженный файл принадлежит Microsoft?

Есть ли способ убедиться, что загруженный файл принадлежит Microsoft?

Есть ли способ убедиться, что загруженный или присутствующий в системе файл принадлежит Microsoft и не был подделан? Если да, то есть ли способ PowerShell?

Я думаю об использовании Get-AuthenticodeSignatureCommandlet, но не уверен, что иду в правильном направлении.

Может ли кто-нибудь мне помочь с этим?

Ниже приведен вывод, который я получаю для файла:

PS C:> Get-AuthenticodeSignature -FilePath .\sts2016-kb3141486-fullfile-x64-glb.exe | fl

SignerCertificate: [Тема] CN=Microsoft Corporation, OU=MOPR, O=Microsoft Corporation, L=Redmond, S=Washington, C=US

                    [Issuer]
                       CN=Microsoft Code Signing PCA, O=Microsoft Corporation, L=Redmond, S=Washington, C=US

                    [Serial Number]
                       330000014096A9EE7056FECC07000100000140

                    [Not Before]
                       8/18/2016 8:17:17 PM

                    [Not After]
                       11/2/2017 8:17:17 PM

                    [Thumbprint]
                       98ED99A67886D020C564923B7DF25E9AC019DF26

Сертификат TimeStamper:

Статус: Действительный

StatusMessage: Подпись проверена.

Путь: C:\sts2016-kb3141486-fullfile-x64-glb.exe

Тип подписи: Authenticode

IsOSBinary: Ложь

Итак, если просто проверить файл и увидеть, что у него тот же издатель и его подпись проверена, могу ли я считать этот файл безопасным?

Спасибо!

решение1

Вы можете использовать контрольные суммы или, как их называет Microsoft на своей странице загрузки, хэш пакета. Это хэш, который может быть создан из файла. На странице информациипрограммное обеспечениепредоставленного вами, внизу находится раздел с информацией о хэше файла.

введите описание изображения здесь

Вы можете использовать эту информацию, чтобы подтвердить, что вы загрузили правильное программное обеспечение. В PowerShell есть командлет Get-FileHash, который вы запускаете для файла. По умолчанию он использует SHA256. Вы можете использовать параметр -Algorithm, чтобы использовать другой алгоритм. Я использовал SHA1 в своем примере ниже, так как он соответствует снимку экрана выше. Если вы используете -Algorithm SHA256, он соответствует «Package hash SHA 2» со снимка экрана.

Get-FileHash C:\sts2016-kb3141486-fullfile-x64-glb.exe -Algorithm SHA1

Algorithm       Hash                                       Path                                                                                                                             
---------       ----                                       ----                                                                                                                             

SHA1            1B30B50FEB5FB3F8D764C6C0D6523DBA5BE05C1E   C:\sts2016-kb3141486-fullfile-x64-glb.exe

Если хеши совпадают, вы можете быть уверены в успешной загрузке.

Спасибо, Тим.

Связанный контент