古黑论
登陆 / 注册 搜索

USERCENTER

站内搜索引擎

打印 上一主题 下一主题

[网络安全] 普通公司如何做好信息安全?【上】

[复制链接]
跳转到指定楼层
楼主
缘起

在IC咖啡分享会的时候,有人问到了这个问题,关于创业公司,在资金和技术短缺的情况下,如何做好信息安全呢? 这真是个好问题,我觉得有必要单开一篇。
 Blog_InternetSafety-uai-1440x900.jpg 普通公司如何做好信息安全?【上】

很抱歉的是,其实在这个领域我自己做的也不够好,甚至可以说劣迹斑斑,好多次都是靠朋友帮忙才躲过一劫。所以,我会将自己的很多次教训一起放进去,尽可能整理,欢迎高手批评指导。

运维

1、搭建系统平台,建议选择可靠的云服务商

自己搭建系统,主机托管,你需要运维工程师非常有安全经验,而且需要随时跟进最新的安全漏洞去打补丁,其实对创业公司来说,成本还是有点高的。而第三方比较大的一些云平台,其安全技术团队肯定比绝大部分创业团队的要好很多。

基本上云平台操作系统上的安全性是比较有保证的,当然100%这话不能讲,但是只要有重要的安全公告出来,补丁还是很勤快的,而且如果出现新的漏洞,较好的云服务商多半会帮你做一次检测并发邮件提醒你,这几乎已经是行规了,你只要注意邮件提示一般不会错过重大的问题。

部分云服务商还会提供额外的安全检测和系统入侵防范的一些功能选择,前段时间阿里云出了一个较大的故障,就是因为其防入侵的系统出现了一个明显bug,这个事情你分两面看,出问题当然不好,但是不出问题的时候这个功能还是能救你一命的。

目前国内比较大的云平台,腾讯云,阿里云,amazon也进入中国了,当然还有我一直推荐的ucloud云。ucloud老板叫做季昕华,曾先后在华为,腾讯,盛大负责信息安全,是国内有名的信息安全专家,(利益相关,季总是我十多年的老朋友)。 国际上的有amazon,linode,digitalocean等等。

云平台的风险在于,存在穿透风险,以及受到不靠谱邻居的影响,但你做主机托管也存在不靠谱邻居的影响,因为今天的主题是创业公司,如何保障信息安全,所以我建议,拥抱云主机是前期成本较低的情况下能较好保障系统安全的选择。

2、选择合适的第三方安全服务平台

实际上现在创业的平台服务商比十几年前好太多,十几年前个人网站一旦被拒绝服务攻击,除了等死几乎没有选择,而现在,国内有360网站卫士,加速乐,安全宝等免费服务可以帮你扛过中低规模的攻击;国际上有cloudflare帮你扛。

这些服务都是比较可靠的,当然如果被攻击的量级比较高可能需要较多付费,这就要看创业公司的人品了,如果你才刚刚天使轮,手里没几个钱,就被人巨量DDOS攻击,你来问我怎么办,实话说,这个就真没办法了。

但如果你拿了A轮,B轮,你被人打的很惨,你可能还是可以考虑一些付费服务商的。

此外,必须说明,如果被攻击,建议立即报警,不能向恶势力低头。一般攻击者会有利益诉求,基于利益诉求去追查比基于技术更容易追到攻击者。

研发

1、研发和运维环境的安全

相信很多人都被ios这次xcode木马事件所震惊,这里强调,开发环境和运维环境软件,特别特别要注意。

第一是编译器和相关开发工具包,务必从官方下载。

第二是远程维护工具,例如putty, sshclient 等,务必从官方下载。

如果使用第三方下载,比如迅雷,务必于官方核对md5值。

第三,我发现目前telnet用的人已经非常少了,但是依然有很多开发者还是习惯使用ftp!ftp是明文传输,所有经过的路由器和交换机均可以轻松截取密码信息!务必使用加密传输的sftp替代ftp。使用ssh替代telnet!

2、代码分享

很多工程师喜欢将工作成果,代码分享到github或其他代码分享网站,如果说禁止这样做确实不是很尊重工程师的劳动成果,但是我想提醒一点,创业团队如果没有很好的安全开发架构,或缺乏有经验的工程师,如果想分享到github务必将代码私有化,不要公开!不要公开!不要公开!

分享不是说就一定是有问题有隐患的,但是对于一些架构比较简单的开发而言,一些经验匮乏或者疏忽的程序员,很容易把关键密码写到代码里然后分享到github上,这样的案例已经非常非常多了!

