計(jì)算機(jī)相關(guān)專業(yè)實(shí)習(xí)報(bào)告_第1頁(yè)
計(jì)算機(jī)相關(guān)專業(yè)實(shí)習(xí)報(bào)告_第2頁(yè)
計(jì)算機(jī)相關(guān)專業(yè)實(shí)習(xí)報(bào)告_第3頁(yè)
計(jì)算機(jī)相關(guān)專業(yè)實(shí)習(xí)報(bào)告_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

計(jì)算機(jī)相關(guān)專業(yè)實(shí)習(xí)報(bào)告

專業(yè)實(shí)習(xí)報(bào)告871279朱育民

一、工作內(nèi)容這學(xué)期跟李錫捷教師實(shí)習(xí),參加的工作工程是信息平安組,因?yàn)槠綍r(shí)較其它三位組員多接觸UNIX-Like的環(huán)境,因此成為本組組長(zhǎng)并協(xié)助聯(lián)絡(luò)事情。我們期初一開(kāi)場(chǎng)便有正式的case接手,是一個(gè)韓國(guó)的駭客教育機(jī)構(gòu)Hackerslab委托翻譯他們的一份駭客教材。

對(duì)于這方面,我們四人雖然很有興趣,但是相關(guān)的技術(shù)背景都還嫌不夠,因此做起來(lái)并不是很輕松,最常遇到的問(wèn)題就是專業(yè)名詞的查詢與翻譯,常常會(huì)有不知如何是好的窘境發(fā)生,幸好系上的學(xué)長(zhǎng)大多能提供我們一些查詢的方向,大部分的問(wèn)題到最后還是能順利完成,這樣初期的翻譯工作大約持續(xù)了一個(gè)多月后暫時(shí)完畢。對(duì)外的case完成后,我們繼續(xù)朝著信息平安相關(guān)的方向研究,主要是針對(duì)兩個(gè)程序進(jìn)展改進(jìn)工作,一個(gè)為測(cè)試系統(tǒng)破綻的Nessus,一個(gè)為偵測(cè)入侵系統(tǒng)Snort,至此小組里再以兩人一組細(xì)分為Nessus組跟Snort組,各自進(jìn)展測(cè)試工作。

我所分配的是Nessus組,這是一種可以用來(lái)測(cè)試效勞器有哪些網(wǎng)絡(luò)破綻的程序,由于采用Plug-ins的方式安裝,因此可以隨時(shí)安插新破綻的測(cè)試Plug-ins,加上Nessus總部的CVS機(jī)制,只要你的Nessus系統(tǒng)有定期CVS更新,就能保持最新的完好破綻測(cè)試。在業(yè)界雜志的評(píng)比里Nessus的評(píng)價(jià)甚至超越許多商用軟件(Nessus是免費(fèi)的),但是他有個(gè)小缺點(diǎn),就是有關(guān)破綻測(cè)試報(bào)告的部分作的并不是非常完好,每支破綻的測(cè)試回報(bào)完好與否,取決于Plug-ins作者是否有在寫作Plug-ins加上完好的表達(dá)與解決方案,問(wèn)題是大部分的Plug-ins都只有程序代碼,并沒(méi)有對(duì)表達(dá)及解決方式作批注說(shuō)明,因此即使在使用Nessus測(cè)出系統(tǒng)的平安破綻后,使用者必須在到網(wǎng)絡(luò)上搜尋解決方法,這樣作實(shí)在不是很便利,因此教師希望我們能對(duì)于Nessus的測(cè)試回報(bào)部分作改進(jìn),寫出一個(gè)報(bào)告閱讀程序,結(jié)合龐大的信息平安信息,讓使用者能在檢測(cè)出破綻的同時(shí),直接獲得相關(guān)的信息和解決方案,便利系統(tǒng)管理者在改善本身系統(tǒng)平安的時(shí)效性。

