現在學安全的人側重點應該放在哪裡?
- 最近兩年不管是國家還是企業都開始注重安全了,隨之而來的是Web滲透這塊門檻越來越高,大公司Web這塊安全係數也越來越高了(不排除相當一部分網站還是存在一些漏洞),而滲透的手法還是一些老手法。
- 那麼對於做滲透測試工作的人來說,他們的核心競爭力是什麼?未來學習的側重點在哪裡?
- 對於初學滲透測試的人來講,大部分人可能都是這樣來入門的(看一些網上的教程),而網上的教程嚴重同質化,大部分人水平難以提高,這時候該補充些什麼知識?(運維?)
- 對於目前正在學習安全的(大學生)來說,他們應該掌握一些什麼技能(滲透,逆向,安全開發)?
補充
再補充:非常感謝各位的回答和建議,在我迷茫的時候給了我莫大的幫助。題主這學期開始學了js,喜歡上了xss,同時意識到一些需求利用已學知識過於繁瑣,學了python這個工具來給我節省時間。我希望此問題可以給剛接觸安全的帶來一些幫助和靈感!後期打算多碼點代碼,把學過的語言寫熟。另外培養自己的安全觀。以上,6.20更。
- 題主目前是這樣一種心態和狀態:
- 心態:學了一些滲透測試的常用手法,卻屢屢受挫。
- 狀態:
- 大一,目前在學PHP,C什麼的學過了,C++接觸了面向對象的內容。
- 計劃:打算學完了php看看Javascript 然後就有基礎看Cos的那本《Web前端黑客技術解密》,再學一下Python,學寫爬蟲。 不知道到時候能不能有撥開雲霧的感覺啊!
信安大二狗,也曾迷茫過,掙扎了好久才漸漸進入正軌,今年也算剛剛入門。我覺得題主現在的迷茫很正常。
- 其一,是工業界的信息安全與理論界的信息安全研究的方向可以說基本不搭界的(尤其在國內,國內的本科生培養計劃一般都是以科研為目的的全覆蓋式的打基礎)。所以,有時候你會發現你大學學的科目基本上和你想像中的信息安全基本完全不掛鉤。(當然,這裡不是說大學的學習科目就不重要了。既然大學為這個專業開了,便會有一定用處,請結合自己實際興趣,變通的學好他們。切記不要掛科!)
- 其二,信息安全覆蓋面太廣了。從CTF的角度來說,它有加解密、逆向、Web、取證、隱寫等等。雖然CTF覆蓋的範圍已經相對較多了,但是和整個信息安全範圍相比還是差的很多。而且,這裡的每一個知識點,都值得我們去花很長的時間去學習與消化。所以可以說,基本上再天才的人一輩子也不可能完全搞透這些東西。
------------------------------------------------------------------------------------------------------------------------------
這裡只講工業界的信息安全。(如果題主想要搞理論界的,那麼你首先需要刷一個漂亮的績點,然後儘早選一個符合口味的相對比較牛的導師,跟進導師的研究項目,混實驗室,發論文。然後申請個美帝CS排名較高的研究生。不想出國的,也可以申請國內比較靠譜的導師的研究生,不過建議申請國外的,國內的研究生性價比不是很高。此外,如果學校有SIT項目支持,也可以自己找幾個志同道合的朋友搞個SIT國家項目來做做。)- 基於以上前提,我覺得,首先我們要明白「精於一而悟道」的道理。人不可能一口氣吃成一個胖子,所以千萬不要以為一個人能夠並行的學完所有的東西。什麼都學,往往什麼都學不會。
- 我覺得,題主應該首先結合自己的興趣愛好,選一個自己感興趣的領域去學習,比如Web安全、逆向破解等等。
- 看題主題目更新的情況,應該是在往Web安全方面靠。那麼,接下來就講講怎麼學習Web安全。
- 首先,講一下學習安全方面大致分為兩派。一個是先理論後實踐,一個是先實踐再理論。對於Web安全,前者籠統的來講就是先做一個Web方面的全棧工程師,然後再學習各種攻擊手法,研究各種漏洞。這個,我覺得餘弦大大就是這樣學習的。 @餘弦 後者,就是先從技術上學會怎麼日站(不要亂日,最好自己搭環境學習),再學其攻擊手法上分析漏洞產生的緣由,一步步學習。可以說,很多非專業出身的安全工程師都是這樣過來的。兩者學習方法沒有優劣之分,題主可自主選擇。
- 其次,研究Web安全要知道Web是什麼?這裡貼上餘弦大大,以前回答一個問題的貼圖。
這裡可以具體參照:零基礎如何學習 Web 安全? - 信息技術(IT)
Web 建站技術中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什麼? - 前端開發 - 然後,你要了解當下最常見的Web漏洞是什麼?這裡,提供幾個關鍵字題主可以自主google/baidu搜索學習:注入、XSS、敏感信息泄漏、安全配置錯誤、CSRF、未驗證的重定向、編輯器漏洞等等很多很多。接著,你就要依據響應的漏洞去學習為什麼會產生這樣的漏洞?怎麼避免產生漏洞?建議題主先去買幾本口碑比較好的書學習(關於攻擊方面的,也關於最基本的web語言方面的),也可以去下幾個Web測試平台進行學習。貼個網站:[TOP10]十大滲透測試演練系統
- 再就是學習與掌握一些比較有用的安全工具。建議下個Kali-linux 學習一下常用的軟體(記得看源碼!!!),再學個python就差不多了。
- 到了這個時候,題主基本也算安全入門了。然後,平時就可以去多逛逛國外的黑客論壇,關注下一些知名的漏洞庫。最後走上,研究漏洞與挖漏洞的不歸路....------------------------------------------------------------------------------------------------------------------------------
補充:題主在大學的話,可以參加一些信息安全的協會,跟著他們做做CTF比賽。這也會收穫很多。如果可以的話,嘗試寫寫博客,編程能力也不要拉下。還有也就是最重要的是,靜心,不要浮躁,腳踏實地,堅持學習。
下面貼一些我覺得比較適合新手入門的網站:
WooYun WiKi [WooYun WiKi]WooYun知識庫KSSDFreeBuf.COM | 關注黑客與極客http://blog.knownsec.com/Knownsec_RD_Checklist/v2.2.html91Ri.org_我的安全攻防指南SecWiki-安全維基,彙集國內外優秀安全資訊、工具和網站i春秋-信息安全體驗中心合天網安實驗室安全圈info - 做最接地氣的安全信息導航
NaviSec.itCTF:XCTF_OJ競賽平台http://ctf.360.cn/http://118.192.90.189/https://bctf.cn/#/challenge黑客遊戲 Let"s Hack隱寫術的相關工具ctf奪旗訓練_CTF訓練營如何開始CTF比賽之旅
IDF實驗室 CTF訓練營書屋:信息安全 - 小書屋http://ebooks.shahed.biz/HACK/SQL%20INJECTION/Evi1m0: 書籍推薦 - 微信公眾號:Evil-say - 知乎專欄有哪些信息安全方面的經典書籍? - 計算機科學等等...------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------以上,接下來就看你的了。(更新個烏雲最近搞得wiki,個人感覺總結的很好)
看上面雲舒的回答吧,我就是隨便寫寫吐吐槽。
----------------------
好問題,知乎上#信息安全太亂,匿了。看見認識的人給我點贊了,我決定再寫點。
只針對:
- 心態:學了一些滲透測試的常用手法,卻屢屢受挫。
這一點談談。
能簡單列一列題主所學習的滲透測試手法么?
依照我到目前的學習經驗,在滲透測試學習中「屢屢受挫」可能分成如下幾種:
- 教程太深奧,需要的基礎知識太多,查到一半堅持不下去然後半途而廢。
- 教程看得懂,沒有合適的測試環境;或進行未經授權的滲透測試難度大,看運氣,收穫不大。
- 有合適的環境,卻因為一些問題無法得出應該的結果,並且無人指導甚至不知道應該得出的正確結果是什麼。
- 無合適的環境,甚至無法獲取合適的教程。
我的做法(無邏輯順序):
- 給自己一個「科學的上網環境」。
- 熟悉多種環境的快速搭建,虛擬機做好後留好備份,記下常用軟體、命令的用法。
- 不易記憶的做好CheetSheet粘牆上。(個人做法,不推薦。。。。。)
- 教程的選擇:1.可對照操作,成功率高;2.知識難度均勻;3.可舉一反三。
- 關於測試環境,「[TOP10]十大滲透測試演練系統」類似這種有很多,然後再搜索相關的答案和過程,哪怕跟著做幾遍收穫也會有。
- 更新一良心視頻:信息安全專業-大學生專業學習引導專場
- 看到「報錯」就做不下去了?1.檢查是不是看錯了;2.檢查操作方式;3.檢查你的軟體和環境是兼容的嗎;4.可能教程少寫了幾個配置過程,找相關文章看能否解決。
- 犯的sb錯誤會成為你的「本日最佳笑點」,反正我的笑點每日一換。
- 雖然代碼寫的少,但要抽出時間看代碼,只要有一點疑惑的地方,寫出demo實現一下。
------------------又有人點贊了-------------------
- 最近代碼寫的多,一是學校的實驗報告認真寫了一遍,要求實現的和相關知識都儘可能寫了。因為不想被別人問「你大X的XX課怎麼學的?」(總覺得自己是非211不能亂浪)。二是,自己做了點東西,代碼量不大,但相關資料沒少查(WEB)。
- 數電學的痛苦嗎?彙編學的痛苦嗎?計算機組成學的痛苦嗎?痛苦可能分為多個方面:老師講的聽不懂;老師講的跟我自己學的不一樣;老師(歲數大)不按教材講,期末考試必須按他的原話來;你的資料太多看不完,總感覺自己有哪個地方沒理解。我的做法:關鍵地方不要跳讀,不易理解的地方一個詞一個詞的摳,如果老師講的是熔絲rom/8086但並不影響你按照你規劃好的方式學。(你用C寫的程序執行時跟你想像的過程是一樣的么?嘗試過反彙編嗎?不會調試程序,還等著老師教嗎?"abc" == "a" 會不會有漏洞呢?lol)
- 非211學校「信XX全概論」課,密碼學佔了大部分。恩,跟雲舒的建議相反,我認真看了一遍幾種加密演算法的特性,這些加密方法在哪裡應用了(DES嘗試實現了下)。恰好最近做的東西跟加密有關(有點像lastpass,前端有問題現在在本機上自己用先QAQ),知識正好用上了,但在寫代碼的過程中,仍然出現了各種腦殘問題,逐個解決(包括知識欠缺和開發技巧)。
-------------------一年後的分割線------------------------
又有人點贊了 最近在復現漏洞 其實這個路子說起來很low很低效卻很直接 安全研究員「要吃肉」
------------------畢業好幾個月的分割線----------------
你之前學過的和錯過的一切都會成為你的資本
大年初一的,不想打擊人,但也不想題主被誤導。
這個問題太泛了點,不太好答,我勉力答一下,目標是:
即使理解錯誤,用力搞錯方向,也會學到軟體領域混飯吃的技能,不會因此而恨我。因為你剛上大學,因此下面的步驟都非常寬泛,只是保證方向基本正確即可:
1、基礎內容,把計算機課程好好上,學幾門常見的語言,順便學會怎麼用編譯器和調試器。2、自己去搭幾種常見的應用,弄清楚常見的一些開源組件和中間件,有餘力可以去琢磨一下OS系統調用和函數庫、資料庫調用等。
3、去查找這些開源組件和中間件的升級歷程+補丁。版本升級都是有原因,很多是功能擴展了,但也有很多是順便解決了某些安全問題,極端情況下會專門出補丁修復。4、去一些公開的安全漏洞庫,查找這些組件和中間件的漏洞,與第3步相互對照。放心,只要你不搗亂,沒人會查你水表,因為這是業界公開的知識庫。5、自己搭建幾個常見的應用,比如WEB的;去查找和下載一些 漏洞掃描工具,配置好基本策略,開始做基本的掃描練習。切記要先把網路物理斷開!否則你掃到別人家裡惹來麻煩,我可不管。這個過程中你剛開始什麼也發現不了,哦,那就把那些組件和中間件降幾個版本再試試。6、在這個過程中,你會發現高版本的中間件的缺陷相對於低版本的少;而這些組件相對於你自己的編碼而言,缺陷也很少。你會覺得自己的編碼怎麼這麼爛。好吧,去學習安全編程,在這個過程中,你會清晰地知道每個系統調用的正確使用方式、每個輸入輸出邊界檢查都不是無中生有。呃,貌似我漏了些啥。但講到這裡,如果你能在大學期間就對上面的6步能非常熟練的話,去一些大公司混碗飯吃不太難,開發或者測試崗位都可以應用,這些崗位比神馬勞什子安全崗位可多太多了。首先,我覺得一個好的導師和學習氛圍非常重要,建議你看看你們學校有沒有相關的實驗室、社團,如果有你可以加入。如果沒有 你可以看看你們學校有沒有該研究領域的導師,如果其水平夠高,並且人好你可以去給他做助理。
其次,我覺得你有必要學習linux,並且把一些工具的原理弄懂,熟練掌握sql,自己嘗試分析一些漏洞。最後,你可以關注一些ctf比賽,並且嘗試參加。爪機無力,就說這些吧~~
http://drops.wooyun.org
重心一定要放在你想學的那一塊,才能有足夠的激情堅持你走下去。web,os,二進位隨你選。
感覺樓主一開始就學這麼多 會沒有頭緒 可以先找個切入點。比如Linux/Android hook,可以參考git上的ADBI框架
建議題主先學編程,自己寫個網站啥的,了解一下基本的邏輯,會一套框架,比如PHP的CI、ThinkPHP,這樣以後學習上手會快很多;多看看安全站,多上wooyun,總結別人的洞,學習相關漏洞原理;學個py,寫寫小工具,批量啊
推薦閱讀:
※軟體專業的學生想學習滲透測試網路安全,找了教程卻眼花繚亂,有學長推薦過一些東西 dvwa……kali?
※作為一個白帽子,你挖到第一個漏洞的經歷是怎樣的?