速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

如何使用 Amazon Q 免费进行代码安全检查

  • 2023-08-24
    北京
  • 本文字数:1414 字

    阅读完需:约 5 分钟

如何使用 Amazon Q 免费进行代码安全检查

活动推荐: #生成式 AI 先锋开发者集结令 #

免费体验编程神器,丰厚大奖等你来拿!👉🏻👉🏻https://jinshuju.net/f/rVuKYa


CodeWhisperer 是 Amazon 发布的一款免费的 AI 编程辅助小工具,在辅助程序员编程的同时,还具备代码安全审计的功能。可以快速扫描 Java、JavaScript 和 Python 项目中难以发现的漏洞,并获取代码建议以立即修复这些漏洞。遵循跟踪安全漏洞的最佳实践,例如开放全球应用程序安全项目 (OWASP) 概述的漏洞,或者不符合加密库最佳实践及其他类似安全最佳实践的漏洞。今天小试牛刀,试验一下 CodeWhisperer 的代码安全检查能力,成功识别出 Python 代码中可能存在的系统命令注入漏洞、SQL 注入漏洞、MD5 碰撞漏洞以及反序列化漏洞,666 ~

系统命令注入漏洞


以下是一段有安全漏洞的 Python 代码:

import os
filename = input("请输入文件名:")os.system("rm " + filename)
复制代码


这段代码的作用是删除用户输入的文件名对应的文件,但存在安全漏洞。其中的漏洞是,用户可以通过输入特殊字符来执行任意系统命令,而不仅仅是删除文件。例如,如果用户输入的是 ;ls,则会先删除指定文件,然后执行 ls 命令。这可能导致系统被攻击者接管或者数据被窃取,因此这段代码需要进行安全性改进。



Amazon CodeWhisperer 成功检测出:系统命令注入漏洞。


SQL 注入漏洞


以下是一个有安全漏洞的 Python 代码:


