• 検索結果がありません。

モバイルエージエントシステム AgentSphereのためのマイグレーションおよびセキュリティに関するコアシステムの強化

N/A
N/A
Protected

Academic year: 2021

シェア "モバイルエージエントシステム AgentSphereのためのマイグレーションおよびセキュリティに関するコアシステムの強化"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

モ バ イ ル エ ー ジ エ ン トシ ス テ ムAgentSphereの

た め の マ イ グ レー シ ョ ン

      お よ び セ キ ュ リテ ィ に 関 す る コ ア シ ス テ ム の 強 化

デ ィ ダ

ベ サ リ*1,甲

宗 徳*2

Improvements

in Security

and Code Migration

Related

Core System

Functionality

for Mobile

Agent

System

AgentSphere

Besar

Dida * 1, Munenori

Kai* 2

ABSTRACT : We at the software laboratory at Seikei University are developing a platform that enables

parallel and distributed processing in an autonomous manner. This platform is called AgentSphere and one

of its main traits is a strong code migration which henceforth shall be referred to as "Strong Migration".

Through this migration, autonomous code which is referred to as "Agent" migrate between the platform

while retaining its previous run state. In this paper, we talk about two main improvements to this system.

First, the current serialization was using unoptimized java serialization which was slow and had overhead.

We solve this problem by implementing a customizable serializer which serializes in Json format and is

much faster than the default one. Second, we close off security gaps created by the unorthodox usage of our

Strong Migration which accepts unknown classes and deserializes them inside the runtime.

Keywords

: parallel and distributed

systems, mobile agent, strong migration,

autonomous

system, security

(Received November 30, 2018)

1  は じめ に

  近 年 で は 並 列 処 理 や 分 散 処 理 に 対 す る ニ ー ズ が 上 昇 し て い る。 し か し な が ら 、 す べ て の ユ ー ザ が 並 列 処 理 や 分 散 処 理 を 行 うた め の 専 門 的 な 知 識 お よ び そ れ ら の 環 境 を 有 し て い る わ け で は な い 。 筆 者 ら は そ の よ うな ユ ー ザ で も 手 軽 に 並 列 処 理 や 分 散 処 理 を 行 え る プ ラ ッ トフ ォ ー ム 、 AgentSphereを 開 発 し て い る。 こ れ は モ バ イ ル エ ー ジ ェ ン トシ ス テ ム で あ り、AgentSphereを 動 か した 複 数 の マ シ ン が 接 続 さ れ た ネ ッ トワ ー ク 上 の 他 のAgentSphere間 で モ バ イ ル エ ー ジ ェ ン トを 移 動 さ せ 、 そ れ に よ っ て 並 列 分 散 処 理 を 可 能 と す る。AgentSphereは 並 列 に 動 作 す る 様 々 な モ バ イ ル エ ー ジ ェ ン トを 活 用 す る こ と を 想 定 して お り、 エ ー ジ ェ ン トの モ ビ リテ ィ に は 強 マ イ グ レ ー シ ョ ン を 可 能 に す る こ と が 重 要 な 技 術 で あ る と 考 え て い る 。 *1:理 工 学 専 攻 博 士 後 期 課 程 学 生 *2:理 工 学 専 攻 教 授(kai@st .seikei.ac.jp) こ の 強 マ イ グ レ ー シ ョ ン で は 、 マ シ ン 間 で 実 行 時 の コ ー ド、 ス タ ッ ク 領 域 、 ヒ ー プ 領 域 の 移 動 が 必 要 で あ り、 実 行 中 の モ バ イ ル エ ー ジ ェ ン トの 処 理 の 中 断 、 移 動 、 移 動 先 で の 処 理 の 再 開 が 出 来 る 限 りス ム ー ズ に 行 く こ と が 必 要 で あ る 。 す な わ ち 高 性 能 な 並 列 分 散 処 理 の た め に は 、 強 マ イ グ レ ー シ ョ ン に 伴 うオ ー バ ヘ ッ ドは 極 力 小 さ く し な け れ ば な ら な い 。 モ バ イ ル エ ー ジ ェ ン トの コ ー ドが 移 動 先 で 再 コ ン パ イ ル を 必 要 と す る の で は 、 そ の 分 オ ー バ ヘ ッ ドが か か る こ と に な る た め 、移 動 先 で そ の ま ま 実 行 で き る コ ー ド と な るJavaを 開 発 言 語 に し た 。た だ し、 Java が 持 つ シ リ ア ラ イ ズ 機 能 は 移 動 で き る デ ー タ構 造 に 制 約 が あ る と と も に 、 弱 マ イ グ レ ー シ ョ ン し か サ ポ ー ト さ れ な い と い っ た 問 題 を 持 っ て い る。   AgentSphereに お け る 強 マ イ グ レ ー シ ョ ン の 実 現 方 法 と し て 、筆 者 ら は い くつ か の 手 法 を 試 み て き た 。初 期 は 、 Javaの シ リア ラ イ ズ 機 能 を 利 用 す る が 、 ソー ス コ ー ド変 換 を 行 っ て 擬 似 的 に 強 マ イ グ レ ー シ ョ ン を 実 現 し た 。 他 に もJavaflowを 用 い た 方 式 も 実 現 し た が 、 い ず れ も移 動

