ICSE 2024 PaperList1

news/2024/5/20 5:58:15

1. 勒索软件攻击造成的数据破坏的实证研究

An Empirical Study of Data Disruption by Ransomware Attacks

近年来,勒索软件对软件生态系统的威胁日益令人担忧,这就提出了对大规模、全面的勒索软件分析的需求,以帮助针对未知攻击制定更有效的对策。在本文中,我们首先收集了一个由 7,796 个活跃勒索软件样本组成的真实数据集,并分析了它们破坏受害者系统数据的行为。所有样本均在隔离的测试床中执行,收集API调用、I/O访问、网络流量等六类运行时行为的全视角,总日志量高达1.98 TiB。通过评估收集到的行为,我们在勒索软件的数据侦察、数据篡改和数据泄露阶段提出了六个关键发现。根据我们的发现,我们提出了三种相应的缓解策略来在每个阶段检测勒索软件。实验结果表明,它们可以增强最先进的反勒索软件工具的能力。我们报告的初步结果是检测率提高了 41%-69%,并且没有额外的误报,这表明我们的见解是有用的。

2. 深度学习还是经典机器学习?基于日志的异常检测的实证研究

Deep Learning or Classical Machine Learning? An Empirical Study on Log-Based Anomaly Detection

虽然深度学习 (DL) 已成为一种强大的技术,但必须仔细考虑其优势与计算成本的关系。具体来说,虽然深度学习方法在日志异常检测方面取得了很强的性能,但它们通常需要延长日志预处理和模型训练的时间,这阻碍了它们在需要快速构建和推理日志异常检测的分布式云系统中的采用。

本文研究了深度学习方法与日志异常检测中更简单的技术相比的优越性。我们在五个公共日志异常检测数据集(例如 HDFS)上评估基本算法(例如 KNN、SLFN)和深度学习方法(例如 CNN、NeuralLog)。我们的研究结果表明,简单的算法在时间效率和准确性方面都优于深度学习方法。例如,在 Thunderbird 数据集上,K 最近邻算法的训练速度比 NeuralLog 快 1,000 倍,同时 F1 分数提高了 0.0625。我们还确定了导致这种现象的三个因素,它们是:(1)冗余日志预处理策略,(2)数据集简单性,以及(3)日志异常检测中二元分类的性质。为了评估 DL 的必要性,我们提出了 LightAD,这是一种优化训练时间、推理时间和性能得分的架构。通过自动超参数调整,LightAD 可以在日志异常检测模型之间进行公平比较,使工程师能够评估复杂深度学习方法的适用性。

我们的研究结果对日志异常检测社区来说是一个警示,强调在采用深度学习方法之前需要批判性地分析数据集和研究任务。提出计算成本高昂的模型的研究人员应该将他们的工作与轻量级算法进行基准测试,以确保进行全面的评估。

3. 新颖性带来流行,但限制了参与——Python开源生态系统的宏观视角 

Novelty Begets Popularity, But Curbs Participation - A Macroscopic View of the Python Open-Source Ecosystem

卡内基梅隆大学

谁创建了最具创新性的开源软件项目?这些项目的命运又会如何呢?基于理解商业和其他领域创新的悠久研究历史,以及从科学领域科学建模创新的最新进展,在本文中,我们采用创新的类比,即从新颖的重组中产生的创新现有的知识点。因此,我们认为以新颖的方式重新组合现有软件库的软件项目是创新的,即那些构建在从导入语句中提取的非典型包组合之上的软件项目。然后,我们报告了对 Python 开源软件生态系统创新的大规模定量研究。我们的结果表明,较高水平的创新性在统计上与较高的 GitHub star 和 PyPI 包注册表下载计数相关,即新颖性会引起流行。与此同时,我们发现更具创新性的项目往往涉及较小的贡献者团队,并且从长远来看被放弃的风险更高。我们的结论是,创新和开源可持续性密切相关,但在某种程度上是对立的。

4. ModuleGuard:理解和检测 Python 生态系统中的模块冲突

ModuleGuard: Understanding and Detecting Module Conflicts in Python Ecosystem

由于其简单性、可读性和多功能性,Python 已成为最流行的软件开发编程语言之一。随着 Python 生态系统的发展,开发人员在避免模块冲突方面面临着越来越多的挑战,当不同的包具有相同的命名空间模块时就会发生这种情况。不幸的是,现有的工作既没有全面研究模块冲突,也没有提供检测冲突的工具。因此,本文系统地研究了模块冲突问题及其对Python生态系统的影响。我们提出了一种名为 InstSimulator 的新技术,它利用语义和安装模拟来实现准确高效的模块提取。基于此,我们实现了一个名为 ModuleGuard 的工具来检测 Python 生态系统的模块冲突。

在本研究中,我们首先在 GitHub 上收集了 97 个 MC 问题,对这些 MC 问题的特征和原因进行了分类,总结了三种不同的冲突模式,并分析了它们的潜在威胁。然后我们对整个 PyPI 生态系统(420 万个包)和 GitHub 热门项目(3,711 个项目)进行大规模分析,以检测每个 MC 模式并分析其潜在影响。我们发现模块冲突仍然影响 PyPI 中的众多开源软件包。我们的工作揭示了Python在处理命名冲突方面的缺点,并为开发人员检测冲突提供了工具和指南。

