本文將介紹如何運用IBM QRadar App架構開發客製化應用程式,先說明何謂應用程式、Flask,然後說明何謂安全工程、如何避免應用程式提交遭到拒絕、那些是造成應用程式驗證審核延長的問題、該如何確保自己的QRadar應用程式安全無虞,以及使用SDK進行應用程式測試。
沒有工具能夠找出所有可能漏洞,但工具一定有所幫助。OWASP提供一個很棒的工具清單。建議使用Bandit來檢查Python Flask應用程式,它屬於驗證程序當中的一部分。此工具可找出原始碼的問題例如SQLi,也會標示不安全的程式庫如Pickle。程式碼分析工具的安裝與使用,相當直接了當。以下指令將產生HTML格式的潛在問題報告,如果有後續問題,可在討論區(https://ibm.biz/qradarappdev)中提問:
pip install bandit
bandit /path/to/code -r -a file
-f html -o file.html
工作區指導教學
若要開始開發QRadar應用程式,可以使用應用程式SDK來建立工作區。此工作區不只會建立QRadar認定應用程式該有的資料夾結構,還會產生程式碼以協助開始使用。
事實上,可藉由執行建立命令來建立可在QRadar中執行的應用程式(Hello World)。若要設定自身的工作區,請遵循下列步驟:
1. 安裝QRadar應用程式SDK
在開始動手之前,請確認所安裝的是Python2的最新版本。它無法使用Python3,因此建議使用Python2的最新版本。
SDK會產生zip壓縮檔案,zip壓縮檔中的README.html檔案會包含一切所需資訊。一般安裝由以下項目構成:Windows環境專用的install.bat,或Linux/Mac環境專用的install.sh。這會安裝一些套件,並將qradar_app_creator指令新增至系統路徑。
Windows使用者請注意,如果安裝多個版本的Python或將Python安裝在非通用位置,可以編輯install.bat檔案的第36行,然後針對想安裝的Python可執行檔來新增路徑。
2. 建立你的工作區
開發應用程式的第二步是設定自身的工作區,建議將工作區放在容易存取的地方,要記住其檔案路徑,因為在測試與部署時需要用到該路徑。
假若要建立自身的工作區,請從指令行輸入:
qradar_app_creator create -w ~/
QradarApps/com.me.myApp.1.0.0
~/QradarApps/com.me.myApp.1.0.0只是建議的路徑╱工作區名稱。請注意,如果之後要發布應用程式,希望此應用程式最好擁有major.minor.patch的版本系統。
當執行此應用程式,系統會在所提供的路徑上建立一個資料夾,資料夾結構類似圖3所示。
|
▲圖3 資料夾結構範例。 |
3. 開始開發
現在準備開始開發QRadar應用程式,請參閱其他教學指導以了解接下來的步驟。
使用SDK進行應用程式測試
將應用程式部署至QRadar會花幾分鐘時間,因此測試小型變更非常耗時。為了協助開發人員解決此問題,在SDK中建立了一個功能,以便使用Flask架構在本端測試你的應用程式。此公用程式還容許新增從本端工作站連往QRadar主控台的連線,方便測試QRadar函數,例如API呼叫。若要測試應用程式,請執行「qradar_app_creator run」指令,有兩個方法可以做:
在指令上加「-w」旗標並提供你的工作區路徑:
qradar_app_creator run -w ~/
QradarApps/com.me.myApp.1.0.0/
或者,可瀏覽至run.py檔案所在的應用程式資料夾,這樣就不需要提供路徑給qradar_app_creator:
qradar_app_creator run
執行指令時,可能會收到Python正在嘗試接受網路連線的警告,這是正常的,應該允許連線。此外,可以從0.0.0.0:5000或127.0.0.1:5000存取你的應用程式。
如果應用程式回呼QRadar box,例如API呼叫,將會在指令行中看到如圖4所示的提示。
|
▲圖4 在指令行中出現提示訊息。 |
接著,輸入QRadar主控台的IP位址。你的本端系統必須能夠連線至主控台的IP位址,接著系統會詢問是否要儲存此值,如果計畫進行相當數量的應用程式,建議選擇yes (y)。系統會提示須提供認證,請輸入自身的QRadar使用者認證,這樣才有權使用嘗試存取的任何資源。在指定認證之後,系統將再次提示並詢問是否想要儲存這些認證。基於安全理由,不建議長時間儲存認證,請在完成測試循環之後移除。
必須注意的是,你的認證將會以純文字形式儲存在你的本端主機上,若要從本端主機╱工作站移除預設QRadar主控台與認證,它們儲存在下列目錄路徑中,可在完成測試後刪除:
~/.qradar_appfw.auth
~/.qradar_appfw.console
現在,可以自由測試應用程式並進行變更。當變更應用程式的原始碼時,Flask將會重設Web伺服器,而需要做的事只有重新整理網頁。如果儲存的原始碼含有Python錯誤,將導致Web伺服器當機,但系統會提供堆疊追蹤、修正錯誤,然後重新執行qradar_app_creator執行指令。
雖然這種測試方式可大幅改善開發速度,但依然需要將你的QRadar應用程式部署至正式作業中的系統,以測試它是否能夠實際運作。