• 沒有找到結果。

建構手機 BOTNET 偵測環境

整體可分成系統移植和後端偵測系統兩大部分來探討 3.1 系統移植

在這裡主要根據[9]這篇論文移植 Snort 的方法進行修改達成移植 Argus 到 Android

系統移植的步驟上,大略可分為三個步驟

 取得Android上的Root權限

 將需移植的系統或程式編譯成可在Android上執行的執行檔

 實作前端控制界面並連結到該執行檔

圖 3. 1

JAVA應用程式端呼叫C應用程式示意圖

3.1.1 Audit Record Generation Utilization System (Argus)

Argus 為一款 Linux 上即時網路流量監測工具,類似 Tcpdump,使用 Packet capture library (libpcap) 來擷取網路上的封包,並提供更多程式功來處 理所需的封包格式。Argus 每個版本主要包含伺服器端與客戶端,伺服器端 主要是做 sniffer,客戶端讀取分析 sniffer 後的 traffic data,另外也提供遠端 access control 機制跟 server 端直接取回資料。

伺服器端程式 用途

argus() 針對TCP/UDP來收集手機上的header封包 表 3. 1

客戶端程式 用途

ra() 讀取argus資料並擷取所需header資訊 racount() 讀取argus資料並統計各header屬性的資料量總

rasort() 對argus資料進行排序

rafilteraddr() 過濾白名單(IP address) rasqlinsert() 將argus資料上傳到SQL server

ragraph() 描繪出網路流量的圖型

手機作業系統 CyanogenMod (Android 2.1-update1) Cross-Compiler Sourcey G++ Lite

流量偵測工具 伺服器端 : argus-3.0.2 客戶端 : argus-client-3.0.2

函式庫

Libpcap 1.0.0 Bison-2.4 Flex-2.5.35 表 3. 3

軟硬體版本表

因為不同版本所需的函式庫版本也會有所差異,那以上是我們提供可行的建議 版本。首先將上述的 libraries compile 成 static library,即.a 之結尾檔案,之後可利

用 linux 內建指令 objdump 查看是否 file format 為 elf32-little 得知是否有編譯成

LDFLAGS/CFLAGS : linking 的選項,主要用來指定是 statically linking 還是 dynamically linking。

CXX : 指定.cpp 檔案的編譯器。

接下來要說明編譯 argus 伺服器端的程式,首先編譯 Libpcap,一開始沒有 Makefile 存在,需執行./configure 生成 Makefile。

CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-linux --prefix=/Target LDFLAGS=”-static”

make make install

再來用類似方法編譯 Bison

CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-linux --prefix=/Target LDFLAGS=”-static”

Make make install

最後則是編譯 argus-3.0.2

CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar

RANLIB-arm-none-linux-gnueabi-ranlib

./configure --host=arm-linux

make install

除了給定參數外,還指定好程式去 linking 時所需 library 資料夾的位置,也就是 目錄/Target,再利用 Android SDK 中提供的 adb tool 將編譯好的程式放入手機系統資 料夾中。

adb push argus /data/filter adb shell

cd /data/filter ./argus ac_cv_func_realloc_0_nonnull=yes

CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-linux --prefix=/Target LDFLAGS=”-static”

Make

make install

最後則是 argus-client-3.0.2 CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar

RANLIB-arm-none-linux-gnueabi-ranlib ./configure --host=arm-linux

--disable-shared --prefix=/Target

CFLAGS=”-static”

CXX=arm-none-linux-gnueabi-g++

--with-liby-libraries=/Target/lib --with-libfl-libraries=/Target/lib --with-libfl_pic-libraries=/Target/lib Make

make install

adb push ra /data/filter/

adb push rafilteraddr /data/filter/

這裡我們是取 ra 和 rafilteraddr 這兩功能來做手機前端的封包處理

圖 3. 3

擷取所需 header 欄位

圖 3. 4

過濾白名單

3.2 後端偵測系統

這裡利用 AppServ 整合 Apache、PHP、MySQL 及 phpmyadmin,以下是相關環境設 定:

作業系統 : Ubuntu 8.10

Web Server : Apache2

Web Language : PHP5

Database : MySQL3.05

資料庫管理 : phpMyAdmin

相關文件