(2)

可 能 な デ ー タ構 造 に 制 約 が 残 り、 ま た マ イ グ レー シ ョン

に 伴 うオ ー バ ヘ ッ ドも大 き く、 モ バ イ ル エ ー ジ ェ ン トの

レス ポ ンス 時 間 が 大 き くな る問題 点 が 明 らか とな っ た 。

そ こ で 本 論 文 で はJavaの シ リア ラ イ ズ 方 式 で は な く、

Json形 式 で の シ リア ラ イ ズ を可 能 とす る変 換 方 式 を用 い

た 新 た な 強 マ イ グ レー シ ョン方 式 を提 案 す る。 この 方 式

に よ り改 善 され るオ ー バ ヘ ッ ドの 評 価 を示 し、 他 の 実 装

方 式 と比 べ て そ の 有 用性 を 示 す 。

2.既

存 の 直 列 化

マ イ グ レ ー シ ョ ン の 技 術 はAgentSphereの 核 と な る 技 術 で あ る。AgentSphereが 並 列 分 散 処 理 を 行 うた め に は エ ー ジ ェ ン トが 同 一 ネ ッ ト ワ ー ク 内 の ほ か のAgentSphere に 移 動 す る 必 要 が あ る 。 た だ し、 コ ー ドの み を 移 動 さ せ る と 再 開 を す る と き に 常 に 先 頭 か ら 開 始 しな け れ ば な ら な い 。 こ れ は 処 理 の 種 類 に よ っ て は 問 題 な い が 、 移 動 前 の 処 理 を 無 駄 に し て い る こ と に な る 。 一 方 、 エ ー ジ ェ ン トが 現 在 の 実 行 状 況 を 保 存 し 、 移 動 先 で 今 ま で の 処 理 の 続 き か ら 再 開 す る た め に は コ ー ドだ け で は な く 、 ス タ ッ ク 領 域 、 ヒ ー プ 領 域 も 移 動 し 復 元 す る 必 要 が あ る 。 前 者 の コ ー ドの み の 移 動 を 弱 マ イ グ レ ー シ ョ ン 、 後 者 の ス タ ッ ク 領 域 、 ヒ ー プ 領 域 も 併 せ て 移 動 さ せ る の を 強 マ イ グ レ ー シ ョ ン と 呼 ぶ 。AgentSphereに 採 用 さ れ て い る の は 強 マ イ グ レ ー シ ョ ン で あ る。 3.JavaFlowマ イ グ レ ー シ ョ ン Javaflowと は 、 ∫VM上 に 実 行 さ れ て い る オ ブ ジ ェ ク ト の 現 在 の 実 行 状 況 を 保 存 す る た め のAPIで あ る 。Javaflow を 使 用 す る よ う に ビ ル ド さ れ たAgentSphere上 で は Continuation.suspend()メ ソ ッ ド に よ り現 在 の プ ロ グ ラ ム の 実 行 を す べ て 中 断 しContinuationデ ー タ が 作 成 さ れ る 。 こ の 中 に は 現 在 の ス タ ッ ク 領 域 、 ヒ ー プ 領 域 お よ びJVM の プ ロ グ ラ ム カ ウ ン タ が 含 ま れ る こ と と な る 。 こ れ を シ リア ラ イ ズ し た の ち 、 同 じJVMに お い て デ シ リア ラ イ ズ さ れ る とContinuation.startWithOメ ソ ッ ド を 使 用 し て Continuationデ ー タ か ら 中 断 さ れ た プ ロ グ ラ ム を 再 開 す る こ と が で き る 。 た だ し 、 再 開 は 同 一JVM上 に 限 定 さ れ て お り、 シ リア ラ イ ズ 後 の 直 列 化 デ ー タ を 他 のJVMに 移 動 し た 場 合 に は 、 そ こ で は 未 知 ク ラ ス と な り、 実 行 を 再 開 す る こ と が で き な い 。 しか しAgentSphereと の 組 み 合 わ せ で は 、 前 述 の 階 層 型 ク ラ ス ロ ー ダ の 働 き に よ り、 移 動 先 で も こ の ク ラ ス を 実 行 す る こ と が 可 能 と な る 。 JavaflowのContinuationデ ー タ に 入 る デ ー タ 構 造 の 中 に は シ リ ア ラ イ ズ で き な い も の も あ り、 移 動 可 能 な エ ー ジ ェ ン トの 制 約 に な っ て し ま う 問 題 が 生 じ る. Javaflowを 利 用 した 強 マ イ グ レ ー シ ョ ン の 実 現 に は い くつ か の 問 題 点 が あ り 、AgentSphereを 運 用 す る 上 で は 変 更 し な け れ ば な ら な い と こ ろ が あ っ た 。 強 マ イ グ レ ー シ ョ ン を 可 能 と す る シ リ ア ラ イ ザ はAgentSphereで 運 用 す る た め に 想 定 さ れ て い な い 問 題 が 存 在 し て い る 。 JavaFlow強 マ イ グ レ ー シ ョ ン を 用 い た 既 存 の 直 列 化 に は AgentSphereに と っ て 不 必 要 な ど う さ。(JDK1.8現 在) オ ー バ ヘ ッ ドの 要 因 の 一 つ と な る の がJava既 存 の シ リ ア ラ イ ザ が ク ラ ス を 直 列 化 ・復 元 す る と き に す べ て の ク ラ ス 階 層 を た ど り な が ら複 数 の 読 み 書 き 込 み の シ ス テ ム コ ー ル を 行 っ て い る こ と で あ る。 こ れ ら の シ ス テ ム コ ー ル は シ リ ア ラ イ ズ を 行 う 際 のRead/Writeで あ り、 マ イ グ レ ー シ ョ ン の 移 動 先 に も す で に 存 在 し て い る す べ て の AgentSphereが 有 し て い る と こ ろ も 参 照 し て い る 。 次 に 、直 列 化 を 行 う と き に リ フ レ ク シ ョ ン[2]を 用 い て コ ー ド内 の 互 換 性 を 確 認 し て い る 。 し か し な が ら Javaflowを 用 い た 強 マ イ グ レ ー シ ョ ン のAgentSphereは JRE1.6ま で しか 動 作 を 保 証 しな い た め こ れ 以 前 の バ ー ジ ョ ン の 互 換 性 を 確 認 す る こ と 自 体 は 不 要 と な る。 Javaの 直 列 化 はJDKの 変 更 な ど に も 弱 い 。Javaの 既 存 の 直 列 化 を 使 用 した 場 合 、 同 じJDK内 で 直 列 化 され て い な い と シ リ ア ル バ ー ジ ョ ン の 食 い 違 い が 発 生 し 、 復 元 が 不 可 能 と な る 。 従 来 の 直 列 化 を 用 い る こ と に よ っ て 発 生 し た 上 記 の 手 法 をAgentSphere用 に 改 良 す れ ば よ りオ ー バ ヘ ッ ド の 少 な いAgentSphereと な る 。

