テレワーク導入による開発現場での課題
―セキュアプログラミングの重要性―

Share

セキュアプログラミングは、サイバー攻撃に耐えうる、脆弱性を作りこまない開発を可能にするため、セキュリティの観点からみても重要な考え方です。特に、テレワーク環境では、エンジニアとの連携が困難になり得るため、必要以上に手戻りが発生しがちです。そこで、本記事ではセキュアプログラミング開発のための推奨対策をご紹介します。なお、より早期の段階でセキュリティに関する問題に対処する、ソフトウェアの開発や運用の考え方「シフトレフト」についてもご参考ください。

企業のソースコードが流出

2021年1月下旬から2月上旬にかけて、プログラム開発プラットフォームのGitHub上で大手金融機関を含む複数の国内企業に関するソースコードの一部が公開されるというインシデントが発生しました。各被害企業からは、セキュリティ上の問題はない旨コメントされたとの報道でしたが、中には公的機関のものと思しきコードも含まれていたと想定され、ネット上が騒然となりました。

ソースコードを公開したのは、元委託業者のエンジニアでした。転職において自身の年収を査定するWebサービスを利用するため、実績として当該ソースコード群を公開状態でGitHubにアップしてしまったとのことです。

サプライチェーン問題とリテラシー問題

このインシデントの原因は、悪意の有無に関係なく、業務でソースコードを作成した者が容易にそれを持ち出せた点にあります。そこには、大きく2つの問題があると考えられます。

・サプライチェーン問題
 委託元が委託先(もしくは再委託先)でソースコード流出が発生しないような仕組みを整備できていないこと、および開発状況を監視できていないこと
・リテラシー問題
 委託先か自組織かにかかわらず、開発従事者がソースコードを持ち出して保持したり、どこかにアップしたりしても問題ないという認識であること

※サプライチェーンとは、製品やサービスがユーザに届くまでのすべてのプロセスとそれに関わるすべての企業・組織を指します。

GitHubの利用禁止は解決にならない

事態をうけて、一般社団法人コンピュータソフトウェア協会(CSAJ)と日本IT団体連盟はそれぞれ、GitHubの利用に関する要請*1を発表しました。主なポイントは以下の3点に集約されます。

1. GitHubの利用自体を禁止することは解決にならない
2. 委託先と委託元が協力し合い、サプライチェーンの把握が必要
3. クラウド・バイ・デフォルト原則ではクラウド利用者側の使い方、設定、
   リテラシーが重要

GitHubはソースコードのレビュー、および開発プロジェクト進行の課題解決を効率的に行えるクラウドサービスです。その利用自体はソフトウェア開発産業の促進に不可欠であるとした上で、サプライチェーンの問題(上記2)とリテラシーの問題(上記3)に触れています。

コード流出対策としては、「GitHub設定の定期的なチェック」「委託先企業の厳密な管理」「インシデント対応体制の整備」ということになるでしょう。

サプライチェーンの弱点が狙われる

サプライチェーンの把握については、近年、繰り返し警鐘が鳴らされています。2021年1月、独立行政法人情報処理推進機構(IPA)より発表された「情報セキュリティ10大脅威 2021」 では、「サプライチェーンの弱点を悪用した攻撃」は、昨年に引き続き4位にランクインしています。

大企業のセキュリティが堅牢になればなるほど、関連している中小企業のセキュリティホールが狙われる、という皮肉な構図が浮かび上がります。一カ所でも弱点があると、サプライチェーンに含まれる全企業・組織に危険が及ぶ恐れがあります。

テレワーク導入拡大における懸念

サプライチェーンにおけるリスク管理を困難にしている要因の1つが、テレワークの拡大です。「情報セキュリティ10大脅威 2021」第3位には、新たに「テレワーク等のニューノーマルな働き方を狙った攻撃」が登場しました。

IPAによる「ニューノーマルにおけるテレワークとITサプライチェーンのセキュリティ実態調査」中間報告 で、委託元企業のテレワーク導入経験が約5割であるのに対し、委託先IT企業の方は9割以上であることが明らかになりました。このギャップは、テレワーク環境により目の届かないところで作業されているという、委託元の不安を増大させています。

委託元と委託先の相互協力が必須

