5
Code One 心得:讓 Steve Poole 嚇嚇你,獲得一點安全意識 (/z/security)

今年的 Code One,其中 Steve 參與 2 個關於 security 問題的 talk:

《A Modern Fairy Tale: Java Serialization》1

由來自 IBM 的 Steve Poole 講述了殘酷又血腥的現代童化:Java Serialization。由序列化的結構設計與它的運作方式詳細地解說,我們可以知道『壞人』是如何看待序列化中『可口的弱點』

  • 在 28:03 開始介紹一些降低風險的做法 https://youtu.be/jiLk-5aK-0A?t=1683

  • [28:03] 禁止 readObject 的功能 (需要改原始碼,看起來是不切實際的建議啊。)

  • [29:17] 使用 jdk.serialFilter 設定黑、白名單

  • [30:15] 客製化 ObjectInputStream,不倚賴預設的 object graph,自己實作每一個 field 的讀寫。

  • [31:12] 使用 Java 9 的模式化功能,降低可利用的 class 數量

  • [31:56] 使用 DTO 簡化原本複雜到需要倚賴 Serialization 封裝整組 object graph 的物件(配合客製 ObjectInputStream,不倚賴預設的)

  • [32:40] 放棄 Java 預設提供的 Serialization,例如轉成 JSON 資料(但要注意 library 有沒有安全問題)

    《Are You Deploying and Operating with Security in Mind》2

另一場的前半是由 Steve 講解,後半場開始聊 Container 環境下的 Security,特別是 Container 仰賴著 root 權限執行,當它被攻陷時,就可能拿到 root 了。

https://youtu.be/-6_wBlXuUkM?t=1150

  • [19:08] 開始講解 Container 101,由 Docker 到 k8s
  • [21:47] 『你如何看待 container 呢?』(小編不想破梗,但看到後來的圖笑到不支倒地)
  • [23:26] Container Runtime Security 101 文章推薦
  • [25:49] 注意你的 Container 供應鏈是否具安全意識並有能力及時安全更新。
  • [26:37] 運用 labeling 的功能,幫你的 image 標上 metadata (編:一種食品成份標示的概念)

https://youtu.be/-6_wBlXuUkM?t=1963

  • [32:39] 在 build pipeline 加掛 plugin 偵測問題

例如:

Clair Automatic container vulnerability and security scanning for appc and Docker * https://coreos.com/clair/ * https://github.com/coreos/clair * https://github.com/arminc/clair-scanner

IngramChen 積分 1

好狂的筆記

我沒碰 microservice,不曉得用 java serialization 的人多不多,還是都用 protobuf ?

qrtt1 積分 1 編輯於

也許都用 gRPC 這類 framework 自帶的?或被 protocol library 自動作掉?

上回 Josh 來 demo 時有展示 RSocket,不過他是直接用 jackson 的 object mapper 來做,預設情況應該就會中了 cve-2017-49951

qrtt1 積分 0 編輯於

這是貼一下昨天整理好,發佈在 FB 的東西 :D1 有些投影片截圖,可以去 FB 留言觀看呦。