検索
ニュース

Log4j脆弱性に55万件のアラート送信も――GitHubで安全なソフトウェアを作成する5つの簡単な方法とはCodeQL、Dependabot、GitHub Actionsなどを活用

GitHubは、「GitHub」のネイティブツールや機能を活用してより安全なソフトウェアを作成する5つの方法を紹介した。

Share
Tweet
LINE
Hatena

 GitHubは2022年4月22日(米国時間)、「GitHub」を使ってより安全なソフトウェアを作成する5つの方法を公式ブログで紹介した。

 「GitHubには、安全なソフトウェアの作成と提供を容易にするネイティブツールや機能が多数用意されている」と、同社は述べている。これらを使う、以下の5つの方法によってワークフローにセキュリティを組み込めば、作業速度を犠牲にすることなく、より安全なソフトウェアを簡単に作成できるとしている。

1. CodeQLをワークフローに組み込む

 GitHubの静的コード解析エンジン「CodeQL」は、コードをデータのように扱い、クエリ可能にする。既知のセキュリティ脆弱(ぜいじゃく)性パターンに対応したオープンソースソフトウェア(OSS)のクエリライブラリを使用してコードをスキャンし、潜在的な問題を特定する。

 GitHubのCI/CD(継続的インテグレーション/継続的デリバリー)プラットフォーム「GitHub Actions」で、「CodeQL Analysis」というコードスキャンワークフローを任意のGitHubリポジトリに追加することで、開発環境におけるコードスキャンを自動化できる。新しいコードをプッシュしたときや、メインブランチに変更をコミットしたときなど、ニーズに合わせて任意のタイミングでコードスキャンを実行するようにワークフローを調整できる。


GitHubのCodeQLワークフローを使ってコードの既知の脆弱性を特定(提供:GitHub

 CodeQLによるコードスキャンで使用されるクエリライブラリは、新たな脆弱性の発生に対応してOSSコミュニティーが拡充を進めている。このため、CodeQLワークフローでコードスキャンの自動実行を設定しておけば、コードを新たな脆弱性から保護できる。

2. Dependabotで全ての依存関係を最新に保つ

 GitHubの「Dependabot」は依存関係を自動的にスキャンし、GitHubの「Advisory Database」と照合し、依存関係に脆弱性が見つかった場合はアラートで知らせる。また、Dependabotのセキュリティアップデート(プルリクエスト)は、その依存関係を安全なバージョンに更新するのに役立つ。

 Dependabotは依存関係の自動バージョン更新もサポートしており、これは設定ファイルのdependabot.ymlで設定できる。Dependabotがどのように依存関係を更新するか(どのエコシステムを有効にするかなど)、どんな頻度で新しい更新を探すかなどを指定することが可能だ。

 こうしたDependabotは、CodeQLを補完するものといえる。CodeQLがコードのセキュリティ問題を検出するのに対して、Dependabotは、プロジェクトの依存関係に起因する脆弱性を検出するからだ。

 最近の例では、Javaベースのロギングツール「Apache Log4j」の脆弱性が多くのパッケージのレジストリや依存関係に影響し、業界で大きな問題となった。だが、Java用プロジェクト管理ツール「Apache Maven」とDependabotを使用しているJava開発者は、比較的容易に対応できた。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る