import sqlite3
conn = sqlite3.connect('example.db')c = conn.cursor()
c.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)''')
date = input("请输入日期:")trans = input("请输入交易类型:")symbol = input("请输入股票代码:")qty = input("请输入数量:")price = input("请输入价格:")
c.execute(f"INSERT INTO stocks VALUES ('{date}', '{trans}', '{symbol}', {qty}, {price})")
conn.commit()conn.close()
复制代码


这段代码的作用是向 SQLite 数据库中插入一条记录,但存在安全漏洞。其中的漏洞是,用户输入的数据没有进行任何过滤或转义,从而可能导致 SQL 注入攻击。例如,如果用户输入的 symbol 参数是 ABC'); DROP TABLE stocks; --,则会删除 stocks 表。这可能导致数据丢失或系统崩溃,因此这段代码需要进行安全性改进。



Amazon CodeWhisperer 成功检测出:SQL 注入漏洞。

MD5 碰撞漏洞


以下是一个有安全漏洞的 Python 代码:


import hashlib
password = input("请输入密码:")
hash = hashlib.md5(password.encode('utf-8')).hexdigest()
print(f"您的密码的 MD5 值为:{hash}")
复制代码


这段代码的作用是计算用户输入的密码的 MD5 值,并输出结果。但存在安全漏洞。其中的漏洞是,MD5 算法已经被证明不再安全,可以被暴力破解或碰撞攻击。因此,如果攻击者获得了用户的 MD5 值,就可以使用彩虹表等方法轻松地破解密码。这可能导致用户账户被攻击者接管或者数据被窃取,因此这段代码需要进行安全性改进。



Amazon CodeWhisperer 成功检测出:MD5 碰撞漏洞

反序列化漏洞


以下是一个有安全漏洞的 Python 代码:


import pickle
serialized_data = input("请输入序列化数据:")data = pickle.loads(serialized_data)# 使用反序列化后的数据...
复制代码


这段代码的作用是对输入序列化数据,进行反序列化。但存在安全漏洞,其中的漏洞是没有对输入进行验证和过滤,直接进行反序列化操作可能导致恶意对象的执行,从而导致远程代码执行或数据泄露。



Amazon CodeWhisperer 成功检测出:反序列化漏洞。


2023-08-24 10:395163

评论

发布
暂无评论
发现更多内容

Fuzzing(模糊测试)的前世今生(上)

云起无垠

如何远程Debug内网(或者防火墙后)的Java服务

石臻臻的杂货铺

Java debug 后端

Proxyless Mesh 在 Dubbo 中的实践

阿里巴巴中间件

阿里云 云原生 dubbo

技术分享 | 将覆盖反馈融入黑盒模糊测试技术提升测试效率

云起无垠

焱融全闪系列科普| 为什么 SSD 需要 NVMe?

焱融科技

云计算 高性能 nvme 文件存储 全闪存储

面对当下最热的多模态,为什么这些业界和学界专家说“不必追热点”

小红书技术REDtech

AngularJS进阶(十一)AngularJS实现表格数据的编辑,更新和删除

No Silver Bullet

表格 AngularJS 12月月更

如何快速构建研发效能度量的指标体系?

Kyligence

数据分析 指标

升维数智化底座 迈向高质量发展

用友BIP

实时渲染正在改变可视化游戏

3DCAT实时渲染

云计算 云服务器 云算力 渲染引擎 渲染

观测云产品更新|应用性能新增服务清单功能;用户访问监测 Session 查看器调整;事件新增移动端跳转选项等

观测云

可观测性 观测云

AngularJS进阶(十)AngularJS改变元素显示状态

No Silver Bullet

AngularJS 12月月更 元素状态

排查Linux恶意进程

灵霄

云原生中的标准化

穿过生命散发芬芳

云原生 12月月更

守护安全|AIRIOT城市天然气综合管理解决方案

AIRIOT

物联网 天然气

建筑中如何使用3D可视化?

3DCAT实时渲染

云计算 3D可视化 智慧建筑 BIM

数字化改变了什么?WeLink在实践中给出答案

路过的憨憨

AngularJS进阶(十三)JS利用正则表达式校验手机号

No Silver Bullet

正则表达式 AngularJS 12月月更

2022-12-02:有a块草莓蛋糕,有b块芝士蛋糕,两人轮流拿蛋糕, 每次不管是谁只能选择在草莓蛋糕和芝士蛋糕中拿一种, 拿的数量在1~m之间随意, 谁先拿完最后的蛋糕谁赢。 返回先手赢还是后手赢。

福大大架构师每日一题

算法 rust 福大大

【愚公系列】2022年12月 微信小程序-Component组件

愚公搬代码

12月月更

子查询优化之 Semi-join 优化 | StoneDB 研发分享 #2

StoneDB

MySQL HTAP 数据库· StoneDB 12 月 PK 榜

Fuzzing(模糊测试)技术,你真的了解吗?

云起无垠

直播 | 数据仓库?数据湖?停止纠结,流批融合的极速 Lakehouse来了!

StarRocks

#数据库

如何借助低代码开发平台 YonBuilder 填补应用开发 “产能缺口”?

YonBuilder低代码开发平台

开发者 低代码

Fuzzing(模糊测试)的前世今生(中)

云起无垠

Fuzzing(模糊测试)的前世今生(下)

云起无垠

网络安全 漏洞挖掘 Fuzzing 模糊测试

ElasticSearch 低成本高可用最佳实践

冰心的小屋

elasticsearch 高可用性

如何选择正确的哈希算法?

Jackpop

华为云数据库GaussDB(for Influx)揭秘:数据分级存储

路过的憨憨

让对外合作更高效,就用WeLink跨企业沟通

路过的憨憨

HIFIVE音加加 × 火山引擎:正版曲库+智能视频创作SDK,短视频全链路需求一站式解决!

HIFIVE音加加

短视频 火山引擎 HIFIVE音加加 视频配乐 版权音乐

如何使用 Amazon Q 免费进行代码安全检查_亚马逊云科技_顾涛_InfoQ精选文章