官术网_书友最值得收藏!

前言

如果一個系統沒有基本的安全性,那么它真的可以被認為是可靠的嗎?或者說,如果一個系統不可靠,那么可以認為它是安全的嗎?

成功地設計、實現和維護系統需要投入整個系統生命周期中,而只有當系統架構具備安全性和可靠性這兩個核心要素時,投入才會有效果。然而,我們往往在事后才會考慮到這兩者,這使得改進過程困難重重,而且往往要付出高昂的代價。

隨著越來越多的產品連接到互聯網,云技術也變得越來越普遍,基于安全的設計(security by design)的概念就變得越來越重要了。我們越依賴系統,系統就越需要可靠;我們越信任系統的安全性,系統就越需要安全。

系統

本書大致介紹了系統,它通常指一組用于執行功能的組件。在系統工程環境中,這些組件通常包括在各種計算機的處理器上運行的軟件片段,還可能包括硬件本身以及人們設計、實施和維護系統的過程。排查系統的運行狀況非常困難,因為它們很容易出現復雜而又緊急的情況。

寫作初衷

我們想寫一本專注于將安全性和可靠性集成于軟件和系統生命周期的書,并在其中強調與安全性和可靠性相關的技術和實踐,同時闡述這些實踐之間是如何相互關聯的。本書旨在分享安全性和可靠性專家在系統設計、實現和維護方面的見解。

要明確的一點是,本書所建議的一些策略需要基礎設施的支持,而這些可能在你目前所在的公司里根本不存在。我們會盡可能地為不同規模的組織提供適用的建議,但我們認為,就如何在實踐中提升安全性和可靠性來展開交流非常重要。這是因為隨著專業社區的不斷壯大和技術的不斷精湛,所有成員都可以從彼此身上學習到很多內容。我們希望其他組織也樂于在社區中分享自己的成功故事和經驗。隨著安全性和可靠性的觀念不斷發展,整個行業都能從各種各樣的實踐案例中獲益。安全性和可靠性工程仍在迅速發展中。我們將不斷地遇到一些新的狀況和案例,促使我們修正(甚至在某些情況下取代)過去堅信的觀點。

讀者對象

因為安全性和可靠性是每個人的責任,所以本書面向的受眾非常廣泛,包括所有設計、實現和維護系統的人。本書嘗試打破專職開發人員、架構師、網站可靠性工程師、系統管理員和安全工程師之間的傳統界限。盡管本書將深入探討一些跟經驗豐富的工程師更相關的主題,但請你在閱讀不同章節時,嘗試站在不同的角度來思考,忘掉自己現有的身份,通過這樣的視角來思考如何提升系統。

我們認為,每個人在開發的初始階段就應該考慮可靠性和安全性,并在系統生命周期的早期就運用書中的原則。這個關鍵概念是本書的立足之本。安全工程師越來越像軟件開發人員,網站可靠性工程師和軟件開發人員則越來越像安全工程師,業界對于這種現象的探討非常熱烈 1,我們也邀請你加入這些對話中來。

1舉幾個例子:Dino Dai Zovi 在 2019 年美國黑帽大會上演講的議題“Every Security Team Is a Software Team Now”,開放安全大會的 DevSecOps 分會場,以及 Dave Shackleford 為 SANS Analyst 項目所寫的論文“A DevSecOps Playbook”。

本書中提到的“你”,指的就是讀者,與職位和經驗水平無關。本書打破了對于傳統工程角色的期望,目的是使你能夠在整個產品生命周期中對安全性和可靠性負責。你不必糾結是否需要在特定的情況下借鑒本書的實踐經驗。我們鼓勵你在職業生涯的不同階段或者組織的發展過程中重溫本書,并考慮一下起初覺得平淡無奇的觀點在后來是否有了新的解讀。

關于文化的提示

建立和采用本書所推薦的最佳實踐,需要一種鼓勵變化的文化。我們認為,在針對安全性和可靠性進行技術選型時,有必要兼顧組織文化,這樣才能使你所做的任何調整都能夠持久且彈性可變。既不重視安全性也不要求可靠性的組織是需要改變的,而改變組織本身的文化往往需要前期的投入。

