• 沒有找到結果。

協防平台訊息與權限設定

在文檔中 中 華 大 學 (頁 30-35)

第四章、 P2P 網路協防平台之設計

4.4 協防平台訊息與權限設定

在此平台上提供類似 Shell 的批次命令傳送協防訊息,由於具有權限功 能,不同權限的 Agent 能執行的功能有所不同。以下將說明 SPA、RAA 及 PAA 在本平台能傳送的命令訊息。各命令之間以「;」作為分隔。

4.4.1 SPA 訊息權限

在本平台中是屬於提供服務的 Agent,在該權限等級中,其發送的訊息為 Chatting Message:可與連接在同一 Hub 下的鄰居 Agent 進行文字的傳送。其命 令方式為:「MSG <Agent Name> <Text Message>」。收到此訊息的 Agent 亦可 再透過 Chatting Message 予以回應。

4.4.2 RAA 訊息權限

其功能是僅能使用目前平台中已存在的協防應用程式,請求平台中的成員 進行網路協防行為。在此權限下,能發送的協防訊息為:

Defense Message: 採用的是直接呼叫協防應用程式並依照各應用程式所 需的參數一起傳送,其應用方法與 console mode 指令完全相同。其中包 含一參數 Run Range,其功能為控制命令訊息發佈的範圍。其內容在命 令訊息傳送過程中,每經過一個 Hub 時傳遞到下一個 Hub 時會減 1。

當 Hub 為 0 時,該訊息將不傳送至下一個 Hub。當 Run Range 設為-1 時,則為平台上全部 Agents 都要執行服務。在服務名稱後面可接該服 務的設定用參數。如本論文所實作之協防平台呼叫協防應用程式為

「RUN <Run Range> <Service> <參數一> <參數二>…<參數 N>」。當 Agent 收到此命令時。會先檢查本身是否有該服務或應用程式。如果該 服務或應用程式已存在時,將依據命令進行啟動服務。如未有此服務或 應用程式則不處理此命令。本平台中內建兩個應用服務。服務一:虛擬 閘道服務,用於建立虛擬閘道伺服器。服務二:封包攔載:提供具有特 定封包資訊的記綠與攔截服務。

Back Log Message: 回傳協防應用程式所產生的記錄檔,發送回請求者

「Back <Log Filename>」。當平台中的 Agent 收到此命令時,將會符合 其記錄檔名之檔案傳回至發送端。

Timelimit Message: 協 防 服 務 或 應 用 程 式 執 行 時 間 限 制 「 Timelimit

<Number of Minutes>」。由於各協防應用程式所需的時間不同。當應用 程式屬於具有時間急迫性的需求時,透過此訊息,可強制中斷應用服 務。以避免協防應用程式停擺而造成資源的浪費。而各協防程式的執行 時需要有此 Message 進行啟動。否則各服務節點將忽略該次協防命令。

此 Timelimit Message 會再經由 AES-128 Bit 加密,以防偽造。

4.4.3 PAA 訊息權限

在所有的 Agent 中。其權限是最高的一種。除了具有 RAA 及 SPA 的權限 外,還具有發佈服務的權限。而發佈服務提供了二種發佈行為,以提供較大的 發佈彈性。

藉 由 本 平 台 直 接 傳 送 。 命 令 格 式 為 「 Publish <Publish Type> <Service Name>」 。發送此命令時,本平台會自動將該應用服務檔案之 MD5 特徵值隨 同命令一起發佈,以確保發佈的服務之正確性。當網路上的 Agent 收到此命令 時,會自動根據其發佈格式找尋並下載該應用服務之檔案。

<Publish Type>可支援以下三種下載方式:

P2P: 此類型發佈格式是通知收到發佈訊息的 Agents 透過 P2P 網路找 尋並下載該應用服務。

HTTP: 此類型發佈格式是通知收到發佈訊息的 Agents,透過 HTTP 方 式下載應用服務,而在<Service Name>的地方加入 HTTP 下載連結。

FTP: 此類型發佈格式是通知收到發佈訊息的 Agents,透過此類型發佈 格式是通知收到發佈訊息的 Agents,透過 FTP 方式下載應用服務,而 在<Service Name>的地方加入 FTP 下載連結。

4.4.4 協防訊息範例

協 防 訊 息 範 例 將 PAA Agent 發 部 佈 系 統 實 作 之 協 防 應 用 服 務 名 稱 為

