写点什么

如何使用 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:395174

评论

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

Flutter 动画【Flutter专题16】

坚果

flutter 28天写作 签约计划第二季 12月日更

react源码解析18事件系统

buchila11

React React Hooks

Git进阶(十一):Git 常用操作汇总

No Silver Bullet

git 12月日更

从微服务架构的现状和未来看学习路径

博文视点Broadview

对话中国人寿:DevOps实践经验分享

龙智—DevSecOps解决方案

DevOps 中国人寿

模块一学习总结

whoami

「架构实战营」

Prometheus Exporter (十八)Graphite Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 Graphite

团队基建系列 - 组织知识传承 1

搬砖的周狮傅

团队成长

Prometheus Exporter (十九)Collectd Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 Collectd

【HarmonyOS 专题】01 基础 Mac 环境安装配置

阿策小和尚

HarmonyOS 28天写作 Android 小菜鸟 12月日更

学python,怎么能不学习scrapy呢,这篇博客带你学会它

梦想橡皮擦

12月日更

【量化】资产组合理论:鸡蛋不能放在一个篮子里

恒生LIGHT云社区

量化投资 量化

拖延

Nydia

Flutter开发:TextField常用属性的使用

三掌柜

28天写作 12月日更

react源码解析17.context

buchila11

React React Hooks

【LeetCode】截断句子Java题解

Albert

算法 LeetCode 12月日更

喜报 | 旺链科技获批张江国家自主创新示范区专项发展资金!

旺链科技

区块链 数字经济 产业区块链

Go语言学习查缺补漏ing Day4

恒生LIGHT云社区

编程语言 Go 语言

全网最全-混合精度训练原理

科技热闻

12 张图 | 深入理解 Eureka三层缓存架构

悟空聊架构

缓存 Eureka 28天写作 悟空聊架构 12月日更

使用javap深入理解Java整型常量和整型变量的区别

汪子熙

Java jdk 28天写作 12月日更 javap

使用 javap 分析 Java 的字符串操作

汪子熙

Java jdk 28天写作 12月日更 javac

网络协议之:基于UDP的高速数据传输协议UDT

程序那些事

TCP 网络协议 udp 程序那些事 12月日更

有了六顶思考帽,从此告别无效争吵

Ian哥

项目管理 28天写作 项目管理工具 六顶思考帽

MySQL 连接数过多的处理方法合集 - ERROR 1040 Too many connections - 卡拉云

蒋川

MySQL MySQL 数据库

聊聊 Kafka: 在 Linux 环境上搭建 Kafka

老周聊架构

签约计划第二季 2月月更

模块1作业

miliving

大厂算法面试之leetcode精讲24.其他类型题

全栈潇晨

算法 LeetCode

说说节奏感

Justin

方法论 28天写作

大厂算法面试之leetcode精讲23.并查集

全栈潇晨

算法 LeetCode

Linux云计算架构师:Linux全套实战学习资料

侠盗安全

Linux linux运维 运维工程师 云计算架构师 linux电子书

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