计算机相关专业实习报告精选.docx
- 文档编号:11360032
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:6
- 大小:22.56KB
计算机相关专业实习报告精选.docx
《计算机相关专业实习报告精选.docx》由会员分享,可在线阅读,更多相关《计算机相关专业实习报告精选.docx(6页珍藏版)》请在冰豆网上搜索。
计算机相关专业实习报告精选
计算机相关专业实习报告精选
这学期跟李锡捷老师实习,参加的工作项目是信息安全组,因为平时较其它三位组员多接触UNIX-Like的环境,因此成为本组组长并协助联络事情。
我们期初一开始便有正式的case接手,是一个韩国的骇客教育机构Hackerslab委托翻译他们的一份骇客教材。
对于这方面,我们四人虽然很有兴趣,但是相关的技术背景都还嫌不够,因此做起来并不是很轻松,最常遇到的问题就是专业名词的查询与翻译,常常会有不知如何是好的窘境发生,幸好系上的学长大多能提供我们一些查询的方向,大部分的问题到最后还是能顺利完成,这样初期的翻译工作大约持续了一个多月后暂时结束。
对外的case完成后,我们继续朝着信息安全相关的方向研究,主要是针对两个程序进行改进工作,一个为测试系统漏洞的Nessus,一个为侦测入侵系统Snort,至此小组里再以两人一组细分为Nessus组跟Snort组,各自进行测试工作。
我所分配的是Nessus组,这是一种可以用来测试服务器有哪些网络漏洞的程序,由于采用Plug-ins的方式安装,因此可以随时安插新漏洞的测试Plug-ins,加上Nessus总部的CVS机制,只要你的Nessus系统有定期CVS更新,就能保持最新的完整漏洞测试。
在业界杂志的评比里Nessus的评价甚至超越许多商用软件(Nessus是免费的),但是他有个小缺点,就是有关漏洞测试报告的部分作的并不是十分完整,每支漏洞的测试回报完整与否,取决于Plug-ins作者是否有在写作Plug-ins加上完整的叙述与解决方案,问题是大部分的Plug-ins都只有程序代码,并没有对叙述及解决方式作批注说明,因此即使在使用Nessus测出系统的安全漏洞后,使用者必须在到网络上搜寻解决方法,这样作实在不是很便利,因此老师希望我们能对于Nessus的测试回报部分作改良,写出一个报告阅读程序,结合庞大的信息安全信息,让使用者能在检测出漏洞的同时,直接取得相关的信息和解决方案,便利系统管理者在改善本身系统安全的时效性。
FreeHackersZone这学期最早接触的学习环境,应该要算Hackerslab提供的一个骇客练习用工作站FreeHackerZone。
这是一台用Linux架起来的工作站,里面分将使用者分作level0到level14,每取得下依个等级的使用者权限,都有一个相对应的系统漏洞需要去破解,训练使用者在实作中了解骇客破解系统的方法,我一面翻该组织的FAQ,一面尝试错误,让我一路攻到level10,其中学习到的手法包括了使用者权限设定,寻找特定权限的档案,利用系统分隔符来欺骗系统,溢位攻击等等,然而在前进level11时,因为该漏洞必须自韩国本地进行破解,因此只好作罢,没能进一步继续。
不过这个经验对于后来翻译Hackerslab的文件有的不少的助益!
教材翻译经过这段暖身后,我们正式接下Hackerslab文件翻译的工作,我负责的是Sniff(监听)与网页安全两份教材。
在以太网络上,只要是同一个lan上的机器,都能收到在lan上传送的封包,系统核心会进行比对,如果该封包是属于自己的就继续处理,如果不是就忽略掉,而sniffing原理就是改变最后的步骤,将所有经过的封包,不管是否属于自己,全部抓进来记录。
Sniffing的正面意义应该是用于处理观察网络流量状况,一旦网络出现异常时,可以藉由Sniffing来观察有哪些异常封包,帮助排除异常状况。
至于窃取传送中的使用者账号跟密码,则是cracker的行为,这并非Sniffing的本意。
对于区网内要如何避免被Sniff,最简单是在该区网内使用switchhub。
跟hub不同的是,hub会将接收到的封包向所有连接的host传送出去,但switch本身具有MAC路由表的功能,可以记得哪一个MAC地址要从哪一个连接埠送出去,因此不会让不相关的host收到该封包,大大减少了被Sniff撷取封包的机会。
另外一种作法是对于传送的封包均作加密处理,这样就算被他人撷取到封包,对方也很难将封包解密而还原成原本的样字加以解读。
常见的加密方式例如:
SSL(SecureSocketLayer)、PGP(PrettyGoodPrivacy)、SSH(SecureShell)、VPN(VirtualPrivateNetwork)等等。
Sniff完最重要的工作是分析抓到的封包,因此这里对于各种通讯协议的封包意义大致讲解过一遍,例如该封包的来源与目的地,长度,数据内容,CRC检查码等等。
另外一个章节是有关网页安全,包含了浏览器跟服务器两部分,这里大多是讲述理论性质的部分。
首先是有关网页服务器,对于crack的问题,最重要的还是管理者(administrator)的认知问题,只要对系统的安全性随时保持警觉,绝对能防止crack事件的发生。
目前有关网络上的服务应用虽然对于ftp或e-mail,都有许多独立的应用程序可以利用(如cute-ftp或outlook),但现在一般上网的使用者,仍有许多的机会直接使用网页来对ftp做存取跟收发e-mail,此外还有许许多多功能,也都被整合在网页浏览中,当网页服务器要兼任的服务越多,也就提供了更多让cracker入侵的机会,这是发展网页功能的同时必须付出的代价,因此,身为一个网页服务器的管理员,有责任负起保护自己服务器使用者的权益,对于安全性一定要随时保持高度的警觉性。
尤其随着电子商务的发展,网页扮演的角色越来越吃重,在往夜间传递使用者信息的机会越来越多,更增加了安全性的顾虑,然而使用者多半对于这方面安全性问题不够警觉(甚至不了解严重性),只要有cracker使用一些恶意或欺骗的applet或scripts,就有可能将使用者的信息窃取到手,也可以自远程将使用者的计算机加以控制甚至令其当机,使用者对于浏览网页时的安全比必须要比过去更加留意。
常见的网页攻击模式包括:
溢位攻击(bufferoverflow):
顾名思义,就是利用bufferoverflow的原理达成目的的......比如,一个数组只有100bytes,但我喂给它200bytes的数据,于是这个数组装不下这些数据,造成了overflow......为什么overflow会有securityhole呢?
首先,overflow发生时,多出来的数据会盖到其它变量上,相信这一点大家早就知道了。
问题是,为什么数据盖到其它变量上时,顶多使程序执行错误,会严重到出现security的问题吗?
这时,好玩的事情就发生了.......当我们呼叫一个function时,以汇编语言的观点,会将returnaddress堆入stack中。
如果这个function宣告了一些local变量,那进入这个function之后,会在stack中再空出一块区域给这些local变量,当要从这个functionreturn回去时,就把这些在stack中的local变数清掉。
现在好了,bufferoverflowsecurityhole就是在这里发生了......
如果有某个function宣告了一个localarray,如:
intfunc(){inti,j,k;charbuf;structabc*x,*y,*z;...}这样就很明显了,如果在这个function内有了bug,忘记去控制数据喂给buf的长度,当数据喂长一点,就可以盖到这个function的returnaddress指到自己所喂进去的code上这时,function执行完毕,要return时,它就不会return到原来呼叫它的地方,而会“return”到我所喂进去的那些code,这么一来入侵者就可以为所欲为了!
DenialofService(DoS,阻断服务攻击):
所谓阻断服务攻击,是攻击者利用受害者的操作系统、网络应用程序(服务)或网络通讯协议的漏洞来攻击受害者,促使目标主机的系统或服务发生瘫痪的情况,可能造成系统资源耗尽、引响正常联机品质、网络频宽被占满、网络应用程序(服务)停止运作、系统当机等情形,使正当的使用者无法正常使用该主机所提供的服务。
另一种情况是系统管理者为了测试目的尝试对自己主机展开攻击,测试操作系统或是网络应用程序(服务)中是否含有可能被攻击的漏洞存在。
像立骇科技(HackersLab)的入侵测试(PenetrationTest)、卫道科技的网络安全漏空扫瞄仪(NAICyberCopScanner)都可针对企业内的操作系统、网络甚至数据库做健康检查,其它DoS的攻击都是不合法的,而且动机通常出自恶意。
DistributedDenialofService(DDoS,分布式阻断服务攻击):
所谓分布式阻断服务攻击,是运用在于受害者的系统资源、网络频宽条件都比攻击者来的好,如果攻击者想一对一的攻击被害者,可能会失败甚至导致自己的系统或网络瘫痪,所以采取一对多的攻击方式,攻击者先在一些防备较弱的主机中种植攻击程序。
随后攻击者对各主机中的的攻击程序发出攻击命令,要求对目标主机发出庞大数量且多种的封包,庞大的数据量会瘫痪目标主机而使得无法正常提供服务。
DDoS不但可以提高成功率,还可以缩短攻击的时间及减少被发现的机会。
※以目前骇客的行径而言,大多比较倾向于使用威力强大的DDoS攻击,尤其是针对规模大的网站时。
CGI:
一种让网页执行外部程序的一种接口,正因为如此,只要权限或设定有问题,或程序编写有问题,很容易成为cracker入侵系统的快捷方式。
自动目录列表:
取得网页跟目录下的档案列表将使得cracker清楚知道该网站结构,很容易便能发觉后门所在甚至下载有问题的程序代码回去破解分析,对于入侵更为容易使用者认证的攻击:
利用一账号文件跟密码字典文件的配合,强制通过网页认证的一种手法。
NessusNessus官方网站,目前最新释出的版本为,是一种用来侦测网络服务器或工作站的网络漏洞的工具。
这套侦测系统是Client-Server的方式运作,服务器端包括了使用者账号的管理以及各种漏洞测试的Plug-ins,而Client则利用服务器端所提供的各种Plug-ins来测试工作站或服务器并产生报告,报告的格式包括了HTML、XML、NSR(Nessus本身的存档格式)、TXT、TEX(LaTex格式)。
其Plug-ins自有一套语法叫做NASL(NessusAttackScriptsLanguage),可以自订对特定的连接埠进行封包测试,藉以判断是否为漏洞(早期使用C语言来作为Plug-ins的语法,但以被淘汰)一、安装安装的方式分为Server跟Client两部分。
首先Server必须安装在UNIX环境下,(已试过FreeBSD:
ports安装跟Linux:
rpm安装)这部分没有什么问题,装下去就对了,接下来必须安装Plug-ins(若是不装Plug-ins,Nessus什么也不会测),Plug-ins可以选择一个一个下载后拷到指定目录即可,不过正确的作法应该是使用CVS的方式来维护更新Plug-ins的版本。
CVS系统又分作CURRENT跟STABLE两种,STABLE版本但讲究稳定,许多新释出的Plug-ins并没有包括在里面,而CURRENT虽然有最新的Plug-ins,但测试不见得稳定正确,有可能将你的受测工作站或服务器损害,因此要使用那个版本请自行斟酌。
安装方式如下:
1.设定环境变量$exportCVSROOT=":
pserver:
anonymous@:
/usr/local/cvs"2.登入CVS系统密码为“anon”,只有第一次登入会需要密码,以后会自动记载你系统的某一个地方$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.以后要检查更新部分时只要打$cvs-z3-Pnessus-libraries$cvs-z3-Plibnasl$cvs-z3-Pnessus-core$cvs-z3-Pnessus-plugins完成!
!
Nessus是一套强大的漏洞测试工具,但是对于他产生的报告不够完整是它的一大致命伤,目前他所采行的方法是把漏洞报告及修补漏洞的方法写死在Plug-ins里,但并不是每一个Plug-ins撰写者都有写上修补方式这部分的说明,因此我们的目的是写一个ReportReader来读取Nessus所产生的报告并自动补上漏洞相关的网址(报告格式为HTML或XML),补强的方式是连结CERT的搜寻器来产生,目前遇到的问题在于我们要选择哪一种语法来写这支ReportReader的程序(VB除外),也使我们的研究主题由Nessus暂时转到了程序语言的部分,因此Nessus暂时在此打住Language截至目前为止,我们尝试过的语言Tcl、Perl、Python都是属于ScriptingLanguages,他们跟C或JAVA这种systemprogramminglanguages有很大的差异。
SL会有一组派得上用场的组件(component),用别的语言写成。
SL不会从头开始,而是结合已经写好的组件。
比方说,Tcl跟VisualBasic可以用来管理使用者接口组件,而Unixshellscript可以把组件当作"filter",来组成一条"生产线",制造所要的信息。
SL可以用来扩展已经存在组件的功能,而很少用来发展复杂的数据结构、算法。
这些东西应该由组件提供。
因此,SL常被称为"黏接语言"或者"系统整合语言"。
为了简化组合组件的工作,SL通常没有型态。
所有东西看起来,用起来都一样,也可以交换着用。
比方说,在Tcl或VB中,同一个变量既能存字符串,又能存整数。
而程序代码跟数据可以互通,因此能够在线产生新程序。
由此可以看到SL对于文字数据的处理蛮擅长的。
V像这样无型态的语言更容易结合组件。
因为它并不对"东西该如何使用"做任何限制。
组件会怎么用,搞不好连原先的设计者都不清楚。
换句话说,组件的使用是有弹性的,不同状况下有不同用法。
对于ScriptsLanguage有点概念以后,我们决定选取Perl跟Python两方面进行,以Tk模块作图形化接口,正在钻研当中,目前以Perl/Tk较有进度(简清岱主打)(因为有花钱买书…没钱:
~~),Python相关书籍也将入手,目前找到的文件教学,主要都以数学运算的应用为例子(Python的数学函式支持很丰富,一进Python的console下就可以当成一台超强的计算器来用了),近程阶段目标是写出图形化的小算盘出来。
目前语言学习部分到此为止三、自我评估及心得感想对于这学期的实习成果,自己感觉并不是很满意,因为一开始的Hackerslab最近产生新的问题,必须要整份重弄,令人感到有点恐惧。
再者,由Nessus延伸出来的ScriptsLanguage学习,也是没有突破性的进度,最近即将面对的新挑战---PDA程序设计比赛,更因为各种原因而迟迟没犯法开始进行进一步的讨论与动作,整体来说,给自己打50的不及格分数…感想方面,真的觉得专业实习压力比课业还来得大,尤其是每个礼拜都会有的meeting,看到大家每次meeting都跟上衣次比有所进步的样子,就更感到压力,总觉得自己还要在多学习才不会被别人赶过去。
四、对系上的建议以往听学长姐的经验,对于专业实习期望颇高,总觉得能因为专业实习对于自己的实力大大提升,但是这一届校内专业实习的人数超越以往,
而就我所认识的校内实习同学们,大多数都是虚晃一学期,因此建议对校内实习的人数能有所限制,另外,对于郭姐对实习相关的讯息一而再再而三的提醒表示感谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 相关 专业 实习 报告 精选
![提示](https://static.bdocx.com/images/bang_tan.gif)