跳到主要內容

陸文舉:業務視角下的邏輯安全

網站內容來源http://server.it168.com/

陸文舉:業務視角下的邏輯安全

2018-08-14 17:22    原創  作者: 高博 編輯:
0購買

  本文根據陸文舉(土夫子)老師在2018年5月12日【DTCC 2018】現場演講《業務視角下的邏輯安全》內容整理而成。


  講師介紹:


  


  陸文舉(土夫子),會分期運維總監DSRC(滴滴安全應急響應中心)TOP白帽,擁有8年運維經驗,3年安全經驗,曾就職於58同城等多家上市公司,擅長業務邏輯安全。


  分享大綱:


  1. 未授權訪問


  2.信息泄露


  3.越權遍歷


  4.支付


  5.密碼重置


  6.API調用


  7.總結


  正文: 我今天和大家分享的主題是業務視角下的邏輯安全,互聯網什麼最值錢我們都知道,是數據,從大學生從FR到這個,比如你花幾百塊錢就可以在網上買到一個別人的信息,然後再到前段時間說的Face Book事件的發生,所以說我今天和大家從業務的角度分享一下邏輯安全。


  


  在準備今天主題的時候,我一直在想一個安全的本質是什麼,也就是說那比如像這個綁卡和支付之間能有什麼,所以我歸納了兩個業務是安全的基石,那麼像綁卡裏面的問題,比如說像惡意提現,像自助裏面,訂單裏面的這種。


  


  隨着互聯網的發展,越來越多的安全產品也出來了,包括早期的防火牆和IDS,或者IPS到後面的各種性能,雲WAF或者各種成分,包括後來等等一系列安全產品。


  


  那麼有了這些產品我們的業務就安全了嗎?所以接下來我們從業務的角度來看一看,在這些安全產品之後,有了這些安全產品之後,還存在安全漏洞。


  1.未授權訪問


  


  


  第一個是未授權訪問,什麼是未授權訪問?說白了在某個系統,不需要去做身份驗證就可以看到這個系統,比如說我們這個像DPA用的這個,還有這個做日常維護的時候,它隨時把功能,而且是不需要登錄認證就可以看到數據的,這會面臨什麼問題呢?我們可以發出特殊的指令做一些特殊的操作,相當於就對這個客戶端做一個內容。


  


  還有像Hadoop的管理頁面,還有像做數據分析,比如說做這個東西的,那這些東西正常情況下你的端口現在是建立在內網上面的。


  


  這個也是,比如說這個上面出錢,這套系統比如說這個裡面有幾百塊的訂單,大家可以看到具體的訂單號,還有應該做數據分析的,那像這個情況面臨着什麼樣的情況,最簡單就是操作被泄露,那為什麼會導致這種原因呢?也就是說這個是由於我們的技術人員安全意識不當造成的,那像一些內容的系統,像這些的,這個最基本的。


  2.信息泄露


  接下來和大家分享第二個,信息泄露。我曾經在書上看到過這麼一個段子,一幫美女都在洗澡,突然這幫美女就急急忙忙跑了過來,然後發現都是大爺,衣服都沒有穿了。這個時候有個大爺衝著美女喊了一句,都捂住臉,下面都一樣。然後這個段子說明什麼,我們可以看一下租房的頁面。


  


  我們可以看到在租房行業裏面,中國行業裏面發布找房信息之後,我們可以看到發布人的手機號都是泄露的,每家基本上都是這樣,那麼這會造成一個什麼問題呢?


  


  我們會針對這種手機號看到兩種漏洞。第一個針對A公司租房平台,它的手機號是大家看到了,那很簡單,我們可以把它的手機號全部爬取下來,那對A公司的其他系統,比如說商家系統我們可以看到精準的用戶,去破解其他系統。


  那第二個就是說我們都知道行業裏面的數據,比如說A公司做租房業務的,那B公司也做,我們可以把這個手機號爬取下來,對B公司做一些特殊的操作。這種情況下,操作軟件都像早期網約車一樣,我們知道早期的網約車看到都是真實的手機號,那看這個加一個點擊滑塊就可以看到手機號,另一個可以採取虛擬號的方式,比如說像現在就是看到假的手機號,不真實。


  


  這是另外一個信息泄露的例子,那我們都知道,在互聯網早期的時候,漏洞都是以單點形式存在的,隨着技術的發展,現在這種已經很少了,不能說不見了。現在漏洞的形式都是基於多點存在。


  比如說我們做活動,當然這兩個圖都是同一個動作,比如我們泄露的訂單這個,那麼單獨來看,其實影響不大,比如說沒有手機號,那我們可以通過挖掘,通過一系列的挖掘,發現B泄露訂單號和手機號,那麼可以A點做一個整合,可以得到想要的數據,比如說包括手機號這種,接下來和大家分享越權遍歷。


  3、越權遍歷


  先說一下什麼是越權遍歷,我們說在收集數據的時候,不僅能看到自己的信息,還能看到別人的信息,這就是越權,那麼造成這種的原因是什麼呢?比如說像這個開發者,在開發程序的時候,他只做了一個當發生A的時候,會做B的判斷,當發生C的時候會做出D的判斷,但是他沒有判斷當發生X的時候會做出什麼樣的判斷。


  那麼越權遍歷會把這個分為水平越權和垂直越權,可能這樣比較抽象,因為好多功能同時,比如說這個水平,所以說我就歸納為兩點,比如說我就歸納越權可以理解成前台越權和後台越權就可以了。


  


  那麼什麼是前台越權?比如說我在訂外賣或者打車,那麼我們的APP就是前台的東西,這個很容易理解,那再像司機在這個接訂單的時候,還有像公司利民的管理系統,公司有的運營系統,這種東西就屬於後台,接下來我們看前台的一個案例,這也是一個租房信息的一個案例。


  


  用戶在查詢自己訂單的時候,我們可以看到通過ID會有一個合同,但是我們可以通過對ID進行遍歷,遍歷通過別人,比如我們是遍歷一起的合同規則,這是一個前面的案例。


  


  那比如說像這個接下來說後台的,這個就相對好一點了,中國好多公司安全註冊的時候,接觸過好多公司的這個版本,基本上,不能說百分之百有這個越權和遍歷,但是至少90%的系統是存在的,我們舉一個例子,正常情況下一個後台,一個公司的管理後台,這邊有10個板塊,還有其他的板塊,不能這個不同樣的角色,但是我們一個普通的用戶做一些特殊的操作,就相當於他是永遠有效的權利了,就把裏面的數據全部拿走了,這是無線的用戶。


  商家在接訂單的時候,我們通過抓包的形式去抓到圖像,隨着自己的訂單通過ID,然後我們可以為這個ID進行一系列的,結果就是我們可以把所有的這個ID這個訂單全部點擊出來,可以看到用戶的手機號等信息。


  那麼造成這個原因是什麼?我們開發者在寫代碼的時候,沒有做建權,其實這個防護第一個是建權,第二個就是說我們可以把這個ID做的足夠大,讓他無法看到,或者對這個ID進行加密,比如說是MD加這個,做到安全。我讓這個ID做這個加密方,只是一個編碼而已,那就沒有效果。


  4.支付


  那麼接下來我講支付,這個從早期都知道,國內炒的最熱的是特斯拉,我不知道有沒有知道這個例子的。然後再到後來的網易車早期出現的時候,比如說你從這打包,你只要支付把錢給他就可以了,再到前段時間山東某公司出現的這麼一個情況,比如說充一元錢披露了1800萬,所以說這是一個案例。


  


  接下來是一個討論的案例,這個是汽車的一個案例,像這個的,當時我們在支付的過程中,可以把金額改成一分,或者0.01,然後可以看到這個是支付成功的。


  


  那為什麼會造成這種現象呢?是因為大部分程序在這個支付完做二次交付的時候,這個沒做。就是這個在安全側,它就算成功了沒有做二次驗證。


  5.密碼重置


  那怎麼去防護呢?像這種敏感的支付操作,其實保護好籤名就可以了,一旦你的簽名被篡改你就不能操作了。那麼接下來和大家分享一下密碼重置。密碼重置早期的就是基於郵箱的或者基於一些密保問答形式重置密碼,那現在隨着移動互聯網發展,好多這個產品在設了以後,都是用這個手機驗證碼的形式去登錄,因為這樣比較方便,那麼這樣有什麼問題呢?那我可以看一下這個。


  


  這是一個登錄的時候看到的,這會造成一個什麼呢?這會造成很簡單的一個操作。


  那麼又由於手機驗證碼是四位的,四位数字的,那我可以找一下,通過看到這樣一個漏洞,那麼我們可以撞出1萬以內的賬號,因為它前面會提醒用戶存在或不存在,這是第一步。


  


  那麼第二步我們可以對着1萬的賬號發送驗證碼。第三步我們可以隨便拿一個手機號,隨便拿一個四位的驗證碼都可以登錄某一個賬戶的信息了。


  那麼造成這個的原因是什麼呢?第一,現在有很多公司用戶基數比較大,也體現了行業。那像四位驗證碼同一時間內是有重複使用的,那麼我們需要對這個驗證碼做的第一個是時效,比如說時效是一分鐘或者三分鐘。還有我們短信驗證碼發送的時候,我們可以做一個風控的操作,比如說同一個IP一天只能發送1000次或者500次,這個一般是能滿足需求的。


  6.API調用


  接下來我們講一下API調用。現在好多不是那麼單一,特別是現在有很多的口令,比如說像客服管理系統等等,系統之間是相互用的,比如說我們無論是用戶還是說自己內部的好多人都需要調那個統一認證系統,像客服系統,你的客服在處理用戶問題的時候,可以去調你的合同管理或者調你的一些其他的東西,那麼相互調動的時候,它產生的一系列問題,現在有很多的東西都是以開關的形式去做這個驗證的。我們可以參加這個IP,這個是統一認證的例子。


  


  那也就是統一認證它接受請求的時候,它這幾個業務調動的時候存在這幾個方式,比如說某一個參數裏面,第一代表的內部員工,二代表的是商家。


  


  再比如說一個參數裏面,1代表的是內部系統,2代表的商家,3代表的是其他服務。


  那麼另一個就是說在登錄方式,某一個參數代表的是密碼,某一個是短信的登錄。接下來我們就可以看這個系統,其實這個系統是這樣的,剛開始我發信的是也就是說這個系統只能通過用戶名和短信驗證碼的方式去登錄,但是由於我對這塊業務比較熟悉,或者對業務和業務標準之間的參數比較熟悉,那我會通過一系列的,我們可以把這個業務線改成,比如說用戶線改成商家的。登錄方式我們可以把短信密碼改成密碼的方式就可以了。


  破解完之後,因為破解的是很容易的,所以存在這樣的問題,那麼像這塊漏洞我們怎麼防護呢,也是像剛才說的那樣,也就是說你發生篡改的時候,你的每一步操作有合法的簽名就可以了。


  7.總結


  


  最後我們做一個總結,好多公司或者不少的從業者,並不知道自己的系統是否安全。歸納為第一條就是安全的本質是否可控,為什麼這麼說?我們舉一個例子:好多公司發生漏洞的一些病毒性的內容。那我們可以考慮第一個是否安全,如果不安全沒問題,我們可以往下講,那麼數據泄露了多少?如果你的數據比如說全泄露了,那最後是否可控?比如說像你的數據庫是以什麼方式,還是說某一家技術公司追到的時候,用戶名密碼全被拖走了?這是這麼一個例子。


  第二個就是站在業務的角度去思考?就是說安全這個東西,它和業務是有衝突的,比如說你做的這個體驗,可能會影響這個業務的用戶體驗,所以說有好多時候我們站在業務的角度去思考。


  


  接下來我和大家分享三個小例子:第一個是生活服務檢測,好多人都知道數據庫和業務袋,這個是通過SQL對自己的業務做一個掃描,比如說我們可以挖掘用戶的掃描請求,或者拿到自己的然後通過批納出來就好了,這是關於掃描檢測的。


  


  第二個是拖庫監控,有好多人數據被拖庫不知道,所以說我們可以通過這樣的一個小的技巧然後做一個監控,比如說我們可以在這個數據庫裏面建一個空表,正常情況下你的空表是沒有業務去瀏覽的,當一旦發現這個空表被別人讀取的時候,我們可以通過監控號或者其他的來進行監控。


  


  第三塊是講數據庫加密存儲。可能現在在座的數據存儲的不多了,但是我們可以通過更好的一些方法做一些加密,比如說第一個加鹽法,那這種怎麼弄,我們可以通過加鹽加一下時間或者一些特殊的方式去做一個加密,像這種支付數據庫被偷掉也不會有什麼用。


  第二個就是混淆法,混淆法是什麼?就是你的數據在存儲的時候,A用戶的密碼對應B的用戶,因為你的策略入侵者是不知道的,所以說這就會給他造成一個難度。


  好,今天我的演講就到這裏,謝謝大家!


