GitHubは10月2日、リポジトリのセキュリティアドバイザリに機密コメントを加えた。セキュリティアドバイザリは、公開リポジトリのメンテナーが脆弱性を非公開で議論・修正してから公開する仕組みだ。
機密コメントはリポジトリへの書き込み権限を持つ人だけが見られる。書き込み権限のない報告者や招待された共同作業者はコメントを見られず、通知も受けない。
以前はアドバイザリのすべてのコメントが報告者を含む共同作業者全員に見えていた。そのため悪用の疑いや調査の詳細は別の場所に移して議論するしかなく、その内容はアドバイザリの履歴から抜け落ちていた。
対象は非公開の脆弱性報告を有効にした公開リポジトリで、GitHub Free・Pro・Team・Enterprise Cloudで使える。
GraphQL APIは機密コメントを提供するが、REST APIは返さない。RESTだけを読む連携は、アドバイザリの会話の一部しか見ていないことになる。
注意点:固定される公開範囲と権限の変化
コメントを投稿した後は、機密と通常を切り替えられない。公開範囲は投稿した瞬間に決まる。
閲覧権限は現在のリポジトリ権限に従う。書き込み権限を失った人は機密コメントを読めなくなり、機密コメントの閲覧は監査ログに記録される。
この公開ルールだけでは、報告者が特定のメモを実際に読んだかはわからない。ここで説明したのは権限モデルであり、非公開のアドバイザリを実際に試した結果ではない。
投稿前に決める読み手
機密コメントが役立つのは、投稿前に読み手を決める場面だ。報告者に再現情報を求める内容は、通常のコメントのようにその人が見られる経路に置いてこそ届く。
社内ツールは、どのAPIの経路でコメントを読んでいるかと現在の権限を合わせて確かめる。
RESTでコメントが見えないことは、メンテナーの議論がなかった証拠ではない。
機密コメントは会話を隠す機能ではなく、投稿した瞬間に読み手を固定する機能だ。