「シフトレフト」でセキュアコーディング まずやるべき基本は?セキュアコーディングの極意【第3回】

アプリケーションセキュリティを強化する開発手法「セキュアコーディング」の実践には、何が必要なのか。開発プロジェクトを進める上で意識すべきことを、有識者が解説する。

2023年08月03日 05時15分 公開
[Cliff SaranTechTarget]

 コンサルティング企業Ernst & Young Global(以下、EY)は2023年4月、米国IT企業の責任者254人を対象に、企業のIT戦略に関するオンライン調査を実施した。その結果から見えてきたのは、サイバーセキュリティへの関心の高まりだった。

 アプリケーションセキュリティを向上させる施策の一つが、開発の早期段階からセキュリティを意識する「セキュアコーディング」だ。どのようなものなのか。

企業が目指すべき「シフトレフト」の基本

 セキュアコーディングの出発点は、アプリケーションの設計時にセキュリティを念頭に置くことだ。EYで西部地域担当サイバーセキュリティ責任者を務めるアヤン・ロイ氏は、「企業がアプリケーション開発においてセキュリティを考慮するようになってきた」と感じている。そうした企業の考え方を体現するのが、開発サイクルの終了後ではなく、要件定義や設計といった初期段階でセキュリティを組み込む開発手法「シフトレフト」だ。

 シフトレフトにおいて、アプリケーション開発者は全てのソースコードの出どころが信頼できるソースかどうかを確認する必要がある。英国コンピュータ協会(BCS:British Computer Society)でボランティアとして働くペトラ・ウェナム氏によると、セキュアなアプリケーション開発には、アプリケーションの入力データに制限を設ける必要がある。条件を満たしていない入力データは、完全に破棄しなければならない。

 こうしたチェックは、「バッファオーバーフロー攻撃」を抑えることにつながる。バッファオーバーフロー攻撃は、一時的な記憶領域である「バッファ」をあふれさせて、プログラムの不具合を引き起こす攻撃手法だ。攻撃者は、アプリケーションのデータ入力フィールドに膨大なデータを書き込むことで、バッファオーバーフローを引き起こすことができる。アプリケーションが入力データを検証しなければ、バッファオーバーフローが発生し、攻撃者が任意の操作を実行できるようになる恐れがある。

 ウェナム氏は「アプリケーションが出力するデータは、アプリケーション本体からのみ出力されるようにすべきだ」と指摘。出力データの送信先は信頼できる宛先のみに限定したり、アプリケーション用に割り当てられないメモリを使用不可にしたりといった対処が必要だ。アプリケーションを実行するOSには、使用メモリを割り当て、メモリの状況を監視、制御する役割がある。あるアプリケーションに割り当て済みのメモリが、別のアプリケーションに使用されないように阻止しなければならない。「OSが実行を許可するアプリケーションは、認証済みのアプリケーションに限定する。未検証のアプリケーションは実行環境から切り離し、エラーを出力する措置が必要だ」(同氏)


 次回は、セキュアコーディングの実践例を紹介する。

Computer Weekly発 世界に学ぶIT導入・活用術

米国TechTargetが運営する英国Computer Weeklyの豊富な記事の中から、海外企業のIT製品導入事例や業種別のIT活用トレンドを厳選してお届けします。

ITmedia マーケティング新着記事

news135.png

インターネットの利用環境、女性の66%は「スマホのみ」――LINEヤフー調査
LINEヤフーが実施した2023年下期のインターネット利用環境に関する調査結果です。

news108.png

LINEで求職者に合った採用情報を配信 No Companyが「チャットボット for 採用マーケティング」を提供開始
就活生が身近に利用しているLINEを通して手軽に自社の採用情報を受け取れる環境を作れる。

news102.jpg

GoogleがIABのプライバシーサンドボックス批判に猛反論 完全論破へ42ページのレポートを公開
Googleは、米インタラクティブ広告協会から寄せられた批判について「多くの誤解と不正確...