我們在整本書中都結合了技術最佳實踐,并為此提供了數據支持,但它不包括以數據為支撐的企業文化最佳實踐。盡管本書提出了其他組織可以適應或涵蓋的方法,但是每個組織都有其獨特的文化。Google 在這種文化中的過往實踐可能并不能直接適用于你的組織,我們鼓勵你根據本書提供的抽象建議提煉出你自己的實踐方式。

如何閱讀本書

盡管本書包含許多案例,但它并不是一本手冊式的書。本書講述了 Google 及業界的故事,并分享了我們多年來的經驗。每個系統的基礎架構都不同,因此你可能需要對我們提供的一些解決方案進行大幅度的調整,一些解決方案甚至可能根本不適用于你的組織。我們嘗試提供抽象的原則和實用的解決方案,你可以采用適合自身獨特環境的方式來實現它們。

我們建議你從第 1 章和第 2 章開始閱讀,然后挑選最感興趣的章節。大多數章節以帶框的前言或摘要開頭,其中概述了以下內容。

◆ 問題陳述。

◆ 在軟件開發生命周期中,你應該采取的原則和實踐。

◆ 關于可靠性和安全性之間的結合和權衡的思考。

每一章均從最基礎的內容入手,逐漸過渡到最復雜的內容,其中深奧的部分會使用爬行動物圖標來標識。

本書推薦了許多被認為是業界最佳實踐的工具或技術,然而并非每種想法都適合你,因此你應該根據自身項目的需求,設計適合自身風險狀況的解決方案。

雖然本書獨立成冊,但你可以從《SRE:Google 運維解密》和《Google SRE 工作手冊》中找到參考資料,其中有來自 Google 的專家闡述了可靠性對服務設計的重要性。閱讀這些書可以讓你對本書中的一些概念有更深入的了解,不過并非前提條件。

我們希望你能喜歡本書,因為本書能幫助你提高系統的可靠性和安全性。

排版約定

本書使用以下排版約定。

黑體

  表示新術語或重點強調的內容。

等寬字體(constant width)

  表示程序片段,以及正文中出現的變量、函數名、數據庫、數據類型、環境變量、語句和關鍵字等。

等寬粗體(constant width bold

  表示應該由用戶輸入的命令或其他文本。

等寬斜體(constant width italic)

  表示應該由用戶輸入的值或根據上下文確定的值替換的文本。

 該圖標表示一般注記。

 該圖標表示深奧的內容。

O'Reilly在線學習平臺(O'Reilly Online Learning)

40 多年來,O'Reilly Media 致力于提供技術和商業培訓、知識和卓越見解,來幫助眾多公司取得成功。

我們擁有獨一無二的專家和革新者組成的龐大網絡,他們通過圖書、文章、會議和我們的在線學習平臺分享他們的知識和經驗。O'Reilly 的在線學習平臺讓你能夠按需訪問現場培訓課程、深入的學習路徑、交互式編程環境,以及 O'Reilly 和 200 多家其他出版商提供的大量文本資源和視頻資源。有關的更多信息,請訪問 https://www.oreilly.com

聯系我們

請把對本書的評價和問題發給出版社。

美國:

  O'Reilly Media, Inc.

  1005 Gravenstein Highway North

  Sebastopol, CA 95472

中國:

  北京市西城區西直門南大街 2 號成銘大廈 C 座 807 室(100035)

  奧萊利技術咨詢(北京)有限公司

O'Reilly 的每一本書都有專屬網頁,你可以在那兒找到本書的相關信息,包括勘誤表、示例代碼以及其他信息。本書的網站地址是:https://oreil.ly/buildSecureReliableSystems

對于本書的評論和技術性問題,請發送電子郵件到:bookquestions@oreilly.com

要了解更多 O'Reilly 圖書、培訓課程、會議和新聞的信息,請訪問以下網站:https://www.oreilly.com

我們在 Facebook 的地址如下:http://facebook.com/oreilly

請關注我們的 Twitter 動態:http://twitter.com/oreillymedia

我們的 YouTube 視頻地址如下:http://www.youtube.com/oreillymedia

致謝

