以前做DBA的時候,周期性讓我頭大的就是每半年做一次的審計。內審外審一套組合拳下來,比加班做遷移還累。諸如Oracle這種審計功能很完備的商業數據庫還好,如果趕上個別重要系統跑在國產數據庫或者開源數據庫上時,怎么提交審計信息或者材料就成了重大問題。有時候不得不借用第三方的安全審計平臺幫忙收集相關信息。
但是從另一個層面,審計也是驅動提高我們數據庫管理的一個有效手段。做過審計的朋友都知道,技術、制度、觀念,必須都到位,整個數據庫審計才能有條不紊,否則就會遇到或多或少的麻煩。能把審計平滑做完,說明數據庫管理基礎的要求都到達標了。三個維度,那哪個出現短板都要費很大力氣去補課。
維度一:技術
從技術的角度,數據庫審計功能或者審計平臺需要告訴審計人員,誰在什么時候做了什么事情,這件事情是否合規。
“誰”用了哪臺機器,既要包含數據庫賬號,又要確定是來自哪個內部SSO賬號。
“什么時候”具體到什么時間點登錄什么時間點登出。
“什么事情”包含的操作越詳細越好。尤其一些敏感數據表的操作。
粒度越細越好,經驗告訴我,無論DBA或運維人員覺得自己多么細致,審計人員總能在里面找到不曾覆蓋的地方。其實這也好理解,畢竟DBA不是專業的審計人員,總會有或多或少的點疏忽或者遺漏。但是技術上需要能提供手段把遺漏的內容補上。
市面上提供的數據庫審計工具其實已經比較完備了,技術上反而是我這些年做數據庫審計遇到的障礙里最少的一個環節。
維度二:制度
往往在審計時,制度上的不足才是最要命的,而且還有個尷尬的點,技術不足DBA和IT部門比較容易推動,但是制度上的不足很多時候IT部門能做的事情比較有限。制度是為了確保所有的DBA數據庫行為都合規,這不僅僅是為了保護DBA,同時也是在對數據庫的保護,確保每一次數據庫的變更和高權限登錄都有跡可循,流程合規。
在實際工作中,數據庫審計,審計人員最關注的幾個點在于賬號和權限的變更、登錄日志的細節、配置信息的變更。看似內容不多,但是需要我們能夠對每一項內容都有對應的流程。登錄前的審批,登錄后的記錄,都要有復核確認。有時候我們為了效率或者突發情況,流程上總會有疏忽的地方,在這種情況下,一定要事后補一個流程,以便于以后審計或者出現各種不確定的糾紛。
維度三:觀念
如果說技術和制度,DBA能夠盡量推動,那么觀念上就難了很多很多。
我們很多時候會發現,制度已經確立了,技術也都到位了,但是大家實際工作中都不太在意。歸根結底還是觀念的問題。說來也有趣,安全生產和不同行業真有著直接關系。金融對風控的把關堪稱細致到變態,地產對項目安全的意式也相對較好,我在這兩個行業做DBA和同事談安全生產,談流程把控的時候,大家不會有什么異議。但是一些效率壓倒一起的行業,流程有時候反而是DBA自己都反感的。每年到了外審的時候,手忙腳亂地補材料甚至偽造材料。一個從外審離職到內審的同事和我說,很多時候審計人員不是沒看出來,只不過是沒觸及底線,睜一只眼閉一只眼罷了。
在面對審計人員時,謹言慎行也是一件很難的事情。從我個人經歷來看,真的有同事在訪談時信口開河。明明不確定的東西,卻斬鐵截鐵地向審計人員說。無論每次我如何強調,不確定的內容不要說,總是無法完全預防。實際上這就是觀念不到位。
說完三個維度,我們來聊聊,作為DBA平時培養什么樣的習慣,避免出現審計時的各種問題。
習慣一:工作日志
這是我在入行之后就養成的習慣,每次登錄到某個生產庫,登錄時間、工作內容、重要節點截圖等等,都保存下來,需要追溯的時候直接找到對應的文件夾去讀取。
重大事故的時候,寫一個事故復盤,前有后果尤其是處理問題的過程有一個記錄。如何未來規避,一旦不可控地再現時,這些復盤記錄很可能會救你一命。
各類演練的文檔,每年進行迭代更新,遇到的問題按照功能拆分成變更,逐個實施,留存好之前的配置信息。
這些東西都有了,在審計的時候,大部分都不再需要重新準備,只需要從里面找到自己想要的內容,甚至個別變更頻次很低的系統,直接可以全盤使用。
習慣二:謹言慎行
每一個生產環境的變更,無論系統的重要性,無論變更影響的范圍,無論當時的緊迫程度,都要在公司內部有一個對應的流程,可能是一個OA申請,可能是一個郵件確認,甚至可能是事后的緊急工單等等。沒有對應流程的變更,對于DBA來說,就如同一個催命符,不僅僅在審計中,可能在以后的工作中成為爆點。在外審眼里,有流程但是不夠嚴謹和沒有流程是有本質區別的。不夠嚴謹的流程通過各種方式,是可以被審計人員認可的,但是沒有流程就意味著這是一個完全不合規的行為。
此外要記住,在公司內部大家平時怎么吐槽怎么抱怨也就罷了,在面對審計人員的時候,每一句話都可能影響公司的審計結果,嚴重的結果不是DBA自己能承擔得起的。不確定的東西就說不確定,需要去復核確認。無論審計人員如何誘導,都不要松口。逞一時之快,大概率不會讓你成為英雄,更可能成為一個豬隊友。
習慣三:用好材料
審計材料不僅僅是為了給內審外審使用的,同時也是部門內部不斷完善的參考。如果審計是每年或者每半年的考試,考完試并不是就圓滿結束了。
仔細看看哪些審計材料沒有被日常覆蓋到,需要花費大量人力物力,就要去思考如何完善。哪些流程被審計人員質疑挑戰,甚至否定,就要去思考如何改善這些流程。審計材料和審計結果里,哪些地方還存在的問題,在以后的工作中就要去著手解決。
來年審計的時候,看看和去年相比,有哪些地方得到了改善,哪些材料不再需要費力準備。如果每年面對審計都如此狼狽,那就真的要思考一下自己的工作到底有沒有做到實質的提升了。
這篇文章斷斷續續寫了半個月,每每寫到某個點,我甚至還能回想起當年面對外審人員時的緊張。不再做DBA了,這些頭大的事,也慢慢離我漸行漸遠,只希望以后,大家都不再為審計而頭大。




