软件安全知识


第一部分:软件开发生命周期(SDLC)与安全开发实践
  1. SDLC核心阶段
    • 需求分析 → 设计 → 编码 → 测试 → 部署 → 维护
    • 安全开发原则:安全左移(Shift-Left Security)理念
  2. 安全开发实践(Secure SDLC)
    • 威胁建模(Threat Modeling):STRIDE模型
    • 安全需求分析(如隐私保护、权限控制)
    • 安全编码规范与代码审查(Code Review)
    • 安全测试集成(渗透测试、SAST/DAST)
    • 部署阶段的安全加固(最小权限原则、环境隔离)

第二部分:安全编程技术与漏洞防范
  1. 常见安全漏洞与防御技术

    • 缓冲区溢出
      • 原理:内存越界读写
      • 防御:边界检查、使用安全函数(如Java的Arrays.copyOf
    • 注入攻击(SQL/OS/命令注入)
      • 防御:参数化查询(PreparedStatement)、输入过滤与白名单
    • 跨站脚本(XSS)
      • 防御:输出编码(如OWASP ESAPI库)、CSP策略
    • 跨站请求伪造(CSRF)
      • 防御:Token验证、SameSite Cookie
  2. Java安全编程实践

    • Java语言特性与安全
      • 内存管理(JVM自动垃圾回收规避缓冲区溢出)
      • 类型安全与异常处理机制
    • 安全编码要点
      • 输入验证(正则表达式、Apache Commons Validator)
      • 密码安全:使用BCryptPasswordEncoder而非MD5
      • 反射与序列化的风险管控
      • 安全通信:TLS配置、密钥管理(Keystore)
    • 框架安全
      • Spring Security实现身份认证与授权
      • 避免反序列化漏洞(Jackson配置、禁用JNDI

第三部分:软件测试与质量保证
  1. 测试方法与工具
    • 功能测试(JUnit、TestNG)
    • 安全测试工具:
      • 静态分析(SAST):SonarQube、Checkmarx
      • 动态分析(DAST):OWASP ZAP、Burp Suite
    • 模糊测试(Fuzzing):AFL、JQF
  2. 质量保证体系
    • CMMI/ISO 25010质量标准
    • DevOps中的安全集成(DevSecOps)
    • 自动化测试与CI/CD管道(Jenkins、GitLab CI)

第四部分:软件漏洞原理与防护体系
  1. 漏洞分类与原理
    • 内存漏洞(堆/栈溢出、UAF)
    • 逻辑漏洞(权限绕过、业务逻辑缺陷)
    • Web漏洞(SQL注入、文件上传漏洞)
  2. 漏洞检测与防护技术
    • 运行时防护:ASLR、DEP、Canary
    • Web应用防火墙(WAF)规则配置
    • RASP(运行时应用自我保护)技术
  3. 恶意程序防护
    • 病毒/蠕虫/木马检测机制(签名+行为分析)
    • 沙箱隔离技术(Docker容器化部署)
    • Web系统安全:
      • 会话管理(JWT Token时效性)
      • 敏感数据加密(AES-GCM、HSM)

你可能感兴趣的:(四,计算机安全专业,安全)