資安筆記 作者 Hsin,Head of Product English

東西都該是你的。但你不必自己

昨天那篇談的是託管權大於信任, 而收到最多的回應是一個很合理的反問: 「我們公司六個人,沒有人可以管一個雲端帳號。」 這個問題值得一個真正的回答,因為答案不是「那你去請一個 ops」。 答案是:擁有一個東西,跟營運它,是兩份不同的工作, 而只有其中一份非得是你的。

花錢請人幫你跑機器、幫你掃描雲端、幫你打補丁,是正常的—— 跟請一個會計師是同一個形狀。這次出事的團隊,問題不在於他們找了人幫忙, 而在於他們把「擁有」跟工作一起交了出去。

那些團隊真正丟掉的是什麼

不只是金鑰和資料——金鑰可以換,資料再痛也重建得回來。 他們丟掉的是回答自己問題的能力: 我到底放了什麼在那裡?我哪些憑證還有效?誰動過我的資料庫、什麼時候動的? 每一個答案都在別人的系統裡,而唯一的取得方式, 是等下一則公告,然後決定要不要相信。

這就是把「擁有」交出去的意思。 而且注意:這跟你有沒有工程師無關。 一家五十人但沒有擁有權的公司,處境跟三個人的公司一模一樣。 擁有不是人數問題。

四件永遠不要交出去的東西

其他都可以談。這四件是「東西是你的」實際上的意思, 而且沒有一件需要你聘一個工程師:

  1. 一、帳號開在你的名字下。雲端廠商的帳單寄到你公司,帳號是你公司持有的。開一個帳號是一個下午加一張信用卡的事;營運它才是難的——而營運,正是你可以外包的那一半。
  2. 二、資料放在那個帳號裡面。不是放在某個平台上、由它「幫你保管」。如果你沒辦法指著一個資料庫說「那個是我的」,那你就沒有它。
  3. 三、你知道有哪些金鑰存在。你不需要懂它們怎麼運作,但你要能拿到一份清單,而且清單上任何你不認得的東西,要有人回答得出來那是什麼。
  4. 四、你可以自己、今天、把任何人踢掉。包含我們,包含幫你跑機器的那一家。如果要撤掉一個廠商的存取權,還需要那個廠商配合,那你不是帳號的主人,你是客人。

第四條值得讀兩次。這個領域裡每一個糟糕的故事,結尾都是同一句話: 「我們什麼都不能做,只能等。」

工作,你應該放心外包

沒有人會覺得一家公司請會計師是不負責任。 公司和銀行帳戶是你的,帳由專業的人做。 也沒有人會建議你自己查自己的帳比較安全。

基礎設施是同一件事,只是我們不知為何說服了自己它不是。 跑機器、打補丁、盯著它、掃描它有沒有問題——這些是工作,工作可以請人做。 一家六個人的公司半夜自己維護伺服器,並不會比請人做更安全,通常更不安全。

所以「我們沒有人可以管」的答案, 不是繼續待在一個把你整套東西都拿走的平台上, 而是:帳號自己擁有,工作花錢請人做。

判斷一個委託關係健不健康,問四題

任何你請來碰你基礎設施的對象都適用——外包廠商、代管商、平台、我們:

  1. 他只能讀,還是也能改?如果能改,那個範圍有沒有寫在一個你查得到的地方?
  2. 報告是先到你手上,還是你看到的是他決定要給你的版本?
  3. 你能不能單方面結束?不用開單、不用預告期、不用等他上班。
  4. 如果他明天消失了,你的服務後天還跑得起來嗎?

四題都過得了的廠商,可以放心把很多工作交給他,因為那些工作沒有一項是靠信任撐著的。 第三題或第四題過不了的,那不是一個供應商,是一個依賴—— 而你會在最糟的那一天才發現兩者的差別。

資安健檢,就是這個模型最乾淨的例子