4.新

た な 直 列 化 方 式

本 論 文 で は 直 列 化 の 問 題 点 お よ び 今 後 のAgentSphere の 拡 張 性 を 確 保 す る た め に 直 列 化 方 式 に 新 た な 手 法 の 実 装 し た 。 直 列 化 さ れ た デ ー タ は 従 来 の バ イ トデ ー タ で は な くJson デ ー タ ベ ー ス フ ァ イ ル と し て 出 力 し 、 こ の 時 に 用 い る ラ イ ブ ラ リ はGoogleの オ ー プ ン ソ ー スgoogle-gson[1]を 用 い た 。

4.1新

た な 直 列 化 方 式 の 必要 性

AgentSphereの シ リア ライ ザ お よ び 現 状 の ビル ドに含

まれ て い る 問題 点 を解 決 す るた め に は い くつ か の 案 を考

慮 した。

Javaの 既 存 シ リア ラ イ ザ に お け る 上記3章

で の 問題 点

を解 決 す る に はJava既 存 シ リア ライ ザ の独 自実 装 が 求 め

(3)

ら れ る。AgentSphereに 不 必 要 な メ ソ ッ ドや シ ス テ ム コ ー ル を 削 除 す れ ば よ り レ ス ポ ン ス タ イ ム の 早 い マ イ グ レー シ ョ ン が 実 装 で き る。 し か し 、 こ れ に はJavaの 既 存 シ リ ア ラ イ ザ に 付 随 す る す べ て の ラ イ ブ ラ リ も す べ て 変 更 さ せ る 必 要 が あ り、 本 来 の 想 定 さ れ て い る 並 列 分 散 処 理 を 行 う専 門 的 な マ シ ン や 知 識 を 持 た な い ユ ー ザ に と っ て 望 ま し く な い も の で あ る 。 加 え て 、 こ れ ら の ラ イ ブ ラ リの 変 更 は す べ て のJVM上 に お い て 均 一 で 行 わ れ る 必 要 が あ る た め 、実 装 方 法 と して はAgentSphereを 複 雑 化 さ せ る も の で あ る。 次 に 考 慮 され た 方 式 は 、Javaの 既 存 シ リ ア ラ イ ザ で は な く カ ス タ ム 性 の 高 い 、 公 開 さ れ て い る も の を AgentSphereに 見 合 う よ うに 組 み 込 む こ と で あ る 。高 い カ ス タ ム 性 の シ リ ア ラ イ ザ を 使 用 す れ ばAgentSphere専 用 の 設 定 を 行 うだ け でJVMに お け る 大 掛 か りな 変 更 を せ ず に 済 む 。 こ れ に よ り、 レ ス ポ ン ス の 向 上 だ け で は な く よ り一 貫 と し たAgentSphereが 実 現 で き る の で は な い か と い う点 に 着 目 し た 。 こ れ ら の 実 装 方 式 を 踏 ま え た う え で 筆 者 ら は 高 い カ ス タ ム 性 を 保 ち な が ら オ ー プ ン ソ ー ス で 今 で も 開 発 が 続 け ら れ て い るGoogle-Gsonを 用 い る こ と に し た 。他 の 類 似 し た シ リア ラ イ ザ も あ る が 、AgentSphereが 必 要 と す る シ リ ア ラ イ ズ を 行 うに は こ れ が よ り適 任 だ っ た 。 既 存 のJavaFlowを 用 い た 直 列 化 さ れ た デ ー タ は 基 本 的 にAgentSphereお よ びJava環 境 で し か 読 み 込 み を 行 え な い 。 こ れ を 、Google-Gsonの シ リア ラ イ ザ でJsonデ ー タ ベ ー ス の 形 に す る こ と で 将 来 の 拡 張 性 を 確 保 す る と と も に 後 述 の 先 読 み を 用 い た セ キ ュ リテ ィ の 実 装 を 容 易 に す る こ と が で き る。 Json形 式 に し た こ と で 本 来 直 列 化 で き な い フ ィ ー ル ド や ク ラ ス が 直 列 化 可 能 と な る 。Google-Gsonの 直 列 化 で は 専 用 の イ ン ス タ ン ス ク リエ イ タ を シ リア ラ イ ザ 内 部 で 記 述 す る こ と が 可 能 と な り、 例 外 に 対 す る 対 応 が 柔 軟 で あ る 、 さ ら に 、 未 知 の ク ラ ス やPrivateフ ィ ー ル ドを 受 け 入 れ る こ と が 可 能 で あ る 。Privateフ ィ ー ル ドの 場 合 は デ ー タ が 保 存 さ れ な い が 、 こ れ ら は 外 部 で そ れ ぞ れ の ク ラ ス に 対 応 す るAgentSphere内 部 の 専 用 ク ラ ス が 保 管 す る 。 こ れ に よ り直 列 化 の 方 式 が 改 良 さ れ て い な い 現 状 で は 直 列 化 不 可 能 だ っ た ク ラ ス の 直 列 化 が 行 え る よ う に な っ た 。 こ うい っ た ク ラ ス ら の 主 な 問 題 点 と し て は 自 身 の 実 行 状 態 を 記 述 す る フ ィ ー ル ドが プ ラ イ ベ ー トで あ る た め 直 列 化 で き な い 。 本 研 究 で はThreadク ラ ス が 直 列 化 で き な い ク ラ ス の 類 で あ っ た た め 、AgentSphereに 追 加 実 装 さ れ て い るAgentThreadク ラ ス が 直 列 化 寸 前 の 時 に そ れ ら の 情 報 を 保 存 す る こ と に よ りJson形 式 で 直 列 化 し た 時 に ア ペ ン ドす る 。 受 け 取 り側 のAgentSphereは こ の 方 法 でPrivate フ ィ ー ル ド を 再 構 築 す る こ と が で き る 。 現 状 で はThread ク ラ ス の み を 考 慮 し た が 同 じ 手 法 で あ れ ば 他 の 直 列 化 不 可 能 な 記 述 お よ び ク ラ ス も 直 列 化 可 能 と な る。 4.2Gsonと は こ こ で 用 い るGoogleのgoogle-gsonはJavaオ ブ ジ ェ ク ト の シ リ ア ラ イ ズ をJson形 式 で 行 うオ ー プ ン ソ ー ス の 中 で も よ りオ ー バ ー ヘ ッ ドが 少 な い 方 式 で あ る 。Json形 式 に し た こ と で 本 来 直 列 化 で き な い フ ィ ー ル ドや ク ラ ス が 直 列 化 可 能 と な る 。Google-gsonの 直 列 化 で は 例 外 に 対 す る 対 応 が 柔 軟 で あ り未 知 の ク ラ ス やPrivateフ ィ ー ル ド を 受 け 入 れ る こ と が 可 能 で あ る 。Privateフ ィ ー ル ドの 場 合 は デ ー タ が 保 存 され な い が 、 こ れ ら は 外 部 で そ れ ぞ れ の ク ラ ス に 対 応 す るAgentSphere内 部 の 専 用 ク ラ ス が 保 管 す る 。 これ に よ り 直 列 化 の 方 式 が 改 良 さ れ て い な い 現 状 で は 直 列 化 不 可 能 だ っ た ク ラ ス が 専 用 の イ ン ス タ ン ス ク リ エ イ タ を 記 述 す る こ と に よ り可 能 と な っ た 。 直 列 化 不 可 能 な ク ラ ス の 主 な 問 題 点 と し て は 自 身 の 実 行 状 態 を 記 述 す る フ ィ ー ル ドがSerializableを イ ン プ リ メ ン ト し て い な い た め 直 列 化 で き な か っ た 。 こ れ ら の 場 合 はAgentSphere に 追 加 実 装 され て い るAgentThreadク ラ ス が 直 列 化 寸 前 の 時 に そ れ ら の 情 報 を 保 存 す る こ と に よ りJson形 式 で 直 列 化 し た 時 に ア ペ ン ドす る。 受 け 取 り側 のAgentSphereは こ の 方 法 でPrivateフ ィ ー ル ド を 再 構 築 す る こ と が で き る。 ・Javaオ ブ ジ ェ ク ト ム い カ 一 な 出 リ さ 田 ト 介 ぬ ス を 図1.Gsonを 用 い た 直 列 化 フ ロ ー ・Java入 力 ス トリー ム以 外 で も読 み 込 め る Gsonで は 既 存 の シ リ ア ラ イ ズ と 大 ま か な 流 れ は 同 じ だ が 、 直 列 化 と復 元 に 関 す る と こ ろ だ け が 変 更 さ れ て い る 。 ま ず 、 新 た なGsonの た め の イ ン ス タ ン ス を 作 成 し 、 現 在 の エ ー ジ ェ ン トの 型 で あ るAbstractAgentが 何 な の か を 学 習 さ せ る た め に(Jsonと し て ど の よ う に 出 力 させ る た め に)Typeト ー ク ン と し てAbstractAgentを 与 え る 。

