Problem
The released VSIX is unsigned:
Impact
Social-engineering / impersonation risk: end users can't distinguish a real release from a swapped one downloaded from a malicious mirror.
Remediation
-
Obtain a code-signing certificate (Authenticode, SHA256, with a trusted timestamp authority).
-
Store the PFX and password as AppVeyor encrypted variables (CERT_PFX, CERT_PWD).
-
Add a signing step to appveyor.yml after msbuild and before artifacts: publish:
signtool sign /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 /f $env:CERT_PFX /p $env:CERT_PWD source\StatisticsParser.Vsix\bin\x64\Release\StatisticsParser.vsix
-
Gate signing on APPVEYOR_PULL_REQUEST_NUMBER being empty so forked-PR builds don't attempt to access the secret (covers finding B6).
Problem
The released VSIX is unsigned:
<SignAssembly>/<AssemblyOriginatorKeyFile>.signtoolstep.Publisher="Brent Ozar Unlimited"is unverified — SSMS 22 installs the extension as "Unknown Publisher" and Windows SmartScreen flags the download.Impact
Social-engineering / impersonation risk: end users can't distinguish a real release from a swapped one downloaded from a malicious mirror.
Remediation
Obtain a code-signing certificate (Authenticode, SHA256, with a trusted timestamp authority).
Store the PFX and password as AppVeyor encrypted variables (
CERT_PFX,CERT_PWD).Add a signing step to
appveyor.ymlaftermsbuildand beforeartifacts:publish:Gate signing on
APPVEYOR_PULL_REQUEST_NUMBERbeing empty so forked-PR builds don't attempt to access the secret (covers finding B6).