代码安全 | 第十九期:用不安全的授权创建临时文件漏洞

本期主题为用不安全的授权创建临时文件漏洞的相关介绍。

一、什么是用不安全的授权创建临时文件?

在没有适当措施或控制的情况下打开临时文件可能会使文件、其内容和任何受它影响的函数容易受到攻击。

二、用不安全的授权创建临时文件漏洞构成条件有哪些?

满足以下条件,就构成了一个该类型的安全漏洞:

1、使用创建临时文件的方法创建了一个可供所有用户读写的临时文件;

2、临时文件没有设置读、写、执行权限。

三、用不安全的授权创建临时文件漏洞会造成哪些后果?

关键词:读取应用程序数据;其他;

1、如果攻击者可以读取临时文件,则该文件中可能包含敏感信息,这些信息可能会被泄露;

2、如果攻击者可以写入该文件,则该文件可能会移动到攻击者无法访问的位置。这将使攻击者可以获得选择性的资源访问控制特权;

3、根据临时文件中存储的数据,攻击者可能会获得一个被信任为非恶意的额外输入向量。可以对数据结构、用户信息甚至进程所有权进行任意更改。

四、用不安全的授权创建临时文件漏洞的防范和修补方法有哪些?

1、创建文件后设置适当的文件权限,使用安全的临时文件。临时文件应该只能由拥有者进程写入和读取;

2、随机化临时文件名。这也可以通过使用安全的临时文件函数来实现,这将确保不会在可预测的位置创建临时文件。

五、用不安全的授权创建临时文件漏洞样例:

 

用Wukong检测上述程序代码,则可以发现代码中存在着“用不安全的授权创建临时文件” 导致的代码缺陷,如下图:

 

Java代码中使用的createTempFile()方法创建了一个所有用户都可读和可写的临时文件,这种方法会将文件放在默认目录中。在UNIX系统上,默认目录通常是"/tmp"或"/var/tmp",在Windows系统上,默认目录通常是"C:\\Windows\\Temp",攻击者可能很容易访问此文件,从而可以读取临时文件中包含的潜在敏感信息或修改文件的内容。

用不安全的授权创建临时文件在CWE中被编号为CWE-378: Creation of Temporary File With Insecure Permissions

posted @ 2021-05-27 11:05  中科天齐软件原生安全  阅读(140)  评论(0编辑  收藏  举报