(4)

こ れ に よ りGsonは エ ー ジ ェ ン ト を ど の よ う に 記 述 す れ ば よ い の か を 学 習 しGson.toJsonで そ れ を 実 際 にJson形 式 に 変 換 させ る。本 来 こ こ でNetworkSenderに 直 列 化 さ れ た バ イ トデ ー タ が 対 象 の マ イ グ レ ー シ ョ ン 先 に 運 ば れ る の だ が 代 わ りにJson形 式 の デ ー タ が 運 ば れ る 。 4.3機 倉旨言平イ面 AgentSphereを 拡 張 す る 平 均 的 な500行 ぐ ら い の 単 純 ク ラ ス で 試 し て み た 結 果 が 下 記 の 表 の 通 りだ っ た 。 シ リ ア ラ イ ズ 時: ∼103ms デ シ リア ラ イ ズ 時: ∼32ms ∼123ms∼30ms 異 な る フ ァ イ ル サ イ ズ の 場 合 の 実 験 も 行 っ た 。 場 合 に よ っ て は 、Continuationデ ー タ が 莫 大 で あ りオ ー バ ー ヘ ッ ド が 余 計 に か か っ て し ま うの で は な い か と い う問 題 も 残 っ て い る た め 、 そ れ に つ い て も 測 定 を 行 っ て み た 。 フ ァ イ ル サ イ ズ を1KBか ら 開 始 し、10倍 ほ ど 増 加 さ せ っ っ 上 記 と 同 じ 方 法 で マ イ グ レ ー シ ョ ン を 行 っ た 結 果 が 下 記 の グ ラ フ の と お り と な っ た

