GitHubのCodeQLがAUTOSAR C++ とCERT C++に対応。より安全なソフトウェアの開発を可能にします。

Image of Brittany O'Shea

GitHubは標準CERT C++ およびAUTOSAR C++の規格を実装したCodeQLクエリをリリースしました。 これらのクエリは、ISO 26262 Part 6プロセスへの準拠を実証しようとする開発者を支援します。

自動車分野における最新の技術革新は、自動車の製造方法における大規模なデジタルトランスフォーメーション(DX)を引き起こしました。現代の自動車は、世界中のドライバーが日常的に利用する数百万行におよぶソースコードが相互接続されたシステムによって構成されています。自動車分野におけるソフトウェア開発は、より良いユーザー体験を提供するためのイノベーションを起こすと同時に、最高の品質と安全管理を確保するという責任も負っています。

これらソフトウェアの安全性と信頼性を確保するために、各ソフトウェアコンポーネントが重大な障害の引き金となるような問題が発生しないようにISO 26262などのガバナンス標準が構築されました。さらに最近では、このソフトウェアに起因するサイバーセキュリティ関連インシデントのリスクを最小化するために、ISO 21434を通じてこの規制を拡大しました。

このたび、GitHubはウーブン・プラネット・ホールディングス株式会社と連携し、CERT C++ およびAUTOSAR C++の規格を実装したCodeQLクエリをリリースしました。 これらのクエリは、ISO 26262 Part 6プロセスへの準拠を支援します。

GitHubが提供するCode Scanningは、CodeQL分析エンジンを活用し、脆弱なソースコードがMergeされリリースされる前に、ソースコードのセキュリティバグを発見し、Pull requestが作成された際に警告を表示します。これらのチェック工程をGitHubに実装することで、自動車向けソフトウェア開発チームはコラボレーションや俊敏性を犠牲にすることなく、コンプライアンスに準拠した安全なソフトウェアを開発することができます。

GitHubは、オープンソースを活用したグローバルなイノベーションとコラボレーションの促進に向けて尽力しています。その一環として、今回リリースしたCodeQLクエリをオープンソース化する予定です。GitHubは、オープンソースのメンテナーや開発者がISO 26262のコーディング規約の要件に準拠したソフトウェアでイノベーションを起こす環境を提供することで、組込みソフトウェア開発におけるイノベーションを加速させることができると考えています。

静的解析がISO規格の要求事項を満たすためにどのように役立つか

ソフトウェア解析ツールは、それだけで自動車向けのISO 26262への準拠を完全に保証することはできませんが、「ソフトウェアレベルにおける製品開発」をカバーするPart 6への準拠を証明しようとする開発者を支援することは可能です。規格のPart 6は、道路走行車の機能安全を確保することを目的とし、ソフトウェアの設計と実装の正しさを検証するものです。GitHubのCode Scanningを利用することで、開発者はセキュリティバグや重大な欠陥がコードに混入した瞬間に発見し、修正することができます。CERT C++およびAUTOSAR C++、C++11、14のコーディング規約違反に対して、GitHub Code Scanningとその拡張機能を使用することで、自動的にこれらの違反項目検知できます。

CodeQLクエリ改善に協力する方法 

CodeQLクエリの機能を拡張したい場合、CodeQLパックに貢献することで、あなたの貢献を世界に公開することができます! 公開されたCodeQLパックは、他の人と簡単に共有でき、CI/CDパイプラインで実行することができます。もしあなたが、汎用的ですべてのリポジトリにあらゆる状況で適用できると思うクエリをお持ちでしたら、ぜひ貢献してください。そのクエリをオープンソースのCodeQLクエリリポジトリに提供することで、GitHub Code Scanningが有効になっているすべてのリポジトリ上のすべてのPull requestに対してクエリが実行されるようになります。

Code scanningの使い方

コード上で新しいCodeQLクエリを使用するには、リポジトリのSecurityタブでCode Scanningを設定します。これにより、そのリポジトリのスキャンを開始するための簡単なワークフローが表示されます。

GitHubのコーディング規約とセキュリティ機能についての詳細

GitHubは、クラウドネイティブなソフトウェア開発プラットフォームのリーダーであり、世界で8,300万人以上の開発者がオープンソースとインナーソースを使用したコラボレーションが実現できるよう支援しています。GitHubは、開発者のエクスペリエンス向上に妥協することなく、より安全でセキュアなソフトウェアの開発を支援することに取り組んでおります。GitHub のセキュリティ機能をリポジトリで有効化する方法については、スタートガイドをご覧ください。