




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密码编码学与网络安全
电子工业出版社2006-2007第18章入侵漏洞和防范18.1入侵 ↓18.2入侵检测 ↓18.3口令管理 ↓* 18.a代码安全(Bufferoverflow) ↓* 18.b破解示例 ↓入侵和缺陷入侵是由于存在安全缺陷,是操作系统或应用软件的漏洞被利用造成的。用户的不当设置或使用也会产生漏洞,如弱口令等。刑法节选第二百八十五条违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。第二百八十六条违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚。第二百八十七条利用计算机实施金融诈骗、盗窃、贪污、挪用公款、窃取国家秘密或者其他犯罪的,依照本法有关规定定罪处罚。18.1入侵入侵IntruderAnentitythatgainsorattemptstogainaccesstoasystemorsystemresourcewithouthavingauthorizationtodoso.未经允许的对资源的访问和使用有危害的故意和行为事实善意的入侵也是入侵成功的入侵体现为对非授权资源的访问和使用资源指硬件、软件、系统、文件、带宽等等获得口令是集中体现安全事件统计摘自CERT/stats/cert_stats.html
安全事件报告网站MicrosoftSecurityBulletins/technet/security/WooY|自由平等开放的漏洞报告平台/看雪安全论坛/WebSploitOWASP入侵者Intruder区分hacker、cracker、intruder外部入侵者、内部攻击者恶性、良性、好心(帮倒忙)的假冒者、越权者、秘密用户黑客组织安全应对组织,如CERT//入侵的前奏:扫描主机(IP)存在/开机OS端口服务漏洞扫描工具手工pingnetcraftnmap/tools/1.htmlNetcraft/
Whatsthatsiterunning?wasrunningMicrosoft-IISonWindowsServer2003.wasrunningMicrosoft-IISonWindowsServer2003.练习:发现网络拓扑结构tracerouteserverNmapFreeStealthPortScannerForNetworkExploration&SecurityAudits./nmap/命令行见备注行NMapWin/projects/nmapwin*审慎练习scan是违反法规的入侵技术获取口令字典攻击+穷举尝试利用漏洞利用漏洞获取口令,或者绕过口令的保护技术漏洞、管理漏洞木马和病毒-MaliciousCode被远程可控制自动执行某些破坏活动欺骗和社会工程漏洞Hole操作系统Windows、Linux/Unix常用软件服务软件,如sendmail、apache客户端软件,如IE、Outlook套组件,如office设计和实现配置和管理用户因素及时更新和补丁举例:输入法漏洞未补丁的Win2k 你并不知道其任何口令在登录窗口按“CTL+SP”或“CTL+SHIFT”激活比如全拼输入法进入输入法的帮助界面在按钮栏上鼠标右键“跳至URL”, 输入比如“C:\”,即见文件及目录列表有些操作不能用*补丁patchupdate输入法漏洞屏图
举例:UnicodeholeWin2kIIS5(unpatched)Patch举例:ipc$入侵win9x的vredir.vxd漏洞win2k的c$/d$/admin$共享138、139、445137、138C:\WINNT\system32\drivers\etc\services协议漏洞攻击FTP重定向攻击openftpserveruserftppassxxxportxxx,xxx,xxx,xxx,xx,xxretrdoc某些FTP服务器TCP/IP漏洞攻击TeardropLand利用了某些实现的缺陷,而不是TCP/IP协议设计上的漏洞18.2入侵检测技术手段收集信息网关、sniffer、OSlog/审计分析发现:异常现象和行为响应干预及时制止/被动补丁规则定义和行为描述AAA异常检测主机vs.网络,Firewall,IDS入侵者comp.授权用户
收集信息:审计日志Windows事件查看器IISLog本地安全策略-本地策略-审核策略等Linuxaccess-log 记录HTTP/web的传输acct/pacct 记录用户命令aculog 记录MODEM的活动btmp 记录失败的记录lastlog 记录最近几次成功登录的事件和最后一次不成功的登录messages从syslog中记录信息(有的链接到syslog文件)sudolog 记录使用sudo发出的命令sulog 记录使用su命令的使用syslog 从syslog中记录信息(通常链接到messages文件)utmp 记录当前登录的每个用户wtmp 一个用户每次登录进入和退出时间的永久记录xferlog 记录FTP会话专门的检测日志一般内容和格式主题执行者会话、进程、用户等类别动作读/写/执行、注册/注销、IO/网络等对象数据文件、系统文件、程序、数据库等操作结果返回,尤其是失败或例外的情况资源使用读写字节数、网络活动字节数等发生和持续时间AAAAuthentication,AuthorizationandAccounting/html.charters/aaa-charter.html
/html.charters/OLD/aaa-charter.html
RequestforComments:AccountingAttributesandRecordFormats(RFC2924)IntroductiontoAccountingManagement(RFC2975)CriteriaforEvaluatingAAAProtocolsforNetworkAccess(RFC2989)Authentication,Authorization,andAccounting:ProtocolEvaluation(RFC3127)统计异常检测用于对审计记录进行分析的方法(1)阈值检测检测一段时间内特殊事件的发生次数(2)轮廓检测检测用户行为和过去相比的重大偏差统计学平均值、标准差、方差马尔可夫过程模型、时间序列模型、操作模型不用预先知道安全漏洞的知识基于规则的检测观察用户的历史行为模式,建立规则库,刻画正常/异常行为由专家(或投诚的黑客)设立规则,建立专家系统,进行渗透鉴别(假冒)检测系统调用事件系统调用Unix/Linux syscalltableDOS/WIN32 int21h/sysDLL定义并学习系统调用序列正常的/异常的定义规则/抽象为规则模式识别和判断模糊匹配
++++|Process1|Process2|...|++++|LinuxKernel|++|Hardware|++D.o.S阅读:素材ddos.zip分布式检测分布式检测对于大范围现象的检测WAN干线运营商 和检测部门*蠕虫爆发预警SQL蠕虫口令蠕虫蜜罐honeypot可以引诱入侵者,获得关于攻击者的信息系统文件的保护不被窜改、删除win2k/xpC:\WINNT\system32\dllcacheLinux系统重要配置文件的权限和修改记录选读1《安全操作系统的实时报警》*使用SecLinux定义审计事件(审计点)以系统调用、系统命令、特权命令为主;审计事件的参数定义“正常”和“异常”序列和平时类似的序列被视作正常,反之异常建立正常库收集并分析正常的事件序列,这是个学习的过程实时监控、分析和报警K步窗口匹配选读2《基于粗糙集理论的入侵检测新方法》*监控进程的非正常行为匹配方法:粗糙集理论RoughSetTheory从数据样本空间提取规律和规则的方法数据挖掘http://www2.cs.uregina.ca/~roughset/Google,Bingle入侵检测工具:SnortAnOpenSourceNetworkIntrusionDetectionSystemSnortisanopensourcenetworkintrusiondetectionsystem,capableofperformingreal-timetrafficanalysisandpacketloggingonIPnetworks.Itcanperformprotocolanalysis,contentsearching/matchingandcanbeusedtodetectavarietyofattacksandprobes,suchasbufferoverflows,stealthportscans,CGIattacks,SMBprobes,OSfingerprintingattempts,andmuchmore.-SSnort使用下载和安装/源代码,或二进制执行文件(forWin32/Linux)winpcap(仿libpcap)http://winpcap.polito.it/文档命令行提示(见备注行)manual手册“SnortUsersManual.pdf”Snort运行模式SnifferModesnort–vdePacketLoggerModesnort-vde-l./logNetworkIntrusionDetectionModesnort-dev-l./log-h/16-csnort.conf/etc/snort.confSnort规则规则ActionProtocolIPPortDirOptionvar、includealerticmpanyany->51anyalertudpanyany->51anyalerttcpanyany->51any(flags:S;)…Rules目录已知攻击特征(见备注行)/rules/Snort练习安装、配置、试用主要步骤说明练习:设置合适的规则记录(报警)进出本机的除DNS外的UDP分组记录(报警、阻断)外部到本机的TCP连接会话从外部发起连接到本机的。不仅是连接请求,要记录整个会话(能否可行?给出答案)启用flexresp(flexibleresponse)根据实际,选择Rules目录的某条规则测试参考:SnortUsersManual.pdf其他IDS商业IDS研究资料在备注行Linux安全LinuxLinuxKernelLinuxLoadableKernelModule模块格式编译、安装、卸载gcc-chello.cinsmodhello.crmmodhello模块体现的漏洞及做为管理用途安全操作系统编译、安装该模块,观察其行为和结果,并分析这种机制在安全和入侵方面的用途Linux+site//////theFreeSoftwareMovement//Google!18.3口令管理口令是安全的焦点,是网络攻防的主要对象。口令是安全链条中的第一个环节,其强度太过依赖于用户的素养和自觉,因此往往是最不安全的环节。为了口令安全,最好的办法好像是避免使用口令,而使用其他物理设备或生物学设备代替口令。帐号口令机制帐号ID(username/account+口令)groupsroot/administrator,guest其他默认帐号和默认口令ACL-AccessControlListTable(user,operation)read,write,exec鉴别挑战应答机制生物学身份鉴别口令保护/etc/passwd加密crypt()函数#define_XOPEN_SOURCE#include<unistd.h> char*crypt(constchar*key,constchar*salt);passwdspace128-32-’7f’=95个可用字符95^nsalt两个字符,每个可从[a-zA-Z0-9./]中选出来,即有4096种不同取值抵制字典攻击中的预算值UNIXPasswordScheme
encryptverifyPasswdCracker攻击口令基于字典攻击,构造字典及其组合蛮力攻击snifferJohntheRipperpasswordcrackerItsprimarypurposeistodetectweakUnixpasswordsL0phtCrackaWindowspassword-auditingtoolzip,pdf,msofficedocumentpasswdcracker(AdvancedZIPPasswordRecovery@PIII933)对6位的a-z,0-9只需几(6)分钟穷举时间对8位的则需几(5)天时间,10位的超过1年专用加速硬件设计Zipcracker
sample
AdvancedZIPPasswordRecoverystatistics:EncryptedZIP-file:sdjfks.zipTotalpasswords:2,091,362,752Totaltime:6m58s725msAveragespeed(passwords/s):4,994,597Passwordforthisfile:7uee23PasswordinHEX:377565653233PasswordsCracked(25%of13797).au/security/
.au/security/passwd.htm
选择好的口令长度足够即口令看见得足够大128-32-’7f’=95个可用字符(满算)口令得从其所在空间随机选择不要选择容易记忆的口令口令得心记不要写在纸上,再贴在显示屏边上口令得勤换不要多个帐户使用相同的口令使用口令产生和检查的工具小程序ICTokenContact/lessICCardSmartCard85.60mmx53.98mmx0.80mmprintedcircuitconformstoISOstandard7816/3circuitchip,fivepoint,ROMRAM,EEPROMTheprintedcircuitprotectsthecircuitchipfrommechanicalstressandstaticelectricity.JavaCardiKeyUSBtoken,AuthenticationKeyTheUSBSmartkey,alsoknowasakey-shapedToken,containsacryptographicchipforsecurelystoringauser’spersonalID./ikey/
/
URLsHOWTO:Chooseagoodpasswordhttp://www.head-start.lane.or.us/administration/technology/HOWTO/LinuxSecurityDocumentation/docs/UnixSystemAdministration CHAPTER28SystemSecurity/sysadm_course/UnixSecurityPage/unix//morris79password.html/防火墙Firewall位置:网络出入口考察对象:分组/连接/会话目的:过滤、代理机制:考察分组内容(控制/数据)、会话语义产品硬件、软件商用、个人收费、免费开发技术:router、capture、NDIS*病毒防火墙计算机安全系统评估SecurityEvaluationCriteria安全评估标准NSA/NCSC/TCSEC(rainbow)/tpep/ITSEC-InformationTechnologySecurityEvaluationCriteria.uk/CC-CommonCriteriaJTC1/SC27/WG3/《计算机信息系统安全保护等级划分准则》*Dictionary//dictionary/dictionary.htmNCSC/TCSECNATIONALCOMPUTERSECURITYCENTERTrustedComputerSystemEvaluationCriteriaDC1C2 NT、LinuxB1B2B3A118.a代码安全Secureprogramcapableofperformingitstaskwithstandinganyattemptstosubvertit没有漏洞不受病毒危害适应用户的野蛮操作适应非期望的输入具体问题安全的代码版权和破解分析二进制代码*分析例子:缓冲区溢出错误→*备忘安装一个好点的源文件查看程序,如editplusAssembly
inVCBasicsample:
Bufferoverflow
myf(inta,intb){ charbuf[8]; puts("anystr?"); gets(buf); … return0;}main(){ myf(0x11223344,0xaabbccdd); return0;}演示:0.VC环境(inVS.NET)1.C/ASM/CodeByte基础2.参数和堆栈stack3.函数调用的发生和返回4.gets()不小心导致堆栈数据异常对应的汇编代码
myf(0x11223344,0xaabbccdd);00411EDEpush0AABBCCDDh00411EE3push11223344h00411EE8call@ILT+1305(_myf)(41151Eh)00411EEDaddesp,8调用函数后将返回此地址执行到puts()时的堆栈状况
0x0012FDEC0x0012FDF0ccccccccÌÌÌÌ0x0012FDF4ccccccccÌÌÌÌ0x0012FDF8ccccccccÌÌÌÌ0x0012FDFCccccccccÌÌÌÌ0x0012FE00dcfe1200Üþ..0x0012FE04ed1e4100í.A.0x0012FE0844332211D3".0x0012FE0CddccbbaaÝÌ»ª0x0012FE10000000000x0012FE14myf(0x11223344,0xaabbccdd);charbuf[8];Debug隔离带ebpreturnaddress参数1参数2输入16个字符,导致堆栈错误0x0012FDF0ccccccccÌÌÌÌ0x0012FDF4
61616161aaaa0x0012FDF861616161aaaa0x0012FDFC61616161aaaa0x0012FE0061616161aaaa0x0012FE0461616161aaaa0x0012FE0800332211.3".0x0012FE0CddccbbaaÝÌ»ªbuf本来8个字节,给予20(+1)各字符导致其覆盖了其后的13个字节,因此返回地址被窜改返回地址(尾0)参数1参数2溢出会导致:变量/数据被窜改(非期望的)影响原来的设计功能函数返回地址被窜改返回另外一个地址而那个地址已经被事先放好了准备好的代码*阅读材料利用BoF
main(){ charpasswd[8]={"2e4rfe"}; charyourpasswd[8]={""};again: puts("pleaseinputpasswd?"); gets(yourpasswd); if(strcmp(yourpasswd,passwd)=
=0) gotook; puts("passwderror"); gotoagain; exit(-2);ok: puts("correct!"); //doworkyouwant return0;}程序的设计功能:输入正确的口令后做某项工作(否则重复要求输入口令)演示:输入精心计划好的字串打乱设计期望的执行逻辑,从而绕过某些口令Ready?!TryHaha!Pass!gets(),scanf(),memcpy(),strcpy()etcsc_passwd\source1.cpp(12):warningC4996:'gets':Thisfunctionorvariablemaybeunsafe.Considerusinggets_sinstead.Todisabledeprecation,use_CRT_SECURE_NO_WARNINGS.Seeonlinehelpfordetails.bufferoverflowsintheheaptodo练习分析sc_6th.exe绕过其口令保护sc_6th.exe需要VC7的运行库这个程序很小,因为它除了要个口令外,啥也不做。该程序无任何不良操作Sc_6th.zip含有对应的源程序其保护口令可分析sc_6th.exe获得利用堆栈执行某些代码SQL蠕虫376(?)字节完整的udp分组?如何溢出如何执行代码部分的分析/cgi-bin/bbs/bbs0an?path=%2Fgroups%2Fcomp%2Efaq%2FVirusExploitexampleBufferoverflow
致堆栈数据被执行的例子MS08-067演示depNX“NoeXecute”Windows的保护机制Linux?AddressspacelayoutrandomizationAddressspacelayoutrandomization(ASLR)isacomputersecuritytechniquewhichinvolvesrandomlyarrangingthepositionsofkeydataareas,usuallyincludingthebaseoftheexecutableandpositionoflibraries,heap,andstack,inaprocess'saddressspace.代码安全:不能假设不能相信用户的输入gets,scanf31/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir不能假设用户操作按照你想象的正确顺序输入法漏洞不能假设你的二进制代码不被分析vredir.vxdrc4代码分析破解:序列号sn、激活keyLinks:HowtoWriteSecureCodeTheShmooGroup-HowtoWriteSecureCode/securecode/SecureUNIXProgrammingFAQ/sup/SecureProgrammingforLinuxandUnixHOWTO/secure-programs/《WritingSecureCode》/mspress/books/5612.asp/china/msdn/catalog/security/HowToWriteUnmaintainableCode/unmain.html18.b关于反盗版、反破解、反跟踪安装序列号用户、授权运行口令仿exe压缩工具upxKey软盘或需光盘专门的硬件卡watchdog破解举例intdo_you_have_key(){ //inputkeyorserialnumber reuturn0;}main(){ if(!do_you_have_key()) exit(-2); //domywork return0;}asmandcodebyte111:intdo_you_have_key()12:{0040100051pushecx13: intk;14: puts("inputkeynumber:");//82954,100371,...004010016800714000pushoffsetstring"inputkeynumber:"(407100h)00401006E88C000000callputs(401097h)15: scanf("%d",&k);0040100B8D442404leaeax,[esp+4]0040100F50pusheax0040101068FC704000pushoffsetstring"%d"(4070FCh)00401015E866000000callscanf(401080h)16: if((k>65537)&&(k%65537==17417))//prime[2003]0040101A8B44240Cmoveax,dwordptr[esp+0Ch]0040101E83C40Caddesp,0Ch004010213D01000100cmpeax,10001h004010267E17jledo_you_have_key+3Fh(40103Fh)0040102899cdq00401029B901000100movecx,10001h0040102EF7F9idiveax,ecx0040103081FA09440000cmpedx,4409h004010367507jnedo_you_have_key+3Fh(40103Fh)17: return1;00401038B801000000moveax,120:}0040103D59popecx0040103EC3ret18: else19: return0;0040103F33C0xoreax,eax20:}0040104159popecx00401042C3retasmandcodebyte222:main()23:{24: if(!do_you_have_key())00401050E8ABFFFFFFcalldo_you_have_key(401000h)0040105585C0testeax,eax004010577514jnemain+1Dh(40106Dh)
25: {26: puts("invalidkey");004010596838714000pushoffsetstring"invalidkey"(407138h)0040105EE834000000callputs(401097h)27: exit(-2);004010636AFEpush0FFFFFFFEh00401065E8EB010000callexit(401255h)0040106A83C408addesp,828: }29: //docalcwork30: puts("下次彩票号码是:3,7,11,12,13,19,28");0040106D6814714000pushoffsetstring“…"...(407114h)00401072E820000000callputs(401097h)0040107783C404addesp,431: return0;0040107A33C0xoreax,eax32:}0040107CC3retcracker方案jneje 7514683874146838moveax,0x????????/moveax,1 E8ABFFFFFF
85C0B801000000__asm { moveax,0x?? nop int0x21 …… }74/75实例NetSuper21>fc/bNetSuper.exeNetSuper破解版.exe 正在比较文件NetSuper.exe和NETSUPER破解版.EXE 00003503:7475 000038E8:7475 00007C12:7574 0000AF72:7475 0000AF89:7475NetSuper21>序列号SN的屏蔽方法举例程序运行后首先询问序列号 1输入错误则报告并中止 2输入正确则继续 3如何绕过序列号123SN!?如何绕过序列号分析exe程序分析直接得到序列号,或者从分析得知序列号的结构特征,从而构造一个合法的序列号修改exe程序判断和跳转指令,改变程序的判断和逻辑序列大概会有类似下面的逻辑序列(可能还有多处) if(??) cmp???? goon()! je/jne?? else callgoon() stop()! …
callstop()Source,Asm+如果有部分对应源程序的话,EZ。 总结 把字节序列"5f5e507413"中74改作75,
即可实现"je??"到"jne??"的转换,
从而导致输入及时错误的序列号也能继续。
(此时,输入正确的序列号反而不能进入,
但是如果改作eb即可无论正确与否都可继续) 演示如果没有源程序,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能垃圾分类项目可行性分析报告
- 2025年中国生物质炭项目创业计划书
- 中国短效粘结剂项目投资计划书
- 中国园艺肥料项目创业计划书
- 中国聚醚酰亚胺项目商业计划书
- 中国萘乙酸项目创业计划书
- 中国卡特缩合剂项目投资计划书
- 白城市中医院造口护理健康教育考核
- 运城市中医院医疗技术准入考核
- 哈尔滨市中医院介入并发症识别考核
- 产品宣传与推广策划表
- 母公司与子公司合同(标准版)
- 2025至2030中国酒店行业产业运行态势及投资规划深度研究报告
- GB/T 20118-2025钢丝绳通用技术条件
- 餐饮服务员工考核评估规定
- 2025年浙江省公务员考试公共基础知识试题库(含答案)
- 天津市建设工程施工安全资料管理规程
- 医疗美容设备行业设备租赁市场分析方案
- 金税四期的解读
- (浙江专用)五年(2021-2025)高考物理真题分类汇编 专题11 电磁感应(解析版)
- 学校与家长签订免责协议书10篇
评论
0/150
提交评论