首頁>科技>

0x.00、引言

為了給Duncan SecTeam做一些技術分享,思前想後,我覺得有必要利用假期先分享一些思維方式方面的東西,因此才想寫一些關於“駭客思維”方面的文章,於是有了這篇探索性的文章。本文純屬個人經驗之談,尚不成熟,見笑了。

其實,第一次聽說“駭客思維”(hacker’s mindset)這個詞,是源自TedEx上的一個美國小駭客分享的演講。透過這些年經歷的各種事情,自己關於這個詞的思考更為深入,也有了一些自己的看法,然而苦於沒有一個好的案例(既能體現思維,又能讓初學者體會深刻)。最近,恰逢網路安全教學工作要求,自己又開始琢麼著找個好的切入點,把“駭客思維”這個東西說得直白一些,貼切一些,不能向像哲學那麼艱澀,但必須包含思維層面的抽象和方法論。經過一段時間的素材蒐集和醞釀,自己對“駭客思維”的引入有了些信心,並且希望在Duncan SecTeam的培訓中嘗試著逐步總結和昇華。鑑於自己時間並不充裕,而且自己有很多有意思的點子需要實驗驗證,因此“駭客思維”培訓這個系列文章大機率只能斷斷續續的延續下去,反正有感而發吧。

0x.01、關於駭客的“小雞”

因為一直在做IoT和Android裝置安全性研究,所以自己一直混跡於某寶和鹹魚這個小圈子,目前已經練就了一雙火眼金睛,能快速識別專注7天機和洋垃圾翻新的二道販子。當然,這一切還是N次跳坑和出坑之後總結的經驗。某天,發現xx寶上面有些減壓遊戲,反正刷機和重灌系統等得也夠煩的,於是就開始了一發不可收拾的養雞生活。因此,我這裡所說的駭客的“小雞”也就是xx寶裡那個一絲不掛的小雞(過年了,穿的稍微喜慶了一點)。

或許,大家會覺得很搞笑!這“小雞”除了一絲不掛,一毛不拔之外,還能有啥呢?那麼,我就先丟擲一些問題,算是博一下諸位的眼球吧:

——1.在一分不出的情況下,一隻小雞一天最多可以獲得多少飼料?

——2.小雞要獲得最多飼料的情況下,你所需付出的最小代價是什麼?

——3.一隻小雞透過走路的方式一天最多可以獲得多少運動幣?

——4.一隻小雞獲得最多運動幣的情況下,你最少要走多少步?

如果你能就以上問題給出很酷的答案,那麼恭喜你,你有著與眾不同的“駭客思維”!

0x.02、“小雞”,飼料與走路

xx寶的每一隻小雞都隸屬於某一個xx寶賬號,每一個小雞都有一個對應的飼料筐,根據小雞的級別,飼料筐的容量會逐漸增大,直到最大值1800克(已經驗證過)。小雞獲得飼料的方法有許多,比如去做一些看似無聊,有時卻能讓你會心一笑的“課堂”練習,逛一逛“櫥窗”等等。

當然,乍一看,我說的這些跟電視上,銀幕上酷酷的“駭客”貌似沒有一點關係。那好,我就接著說小雞吧。這個小雞遊戲,如果拋開娛樂的東西來看,它本質上就是一個受限計算平臺,跟一個路由器,AP在本質上沒有多大的區別,只不過它的輸入就是你與小雞的互動,包括領飼料,餵雞,收雞蛋,走走路,慈善捐贈等等。好了,我們再來看看各種“駭客”所做過的那些很酷的事情。1970 年,一個叫做 John Draper 的退伍空軍電子技術員,發現Cap’n Crunch早餐麥片附贈的玩具口哨發出的 2600 赫茲聲波和電話交換機的頻率相同,這意味著可以透過口哨來欺電話系統,讓系統誤以為通話停止而中斷計費,從而達到免費打電話的目的。好了,你們是不是覺得xx寶小雞和Cap’n Crunch麥片中的口哨有一些共同之處了呢?

既然,我們已經剝離了小雞自身的娛樂屬性,那麼我們就來看看,怎樣才能做到不花一分錢就獲得最多的飼料。作為一位xx寶資深的小雞遊戲玩家,我找到了以下方法:

——“領飼料”

——“運動會”

——好友的捐贈:好友代為養雞,送小麥等

——xx寶各種節假日的口糧,湯圓,柿餅,節日專供雞飼料

在不考慮特殊節假日及好友捐贈的情況下,小雞每天能夠獲取雞飼料的途徑與飼料重量如下:

——逛“小雞櫥窗”:180g

——“小雞課堂”:30g | 180g

——“運動會”:—>“星星球”:0g | 60g | 120g | 180g—>“登山賽” :0g | 60g | 120g | 180g

