GitHubは、「GitHub」のネイティブツールや機能を活用してより安全なソフトウェアを作成する5つの方法を紹介した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
GitHubは2022年4月22日(米国時間)、「GitHub」を使ってより安全なソフトウェアを作成する5つの方法を公式ブログで紹介した。
「GitHubには、安全なソフトウェアの作成と提供を容易にするネイティブツールや機能が多数用意されている」と、同社は述べている。これらを使う、以下の5つの方法によってワークフローにセキュリティを組み込めば、作業速度を犠牲にすることなく、より安全なソフトウェアを簡単に作成できるとしている。
GitHubの静的コード解析エンジン「CodeQL」は、コードをデータのように扱い、クエリ可能にする。既知のセキュリティ脆弱(ぜいじゃく)性パターンに対応したオープンソースソフトウェア(OSS)のクエリライブラリを使用してコードをスキャンし、潜在的な問題を特定する。
GitHubのCI/CD(継続的インテグレーション/継続的デリバリー)プラットフォーム「GitHub Actions」で、「CodeQL Analysis」というコードスキャンワークフローを任意のGitHubリポジトリに追加することで、開発環境におけるコードスキャンを自動化できる。新しいコードをプッシュしたときや、メインブランチに変更をコミットしたときなど、ニーズに合わせて任意のタイミングでコードスキャンを実行するようにワークフローを調整できる。
CodeQLによるコードスキャンで使用されるクエリライブラリは、新たな脆弱性の発生に対応してOSSコミュニティーが拡充を進めている。このため、CodeQLワークフローでコードスキャンの自動実行を設定しておけば、コードを新たな脆弱性から保護できる。
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.