ポリシー要求脅威分析ツール Portam 実験のベージへ

概要

すでに述べたように[PDF], モバイルコードを利用してアプリケーションプログラムを構築する場合, を要する場合がある. 要求や脅威と, それを達成するのに必要なパーミッションとの関係の分析と通して, ポリシー(ファイル)と要求(および脅威)との妥協点を模索するのに 本ツールは利用される. ツールを使った分析によって 「断念」や「黙認」等の「容認(accept)」を最小限にするポリシーを模索するのが 理想である. 尚,要求と脅威の双方をあわせて「仕様」と呼ぶ場合がある.

主な機能

ツールの機能は主に二種類に分類できる.

I. 利用するモバイルコードおよびパーミッションの識別と分析

  1. * 仮想ネットワーク(コード配置をGUI上に配置したもの)上にモバイルコードを配置できる.
  2. * Javaのソースもしくはクラスがあればコードから自動的に必要な パーミッションを抜き出すことができる.
  3. * 手動でクラスやパーミッションの追加,削除,編集ができる.
  4. すべてのパーミッションに許可を与えるような ポリシーファイルを自動生成できる.
  5. あるポリシー下で,それぞれのパーミッションに許可が与えられているか どうかを判定できる.
  6. ポリシーファイルを手動で編集できる.
II. 要求および脅威の記述と分析
  1. 要求および脅威をリストアップできる.
  2. 各要求もしくは脅威と,それを達成するのに必要なパーミッションを 関連付けできる.
  3. 関連付けれたパーミッションすべてに許可があるか否かに基づき, 要求が達成できるか,もしくは脅威が実現されてしまうか(available)を判定できる.
  4. 判定結果に基づき, 要求が達成できない場合,もしくは脅威が実現されてしまう場合を 容認(accept)するか否かを入力できる.
  5. * 各要求もしくは脅威の達成に必要なパーミッションが削除もしくは編集 された場合,その旨を提示できる.
  6. 要求もしくは脅威とそれらが必要とするパーミッションとの関係を グラフィカルに表示できる.
その他,一般的機能
  1. 分析結果をファイルに保存,読み出しができる.
(*の機能は今回の演習では利用しない.)

ダウンロード (version 5c)

機能I.2は外部プログラムを呼んでいるため, 現在のところWindowsのみで完全動作します.

例題に基づく使い方の説明

演習S2 [HTML] をツールを利用して分析する過程を通して, ツール利用法を紹介する. 尚,コードの配置およびパーミッションの抜き出しは終わっているものとする. (今後の演習もこの仮定のもとで行う.)

A. 主に開始法とコード配置に関する操作

  1. 上記のZIPアーカイブをダウンロードして展開する. (下記の注意点1,2も参照) [JPG]
  2. ツールを起動して(Portam.jarをクリックすればよい)既存データをロードする. (下記の注意点3,4も参照) [JPG]
    もしjarクリックしても起動しない人はこちら [HTML]を参照.
  3. ロードした結果,どの場所にどのようなコードがあり, それぞれにどんなパーミッションを必要とするかが列挙される. [JPG]
  4. メニューから Run → Generate Policy File を選ぶと, 右上のフレームに現在あるパーミッションすべてを許す ポリシーファイルが生成される. [JPG]
  5. メニューから Run → Check Permission を選ぶと, 現在のポリシーファイルに基づいて, どのパーミッションが許されているかが真ん中の表に表示される. [JPG]
    ちなみにパーミッションを一部コメントアウト等し, 再度, メニューから Run → Check Permission を選ぶと, 該当するパーミッションが NG になっているのがわかる. [JPG]
