米Twilioは、機密データを誤ってGitHubへアップロードすることを防ぐ「Deadshot」を、5月18日(現地時間)にオープンソースでリリースしている。
Deadshotは、すべてのコミットで実行され、正規表現を使用してプルリクエストの差分をスキャンし、重要なものを探す。重要なものが見つかった場合には、プルリクエストにコメントを追加して、指定されたSlackチャネルに通知することも可能で、特定された機密に対処することなくプルリクエストがマージされた場合には、セキュリティチームのキューに、Jiraチケットを作成する。
PythonベースのFlask-Celery-Redisマルチコンテナアプリケーションであり、GitHubアプリとしてインストールされ、インストール先のリポジトリのメインブランチに対して作成された、すべてのプルリクエストで実行される。
Flaskコンテナは、プルリクエストのペイロードを受信するためのAPIルートを公開し、プルリクエストのペイロードが受信されるとサービスはペイロードをRedisキューに転送する。また、Celeryコンテナはキューからペイロードを取得し、プルリクエストの差分をスキャンして指定された機密データを探す。機密に該当するデータが見つかった場合には、Celeryコンテナがプルリクエストにコメントを追加して、適切なSlackチャネルに通知するか、Jiraチケットを作成する。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です