シ リ ア ラ イ ズ

400

m300

藍lli■ ■■

一一.

JavaSerializationGoogleGson ■1KB■10KB(10倍)■100KB(100倍)1MB(1000倍) 図2.1KB,10KB,100KB,1MBの シ リ ア ラ イ ズ 時 間 (実 時 間 の み) 400

聲300 ) 200 )100 〃 〆

0

デ シ リア ラ イ ズ

JavaSerialization ■1KB■10KB(10倍)■100KB(100倍) ■ GoogleGson lMB(1000倍) 図3.1KB,10KB,100KB,1MBの デ シ リ ア ラ イ ズ 時 間 (実 時 間 の み) GoogleGsonの 導 入 に よ り、AgentSphereの 階 層 型 ク ラ ス ロ ー ダ の 一 部 が 廃 止 され た 。 本 来 、Javaで は 未 知 の ク ラ ス が 入 っ て き た と き は そ の ク ラ ス パ ス が な い の で イ ン ス タ ン ス を 作 成 す る こ と が 不 可 能 と な っ て い る 。 AgentSphereで は そ れ を 階 層 型 ク ラ ス ロ ー ダ で 解 消 し て お り 、 未 知 の ク ラ ス に 受 け 入 れ 元 に 対 応 す る パ ス を 取 得 し 与 え て い る 。 し か し 、Gsonの イ ン ス タ ン ス ク リ エ イ タ ー で は 読 み 込 ま れ たJson形 式 の オ ブ ジ ェ ク ト を ク ラ ス と し て 開 始 で き る が 、JavaFlowと の 互 換 性 も あ る た め 階 層 的 ク ラ ス ロ ー ダ のJavaFlowのContinuationデ ー タ を ア ペ ン ドす る 部 分 ま で は 残 っ て い る状 態 で あ る。 よ っ て 、 最 終 的 に ク ラ ス ロ ー ダ 内 で は 従 来 必 要 だ っ た 過 程 が 不 必 要 に な っ た 。 こ こ で は こ の コ ン ポ ー ネ ン トを 削 除 せ ず に 、 場 合 に よ っ て は 過 去 の エ ー ジ ェ ン トの バ ッ ク ア ッ プ や デ ー タ の 互 換 性 が 必 要 と な る で あ ろ う と 予 想 し て 、 ユ ー ザ の 設 定 に よ り 現 状 の ま ま 使 用 で き る よ う に 残 し て あ る。

