叡智の三猿

森羅万象を情報セキュリティマネジメントで捉える

納品物の安全な受け渡し

開発プロジェクトではシステムインテグレータの立場としてPMOを担うことがよくあります。

PMOはProject Management Officeの略です。プロジェクトには必ずプロジェクトマネジャーがつきますが、プロジェクトそのものを成功させるためにコントロールするのがプロジェクトマネジャーであるのに対して、PMOはプロジェクトマネジメントの活動を支援するのが仕事です。

たとえば、ある会社の基幹システムを刷新するプロジェクトが発足します。そこで適用する業務の種類を計画系(経営、事業計画など)、実行系(販売、生産など)、分析系(予実管理など)にわけ、個別の開発プロジェクトを発足します。また、システム基盤となるインフラは全社横断的な役割として構築プロジェクトを発足します。そうすると、下記のようなプロジェクト体制が考えられます。

プロジェクト体制の例

PMOはプロジェクトマネジメント業務の支援を行いながら、プロジェクトで発生する各種調整や管理業務をそつなくこなすことが求められます。

オンプレミス型のシステムはユーザ企業への納品が伴います。PMOとして納品を安全かつ安心に実行できるかに頭を使います。納品はシステムベンダーが所有しているプログラムやドキュメント類などの機密情報をユーザ企業に移転させる行為です。情報セキュリティ面からみると、移転の途中で機密情報が漏洩したり、情報が改ざんされた状態で納品が完了することがあってはなりません。

アプリケーション開発やインフラ構築では情報セキュリティリスクを考慮した設計・開発・構築が行われるものの、移転による情報セキュリティリスクは、プロジェクトの中で見過ごされがちです。PMOは刈り取りの終わった畑に、落ちている穀物の穂を一粒一粒拾う落穂拾いの如く、プロジェクト活動で漏れてしまった作業をこなすことも必要です。

納品の形態は納品物をDVDやUSBなどの記録媒体に格納してユーザ企業に物理的に輸送するケースと、FTPやBOXなどのファイル共有サービスを通じてネットワークで輸送するケースに大別されます。納品形態はユーザ企業が指定することが多いので、プロジェクトとしてはユーザの要求に応じて、安全かつ安心な納品を遂行する必要があります。

納品に求められる情報セキュリティ要件

外部記録媒体に格納した機密情報を輸送する際に発生するリスクとしては郵便事故があります。そのため、輸送手段としては配送状況を追跡できる郵便や宅急便などのサービスを利用します。PMOが公共交通を使って直接、ユーザに手渡しすることもありますが、置き忘れや盗難にあう可能性もあるので、注意が必要です。また、万が一、媒体が紛失したり盗難にあっても、データの暗号化を施したりすることで、内部情報を解析される可能性を減らすことも必要です。これを耐タンパ性を高めるといいます。

また、ネットワーク納品として、FTPは古くから使われる手段ですが、FTPはログイン時のユーザ名とパスワードやデータ通信の内容が暗号化されてなく、通信内容をのぞき見られる可能性があります。もちろん、不特定多数のユーザーが自由にファイル転送を行えるようにしている、anonymous FTPを使うのはより危険なので使ってはいけません。FTPよりもSFTPを使用するのが安全です。SFTPは、SSHで暗号化された通信路を使って安全にファイルを送受信するプロトコルです。また、HULFTセゾン情報システムズ)などの企業間でのファイル転送を中心としたミドルウェアは、ファイル転送のみならず大容量のデータ(数GBから数十GBに及ぶデータ)を効率よく転送し、データの暗号化機能も備わっている実績あるサービスなので活用できます。

納品物が不正に改ざんされていないことを立証するにはハッシュ値を使います。ハッシュ値は、元データからハッシュ関数と呼ばれる計算手順により求められた、固定の桁数の値です。1Kbの小さなファイルでも10Gbの大容量ファイルでもSHA1でハッシュ化すると40桁(16進数表記)になります。

Windowsのcertutil コマンドプロンプトを使うことでハッシュ値は簡単に求められます。

>certutil -hashfile (ファイルパス) (ハッシュアルゴリズム

下図はデスクトップにあるプレゼンテーション11というパワーポイントのファイルをSHA256というハッシュ関数を用いてハッシュ値を求めた例です。

certutilコマンドによるハッシュ値の算出

もし、プレゼンテーション11というファイルに少しでも変更があると、SHA256のハッシュ値は下記とは異なる結果を生みます。

79969b8ce283d9133c4b5abfa6511f295590ccb9e2cfaa0e1086b62ff8cdabeb

ですので、納品前に求めたデータのハッシュ値をベンダー側で保管しておき、ユーザ企業に納品された後、ユーザ企業側で納品物のハッシュ値を求め、ベンダー側で保管しているハッシュ値と一致していることが確認できれば、納品物は輸送経路で改ざんされていないことを立証できます。