日本のあらゆる業種において見受けられる「多重下請け構造」は、ソフトウェア開発においても例外でなく、委託・再委託なしでは成り立たないのが現状です。

委託先を原因とするインシデントであっても、例えばソースコード流出により重要情報が漏洩する被害が発生した場合、実際に企業・組織名が報道され、社会的信用を失墜する恐れがあるのは委託元です。委託先に対する管理の甘さによりインシデントを招いた責任から免れることはできません。委託先も、インシデントを引き起こしたとなれば、取引停止等、事業の存続自体が危ぶまれる恐れもあります。委託元と委託先の両方がダメージを受けてしまうのです。

発注側である委託元の経営者が「セキュリティは投資」という認識を持ち、開発に必要な人員や期間、環境等のリソースを考慮した上で、委託先と互いに協力し合う必要があります。具体的には以下のような対策が挙げられます。

さらに活発化するOSS

また、ソフトウェア開発の潮流の1つにオープンソースソフトウェア(OSS)の活用があることも、注意すべきポイントです。世界のソフトウェア開発組織によるオープンソースコンポーネントのダウンロード数は、一社平均で年間37万超に上る*2とのデータがあります。同時に、OSSプロジェクトに対するサイバー攻撃は前年比4.3倍に増加している *3とのことです。

ここ数年、日本においても、企業ばかりでなく、東京都が新型コロナウイルス感染症対策サイトのソースコードをGitHubで公開したり、総務省が住民情報システムのOSSによる開発を行うことを決定したり―といった具合に、政府や自治体もOSS採用を加速させています。

管理策として、ソフトウェアBOM(ソフトウェア部品表)の作成*4が推奨されます。製造業における部品明細と同様の考え方で、アプリケーションで使用されているOSS、各種コンポーネントやフレームワークについて可視化しておくのです。これらの情報を集約してアップデートを継続しておくと、OSSにおけるコンプライアンス問題の対策にもなります。

セキュアプログラミングの必要性と推奨対策

テレワーク時代のソフトウェア開発を取り巻く現状を見てきました。テレワーク環境では、エンジニアとの連携が困難になり得るため、開発チームのマネジメントに課題があります。また、担当者間や組織間での連携が薄まると、納品物に対するチェックが不十分となったり、必要以上に手戻りが発生したりすることで、完成したソフトウェアにセキュリティ上の問題が存在してしまう原因となり得ます。ソフトウェアの安全性を確保するため、改めてセキュアプログラミングの必要性を認識することが重要です。プログラムが意図しないデータを受信した場合も想定し、サイバー攻撃に耐えうる、脆弱性を作りこまない開発を可能にするため、以下のような対策を推奨します。

リテラシー教育
 ポリシーの整備やセキュリティ教育・訓練の実施は、組織全体のリテラシー向上に必要です。実施には、ノウハウがあり、信頼できるセキュリティ企業の力を借りるのが有効です。
・ツールによるソースコード診断
 開発のあらゆるタイミングで手軽にソースコードの安全性と品質の検査ができるのが、ツール診断の強みです。早期の段階からチェックし、コード単位で解消していくことで、結果的に一定のセキュリティ標準を満たすことができます。
セキュリティエンジニアによるソースコード診断
 効率的で網羅的なツール診断に加えて、より精度を上げるため、専門家による判断が必要な脆弱性の検出を行います。脆弱性を解消した状態で、安心してリリースに臨むことができます。
開発プラットフォームの設定確認・検査
 リポジトリとコードへのアクセスを許容するユーザを厳格に制限すると同時に、設定ミスがないことを継続的に確認する必要があります。開発プラットフォームとしてクラウドサービスを利用するにあたりセキュリティ設定に不安がある場合は、セキュリティ企業による検査を受けておくと安心です。
開発環境における監視
  コードリポジトリに対して監視を行い、不審なデータや挙動がないか定期的にチェックすることで、うっかりミスや悪意による改変をいち早く検知することができます。

まもなく年度末です。開発プロジェクトのラストスパートを迎えている企業・組織も多いことでしょう。テレワーク環境では、インシデントの検知・対応に混乱が生じることも予想されます。今一度、セキュアなアプリケーション開発を肝に銘じていただけましたら幸いです。


年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。

サービスに関する疑問や質問はこちらからお気軽にお問合せください。


Share