版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着安全技术的发展,网络安全防御措施成为了一种重要资产,如何通过现有的威胁情报数据进行快速有效的提取和分析数据是目前的一个研究热点。针对开源威胁网站以及博客等海量安全数据采用Scrapy框架设计网络爬虫对数据进行提取,并将其以知识图谱所需要的底层数据存储,通过scrapy爬虫技术,可以使得通过对各个数据源的爬虫文件,针对性的爬取所需要的信息以及信息的解析整合入库,从而在这个基础上进行多方向的研究。安全防范的目标不仅仅是在攻击到达前阻挡它,还应该包括阻断它达到其最终目的。本次的毕业设计课题将围绕基于对开源威胁情报网站的爬取与数据解析系统进行设计与实现。系统将实现由Scrapy爬虫框架爬取开源威胁情报网站上公开的数据进行解析入库,通过Flask_admin+nginx以及pyecharts来展示所抓取的数据以及相对于的查询与导出功能;本系统由爬虫模块、数据解析模块以及数据展示模块组成,很大程度上实现了APT知识图谱的数据需求。关键词:APT知识Scrapy爬虫技术AbstractWiththedevelopmentofsecuritytechnology,networksecuritydefensemeasureshavebecomeanimportantasset.Howtoextractandanalyzedataquicklyandeffectivelythroughtheexistingthreatintelligencedataisaresearchhotspotatpresent.Formassivesecuritydatasuchasopen-sourcethreatwebsitesandblogs,weusethescrapyframeworktodesignwebcrawlerstoextractdata,Itcanstorethebottomdataneededbyknowledgemap,andthroughthetechnologyofcrawler,itcanintegratethecrawlerfilesofeachdatasource,theinformationneededfortargetedcrawlingandtheanalysisofinformationintothedatabase,soastocarryoutmulti-directionalresearchonthisbasis.Thegoalofsecurityisnotonlytoblocktheattackbeforeitarrives,butalsotoblockittoachieveitsultimategoal.Thisgraduationprojectwillfocusonthedesignandimplementationofcrawlinganddataanalysissystembasedonopensourcethreatinformationwebsite.Thesystemwillbeimplementedbyscrapycrawlerframeworktocrawlopen-sourcethreatinformationwebsiteopendataforanalysisandstorage,anddisplaythecaptureddataandrelativequeryandexportfunctionsbyflask_admin+nginxandpyecharts;thesystemiscomposedofcrawlermodule,dataanalysismoduleanddatadisplaymodule,whichlargelyrealizesthedatarequirementsofAPTknowledgemap.Keywords:APTknowledgeScrapyCrawlerTechnology
目录第一章绪论 绪论1.1课题背景及意义高级持续攻击(APT)是指高级持续攻击的概念,由美国于2006年首次正式提出,APT攻击目前被认为是一种具备顶级安全技术和富有资源的强劲对手。它们主要的任务是有目的地去扩大信息根据地,实现更多披露信息或者摧毁和阻碍运营计划或组织,以实现关键任务,或者将它们放在未来能够发挥作用的地方。此外,为了实现其目标,高级持续性威胁将反复持续很长时间,并通过各种手段(自动升级)抵抗防御者的努力。同时与外界保持一定程度的互动以实现其目标。这类型攻击目前大多数已经上升为国家性的网络安全,如何做好抵抗APT攻击已然成为各个国家网络安全建设的重中之重。本系统的设计目的主要是为了尝试使用当前流行的scrapy框架爬虫技术对开源网站上与APT知识图谱有关的知识根据需求解析与入库,为APT知识图谱的知识做底层数据支持。1.2国内外研究现状目前,在安全领域中认为那些具备高技术与安全资源的APT攻击皆来自于国家层次的有目的的间谍活动抑或是民间黑客组织,这些APT攻击具有高级,持久性,以及高威胁的特点。APT攻击目标通常是国家层次重大的信息,高新科研领域技术,国家中的巨型商业公司,无论是哪一方,若是遭受到了APT攻击,将会付出惨痛的代价,这个代价最高可以影响到国家安全。因而各个国家都开始上升对APT攻击的安全防御以及态势感知,在这个方面上的投入不亚于现实中的军备竞赛。国家对于APT攻击的重视有助于提升整个国家对于APT攻击的研究和防御意识的培养,提升国家对于APT攻击的防御能力。APT攻击具有很强的隐蔽性,并且都是以国家级的支持来进行攻击行为,所以传统的一般态势感知系统等安全防御措施很难检测发现得到。APT的单兵的隐藏能力极高,随身携带的IP以及恶意代码都是可更改的,根据某一特征来识别基本是很难检测得到。1.3课题研究内容从震网事件到乌克兰停电事件,再到NSA的方程式组织的行动,APT组织慢慢的跟各国情报机构越来越紧密,例如俄罗斯支持的APT28组织多次影响美国大选,诞生一个“选举安全”的新词。而现在,保障2020选举安全成为美国的政治任务,推特和Facebook忙着删帖,微软等忙着跟踪处理APT28的C&C。而越南政府资助的海莲花组织主要以中国政府、科研等重要部门为攻击对象;顺便攻击了宝马等著名车企。中国工程院院士戴浩在2019CNCERT中国网络安全年会上指出,过去以国家名义发起的网络战鲜有发生,APT攻击属于“暗战”,但近年来为了加强震慑意义,开始出现以国家名义公开宣称发动网络战,网络战开始出现“明暗交织”的情况。基于此,作为一名爱国青年,我将尝试使用当前流行的爬虫技术对开源威胁情报中心的相关数据进行爬取以及按照网上的相关知识进行建表解析入库,为国家安全献上属于自己的力量。本文系统采用Scrapy-redis框架技术进行开发,该框架通过模块化爬虫的各个流程,使得开发简便,只需要编写相对于的爬取规则以及解析入库规则,辅以中间件来反爬虫。系统使用Flask-admin+nginx+bootstrap+sqlalchemy技术来快速搭建展示模块,flask轻小便捷,适合业务逻辑不复杂的web应用,bootstrap可达成快速开发的需求,sqlalchemy的ORM技术可以减少原生sql语句的编写工作。开发技术与工具2.1Scrapy技术简介本系统的数据爬取框架使用的是scrapy+redis,而Scrapy是一套基于Twisted的异步处理框架,充分利用了python的语言优势来实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,例如针对所爬取网页的页面结构分析后编写的爬虫代码,数据管道的设计,爬取过程中的中间件编写等。Scrapy用来抓取大量的网页数据亦或是媒体资源等来说是非常之方便,辅之以redis可在项目后期拓展单机为分布式爬取,加大爬取的速率以及躲避部分反爬虫措施。2.2Python语言介绍Python是目前最为流行的语言之一,目前大多数应用于高新技术领域,就如人工智能与深度学习以及数据处理,但是不置可否的是它在轻量的web应用上面的优势。它适合用于快速开发一个小型的web应用,主流框架Django更是在CMS领域大行其道,在本文中我将使用另外一种基于Python的web框架来进行开发,它比Django还要轻,它就是Flask。2.3Mysql数据库简介在本文中我将使用mysql来作为数据驱动系统,Mysql在我最初接触web的时候就已经在使用了,那个时候PHP+MYSQL是web应用开发的首选,DZ论坛,dede织梦系统都是使用mysql来作为数据库。虽然现在越来越多的程序员转向其他语言,没有使用PHP,但还是无法动摇Mysql在轻量级应用上的地位,它入手快,简洁明了的安装过程,同时还支持在各种web框架中应用,支持范围广。在github上的各种开源项目中,它无处不在。本文中需要用到数据与数据之间的关联关系,所有采用mysql这种sql型数据库是再适合不过了。2.4redis数据库简介Redis是一个no-sql型的数据库,它常用于缓存,在scrapy中它是另外一个身份,不过也跟缓存差不多的功能,它用于爬虫队列的管理,以及指纹信息的录入。它可以建立一个连接池,目前常用于分布式爬虫的部署中,在本系统中虽然是单机爬取,但是我还是选择了用scrapy+redis的框架来爬取,因为redis在爬虫的断点续爬和指纹信息去重中的用处也是极大的。我之前有使用过其他去重方案,例如BerkeleyDB的deltafetch,但是这种方案在爬取任务大的情况下延展性不高,而且如若爬虫被强制中断,会导致相关缓存文件损坏,指纹信息丢弃,去重效果便没有了。Redis在去重环节的使用是十分灵活的,我将在文中着重提到这一点。其次,本系统所使用到的代理池也是基于redis数据库的,将可用代理放入redis中,随机进行抽取,可以很好的筛选和使用代理。2.5Flask_admin简介作为一个微框架,Flask允许您用很少的开销构建Web服务。它给你(设计者)以一种适合你的特定应用的方式实现项目的自由。在微服务和应用编程接口的世界里,Flask-Admin解决了在现有数据模型之上构建管理接口的无聊问题。无需任何努力,它使您能够通过用户友好的界面管理网络服务的数据。Flask-Admin的基本概念是,它允许您通过将类中的视图分组在一起来构建一个复杂的接口:您在前面看到的每个网页都代表一个已经明确添加到接口类中的方法。当绑定到特定的数据库模型时,这些视图类特别有用,因为它们使您能够在逻辑上将所有传统的创建、读取、新,删除(CRUD)视图分组到每个模型的单个独立类中。2.6Nginx简介Nginx是一个反向代理网络服务器,它一开始是主要用来做邮箱服务器的,再后来慢慢的变成了一个高性能的网络服务器,现在得到了更多的普及,很多大型的互联网公司也采用了这种简单高效,配置还相当简单的服务。事实上,它的确是值得信赖的,在大多数情况下,如果具有相同服务器资源配置下,nginx服务器会使得并发的性能更好,负载均衡更优秀,也更稳定。2.7开发环境介绍2.7.1软件环境序号名称版本备注1UbuntuUbuntu18.04.4LTS操作系统2Mysql5.7数据库3Redis4.0.9爬虫支持4Nginx1.14.1Web容器2.7.2硬件环境序号名称版本备注1战神K650D-i5D38G内存+Corei52CPUInteli5-4210M双核处理器2.7.3开发环境序号名称版本备注1Python3.6.9编程语言2Pycharm2019.1.4编译器3NavicatForMysql11.1.13Mysql管理工具4RedisDeskTopManager2019.0.0Redis管理工具5Putty0.72服务器连接工具系统分析与设计3.1可行性分析可行性分析主要是从项目的立项出发,分析项目未来能够取得的收益与面临的风险,项目如何在当前的社会环境经济环境下生存,以及项目后续会面临的财务风险等等,从各个角度出发去分析项目的可行性,并给出决策意见以及各方面的措施。可行性分析需要做到客观,科学化,也要更具有远见。3.1.1技术可行性技术可行性分析主要是评估以目前的技术条件和开发者掌握的技术能力水平,能否满足系统的使用条件和需求。个人比较熟悉Python语言以及scrapy技术的项目构建和代码编写,熟悉爬虫代码以及对html界面结构的掌握良好,熟悉Scrapy框架运行过程,可针对性编写相关中间件,本系统采用的Flask-admin是一个极其强大的开源框架,可快速搭建数据库展示,集成了web服务器以及前端bootstrap框架。Nginx是一个轻量的web服务器,安装以及配置都十分简单。整体来说,开发者技术水平跟软件的灵活性、安全性和易用性都是满足系统平台的开发需要的。3.1.2操作可行性本系统的目的是给后续的安全与大数据开发人员提供数据支持,展示模块主要用于基本的分析以及相关字段的简易查询,无需设置用户相关权限,只需按照后续开发人员的数据格式要求解析好相关的字段以及文件即可。3.1.3运行可行性运行可行性分析即系统对组织及人员的适应性分析;本系统实现的功能主要为采集数据,即是为后续的APT知识图谱构建做准备。其中字典规范作为对不同类型知识属性的描述约束,便于知识的统一表达理解,同时也是外部数据融合消歧的标准。目前APT知识图谱技术对于元数据的要求比较高,需要在元数据的基础上再进行人工决策筛选,展示功能的重要性并不大,所以主要实现数据采集模块便可算是符合。3.1.4经济可行性经济可行性分析包含市场需求、配套成本、资源供应。市场需求:目前各大安全厂商都已经有自身的威胁情报态势感知系统,这也说明基于现有威胁情报知识体系的构建是十分有必要的。配套成本:由于系统主要模块是数据采集,Scrapy框架强大的多线程以及指纹信息录入去重机制可以充分节省服务器资源,目前只需要单机模式便可以符合要求,本系统目前运行于阿里云轻量应用服务器。资源供应:本系统爬虫主要是从开源威胁网站中爬取资源,目前不涉及任何侵权以及需要偿还的内容。3.2系统总体设计本系统的系统总体框架如图3-1所示。图3-1系统框架图1)爬虫模块:针对github上公开的MISP报告编写爬虫规则进行爬取,与开源威胁情报平台的数据信息相匹配关系解析入库,由于scrapy-redis框架自带指纹信息去重,所以不需要再自行去重,在爬取的过程使用各种中间件代理池可以实现高效爬取,在Linux系统中可以使用crontab实现定时爬取。(2)展示模块:使用Flask-admin搭建数据可视化平台,对定义的模型类(即数据库表)进行查看,筛选,搜索以及导出等功能。同时利用pyecharts生成数据统计图表,使用nginx服务器实现轻量的web应用。3.3数据库设计3.3.1数据库需求分析知识图谱所需要的数据是要从大体的决策战术到基本的元数据来构建,从对每个APT组织对象画像构建,属性和关系构建,然后基于APT定义的属性进行去重以及将有关联的关系关联起来,无关的杂数据进行去除,从而输出APT知识库。半结构化数据(如阿利耶夫、MISP和ATTCK)和非结构化数据(如塔罗斯安全博客和GithubAPT报告)。结构化智能数据库通常识别数据类型,因此信息提取方法使用字段映射和其他方法将相似的关联不同字段的数据关联到特定属性的内容中,使用scrapy等网络爬虫技术从开源威胁网站中提取非结构性数据,结合AI智能或是人工决策进行APT对象属性的研究分析,将这些散乱的数据规整起来,输出特定知识表示。除此之外,还可以将各个实体之间的数据有类似于“利用”、“包含”、“模块相似性”等知识关系。APT报告和安全博客等非结构化数据主要使用正则表达式来提取威胁指标(IP、域名、文件哈希,等)。),然后是关键字匹配,以提取报告和组织之间的关系。在对所提取的知识形成了一种统一的表达输出后,仍然存在不少问题。例如不同的安全厂商的信息差不一样,MISP目前来说是收录较多APT威胁主体相关知识的公开报告,但是在类似于ATTCK这类安全研究网站中,对同一个APT组织的定义是会不同的,没有一个统一的APT威胁主体id来定义一个在A网站是张三,B网站是李四的主体,假设A网站记录了张三攻击了一个私营企业,而B网站记录了李四攻击了一个政府企业,由于定义名字的不同,那就无法有效的将两者所持有的属性和行为操作关联起来。3.3.2数据库的配置sudoaptinstallmysql-server-y#安装mysqlsudoapt-getinstallpython-devdefault-libmysqlclient-dev#安装mysqlclient依赖sudomysql_secure_installation修改mysql默认字符集,使用你喜欢的编辑器,如vim或者nano,打开/etc/mysql/conf.d/f,配置文件,注意,需要使用root权限,如vim:sudovim/etc/mysql/conf.d/f删除该文件的[mysql]行并贴入如下内容:[mysqld]character-set-server=utf8mb4collation-server=utf8mb4_unicode_ci[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4退出并保存,重启mysql服务,终端下执行:sudo/etc/init.d/mysqlrestart
系统实现4.1系统前端实现本系统采用Flask-admin框架快速开发,前端技术用到了bootstrap3,作为一个微框架,Flask允许以很少的开销构建Web服务。它提供了以适合特定应用程序的方式实现项目的自由。在微服务和API的世界中,Flask-Admin解决了在现有数据模型之上构建管理界面的无聊问题。它可以毫不费力地通过用户友好的界面来管理Web服务的数据。Flask-Admin的基本概念是,它允许您通过将类中的各个视图分组在一起来构建复杂的界面:在前端看到的每个网页都代表已明确添加到界面的类上的方法。这些视图类在绑定到特定数据库模型时特别有用,因为它们可以将所有常规的创建,读取,更新,删除(CRUD)视图逻辑分组到每个模型的单个独立类中。4.1.1主页界面用户可以看到整个页面系统,其界面如图4-1所示图4-1主页图可以看到导航栏上的选项:首页:返回首页的按钮Threator至Report_Substance是所有数据库表的界面点击Substance进入Substance表界面如图4-24.1.2模型类界面图4-2Substance表界面点击Id,type_name,type_cn_name,Value,DetectTime,ModifiedTime这些亮色的字段可以使表格按照所选字段正序或倒序排列。图4-3查看详情页面按钮点击记录数旁边的如图4-3所示的图表,可进入该记录的详情页。如图4-4所示。图4-4记录的详情页面详情页面图可以显示更多字段,例如SubstanceId,source等。图4-5搜索栏点击如图4-5所示的搜索栏,可以根据搜索栏上的字段搜索需要的数据,例如图4-6所示,搜索id为300的substance。图4-6搜索id为300的substance 点击新增筛选器,可以弹出下拉框,如图4-7所示图4-7新增筛选器选择需要筛选的字段,如id,再设置条件后点击应用即可得到反馈,如图4-8图4-8筛选id大于200的数据在这样的筛选条件下,可以点击导出,导出id大于200的substance到一个csv文件中,如图4-9所示,导出的字段和数据便是点击导出时页面显示的字段和数据。图4-9导出id大于200的substance数据统计图点击有下拉如图4-10所示图4-10统计图下拉框4.1.3统计图界面点击可得到由pyecharts生成的图表,导航栏的统计图是指向了几个在服务器启动之时便生成的html文件,运用了pyecharts模块和flask-admin自带的ORM管理。page1=Page("")page1.add(a).add(e)page1.render("/root/python/flask-admin/examples/sqla/admin/templates/showAll.html")我在这里使用了绝对路径,因为本系统只是使用了flask-admin中的一个例子,使用相对路径很大可能找不到文件所在,另外使用了page模块,可以让多张图表在一个html中展示。如图4-11,4-12,4-13,4-14,4-15图4-11近30天指示器增长趋势图4-11显示的是在过去的30天中指示器每日的增长数量,这是通过指示器的发现时间来决定的,而指示器的发现时间由取决于包含它的报告,所以导致增长速度波动有点大是属于正常现象。图4-12昨日指示器增长类型比例(昨日无新增)图4-12是统计了在昨天新增的指示器类型中,各个类型的比例占多少,截图中的日期昨日没有新增,所以数据量都零,各个类型的指示器的增长速度有助于加强安全防范人员对该类型攻击手法的安全预警。图4-13近30天指示器增长类型比例 由图4-13可以看出domain和url类型是过去三十天里新增较多的指示器类型图4-14所有指示器类型比 从图中可以看到ip和domain指示器类型比较多,这也是因为这是最常见的IP域名信誉类情报,这类情报目前来说还上升不到可以利用作为决策分析。但是可以利用起来作为安全态势感知,针对这类指示器,可以用来判断这个IP是否为恶意IP,这个IP是否被人恶意攻击过了,这方面也是需要通过各个安全厂商的数据来进行深一层的分析判断,因为这类IP常有可能是被人攻入后利用其来进行非法流量攻击等等。图4-15所有数据表的数量总和图4-15可以直观的看出目前库中各类数据的记录数,有助于观察最新威胁情报态势。4.1.4威胁情报源界面图4-16其他威胁情报源的链接4.2系统后台实现4.2.1数据库实现(1)threator(威胁主体)表包括(id、threator_id、name、first_seen、last_seen、description、create_time、update_time、source、tags、country、idfentity、motivation、related_target、related_target_category、aliases),如下表4-17所示:表4-1APT组织表字段类型说明备注idbigint主键threator_idvarchar(100)威胁主体iduuidnamevarchar(100)威胁主体名称first_seenbigint威胁主体首次发现时间时间戳(精确到秒级)last_seenbigint威胁主体最近发现活跃时间时间戳(精确到秒级)descriptiontext描述create_timetimestamp记录创建时间时间戳(精确到秒级)update_timetimestamp记录更新时间时间戳(精确到秒级)sourcevarchar(100)信息来源默认为:MISPtagsvarchar(2000)标签逗号分隔countryvarchar(100)地理信息-国家idfentityvarchar(100)身份竞争对手犯罪分子内鬼恐怖份子间谍激进主义者犯罪组织黑客内部误用者自我炒作者无政府主义者motivationvarchar(100)动机个人满足报复破坏意外被迫炫耀意识形态搏出名个人获利组织获利未知related_targetvarchar(5000)攻击目标多个目标以逗号分隔related_target_categoryvarchar(5000)攻击行业多个目标行业以逗号分隔aliasesvarchar(5000)攻击者别名多个别名以逗号分隔(2)report(报告)表包括(id,report_id,name,description,keywords,published_time,modified_time,update_time,create_time,source,link_ref,tlp),如下表4-18所示:表4-2报告表字段类型说明备注idbigint主键report_idvarchar(100)报告iduuidnamevarchar(100)报告名descriptiontext报告描述keywordsvarchar(1000)报告关键词逗号分隔published_timebigint报告发布时间时间戳(精确到秒级)modified_timebigint报告更新时间时间戳(精确到秒级)update_timebigint记录更新时间时间戳(精确到秒级)create_timebigint记录创建时间时间戳(精确到秒级)sourcevarchar(100)报告报告来源默认:alienvaultlink_refvarchar(1000)报告链接urltlpvarchar(100)tlp协议red/yellow/green/white(3)substance(网络实体)表包括(id、substance_id、type、sub_type、value、create_time、update_time、detect_time、modified_time、source)如下表4-19所示:表4-3网络实体表字段类型说明备注idbigint主键substance_idvarchar(100)网络实体iduuidtypeint实体类型,关联substance_type:id1:ip2:domain3:email4:url5:file6:hostname7:yara8:cve9:feature10:processsub_typevarchar(100)实体二级分类目前只有file类型具有二级分类:
MD5/SHA1/SHA256valuetext实体值IP:XXX.XXX.XXX.XXX域名:URL:/demo/index.php邮箱:xxxxx@163.comcreate_timetimestamp记录创建时间时间戳(精确到秒级)update_timetimestamp记录创建时间时间戳(精确到秒级)detect_timetimestampIOC发现时间时间戳(精确到秒级)modified_timetimestampIOC更新时间时间戳(精确到秒级)sourcevarchar(100)信息来源默认:alienvault(4)substance_type(网络实体类型)表包括(id,name,cn_name)共3个字段,如下表4-20所示: 表4-4网络实体类型表字段类型说明备注idbigint主键namevarchar(100)实体类型名cn_namevarchar(100)中文名(5)threator_report(威胁主体-报告关系)表(id,threator_id,report_id)共3个字段,如下表4-21所示 表4-5威胁主体-报告关系表字段类型说明备注idbigint主键threator_idvarchar(100)威胁主体idreport_idvarchar(200)案例id(6)report_substance(报告-实体关系)表(id,report_id,substance_id)共3个字段,如下表4-22所示表4-6报告-实体关系表字段类型说明备注idbigint主键report_idvarchar(100)威胁主体idsubstance_idvarchar(100)实体id(7)threator_threator(threator_threator(威胁主体-威胁主体关系))表(id,threator_src_id,threator_dst_id,relationship_type)共4个字段,如下表4-23所示表4-7威胁主体-威胁主体关系表字段类型说明备注idbigint主键threator_src_idvarchar(100)威胁主体idthreator_dst_idvarchar(200)威胁主体idrelationship_typevarchar(100)关系类型4.2.2Nginx配置终端下执行:sudoaptinstallnginx–y安装Nginx反向代理服务器vimetc/nginx/sites-enabled/default.conf编辑服务器配置server{listen80;server_name2;root/root/python/flask-admin/examples/sqla/;access_log/var/log/nginx/flask_access.log;error_log/var/log/nginx/flask_error.log;location/static/{alias/root/python/flask-admin/examples/sqla/static/;expiresmax;access_logoff;log_not_foundoff;}location~\.py${return403;}location/{proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerHost$http_host;proxy_set_headerX-NginX-Proxytrue;proxy_redirectoff;if(!-f$request_filename){proxy_pass:5000;break;}}}保存并退出。重启nginx:sudo/etc/init.d/nginxrestart4.2.3Redis配置$sudoapt-getupdate$sudoapt-getinstallredis-server启动Redis$redis-server查看redis是否启动?$redis-cli以上命令将打开以下终端:redis:6379>是本机IP,6379是redis服务端口。现在我们输入PING命令。redis:6379>pingPONG以上说明我们已经成功安装了redis。使用configsetrequirepass命令设置密码4.3爬虫系统实现4.3.1Scrapy架构图4-17数据库接口部分代码图4-17描述了一个基于scrapy+redis的爬虫的运转过程。在scrapy的日常使用中,首先是需要新建一个项目组来初始化爬虫的各个处理模块,在setting中配置好需要用到解析方式,如果是采取文件系统存储,可以配置文件系统保存的目录,如果是采取数据库来做数据持久化的话,可以在setting中配置数据库的类型以及端口账号密码等。Scrapy+redis的运转过程是首先由spiders发出request经过引擎分发到调度器,调度器再与redis数据库交互,判断发出的request是否已经存有指纹信息了,如果没有存有指纹信息的话,则调度器将经引擎把request分发到下载器中,去下载指定的页面下的网站信息,下载完成后下载器将会把response返回给爬虫。在下载到返回的这个过程中,会经过下载中间件,可以在爬虫项目的中间件中编写代理中间件,重试中间件等加速爬虫的爬取效率,避过反爬措施等。Spider再将下载器返回的response对象进行解析,然后提取需要的item传递给管道文件进行处理,注意item对象的类型和字段需要提前在items.py中定义,管道文件按照设置好的数据持久化格式将从spider中传递过来的item进行存储,存储完毕后将会把item对象和url经过scrapy-redis的指纹生成系统,生成指纹信息到redis中,等下一次访问相同的url时,将会自动去重,直接跳过发出request请求。4.3.2Spider爬取思路图4.18threator.py文件如图4.18,这是对于APT组织信息爬取的爬虫,从github上公开的MISP报告中,通过raw的二级域名访问原生json文件,可直接解析为python结构进行提取,之后再爬取alienvault的APT组织列表接口,MISP的报告比较权威,所以优先级比较高,即是如果MISP中有的APT组织或是二者皆有的,来源都设置为MISP,如果MISP中不存在的,则来源设置为alienvault。在此次爬取中可爬取threator中大部分的字段以及threator_threator关系表中全部的数据。 由于是使用scrapy+redis爬取,所以需要改写spider默认继承的类为CrawlSpider。这个爬虫继承的是CrawlSpider,它是用来说明Redis的持续性,当我们第一次运行dmoz爬虫,然后Ctrl+C停掉之后,再运行dmoz爬虫,之前的爬取记录是保留在Redis里的。分析起来,其实这就是一个scrapy-redis版CrawlSpider类,需要设置Rule规则,以及callback不能写parse()方法。由于该系统数据量规模还不够大,所以没有采取分布式采集的方式。但是后期可以进行改动,只需要让继承的类改为RedisSpider,同时配置相关的redis服务即可。图4-19alienvault.py部分代码在这个爬虫文件中有多级爬取报告以及指示器的需求,大量对库中数据的判断,在此基础上还要查看redis中是否已有指纹信息,所以其中涉及到大量的数据判断。而scrapy中需要通过yield来传递元素以及构建新的request请求,在这个地方我使用了一个小技巧,通过在传递的request请求中的url中添加相对应的参数来巧妙的构建url,由于scrapy对于url有指纹信息录入的自带去重功能,所以如果能够构建新的url将会及时将报告数量有变化的url列入爬取队列中,那样报告数量没有变化的request将会自动被去重机制筛选下来,这可以大幅度的减少发出的请求数量和提升爬虫效率。4.3.3中间件编写图4-20proxy.py代码在爬取的过程中,需要给request请求添加代理IP来避免网站的反爬措施,本系统是在github开源代理池的基础中加入自己所添加的代理源,图4-20是向代理调度服务器随机请求一个代理,图4-21是代理池的逻辑流程图。图4-21代理池流程图目前网络上的免费代理网站是有许多,但是可用性不高,大多是失效的代理,我这边是买了一个廉价的代理资源,图4-22为代理采集规则,需在代理池配置文件中配置。图4-22代理采集规则图4-23代理中间件使用代理时需在爬虫项目的middlewares.py中编写对应的代理中间件,并在setting.py文件中启用,因为部分网站需要的是https的代理,所以需要在request发送请求的过程中进行更换。图4-24retry中间件同时由于在爬取过程中,可能会出现重定向或者是503等错误,所以需要对返回的情况进行决策,如若需要重新发出请求,可在retry中间件中编写规则。图4-25UA中间件在爬虫伪装技术中最重要的莫过于UserAgent的配置,这是最常见的反爬虫措施,网站会拒绝无UA信息的请求。图4-26setting.py部分代码以上所提的中间件(代理中间件,retry中间件,UA中间件)都是下载中间件,需要在setting中的DOWNLOADER_MIDDLEWARES字典中添加,并按照网络请求逻辑配置优先级。4.3.4管道文件编写图4-27pipelines.py部分代码如图4-27,可以在管道文件中加入open_spider函数,这是内置的函数,即是在爬虫开始的时候调用的函数,这样的设置有助于数据库资源和效率的高效利用,我在这里初始化了数据库配置,同时可以在close_spider函数中设置关闭数据库句柄,有效保护了数据库的使用。图4-28pipelines.py部分代码上图4-28是部分管道处理代码,在管道处理中可以通过isinstance函数,对传入的item进行区分,判断是哪个类哪个爬虫传过来的,然后再进行相应的数据解析,数据解析中由于会有一些值为空,所以我常用的是通过ifin和type来判断该item中是否有相应的数据或者是否是列表,join函数是可以将列表转换为字符串的一个很实用的函数。图4-29数据库接口部分代码由于还是习惯于使用sql语句来进行数据的持久化存储,在该项目中我自己编写了一个跟mysql交互的数据库接口,如图4-29为插入数据时的sql语句操作,支持传入字典类型的数据,数据库接口将会拆分key和value值,并将参数列表传入execute函数中,用try捕捉异常进行回滚操作,确保数据安全可靠。4.3.5定时脚本编写 在一开始我是使用了一个main.py文件来实现定时的脚本执行,但是后面发现会有各种问题,所以还是把目光转向linux系统中的crontab,一开始调试的时候发现如果直接使用scrapy命令运行爬虫会提示该目录没有scrapy的方法,为了解决这个问题,我尝试使用0000***/usr/local/bin/scrapyrunspiderxxx,这个时候是调试通过了,所以我在原有的基础上加入了一个cd命令,先cd到爬虫项目的目录下,再来执行scrapy命令。系统测试5.1系统测试概述系统测试顾名思义便是测试整个系统的运行情况,是否会出现各种类似于安全泄露,权限分离不清,规定的功能没有实现亦或是出现BUG的情况。这个流程在现有的软件工程开发中变得愈来愈为重要,本系统采取了黑盒测试和白盒测试相辅相成的测试方法来验证系统的可用性和可靠性。5.2系统测试环境与测试方法类别名称系统环境Windows10家庭中文版测试工具Postman测试方法主要采用黑盒测试和白盒测试相辅相成的测试方法5.3系统测试步骤与结果测试编号测试对象测试步骤预期结构实际结果1用户首页访问首页正常显示一致2用户对象类访问对象类界面正常显示一致3用户统计图页面访问统计图页面正常显示一致4用户威胁情报源访问成功链接至其他情报源网站一致5用户详情页查看显示数据详情页面一致6用户字段排序表格成功以指定字段倒序或正序排列一致7用户数据导出成功生成当前视图表格对应的csv文件一致8用户筛选器功能点击新增筛选器选择条件,表格成功以条件限制显示出数据一致9用户搜索功能搜索框中输入相关字段内含有的数据,成功筛选出来数据一致10用户爬虫爬取功能爬虫正常运行一致11用户爬虫定时功能爬虫正常定时运行一致总结与展望6.1总结对于这个系统的缺点和不足,原因是我对安全技术没有很深的了解,我自己的开发技术水平也不够高,早期系统的整体研究时间比较短,代码编写和系统测试的时间不够。算法和系统的设计需要更多的努力。与网络上许多安全厂商的威胁情报中心相比,该系统只能说是一个半成品,因为所收录的信息源还是不够多,然后由于前端知识技术水平还不够,没办法通过渲染页面实时同步展现数据的变化,不能利用库中已有的数据库表信息生成APT,报告以及指示器的关联图。另外,对于数据的可操作性也是有待加强,例如导出的数据类型,应当包含有sql语句,这样方便将需要的数据移植到其他的数据库中进行调试。在页面的布局和优化方面还有待加强。6.2展望 本系统中虽然只是勉强能够达得到一个简易的情报中心的实现,但是本系统中的爬虫模块对于构建APT知识地图的基础是极其重要的。因为在APT追踪技术中,正是这些小小的指示器,可以通过提取多个结构化、半结构化和非结构化的APT情报信息,并根据特定的知识体系去构建知识地图,可以构建APT专题知识地图。然后可以通过前端和后端技术生成APT组织关系图谱。在后续如若能加持AI人工智能,以指示器信息,APT组织信息,APT知识体系来作为数据集进行加以锻炼,锻炼出一个安全防御模型,能够不断的对各个安全厂商产出的威胁情报进行吸收,不断完善自身,在面对相类似的APT攻击时能够准确预测攻击来源,制定相对应的决策进行防御,将会是攻防安全中的一个突破点。参考文献[1]于道森.基于威胁情报的网站安全防护平台[D].中国科学院大学(工程管理与信息技术学院),2015.[2]刘长龙,Python高效开发实战:Django、Tornado、Flask、Twisted,清华大学出版社,2016.[3](美)迪米特里奥斯考奇斯-劳卡斯,精通Python爬虫框架Scrapy,人民邮电出版社,2018.[4][英]哈利·帕西瓦尔(HarryJ.W.Percival),Python测试驱动开发使用DjangoSelenium和JavaScript进行Web编程,人民邮电出版社,2018[5][美]埃里克·马瑟斯(EricMatthes),Python编程从入门到实践,人民邮电出版社,2016.[6]蔡晶晶、张兆心、林天翔,Web安全防护指南:基础篇,机械工业出版社,2018.[7]谭志彬、柳纯录,系统集成项目管理工程师教程,清华大学出版社,2016..致谢回顾大学四年,心中其实还没有答案,自己是否做到了收到录取通知书时说好要好好学习的flag,但是心中却是知道我在母校度过了难忘的四年,难忘一起踢球说笑的同窗,难忘彻夜聊天的舍友们,难忘悉心栽培我的老师们。在这里要衷心感谢我的指导老师任浩老师,是任浩老师在小学期项目时的尽职尽责,让我能够好好的入门了爬虫技术,并对其产生兴趣,也让我找到了开启编程之路的钥匙。回看实习点评,老师对于学生认真的程度令我无比感谢,每一句话都是指引我走下去的名句。
HYPERLINK如何选择组装电脑配件
如何选择组装的电脑配件.
第一,选择好CPU平台,就是INTER还是AMD,看你是要配什么样的电脑,高端还是低端的,两个平台都高低的产品。第二,选择主板了,主板的品牌比较多,质量,价格也不一,当你第一步却定了,那么主板也就相应的却定下来了,以INTER为例,只可以选择775接口的主板(早期有478接口的,不推荐),主板的选择主要有两种,一是集成显卡,二是不集成显卡。集成显卡的话,就可以省下显卡的钱,但是对游戏玩家不推荐。那么当然是选择不集成显卡的主板了,而且最好选择一线品牌,如华硕,技嘉等。主板里,还有个蕊片组的选择。关于蕊片组,各个品牌的主板命名有些不一样,主流是INTER965,945,915,VIA的KT890,还有NFORCE4,NFORCE5。等。比较难说清楚。最好是选择INTER的蕊片组,虽然价格会稍高一些。推荐945,技术比较成熟。第三,显卡的选择。显卡主要还是有两类品牌,GEFORCE和ATI,两个品牌有高,中,低的显卡。显卡选择要看你个人喜欢了,预算充足的话,最好是买中,高端的显卡。
第四,就是内存了,内存关系电脑的稳定性。当然是要好一点的。买一线品牌的。现在配电脑,主流是DDR667,DDR800DDR1333第五,显示器的选择,推荐液晶。如何选择硬件组装电脑这是一个老生常谈的问题了,这也是一个让高手们显示自己硬件功底的问题,同时这还是一个让很多新手为之焦头烂额的问题。该怎么配?具体配什么?怎样配才能尽量减小瓶颈?本文就将从内到外,从理论到实践,为朋友们抽丝剥茧一一道来。
一、CPU
作为一台电脑最关键的组成部分,CPU确实起着举足轻重的作用,但体现一台电脑的综合速度,并不是仅仅依靠CPU的,常常看到很多新手们在配电脑的时候,把CPU选的很好,但其他的东西诸如内存、主板、硬盘等都选的不太理想,好像这台电脑速度的快慢就体现在CPU速度的快慢上似的。甚至很多著名的品牌机厂商,都推出过类似“P4+256M内存”的这种跛脚配置。其实对于一般的家用电脑而言,一个真正会配的高手,是不会把大量的钱花在CPU上的。家用电脑,毕竟不是做密集型科学计算用的,它讲求的是多种媒体的配合工作,讲求的是能一边下载文件、一边上网浏览网页、一边听音乐、一边还能打开其他的程序,在这种情况下,提升内存的容量比提升CPU的主频对速度的影响要明显的多。现今的中国家庭用户,很多家长对于电脑一窍不通,他们只听说“奔四”代表着速度快,并不知道整机速度的快慢除了CPU以外,还有很多其他的因素影响着它。但在买电脑的时候,最后做决定并掏钱的人,往往都是这些啥都不懂的家长们,于是就出现了上面的一幕:品牌机厂商为了能有更好的销路、兼容机装机店的销售人员为了能拿到更多的奖金,开始违背良心来配置出这种高主频处理器、低容量内存的跛脚电脑。说严重点,这是属于对消费者的不负责任,是一种商业欺诈行为!同样5000元的配置,高手配出来的赛扬,比新手配出来的P4还要快很多,曾经有一家全球著名的硬件网站在2003年的时候刊登过一篇关于配置家用电脑时各硬件占用总预算百分比的文章,文中很明确的提到了CPU的价钱最好不要超过总预算的10%-15%,我们虽然不能说他肯定完全正确,但至少人家是通过很多调查后得出的结论,有借鉴的理由。反观现在的很多所谓的“低价奔四电脑”、“3999元买P4品牌机”之类的广告,我想说的就是:你花了3999元,只买了一块P4的处理器,其他的什么都没有了!
二、内存
对于配置一台电脑来说,内存是重头戏,容量、速度、类型等等每一项指标都对最终的整机综合速度起着至关重要的影响,尤其是内存的带宽和容量。对于内存带宽而言,很多人都认为400MHz、533MHz前端总线的赛扬四或P4,配单通道的DDR内存就足够了,双通道DDR内存是配合800MHz以上前端总线的P4处理器用的,其实这样就大错特错了,哪怕是最老的赛扬四,都需要双通道的DDR内存才能达到它的带宽!也就是说,你如果选择赛扬四1.8G,必须配合865以上的主板和至少双通道DDR200的内存,才能满足它的带宽要求!稍微计算一下就可以得知:赛扬四1.8G的前端总线是400MHz,它的内存带宽理论值是400MHz×64bit÷8=3.2G/s,但当它装在845系列的主板上时,由于845主板的限制,即使你插上能符合它带宽要求的DDR400内存,也只能运行在DDR266上,这时的内存所能提供的带宽是266MHz×64bit÷8=2.1G/s,比3.2G/s要小很多,即使你通过BIOS里的内存调节选项往上调节一档(也只能调节一档而已),让内存运行在DDR333下,所能提供的带宽也仅仅是333MHz×64bit÷8=2.66G/s,离3.2G/s还是有一定的距离,而内存带宽的降低,能非常明显的降低整机的综合速度,运行任何程序都能明显的感觉出来!所以如果想满足赛扬1.8G处理器的内存带宽要求,你必须要为它配置865以上的主板和双通道的内存才行!P4亦是如此。很多人也许会问:那845系列的主板是配什么处理器的呢?我想回答你的就是:845系列的主板是属于“不能用”的主板,因为处理器永远比主板发展的快,当初Intel造出845系列的芯片组是为了能给当时的赛扬和P4提供一个过渡的平台,不至于让它们成为“没有主板配合”的处理器而已,也是为了能在低端市场分一杯羹,而现今865甚至9xx系列的主板横行的时候,845系列的主板确实是属于“不能用”的主板了,满足不了任何一款处理器的内存带宽,造成性能上的严重低下,试问这种主板你会选择么?即使配台2000多元的超低价电脑,也不要去选择845系列的主板,至少需要865以上的和双通道内存才行,因为内存带宽是一个非常影响系统性能的参数,倘若一味的为了省钱而配置845系列的主板,那就得不偿失了。
内存的容量方面,应每个人对电脑的使用方向不同,容量的要求也是不同的,现在配置的家用电脑,笔者建议:如果不打游戏,或者是打打扫雷、纸牌之类的游戏,平时注重于上网浏览或者是聊天、看电影之类的应用的话,内存容量不应该低于1G;如果是偶尔打打单机游戏或者是网络游戏,内存容量应该选择在2G左右,如果是经常打大型的游戏或是进行HDTV视频编辑等应用,那么4G的内存是必不可少的。
三、主板
一台电脑的稳定性和兼容性,一大部分是看主板的,一款优秀的主板不仅需要拥有上等的用料和优良的做工,还需要拥有合理的走线设计,那些没有技术实力的三、四线主板厂家生产的主板,多数是采用公版走线,而且用料非常差,稳定性不堪一击,这种类型的主板,笔者建议宁愿不买电脑也不要配这种主板,否则以后将会是个淘气的祖宗。对于家庭用户,主板方面一定不能省钱,预算够的话最好能买个一线的主板品牌,如果预算实在不足,二线的主板是底线了,不要再往下选择了,毕竟家用电脑是用来使用的,不是用来整天维修的。再谈到主板的用料,笔者常常看到很多新手在配置主板的时候,貌似老鸟似的说某某品牌的主板好,某某品牌的不好,试问你知道它好在哪里么?不好在哪里么?这个就要看主板的用料了,虽然用料好的主板并不能代表一定是高档主板,但最少能代表它的电气性能出色。举一个很简单的例子吧:有A、B两款主板,A主板的处理器供电滤波电容采用的是日系电容,B主板的处理器供电滤波电容采用的是台系电容,那么基本上可以肯定的是:如果在电源输出电压的波动范围比较大的情况下,A主板就比较能耐得住,而B主板就很容易产生电容鼓包、漏夜等情况。不要小看这小小的电容,笔者从一个开维修店的朋友那里得知,来维修主板的人,有80%的都是这几个小电容损坏,究其原因,就是电源选择的不好,导致了输出电压的不稳定,久而久之最终导致这几个小电容爆浆,并且详细叙述了主板的品牌:“一线厂家的×硕牌主板就很少出现这种情况,但同样为一线厂家的×星牌主板,经常遇到!原因就是前者的大部分主板使用的是日系电容,而后者的大部分主板为了省钱,选用的是台系电容!”厂家的广告不能信,宣传也不能信,看到一个产品的广告之后,你所能相信的唯一一点就是:地球上有这么个产品的存在!然后其他的就统统都不能信了!网上有好多所谓的“评测”文章,都是枪手写的,基本上没有任何参考余地,只能作为一篇小说来读,一款主板的真正性能,只有你自己使用了之后才能知道。厂家为了销量、商家为了利润,他们能把最最垃圾的主板宣传为最顶级的产品,笔者曾经就看到过一款四线品牌的主板厂商,在对其主流主板的广告上说“最优秀的设计、最精湛的工艺、最稳定的性能”……结果一看报价:550元/块……其他的话我也不想多说了,只想问问这家厂商:你这么垃圾的主板都用了三个“最”字,那么华硕的同芯片组主板,售价是你三倍的,应该用什么词语来描述了??中国有一句古话:一分钱一分货,说的非常正确!不要认为价格高的主板就是暴利产品,从市场经济学上说,暴利产品是不会被市场所接受的,之所以他能存活到今天,而且售价依然是这么高,肯定有他的理由,他在做工用料方面肯定比其他品牌的要好很多,成本高所以售价高,在此,笔者奉劝大家一句:买主板千万不要凭侥幸心理,认为自己能花很少的钱买到很好的东西,只有错买的没有错卖的,商家永远都比你精明!主板上面还是老老实实的多花点钱来买个一线产品吧,否则以后有你吃苦的时候!
四、硬盘
现在的电脑,硬盘的速度当之无愧的成为了“第一大瓶颈”,无论你是再高的高手,配电脑的时候也无法消除这个瓶颈的存在,我们只有尽量的减小…再减小……。对于家用电脑的硬盘来说,容量和速度是两个非常重要的参数,容量上而言,笔者建议:如果你的电脑只是上网浏览浏览、偶尔打打小游戏的,那么160G的硬盘是个不错的选择;如果你常常下载软件或电影,那么250G的硬盘是个不错的选择,如果你是个下载狂人,那么400G的硬盘比较适合你;如果你有DV或者是经常编辑大型的视频文件,那么400G×2比较适合你,如果你是个玩HDTV的人,那么恭喜你,400G×4也许你都不够用。对于硬盘容量上的选择,你不能考虑现在是否够用,你应该考虑未来的1年里是否够用,大概的公式是:现在需要的容量×3。也就是说,如果你现在感觉80G的硬盘差不多够用了,那么你就需要买个250G的硬盘。如果你现在感觉120G的硬盘够用了,那么就去买个400G的硬盘吧。硬盘另外的一个参数就是速度,受到内部传输率等诸多因素的限制,一块硬盘的实际传输速度是不可能达到它的接口速度的,现在的并口硬盘基本上都是ATA133了,串口硬盘也都是150了,但民用级硬盘的实际传输速度最快的也还没突破66M/s,所以跟内存相比,硬盘的速度是电脑中最大的瓶颈,那么怎么来减小这个瓶颈呢?于是人们就发明了RAID,就是磁盘阵列(当然RAID不是仅仅为了这个而发明的),用两块一模一样的硬盘来组成RAID0,速度理论上能提高1倍,虽然实际上是不可能达到1倍的,但至少能非常非常明显的感觉到了硬盘速度的提升,笔者建议:如果你买的主板是带有RAID功能的,并且你需要保存的数据不是很重要的话,那么强烈建议你在预算允许的情况下购买两块硬盘来组建RAID0,这将使你能亲身体会到飞机与火车的速度差别!但最好是串口的,如果是并口的话,因为并口走的是PCI总线,由于PCI总线上的设备比较多,所以速度不可能达到比较高的地步,但如果是串口的话,那么硬盘的速度提升将更加明显!
五、显示器
显示器方面,笔者想澄清一个观念:曾经听过非常多的人说液晶显示器保护眼睛,因为没有辐射和闪烁……包括很多业内人士都这么认为的,其实错了,液晶显示器比普通的CRT还要伤眼睛!因为伤眼睛不仅仅是辐射和闪烁,还有对比度、亮度等参数,虽然液晶显示器的辐射和闪烁比CRT要小的多,但它那要命的对比度、那要命的色泽度、还有那大于每平方米300cd的亮度,这些都会对眼睛造成很大的伤害,并且你即使将液晶显示器的亮度和对比度调节到最低,也还是非常的刺眼。德国的一家权威机构做过一项调查:液晶显示器用久了会使人的眼睛感觉到疲倦,甚至头痛等症状,而使用相同时间的CRT显示器,却基本没有这些情况出现。现在的通过TCO03认证的CRT显示器,其实外露的辐射已经相当小了,基本上对人已经没有多大的伤害了,闪烁感也可以通过调节刷新率来降低,笔者实在是搞不懂为什么很多人非要去选择液晶显示器,还非要说液晶显示器不伤眼睛??一个最差的17寸液晶显示器的价格,能买一台不错的、通过TCO03标准的19寸CRT了,显示面积也差不多大,而且CRT又比液晶更保护眼睛,液晶显示器唯一的一个优点就是占用空间小而已,其他的统统是缺点,为什么不选择CRT呢??说到TCO03标准,现在很多的号称是通过TCO03认证的显示器,其实都是贴牌的,都没有真正的通过,关于怎样鉴别一台TCO03的显示器,网上已经有很多文章可以搜索到,笔者在此不想过多叙述,只是提醒大家一点:一台真正的通过TCO03认证的显示器,外表的颜色除了白色以外,是不会有其他颜色的了,因为TCO03认证中有重要的一条就是外壳可回收性,而除了白色以外,其他的任何颜色都
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年会员工发言稿28篇
- 感恩节创意方案(19篇)
- 易错点16 阅读理解:词义猜测题(4大陷阱)-备战2025年高考英语考试易错题含解析
- 幼儿家长会讲话稿15篇
- 土壤(第1课时)导学案 高中地理人教版(2019)必修一
- 快递使用规则培训
- 初级会计实务-初级会计《初级会计实务》模拟试卷294
- 初级会计经济法基础-2021年5.15上午初级会计职称考试《经济法基础》真题
- 智研咨询-2024年中国地热能开发利用行业市场规模、行业集中度及发展前景研究报告
- 220k变电所安全运行
- 【超星学习通】马克思主义基本原理(南开大学)尔雅章节测试网课答案
- 工伤赔偿授权委托书范例
- 食堂餐具炊具供货服务方案
- 自然科学基础(小学教育专业)全套教学课件
- 小学语文阅读教学落实学生核心素养方法的研究-中期报告
- 电梯使用转让协议书范文
- 工程变更履历表
- 煤矿岗位标准化作业流程
- 唯物史观课件
- 信息资源管理(马费成-第三版)复习重点
- 邮轮外部市场营销类型
评论
0/150
提交评论