ソフトウェア開発において、オープンソースソフトウェア、ソフトウェア開発キット、クラウドやAPI等、自社以外が開発した製品やITサービスを活用することが増えています。
これによりソフトウェアの調達から運用における一連の管理が複雑化しています。
本稿では、国内のソフトウェア開発の特徴を踏まえ、ソフトウェアサプライチェーン複雑化の要因と攻撃手法の高度化について述べるとともに、ソフトウェア開発プロセスにおいて講じるべきセキュリティ対策を解説します。
ソフトウェアサプライチェーンとは
ソフトウェアサプライチェーンは、ソフトウェアの調達から製造、提供、運用に関わるプロセス全般と、その過程で取り扱われるソフトウェア部品や関連組織で構成されます。従来、このプロセスや構成要素は自社内にあるソフトウェア部品や開発工程、要員で完結することが主流でした。しかし最近は、オープンソースソフトウェア(OSS)やソフトウェア開発キット(SDK)、クラウド、API等、自社以外が開発した製品やITサービスをソフトウェア部品として調達し、組み込むことが増えています。その結果、ソフトウェアサプライチェーンも多層化・複雑化が進んできています。
ソフトウェアへの攻撃方法の変化
従来の攻撃者は、世の中にある数多くのソフトウェアの脆弱性を探索・特定し、見つけた弱点を目がけて攻撃を仕掛けます。攻撃の結果、悪意あるプログラムがソフトウェア内部に組み込まれた場合、不正操作や機密情報の漏洩などの危険にさらされます。そのため各企業がとるべき対策は、不正侵入防止やウイルス検知の仕組みなどを導入し、いかに外部脅威から自社のシステムを守るかが中心です。この攻撃手法は、攻撃対象となるソフトウェアが特定企業向けなどのため、範囲と被害が限定的であることが特徴です。
一方で最近の攻撃者は、多くのソフトウェアに共通して利用されるオープンソースソフトウェア(OSS)やソフトウェア開発キット(SDK)などのソフトウェア部品に悪意あるプログラムを埋め込み、攻撃対象を拡大しています。これらの部品を用いると、脆弱性を含むプログラムが意図せずソフトウェアに組み込まれてしまいます。また、この攻撃手法は、ソフトウェア部品だけではなく、開発端末上の統合開発環境(IDE)やフレームワークなどの開発ツールも対象となります。開発中のコードに脆弱性を埋め込んだり、開発端末から自社内のネットワークを経由し本番環境のソフトウェアに攻撃を仕掛けたりすることも可能です。この攻撃手法では、特定のソフトウェアにとどまらず、被害がより広範囲に拡大するリスクが従来と比べて大きくなります。
したがって、各企業は自社のソフトウェアだけを防御するのではなく、ソフトウェアサプライチェーンを構成する一つひとつのソフトウェア部品や開発環境の安全性まで考慮する必要がでてきています。
セキュリティ対策の難しさ
ソフトウェアサプライチェーンの多層化・複雑化や攻撃方法の変化はセキュリティ対策を難しくさせています。以下に主な例を説明します。
・攻撃対象(アタックサーフェス)の拡大
今日では、無線LAN(Wi-Fi)機器や防犯カメラ、センサーなどのハードウェア機器であっても内部で小さなソフトウェアが動作しています。また、インターネット経由で自動的にソフトウェアを更新しているものも数多くあります。攻撃対象となるソフトウェアが稼働する機器が数多く企業に入り込んでおり、防御が困難になっています。
・外部由来のプログラムコードの増加
近年では、OSSやSDKなど、外部由来のプログラムコードが増加傾向にあります。例えば、2021年の時点で、商用ソフトウェアの実に97%がOSSを含み、プログラムコード全体におけるオープンソース由来のコードの割合は78%を占めるとの報告もあります*1。
もはや、自社以外が開発したプログラムが自然と自社のソフトウェアに取り込まれていることが常態化していると言えるでしょう。自社に納品されたソフトウェアにOSSが利用されていることが認知されていないケースもあり、知らないうちに自社のソフトウェアが攻撃対象となっている可能性もあります。
・部門ごとに異なるセキュリティ基準
企業によっては、各部門が異なるセキュリティ基準でソフトウェア開発を行っています。問題になるのは、ソフトウェア開発プロセス全体でセキュリティ基準や脆弱性に対する対応が一貫しないことによりリスクが発生するケースがありえるということです。
例えば、他部門が管理するソフトウェアから生成したデータやファイルを授受し、自部門が管理するソフトウェアで処理するケースがあります。他部門が開発したソフトウェアに脆弱性が含まれていた場合に、部門を超えた一貫したセキュリティ対策の基準や管理体制がないとインシデントの検知・対処が遅れることがあります。
・日本のソフトウェア開発の特殊性
総務省の2023年3月の調査によると、ソフトウェア開発における内製化率が高い米国・欧州と比べて、日本企業は外部に開発を委託する傾向が高いと言われています*2。委託を受けた企業もソフトウェアを部品ごとに分割し、その部品の開発が得意な企業に発注するケースもあります。こうした多重構造による開発、開発の管理体制の分業はソフトウェアサプライチェーンを複雑化させ、脆弱性を埋め込む機会を増やし、セキュリティ対策を難しくさせます。
ソフトウェアサプライチェーンの多層化・複雑化や攻撃方法の変化を背景に、攻撃手法は多種多様となり、対策方法も多岐にわたります。委託先管理や開発環境の物理的な統制、社内ルールの整備、人材育成など、複数の対策を組み合わせることが必要です。次回では、ソフトウェアの開発プロセスを中心に具体的なセキュリティ対策について触れます。
<参考文献>
- *1
2022 Synopsys Open Source Security And Risk Analysis Report.
- *2
国内外における最新の情報通信技術の研究開発及びデジタル活用の動向に関する調査研究の請負 成果報告書
https://www.soumu.go.jp/johotsusintokei/linkdata/r05_03_houkoku.pdf
次ページ:リスクが増大するソフトウェアサプライチェーンとセキュリティ対策(後編)
執筆者プロフィール
岩松 航輝:
ITコンサルタントとして先端技術を用いた保険業界向けDXなどの企画・実行支援。またNRIでのスタートアップの活用や投資検討を手掛ける。2019年より米国で活動し2021年より現職。専門はソフトウェアアーキテクチャ、インフラ基盤。
宮原 俊介:
DevSecOpsを活用した開発生産性向上と高いセキュリティレベルの実現の支援を推進。過去には、JIRAやConfluence等を利用した開発管理効率化支援や、DevOpsによる開発業務効率化支援を経験。これらの経験に基づいて開発プロセスを総合的に改善するサポートを実施中。
新着コンテンツ
-
2024/10/11
11月に0.25%の利下げが現時点でのコンセンサスに(9月米CPI):大統領選挙とFOMC直前に発表される10月雇用統計への注目度が高まる
木内登英のGlobal Economy & Policy Insight
-
2024/10/11
ECBの9月理事会のAccounts-Concerns for growth
井上哲也のReview on Central Banking
-
2024/10/11
木内登英のGlobal Economy & Policy Insight