java 安全扫描问题分类

java 安全扫描问题分类
最新回答
你依旧那么甜

2022-11-11 16:05:21

Java安全扫描问题可分类为访问控制问题、访问说明符操纵问题、Android不良实践问题、代码正确性问题、不安全的随机性问题、不安全的存储问题、空引用问题、依赖项安全问题、配置安全问题、JWT特定安全问题十类。具体如下:

  1. 访问控制问题:核心风险在于权限绕过。典型场景包括通过即时调用者的类加载器检查执行任务的Java API,可能绕过SecurityManager的安全权限检查,导致不可信代码访问受限程序包并执行任意代码。此类漏洞常见于多线程或动态代理场景。

  2. 访问说明符操纵问题:主要涉及AccessibleObject API的滥用。该API允许程序员绕过Java访问说明符(如private/protected)的访问控制检查,通过反射机制直接修改私有字段或调用私有方法,破坏封装性。

  3. Android不良实践问题:常见于组件权限配置不当。例如未明确分配访问权限的公共组件(活动、接收者和服务)可能被其他应用访问,其exported属性默认值取决于intent-filter是否存在,易引发权限泄露。

  4. 代码正确性问题:涵盖SQL注入、跨站脚本(XSS)等常见安全缺陷。具体表现为硬编码密码、用户输入直接拼接SQL查询、未对输入进行过滤或转义等,导致恶意代码注入或数据泄露。

  5. 不安全的随机性问题:涉及密钥生成、算法选择等核心风险点。例如使用弱HMAC密钥(长度小于16字节)或不可预测的随机数生成器,可能被攻击者利用进行密钥破解或伪造。

  6. 不安全的存储问题:包括敏感信息硬编码(如数据库密码、API密钥)和密钥管理漏洞(如固定字符串作为密钥)。此类问题易导致敏感数据泄露或被篡改。

  7. 空引用问题:代码中可能存在的空指针异常风险。未对对象引用进行非空检查,直接调用方法或访问字段,可能导致程序崩溃或异常行为。

  8. 依赖项安全问题:第三方库和框架可能包含已知漏洞。需通过依赖项扫描工具(如OWASP Dependency-Check)定期检测,避免引入存在漏洞的组件。

  9. 配置安全问题:涉及会话管理、访问控制、加密设置等不符合最佳实践的配置。例如会话ID未设置过期时间、加密算法选择不当或密钥管理不规范。

  10. JWT特定安全问题:包括签名绕过、密钥泄露、算法选择不当等。例如未验证JWT签名、使用弱密钥或允许攻击者指定算法(如将HS256替换为none)。