因此,在不花一分錢的情況下,你的小雞每天最多可以獲得720g飼料。

當然,你可以透過慈善捐款(至少0.01元),額外獲得180g飼料;透過向“餘額寶”發起一次轉款(至少0.01元),你可以再獲得180g飼料;如果,你剛好需要點個外賣或則點個下午茶,你又可以額外獲得180g飼料;當然,你在實體店支付一筆錢,你還可以獲得180g飼料。這樣算下來,當你付出一個外賣點單+一次0.01元起的慈善捐款+一次實體店付款+一次線上支付,你每天可以累積獲得1440g飼料,當然前面的條件是你需要為此付出的最小代價。

仔細琢磨一下,這與Cap’n Crunch口哨之間貌似還是有些關聯的。對於電訊產業初期以及網際網路初期的駭客,我個人是很推崇的,他們的技術更多是直接來源於Cap’n Crunch麥片這樣的生活點滴,沒有過多地(甚至可以說,幾乎完全沒有)商業或者利益的摻雜,沒有黑產和灰產,沒有網路暴力和犯罪,一切都是純粹的技術。當然,技術並非是惟一的,還有就是這些駭客技術背後基於興趣的不斷嘗試,探索,總結和改進,推動技術不斷向前發展。

0x.03、“小雞”與運動幣

前面一個案例,我們明白了xx寶小雞的本質就是一個受限計算平臺,也就是說只能透過特定的受限操作與小雞互動,從而使遊戲產生有利於自己或者幾乎受控於自己的結果。接下來,這個案例則是一個高階版的,更能體現駭客思維的案例——小雞走路。

玩這個遊戲的初衷其實很簡單,我覺得讓全國各地貧困地區的小朋友擁有一個塑膠足球場很酷(想想國家男足這些年的表現,我覺得這遊戲簡直酷斃了)。一開始,我覺得每天捐步一次,就可以獲得一個隨機的獎勵值,一般是0-3個運動幣(不知道是不是基於xx寶區塊鏈來實現的)。那麼,為什麼會是0呢?其實,這個0值並不準確,因為0代表的是一個“變身卡”獎勵,可以將小雞的頭像更改為仙人掌,洋蔥頭等等(特別醜的形象)。那麼,在總結到這個規律後,我們可就不滿足了,畢竟駭客都是“貪婪”的,駭客都是“懶惰”的,我們希望用更有創造力的方法去解決哪怕是同一個問題。

那麼,我們能不能多戳幾次小雞,讓它每天多跑幾趟呢?答案是肯定的,只要你願意走路,小雞就可以反覆跑。於是,我嘗試在一天不同時候去走路,得出的結論是:每一次走路,得到的獎勵基本上都是與前面的規則吻合的,只是偶爾會在晚上的時候,出現一些金色的獎牌。

那麼,為什麼會有這些獎牌呢?為什麼晚上才會有這些獎牌呢?這些獎牌的獎勵額度是按照什麼規則設定的呢?那麼,我們需要設計一系列的測試,並且做好相應的記錄,這樣能夠在不購買測試裝置的情況下就完成這些實驗。

在每天晚上,我會有意識的開啟小雞走路,觀察時間,當天走路的總步數以及當前可以走的步數,注意這三個就是在小雞走路這個受限計算平臺上的輸入變數。透過多次實驗,我發現獎勵與具體的時間點沒有直接聯絡,能夠開啟獎牌獎勵的關鍵變數是當前累積走路的步數,確切的說,當天累積不行總數超過1萬步以後,每次走路都能觸發獎牌獎勵。由於獎牌獎勵的臨界值是1萬,因此這會讓人產生一種錯覺,只有在晚上的時候才會觸發獎勵機制。畢竟,大多數使用者很難在早上或者傍晚之前走到1萬步。其實,這就是駭客思維的一種體現,觀察到一個有趣的現象,思考可能的原因,設計一系列的實驗,完成驗證實驗,分析並找出原因。

在得到1萬步這個獎勵臨界值之後,我們可以做進一步的實驗,比如每天最多能領到幾次獎牌?每次至少做多少步才能觸發獎牌獎勵機制?每一次的獎牌獎勵的運動幣大概在哪個範圍?這裡,我就不細說了,有些樂趣是需要大家躬身實踐才能得到滿足的,曬幾張圖,算是拋磚引玉吧。

