《HarmonyOS:领航者说》技术公开课来啦,大咖分享、实战解码,不容错过 了解详情
写点什么

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

评论

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

资源集合

贾献华

7月月更

Discourse 自定义头部链接(Custom Header Links)

HoneyMoose

区块链的诞生是为了解决——“去中心化的协同”这个问题

CECBC

新型LaaS协议Elephant Swap给ePLATO提供可持续溢价空间

股市老人

元宇宙改变人类工作模式的四种方式

CECBC

EA中的业务对象和业务实体你分得清吗?

涛哥 数字产品和业务架构

企业架构 TOGAF Archimate

《SpringBoot 手册》:国际化组件 MessageSource

看山

springboot MessageSource

SpringBoot实现异步任务Async及异步任务实现发送邮件

宁在春

springboot 异步 7月月更 邮件发送

你必须知道的一些JVM技术点

Java学术趴

7月月更

鸿湖万联扬帆富设备开发板正式合入OpenHarmony主干

科技汇

备战金九银十!2022面试必刷大厂架构面试真题汇总+阿里七面面经+架构师简历模板分享

Java永远的神

Java 程序员 面试 程序人生 简历模板

历时两月,终拿字节跳动offer,算法面试题分享「带答案」

程序知音

Java 字节跳动 算法 程序员面试 八股文

Bootstrap 模态框Modal【前端Bootstrap框架】

恒山其若陋兮

7月月更

Prometheus 启动时被禁止的功能特性

耳东@Erdong

Prometheus Feature 7月月更

C# 之 $ – 字符串内插

陈言必行

7月月更

新一代开源免费的终端工具,太酷了

程序知音

Microsoft SQL服务器被黑客入侵 带宽被窃取

郑州埃文科技

microsoft 数据安全 代理IP

桌面软件开发框架大赏

声网

软件开发

什么是数字货币、数字金融 和区块链?

CECBC

北京突然宣布,元宇宙重大消息

CECBC

关于JVM的内存模型

Java学术趴

7月月更

区块链,得这样练

CECBC

面试官:Redis中的布隆过滤器与布谷鸟过滤器,你了解多少?

Java全栈架构师

Java redis 程序员 面试 后端

横向对比5种常用的注册中心,无论是用于面试还是技术选型,都非常有帮助

程序员小毕

Java 程序员 面试 微服务 后端

干货来袭!2022阿里巴巴全新出品Spring全家桶全栈笔记(终极版)奉上

程序员小毕

Java spring 程序员 面试 微服务

elasticsearch实战三部曲之二:文档操作

程序员欣宸

Java Elastic Search 7月月更

分布式限流 redission RRateLimiter 的使用及原理

王小凡

Java redis 分布式 SpringCloud 框架

基于MySQL数据库,Redis缓存,MQ消息中间件,ES搜索引擎的高可用方案解析

Java永远的神

Java 数据库 redis ES 消息中间件

十月阿里社招Java面试题:数据库+分布式+高并发+JVM+Spring

程序知音

Java 阿里巴巴 程序员面试 后端技术 八股文

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