本書是約 150 人的熱情和慷慨貢獻的結晶,其中包括作者、技術作家、編輯,以及來自工程、法律和市場等領域的審閱者。貢獻者遍布美洲、歐洲和亞太地區的十多個辦事處,跨越了 18 個時區。我們想花些篇幅來感謝一些人,他們未在章首列出。

作為 Google 安全和 SRE 的領導者,Gordon Chaffee、Royal Hansen、Ben Lutch、Sunil Potti、Dave Rensin、Benjamin Treynor Sloss 和 Michael Wildpaner 是 Google 內部的發起人。他們致力于將安全性和可靠性直接集成到軟件和系統生命周期中,這一信念對于完成本書至關重要。

如果沒有 Ana Oprea 的推動和奉獻,就不會有本書。她意識到本書的價值,因此在 Google 內部提出了想法并向 SRE 和安全負責人宣講,為促成本書寫作組織了很多必要的工作。

我們希望在此感謝為本書提供深入的思考、討論和審查的人,他們的名字按章列出,如下所示。

◆ 第 1 章——Felipe Cabrera、Perry The Cynic 和 Amanda Walker

◆ 第 2 章——John Asante 和 Mike Koivunen

◆ 第 3 章——Amaya Booker、Micha? Czapiński、Scott Dier 和 Rainer Wolafka

◆ 第 4 章——Felipe Cabrera、Douglas Colish、Peter Duff、Cory Hardman、Ana Oprea 和 Sergey Simakov

◆ 第 5 章——Paul Guglielmino 和 Matthew Sachs

◆ 第 6 章——Douglas Colish、Paul Guglielmino、Cory Hardman、Sergey Simakov 和 Peter Valchev

◆ 第 7 章——Adam Bacchus、Brandon Baker、Amanda Burridge、Greg Castle、Piotr Lewandowski、Mark Lodato、Dan Lorenc、Damian Menscher、Ankur Rathi、Daniel Rebolledo Samper、Michee Smith、Sampath Srinivas、Kevin Stadmeyer 和 Amanda Walker

◆ 第 8 章——Pierre Bourdon、Perry The Cynic、Jim Higgins、August Huber、Piotr Lewandowski、Ana Oprea、Adam Stubblefield、Seth Vargo 和 Toby Weingartner

◆ 第 9 章——Ana Oprea 和 JC van Winkel

◆ 第 10 章——Zoltan Egyed、Piotr Lewandowski 和 Ana Oprea

◆ 第 11 章——Heather Adkins、Betsy Beyer、Ana Oprea 和 Ryan Sleevi

◆ 第 12 章——Douglas Colish、Felix Gr?bert、Christoph Kern、Max Luebbe、Sergey Simakov 和 Peter Valchev

◆ 第 13 章——Douglas Colish、Daniel Fabian、Adrien Kunysz、Sergey Simakov 和 JC van Winkel

◆ 第 14 章——Brandon Baker、Max Luebbe 和 Federico Scrinzi

◆ 第 15 章——Oliver Barrett、Pierre Bourdon 和 Sandra Raicevic

◆ 第 16 章——Heather Adkins、John Asante、Tim Craig 和 Max Luebbe

◆ 第 17 章——Heather Adkins、Johan Berggren、John Lunney、James Nettesheim、Aaron Peterson 和 Sara Smollet

◆ 第 18 章——Johan Berggren、Matt Linton、Michael Sinno 和 Sara Smollett

◆ 第 19 章——Abhishek Arya、Will Harris、Chris Palmer、Carlos Pizano、Adrienne Porter Felt 和 Justin Schuh

◆ 第 20 章——Angus Cameron、Daniel Fabian、Vera Haas、Royal Hansen、Jim Higgins、August Huber、Artur Janc、Michael Janosko、Mike Koivunen、Max Luebbe、Ana Oprea、Andrew Pollock、Laura Posey、Sara Smollett、Peter Valchev 和 Eduardo Vela Nava

◆ 第 21 章——David Challoner、Artur Janc、Christoph Kern、Mike Koivunen、Kostya Serebryany 和 Dave Weinstein

在此也特別感謝 Andrey Silin 對整本書的指導。

