2013.01.30
STAFF BLOG
スタッフブログ
TECHNICAL
テクログ
こんにちは、けーすけです。
今日のお話は今までで一番困ったオーダーを振り返ってみます。
「PDFファイルをダウンロードできないようにしてほしい」
言葉通りであれば簡単です。
ネットワーク上に存在させなければよいだけです。
当然これで良いわけはありません。
このオーダーを掘り下げた意味は下記です。
「PDFファイルを社員向けのWebサイトで閲覧させ、ローカルへの保存はできないようにしてほしい」
こうなると意味はわかります。
社員のみに閲覧させて、社内の独自技術を外部に流出させたくないということです。
IT屋さんの発想としては下記の対応を考えます。
・PDFファイルにパスワードをかける
・IP制限やベーシック認証で閲覧できる環境や人を制限する
下記を確認しました。
Q「社員が悪意を持つことは例外としてもよいか」
A「例外ではない。むしろ独自技術の価値を一番知っている社員が、悪意を持って他社に流出する事、あるいは誤って外部に公開することを避けるための方策である」
このオーダーのお客様の意思は下記です。
「社員のみがブラウザ上のみから利用でき、社員が社外への持ち出しができないようにしてほしい」
これを実現することが非常に困難であることがわかります。
繰り返しになりますが「悪意を持って利用することができない」には正規のユーザも含まれます。
悪意をシステム的に判定しなければなりません。
まず、PDFファイルはコンピュータの知識がある人ならば保存できます。
さまざまなセキュリティツールはありますが、100%を保障しているツールを見たことがありません。
PDF自体の仕様が公開されており、サードパーティ製のツールによる突破まで保障することは非常に困難です。
そこで下記のようなお約束を行いました。
環境:
□PDFファイルを閲覧できる環境は社内イントラのみ
□閲覧にはAdobe Readerのみを利用し、他の閲覧ソフトは社内環境にインストールしない
※社内ネットワークは外部ネットワークとは物理的につながっておらず、不正侵入の可能性は考慮しなくてよい。
※USBメモリの持込は不可であるが、各部署が保有するUSBメモリは社外に持ち出すこともある。
設計:
□PDFファイルの保存をトリガーとして、PDFファイルの最終ページ以外の全ページをAcrobatJavaScriptによって削除する
□PDFファイルの表示をトリガーとして、URLのチェックを行う
正規のURLであった場合、文字の表示をAcrobatJavaScriptによって行う
正規のURLでなかった場合、PDFファイルの最終ページ以外の全ページをAcrobatJavaScriptによって削除する
その他:
□不正なツールの持込はお客様側の責任で防止する
□現状想定し得ない脅威については、今回のスコープには含まない
表示自体をAcrobatJavaScriptで行うことで、AcrobatJavaScriptを禁止させません。
何も表示されない状態を標準状態として、条件を満たした場合のみ表示します。
AcrobatJavaScriptには暗号化した文章を入れます。
環境から取得できる値をキーにすることで、不正に複合化されることを難しくしています。
ここまでを今回の作業範囲として、不足が発見された場合は別途工数をいただきます。
以上、お話できる範囲での体験談です。
可用性と機密性はトレードオフの関係にあり、ITセキュリティの要求定義は厳密に行うことをお勧めします。
セキュリティに限らず、要求定義は重要な技術だと思います。
けーすけでした(・ω・)ノシ