黄玮

3 种视角,3 条加固路线







Discovery)Exploit)Disclosure)Patch avaliable)Patch installed)0day 的首发(发现)本章《应用程序安全加固》将要介绍和分析的方法重点集中在前述安全加固二维矩阵的应用层,更具体来说包括了操作系统安全加固和运行于操作系统之上的应用程序和信息系统本身的安全加固。
/etc/passwd 和 /etc/shadowcrypt(3) API 接口加密敏感信息
htpasswd / proftpd 的 ftpasswd# 查看常见口令安全散列函数的存储格式
man 5 crypt
# yescrypt
# \$y\$[./A-Za-z0-9]+\$[./A-Za-z0-9]{,86}\$[./A-Za-z0-9]{43}
# gost-yescrypt
# \$gy\$[./A-Za-z0-9]+\$[./A-Za-z0-9]{,86}\$[./A-Za-z0-9]{43}
# scrypt
# \$7\$[./A-Za-z0-9]{11,97}\$[./A-Za-z0-9]{43}
# bcrypt
# \$2[abxy]\$[0-9]{2}\$[./A-Za-z0-9]{53}
# sha512crypt
# \$6\$(rounds=[1-9][0-9]+\$)?[./0-9A-Za-z]{1,16}\$[./0-9A-Za-z]{86}
# sha256crypt
# \$5\$(rounds=[1-9][0-9]+\$)?[./0-9A-Za-z]{1,16}\$[./0-9A-Za-z]{43}
# sha1crypt
# \$sha1\$[1-9][0-9]+\$[./0-9A-Za-z]{1,64}\$[./0-9A-Za-z]{8,64}[./0-9A-Za-z]{32}
# SunMD5
# \$md5(,rounds=[1-9][0-9]+)?\$[./0-9A-Za-z]{8}\${1,2}[./0-9A-Za-z]{22}
# md5crypt
# \$1\$[^$]{1,8}\$[./0-9A-Za-z]{22}
CVE-2007-2844(PHP Crypt Function Not Re-entrant)攻击者可以读取启用了SSL/TLS加密的服务器内存里的任意数据,包括但不限于:SSL加密私钥、用户cookie等
password_hash() (PHP 5.5+) 就是一个 PHP 代码可以使用的口令安全存储的函数AES/3DES 代替脆弱的 DES| 外挂轮询技术 | 事件触发技术 | 核心内嵌技术 | |
|---|---|---|---|
| 访问篡改网页 | 可能 | 可能 | 不可能 |
| 保护动态内容 | 不能 | 不能 | 能 |
| 服务器负载 | 中 | 低 | 低 |
| 带宽占用 | 中 | 无 | 无 |
| 检测时间 | 分钟级 | 秒级 | 实时 |
| 绕过检测机制 | 不可能 | 可能 | 不可能 |
| 防范连续篡改攻击 | 不能 | 不能 | 能 |
| 保护所有网页 | 不能 | 能 | 能 |
| 动态网页脚本 | 不支持 | 支持 | 支持 |
| 适用操作系统 | 所有 | 受限 | 所有 |
| 上传时检测 | 不能 | 受限 | 能 |
| 断线时保护 | 不能 | 不能 | 能 |
CIA 加固
iptables 的 conntrack 资源耗尽问题CIA + AAA 是安全加固的基本目标
道 )
DMZ <--> 内网 的访问
# 拒绝SQL注入
SecFilter "delete[[:space:]]+from"
SecFilter "insert[[:space:]]+into"
SecFilter "select.+from"
# 拒绝 Googlebot 访问
SecFilter HTTP_USER_AGENT "Google" nolog,redirect:http://www.google.com
# 拒绝特定命令执行
SecFilter /etc/password
SecFilter /bin/ls
# 拒绝目录遍历
SecFilter "\.\./"
Zone Transfer
Docker 管理员用户组DOCKER_HOST=ssh://USER@HOSTDocker 宿主机环境尽可能最小化进程列表:只保留一个 Docker 守护进程Capabilities 精细化访问控制能力来代替粗粒度的 root/non-root 授权模式
Dockerfile 编写阶段)
Docker Content Trust Signature Verification 来确保只运行「受信任」镜像防火墙 、入侵检测 和 WAF 类「外围安全产品」,RASP 是「内置到应用程序代码」里的
Suhosin 项目作为一个面向 PHP 引擎的安全加固补丁项目应该算最早的 RASP 解决方案了
OpenRASP 抛弃了传统防火墙依赖请求特征检测攻击的模式,创造性的使用RASP技术(应用运行时自我保护),直接注入到被保护应用的服务中提供函数级别的实时防护,可以在不更新策略以及不升级被保护应用代码的情况下检测/防护未知漏洞,尤其适合大量使用开源组件的互联网应用以及使用第三方集成商开发的金融类应用
security checklistExtensible Configuration Checklist Description Format by NIST试举⼀例说明“⼈的安全意识和安全能⼒在应用程序安全加固中是不可忽视的重要环节”。