2021年3月25日 星期四

[系列文章] 資安事件回應與管理 (三):開源技術支援管理平台 CDR Link / Zammad

 



接著來看另一款套件 CDR Link,它是一款標榜專注於安全領域的支援中心,尤其適用於社群、非政府組織 (NGO) 等團體。提供方便的連繫與議題追蹤的方便功能。







功能介紹

在 CDR Link 官網上列舉功能整理如下:
  • 建立支援中心 (Helpesk) 平台,需要數位安全問題者取得必要協助
  • 在系統上介接多種連繫管道來源,例如 Signal、WhatsApp、Telegram 等通訊軟體及電子郵件
  • 採用開源軟體打造


CDR Link 目標


概觀來看,CDR Link 希望打造一個讓許多 NGO 方便使用的支援中心,讓需要數位安全協助的單位可以簡單且方便的登入這個支援系統,提出目前所遭遇到的問題。而支援中心的專家們則有一個方便的系統可以查閱目前待支援的求助者,並依據不同的問題快速提供所需資訊以及線上支援。

深入研讀網站與文件資料發現,CDR (Center for Digital Resilience) 這個 NGO 組織希望打造的是一個適用大多數 NGO 組織使用的平台,在平台上互相支援協助,並把相關知識保留在平台上,讓更多的寶貴經驗得以延續。

這個概念非常理想,不過,當要實際開始建置使用時發生一個問題:雖然 CDR Link 有公開提供完整的原始程式碼,在 Gitlab 裡面也有兩個 docker container (elasticsearch、zammad),我仍然找不到何處有提供下載建置的二進位檔安裝包與相關說明文件,只有線上以電子郵件提出申請需求的管道。但對於 C-Team 希望的是可以自行建置主機保留完整資料主控權,所以 CDR Link 目前可能還不適合採用,相信在未來將會有可以提供下載自型安裝的版本,令人拭目以待。



沒有找到二進位安裝檔與安裝手冊


慘,難道 CDR Link 之路到此就斷了?當然不是,若是這樣本篇就是寫不下去啦...

別忘了,在前面功能介紹的時候,提到 CDR Link 採用了支援中心平台的模式,而在官網上也明確的寫出 CDR Link 的平台是基於 Zammad 方案搭配客製化修改後所打造而成:




自建伺服器方案


既然找到了關鍵字 Zammad,接著往下來到 Zammad Coummunity 的官方網站。它是一個以技術中心為核心的開源軟體,可以介接多種通訊管道做為與求助者的連繫方式,包括電話、Facebook、Twitter、Telegram、電子郵件與內建 Chat 等等,至於更加安全的 Signal 目前看到已經有人提交支援的程式碼,尚待合併入主線即可使用。



自建伺服器方案二


而它所內建的 Chat 功能,還可以做為網站的外掛嵌入在您的網站上,所以可以達成公司網站提供即時線上客服窗口,當有瀏覽者發起問題後,直接與 Zammad 的線上客服連繫立案,溝通內容則可以成為記錄保存於系統上。









系統建置

Zammad 支援多種作業系統平台安裝,包括:
  • 安裝於 CentOS 作業系統
  • 安裝於 Debian 作業系統
  • 安裝於 Ubuntu 作業系統
  • 安裝於 Docker 容器
  • 編譯 Source Code 安裝

安裝 Zammad 本身並不困難,下載二進位安裝檔依據個平台的套件管理指令安裝即可,難的是它還需要搭配全文檢索引擎 Elasticsearch,這個才是導致一些朋友卡關的主要原因。

若想要快速部署試用,可以參考官方打包的 Docker 容器版本,只要預先安裝好 Docker 容器管理工具,幾行指令馬上使用。
docker pull zammad/zammad 
docker container run -ti --rm --name zammad -p 80:80 zammad/zammad

成功啟動後,請以瀏覽啟開啟 http://ip 進入初次設定程序,它將會引導您建立管理者帳號,全部作業完成即會將您帶入主畫面。


初始化完成進入主畫面


注意:官方這個 Docker 容器版本僅供測試,重新啟動後會清除資料。

左下角的 齒輪 圖示進入系統設定,展開 System 下的 Translations,再按右上方 Get lateest translations,它會開始下載最新的多國語言相關檔案。


下載多國語言檔案


可惜的是,目前還沒有看到繁體中文,只有簡體中文可以選取。不過相信,在不久的未來就會出現繁體中文選項可以使用了。









系統操作

當求助者或 C-Team 的窗口要建立新的支援請求時,可以登入系統後按左下角的加號按鈕,進入資料登打表單。


建立支援請求


最上方可以選取要採用什麼方式進行支援,下面填入標題、內容,若有相關資料檔案要附上可以在此一併上傳,以供支援者參考決策。

最上面的三種模式說明如下:

  • Received Call
    C-Team 單位收到 NGO 人員的求助電話,了解內容後由 C-Team 的人員登打資料立案,再與內部相關人員進行技術支援討論,確認如何解決問題
     
  • Outbound Call
    由求助者登入 Zammad 系統發出支援請求,由 C-Team 負責或值班人員看到請求後,開始依據內容與求助者討論需要協助的項目,建立起溝通管道。
     
  • Send Mail
    由 C-Team 接收到支援請求後,在此立案輸入資料,完成後系統會自動以電子郵件發給求助者、C-Team 工作人員,開始以郵件串起支援討論的方式。

除了上述的手動建立需求之外,如果有設定好與 Facebook、Telegram、Telegram、內建 Chat 等等整合,也會由這些管道進來的訊息自動建立支援請求立案,不需人工建立。

下面擷圖,即是由 C-Team 工作人員手動於系統上建立支援請求表單,接著與內部資安專家進行討論。


Inbound 支援請求討論


以下擷圖,是由求助者登入 Zammad 系統發起支援請求,由 C-Team 工作人員開始了解問題狀況後,開始給予技術支援的討論內容。


求助者登入請求支援




C-Team 接收到支援請求提醒



C-Team 開始處理支援請求內容



將訊息推送給求助者


C-Team 按下 Update 送出支援訊息的內容,確認無誤後還要點按按鎖頭,求助者才會看到此訊息。


求助者看到 C-Team 工作人員的支援訊息


若承接的工作人員發現並非本身技術所能處理,也可以在此支援請求中更換處理人員,點選將案件轉交給其它有能力處理的專家接手,在支援請求中的所有歷史資料都將保留,接手的人可以快速掌握重要資訊。


支援請求人員轉交












進階擴充

若要設定 Telegram 整合,請先至 Telegram 平台上申請好 Bot API Token,再來到 Zammad 後台填入相關參數,即可啟用 Telegram 整合能力。


設定 Telegram Bot API


注意:需要將 Zammad 啟用 https 通訊協定,才可以整合其它外部系統,如 Telegram。













小結

不管是 CDR Link 與 Zammad,他們更接近於客服或支援系統,建立起一個方便提出問題與回覆溝通、討論等等的平台,更厲害的是他可以支援多種外部系統的介接,若 C-Team 擁有多種公開管道,例如 Facebook 粉絲專頁、單位官網、Telegram 頻道的話,可以相當容易的與 Zammad 直接串起來做完溝通與案件管理中心,彈性極大。