细心耐心,安全工程师的最基本特质


信息安全,尤其是“黑客”,是人们所津津乐道的话题,尤其是类似“某在线交易网站被攻破,导致上百万信用卡号泄露”,“某某十二岁黑客攻破了美国国防部”的新闻,跟“艳照门”这种八卦一样,会着实刺激人们兴奋一阵子。
黑客和摇滚一样,是酷的代名词。

做黑客很酷吗?确实有点,就跟做神偷一样,隐藏在黑暗中,以巧妙的策略,绕过社会秩序的约束,按照自己心中的价值观自行其是。但是在神奇的行为后面,是大量、长期的辛苦努力,平凡甚至枯燥。信息安全领域的人们,不管是作为防御一方的安全工程师,还是作为攻击方的黑客,他们的生活中,除了需要研究常人所不熟悉的艰深技术知识、需要有“考虑一切可能性”的思维方式之外,最重要的最基本的特质,其实是耐心和细心。

之所以想说这个话题,是因为这两天在工作中和同事的一次对话。

只要是学习或者了解过应用安全知识的人应该都知道,“验证一切外部输入数据”,是最基本最重要的一个安全编程规则。反过来,”尝试一切可能的输入数据“,则是黑客攻击最基本的思路。一方尽力往系统里灌入非法数据,以期望系统进入异常状态,出现设计之外的行为,进而为己所用。另一方尽力防止任何非法数据进入系统,保证系统总是工作在设计的状态下,只提供该有的功能。

自然的,我们公司的安全编码规范就有这么一条规定(我相信任何软件公司,只要有安全编码规范,这肯定就是头一条),要求所有的模块列出所有外部进入本模块的数据的合法格式定义,并且在代码中进行验证。有个同事的设计文档没有列出输入数据,不符合规范,所以我发邮件叫他修改。他看到邮件后邀请我语音聊天。

”我的有很多输入字段哎,都要列出来啊?太多了。“
”有多少字段?上千条?“
”那倒是没有,大概有一两百个吧。“
”都需要列。每一个字段的类型、长度、合法格式描述,都需要列出来。“
”这样太费时间了,能不能只列一部分啊?“
”我明白,列这些字段很费时间很繁琐,不过都是需要列的,漏了一个都可能会出问题,没办法。就跟程序一样,代码是一行行写的。“
”好的。但是,不过,这样都检查会不会降低性能?“
”肯定会降低性能。但是这也是必须接受的啊,是一个程序该做的事情的一部分。不能因为担心慢就不做了。“
”好的,我明白了。“

通过这段对话,大家可以看到这位同事的想法,可能也是很多人普遍的想法,一个是觉得繁琐,一个是觉得会降低性能。可是为了保证程序的安全,保证程序是正确的,这些都是必须做、必须忍受的事情。

换一个场景,也许问题更容易理解。假设有个人在和一个美国边境检查官聊天:
”每天有一百万人进入美国国境,你们每个人都检查啊?“
”可不是吗,漏掉任何一个可疑分子,进入国内,可能就会制造一起恐怖事件,造成不可估量的损失。“
”可是这样会浪费大量时间,影响经济发展速度啊?“
”为了国家安全,为了人们的生命安全,影响一点经济发展速度,那也是没办法的。“

我们之所以要细心,是因为黑客或者恐怖分子,在试图攻击一个系统或者一个国家时,他们也非常有耐心,寻找一切蛛丝马迹,寻找一切可能有漏洞的地方。作为防守方的安全工程师或者国家,其实是很被动的,我们只有抱着更大的耐心和决心,付出更大的努力,才有可能减少或者杜绝攻击事件。

其实和国家安全一样,无论如何努力、如果小心,总难免会有意外发生。一个大型程序,比如Window总是会有安全漏洞,一个国家也总是会有漏网的恐怖分子。但是这些不是我们放弃的理由,至少经过努力后,安全漏洞可以大大减少,带来的危害也会减轻。

我们并不完美,但是我们在追求完美的路上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值