HOMEソフトウェア高信頼化報告書・出版物・ツール事業成果(報告書等)「組込みソフトウェア開発向けコーディング作法ガイド[C言語版]ESCR」を改訂   ~ セキュアコーディングへの対応を追加 ~

本文を印刷する

ソフトウェア高信頼化

「組込みソフトウェア開発向けコーディング作法ガイド[C言語版]ESCR」を改訂   ~ セキュアコーディングへの対応を追加 ~

2018年6月20日更新
2018年2月15日公開
独立行政法人情報処理推進機構
技術本部 ソフトウェア高信頼化センター

概要

 IPA/SECは「組込みソフトウェア開発向けコーディング作法ガイド[C言語版]ESCR*1」の改訂版Ver.3.0を発行しました。4年ぶりとなる今回の改訂では、主にセキュアコーディングに関する追加を行い、コーディングのレベルにおけるソフトウェアの脆弱性作りこみの回避に対応できるようにしました。

 また、ESCRの付録データとしてESCR C・C++/MISRA C・C++/CERT C・C++/CWE 対応表を公開します。これは、2016年6月に公開したC言語版での対応表の改訂・拡張となるもので、ESCRの作法・ルール一覧を拡充して、ESCR C・C++ルールとMISRA C・C++、CERT C・C++ルールへの対応付けと、CWE種類への対応付けを行ったものです。

背景

 IPA/SECでは、組込み機器において高品質なソフトウェアを開発するためESxR*2シリーズとして各種リファレンスを発行してまいりました。その一つである「組込みソフトウェア開発向けコーディング作法ガイド[C言語版]ESCR」は、C言語を用いて開発されるソフトウェアのソースコードの品質をより良いものとするために、組織やグループ内のコーディングルールを決める際の参考として利用していただくことを期待して、コーディングする際の注意事項やノウハウをルール集としてまとめたものです。
 昨今のIoTの進展に伴い、組込み製品においてもセキュリティを意識した実装が強く求められるようになってきました。このような要請に応えるため、今回コーディングのレベルにおけるソフトウェアの脆弱性作りこみを回避できるよう、改訂したものです。

本書の特徴

 [C言語版]ESCR Ver.3.0では、従来からの「C言語などを用いて組込みソフトウェアを作成する場合に、ソースコードの標準化や品質の均一化を進めること」に加えて「ソフトウェアの脆弱性作りこみを回避すること」を目的とし、次の観点でルールや解説、適合例/不適合例などを追加するとともに、セキュリティの考慮が不足したコーディングに関する注意も説明しています。
 ・米国CMU/SEI*3が策定しているCERT Cコーディングスタンダード*4のルールの取り込み
 ・IPAのセキュリティセンターが脆弱性対策として提案しているルールの取り込み
また、[C++言語版]ESCR改訂での修正点のうち、C言語版との共通項目も反映しています。
 これまで同様ESCRシリーズの特徴であるプログラミング初心者にも分かりやすい記述とし、規約の策定やコーディング技法、レビュー時に注意すべきポイントの説明などを盛り込んだプログラミング全般に関しても役立つガイドとなっています。

今後の展開

 今後は、CERT CやCERT C++*5のルールなどとの関連付けを実施する予定です。またIPA/SECはこれまでコーディングガイドの策定や改訂でMISRA*6と相互に協力してきましたが、今後とも両者の連携を深め、言語規格の改訂に応じた見直しやレビューで協力を進めてまいります。

  • *1  Embedded System development Coding Reference
  • *2  Embedded System development eXemplar Reference
  • *3  Carnegie-Mellon University/Software Engineering Institute(カーネギーメロン大学/ソフトウエアエンジニアリング研究所)の略称
  • *4  C言語を使ってセキュアコーディングを行うためのルールとレコメンデーションを定めたコーディング作法集
  • *5  上記のC++言語版
  • *6  The Motor Industry Software Reliability Associationの略称。自動車メーカー、部品メーカー、研究者からなる欧州の自動車業界団体

ダウンロード

改訂版  組込みソフトウェア開発向け コーディング作法ガイド[C言語版]ESCR Ver.3.0 PDF文書[3.15MB]
ESCR C・C++/MISRA C・C++/CERT C・C++/CWE 対応表 PDF文書[565KB]
【英語版】改訂版  組込みソフトウェア開発向け コーディング作法ガイド[C言語版]ESCR Ver.3.0はこちら

書籍版の購入

  • 「改訂版 組込みソフトウェア開発向け コーディング作法ガイド[C言語版]ESCR Ver.3.0 」の購入はこちら

更新履歴

2018年2月19日 PDFを差し替えました。
修正箇所:P54「R3.1.2 不適合例」
2018年3月30日 ESCR C・C++/MISRA C・C++/CERT C・C++/CWE 対応表を追加しました。
2018年6月20日 ・書籍化に伴い、一部を小改訂しました。
・書籍版購入のご案内を追記しました。