本人运维安全课程:

    本人课程链接:https://edu.51cto.com/course/27043.html  作者:张岩峰,转载请注明出处  笔名:云烟旧梦

    51CTO课程地址:https://edu.51cto.com/lecturer/12750547.html    Linux技术交流群:1127825548

常见的运维安全陋习 

    运维安全事件频发,一方面固然是因为运维或安全规范空白或者没有落地,另一方面也在于运维人员缺乏强烈的运维安全意识,在日常工作中存在这样那样的安全陋习导致。可以对号入座,仔细想想曾几何时自己是否也踩过同样的坑?

1、iptables

    修改iptables后没有还原配置,甚至清空关闭iptables

    出于测试需要临时清空iptables可以理解,但是很多人会忘记还原,也没有设置自动还原机制。

    [root@localhost ~]# iptables -F

 

2、脚本

    脚本没有检查“*”、空格、变量。

    如果我们认为“不光用户的输入是不可信的,自己的输入也是不可信”,这样的坑就会少踩。

    [root@localhost ~]# rm -rf /var1/var2

 

3、服务启动

    服务启动默认监听全部地址

    绝大部分应用默认配置便是如此,在没有有效访问控制的清空下开启监听所有地址,离危险也不远了。

    bind-address 0.0.0.0

 

4、文件权限

    给文件开放过大的权限时,任何人都能读写

    [root@localhost ~]# chmod 777 dir

    [root@localhost ~]# chmod 666 script

 

5、用root启动服务

    对于大多数运维而言,一上机器就切到root,后面用root启动服务仿佛一气呵成。

    [root@localhost ~]# nohup ./server &

 

6、认证和访问控制

    嫌麻烦不配认证,也不配访问控制

    这个跟监控任意地址比较像,通常是默认配置使然,使用者也没有意思去加固。

 

7、sudo授权

    sudo授权过大,导致自定义脚本提权

    如果***者可修改脚本内容则提权易如反掌。

    [root@localhost ~]# sudo script.sh

 

8、root权限对象

    给开发或者QA授权root权限,他搞事你背锅?

    一直以来我们强调RBAC,但是运维太忙,开发测试人员需求太多时,很多运维人员会直接授权他们root权限,而他们对系统级访问控制不甚了了,因此造成的漏洞非常可观。

    [root@localhost ~]$ su

    [root@localhost ~]# whoami

    root

 

9、ssh私钥

    key/token/ssh私钥保存在txt文件里,也有把个人ssh私钥放在服务器的

    [root@localhost ~]# ls ~/.ssh

    id_rsa id_rsa.pub

 

10、代码存放意识

    把工作上的代码对外发布

    遇到实习生把项目代码提交github了,回复的理由是git配错了。虽然不知真假,但我认为,至少他们是安全意识不足。

    [root@localhost ~]# git remote add origin

    https://github.com/secondwatchCH/EFS.git

    [root@localhost ~]# git push origin master

 

11、home目录

    个人home目录那么敏感,也有人拿来直接托管服务,至少.bash_history泄露是跑不了

    [root@localhost ~]# python -m HTTPSimpleServer

 

12、应用选型

    应用选型时没有考虑安全风险

    Apache Struts Version:Struts 2.5 - Struts 2.5.12

    线上业务使用受s2-052影响的s2版本

 

13、软件供应链

    对软件供应链安全没有概念

    从xcode事件到pip官方发现恶意ssh库,都在向我们昭示一个道理:软件供应链安全风险极大。目前运维人员中比常见问题有:

    ●  ssh客户端或者开发IDE从百度网盘下载

    ●  两眼一闭,把github/pypi/dockerhub等网站下载的应用/库/镜像直接用到生产环境

    ●  未清理默认口令或者默认配置