说来惭愧,前些日子我的公司技术人员就犯了这个错误,将代码分享到github的时候没有注意到里面包含了一个关键密码,幸亏乌云白帽及时发现,这样的问题如果被黑产发现,可导致任意盗号,而且一旦真的发生了,我肯定会找错方向,去追踪代码安全,找SQL注入的可能性,想要快速追查定位真是难上加难。

3、是全部独立开发还是选择开源系统?

实际上,如果你的开发工程师水平一般,能力不是非常突出,代码的安全质量通常不会比成熟的开源系统更好,成熟的开源系统大多经历了多重的安全风险,至少不会有过于显而易见的安全漏洞。

说一下开发过程中容易犯的安全问题。

第一,SQL注入,第二,跨站脚本,以上两条都是对用户输入和参数传递没有做严格校验导致的。所有通过客户端传递的参数必须做格式校验或强制类型转换才可以使用,这是一个特别特别重要的要求。

第三个常见的安全问题是数据库对用户密码的保存。

不管你认为自己系统多么安全,请相信我,被人扒库的问题永远存在。明文密码保存是一种流氓行为,但如果只做md5也是非常不负责任的,网上早有人把所有常用密码组合的md5全算好了,随便搜一下就可以反解出来。使用随机SALT可以让黑客拿到数据库后的破解用户密码的成本极度增加,从而保护用户密码安全。

以discuz为例,我面试过很多程序员,很多都说discuz有很多问题,但是很少有程序员认真去分析过discuz的一些细节,一个典型的是ip地址反查的实现机制,另一个典型的就是密码采用了随机salt +md5的方式,说来惭愧,我开始研究discuz的时候也是很长时间不太理解这个salt是干嘛用的。 所以回过头来说,很多开源软件在技术细节上和安全细节的打磨是远超创业团队的开发人员的。

使用开源系统当然也存在安全风险,比如开源系统一旦爆出漏洞,传播性会非常快,很快就有扫描工具在网上流行,一旦你疏漏了一下,就会中招,产生严重后果,但即便如此,我认为,如果你不具备足够的安全开发能力,使用开源系统的整体安全性还是会优于自己开发,如果你使用开源系统,然后某天因为这个系统漏洞中招了,你来埋怨我,请想想,你自己开发的话,因为不流行,所以惦记着的人少,但是你确信这样就安全了?

一旦你业务起来,如果程序员水平不足,别人稍微别人研究一下(是的,即便不开源,研究你系统漏洞的方式也是成熟的,所有的登录入口,参数传递调用,以及交互输入的地方,都是可以做恶意渗入测试的)就能扒出一堆问题,这一点真的不夸张。

如果使用开源系统,又想减少中招的风险,建议将默认配置的目录修改掉,特别是后台管理的目录,以及管理的进入程序名,略微调整一下目录和文件命名规则就能躲避扫描器的跟踪,而且多关注该系统的官方公告和最新安全新闻,也会防止中招,请相信一点,如果知名开源系统出现严重风险,乌云第一时间一定会爆出来,如果是你自己开发的系统,一旦被黑产先发现,真没人知道,你自己想去修补,真的很难找到问题点。

4、防撞库,防暴力破解的验证码

这里只是提醒一下,验证码是对机器访问,撞库攻击,暴力破解(特别是找回密码环节)非常好的一种抵御方式,但验证码其实也是伤害用户体验的,所以要有所取舍,此外,如果采用容易识别的验证码,网上已经有识别验证码的程序流传了,我都用过的,这样作用基本就不存在了。

个人建议,用户第一次输入不出现验证码,输入错误或者同一个ip多次尝试不同的帐号登录,再出现验证码,验证码也要先易后难,防止程序破解,这样兼顾了用户体验以及防止机器人扫描和撞库。

上一篇:信息安全常识科普摘要:我不是信息安全技术高手,很多很实际的技术细节可能不 ...
下一篇:普通公司如何做好信息安全?【下】摘要:数据 这又是一个我特别惭愧的话题,因为就在前几天 ...
回复

使用道具 举报

沙发
梦纸 发表于 2019-2-26 12:34:24 | 只看该作者
睡觉 不可能的 这辈子不可能睡觉的 你看烟有没有 酒又没有 友女又没有 又不懂去哪玩 只能每天像个神经病一样玩手机
回复 点赞 点踩

使用道具 举报

板凳
浅笑歌 发表于 2019-2-26 16:34:31 来自手机 | 只看该作者
读书读到抽筋处,文思方能如尿崩!
回复 点赞 点踩

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

关于我们|小黑屋|手机版|Archiver|古黑论

GMT+8, 2019-5-20 20:59 , Processed in 0.226731 second(s), 48 queries .

© 2015-2019 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表