.center { width: auto; display: table; margin-left: auto; margin-right: auto }
软工10组 谛听选题分析word文档连接
“谛听”—基于深度学习的涉诈网站识别平台
–谛听团队出品
目录
一、项目目标和意义
1.1背景调查:
1.2项目目标:
1.3项目意义:
二、 可行性分析报告
2.1技术分析
2.1.1技术调查与分析
2.1.2技术能力要求和开发路线**
2.2开发人员分析
2.3成本预算分析
2.4社会因素可行性分析
2.5总结
三、 项目开发计划
3.1项目开发软件
3.2时间安排
3.3人员组织与分工
一、项目目标和意义
1.1背景调查:
涉诈网址,是对网络安全的一个共同的严重威胁。涉诈网址存在大量虚假内容(垃圾邮件、网络钓鱼,博彩等)从而诱使毫无戒心的用户成为网络诈骗的受害者,这些网站诱骗受害者输入私人信息,安装恶意软件从而窃取用户的隐私甚至金钱。近年来,电信网络诈骗呈高发趋势,诈骗手法也不断翻新,造成了巨大的财产损失,严重影响了人民群众的正常生活。为应对当前网络安全问题,政府部门坚决贯彻党中央决策部署,持续开展电信网络安全领域治理工作。但是人工的对每一个可能涉诈的网站进行标注会浪费大量的人力物力,现在社会上也急需一套对涉诈网址识别分类的检测系统。
1.2项目目标:
为提高群众的反诈骗的意识,追求最大程度地规避潜在的诈骗风险和财务损失,我们小组决定探索如何使用深度学习实现对大量URL网址数据的多分类任务,并且开发出一个平台,预期该平台应具备但不限于以下几个功能模块:提供网站的识别服务,公示已被标记为涉诈类型的网站的url,允许用户上传url到数据库当中,允许客户发文章或者帖子分享反诈骗经验,科普反诈的视频。
1.3项目意义:
①提高公众警惕:互联网上的诈骗网站越来越多,这些网站可能会诱导用户点击恶意链接,或者要求用户提供个人信息,如信用卡信息、银行账户信息等。建立一个涉诈网站的平台,可以帮助公众识别这些诈骗网站,避免上当受骗。例如,当方面访问到疑似涉诈网站的时候,可以显示警告信息,提醒用户该网站可能存在风险,也可以提供更加详细的解释,说明为什么该网站被认为是诈骗网站。同时用户也可以通过平台学习他人分享的反诈的经验,可以提通过平台的科普文章进一步加强反诈骗意识。
②保护个人信息:诈骗网站往往会收集用户的个人信息,然后出售给第三方,或者用于其他非法活动。建立一个涉诈网站的平台,可以尽量避免用户因为访问这些网站而泄露个人信息。可以在用户尝试访问诈骗网站时,拦截用户的行为,阻止用户进入诈骗网站。
③打击网络犯罪:诈骗网站是网络犯罪的一种形式,对这些网站进行识别,可以为执法部门提供相关线索,帮助他们打击网络犯罪。
④优化搜索引擎:搜索引擎是用户发现网站的主要途径,但是一些诈骗网站会利用搜索引擎的排名规则,将其排在搜索结果的前面。通过涉诈网站的识别,可以帮助搜索引擎挖掘这些诈骗网站,对其加以标记或者屏蔽,从而提高搜索结果的准确性。例如,涉诈网站分类器可以向搜索引擎发送信号,说明该网站可能是诈骗网站,然后搜索引擎可以根据这些信号调整网站的排名。
⑤提升网络安全:诈骗网站往往是网络安全的威胁之一,对这些网站进行识别,可以提高整个网络的安全性。涉诈网站识别器,可以挖掘诈骗网站的恶意链接,然后将这些信息报告给网络安全部门,由他们来处理这些问题,帮助网络安全专家了解最新的网络攻击手段,从而提高整个网络的安全防护能力。
二、 可行性分析报告
2.1技术分析
2.1.1技术调查与分析
国内外学者已经对诈骗网站特征识别进行了广泛深入的研究,主要在三个方面:
表1-国内外研究调查
①视觉相似度分析法: | 2017年:Ankit等人, 提取网站文本特征,特征向量化,利用网站文本相似性进行诈骗网站识别 |
---|---|
2017年:Johnson等人,利用卷积神经网络抽取文本特征,训练模型,完成分类的方法 | |
2018年:刘永明等人,利用图像哈希感知算法进行恶意诈骗网站检测的方法 | |
2014年: 胡向东等人,以PCA-SIFT算法提取图像特征计算待测网站与正常网站间的logo相似度的方法 | |
2020年:Sun等人, 使用遗传算法自动设计CNN架构进行图像分类的方法 | |
②网站信息综合评估法; | 2020年:Sun等人,基于组成成分分析的方法,通过随机森林决策树算法将特定网站的各类公开测评数据进行建模分析 |
③诈骗网站URL特征异常检测技术。 | 黑白名单法(black-list),PhishTank网站,安全可靠的网站列入白名单,诈骗等危险网站列入黑名单 |
Heuristic(启发式方法),black-list方法的拓展,它根据不同的攻击行为设计相应的签名,然后通过扫描网页来检测是否有相应的签名存在,从而判断是否为恶意网址 | |
data-driven的方式,即设计良好的特征+机器学习分类模型来实现对恶意网址的自动分类 |
如上表显示,对涉诈网站的识别已经存在大量的理论研究,有许多可借鉴的方案,但传统机器学习在检测涉诈网址时,由于URL数据的某些属性可能会使训练变得困难。例如,可用于训练的URL数量可以达到数百万(甚至数十亿)量级,传统机器学习模型可能会导致训练时间过长、过拟合、测试集准确率低等问题。随着深度学习在自然语言处理领域的流行,深度学习的模型具备很强的学习能力和泛化能力,数据量越高其准确率越高,同时,深度学习的特征提取并不依靠人工,而是机器自动提取的,这大大减小了数据预处理的难度,深度学习结合GPU加速优化也解决了模型训练速度的问题。因此我们小组决定使用深度学习的方法训练一个可以对网址进行分类的模型。
2.1.2技术能力要求和开发路线
要完成整个项目的开发,需要团队的人员具备如表2所示的技术
表2-项目开发所需技术
能力要求 | 具体要求 |
---|---|
数据收集,数据清洗 | 需要掌握爬虫技术和一定的数据分析的能力 |
模型训练和部署 | 需要了解AI模型的架构,掌握调控AI模型,部署AI模型的能力 |
后端开发与设计 | 需要能使用常见的开发工具,掌握常用的后端开发语言和框架 |
前端开发与ui设计 | 需要具有一定审美能力和页面架构的能力,会使用至少一门前端开发框架 |
接口测试 | 需要具备测试接口的能力 |
分类模型的训练和平台的开发不是严格的前后关系,两者可以同时进行,因此需要分成主要两大部分的人去开发,一部分负责平台的开发,一部分负责模型的训练,这要有利于加快项目整体的开发进度具体的项目开发流程如图1所示
图1-项目开发流程 |
2.2开发人员分析
由于团队的上限人数是10人,要想完成一个完整的项目,需要对人员进行合理的分配
根据上述的分析,可知项目要求的技术能力颇多。根据初步的调查,我们团队内部具备调控AI模型能力2人,具备数据采取和特征抽取能力4人,具备后端开发能力2人,具备前端开发能力3人,具备接口测试能力1人,满足开发项目的基本能力要求。其中难度较大的在于AI模型的迭代过程,这是项目的核心功能,其次,我们团队在接口测试方面的人员比较欠缺。
2.3成本预算分析
①设备要求:由于是软件项目的开发,需要成员应有具备能开发对应功能的设备(笔记本或者台式电脑)。另外开发过程涉及到了AI模型,因此要求运行环境必须具备有一定显存的显卡。在没有显卡的情况下,需要租借远程服务器。考虑到模型的大小并不会使用太多的显存空间,因此我们可以先尝试在本地环境下运行,如若不行,则租借一个小型服务器,满足模型显存要求即可,预算在可控范围内。
②软件维护要求:需要能存储大量数据的的设备,方便服务器随时调用数据库
③开发周期要求:要求开发周期不宜过长,其中平台的开发并不受AI模型开发的影响,因此可以尽早完成,AI模型的训练则需要数次周期的迭代才能比较好的效果,当然,我们也可以先部署一个效果不错的模型到平台上,以便平台能正常使用和上架,后续再继续优化。
2.4社会因素可行性分析
①侵权因素分析:对于获取到的数据集存在不得私自商用的可能,这一方面可想数据集提供方申请使用权限达成协议。另一方面,可能会对一部分正常网站公示为涉诈网站,侵害网站运营商的声誉,这一方面我们可以在公示网站时,对其进行审查,确认为涉诈网站后再进行公示。
②用户可行性:普通用户可以使用平台的分类,同时可以在平台上传数据,也可以在平台分享经验,学习反诈知识。也可购买涉诈网站分类的服务,部署到对应的服务器。
2.5总结
根据以上的分析,可以着手对项目进行组织开发,但整个项目的完成还需要团队成员先学习好相关的技术,成员之间还需要进一步的磨合
三、 项目开发计划
3.1项目开发软件
各个模块使用的语言的框架如表3所示
表3-项目开发语言和平台
模块名称 | 语言、框架(软件) |
---|---|
数据采集和特征抽取 | Python,Pycharm(平台) |
AI模型训练和部署 | Python,Pytorch(框架),Jupyter(平台),Pycharm(平台) |
后端开发 |
Golang,Gorm(框架),Goland(平台) Vs code(平台) |
前端开发 | Dart,Flutter(框架),Vs code(平台) |
ui设计 | Dart,Flutter(框架)、Adobe Photoshop、Adobe Illustrator |
选用理由
①Pytorch具备以下优势
· Pytorch灵活性高:PyTorch 提供了动态图的特性,使得构建模型更加灵活,可以随意更改 模型结构,比较适合研究型的工作。
· Pytorch易于调试:PyTorch 的调试工具比较全面,支持快速地定位问题。
· Pytorch的社区活跃:PyTorch 的社区非常活跃,用户可以得到比较及时和准确的帮助。
· Pytorch易于迁移:PyTorch 支持在 CPU 和 GPU 上进行训练和预测,可以轻松地迁移到不同的平台上。
②Flutter具备以下优势
· 跨平台支持:Flutter 可以让开发者使用单一代码库构建 iOS、Android 和 Web 应用程序,从而减少开发成本和时间。Flutter 还可以编译为 Windows、macOS 和 Linux 应用程序,以及嵌入式设备应用程序。
· 响应式编程模型:Flutter 支持响应式编程模型,可以在用户交互时动态更新 UI,从而提供更好的用户体验。开发者可以使用框架提供的丰富的 UI 组件构建应用程序,并且可以定制这些组件以适应特定的需求。
· 热重载功能:Flutter 提供了热重载功能,可以快速重新加载应用程序并立即看到修改后的效果,从而加快开发效率。
· 高性能:Flutter 自带的渲染引擎和框架优化可以提供高性能的应用程序,同时也支持原生代码集成,可以实现更高的性能和更好的用户体验。
· 丰富的第三方库和工具:Flutter 生态系统非常丰富,提供了大量的第三方库和工具,可以帮助开发者更快速地开发应用程序
③Golang和Gorm分别具备以下优势
· 使用Golang的原因在于它拥有丰富的标准库,涵盖了网络编程、文件操作、数据序列化等众多常用功能,开发者可以很方便地调用这些库,提高开发效率。同时,得益于它高效的编译和执行速度,Golang尤其适合开发高性能的应用,它的简单易学、高并发性能、高效的内存管理、丰富的标准库等等优势,让我们最终选择Golang作为后端语言
· 使用Gorm框架的原因在于它简单易用、支持多种数据库、自动映射、数据库迁移、强大的查询功能、事务支持以及插件扩展等优点,同时它也是目前Golang语言中使用ORM进行数据库操作的首选框架之一
④UI设计基于Dart和Flutter的优势有:
· Dart和Flutter提供了丰富的UI组件和开发工具,可以快速构建精美的用户界面,Flutter的热重载功能可以实时预览和调试UI效果,加快开发迭代速度;
· Dart和Flutter支持同时在iOS和Android平台上开发应用程序,可以实现高度一致的用户体验,只需编写一次代码,即可在多个平台上运行,降低开发成本和维护复杂性;
· Flutter提供了强大的UI定制能力,可以通过自定义绘制和动画效果来实现独特的用户界面,Flutter的渲染引擎可以直接绘制UI,而不依赖于操作系统的原生控件,提供了更大的自由度;
· Dart语言的即时编译器和Flutter的渲染引擎可以实现高性能的应用程序,Flutter使用Skia图形库进行渲染,可以实现流畅的动画效果和响应式用户界面;
· Flutter采用了响应式布局的思想,可以根据不同的屏幕尺寸和方向自动调整布局,开发者
可以使用丰富的布局组件和弹性盒子模型来实现灵活的界面布局。
3.2时间安排
图2-项目开发时间安排 |
3.3人员组织与分工
根据各个模块的难度,我们对不同模块开发的人员分配如表4所示
表4-人员分配
模块名称 | 配备人员数 |
---|---|
数据采集和特征提取 | 4人 |
AI模型训练和部署 | 3人 |
后端开发 | 3人 |
UI设计和前端开发 | 4人 |
项目经理 | 1人 |
具体的每个流程的安排如表5所示
表5-具体人员安排
开发流程 | 配备人员数 |
---|---|
数据采集 | 1人 |
特征提取 | 2人 |
UI设计 | 2人 |
前端开发 | 3人 |
后端设计 | 2人 |
后端开发 | 3人 |
模型训练与部署 | 2人 |
测试 | 2人 |
由于人手紧缺,所以前后端与模型训练分成三拨人,可以同时进行开发,最后进行融合和接口测试