CWE-268 特权链锁

admin 2022年1月5日21:05:04评论36 views字数 2915阅读9分43秒阅读模式

CWE-268 特权链锁

Privilege Chaining

结构: Simple

Abstraction: Base

状态: Draft

被利用可能性: High

基本描述

Two distinct privileges, roles, capabilities, or rights can be combined in a way that allows an entity to perform unsafe actions that would not be allowed without that combination.

相关缺陷

  • cwe_Nature: ChildOf cwe_CWE_ID: 269 cwe_View_ID: 1000 cwe_Ordinal: Primary

适用平台

Language: {'cwe_Class': 'Language-Independent', 'cwe_Prevalence': 'Undetermined'}

常见的影响

范围 影响 注释
Access Control Gain Privileges or Assume Identity A user can be given or gain access rights of another user. This can give the user unauthorized access to sensitive information including the access information of another user.

可能的缓解方案

MIT-49 Architecture and Design

策略: Separation of Privilege

Consider following the principle of separation of privilege. Require multiple conditions to be met before permitting access to a system resource.

MIT-1 ['Architecture and Design', 'Operation']

策略:

Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.

MIT-17 ['Architecture and Design', 'Operation']

策略: Environment Hardening

Run your code using the lowest privileges that are required to accomplish the necessary tasks [REF-76]. If possible, create isolated accounts with limited privileges that are only used for a single task. That way, a successful attack will not immediately give the attacker access to the rest of the software or its environment. For example, database applications rarely need to run as the database administrator, especially in day-to-day operations.

示例代码

This code allows someone with the role of "ADMIN" or "OPERATOR" to reset a user's password. The role of "OPERATOR" is intended to have less privileges than an "ADMIN", but still be able to help users with small issues such as forgotten passwords.

bad Java

public enum Roles {

ADMIN,OPERATOR,USER,GUEST

}

public void resetPassword(User requestingUser, User user, String password ){

if(isAuthenticated(requestingUser)){

switch(requestingUser.role){

case GUEST:

System.out.println("You are not authorized to perform this command");
break;

case USER:

System.out.println("You are not authorized to perform this command");
break;

default:

setPassword(user,password);
break;

}

}

else{

System.out.println("You must be logged in to perform this command");

}

}

This code does not check the role of the user whose password is being reset. It is possible for an Operator to gain Admin privileges by resetting the password of an Admin account and taking control of that account.

分析过的案例

标识 说明 链接
CVE-2005-1736 Chaining of user rights. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-1736
CVE-2002-1772 Gain certain rights via privilege chaining in alternate channel. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-1772
CVE-2005-1973 Application is allowed to assign extra permissions to itself. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-1973
CVE-2003-0640 "operator" user can overwrite usernames and passwords to gain admin privileges. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0640

Notes

Relationship
There is some conceptual overlap with Unsafe Privilege.
Research Gap
It is difficult to find good examples for this weakness.

分类映射

映射的分类名 ImNode ID Fit Mapped Node Name
PLOVER Privilege Chaining

引用

文章来源于互联网:scap中文网

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月5日21:05:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CWE-268 特权链锁https://cn-sec.com/archives/612804.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息