之所以對這個問題感興趣是由于在知乎關(guān)注的一位北大核車間大鱷轉(zhuǎn)碼后來去了菊廠以后,一直說自己在刷,但是立馬要考試了,那時就十分惱火,工作了需要考試?
近期看了一篇文章
才曉得了三星可信專業(yè)級認證是哪些。
三星在推進技術(shù)人員的可信認證,算是一項安全合規(guī)的工作。
專業(yè)級有什么考試呢?共有五門:
課目一:上級編程,對比力扣2道中等、1道困難;
課目二:編程知識與應(yīng)用,調(diào)研基礎(chǔ)的編程語言知識等;
課目三:安全編程、質(zhì)量、隱私,也有開發(fā)者檢測等;
課目四:建構(gòu)知識,包括設(shè)計方式、代碼構(gòu)建等。
課目一是兩道偏難的中等和一道困難,這個難度還是相當大的,基本上不認真刷一個月題是做不進去的。
科二、科三、科四到幸好,主要是了解一下在代碼之上的一些東西。
這兒還有一篇將通過可信考試之觀后感悟的文章:
曾幾何時,可信成了三星硬件安裝工程師口口相傳的熱詞,它出現(xiàn)在羅馬大廈心里話社區(qū)上,出現(xiàn)在我們的技術(shù)規(guī)范要求中,出現(xiàn)在我們的編碼里,同樣出現(xiàn)在讓人頭痛的考試里……
回望過去五年的可信歷程,從被迫接受,到半信半疑,到潛移默化,可信漸漸地融入到開發(fā)的步驟、代碼和意識中。明天,我來聊聊,我與可信之間的故事……
您好,可信
“今天早上大會的主題是:可信。”明亮的大會室燈光下,經(jīng)理敲著黑板說的話。
“最重要的是,你們先背下可信的六大特征:安全(),安全(),硬度(),隱私性(),靠譜性(),可用性()……”
“總之,我們的產(chǎn)品就是要做到讓顧客倍感富有安全感,讓對手倍感絕望,讓防御者無路可走,在經(jīng)受層層懲處下,也有自我恢復(fù)的能力。”這是經(jīng)理的小結(jié)發(fā)言。
這是我印象中第一次接觸可信這個概念,談不上印象深刻,就是曉得我們要干一件更牛的事,我們的產(chǎn)品早已不滿足于功能的實現(xiàn)了,需要像“超人”的鋼鐵之軀一樣強悍,順帶的,要背下六大特征。
當初英語b級考試題,某國某晚報忽然公布了一篇文章英語b級考試題,宣稱使用先進的二補碼工具,對三星各產(chǎn)品線公布的諸多二補碼程序包進行了反向掃描剖析(就好似領(lǐng)到市面上一瓶新品可樂,通過嘗嘗、化驗、觀察反推其配方比列,還猜想其使用的某些原料或許有問題),最終結(jié)論是三星產(chǎn)品安全性遠高于友商。
對于這些指責(zé)文章,我們要從技術(shù)上,逐一進行剖析。然后,以可信學(xué)者牽頭,產(chǎn)品各領(lǐng)域投入了殘兵強將,對文章中列出的各項數(shù)據(jù)進行了縝密剖析,我還有幸加入了“戰(zhàn)斗”。
在封閉作戰(zhàn)室,經(jīng)過一周的反復(fù)代碼剖析、統(tǒng)計、檢查、閱讀,我的態(tài)度逐漸地發(fā)生了變化。例如,一些老版本的顯存操作函數(shù)插口參數(shù)上沒有約束,菜鳥在疏忽的狀況下是可鍵入錯誤的參數(shù),從而導(dǎo)致潛在的安全風(fēng)險(盡管檢測后發(fā)覺實際并沒有這么的錯誤使用),這是存在改進空間的。令人驚訝的是,我們新版本的函數(shù)從插口上約束使用者難以鍵入錯誤參數(shù),并統(tǒng)一使用公司的安全函數(shù)庫,防止了各部委重復(fù)“造輪子”。
另外導(dǎo)致我探討的是,第三方機構(gòu)在沒有我司源代碼的狀況下,都可以通過反向技術(shù),挖掘出我們多個或許潛在的安全突破口,我們真做到“可信”了嗎?
他山之石,可以攻玉。晚報丑聞導(dǎo)致我們對“可信”的反省,比內(nèi)部100個發(fā)文愈發(fā)震驚,并讓我們深刻意識到:在這個技術(shù)迅猛發(fā)展的明天,領(lǐng)到二補碼執(zhí)行程序,就相當于領(lǐng)到源代碼。我們應(yīng)當抱著開源的態(tài)度,建立我們代碼的可信性。
刷新“可信”認知
安全試驗室有一批學(xué)者的工作就是對產(chǎn)品源代碼以超出業(yè)界標準的嚴格要求,進行“挖地三尺”的挑戰(zhàn),提出讓人倍感“吹毛求疵”的整改任務(wù),以這么一種特殊形式不斷提高產(chǎn)品質(zhì)量。有每天我收到一個印象很深刻的任務(wù)。
“這是我們內(nèi)部通訊的消息處理函數(shù),這兒有一堆數(shù)值校準還不夠么,需要進行全面的安全校準嗎?是不是有點過了?這個東西對外沒有數(shù)學(xué)通道插口,非標準的合同,對方是怎樣曉得我們的通訊格式?”拿到哪個任務(wù)的時侯,我一開始是挺不以為然的,這些覺得好像是在一個層層保護、守備肅穆的堡壘中的兩個人之間使用一種內(nèi)部語言談話前,需要先檢測下對方是否“安全”了
最后,安全學(xué)者勸說了我,他列出了兩個事實:第一,安全試驗室已否認在這些極端條件下可通過上層掛接設(shè)備攻占入侵上級設(shè)備的子系統(tǒng),第二,在這個時代,領(lǐng)到二補碼程序就相當于領(lǐng)到源代碼。因此,從理論上,破壞者是可以入侵使得構(gòu)造讓系統(tǒng)異常的內(nèi)部通訊消息信令的。
這再一次刷新了我對“安全可信”的認知,其實,我們當初覺得的安全,并不是真正持久的安全。針對此事,我們除了把這一批問題全部整改,還舉一反三,把代碼中類似的場景都進行了整改。后續(xù),經(jīng)這次的啟發(fā),產(chǎn)品還集中學(xué)者,針對上層設(shè)備和下層設(shè)備之間的通訊,專門做了系統(tǒng)級的安全加固。看著經(jīng)過層層加固的代碼,你們都舒了一口氣,起碼目前我們的產(chǎn)品,即使被攻陷一個子系統(tǒng),也不會影響到整個系統(tǒng)。我們開始步入多防線安全時代。
這讓我想到了可信的一個特點:硬度()。我們的產(chǎn)品正在向那樣一種型態(tài)轉(zhuǎn)變,它好像水密隔艙技術(shù),哪怕部份系統(tǒng)受到破壞,整艘小船仍然可以繼續(xù)航行,起碼這是我們努力的方向。
“惱人”的可信考試
作為硬件安裝工程師,可信考試一段時間以來始終是繞不過的一個話題。每看到課目一、科目二、科目三、科目四的時侯,猶如回到考駕考歲月,某些意義上,這確實是持證上崗。
在三星內(nèi)部,對于可信考試的覺得堪稱是“愛恨交加”,并且對我自己來說,考完了所有課目再回望,猛然發(fā)覺別有洞天:
穿越課目一數(shù)據(jù)結(jié)構(gòu)和算法的海洋,再次對BFS/DFS(廣度優(yōu)先搜索/深度優(yōu)先搜索)等算法有了更深刻的理解;
在課目二里翻閱最新的編程規(guī)范和安全規(guī)范,發(fā)覺在簡略樸素的語言中,早已包含了重要的“CleanCode”(整潔代碼)指導(dǎo),包括命名規(guī)則、函數(shù)和文件厚度、圈復(fù)雜度等;
在課目三驚訝地發(fā)覺,大名鼎鼎的開源竟然有這么多商業(yè)限制,代碼會受傳染,在享受便利的時侯也要付出;在平常沒關(guān)注到的編譯過程里,竟然存在這么多的安全編譯選項,可以在更底層上推進可執(zhí)行程序的安全性;
在課目中學(xué)重讀設(shè)計方式又有新的感受,CSEC的白銀法則言簡意賅,確實是有效的安全指引,錯綜復(fù)雜的密碼算法都是出于歷史的不斷需求迭代。
除了是我自己,隨著身邊朋友們一個個通過考試領(lǐng)到證書,越來越少看到對可信考試的調(diào)侃,相反可以顯著發(fā)覺到你們的編碼能力、可信意識有了質(zhì)的飛躍。雖然,惟有努力和淚水從不騙子!
“戴著鐐銬唱歌”
如火如荼的項目開發(fā)工作是硬件安裝工程師的日常,有三天我忽然聽到一個讓我眼前一亮的OKR(andKey,目標與關(guān)鍵成果,一種績效管理辦法)個人目標:“達成可信交付目標,編碼過程遵循可信規(guī)范,交付高品質(zhì)的代碼”,這是組內(nèi)成員小楊在一個樣機開發(fā)項目中提出的一個目標。我吃驚地發(fā)覺,你們早已從被動到主動,潛移默化地把可信編碼要求帶入到日常工作之中,我的心里有點欣喜。
上面組內(nèi)搜集能力提高輪訓(xùn)需求時,小楊提出希望能組織輪訓(xùn)下最新的編程規(guī)范實操經(jīng)驗。“你不是剛通過可信認證全部考試,領(lǐng)到證書了嗎,課目二不是剛考過么?”我笑著問他。“最近規(guī)范又有點變動了,立馬要做一個新的研發(fā)項目了,想找?guī)讉€資深的研制來分享下它們項目中規(guī)范編碼最佳實踐,我認為這個挺重要的。”他說道。
對于項目而言,時間永遠是“不夠”的,每位研制的潛意識里總是恐懼著能夠更快的遞交代碼。因此有兩天,小楊找我說,希望給他正在做的研發(fā)項目代碼庫房加上全套門禁系統(tǒng),即將在研版本代碼遞交是應(yīng)當經(jīng)過一套復(fù)雜門禁系統(tǒng)檢測的,而通常研發(fā)或則樣機項目,格外重視效率和成果。“你這是準備戴著鐐銬唱歌啊。”我對他說道。“這樣愈發(fā)安全靠譜,代碼品質(zhì)更好,才能直接攔截不合法合入,人都是容易輕敵的,有個工具來約束下很好,頂多我多加點班。”他笑道。
而可信的意識,也給小楊帶給了收益——最近他榮獲了我們部委的“質(zhì)量之星”榮譽,在其關(guān)鍵品質(zhì)表現(xiàn)描述上,第一條就是:“在xx項目中累計遞交xxK+高品質(zhì)代碼,無遺留問題;xx項目版本,在xx研究院試驗室、xx&xx現(xiàn)網(wǎng)等檢測過程中,特征穩(wěn)定,顧客滿意”。
源于心,總算行,千里之行,源于足下。
行動決定了結(jié)果,而思想決定了行動。回望這一路,“可信”之路并不輕松,你們悲哀地前行,并且一路都能收獲到努力的果實。我感覺,把可信的思想融入廣大硬件安裝工程師的心靈,再用意識之水播撒產(chǎn)品的可信之花,我們畢竟會迎來“可信”的明日!
領(lǐng)悟
但是今天你們似乎都不太喜歡考試,就像考試都是應(yīng)試教育那一套,并且就我自己的學(xué)習(xí)經(jīng)驗而言,只有你把你學(xué)的內(nèi)容當作考試時,才可以學(xué)的淺顯,了解各類變化,了解各式細節(jié),這不就是基礎(chǔ)嗎?顯然對于編程來說,不僅要基礎(chǔ)好,需要多寫代碼,雖然這只是一個技藝活,熟能生巧。
打好基礎(chǔ)加多練,基本上可以解決大部份問題。