如何利用Kurukshetra以交互式的方式學(xué)習(xí)如何進(jìn)行安全編碼
關(guān)于Kurukshetra
Kurukshetra是一款功能強(qiáng)大的開(kāi)源框架,該框架的主要目標(biāo)就是通過(guò)交互式的問(wèn)題解決方式來(lái)告訴廣大研究人員或開(kāi)發(fā)人員如何能夠更好地實(shí)現(xiàn)安全編碼。Kurukshetra本質(zhì)上是一個(gè)Web框架,并未托管合理復(fù)雜的安全編碼挑戰(zhàn)提供堅(jiān)實(shí)的基礎(chǔ),同時(shí)仍然能夠根據(jù)用戶輸入高效動(dòng)態(tài)地在安全的沙盒環(huán)境中執(zhí)行每個(gè)挑戰(zhàn)。
Kurukshetra由兩個(gè)組件組成,一個(gè)是用PHP編寫的后端框架,它的任務(wù)是管理并利用底層Docker系統(tǒng)為挑戰(zhàn)執(zhí)行提供安全的沙盒環(huán)境;另一個(gè)組件則是前端部分,它是一個(gè)面向用戶的Web應(yīng)用程序,主要負(fù)責(zé)提供所有必要的控制機(jī)制,供管理員托管和修改挑戰(zhàn),用戶執(zhí)行和查看每個(gè)輸入的結(jié)果。
支持的平臺(tái)
Kurukshetra已經(jīng)在Ubuntu/Debian(基于apt-get的發(fā)行版)和Mac操作系統(tǒng)上進(jìn)行了測(cè)試。理想情況下,它可以在任何安裝了PHP 7.2、MySQL和Docker(以及啟用了遠(yuǎn)程API)的Linux的發(fā)行版操作系統(tǒng)上正常運(yùn)行。
工具要求
該工具的正常運(yùn)行需要使用到下列依賴組件以及配置參數(shù):
1、Git客戶端:sudo apt-get install git;
2、PHPv7.2:sudo apt-ge install php7.2-curl php7.2-mbstring php7.2-mysql;
3、MySQL:sudo apt-get install mysql-server;
4、Docker;
5、啟用DockerAPI;
6、在/var/config/路徑下創(chuàng)建一個(gè)文件夾,權(quán)限設(shè)置為www;
工具安裝
該工具的安裝非常簡(jiǎn)單,廣大研究人員只需要將該項(xiàng)目源碼克隆至本地:
git clone https://github.com/a0xnirudh/kurukshetra.git
然后切換到項(xiàng)目目錄中,創(chuàng)建目錄并提供對(duì)應(yīng)權(quán)限即可:
cd kurukshetra
cp -r * /var/www/html/
chmod 755 -R /var/www/html
Docker容器配置
Kurukshetra使用Dockers API來(lái)運(yùn)行用戶提交的代碼。在我們使用docker API之前,需要一次性配置,操作如下所示:
1、獲取Docker鏡像:docker pull phusion/baseimage:latest;
2、切換到安裝目錄:cd installation/optional/;
3、使用Dockerfile構(gòu)建Kurukshetra鏡像:docker build -t kurukshetra .;
除此之外,你也可以直接運(yùn)行下列命令自動(dòng)化完成工具Docker鏡像的安裝與配置:
cd installation/optional/
python install.py
工具使用
完成工具安裝與配置后,我們就可以訪問(wèn)http://localhost或http://127.0.0.1來(lái)進(jìn)入安裝頁(yè)面了:
輸入MySQL數(shù)據(jù)庫(kù)憑證,并點(diǎn)擊驗(yàn)證,然后輸入Google OAuth的Client ID和Client密鑰,并確保重定向URL設(shè)置為了http://your-domain.com/login/index.php。
此時(shí),我們就可以開(kāi)始使用Kurukshetra了。
工具運(yùn)行截圖
挑戰(zhàn)列表頁(yè)面:
挑戰(zhàn)解決頁(yè)面:
管理員面板(統(tǒng)計(jì)數(shù)據(jù)):
管理員挑戰(zhàn)修改/添加頁(yè)面:
容器管理:
工具演示視頻
管理員功能演示:【點(diǎn)我觀看】
許可證協(xié)議
本項(xiàng)目的開(kāi)發(fā)與發(fā)布遵循GPL-3.0開(kāi)源許可證協(xié)議。
項(xiàng)目地址
Kurukshetra:【GitHub傳送門】
參考資料
https://docs.kurukshetra.io/
https://docs.docker.com/engine/api/v1.24/
https://askubuntu.com/a/856794
https://docs.docker.com/install/
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04
https://success.docker.com/article/how-do-i-enable-the-remote-api-for-dockerd
https://www.youtube.com/watch?v=yrfmyz3p9a4
本文作者:Alpha_h4ck, 轉(zhuǎn)載請(qǐng)注明來(lái)自FreeBuf.COM