借助AI进行代码审计

(下面示例代码来自于一款开源VPN源代码,非客户源代码)

最近做代码审计,由于代码量较大,对于一些缺陷涉及到较长的代码片段或复杂的代码时,我会借助AI工具进行分析和确认,的确加快了代码审计的速度。例如利用静态分析工具的扫描结果中有下面缺陷:

当鼠标定位到这行代码时,看到target这个结构体变量从堆内存中分配内存且被赋值,但是后面没有使用该结构体变量中的值进行任何操作,

为了确认该缺陷, 首先要定位到target变量在哪里定义的,如果是全局变量,则不能确认存在缺陷,因为可以程序运行期间其它地方进行释放。

通过查看该变量定义可以看到,target是在当前函数的254行声明的,并赋初值为NULL,对于局部变量其生存周期为当前函数,该变量也不是函数返回值。那需要再确认两个点,1是当前函数Vars_ActivePatch_AddData的参数是否为指针类型,且target把指针赋值给函数形参;2是在整个函数中,target是否赋值给其它全局对象。简单扫描了一下整个函数,没有发现上述两点。由于时间关系,那再借助AI工具分析一下这个函数吧。可以看到分析结果:

    通过AI的分析结果第2点来看,target.Nametarget.Data是没有看到地方进行内存释放。ACTIVE_PATCH_ENTRY* e = &ActivePatchList[i];这一句中,ActivePatchList是全局变量,赋值给e,在后面的代码中e赋值给target,但是在for循环之后,在target非空的情况下,反而又申请了堆内存,后面给堆对象分别赋值后又没有使用,这段代码着实没有看懂功能,但是作为代码审计,我们看不到需求功能,所以只能根据逻辑判断是否存在缺陷。上面AI给出的分析结果,帮助我确认了问题。但是AI毕竟也是工具,对于ActivePatchList内存是否问题给出建议和示例代码,因为该变量是全局函数,什么时候使用和释放需要多时间的分析,通过SAST工具本身选中变量的右键功能,找到其声明定义地方。

可以看到是静态全局变量,这种情况我们就不用去报出缺陷了,但是AI还是做了SAST的分析补充。

通过上面内存泄露缺陷的分析可以看到,AI工具与SAST工具结合,可以利用AI提供的分析信息,提升了我们分析效率。

总结一下,使用AI工具辅助进行代码审计的好处。使用人工智能(AI)进行代码审计或静态分析时,相对于传统的静态应用安全测试(SAST)工具,可能具有一些优势:

  1. 上下文感知性: AI能够更好地理解代码上下文,识别代码逻辑关系,从而提高检测的准确性。这有助于降低误报率,减少开发者需要花费在分析和修复虚假报告上的时间。
  2. 自适应性: AI系统可以学习和适应新的攻击模式和漏洞类型,而无需手动更新规则。这使得它们更能够应对不断演变的威胁环境,与SAST工具相比更具灵活性。
  3. 深度学习技术: 使用深度学习技术的AI可以通过训练模型来理解复杂的代码结构和漏洞模式。这种深层次的理解使得AI在检测一些非显而易见的漏洞时表现更为出色。这可能是SAST工具的发展方向。
  4. 自动化程度: AI可以自动化大部分代码审计的过程,从而节省人力资源。与手动审计相比,这有助于加速审计过程,特别是在大型项目中。
  5. 综合性能: 通过整合多个数据源和技术,AI可以提供更全面的安全分析。这包括结合静态分析和动态分析,以及考虑代码的整体上下文,而不仅仅是独立的代码片段。

然而,需要注意的是,AI在代码审计领域的应用仍然在不断发展中,且取决于许多因素,如训练数据的质量和数量,缺陷模型设计等。在实际应用中,通常还是建议将AI技术与传统的SAST工具相结合,以充分发挥它们各自的优势。

(结束)

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 使用 AI 进行炒股需要从以下几个方面进行: 1.数据采集和预处理:使用 AI 进行炒股需要大量的数据支持,包括股票价格、财务数据、新闻和社交媒体等,需要对这些数据进行采集、清洗和预处理,以便后续的分析和建模。 2.特征选择和工程:在进行数据分析和建模之前,需要对数据进行特征选择和工程,以提取其中的有用信息。这涉及到对数据进行统计分析、数据可视化和特征筛选,以及对数据进行转换和缩放等操作。 3.机器学习和深度学习:使用 AI 进行炒股的核心是机器学习和深度学习技术。这些技术可以用来构建预测模型,识别模式和趋势,以及进行风险管理和资产配置等操作。在使用机器学习和深度学习技术之前,需要对数据进行训练和测试,以确保模型的准确性和稳定性。 4.模型评估和优化:在使用 AI 进行炒股时,需要对模型进行评估和优化,以提高其预测能力和适应性。这涉及到对模型进行测试和验证,以及对模型进行参数调整和优化等操作。 5.实时监控和反馈:在使用 AI 进行炒股时,需要对市场进行实时监控和反馈,以及对模型进行更新和调整。这涉及到对数据进行实时采集和分析,以及对模型进行实时调整和更新等操作。 ### 回答2: 借助AI进行炒股需要从以下几个方面进行: 1. 数据获取和处理:AI进行炒股分析时,需要大量的股票市场数据。因此,首先需要从各种数据源获取股票数据,并进行处理和筛选。这包括市场行情数据、财务数据、新闻数据、社交媒体数据等。AI需要能够直接获取这些数据,并进行预处理和清洗,以便后续分析使用。 2. 模型构建和训练:AI在炒股中的关键是构建和训练一个有效的模型,能够分析股市数据并作出预测。需要选择合适的算法和模型,如机器学习算法、神经网络等。通过对市场历史数据进行学习和训练,使模型能够识别并预测不同情况下的股票价格变动。 3. 策略制定和优化:在炒股过程中,AI需要根据模型的预测结果制定交易策略。这包括确定买入和卖出的时机,设置止盈和止损条件等。同时,还需要考虑资金管理和风险控制等因素。AI需要通过不断反馈和优化,提高模型的准确性和稳定性。 4. 实时监测和调整:市场行情时刻都在变化,因此需要实时监测股市数据,并及时调整交易策略。AI需要能够实时获取最新的市场数据,并根据情况作出相应的决策。同时,还需要能够快速响应市场变化,以避免损失或错失投资机会。 总之,借助AI进行炒股需要深入研究和理解股市数据,建立有效的模型和算法,制定合适的交易策略,并保持对市场的实时监测和调整。只有在多个方面进行综合考量和操作,才能在炒股中取得较好的投资收益。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

manok

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值