検索
ニュース

GitHubに誤って機密データをアップロードしようとしていないか、オープンソースの対策ソフトが公開正規表現を用いてプルリクエストの差分をリアルタイムにスキャン

クラウドコミュニケーションプラットフォームを手掛けるTwilioは、機密データを誤ってGitHubにアップロードすることを防ぐツール「Deadshot」を開発し、2021年5月にオープンソースソフトウェアとして公開した。

Share
Tweet
LINE
Hatena

 クラウドコミュニケーションプラットフォームを手掛けるTwilioは2021年5月18日(米国時間)、プルリクエストスキャナーとして機能するGitHubアプリケーション「Deadshot」をオープンソースソフトウェアとして公開した。機密データをGitHubにアップしようとすると警告を発する。

 Deadshotは、GitHub Organizationにインストールして利用する。GitHubリポジトリを監視し、リアルタイムにプルリクエストの差分をスキャンして、重要な機密情報をチェックする。機密情報の指定には正規表現を利用できる。

 機密情報が見つかると、プルリクエストにコメントを付加し、指定された「Slack」のチャネルに通知する。もしも特定された機密情報に対処することなく、プルリクエストがマージされた場合は、セキュリティチームのキューにJIRAベースのチケットを発行する。

 認証情報や秘密情報、SQL文など、機密データをコードに含めてはならないのは当然だ。だが、誰もがミスを犯す可能性があり、問題が起こる前に人的ミスを発見することが重要だ。

 だが全てのコードを手動で監視することは不可能だ。Twilioはこうした認識から、GitHubリポジトリをリアルタイムで監視し、プルリクエスト段階で機密データを発見し、問題や機密に関わる機能変更にフラグを立て、手動のレビューに回すための自動化された方法として、Deadshotを社内向けに開発した。

Deadshotはどのように動作するのか

 Twilioが望むソリューションは、事前に定義した一連の正規表現と一致する機密データを、絶えず監視するというものだ。社内で広く使われるためには、このソリューションはある特徴を備えていなければならない。機密データと一致する正規表現を追加、削除する以外はコードを触らずに済むサービスでなければならない。

 Deadshotは、Pythonベースの「Flask」と「Celery」「Redis」を組み合わせたマルチコンテナアプリケーションであり、GitHubアプリケーションとしてインストールされる。インストールされたリポジトリのメインブランチに対して作成された全てのプルリクエストを対象に処理を行う。

 Flaskコンテナはプルリクエストペイロードを受け取るために、APIルートをエクスポーズする。APIルートでプルリクエストペイロードを受け取ると、同サービスはペイロードをRedisキューに転送する。

 CeleryコンテナがRedisキューからペイロードを取得して、プルリクエストの差分をスキャンし、指定された機密データを探す。機密データが見つかると、Celeryコンテナはプルリクエストにコメントを追加し、適切なSlackチャネルに通知するか、JIRAチケットを作成する。

 リポジトリへのマージ前にプルリクエスト内の機密データを発見するために、Twilioの社内でDeadshotは大いに役立ってきた。TwilioはDeadshotをオープンソース化した際、このアプリケーションに関するオープンソースコミュニティーからのフィードバックを期待していると述べている。

犯罪者も似たようなツールを使って機密情報を探している

 サイバーセキュリティツールベンダーのPortSwiggerは2021年5月31日(米国時間)に、公式ブログでDeadshotを紹介している。このブログ記事によると、組織の管理者のみがDeadshotをGitHubアカウントにインストールできる。これにより、サイバー犯罪者がDeadshotを不正使用するリスクが軽減されると、Twilio幹部は述べている。

 このブログ記事にコメントを寄せたセキュリティコンサルタントのジェームズ・ボア氏によると、既にサイバー犯罪者は、GitHubなどのコードリポジトリを対象に、Deadshotと似たようスキャンを行うスクリプトやbotを悪用している。

 一方、GitHubも既にセキュリティスキャン機能を提供している他、APIキーやパスワードなどの機密データをスキャンできる「Gittyleaks」のようなオープンソースツールもあるという。

Copyright © ITmedia, Inc. All Rights Reserved.

Security & Trust 記事ランキング

ページトップに戻る