選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
2 分鐘閱讀時間 (423 個字)

每日小知識 #16 - Container 資安(7)

shutterstock_198004562
  • 限制重開的次數
    • 如果有個 container 因為發生錯誤被關閉,又自動重啟,且限入了無限循環,這是相當耗資源的
    • 可透過 docker run 的 –restart=on-failure:10 來設定重啟 10次之後就不再嘗試
    • 預設 container 重開的時間是依次方級數成長的,100 ms -> 200ms -> 400ms …等
  • 限制 FileSystem
    • 一般來說從 image 透過 docker run 變成 container 時,是在 UFS 最上層加了一個可讀寫的 Layer
    • 如果想避免 Cracker 在那一層加上有害的 script,可以在 docker run 的時候加上 –read-only 來避免,這也必須先同時確保自己的應用系統是 stateless 的
    • 承上,volume 一樣也可以加上 :ro 來達到唯讀的特性
  • 限制 Capability
    • Linux Kernel 有定義了一組特權,稱作 Capability,可以讓執行中的程序擁有更大的權限
    • 這個 Capability 涵蓋的範圍很大,從更改時間開通Socket…等等
    • 預設 docker container 是在有限的 capability 下運作的,除非透過 –cap-add來設定要開通某個 capability,如下範例(千萬別執行):
      docker run --cap-add SYS_TIME debian date -s "10 FEB 1981 10:00:00"
    • 除非你很清楚了解怎麼測試你的服務會不會因為某些 capability 被拿掉了不會無法正常運作,不然建議還是別特別動這個設定,除非你真的很熟
  • 限制程序的資源
    • Linux Kernel 定義了一些方法可以限制程序的資源(e.g. 可以多開的子程序、檔案描述的數量…等)
    • 在 docker run 時透過 –ulimit 就可以限制 container 以上提到的資源
    • 更詳細的限制請參考 Linux 的 man setrlimit

以上就差不多是所有資安相關我們可以處理的部份了,再來就跟 SELinux 或是 AppArmor 相關的細節就太多了,有興趣的可以再上網找資料看看。

工廠模式(Factory Pattern)實際應用
每日小知識 #15 - Container 資安(6)

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2024/05/04, 週六

Captcha 圖像