5.先

読 み を 使 用 した 新 た な セ キ ュ リ テ ィ 方 式

直 列 化 され た デ ー タ は 出 力 ス ト リ ー ム に 渡 す こ と で 元 に 戻 す こ と が で き る。 直 列 化 の 場 合 で は 直 列 さ れ た デ ー タ 内 の オ ブ ジ ェ ク トが 読 み 込 ま れ る 前 に そ の ク ラ ス の 記 述 子 が 読 み 込 ま れ る 。 こ の 時 点 でJavaに す で に 使 用 さ れ て い るresolveClass[4]メ ソ ッ ドを オ ー バ ー ロ ー ド し、未 知 の ク ラ ス が 来 た 場 合 に 処 理 を 中止 させ る こ と が で き る 。 現 状 のAgentSphereで は 階 層 型 ク ラ ス ロ ー ダ お よ びGson の 専 用 イ ン ス タ ン ス ク リ エ イ タ を 実 装 し て い る た め ク ラ ス や メ ソ ッ ドの 動 的 な ア ッ プ デ ー トが 可 能 で あ る が 、 本 研 究 で 提 唱 す る先 読 み を 使 用 し た 方 式 は オ プ シ ョ ン と し て 存 在 し 、 動 的 ア ッ プ デ ー トを 犠 牲 に 強 固 な セ キ ュ リテ

(5)

イを 得 る こ とが で き る。 こ こで は これ を逆 に利 用 し、 ユ

ー ザ が 指 定 した 特 定 の ク ラス や 記 述 が 検 知 され た 場 合 に

