神都会犯错,程序员也需要信息安全意识
神都会犯错,程序员也需要信息安全意识
互联网时代信息安全事件已经是见多不怪了,连跟美国军方合作的资深安全公司HBGary Federal都能被黑,就不要说我们这些普通人了。上网就意味着你将自己暴露在广大黑客面前,谨慎保护自己的信息是必须的。很多时候信息安全并不是技术问题,而是人的意识习惯问题,像HBGary被黑过程中搞笑的一个,是信息主管被黑客假冒老板发的邮件欺骗,主动关闭了防火墙并提供了后台SSH访问权限给对方,基本上是开门揖盗。
当然了,其实并不全是这位主管的错,因为黑客取得了老板的邮箱帐号,又知道系统以前的密码,看上去可信度非常高。但这也说明,无论多好的技术,都需要人有安全的意识。如果这位主管在关闭防火墙这种重大事件前多想一下,电话确认一下,也许事情就不一样了。
我发现周边不少人其实并没有足够的信息安全意识,当然了,普通的信息安全已经有很多人说过了,这里我以程序员的角度来看,我经常在WINDOWS下开发,以自己的经验,我总结WINDOWS程序员经常干的不安全的事有以下几点:
1.使用XP的系统开发而不设置管理员密码。普通用户就算了,程序员的话,用XP还是把管理员密码改掉较好,省得别人趁你不在占用的你机器。
2.程序员不会加密自己的代码。不加密的话,其实你的代码是很容易被其它人看到的,我在《最简单有效也是最适合程序员的代码文件安全加密保护方法——EFS》一文中已经有详细说明,这里不再赘述。
3.给服务器设置弱密码,或干脆空密码。这种情况较少,有的话一般是疏忽。不过你别说,还真有。我们之前有个系统,以为是内部用的,没有设置管理员密码,但后来才发现外网映射了一个端口可以访问,赶紧把密码改了。所以最好从一开始就养成习惯,除了测试系统,管理员帐号均需要设置有效密码。
4.在代码中拼接SQL,导致SQL注入漏洞。这个是最容易导致系统被黑的。HBGary被黑的关键,就是CMS系统中有SQL注入漏洞。应该说HBGary自己做的网站系统还是挺安全的,但它用了第三方的CMS,这一块短板导致管理员帐号被破解猜出,则其它地方再安全都等于零了。
5.登录密码以明文传输。明文网上传输会被拦截,因此一般安全的做法是加密后传输。不过我也见到很多系统都没有做这件事。
6.直接用文本工具编辑JSP后,不删除BAK备份文件。不删除BAK的后果,是黑客可以直接下载BAK文件,分析JSP代码,导致潜在的风险。
7.服务或开发机器上不开启登录审核。服务器一般都会自动开启登录审核,但作为开发人员,经常会远程到自己机器上的,也应该开启登录审核,记录下恶意攻击的情况。
8.备份文件不加密随便放。备份文件放服务器上是比较安全没什么问题的,但时间长了清理复制备份时,很容易就会把备份文件弄到文件服务器或U盘上,造成泄露的危险。
9.不想清楚就随意更改升级正式系统。这一点我吃过亏,以前我仗着自己操作熟练升级比较随意,有一次半夜升级不小心重启了一个重要的服务,但重启前考虑不周,服务启动失败,导致客户的服务器停止服务无法访问,而且我再也连不上服务去操作了,把我吓得要死;好在我之前设置了自动恢复的定时检测脚本,大概过了一小时后,定时检测脚本发现相关服务没启动,自动重启恢复了服务。真是血的教训,从此以后我升级都是小心翼翼,事先想清楚,做好备份,再也不敢随便弄了。
另外我经常看到有人在服务器上安装360、QQ、迅雷等工具。这些工具都是面向个人用户的,并没有专门为服务器进行设计优化,把它装到企业级的服务器上是不合适的。尤其是杀毒软件类的,在服务器上装个人杀毒软件,严重影响系统性能和稳定性,我个人觉得这个是非常不专业不负责的做法。
总言之,安全意识是第一位的,安全技术再好,如果不用或用得不当也没用。其实我自己也难做到全部,没有绝对的安全。毕竟大神都会犯错,何况普罗大众,只能是尽量养成信息安全的习惯意识了。