網站內容來源http://safe.it168.com/

【精選推薦文章】



智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選



想知道網站建置網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計後台網頁設計



帶您來看台北網站建置套版網頁設計台北網站改版設計台北RWD響應式網頁設計,各種案例分享



廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

https://www.3chy3.com/?p=2084



Orignal From: 陸文舉:業務視角下的邏輯安全

留言

這個網誌中的熱門文章

請問貝果烤前為什麼需要用滾水燙過?

水燙 貝果 的目的是讓貝果提早形成麵包皮以在後續烘焙時避免貝果過度膨脹變成鬆軟的麵包,同時提早形成的麵包皮烤乾後比較硬,這兩個因素產生貝果的特殊口感。在有些食譜熱水會加鹼或糖,讓麵包面容易變褐。原理:水燙貝果時貝果表面的澱粉粒吸水糊化溶出澱粉,因為水煮的時間很短約30-60秒,溶出的澱粉仍舊糊在表面上。後續烘焙中澱粉漿硬化形成麵包皮,因麵包皮的硬殼強度使貝果內的氣泡不容易膨脹,最後形成貝果組織密實而具有咬感,所使用的高筋麵粉也提供的大量麵筋強度是造成這些特性的另一因素。貝果用油較少,產生的麵包皮硬不會酥脆,水溶澱粉產生的是硬殼回潮後變得很堅韌,藉著食用前的熱烤再使它脫水硬化,因硬麵包皮不厚所以咬下時有脆的口感。水煮的時間控制了麵包皮的厚度與強度,水煮時間愈短,貝果愈鬆軟,反之則氣體膨脹愈不容易,成品就會愈密實而有咬感,但也皮愈厚愈不容易咬下口。麵包麵的顏色在不同的烘焙程度與成分組成,受到非酵素褐變(梅納反應)、焦糖化、碳化等影響。一般以非酵素褐變最為重要,此反應是蛋白質與糖的化學反應,產生褐色的物質與特殊的氣味,在鹼性環境中容易進行,所以在有些食譜在水中會加糖或加鹼等處理。 貝果宅配     手工貝果     貝果 http://www.foodhy3.com/?p=65 Orignal From: 請問貝果烤前為什麼需要用滾水燙過?