二、學(xué)習(xí)1.FreeHackersZone這學(xué)期最早接觸的學(xué)習(xí)環(huán)境,應(yīng)該要算Hackerslab提供的一個(gè)駭客練慣用工作站FreeHackerZone。這是一臺(tái)用Linux架起來(lái)的工作站,里面分將使用者分作level0到level14,每獲得下依個(gè)等級(jí)的使用者權(quán)限,都有一個(gè)相對(duì)應(yīng)的系統(tǒng)破綻需要去破解,訓(xùn)練使用者在實(shí)作中理解駭客破解系統(tǒng)的方法,我一面翻該組織的FAQ,一面嘗試錯(cuò)誤,讓我一路攻到level10,其中學(xué)習(xí)到的手法包括了使用者權(quán)限設(shè)定,尋找特定權(quán)限的檔案,利用系統(tǒng)分隔符來(lái)欺騙系統(tǒng),溢位攻擊等等,然而在前進(jìn)level11時(shí),因?yàn)樵撈凭`必須自韓國(guó)本地進(jìn)展破解,因此只好作罷,沒(méi)能進(jìn)一步繼續(xù)。

不過(guò)這個(gè)經(jīng)歷對(duì)于后來(lái)翻譯Hackerslab的文件有的不少的助益!2.HackersLab教材翻譯經(jīng)過(guò)這段暖身后,我們正式接下Hackerslab文件翻譯的工作,我負(fù)責(zé)的是Sniff(監(jiān)聽(tīng))與網(wǎng)頁(yè)平安兩份教材。在以太網(wǎng)絡(luò)上,只要是同一個(gè)lan上的機(jī)器,都能收到在lan上傳送的封包,系統(tǒng)核心會(huì)進(jìn)展比對(duì),假如該封包是屬于自己的就繼續(xù)處理,假如不是就忽略掉,而sniffing原理就是改變最后的步驟,將所有經(jīng)過(guò)的封包,不管是否屬于自己,全部抓進(jìn)來(lái)記錄。

Sniffing的正面意義應(yīng)該是用于處理觀察網(wǎng)絡(luò)流量狀況,一旦網(wǎng)絡(luò)出現(xiàn)異常時(shí),可以藉由Sniffing來(lái)觀察有哪些異常封包,幫助排除異常狀況。至于竊取傳送中的使用者賬號(hào)跟密碼,那么是cracker的行為,這并非Sniffing的本意。

對(duì)于區(qū)網(wǎng)內(nèi)要如何防止被Sniff,最簡(jiǎn)單是在該區(qū)網(wǎng)內(nèi)使用switchhub。跟hub不同的是,hub會(huì)將接收到的封包向所有連接的host傳送出去,但switch本身具有MAC路由表的功能,可以記得哪一個(gè)MAC地址要從哪一個(gè)連接埠送出去,因此不會(huì)讓不相關(guān)的host收到該封包,大大減少了被Sniff擷取封包的時(shí)機(jī)。

另外一種作法是對(duì)于傳送的封包均作加密處理,這樣就算被別人擷取到封包,對(duì)方也很難將封包解密而復(fù)原成本來(lái)的樣字加以解讀。常見(jiàn)的加密方式例如:SSL(SecureSocketLayer)、PGP(PrettyGoodPrivacy)、SSH(SecureShell)、(VirtualPrivateNetwork)等等。

Sniff完最重要的工作是分析抓到的封包,因此這里對(duì)于各種通訊協(xié)議的封包意義大致講解過(guò)一遍,例如該封包的來(lái)源與目的地,長(zhǎng)度,數(shù)據(jù)內(nèi)容,CRC檢查碼等等。另外一個(gè)章節(jié)是有關(guān)網(wǎng)頁(yè)平安,包含了閱讀器跟效勞器兩部分,這里大多是講述理論性質(zhì)的部分。

尤其隨著電子商務(wù)的開(kāi)展,網(wǎng)頁(yè)扮演的角色越來(lái)越吃重,在往夜間傳遞使用者信息的時(shí)機(jī)越來(lái)越多,更增加了平安性的顧慮,然而使用者多半對(duì)于這方面平安性問(wèn)題不夠警覺(jué)(甚至不理解嚴(yán)重性),只要有cracker使用一些惡意或欺騙的applet或scripts,就有可能將使用者的信息竊取到手,也可以自遠(yuǎn)程將使用者的計(jì)算機(jī)加以控制甚至令其當(dāng)機(jī),使用者對(duì)于閱讀網(wǎng)頁(yè)時(shí)的平安比必需要比過(guò)去更加留意。常見(jiàn)的網(wǎng)頁(yè)攻擊形式包括:溢位攻擊(bufferoverflow):顧名思義,就是利用bufferoverflow的原理達(dá)成目的的......比方,一個(gè)數(shù)組只有100bytes,但我喂給它200bytes的數(shù)據(jù),于是這個(gè)數(shù)組裝不下這些數(shù)據(jù),造成了overflow......為什么overflow會(huì)有securityhole呢?首先,overflow發(fā)生時(shí),多出來(lái)的數(shù)據(jù)會(huì)蓋到其它變量上,相信這一點(diǎn)大家早就知道了。

問(wèn)題是,為什么數(shù)據(jù)蓋到其它變量上時(shí),頂多使程序執(zhí)行錯(cuò)誤,會(huì)嚴(yán)重到出現(xiàn)security的問(wèn)題嗎?這時(shí),好玩的事情就發(fā)生了.......當(dāng)我們呼叫一個(gè)function時(shí),以匯編語(yǔ)言的觀點(diǎn),會(huì)將returnaddress堆入stack中。假如這個(gè)function宣告了一些local變量,那進(jìn)入這個(gè)function之后,會(huì)在stack中再空出一塊區(qū)域給這些local變量,當(dāng)要從這個(gè)functionreturn回去時(shí),就把這些在stack中的local變數(shù)清掉。

如今好了,bufferoverflowsecurityhole就是在這里發(fā)生了.......假如有某個(gè)function宣告了一個(gè)localarray,如:intfunc(){inti,j,k;charbuf[16];structabc*x,*y,*z;...}這樣就很明顯了,假如在這個(gè)function內(nèi)有了bug,忘記去控制數(shù)據(jù)喂給buf的長(zhǎng)度,當(dāng)數(shù)據(jù)喂長(zhǎng)一點(diǎn),就可以蓋到這個(gè)function的returnaddress指到自己所喂進(jìn)去的code上這時(shí),function執(zhí)行完畢,要return時(shí),它就不會(huì)return到原來(lái)呼叫它的地方,而會(huì)“return〞到我所喂進(jìn)去的那些code,這么一來(lái)入侵者就可以為所欲為了!DenialofService(DoS,阻斷效勞攻擊):所謂阻斷效勞攻擊,是攻擊者利用受害者的操作系統(tǒng)、網(wǎng)絡(luò)應(yīng)用程序(效勞)或網(wǎng)絡(luò)通訊協(xié)議的破綻來(lái)攻擊受害者,促使目的主機(jī)的系統(tǒng)或效勞發(fā)生癱瘓的情況,可能造成系統(tǒng)資源耗盡、引響正常聯(lián)機(jī)品質(zhì)、網(wǎng)絡(luò)頻寬被占滿、網(wǎng)絡(luò)應(yīng)用程序(效勞)停頓運(yùn)作、系統(tǒng)當(dāng)機(jī)等情形,使正當(dāng)?shù)氖褂谜邿o(wú)法正常使用該主機(jī)所提供的效勞。另一種情況是系統(tǒng)管理者為了測(cè)試目的嘗試對(duì)自己主機(jī)展開(kāi)攻擊,測(cè)試操作系統(tǒng)或是網(wǎng)絡(luò)應(yīng)用程序(效勞)中是否含有可能被攻擊的破綻存在。

像立駭科技(HackersLab)的入侵測(cè)試(PenetrationTest)、衛(wèi)道科技的網(wǎng)絡(luò)平安漏空掃瞄儀(NAICyberCopScanner)都可針對(duì)企業(yè)內(nèi)的操作系統(tǒng)、網(wǎng)絡(luò)甚至數(shù)據(jù)庫(kù)做安康檢查,其它DoS的攻擊都是不合法的,而且動(dòng)機(jī)通常出自惡意。DistributedDenialofService(DDoS,分布式阻斷效勞攻擊):所謂分布式阻斷效勞攻擊,是運(yùn)用在于受害者的系統(tǒng)資源、網(wǎng)絡(luò)頻寬條件都比攻擊者來(lái)的好,假如攻擊者想一對(duì)一的攻擊被害者,可能會(huì)失敗甚至導(dǎo)致自己的系統(tǒng)或網(wǎng)絡(luò)癱瘓,所以采取一對(duì)多的攻擊方式,攻擊者先在一些防范較弱的主機(jī)中種植攻擊程序。

隨后攻擊者對(duì)各主機(jī)中的的攻擊程序發(fā)出攻擊命令,要求對(duì)目的主機(jī)發(fā)出龐大數(shù)量且多種的封包,龐大的數(shù)據(jù)量會(huì)癱瘓目的主機(jī)而使得無(wú)法正常提供效勞。DDoS不但可以進(jìn)步成功率,還可以縮短攻擊的時(shí)間及減少被發(fā)現(xiàn)的時(shí)機(jī)。

※以目前駭客的行徑而言,大多比較傾向于使用威力強(qiáng)大的DDoS攻擊,尤其是針對(duì)規(guī)模大的網(wǎng)站時(shí)。CGI:一種讓網(wǎng)頁(yè)執(zhí)行外部程序的一種接口,正因?yàn)槿绱?,只要?quán)限或設(shè)定有問(wèn)題,或程序編寫有問(wèn)題,很容易成為cracker入侵系統(tǒng)的快捷方式。

自動(dòng)目錄列表:獲得網(wǎng)頁(yè)跟目錄下的檔案列表將使得cracker清楚知道該網(wǎng)站構(gòu)造,很容易便能發(fā)覺(jué)后門所在甚至下載有問(wèn)題的程序代碼回去破解分析,對(duì)于入侵更為容易使用者認(rèn)證的攻擊:利用一賬號(hào)文件跟密碼字典文件的配合,強(qiáng)迫通過(guò)網(wǎng)頁(yè)認(rèn)證的一種手法。3.NessusNessus官方網(wǎng)站,目前最新釋出的版本為1.0.8,是一種用來(lái)偵測(cè)網(wǎng)絡(luò)效勞器或工作站的網(wǎng)絡(luò)破綻的工具。

這套偵測(cè)系統(tǒng)是Client-Server的方式運(yùn)作,效勞器端包括了使用者賬號(hào)的管理以及各種破綻測(cè)試的Plug-ins,而Client那么利用效勞器端所提供的各種Plug-ins來(lái)測(cè)試工作站或效勞器并產(chǎn)生報(bào)告,報(bào)告的格式包括了HTML、XML、NSR(Nessus本身的存檔格式)、TXT、TEX(LaTex格式)。其Plug-ins自有一套語(yǔ)法叫做NASL(NessusAttackScriptsLanguage),可以自訂對(duì)特定的連接埠進(jìn)展封包測(cè)試,藉以判斷是否為破綻(早期使用C語(yǔ)言來(lái)作為Plug-ins的語(yǔ)法,但以被淘汰)

一、安裝安裝的方式分為Server跟Client兩部分。首先Server必須安裝在UNIX環(huán)境下,(已試過(guò)FreeBSD:ports安裝跟Linux:rpm安裝)這部分沒(méi)有什么問(wèn)題,裝下去就對(duì)了,接下來(lái)必須安裝Plug-ins(假設(shè)是不裝Plug-ins,Nessus什么也不會(huì)測(cè)),Plug-ins可以選擇一個(gè)一個(gè)下載后拷到指定目錄即可,不過(guò)正確的作法應(yīng)該是使用CVS的方式來(lái)維護(hù)更新Plug-ins的版本。

CVS系統(tǒng)又分作CURRENT跟STABLE兩種,STABLE版本但講究穩(wěn)定,許多新釋出的Plug-ins并沒(méi)有包括在里面,而CURRENT雖然有最新的Plug-ins,但測(cè)試不見(jiàn)得穩(wěn)定正確,有可能將你的受測(cè)工作站或效勞器損害,因此要使用那個(gè)版本請(qǐng)自行斟酌。安裝方式如下:1.設(shè)定環(huán)境變量$exportCVSROOT=":pserver:anonymous@:/usr/local/cvs"2.登入CVS系統(tǒng)密碼為“anon〞,只有第一次登入會(huì)需要密碼,以后會(huì)自動(dòng)記載你系統(tǒng)的某一個(gè)地方$cvslogin3-1.假如要抓取Nessus程序STABLE版本$cvs-z3checkout-rNESSUS_1_0nessus-libraries$cvs-z3checkout-rNESSUS_1_0libnasl$cvs-z3checkout-rNESSUS_1_0nessus-core$cvs-z3checkout-rNESSUS_1_0nessus-plugins3-2.假如要抓取Nessus程序CURRENT版本$cvs-z3checkoutnessus-libraries$cvs-z3checkoutlibnasl$cvs-z3checkoutnessus-core$cvs-z3checkoutnessus-plugins4.以后要檢查更新部分時(shí)只要打$cvs-z3update-Pnessus-libraries$cvs-z3update-Plibnasl$cvs-z3update-Pnessus-core$cvs-z3update-Pnessus-plugins完成!!Nessus是一套強(qiáng)大的破綻測(cè)試工具,但是對(duì)于他產(chǎn)生的報(bào)告不夠完好是它的一大致命傷,目前他所采行的方法是把破綻報(bào)告及修補(bǔ)破綻的方法寫死在Plug-ins里,但并不是每一個(gè)Plug-ins撰寫者都有寫上修補(bǔ)方式這部分的說(shuō)明,因此我們的目的是寫一個(gè)ReportReader來(lái)讀取Nessus所產(chǎn)生的報(bào)告并自動(dòng)補(bǔ)上破綻相關(guān)的網(wǎng)址(報(bào)告格式為HTML或XML),補(bǔ)強(qiáng)的方式是連結(jié)CERT的搜尋器來(lái)產(chǎn)生,目前遇到的問(wèn)題在于我們要選擇哪一種語(yǔ)法來(lái)寫這支ReportReader的程序(VB除外),也使我們的研究主題由Nessus暫時(shí)轉(zhuǎn)到了程序語(yǔ)言的部分,因此Nessus暫時(shí)在此打住4.ScriptsLanguage截至目前為止,我們嘗試過(guò)的語(yǔ)言Tcl、Perl、Python都是屬于ScriptingLanguages,他們跟C或JAVA這種systemprogramminglanguages有很大的差異。

SL會(huì)有一組派得上用場(chǎng)的組件(ponent),用別的語(yǔ)言寫成。SL不會(huì)從頭開(kāi)場(chǎng),而是結(jié)合已經(jīng)寫好的組件。

比方說(shuō),Tcl跟VisualBasic可以用來(lái)管理使用者接口組件,而Unixshellscript可以把組件當(dāng)作"filter",來(lái)組成一條"消費(fèi)線",制造所要的信息。SL可以用來(lái)擴(kuò)展已經(jīng)存在組件的功能,而很少用來(lái)開(kāi)展復(fù)雜的數(shù)據(jù)構(gòu)造、算法。

這些東西應(yīng)該由組件提供。因此,SL常被稱為"黏接語(yǔ)言"或者"系統(tǒng)整合語(yǔ)言"。

為了簡(jiǎn)化組合組件的工作,SL通常沒(méi)有型態(tài)。所有東西看起來(lái),用起來(lái)都一樣,也可以交換著用。

比方說(shuō),在Tcl或VB中,同一個(gè)變量既能存字符串,又能存整數(shù)。而程序代碼跟數(shù)據(jù)可以互通,因此可以在線產(chǎn)生新程序。

由此可以看到SL對(duì)于文字?jǐn)?shù)據(jù)的處理蠻擅長(zhǎng)的。V像這樣無(wú)型態(tài)的語(yǔ)言更容易結(jié)合組件。

因?yàn)樗⒉粚?duì)"東西該如何使用"做任何限制。組件會(huì)怎么用,搞不好連原先的設(shè)計(jì)者都不清楚。

換句話說(shuō),組件的使用是有彈性的,不同狀況下有不同用法。對(duì)于ScriptsLanguage有點(diǎn)概念以后

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論