読 み 込 み を 中 止 、 直 列 デ ー タ の ロー ドも中 止 す る。

入 力

ス ト リー ム

受 け 取 り

1

オ ブ ジ ェ

ク ト

全 体 像

ク ラス

記 述 子

図4.左

か ら右 へ 進 む 直 列 化 デ ー タの 復 元

本 研 究 で は ブ ラ ッ ク リス トお よ び ホ ワ イ ト リス トを 使 用 し た デ シ リ ア ラ イ ズ 中 のJavaコ ー ドの パ タ ー ン認 識 を 可 能 と す るSerialKiller[3]の デ シ リア ラ イ ズ ラ イ ブ ラ リ を 導 入 す る。 SerialKillerは 直 列 化 で 普 段 使 わ れ て い る ObjectlnputStreamの 代 わ り に 独 自 の 入 力 ス ト リー ム を 使 用 す る こ と に よ りオ ブ ジ ェ ク トの デ シ リア ラ イ ズ が 行 わ れ て い る と 同 時 に コ ー ド内 に あ る パ タ ー ン を ホ ワ イ ト リ ス トや ブ ラ ッ ク リス ト と 比 べ て い る 。

ObjectlnputStreamois=new

ObjectlnputStream(is);

Str'ngmsg=(Str'ng)o's'readObjectOl1

