安全不仅仅是技术问题,而是人的问题。许多低级错误竟然经常是由那些应该懂更多的人犯的:系统管理员或其他IT员工。
Intermedia公司《2015内部风险报告》发现:IT专业人士才是最有可能进行“危险”安全操作的人群,比如说共享密码/登录、重复使用个人密码登录业务应用,或者将个人账户凭证交给他人。
有鉴于系统管理员对神一般的控制权限,这类过失发生在他们身上比发生在普通用户身上危险得多。IT专业人士和普通用户一样容易被网络钓鱼、恶意软件和其他攻击攻陷,被盗取的有特权的系统管理员凭证几乎总是能造成严重得多的安全事故。管理员犯错比用户犯错危害大得多。下面给您列出十大常见的安全错误,以及它们的补救措施:
1、万事用sudo
当你用root登录,你就对面前的金属小盒子拥有了完全控制权。这是极端危险的,因为只要你的凭证被盗,攻击者可以对你的系统为所欲为。
用Windows的说法,只要不执行管理员级的任务就没必要用管理员账户登录。你可以用个人账户登录,然后在需要执行特定命令的时候用sudo,而不是直接以root账户登录系统。
一不小心,故态复萌简直不要太容易。只要一条命令需要sudo,整个脚本就会执行失败——全部都得从头再来。如果你不能搞清哪些命令需要特权而哪些不需要,就很可能又退回到万事用sudo的状态。
2、运行来源不明的脚本
安装第三方Linux应用是另一个sudo可能被滥用的地方。你要做的仅仅是直接往终端里复制和粘贴命令来启动安装脚本——命令早已设置为利用sudo来执行了。脚本里的每一条命令都将以特权权限执行。
举例如下,直接从网页上复制过来的(URL隐去了):
sudo -v && wget -nv -O- https://xxx/xxx/linux-installer.py | sudo python -c “import sys; main=lambda:sys.stderr.write(‘Download failed\n’); exec(sys.stdin.read()); main()”
这条命令给网上其他地方托管的东西赋予了sudo权限,以及本地运行Python的权限。极端不建议这么做!!Windows系统管理员面临同样的潜在灾难——执行下载的PowerShell脚本。
即使你信任源,千万别假设从互联网上下载的脚本是安全的。一定要先仔细检查脚本的内容,确认执行这些命令不会引发不良行为。
3、以root运行特权服务
应用程序永远不应该以root运行。为机器上运行的每个应用程序和服务都创建单独的具有特定权限的服务账户。
服务账户通常都缺少主目录,如果以服务账户登录,对文件系统的操作通常都是受限的。即使攻击者攻陷了服务账户,他/她仍然需要搞定一个本地漏洞利用才能获取更多的权限来执行代码。
每个应用程序都必须使用定制的账户访问数据库,而不是用root或管理员个人账户访问。网页应用应该归属于恰当的组和用户。给Windows应用程序分配域权限时,不要给予管理员级别的权限。
主流Linux版本都默认使用服务账户,但如果管理员手动配置第三方包,很容易就会犯错。要记得在所有的安装和配置都结束后切换许可,确保root或管理员个人账户不再是该应用程序的所有者。
4、重复使用密码
瞪大双眼准备接受下一波惊吓吧!我们都听过太多在不同网站、系统和应用间重复使用密码的罪恶。但事实总是残酷的,这一问题到了今天依然是个大问题,而系统管理员们也不能免俗。
最近,Mozilla称某未知攻击者闯入了一名特权用户的Bugzilla漏洞跟踪数据库账户,盗取了大约33个关键漏洞的信息。事情真相是:该“特权用户”在另一个网站上重复使用了他的Bugzilla密码,而该密码已经在那个网站的泄露事件中被曝光了。
太多太多次,服务器被设置了弱管理员密码或与该网络中其他机器的密码相同。用常见密码和字典进行暴力攻击会奏效就是因为有足够多的人依然在犯这种低级错误。当多台机器密码相同,问题便叠加了。
系统管理员们不应该在所有机器上都设置相同的root密码,而应该选择使用密钥文件。每台服务器都应有个公钥文件而系统管理员的工作站上应该放有与该公钥文件相关联的私钥。采用这种方式,系统管理员可以访问网络上部署的所有机器,而在网络中横向移动的攻击者只要没有有效密钥便不能登录。而且也拦截不到密码了。
(责任编辑:安博涛)