「Sockmon.exe」。發佈命令主機之 IP 為「140.126.130.44」,欲協防之目的主 機之 IP 為「140.126.130.41」,服務 Port 為 80。其發佈命令的順序為:

發佈服務:該命令為「Publish Sockmon.exe」。當其它的 Agent 收到此 命令時,將自動從本平台中找尋此應用服務,並自動下載至本地端。

以提供該服務。

執行應用服務:執行此應用程式的對象為全部 Agent 皆需執行,則<Run Range>設定為-1。Defense Message 為「RUN -1 Sockmon.exe」。

記錄回傳:服務程式所產生的記錄檔的檔名設定為發佈命令主機之 IP。

設定記錄檔的儲存為「140_126_130_44.log」,而要求傳回記錄檔的 命令為「Back 140.126.130.44.log」。當服務或應用程式結束後,執行 服務或應用程式的 Agent 自動將記錄檔回傳。

設 定 服 務 執 行 時 間 : 設 定 服 務 時 間 為 3 分鐘。Timelimit 的命令為

「Timelimit 3」。

整 個 完 整 的 命 令 為 「 Publish Sockmon.exe; RUN -1 sockmon.exe 140.126.130.41 80 3 ; 140_126_130_44.log; Timelimit 3;」。

4.4.5 DLL 函式說明

除了透過 Agent 可直接發送命令外。本系統並提供動態連結檔(DLL),可 使應用服務開發者透過呼叫動態連結檔,將命令的發送可直接在應用服務程式 中使用本系統。動態連結檔提供的應用函數如下:

Int Startnetwork(char *loginame,char *password): 本函數應用於連結本平 台之命令,在呼叫此函數時,會自動啟動 Agent 畫面,並顯示 Agent 狀態、記錄及位於用一個 Hub 下的 Agent 清單。回傳值為 0 時,表示 連結平台失敗。回傳值為 1 時。表示連結平台成功。

Int SendCommand( char * command):本函數為發送命令訊息函數。應用 服務程式開發者可將欲發送的命令透過本函數發送至平台中的其它的

Agent。回傳值為 0 時,表示傳送失敗。回傳值為 1 時表示傳送成功。

Int Chat(char *AgentName, char *chatmessage):本函數為發送傳遞文字 訊息。回傳值為 0 時,為傳送失敗,回傳值為 1 時。為傳送成功。

Int SendFile(char *AgentName,char *filename):本函數可將本地端的檔案 傳送至所指定的 Agent。回傳值為 0 時,為傳送失敗,回傳值為 1 時。為傳送成功。

Int Download(char *AgentName, char *filename):本函數的功能為由特定 的 Agent 下載指定檔案。回傳值為 0 是,為傳送失敗,回傳值為 1 時。為傳送成功。

Int Search(char *AgentName, char * keyword,char *fileLists):本函數的功 能為向指定 Agent 搜尋檔案之檔名包含具有關鍵字之檔名。回傳值為 0,表示 Agent 無包含關鍵字之檔案。回傳值為正數(N)時,表示搜尋 對像的 Agent 具有(N)個符合的檔案,其檔案資訊會放在 fileLists。回 傳值為負數時,表示搜尋失敗。

Int Stopnetwork():本函數的功能在中斷與本平台的連線。回傳值為 0 時,為傳送失敗,回傳值為 1 時。為傳送成功。

使用範例如下:

FUNCTION Startnetwork; External 'P2PDefense.dll' name ' Startnetwork ';

FUNCTION SendCommand; External 'P2PDefense.dll' name ' SendCommand’;

FUNCTION Chat; External 'P2PDefense.dll' name ‘Chat’;

FUNCTION SendFile; External 'P2PDefense.dll' name ‘SendFile’;

FUNCTION Download; External 'P2PDefense.dll' name ‘Download’;

FUNCTION Stopnetwork; External 'P2PDefense.dll' name ‘Stopnetwork’;

procedure TForm1.Button1Click(Sender: TObject);

begin

Startnetwork(pchar('guest'),pchar('')); //登入網路協防平台 end;

procedure TForm1.Button2Click(Sender: TObject);

begin

SendCommand(pchar('RUN -1 sockmon.exe 140.126.130.41 80 3 ; 140_126_130_44.log; Timelimit 3;')); //發送協防訊息

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Stopnetwork(); //離線協防平台 end;

在文檔中 中 華 大 學 (頁 30-35)

相關文件