將此篇文章跟 Facebook 上的朋友分享將此篇文章跟 Plurk 上的朋友分享將此篇文章跟 Twitter 上的朋友分享列印轉寄
2018/12/18

攸關資安營運中心運作 程式開發首重測試驗證

善用QRadar App架構 開發客製化安全監控程式

IBM Security
本文將介紹如何運用IBM QRadar App架構開發客製化應用程式,先說明何謂應用程式、Flask,然後說明何謂安全工程、如何避免應用程式提交遭到拒絕、那些是造成應用程式驗證審核延長的問題、該如何確保自己的QRadar應用程式安全無虞,以及使用SDK進行應用程式測試。
善用QRadar App架構 開發客製化安全監控程式 攸關資安營運中心運作 程式開發首重測試驗證 @網站用前言: 本文將介紹如何運用IBM QRadar App架構開發客製化應用程式,先說明何謂應用程式、Flask,然後說明何謂安全工程、如何避免應用程式提交遭到拒絕、那些是造成應用程式驗證審核延長的問題、該如何確保自己的QRadar應用程式安全無虞,以及使用SDK進行應用程式測試。 @關鍵字:應用程式;容器; Docker; 進階視覺化; Python; Flask;資訊安全 IBM Security 所謂的QRadar應用程式是指使用QRadar App SDK部署的任何一種程式,同時也可在QRadar Box的Docker容器中運行。

應用程式常透過Flask在QRadar UI中呈現,以便交付應用價值。應用程式也可以輕鬆存取QRadar API,以便輕而易舉地使用儲存在QRadar中的資訊。

值得注意的是,應用程式只是QRadar的其中一種延伸模組,其他的獨立式內容(像自訂規則或屬性)可能包含在應用程式中,但不被認為屬於應用程式的一部分。

應用程式類型包括:儀表板項目、內含進階視覺化或分析的全新標籤、滑鼠右鍵功能、連結供應商API的按鈕、參照集摘要、事件摘要等等。

如何使用Flask

什麼是Flask(圖1)?Flask是用來開發網頁的一種Python架構,可提供URL和Python功能之間的精簡型連結路徑,並協助進行HTML(使用Jinja2)轉譯以簡化開發流程。


▲圖1 Flask標誌。


Flask主要透過route() decorator使用,此語法可繫結一個URL所對應的一個函數。route() decorator的使用方式如下:

 
@app.route('/hello')
def hello():
     return 'Hello, World'


其中@app.route用來定義URL,並將它與後面接續的DEF繫結。

Flask的最佳做法是命名URL,並盡可能與DEF配對。在此範例中,URL與傳回「Hello, World」字串的函數相繫結。

根據預設配置,URL僅是用來建立POST方法以定義路徑的GET方法,例如:

 
from flask import request
@app.route('/login', methods=
['GET', 'POST'])
def login():
     if request.method == 'POST':
          do_the_login()
     else:
          show_the_login_form()


此範例顯示如何覆寫路徑上的方法變數,用來賦予POST方法功能。

此外,可能還想要讓URL變數成為自身應用程式當中的一部分,做法如下:

 
@app.route('/user/')
def show_user_profile(username):
     # show the user profile for
that user
     return 'User %s' % username


使用<>來定義URL中的變數,如此一來,即可根據URL內容改變功能。根據預設配置,變數會被當做字串處理,但可以藉由定義變數類型來變更,例如:

 
@app.route('/user/')


Flask所提供的強大函數可透過Jinja轉譯HTML範本,這樣更可以掌控應用程式的呈現方式。在Python專案中,必須設定範本資料夾,其中放置想呼叫的範本。若要呼叫範本並透過它傳遞與Jinja2搭配使用的變數,請參照以下的方法:

 
from flask import render_template
@app.route('/hello/')
@app.route('/hello/')
def hello(name=None):
    return render_template ('hello.
html', name=name)


這會使用render_template函數來捕捉hello.html範本,並使用其中傳遞的變數名稱來轉譯。以下是其中一個Jinja2範本範例:

 

Hello from Flask\
{% if name %}
  

Hello {{ name }}!

{% else %}

Hello, World!

{% endif %}


Jinja提供一種可控制最終HTML呈現方式的插入邏輯控制項方法。在此案例中,可以看到使用{{}}標籤來呼叫變數的方式,以及在{%%}標籤之間呼叫實際的Python邏輯控制項。

這篇文章讓你覺得滿意不滿意
送出
相關文章
建生態系組合方案更全面 壓低成本跨越推廣障礙
2FA實體金鑰 保護帳密免遭竊
遵循法規兼顧安全 萬物聯網資安有保障
視覺化地圖還原定位紀錄 重現使用者移動軌跡
智慧式使用者行為分析 內部威脅無所遁形
留言
顯示暱稱:
留言內容:
送出
熱門點閱文章