[NLog] 使用 replace 去避免 Log forging 攻擊

[NLog] 使用 replace 去避免 Log forging 攻擊

在大數據時代,駭客可能以 Log forging 的方式,讓系統的日誌填入錯誤的內容,讓後續在做日誌分析時誤判。

使用 NLog 只要簡單的做一個 replace 設定即可

 

  <variable name="messagelayout" value="${message} ${exception:format=ToString}"/>
  <variable name="messagelayout_inline" value="${replace:inner=${messagelayout}:searchFor=[\\r\\n]+:replaceWith=`:regex=true}"/>
 
  <target xsi:type="File" name="operation" fileName="${basedir}/logs/${shortdate}/operation.log"
            layout="${messagelayout_inline}" />

 

參考:

資安JAVA(十二):Log Forging

Writing multiline log messages into single line in NLog

Replace Layout Renderer