咳嗽能吃柿子

文章導讀 咳嗽是因為嗓子不舒服引起的,因此咳嗽的時候人們應該避免吃刺激性的食物,比如辛辣的、過甜過鹹的、生冷的、腥的食物等等,這種食物會刺激嗓子粘膜,讓嗓子更不舒服,咳嗽也會因此變得更加嚴重,咳嗽的時候可以吃一些止咳化痰的水果,比如梨,那麼咳嗽能吃柿子嗎? 柿子是人們比較喜歡食用的果品,甜膩可口,營養豐富。不少人還喜歡在冬季吃凍柿子,別有味道。柿子的營養價值很高,含有豐富的胡蘿蔔素、核黃素、維生素等微量元素,所含維生素和糖分比一般水果要高很多。柿恭弘=恭弘=叶 恭弘 恭弘中含有多種活性成分,如維生素C、多種黃酮甙類、二萜類、膽鹼、β-胡蘿蔔素。所以,患者在咳嗽期間是可以吃柿子的,但是不能多吃,一定要適量,以免引起消化不良。患者咳嗽期間,除了柿子以外,還可以吃其他的一些新鮮蔬菜和水果,如蘋果、梨、獼猴桃、芹菜、花菜等,這對於咳嗽的早日康復是有幫助的。 能吃。柿子性寒,味甘、澀。歸肺經。故有健脾澀腸,主治咳嗽止血之功。是慢性支氣管炎、高血壓、動脈硬化、內外痔瘡患者的天然保健食品。但慢性胃炎、消化不良等胃功能低下者以及外感風寒咳嗽者不宜食柿子;體弱多病者、產婦、月經期間女性,均忌食柿子;糖尿病人勿食。 咳嗽是由多種因素造成的,包括吸入容易產生過敏的物質,比如花粉柳絮,以及炎症感染,包括氣候乾燥,辛辣含糖食物刺激,甚至情緒緊張,均可造成咳嗽的現象,而常見的咳嗽多是炎症感染造成的,柿子屬於熱性食物,容易加重局部咽喉炎症反應。 咳嗽期間是可以吃柿子的,一般可以少吃40具有寒涼的作用,一般對人體的刺激性比較大,咳嗽一般都是由於支氣管出現了炎症就會產生咳嗽咳痰的癥狀,一般是要採用口服化痰止咳的藥物來進行用藥治療,如果說咳嗽不是很明顯的話,一般也可以採用口服抗感冒的藥物來進行用藥治療。 網站內容來源https://www.cndzys.com/yinshi/ 【精選推薦文章】 想知道 台東名產 人氣商品是什麼?想知道更多 台東知名伴手禮 有哪些? 想知道全國票選五大 台東必買 、 台東伴手禮 最佳商品哪裡買的到? 台東團購美食 、 台東必買零...