以下審閱者一路指引著我們,并提供了寶貴的見解和反饋:Heather Adkins、Kristin Berdan、Shaudy Danaye-Armstrong、Michelle Duffy、Jim Higgins、Rob Mann、Robert Morlino、Lee-Anne Mulholland、Dave O'Connor、Charles Proctor、Olivia Puerta、John Reese、Pankaj Rohatgi、Brittany Stagnaro、Adam Stubblefield、Todd Underwood 和 Mia Vu。特別感謝 JC van Winkel 檢查了全書的一致性問題。

我們也感謝以下貢獻者,他們提供了豐富的專業知識或資源,或者為本書做出了出色的貢獻:Ava Katushka、Kent Kawahara、Kevin Mould、Jennifer Petoff、Tom Supple、Salim Virji 和 Merry Yen。

我們非常感謝外部的定向審閱者 Eric Grosse 的指導,他幫助我們在創新性和實用性建議之間取得了良好的平衡。我們同時還收到業界對本書非常有效的反饋,這些反饋來自以下審閱者:Blake Bisset、David N. Blank-Edelman、Jennifer Davis 和 Kelly Shortridge。以下人員的深度審閱讓每一章對于讀者來說都更有針對性:Kurt Andersen、Andrea Barberio、Akhil Behl、Alex Blewitt、Chris Blow、Josh Branham、Angelo Failla、Tony Godfrey、Marco Guerri、Andrew Hoffman、Steve Huff、Jennifer Janesko、Andrew Kalat、Thomas A. Limoncelli、Allan Liska、John Looney、Niall Richard Murphy、Lukasz Siudut、Jennifer Stevens、Mark van Holsteijn 和 Wietse Venema。

另外,特別感謝 Shylaja Nukala 和 Paul Blankinship,他們非常慷慨地貢獻了時間和關于 SRE 與安全技術寫作團隊的技能。

盡管其工作內容沒有直接體現在書中,但我們仍要感謝下列貢獻者:Heather Adkins、Amaya Booker、Pierre Bourdon、Alex Bramley、Angus Cameron、David Challoner、Douglas Colish、Scott Dier、Fanuel Greab、Felix Gr?bert、Royal Hansen、Jim Higgins、August Huber、Kris Hunt、Artur Janc、Michael Janosko、Hunter King、Mike Koivunen、Susanne Landers、Roxana Loza、Max Luebbe、Thomas Maufer、Shylaja Nukala、Ana Oprea、Massimiliano Poletto、Andrew Pollock、Laura Posey、Sandra Raicevic、Fatima Rivera、Steven Roddis、Julie Saracino、David Seidman、Fermin Serna、Sergey Simakov、Sara Smollett、Johan Strumpfer、Peter Valchev、Cyrus Vesuna、Janet Vong、Jakub Warmuz、Andy Warner 和 JC van Winkel。

感謝 O'Reilly Media 團隊的 Virginia Wilson、Kristen Brown、John Devins、Colleen Lobner 和 Nikki McDonald,他們的幫助和支持讓本書面世。感謝 Rachel Head 出色的編輯經驗。

最后,本書的核心寫作團隊想在此表示個人感謝。

Heather Adkins

  經常有人問我 Google 是如何確保安全的,我能給出的最簡短的回答是:員工的多樣化是 Google 保衛自身的關鍵能力。本書正是這種多樣性的反映,我相信這一生再也找不到比 Google 團隊更好的防御團隊了。特別感謝我的好丈夫 Will(加 42 個贊!)、母親 Libby、父親 Mike 和兄弟 Patrick,以及專門制造錯別字的 Apollo 和 Orion。感謝我在 Google 的團隊和同事在我撰寫本書時容忍我的缺席,你們在面對強大對手時非常堅韌。感謝 Eric Grosse、Bill Coughran、Urs H?lzle、Royal Hansen、Vitaly Gudanets 和 Sergey Brin 在過去超過 17 年的指導、反饋以及偶爾的質疑。感謝我親愛的朋友和同事 Merry、Max、Sam、Lee、Siobhan、Penny、Mark、Jess、Ben、Renee、Jak、Rich、James、Alex、Liam、Jane、Tomislav 和 Natalie,特別是 r00t++ 的鼓勵。感謝 John Bernhardt 博士,你教了我很多,很抱歉我還沒有取得學位!

