イベント
GitHubがセキュリティ関連の新機能を一挙に発表、専任のセキュリティチームも発足
GitHub Universe 2019 2日目基調講演レポート
2019年11月19日 12:12
コード共有サイトのGitHubは、年次イベント「GitHub Universe 2019」を11月13~14日に開催した。
2日目の基調講演では、セキュリティ関連の発表が行われた。GitHubで公開されるオープンソフトウェア(OSS)や、その依存ソフトウェアの脆弱性を解決するための新機能のほか、専任のセキュリティチームの発足などが発表された。
「90%のソフトがOSSに依存、そのためOSSはセキュアである必要がある」
GitHubでは最近、セキュリティ関連の買収や提携などが目立っており、ソースコードに関するセキュリティが、GitHubの注力している分野のひとつだとうかがえる。GitHub周辺のエコシステムでも、コード自身や依存先ソフトウェアの脆弱性を発見するツール/サービスが各社から提供されている。
基調講演に立った、GitHub COOのErica Brescia氏は、現代のソフトウェアは既存のライブラリなどを利用して作られているという依存関係の図を示し、「99%のソフトウェアプロジェクトがOSSに依存している」と語った。また、依存先の依存先をたどった先まで数えると、平均でひとつのソフトウェアが180以上のパッケージに依存しているという数字を示した。
「そのためには、OSSがセキュアである必要がある。信頼できるものでなければ、その上に立って新しく開発することはできない」とBrescia氏は述べた。
トークンスキャニングのパートナーに4社が追加
そのうえで、GitHubのProduct ManagerのJamie Cool氏が、セキュリティ関連の新機能を発表した。
まずは、アクセストークンやパスワードなどをソースコードに入れ、パブリックリポジトリで公開してしまう事故への対策だ。潜在的に1カ月で80万件起きているという。
これに対してGitHubでは、自動的に検知するトークンスキャニング(Automatic Token Scanning)の機能を持っている。さらに、アクセストークンを発見したり、発見したアクセストークンをそのサービスプロバイダーに連絡して無効にしたりするために、サービスプロバイダー各社とのパートナーシップを結んでいる。
このパートナーとして新たに、HashiCorp、GoCardless、Postman、Tencent Cloudの4社が加わったことが発表された。
脆弱性について非公開に議論するGitHub Seciruty Advisoriesが正式リリース
続いて、Brescia氏も挙げた、OSSの依存関係の「オープンソースサプライチェーン」について。公開されている成果を利用して新しいソフトウェアを開発できることはすばらしいことだが、ひとつのソフトウェアに脆弱性があると、それを直接利用しているソフトウェアはもちろんのこと、間接的に利用しているソフトウェアにも影響を及ぼす。
こうした脆弱性については、セキュリティリサーチャーが探し、ソフトウェアのメンテナーが修正し、それを利用するソフトウェアの開発者が依存をアップデートすることになる。各自に多くの労力がかかっており、どこかで作業が滞ると以後に影響が及ぶ。この負担を軽減するための助けが必要とされている。
そのひとつとして「GitHub Security Advisories」がある。ソフトウェアに脆弱性が発見されたときに、そのプロジェクトのメンテナーだけが参加して対策を議論し、修正を加える非公開のワークスペースだ。
GitHub Security Advisoriesはこれまでβ版だったが、正式リリースされたことが発表された。画面上で「Request CVE」を選択して、CVEに登録する機能も提供される。
GitHub上のソフトに関連する脆弱性を一覧表示するGitHub Advisory Database
続いて、「GitHub Advisory Database」が発表された。GitHub Security Advisoriesで公開された脆弱性や、依存関係を追跡して得られた依存先ソフトウェアの脆弱性を一覧表示するものだ。すべての人に無償で公開される。各脆弱性情報には、GitHub上で影響するソフトウェアも表示される。
脆弱性のあるバージョンへの依存についてプルリクエストする自動セキュリティアップデートが正式リリース
次は、依存しているソフトウェアに脆弱性が発見されたときに、解決済みのバージョンに依存先を変更するプルリクエストを自動的に発行する「自動セキュリティアップデート(Automated security updates)」の機能だ。5月に買収したDependabot社の技術が元になっている。これまでβ版だったが、正式リリースされ、すべてのリポジトリで利用になったことが発表された。
専任のセキュリティチーム発足、脆弱性ハンティングツールも提供
Cool氏は、GitHubが9月に買収したSemmle社をあらためて紹介した。
Semmle社の技術に、セマンティックコード解析エンジン「CodeQL」がある。この技術により、ソースコードを分析し、検索や脆弱性発見などに利用する。
Cool氏は、SemmleのWebサービスである「LGTM.com」を使い、リソースモニタリングツールのnetdataのソースコードから、XSS脆弱性を発見する様子を紹介した。関数のコールグラフをたどって、XSSの可能性を表示するという。
これを受けて、専任のセキュリティチームである「GitHub Security Lab」の発足を、GitHubのPrincipal Security EngineerのNico Waisman氏が発表した。OSSの脆弱性発見に取り組む。
GitHub Security Labの最も重要なポイントは、セキュリティ研究者や、ソフトウェア開発者、企業などと業界を横断して直接つながることだという。
発表時点で、F5、Google、HackerOne、IOActive、J.P. Morgan、LinkedIn、Microsoft、Mozilla、NCC Group、Okta、Trail of Bits、Uber、VMWareがGitHub Security Labsのパートナーへの参加を表明している。
これらの企業はそれぞれ異なる視点でソフトウェアをセキュアにする活動をしており、共同でOSSのセキュリティ問題にハイスキルな人材で取り組むという。
GitHub Security Labの活動には、ツールの提供もある。脆弱性ハンティングツールとして、前述したCodeQLのVS Code拡張機能版を提供開始したことも発表された。
ここで、Semmle時代にCodeQLを使ってFacebookのTLSライブラリ「Fizz」のinteger overflow脆弱性を発見した、GitHubのSecurity ResearcherのKevin Backhouse氏が登壇し、CodeQLのVS Code拡張機能版をデモした。
「Integer Overflowは、grepなどのテキスト検索では見つけにくい。CodeQLのセマンティックな検索を使ったので見つかった」(Backhouse氏)
また、GitHub Security Labのパートナー企業であるUberのHead of Application SecurityのRob Fletcher氏も登壇。手動と自動の脆弱性発見について語り、「CodeQLの将来に期待する」とコメントした。
同じくGitHub Security Labのパートナー企業であるHackerOneのDirector of Product ManagementのMiju Han氏は、その“Hacker powered”な脆弱性調査プラットフォームとバグ報奨金のシステムについて紹介した。