B. 要求と脅威の入力編集部分
  1. これらのモバイルコードを利用して「起こってほしいこと」を 左下の Requirements (要求)のフレームに, 逆に「起こってほしくないこと」を, 右下の Threats (脅威)のフレームにリストアップしてゆく. これら二つのフレームの操作法は基本的に同じ. [JPG]
  2. RequirementsもしくはThreatsのフレーム内の表のヘッダー部分で 右クリックすると,ポップアップメニューがでてきて 要求もしくは脅威項目を入力することができる. [JPG]
  3. 項目入力窓内の一番上のフィールドに要求もしくは脅威項目を短文で入力する. [JPG]
  4. もし詳細な説明文が必要なら[Detail]のタブを選択し, 詳細説明を記入できる. [JPG]
  5. この要求項目もしくは脅威項目を達成するのに必要なパーミッションを [Permissions]タブから選択する. 選択はチェックボックスを押せばよい. [JPG]
  6. [Yes]を押せば実際にこの項目が記録される. やめたい場合は[No]を押す.
  7. 上記と同様に要求項目もしくは脅威項目を順次入力してゆく. 新規項目は現在フォーカスがあたっている項目の真下に入る. (ヘッダーを選択すると先頭に項目を追加できる.) [JPG]
  8. 入力した項目の順番を[up], [down]のメニューで変更できる. 要求および脅威内の見た目の順番はツールの処理には影響を与えないが, ツール利用者自身への便宜として, 重要な要求,もしくは重大な脅威ほど上にかいておくほうがよい. [JPG]
C. 妥協点模索作業
  1. メニューから Run → Check Permission を再度選ぶと, それぞれの要求および脅威項目の状態が色で示される. もうひとつ,紫もあるが,本演習の範囲では利用しない. [JPG]
  2. 右上のポリシーファイルを編集(パーミッションをコメントアウト等)し, メニューから Run → Check Permission を再度選ぶと, 要求および脅威項目の状態を再評価し色を変更する. それによって問題点をすべて消せれば(ピンクをなくす)分析は完了だが, そうならない場合もある. また,逆に問題点が増える可能性もある. [JPG]
  3. パーミッションの調整により問題点を全て消せない場合, ツール利用者自身が問題点を容認する. 容認する場合は, 要求もしくは脅威項目の右端のチェックボックスにチェックを入れる. チェックを入れると黄色くなる. [JPG]
  4. パーミッションの調整と問題点の容認を繰り返すことで, 最終的にピンクの無い(白と黄色だけの)項目にする. 無論,なるだけ黄色(妥協した項目)が少ないほうが良い.
  5. パーミッションの調整と問題点の容認の便宜のため, ある要求もしくは脅威項目にフォーカスをあてると, その項目が必要としているパーミッションの色が青に変わる. この例では,一番目の脅威(Threat)にフォーカスがあたっており, user.name read と *.cs.shinshu-u.ac.jp connect に関する パーミッションを必要としていることがわかる. [JPG]
  6. 同様に, あるパーミッションにフォーカスをあてると, そのパーミッションを必要としている要求もしくは脅威項目が青にかわる. この例では,user.dir read のパーミッションは, 一番目の要求と二番目の脅威で必要とされていることがわかる. [JPG]
D. 終了処理
  1. 作成したポリシーファイルを実際に利用したい場合, 右上のポリシーエディタのフレーム内にあるメニューから, File → Save を選ぶとファイルに保存できる. [JPG]
  2. 全体のメニューから File → Save で分析結果を保存する(XML形式となっている). この保存結果を提出してもらう. [JPG]
  3. メニューから File → Exit で終了する. ウインドウ右上の[x]ボタンを押しても終了できないので注意.
  4. 無論,ツール内のフレームの配置等は自由に変更できる.

注意点

  1. 展開したフォルダ(portam)は書き込み可能にしておいてください. フォルダの属性変更については ここ[HTML] を参照.
  2. コマンドプロンプトから portam\jikes\ フォルダに移動して,jikes.exe を実行した場合, これ[JPG] のようになった場合, 展開したアーカイブから, portam\jikes\cygwin1.dll を削除してください.
  3. 利用時には必ずインターネットに接続してください. 現在,オフラインでは実行できません.
  4. ファイルの拡張子は特にきめていませんがXML形式なので慣例として .xml としています. それ以外でも問題なく動作するはずです.
  5. 表の列(row)の順番は自由に変更できるのですが[JPG], なるだけ変更しないでください. 動作が保障できません.

本ページトップ | 旧ツール | 実験のベージへ $Id: index.html,v 2.1 2006-01-11 09:26:10+09 kaiya Exp kaiya $