Betsy Beyer

  感謝每天激勵我的祖母、Elliott、Aunt E 和 Joan,你們都是我的英雄。感謝 Duzzie、Hammer、Kiki、Mini 和 Salim,你們積極而清晰的檢查讓我保持清醒。

Paul Blankinship

  感謝支持我的 Erin 和 Miller,以及讓我笑個不停的 Matt 和 Noah。我想對在 Google 的朋友和同事表示感謝,特別是我的技術作家,你們為概念和表述而反復斟酌,并且要為“小白”讀者同時扮演專家和提倡者兩種角色。非常感謝本書的其他作者,我欽佩你們每一個人,能與你們相提并論是我的榮幸。

Susanne Landers

  感謝本書的所有撰稿人,言語已無法表達我作為參與者所感到的榮幸。沒有這些人就沒有我的今天,Tom 尋得了這次機會,Cyrill 教會了我一切,Hannes、Michael 和 Piotr 邀請我加入最棒的團隊 Semper Tuti !感謝帶我去喝咖啡的你(你知道我說的人是你!),如果沒有你,生活將極其無聊。感謝 Verbena,她比任何人都更能成就我。最重要的是,感謝我生命中的摯愛,感謝你的無條件支持和我們最神奇、最優秀的孩子。我不知道于你們而言是否值得,但我會盡我所能做到最好。

Piotr Lewandowski

  感謝每一位讓世界變得更美好的人。感謝我的家人給予的無條件的愛,感謝我的伴侶與我分享生活中的喜怒哀樂,感謝我的朋友給我帶來歡樂。感謝我的同事,你們無疑是我工作中最棒的部分。感謝我的導師一直以來的信任。如果沒有你們的支持,我就無法完成本書。

Ana Oprea

  獻給即將在本書出版之際出生的小家伙。感謝我的丈夫 Fabian,當我們組建家庭時,無論是撰寫本書還是其他事情,他都一直支持我。感謝我的父母 Ica 和 Ion,你們比我更懂我自己。本書證明,如果沒有一個開放、有建設性的反饋環是不會取得進展的。本書是基于我過去的經驗來編撰的,因此要感謝我的經理 Jan 以及整個基礎設施研發團隊,你們信任我,讓我能將精力集中于集成安全性、可靠性和研發工作中。最后,還要由衷感謝 BSides Munich 和 MUC:SEC 這兩個對我幫助頗多的社區,在那里我不斷地學習和成長。

Adam Stubblefield

  感謝我的妻子、家人以及過去這些年來幫助我的同事和導師。

譯者致謝

劉志穎

感謝我的合作伙伴和編輯老師們,在大家的共同努力下才能順利完成本書的翻譯,特別感謝 Martin(周雨陽)在翻譯過程中對我提供的無私幫助。感謝我的另一半郭靜暉,如果沒有她的愛和支持,可能無法讓翻譯工作堅持下來。感謝騰訊 PCG 應用安全團隊的小伙伴們,特別感謝 ruilin 一直以來的工作指導,讓我更好地理解本書。感謝在騰訊遇到的各位老師和摯友,特別是 lake2 和 gmxp 二位在翻譯過程中的鞭策。

更多信息

掃描下方二維碼,即可獲取電子書相關信息及讀者群通道入口。

主站蜘蛛池模板: 云梦县| 深州市| 八宿县| 佛坪县| 山阴县| 五指山市| 灯塔市| 西华县| 呼伦贝尔市| 时尚| 泽普县| 汪清县| 太仓市| 朝阳市| 绥阳县| 阳朔县| 尼玛县| 茂名市| 安化县| 湘乡市| 康马县| 遵义市| 商南县| 霍山县| 延津县| 贡山| 营山县| 阿鲁科尔沁旗| 南京市| 肃南| 通州区| 小金县| 离岛区| 沛县| 邹平县| 新巴尔虎左旗| 平邑县| 长宁区| 乌拉特后旗| 依兰县| 平舆县|