0bjectlnputStreamois=newSerialKiller(is, "/primula/serialkiller .conf'); Stringmsgニ(String)ois.readObjectO; コ ー ド1。SerialKillerの 導 入 SerialKillerに は 様 々 な 機 能 が 備 わ っ て い る 。 JavaRegex(通 常 表 現)フ ァ イ ル を 内 蔵 し 、設 定 フ ァ イ ル を ユ ー ザ が 独 自 に 記 述 で き る ブ ラ ッ ク リス トが そ の 一 つ で あ る。 す で に デ フ ォ ル トの 設 定 フ ァ イ ル が 存 在 し大 ま か な 脆 弱 性 を つ く と 判 明 し て い る 表 現 が 含 ま れ て い る 。 図5.有 害 な ク ラ ス の 検 知 ブ ラ ッ ク リ ス ト と は 別 に ホ ワ イ ト リ ス ト も含 ま れ て い る 。 ブ ラ ッ ク リ ス ト と は 違 い 、 ホ ワ イ ト リ ス ト を 見 て い る と き の モ ー ドで は ホ ワ イ ト リ ス トの 中 身 以 外 を 例 外 で 停 止 させ る こ と が で き る。 し か し 、 エ ー ジ ェ ン ト と は 多 種 多 様 で 類 似 し て い る も の はAbstractAgent内 の 記 述 の み で あ る た め 、 ホ ワ イ ト リ ス トを 用 い る こ と は 困 難 で あ る。 デ シ リ ア ラ イ ズ され る ク ラ ス の 中 身 を 控 え る た め の プ ロ フ ァ イ リ ン グ モ ー ドが あ り、 こ れ に よ り普 段 デ シ リア ラ イ ズ され る で あ ろ うク ラ ス を ユ ー ザ が 把 握 し 、 そ の 中 か ら ブ ラ ッ ク リ ス トや ホ ワ イ ト リ ス トを 使 うか ど うか を 選 択 す る こ と が で き る。 SerialKillerを 停 止(AgentSphereを 停 止)さ せ る こ と な く設 定 フ ァ イ ル を 更 新 で き る リ フ レ ッ シ ュ機 能 も備 わ っ て い る 。信 頼 性 が 売 りで あ るAgentSphereに と っ て セ キ ュ リ テ ィ ア ッ プ デ ー トで い っ た ん 機 能 を 停 止 し な け れ ば な ら な い 場 面 を 避 け る。 4.1先 読 み デ ー タ ベ ー ス の 実 装 SerialKillerはJavaRegex(通 常 表 現)フ ァ イ ル を 内 蔵 し、 設 定 フ ァ イ ル を ユ ー ザ が 独 自 に 記 述 で き る ブ ラ ッ ク リス トが そ の 一 つ で あ る。 す で に デ フ ォ ル トの 設 定 フ ァ イ ル が 存 在 し 大 ま か な 脆 弱 性 を つ く よ うな 表 現 が 含 ま れ て い る 。 こ の デ フ ォ ル ト設 定 に は す で に 有 名 な デ シ リ ア ラ イ ズ の 脆 弱 性 を 活 用 す るYsoseria1の ペ イ ロ ー ドが 含 ま れ て い る 。Ysoseria1と はJavaの 標 準 ラ イ ブ ラ リの 中 で 、特 定 の 方 法 で 使 用 され た 際 に ユ ー ザ が 予 期 せ ぬ 働 き を行 う も の を ま と め た ガ ジ ェ ッ トの ペ イ ロ ー ドで あ る。 こ れ に よ りAgentSphereは 基 本 的 な 脆 弱 性 及 び 今 後 ユ ー ザ が 定 義 し て い く脆 弱 性 に 対 し て 耐 性 を 持 つ こ と が で き た 。 6.お わ り に AgentSphereは 本 論 文 で 紹 介 し た 通 り 、専 門 的 な 環 境 や 知 識 を 有 し て い な い ユ ー ザ が 手 軽 に 並 列 分 散 処 理 を行 う こ と が 可 能 な よ うに 開 発 さ れ て き て い る。 本 論 文 で 紹 介 され たJsonを 用 い た シ リ ア ラ イ ズ ・デ シ リ ア ラ イ ズ の 方 式 に よ っ てAgentSphereは よ り軽 く 、柔 軟 に マ イ グ レ ー シ ョ ン を 行 う こ と が で き た 。 著 者 ら が 進 め て き た 複 数 の マ イ グ レ ー シ ョ ン方 式 に つ い て の 考 慮 も行 い 、 そ の 中 で も 最 適 で あ っ た も の が 使 用 され た ま た 、Json形 式 は 容 易 にJavascriptや 他 言 語 に 読 み 込 ま れ る た め 、 こ の シ リ ア ラ イ ズ 方 式 で 本 来 発 生 す る サ イ ズ

(6)

や 再 変 換 の 手 間 を既 存 の シ リア ライ ザ に 存 在 す る無 駄 を

な くす 形 で 補 い 、AgentSphereの エ ー ジ ェ ン トがJava専 用

で は な く よ り汎 用 で 多 目的 に 設 計 で き る よ うにな った 。

この 汎 用性 を い か に 利 用 す るか ど うか は 今 後 の 課 題 で は

あ るが 、ユ ー ザ ビ リテ ィ を掲 げ るAgentSphereに お い て は

重 要 な 要 素 で あ る。

しか し、 近 年 で 主 流 とな っ て い るマ シ ンの 性 能 に左 右

され るデ ィー プ ラー ニ ン グ も注 目を浴 び て い る。 学 習 デ

ー タ の積 み 重 ね な どは 非 常 に 重 要 な 課 題 で あ るた め

、 自

由 に ネ ッ トワー クを 移 動 し高 い 信 頼 性 を も った エ ー ジ ェ

ン トた ち に そ れ らの デ ー タの 運 用 を任 せ る と偶 発 的 な 事

故 を 抑 え る こ とが 可 能 とな る とい う点 に 着 目 し、 今 後 は

デ ィー プ ラー ニ ン グ用 の 環 境 作 りお よび 他 言 語 間 の マ イ

グ レー シ ョ ンに つ い て の 可 能 性 の研 究 も進 め る予 定 で あ

る。

参考文献

[1]Google-Gson,https://github.com/google/gson [2]JavaSecurity,0'REILLY出 版,1998年,ISBNI-56592-403-7E [3]ikkisoft,SerialKiller,https://github.com/ilCkisoft/SerialKller

参照

関連したドキュメント

Votes are to be placed in 36 cambres (cells). Llull has Natana state that "the candidate to be elected should be the one with the most votes in the most cells". How is

And Section 8 proves one of the main result of this paper: there exists a model category of labelled symmetric precubical sets which is Quillen equivalent to the homotopy theory

Taking into account the minimax methods in critical point theory, invoking the “Mountain Pass Theorem” in order to prove existence of nontrivial solutions for problem (9), make

Indeed, if α = 0 then we have the Rosenau equation proposed by Rosenau [8] for treating the dynamics of dense discrette systems in order to overcome the shortenings by the KdV

In this work we give definitions of the notions of superior limit and inferior limit of a real distribution of n variables at a point of its domain and study some properties of

The variational constant formula plays an important role in the study of the stability, existence of bounded solutions and the asymptotic behavior of non linear ordinary

In this section, we shall prove the following local existence and uniqueness of strong solutions to the Cauchy problem (1.1)..

Despite this we shall prove that a strong sorting class with a finite strong basis has a finite ordinary basis and our proof will show how this ordinary basis may be computed from