躺着喝水有什麼壞處

文章導讀 躺着喝水是一種不好的做法,因為躺着喝水會導致水容易進入氣管,引起我們嗆到喉嚨,而且不利於水分進入腸道中,所以最好的方法是坐起來喝水。水我們身體重要的成分,每天都需要飲用大量的水來維持身體的運作,如果缺水是會引起新陳代謝下降的,而且會引起各種各樣的疾病,大家要引起重視。 1、容易嗆着,水容易進入氣管;如果嗆着,嚴重的後果有生命危險。 2、這樣喝不衛生,也不符合人的作為。 喝水喝多了有什麼壞處嗎? 1、水喝多了,會增加腎髒的負擔。人體是通過尿液來排毒的,那尿液的主要的組成部分就是水,而所有的尿液都是要經過腎臟過濾的,因此,如果喝水過多,就意味着腎髒的過濾就更多,就會增加腎髒的負擔。 2、飲水過量會引起水中毒。人體腎髒的持續最大利尿速度是每分鐘16毫升,如果人體攝入水的量超過了這個標準,或者喝水的速度超過這個標準,那體內就會出現水過剩的現象,而過剩的水分就會使細胞膨脹,繼而引起脫水低鈉症,臨床會表現為頭暈眼花、嘔吐、虛弱無力、心跳加快等癥狀,這種中毒的癥狀是全身的,嚴重的會出現痙攣、昏迷甚至危及生命。 擴展資料: 感冒時也並不是喝水越多越好。感冒時醫生都叮囑病人要多喝水,因為水可以加速排毒,緩解感冒的癥狀,而且,人在感冒的時候,身體也很容易缺水,所以適當的增加水的攝入是有好處的,但是也絕對不是喝的越多越好,而是要根據個人的差異,適當的增加喝水的量,而且一次喝的量不可過多。 每人飲水量應視個人情況而定,一般1.5~2升為宜。從衛生角度來說,喝涼開水、茶水或礦泉水較好。但應注意,一次飲水過多或喝得過快對身體不利,老年人尤其應該注意。一次飲水過多會加重心、腎負擔,對患有心臟病、高血壓、腎病和水腫的人傷害最大。因勞動或運動而大量出汗后也不宜一次喝水太多。 水喝多了,會引起水中毒。專家介紹,過量飲用卻會導致人體鹽分過度流失,一些水分會被吸收到組織細胞內,使細胞水腫。開始會出現頭昏眼花、虛弱無力、心跳加快等癥狀,嚴重時甚至會出現痙攣、意識障礙和昏迷,即水中毒。大量喝水后,人體易產生疲倦感,食慾大減,還使人感到昏昏沉沉的。 這是因為飲水過多衝淡了血液,全身細胞氣體交換就會受到影響。腦細胞一旦缺氧,人就會變得遲鈍。腎功能正常的人每天最多只可排出10~20升尿。如果飲水過...