5. 挖掘拉取请求以检测开源软件开发中的流程异常

Mining Pull Requests to Detect Process Anomalies in Open Source Software Development

值得信赖的开源软件 (OSS) 开发流程是确保软件项目和产品长期可信的基础。为了调查 Pull Request (PR) 流程(OSS 社区协作开发的常见模型)的可信度,我们利用流程挖掘来识别和分析 PR 流程的正常和异常模式,并提出识别异常的方法从控制流和语义两个方面,然后分析和综合已识别异常的根本原因。我们分析了 GitHub 上 18 个 OSS 项目的 17531 个 PR,提取了 26 个控制流异常的根本原因和 19 个语义异常的根本原因。我们发现大多数 PR 很难同时包含语义异常和控制流异常,项目内部的自定义规则可能是导致异常 PR 的关键原因。我们进一步发现并分析正常公关流程的模式。我们发现,非分叉模型中的 PR(42%)比分叉模型中的 PR(5%)更有可能绕过审核流程,这表明潜在风险更高。此外,我们还分析了9个中毒项目,其公关做法确实较差。鉴于OSS社区中复杂多样的PR流程,所提出的方法不仅可以帮助识别和理解异常PR,还可以帮助识别和理解正常PR,从而为OSS供应链提供可疑事件(例如中毒)的早期风险指示。

6. Docker 气味对镜像大小影响的实证研究

Empirical Study of the Docker Smells Impact on the Image Size

Docker 是一种广泛采用的打包和部署应用程序的工具,它利用 Dockerfile 来构建映像。然而,创建最佳的 Dockerfile 可能具有挑战性,通常会导致“Docker 异味”或偏离最佳实践。本文研究了 14 种 Docker 气味对 Docker 镜像大小的影响。为了评估 Docker 气味的大小影响,我们从 11 313 个开源 Docker 文件中识别并修复了 16 145 个 Docker 气味。我们观察到,气味导致每个有气味的图像平均增加 48,06 MB (4,6 %)。根据气味类型,尺寸增加最多可达 10%,对于某些特定情况,气味可以代表图像尺寸的 89%。有趣的是,最有影响力的气味与常见的包管理器有关,并且相对容易修复。为了收集开发人员对 Docker 异味大小影响的看法,我们提交了 34 个修复异味的拉取请求,并向开发人员报告了它们对 Docker 镜像的影响。 26/34 (76.5%) 的拉取请求已合并,有助于节省 3.46 GB (16.4%)。即使拉取请求被拒绝,开发人员的评论也表明了他们对解决这些 Docker 异味的积极兴趣。

7. 通过静态分析生成REST API规范

Generating REST API Specifications through Static Analysis

Web 应用程序编程接口 (API) 允许通过网络访问服务。 RESTful(或 REST)API 使用 REpresentation State Transfer (REST) 协议,是一种流行的 Web API 类型。为了使用或测试 REST API,开发人员使用 OpenAPI 等标准编写的规范。然而,创建和维护这些规范既耗时又容易出错,尤其是随着软件的发展,会导致规范不完整或不一致,从而对 API 的使用和测试产生负面影响。为了解决这个问题,我们提出了 Respector(REST API 规范生成器),这是第一种采用静态和符号程序分析从源代码生成 REST API 规范的技术。我们在 15 个真实世界的 API 上评估了 Respector,在推断端点方法、端点参数、方法响应和参数属性(包括导致成功 HTTP 响应或错误的约束)方面的精度和召回率方面取得了可喜的结果。此外,这些结果可以通过额外的工程进一步改进。将 Respector 生成的规范与开发人员提供的规范进行比较表明,Respector 能够识别许多缺失的端点方法、参数、约束和响应,以及开发人员提供的规范和 API 实现之间的一些不一致之处。最后,Respector 优于多种从 API 实现中的注释或通过调用 API 推断规范的技术。


http://www.mrgr.cn/p/43052776

相关文章

识货小程序逆向

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872,x30184483x…

UE5材质基础(2)——数学节点篇

UE5材质基础(2)——数学节点篇1 目录 UE5材质基础(2)——数学节点篇1 Add节点 Append节点 Abs节点 Subtract节点 Multiply节点 Divide节点 Clamp节点 Time节点 Lerp节点 Add节点 快捷键:A鼠标左键 值相加…

Hive SQL Join连接操作用法详解

Hive SQL Join连接操作 1.Hive join语法规则 基本语法: SELECT column_list FROM table1 JOIN table2 ON table1.column_name table2.column_name;JOIN类型: 在JOIN语句中,你可以使用不同类型的JOIN操作,包括INNER JOIN、LEFT O…

恋爱中的Java多线程:从单身到共舞的浪漫指南(一)

引言:孤独的线程,寂寞的码农 开篇小剧场: ​ 深夜,孤独的程序猿凯叔接到新任务:优化程序性能,探索多线程。这一任务成了他跳出孤独、寻求生活并行美好的契机。从简单的Thread类到复杂的线程池管理&#xff…