這裡,可以插入一個關於龐帝雅克汽車和“香草冰淇淋”的故事。一天,一個客戶寫信給美國通用汽車公司的龐帝雅克部門,抱怨道:他家習慣每天在飯後吃冰淇淋。最近買了一部新的龐帝雅克後,每次只要他買的冰淇淋是香草口味,從店裡出來車子就發動不著。但如果買的是其它口味,車子發動就很順利。龐帝雅克派一位工程師去檢視究竟,發現確是這樣。這位工程師當然不相信這輛車子對香草過敏。他經過深入瞭解後得出結論,這位車主買香草冰淇淋所花的時間比其它口味的要少。原來,香草冰淇淋最暢銷,為便利顧客選購,店家就將香草口味的特別分開陳列在單獨的冰櫃,並將冰櫃放置在店的前端;而將其它口味的冰淇淋放置在離收銀臺較遠的地方。在一番調查之後發現,龐帝雅克汽車的確對冰淇淋的口味不敏感,問題是出在“蒸汽鎖”上。當這位車主買其它口味時,由於時間較長,引擎有足夠的時間散熱,重新發動時就沒有太大的問題。由於買香草冰淇淋花的時間更短,引擎還無法讓“蒸汽鎖”有足夠的時間散熱。仔細想想,要找個Bug還挺難的,不喜歡香草口味的冰淇淋能找到這麼奇葩的bug嗎,沒有龐帝雅克汽車能找到這不夠嗎,更別說那種百萬美元級的“大洞”了。其實,IoT安全和智慧終端裝置安全的確面臨這種很實際的問題,需要有一定的“實力”才能進行相關的研究,這一點很像網際網路初期的駭客(如有大廠的朋友關注文章的話,希望可以捐贈我們一些工程機(新機當然更好啦)用來研究,我們一定投桃報李)。

言歸正傳,既然我們知道了,當天累積步數超過1萬步時,可以觸發系統獎勵機制。那麼,回過頭來想想,一定要在每天的不同時段才能讓小雞走路嗎?小雞走路的限制是不是也受制於每次可走步數的多少呢?每次走路只要達到了最低可走步數就能得到運動幣嗎?如果不是的話,每次至少走多少步才能保證獲得運動幣呢?

那麼,我們又可以來設計一系列的實驗,比如100步走一次,200步走一次,300步走一次,400步走一次,500步走一次等等。當然,也可以透過有名的二分法,快速收斂,找到每次走得獲得運動幣所需走得最少步數。乘著過年,大家可以出門走動走動,一方面,可以驗證我得到的結論是否正確,小雞走路的時候是否還有其它的隱藏關口等等;另一方面,過年期間,蛋白質和脂肪攝入量相對於平時大大增加,多走路,有助於消化,保持身心健康。

我比較懶,採用的是間歇性“2分法”(很難在一天內堅持做完這個實驗)。我發現,1000步以上必然可以得到0~3個運動幣;當單次可走步數在[500,1000)這個區間時,同樣可以獲得0~3個運動幣;當單次可走步數在[100, 500)時,不會有任何運動幣獎勵,哪怕是“變身卡”。由於我採用的是“間歇性2分法”,我的確節約了一些時間,但是也因此付出了更多的時間,因為必須在500步這個臨界值上進行多次實驗。

接下來,我們再來看看前面的問題。一天之內,駭客的小雞最多能夠獲得多少運動幣呢?

按照下面這個思維導圖,我們可以推算出,運氣糟透了和運氣爆棚的時候,小雞可以單日可以獲得的最多運動幣分別為:0個運動幣和57個運動幣。

同樣,要想在單日內獲得最多的運動幣,你至少需要走完11500步。

當然,有些情況我並沒有考慮在內的,比如:

——某一次走路時,剛好完成了某一條走路的線路,這時會獲得線路獎勵的運動幣和變身卡。

——在測試過程中,我發現當日累積步數在9800步左右時,如果下次走路能夠突破1萬步,那麼系統會給予單次步數獎勵和獎牌獎勵。在這種臨界條件下,此次獲得的獎牌獎勵是否會計算在單日3次獎牌獎勵中,還沒能完全證明。

0x.04、“小雞”與“駭客思維”

駭客的“小雞”應該算是一個不錯的引子,希望透過這個例子以一種另類的方式與大家分享“駭客思維”。在我看來,“駭客思維”應該有這麼幾個特徵(見笑了):

——保持對技術的興趣和敏銳,總是能發現生活中那些有趣的技術問題。

——善於總結經驗,但卻不完全依賴於經驗,敢於說“不”,善於從非常規的角度看待問題,或許這與安全圈很多大佬所謂的“發散思維”有些相似吧。

——擁有理性的思維,保持理性思考的習慣,這能使得你更快的解決問題,看到問題背後隱藏的本質。

——敢於突破,能夠打破“受限計算平臺”的各種限制和束縛,最大化利用你所想要pwn的平臺。

3
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 第55期:公開自己珍藏多年的絕密網站