[Windows] Sign arkcli release binaries for Smart App Control / WDAC compatibility
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
調査の方向性
まず、リリースパイプライン、Windows AMD64/ARM64 アーティファクトのステップ、manifest.json の生成箇所を特定します。バイナリが CDN、npm パッケージ、GitHub Releases をどのように経由するかを追跡し、その後、署名と検証をどこに配置すべきかを判断します。公開されるすべての Windows アセットに署名とタイムスタンプが付与され、その署名と信頼チェーンが CI を通過し、ハッシュが manifest.json と一致すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
The Windows arkcli release binary is not Authenticode-signed. On Windows with Smart App Control enabled, Windows Code Integrity blocks the binary before any CLI command can run.
Microsoft does not provide a per-app bypass for Smart App Control. Asking users to disable this system-wide protection is therefore not an acceptable workaround. Please sign every Windows release binary with a trusted RSA-based code-signing certificate.
Environment
- Windows x64, build
26200, display version25H2 - Smart App Control: enabled and enforced
- Code Integrity policy: enforced for user-mode code
- Installed package:
@volcengine/ark-cli 1.0.13 - Latest package also checked:
@volcengine/ark-cli 1.0.15
Evidence
Both tested Windows binaries report Get-AuthenticodeSignature: NotSigned:
1.0.13SHA-256:EBF8A1BDECDBF96D5A5EB97C78699741B61C5DCEF1FA5B8CDAA9901F68F956291.0.15SHA-256:B2277006BE2408E938FB272A6CD48D468B166931A3E8C4D9B899785CAECBF47E
Windows Code Integrity records block events 3033 and 3077. The process is blocked before argument parsing, so commands such as arkcli --version, authentication status checks, usage queries, and plan queries cannot run.
The npm package downloads the Windows binary from the Volcengine CDN and verifies the SHA-256 listed in manifest.json, but hash verification does not establish a trusted Windows publisher identity and does not satisfy Smart App Control.
Reproduction
- Use Windows with Smart App Control enabled.
- Install
@volcengine/ark-clifrom npm, or download the Windows AMD64 asset from the official release. - Run any
arkclicommand. - Observe that Windows Code Integrity blocks the unsigned executable and records event
3033or3077. - Run
Get-AuthenticodeSignatureagainst the downloaded binary; the result isNotSigned.
Expected result
The official Windows binary should run while Smart App Control remains enabled, with a valid and trusted publisher signature and no related Code Integrity block events.
Requested implementation
Please update the release pipeline to:
- Authenticode-sign every Windows AMD64 and ARM64 production binary with an RSA-based certificate whose chain is trusted by Windows.
- Use a SHA-256 file digest and a trusted RFC 3161 timestamp.
- Sign the final binary before calculating and publishing the SHA-256 in
manifest.json. - Publish the same signed artifact through the Volcengine CDN, npm installation flow, and GitHub Releases.
- Add a release CI gate that fails if
Get-AuthenticodeSignatureis notValid, the signer chain is untrusted, or the signed asset hash differs from the manifest. - Document the expected publisher name and a Windows signature-verification command.
Acceptance criteria
-
Get-AuthenticodeSignature <arkcli-windows-*.exe>returnsValid. - The signer uses an RSA-based certificate trusted by Windows Smart App Control.
-
arkcli --versionruns with Smart App Control enabled. - A read-only command such as authentication status can run without Code Integrity event
3033or3077. - Windows AMD64 and ARM64 assets distributed by CDN, npm, and GitHub Releases are signed consistently.
- Release CI verifies the signature, timestamp, and published SHA-256 for every Windows build.
References
- Microsoft: Smart App Control FAQ — no per-app bypass is available: https://support.microsoft.com/windows/smart-app-control-frequently-asked-questions
- Microsoft: Code signing for Smart App Control: https://learn.microsoft.com/windows/apps/develop/smart-app-control/code-signing-for-smart-app-control
中文摘要
Windows 版 arkcli 当前未进行 Authenticode 签名,在开启 Smart App Control 的 Windows 上会在命令执行前被 Code Integrity 拦截。微软不提供单程序例外,用户只能保留系统保护而无法使用 CLI,或整体关闭保护,两者不应由用户承担。
请为 Windows AMD64/ARM64 正式发布二进制增加受 Windows 信任链认可的 RSA 代码签名和可信时间戳;签名完成后再计算并发布 manifest.json 中的 SHA-256,并在发布 CI 中强制校验签名状态、证书链、时间戳和哈希一致性。CDN、npm 安装流程和 GitHub Releases 应分发同一份已签名产物。
- 主要言語
- Go
- スター
- 142
- フォーク
- 15
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
volcengine/ark-cli のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
volcengine/ark-cli#28 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
volcengine/ark-cli#27 · リアクション 1 件 ·
-
[BUG] Responses API:tools 含 web_search 声明时,deepseek 将 function_call_output 误读为用户消息,多轮工具对话可形成死循环オープン
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
volcengine/ark-cli#26 · コメント 6 件 ·
-
[UX] postinstall silently injects 25 arkcli skills into every detected AI agent — should be opt-inオープン
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
volcengine/ark-cli#24 · リアクション 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
volcengine/ark-cli#15 · コメント 1 件 ·
volcengine/ark-cli の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
chaitin/agent-compose#770 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
v3.8.0 vanilla manifest points to non-existent images registry.k8s.io/csi-vsphere/csi-vsphere/{driver,syncer}対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンkind/bug
難易度 1/5 1〜3時間 初心者へのやさしさ 85/100
kubernetes-sigs/vsphere-csi-driver#4351 ·
メンテナーはふだん 1 日以内に返信
-
component/gpu-kubelet-plugin component/helm needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
kubernetes-sigs/dra-driver-nvidia-gpu#1559 ·
メンテナーはふだん 1 日以内に返信
-
workflow: redundant goroutine in scheduleRetry対応中かも @moodbased が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 2 日以内に返信