這篇文章主要介紹了IoTMap是一款什么工具,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)主營南江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),南江h(huán)5小程序制作搭建,南江網(wǎng)站營銷推廣歡迎南江等地區(qū)企業(yè)咨詢
IoTMap是一款支持多協(xié)議的物聯(lián)網(wǎng)網(wǎng)絡(luò)模型構(gòu)建工具,該工具可以同時(shí)使用一個(gè)或多個(gè)協(xié)議來對物聯(lián)網(wǎng)IoT網(wǎng)絡(luò)進(jìn)行模型構(gòu)建。該項(xiàng)目目前仍處于開發(fā)階段,主要針對的是物聯(lián)網(wǎng)設(shè)備安全。這個(gè)項(xiàng)目目前會(huì)定期更新,當(dāng)前版本的IoTMap支持三個(gè)協(xié)議,即BLE、ZigBee和OS4I,并且將來還會(huì)支持更多協(xié)議。
1、Python > 3.5 2、Scapy(可以通過requirements文件進(jìn)行安裝,但建議使用最新版本源碼進(jìn)行項(xiàng)目構(gòu)建) 3、neo4j-1.7.6 4、docopt-0.6.2 5、prompt-toolkit-3.0.5 6、terminaltables-3.1.0 7、pycryptodomex-3.9.7
廣大研究人員可以使用下列命令和requirements.txt文件來安裝依賴包:
pip3 install -r requirements.txt
除了上述依賴組件之外,我們還需要安裝libgcrypt20-dev(用于網(wǎng)絡(luò)嗅探),這里可以使用下列命令,具體取決于你所使用的操作系統(tǒng):
sudo apt-get install libgcrypt20-dev # (debian-based distribs) sudo pacman -S libgcrypt # (archlinux-based distribs)
廣大研究人員可以使用下列命令將項(xiàng)目源碼克隆至本地,并安裝上述所有的依賴組件:
# 針對任意系統(tǒng)的發(fā)布版本呢 git clone https://github.com/AlgoSecure/iotmap.git cd iotmap sudo pip install -r requirements.txt # 基于Debian的系統(tǒng) sudo apt-get install libgcrypt20-dev # 基于ArchLinux的系統(tǒng) sudo pacman -S libgcrypt
接下來,我們還需要安裝Neo4J,大多數(shù)的Linux發(fā)行版系統(tǒng)都可以通過內(nèi)置的包管理器來安裝Neo4J。當(dāng)然了,我們也可以通過tarball來安裝和使用該工具:
cd /path/to/iotmap cd database # 如果有必要的話,可以在URL中替換最新版本的版本號(hào)參數(shù) wget -O neo4j-community.tar "https://neo4j.com/artifact.php?name=neo4j-community-3.5.9-unix.tar.gz" mkdir neo4j-community && tar xvf neo4j-community.tar -C neo4j-community --strip-components 1
如果你是第一次運(yùn)行該工具的話,你還需要定義一個(gè)數(shù)據(jù)庫的用戶名和密碼,你可以使用下列命令開啟數(shù)據(jù)庫:
cd database ./neo4j-community/bin/neo4j console
此時(shí),Neo4J將會(huì)運(yùn)行,并可以通過http://localhost:7474來訪問。默認(rèn)的用戶名和密碼均為neo4j。IoTMap使用的是默認(rèn)用戶名和密碼(iotmap)。
如果你想要設(shè)置不同的憑證,你則需要更新core/databaseController.py文件中第46行的參數(shù)值:
model = Model("bolt:http://localhost:7474", "username", "password")
我們可以使用下列命令來運(yùn)行和開啟該框架:
python3 iotmap.py
IoTMap將會(huì)在運(yùn)行之前開啟neo4j數(shù)據(jù)庫,不過數(shù)據(jù)庫并非立即可用,因?yàn)閿?shù)據(jù)庫需要大約10秒的初始化時(shí)間。
IoTMap提供了三個(gè)模塊,即數(shù)據(jù)庫模塊(Datebase)、模型模塊(Modelling)和嗅探模塊(Sniffing)。Sniffing模塊目前仍處于開發(fā)階段,可能某些選項(xiàng)還不可用。如需切換模塊,可以直接輸入模塊名即可:
python3 iotmap.py Starting the database Database is available at http://localhost:7474/ IIIIIIIIII TTTTTTTTTTTTTTTTTTTTTTTMMMMMMMM MMMMMMMM I::::::::I T:::::::::::::::::::::TM:::::::M M:::::::M I::::::::I T:::::::::::::::::::::TM::::::::M M::::::::M II::::::II T:::::TT:::::::TT:::::TM:::::::::M M:::::::::M I::::I oooooooooooTTTTTT T:::::T TTTTTTM::::::::::M M::::::::::M aaaaaaaaaaaaa ppppp ppppppppp I::::I oo:::::::::::oo T:::::T M:::::::::::M M:::::::::::M a::::::::::::a p::::ppp:::::::::p I::::I o:::::::::::::::o T:::::T M:::::::M::::M M::::M:::::::M aaaaaaaaa:::::ap:::::::::::::::::p I::::I o:::::ooooo:::::o T:::::T M::::::M M::::M M::::M M::::::M a::::app::::::ppppp::::::p I::::I o::::o o::::o T:::::T M::::::M M::::M::::M M::::::M aaaaaaa:::::a p:::::p p:::::p I::::I o::::o o::::o T:::::T M::::::M M:::::::M M::::::M aa::::::::::::a p:::::p p:::::p I::::I o::::o o::::o T:::::T M::::::M M:::::M M::::::M a::::aaaa::::::a p:::::p p:::::p I::::I o::::o o::::o T:::::T M::::::M MMMMM M::::::Ma::::a a:::::a p:::::p p::::::p II::::::IIo:::::ooooo:::::o TT:::::::TT M::::::M M::::::Ma::::a a:::::a p:::::ppppp:::::::p I::::::::Io:::::::::::::::o T:::::::::T M::::::M M::::::Ma:::::aaaa::::::a p::::::::::::::::p I::::::::I oo:::::::::::oo T:::::::::T M::::::M M::::::M a::::::::::aa:::ap::::::::::::::pp IIIIIIIIII ooooooooooo TTTTTTTTTTT MMMMMMMM MMMMMMMM aaaaaaaaaa aaaap::::::pppppppp p:::::p p:::::p p:::::::p p:::::::p p:::::::p ppppppppp Version=0.1 IoTMap > help Core commands ============= Commands Description ------------------------------ database Use database mode. sniffing Use sniffing mode. exploit Use exploit mode. IoTMap >
這里的每一個(gè)模塊和函數(shù)功能都提供了一個(gè)幫助菜單,以幫助廣大研究人員了解工具的使用方式。
這個(gè)模塊負(fù)責(zé)跟neo4j數(shù)據(jù)庫進(jìn)行交互和管理:
IoTMap > database IoTMap database > help Core commands ============= Commands Description ------------------------------ database Use database mode. sniffing Use sniffing mode. exploit Use exploit mode. Database commands ================= Interact with the neo4j database. List of available commands : addNodes clearDatabase exportDB getNodes help importDB importPcaps mergeNodes removeNode For more information about any commands hit :-h IoTMap database >
我們可以通過導(dǎo)入現(xiàn)有數(shù)據(jù)庫或Pcap文件來給數(shù)據(jù)庫填充數(shù)據(jù)。ImportPcaps命令可以將Pcap文件轉(zhuǎn)換成我們用于生成模型時(shí)所需的統(tǒng)一格式。這個(gè)模塊可以根據(jù)給定的協(xié)議來使用不同的提取器,IoTMap的主程序可以選擇相應(yīng)的提取器,并以多線程形式運(yùn)行數(shù)據(jù)包生成器(gen_packets.py)來生成統(tǒng)一格式的pcap文件。
IoTMap modelling > help Core commands ============= Commands Description ------------------------------ database Use database mode. sniffing Use sniffing mode. exploit Use exploit mode. Modelling commands ================== Map the network of IoT devices detected by sniffing. List of available commands : appGraph compareTo dlGraph help nwkGraph option run set transGraph For more information about any commands hit :-h IoTMap modelling >
程序會(huì)在創(chuàng)建模型之前開啟Neo4J數(shù)據(jù)庫,數(shù)據(jù)庫開啟之后,該模塊將會(huì)運(yùn)行。首先,它會(huì)分析輸入的pcap文件,然后提取并創(chuàng)建節(jié)點(diǎn),連接節(jié)點(diǎn)的邊則為鏈接節(jié)點(diǎn)。模型創(chuàng)建成功之后,我們就可以通過訪問http://localhost:7474/來查看結(jié)果了。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“IoTMap是一款什么工具”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!