【汇总】虚拟机网络不通(Xshell无法连接虚拟机)排查方法

搜索关键字关键字关键字:虚拟机虚拟机虚拟机连接失败、虚拟机无法连接、Xshell连接失败、ping baidu.com失败、静态IP设置 Kali、CentOS、远程连接 描述:物理机无法连接虚拟机;虚拟机无法访问百度,虚拟机无法访问baidu.com 虚拟机…

C# WCF服务(由于内部错误,服务器无法处理该请求。)

由于内部错误&#xff0c;服务器无法处理该请求。有关该错误的详细信息&#xff0c;请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribute 或从 <serviceDebug> 配置行为)以便将异常信息发送回客户端&#xff0c;或打开对每个 Microsoft .NET …

为 Flutter 应用设置主题:ThemeData 和 ColorScheme 指南

在媒体和其他来源中有许多关于这个主题的文章&#xff0c;那么这篇文章的必要性是什么&#xff1f; 在本文中&#xff0c;我计划仅关注 ThemeData 小部件的关键点以及我的开发经验中最常用的参数&#xff0c;并且您将获得有关每个参数如何对您的应用程序执行操作的简要说明。 …

Linux:进程信号

生活角度的信号 a.信号在生活中&#xff0c;随时可以产生(信号的产生和我是异步的) b.你能认识这个信号 c.我们知道信号产生了&#xff0c;我能识别这个信号&#xff0c;信号该怎么处理 d.我们可能正在做着更重要的事情&#xff0c;把到来的信号暂不处理(1.我记得这个事 2.…

分布式 ID 的实现方案——Java全栈知识(13)

分布式 ID 的实现方案 当我们分表的情况下&#xff0c;如何实现全局唯一 ID 也是一个问题&#xff0c;数据库的唯一索引在 分布式 ID 也就是全局唯一 ID 生产方案需要满足以下几个条件&#xff1a; 高可用高性能安全性自增性唯一性 1、UUID UUID&#xff08;Universally Un…

cobalt strike安装教程

将本地IP和密码填入:./teamserver 192.168.xx.xx 密码 启动成功

初识C语言——第十五天

初识结构体1 //结构体可以让C语言创建新的类型出来 //创建一个学生struct Stu {char name[20];int age;double score;}; //创建一个书的类型 struct Book {char name[20];float price;char id[30]; };//int main() //{ // struct Stu s { "张三",20,85.5 };//结…

You don’t have permission.

The document “XXX” could not be saved. You don’t have permission. 1.查看修改了iOS系统库导致的, 根据提示, 进入到"XXX"文件中, 然后commandz回退/取消 2. Xcode 调试遇到的报错&#xff08;持续更新&#xff09;

WDS+MDT网络启动自动部署windows(十七)MDT中文变量,描述,组织单位OU

简介 这简直就是歧视,在MDT使用变量时,数据库设置时,居然不能用中文。 计算机描述,我将在数据库中设置为使用人,主要是其他地方也不方便看。 描述是存在注册表中的,未来自动化也将会使用使用人这个字段,用来注册OCS这样,有标签,使用人字段的软件。 方向 解决MDT/BDD无…

蓝桥杯练习系统(算法训练)ALGO-950 逆序数奇偶

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 老虎moreD是一个勤于思考的青年&#xff0c;线性代数行列式时&#xff0c;其定义中提到了逆序数这一概念。不过众所周知我们…

【Linux】17. 进程间通信 --- 管道

1. 什么是进程间通信(进程间通信的目的) 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;多个进程之间共享同样的资源。 通知事件&#xff1a;一个进程需要向另一个或一组进程发送消息&#xff0c;通知它&#xff08;它们&#xff09;发生了…

刷题训练之模拟

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练掌握模拟算法。 > 毒鸡汤&#xff1a;学习&#xff0c;学习&#xff0c;再学习 ! 学&#xff0c;然后知不足。 > 专栏选自&#xff1a;刷题训…

Ansible——playbook编写

一、简介 1.什么是playbook Ansible Playbook 是设定自动化任务的一种蓝图&#xff0c;可在无需人工干预或有限干预的前提下执行复杂的 IT 操作。Ansible Playbook 对一组或一类共同构成 Ansible 清单的主机执行。 Ansible Playbook 本质上是一些框架&#xff0c;是一些预先编…

pytest教程-41-钩子函数-pytest_runtest_teardown

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest_runtest_call钩子函数的使用方法&#xff0c;本小节我们讲解一下pytest_runtest_teardown钩子函数的使用方法。 pytest_runtest_teardown 钩子函数在每个测试用例执行完成后被调用&…

商务分析方法与工具(五):Python的趣味快捷-文件和文件夹操作自动化

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

Web前端三大主流框架是什么?

Web前端开发领域的三大主流框架分别是Angular、React和Vue.js。它们在Web开发领域中占据着重要的地位&#xff0c;各自拥有独特的特点和优势。 Angular Angular是一个由Google开发的前端框架&#xff0c;最初版本称为AngularJS&#xff0c;后来升级为Angular。它是一个完整的…