找一家外面的廠商來掃你的雲端,乍看之下像是把鑰匙交出去。 做對的話,它其實是相反的——而且值得看清楚為什麼,因為它是所有其他委託關係的範本:

  • 他拿到的是唯讀權限,而那個權限是你開的,你也刪得掉。
  • 報告講的是你的帳號,而且送到你手上。
  • 做完之後你把權限收回來,你的東西沒有任何一樣離開過。

專業的工作交付了,擁有權從頭到尾沒有移動過。這就是你要找的形狀。 如果一家廠商的同名服務需要你給一把管理金鑰「這樣我們才能順手幫你修」, 那你被賣的是另一個東西,只是用了同一個名字。

有一項發現是這種健檢裡最常出現的,而且你自己去看不用花任何錢: 活得比服務還久的憑證。 某個結束了的專案留下的外包商存取權、兩年前為了一次搬遷開的金鑰—— 服務關掉了,金鑰沒有。 如果你有雲端帳號,跟管它的人要一份「按最後使用時間排序」的憑證清單, 然後問那些很久沒用的,現在還留著是為了什麼。

如果你決定要搬出來

對一家有真實服務、有真實客戶資料、但沒有 IT 部門的公司,可行的順序大概是這樣:

  1. 一、自己去開雲端帳號,開在公司名下。在你跟任何人談搬遷之前先做。這一步決定了下一段關係是「擁有」還是「租用」,而它是整個過程裡最簡單的一步。
  2. 二、把你實際上有什麼寫下來。跑了哪些服務、存了哪些資料、連到什麼、設定裡除了密碼還有什麼。多數團隊在這一步會發現自己根本沒有一份完整清單——那本身就是一個發現。
  3. 三、然後才花錢請人搬。外包工程師、代管商、平台都可以。在問價格之前,先問上面那四題。
  4. 四、把營運委託出去,寫進合約,連無聊的部分一起寫。特別是「東西關掉的時候會怎樣」:誰去撤掉它的存取權、什麼時候撤、有誰會知道真的撤了。沒寫清楚的話,這件事就不屬於任何人——而那正是一個已經關掉的服務,可以繼續握著一把有效金鑰兩年的原因。

注意那份清單上沒有的東西:學會操作雲端。 你需要的是擁有一個帳號,不是變成一個工程師。

一個誠實的提醒:搬家是有代價的

一個把你整套東西都拿走的平台,第一天確實比較輕鬆,說它不是就是不誠實。 搬出來意味著一次遷移、一張你從此要自己讀的帳單、還有一段要管理的關係。 你換到的是:出事那天,問題是有答案的——而且是你自己就查得到,不用問誰。

而且不必是這禮拜。如果你決定暫時不動, 上面那四題一樣值得拿去問你現在的平台。 先知道它哪幾題過不了,比需要的時候才知道好。

講白的結論

你不需要先變成一家有 ops 的公司,才能把東西拿回來。 你要做的只是把兩個問題分開:哪些是你擁有的—— 帳號、資料、金鑰,以及把任何人踢掉的權力—— 哪些是你花錢請人做的

一套沒有人真正擁有的系統,不會因為到現在都沒出事就代表它安全, 它只是還沒被點到名。 而如果你這套東西是幾年前為了「快」搭起來、之後就沒有人再回頭看過, 它一直在替你累積一筆你看不見的帳。

第一步不是搬家。是把帳號開在自己名下, 然後拿上面那四題,去問今天在幫你跑這些東西的人。

利益揭露:我們就是你可能會請來做這件事的廠商之一, 所以我們有立場。那四題正是我們希望被拿來審的標準—— 先拿去審我們,再拿去審別人。 開源版是 Apache 2.0,會跑在你機器上的程式碼,你或你找的任何人都讀得到。

是時候好好檢視,你到底授權了什麼給你的 PaaS。

上面那四題不用花錢,先從那裡開始。如果你想要有人陪你走一遍——你在那個平台上到底授權了什麼、哪些該收回來——我們提供免費的健檢諮詢。不用裝任何工具,也不是包裝成諮詢的業務電話。