cwe - 200:暴露敏感信息的未经授权的演员
视图定制的信息:
有许多不同类型的错误,介绍信息曝光。错误的严重程度范围广泛,可以根据产品的上下文操作,透露敏感信息的类型,以及它可能提供给攻击者的利益。某些敏感信息包括:
对不同党派信息可能是敏感,每一种都可能有自己的预期是否应该受到保护的信息。这些政党包括:
信息曝光可以发生在不同的方式:
保密是常见的做法来描述任何损失作为“信息暴露,”但这可能导致过度使用cwe - 200CWE的映射。从CWE的角度来看,损失的机密性是一个技术的影响,可以来自几十个不同的弱点,如不安全的文件权限或界外阅读。cwe - 200及其底层的后代为了封面中发生的错误行为,明确管理、存储、传输或净化敏感信息。
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。
语言 类:不是特定于语言的患病率(待定) 技术 类:移动患病率(待定)
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示例1 下面的代码检查的有效性提供的用户名和密码并通知用户的成功或失败的登录。
(坏的代码)
例如语言:Perl
我的$ username =参数(用户名);
我的密码美元=参数(“密码”); 如果(IsValidUsername(用户名)= = 1) {
如果(IsValidPassword(用户名、密码)美元= = 1) }{
打印“登录成功”; }其他的 {
打印“登录失败,不正确的密码”; }其他的 {
打印“登录失败,未知的用户名”; }在上面的代码中,当一个不正确的用户名有不同的信息提供,而当用户名是正确的,但密码是错误的。这种差异使潜在的攻击者了解登录的状态函数,并可能允许攻击者发现一个有效的用户名通过尝试不同的值,直到返回不正确的密码信息。本质上,这使得攻击者更容易获得必要的身份验证凭证的一半。 虽然这种类型的信息对用户是有用的,也有用一个潜在的攻击者。在上面的示例中,消息都失败的情况下应该是一样的,如:
(结果)
“登录失败,错误的用户名或密码”
示例2 这段代码试图打开一个数据库连接,并打印任何发生的异常。
(坏的代码)
例如语言:PHP
尝试{
openDbConnection (); }/ /打印异常消息,包括异常消息和配置文件的位置 捕获(异常$ e) {
呼应了例外:,$ e - > getMessage (), ' \ n '; }回声,检查凭证在配置文件:“Mysql_config_location美元,' \ n '; 如果发生异常,则打印消息暴露的位置配置文件脚本使用。攻击者可以利用这些信息来目标配置文件(可能利用路径遍历的弱点)。如果文件可以读取,攻击者可以获得凭证访问数据库。攻击者还可以用恶意替换文件,导致应用程序使用一个任意的数据库。 示例3 在下面的示例中,该方法getUserBankAccount从数据库检索一个银行帐户对象使用提供的用户名和账号来查询数据库。如果一个SQLException提出查询数据库时,将创建一个错误消息输出到日志文件。
(坏的代码)
例如语言:Java
公共BankAccount getUserBankAccount(用户名的字符串,字符串accountNumber) {
BankAccount userAccount =零;
字符串查询=零; 尝试{
如果(isAuthorizedUser(用户名)){ }捕捉(SQLException ex) {
查询= " SELECT *从账户所有者= " }+用户名+”和accountID = " + accountNumber; DatabaseManager dbManager = new DatabaseManager (); 连接康涅狄格州= dbManager.getConnection (); =声明支撑conn.createStatement (); ResultSet queryResult = stmt.executeQuery(查询); userAccount = (BankAccount) queryResult.getObject (accountNumber);
字符串logMessage = "无法从数据库检索帐户信息,\ nquery:”+查询; }Logger.getLogger (BankManager.class.getName ()) . log(水平。严重,logMessage、交货); 返回userAccount; 创建的错误信息包括数据库查询的信息可能包含敏感信息的数据库或查询逻辑。在本例中,错误消息将公开数据库中使用的表名和列名。这些数据可以用来简化其他的攻击,如SQL注入(cwe - 89)直接访问数据库。 示例4 这个代码存储位置有关当前用户的信息:
(坏的代码)
例如语言:Java
locationClient = new locationClient(这个,这个,这个);
locationClient.connect (); currentUser.setLocation (locationClient.getLastLocation ()); … 捕获(异常e) {
AlertDialog。Builder构建器= new AlertDialog.Builder(这个); }构建器。setMessage(“对不起,这个应用程序经历了一个错误。”); AlertDialog警报= builder.create (); alert.show (); 日志。e (“ExampleActivity”、“捕获异常:“+ e +“在用户:”+ User.toString ()); 当应用程序遇到异常用户对象写入日志。因为用户对象包含位置信息,用户的位置也写入到日志。 示例5 下面是一个实际的MySQL错误语句:
(结果)
例如语言:SQL
警告:永久链接():拒绝访问的用户:‘root@localhost /usr/local/www/wi-data/includes/database.(使用密码:N1nj4)公司在4号线
错误显然暴露数据库证书。 例子6 这段代码在网页上显示一些信息。
(坏的代码)
例如语言:JSP
社会安全号码:< % = ssn % > < / br >信用卡号码:< % = ccn % >
代码显示一个用户的信用卡和社会安全号码,即使他们并不是绝对必要的。 例7 下面的程序基于调试标记改变它的行为。
(坏的代码)
例如语言:JSP
< %如果(Boolean.getBoolean (“debugEnabled”)) {
% >
用户帐号:< % = acctNo % > < % }% > 代码写敏感的调试信息到客户端浏览器如果“debugEnabled”标志被设置为true。 示例8 这段代码使用位置来确定用户的当前我们国家的位置。 首先应用程序必须声明,它需要在应用程序的manifest.xml ACCESS_FINE_LOCATION许可:
(坏的代码)
例如语言:XML
< uses-permission android: name = " android.permission.ACCESS_FINE_LOCATION " / >
在执行期间,调用getLastLocation()将返回一个基于位置的应用程序的位置的权限。在这种情况下,应用程序允许最准确的位置:
(坏的代码)
例如语言:Java
locationClient = new locationClient(这个,这个,这个);
locationClient.connect (); userCurrLocation位置; userCurrLocation = locationClient.getLastLocation (); deriveStateFromCoords (userCurrLocation); 当应用程序需要这些信息,它不需要使用ACCESS_FINE_LOCATION许可,随着ACCESS_COARSE_LOCATION许可足以识别哪些我们国家的用户。
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
映射 使用映射:气馁(CWE ID不应该用来映射到实际的漏洞)。 理由是:cwe - 200常被误用来表示损失的机密性的弱点,但保密损失是一个技术的影响,而不是一个根源的错误。CWE 4.9,超过400 CWE条目会导致机密性的丧失。其他选项通常是可用的。(ref - 1287]。 评论:如果一个错误或错误导致信息披露,然后使用CWE ID的错误。考虑从授权不当(cwe - 285),不安全的权限(cwe - 732),不适当的身份验证(cwe - 287)等。还要考虑孩子等敏感信息插入发送数据(cwe - 201),可观察到的差异(cwe - 203),敏感信息插入可外部访问文件或目录(cwe - 538),或者其他人。 维护
映射分析的结果在2020年的前25位,最近的版本中,这个弱点正在审查,因为它是经常滥用映射来掩盖很多问题,导致损失的机密性。看到映射指出,扩展描述和备选项。
更多的信息是可用的,请选择一个不同的过滤器。
|
使用常见的弱点枚举(CWE)和相关的引用从这个网站的使用条款。CWE赞助的美国国土安全部(DHS)网络和基础设施安全机构(CISA)和管理的国土安全系统工程和发展研究所这是由(HSSEDI)manbetx客户端首页(斜方)。版权©2006 - 2023,斜方公司。manbetx客户端首页CWE、水煤浆、CWRAF, CWE标志是斜方公司的商标。manbetx客户端首页 |