這裡將把Log資料儲存至遠端資料庫上並利用MySQL中Trigger的機制,在無須撰寫任何程式碼的前提下,完成一項可直接從資料庫層面自動回報Log紀錄中異常情況的功能。
登入後,以「mysql -u root -p[資料庫密碼]」登入,然後使用下列指令新建函數(mysql>為提示字元):
相關的函數說明如下,這裡僅說明有用到的函數:
·PREG_RLIKE:以正規表示法來表示符合的紀錄,語法如下:
·pattern:為正規表示法
·subject:為要驗證的欄位
執行範例如如圖7所示,該例為查詢Message欄位是否有Accepted password的樣式,亦即登入的資訊。
|
▲圖7 查詢Message欄位是否內含Accepted password的樣式。 |
·preg_capture:取得樣式中的字串,語法如下:
·pattern:為正規表示法
·subject:為要驗證的欄位
·capture:取得符合樣式的字串
執行範例如圖8所示(在登入事件的記錄中,取得登入使用的來源IP)。
|
▲圖8 在登入事件的記錄中取得登入使用的來源IP。 |
最後,使用以下的Trigger(觸發)直接從資料庫收到登入事件,即可呼叫外部程式(名稱為email)發出電子郵件通知管理者:
至此,即可在不撰寫任何程式的情況下完成登入事件自動回報的系統。
<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>