前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安全信息系统如何保护你的服务

安全信息系统如何保护你的服务

作者头像
糖果
发布2019-11-20 19:13:06
5260
发布2019-11-20 19:13:06
举报
文章被收录于专栏:糖果的实验室糖果的实验室

从事信息系统开发的时候,对于信息系统来说,对系统的分解和子任务的划分是很重要的一部分工作,过去的日本项目,通过和日本项目合作可以看出来日本工程师的做事风格和我们之间的差异。并且日方,会因为不同的项目和不同的管理风格,有着不同的做事方式。

传统的日本项目,会把工程从基本的需求定义到概要设计详细设计,都在前期完成。剩下的工作呢,就是编码工作,他们称为制造阶段,编码工作之后就是测试工作。保守的日本项目只会吧,编码和测试工作外包给中方。激进一些的项目会把一些设计工作承包给中方。为什么会是这样呢?是因为主要是为了控制工程质量,人力成本。因为初级程序员和高级程序员的造价是不一样的。简单的工作适合初级程序员来完成。

如果他们把编码工作包给中方。他们会对测试成果物作出要求。因为只有这样,他们觉得才可以很好的控制工程质量,并且在进行编码工作之前,他们会限定比较严格的编码方式和规范,而在这套体系下,人们做着有限创造力的工作,犯错的机会也会相对的减少。

而另外一种形式的工作会要求中方参与一部分的设计。但相对的并不是顶层的设计,是模块级别系统基本设计。这种较前一种工作有很大的自由度。但是也是针对于单体和子系统的这一部分,并且同样要求有测试成果物。和之前限定编码工作一样,在承包设计的过程中,也要求参与的设计人员按照一定的限定规则去设计,按照一定的规范去设计。因为限定的这个标准在这个大的限制范围之内,不会在设计阶段犯更大的错误,一旦发现有问题,可以及时被纠正,不至于在后期出现大的问题儿重复返工。

这两种工程形式一种是从设计阶段就开始外发,一种是从编码制造阶段开始外发,无论是这两种的哪一种都是提供了一种规范,甚至是要进行提前的培训。当你无形的接受了这种规范和限定也就意味着可以不。作出一些不必要的错误从而间接保证了工程制造的质量。但是这种项目最大的问题就是他的创造力和参与感是有限的。

之前我们介绍了两种,其实还有第3种项目,要比前两种项目。,给予了更大的权限和自由。对方是从需求阶段进行。是从需求阶段就将任务转发给中方。这样接收方可能是从最基本的PPT阶段开始做需求分析,做设计编码制造,做测试。直到交付整个系统给对方再进行验收。这种项目的难度是最大的,因为对方并不限制你具体的设计以及制造方式,更多的时候是要最后的工程成果而不强求参与其中,但会把具体的前期阶段的需求提的尽量明确。

并且前两种项目有一种叫做基盘的部分。有了这个就意味着已将技术的基本的工程部署方式,使用的语言工程环境基础工具,业务模板等重要的技术难关以克服。而后续的编码工作只针对业务逻辑的编码。这样工程就被进一步的分解,难度进一步的降低,但同时可以保证编码制造阶段的质量可以控制。因为难度一再被分解而到最后的单元内的困难相对就比较少了,主要的难点在于业务的复杂,而不在于其他周边技术的难题所造成的困扰。

以上说的是日本的项目。而对于一些欧美项目基本上来说很多都是从需求甚至连需求都是很模糊的阶段,就交给中国团队来做。并且不限制你的设计方案不限制你的编码规范。如果说日本人会在基础架构部分和技术选型部分,甚至包括涉及的制造方式。部分给予指导,甚至是硬性规定,但是在欧美项目当中所遇见的是一种交钥匙的项目。,交钥匙的项目交付方式只看最后的成果。

日本的项目有传统的瀑布式项目就是设计部分很明确的,把设计书写的很详细。同时日本也有敏捷像。从最模糊的需求和PPT开始做起,但很有意思的事,后者这种基于敏捷的项目可能是日本在美国的团队的做法。而不是传统意义上的日本本土的信息工程项目。而欧美项目有很多是来自于美国,加拿大。以及欧洲北欧国家的项目。

相对来说日本项目规定的很严格,设计的很详细但不代表就没有错误,一样会在设计阶段产生很多的错误。并且因为工程划分。的很仔细,相对的制造阶段的工作的难度也降低了,对人的要求相对也比较低。欧美项目相对主要的业务就比较复杂,对技术的要求和人沟通能力比较高。但日本项目的好处在于它可以相对的控制工程质量降低人力成本。而欧美项目本身对人的技术相对要高,并且人力成本也比日本项目要高,对人的技术要求相对也高。这也是两种项目模式和两种工作方式的不一样的。

因为历史的原因,可能再也不会经历类似的这种日本项目或者欧美项目,对于大多数人来说。

而我们现在谈一下信息安全系统,其实信息安全系统也是信息系统的一种,同样具有着信息系统的一些特征。对于我们今天常说的这种安全管理系统是对整个安全事件发生过程中的全周期信息管理。

无论你使用哪种工程模型,可能和安全系统的构建工程方式都不太一样,。具体不展开细说。对于正常的业务系统来说,如果不发生入侵事件,可能对应也不需要再跟安全信息系统进行任何交互。但是一旦发生了入侵行为,要想要信息安全系统发挥作用。就需要信息系统从各个方面来发现攻击的行为的蛛丝马迹。

威胁的发现分为主动式与被动式两种方式。

主动的发现威胁和主动的发现自身内部系统的问题是两个方向。自身问题的发现是依靠漏洞扫描,端口扫描,代码审计等相关的这些内部检查来发现本身的漏洞问题,对应一系列的主动发现工具链,几乎每个公司或多或少都需要这样的工具,用于自发的安全部检查。

这种检察室通过其他安全工具与本身业务系统发生主动的交互来发现问题。除此之外当这种手段无法发现所有的问题是需要另外一种角度来保护系统。比如从另外一个角度来分析系统是否正常或者发生异常的行为。例如通过分析系统的日志,系统请求的流量和相应的流量日志,通过探针代理。监听服务在工作当中是否有异常?对于整个系统的输入进行检查是一种必要的。检查。业务系统也是信息系统。而一个正常的信息系统一定会出现这样或者那样的问题,一个正常的信息系统一定会有对应的输入数据和输出数据。而安全信系统其中的一个作用就是用于检查业务系统的输入输出当中是否有异常,系统生产日志中是否有非正常的日志产生?通过对业务系统的输入输出和内部运行的日志审计鉴定发现被关注的系统是否有问题?

典型的网站系统就会有输入和输出,有请求和响应。而这时就是有一种安全监控系统去监控网站服务的输入和输出。就是我们常说的web防火墙。而对于有些安全系统来说他取得被保护应用系统日志。可以从多种角度取得。还用web系统为例。安全防护系统可以从网络四层直接提取web网站服务的输入html协议请求数据,也可以从7层直接取得网站的输入。简单说就是将一个外部的服务的请求是从网络TCP层就开始监听取得流量数据。转换成日志,还是从7层当请求到达web服务器之后进行输入的检查。

举例来说其实可以在WEB服务在网络层,我从TCP协议流量中通过某些工具取得7层html的请求日志。也可以在请求到达WEB服务器时,通过服务器提供的API取得7层请求数据,就是我们传统的7层waf。

而对于我们来说我们的业务系统很多时候不单单是WEB服务,有很多服务是基于TCP协议的,那我们可以在流量中对TCP协议的数据进行解析,通过数据的特征发现是否存在异常的行为。这是建立在流量分析的基础上。

而无论是7层还是4层的数据流量监听。都是基于对数据的一种过滤发现其中存在的问题。再比方说对于一个网站服务来说,最大可能出现的问题是在他的请求数据当中存在的威胁请求数据。简单来说可能就是URL。传统的系统发现异常类似于一种字符串或是正则匹配的模式去发现URL这个字符串中可能出现的异常点。但是这种基于URL字符串的匹配模式存在一定的局限。因为基于这种自发匹配规则是要针对相应的数据的,而数据的模式几乎是无限的,总有一种方式是可以绕过。系统的检查的。并且无论怎么变化,基本还是传统的字符串儿匹配和字符串查找的这种模式。并且字符串查找的模式是基于已知危险的匹配,对于未知危险的模式的匹配,这种形式的系统是解决不了。

而这时我们能不能有一种方式可以跨越这种简单的字符串匹配模式,从一个新的角度,新的纬度来发现URL中的异常。这就是后续的基于大数据算法的分析,基于机器学习和统计学的威胁分析。我们要跨越URL这种字符串匹配模式。将URL变换成另外一种数据形式或者信息形式便于大数据算法利用,对于这些基本的数据不再是字符串,而是其他例如矢量或者其他某种形式的信息方式。这次的URL经过这种形式的转换已经不单纯的是字符串,而是变成了一种高级统计算法可以识别的输入数据不再是简单的字符串。而这种跨越了字符串检查模式可以不断的根据数据的增加自动生成威胁规则匹配。只要你去定义什么样的数据是危险的数据就会把类似的数据进行处理并且产生一个威胁数据的描述模型。同时这种威胁不再是一种基于字符串的模式。

但基于大数据统计和相应机器学习算法是一定可以解决所有问题吗?其实显然也不能,因为大数据的模型本身也有它的局限。是不是某一特定的模型就能覆盖所有的未知的危险,是不会随着时间的增长可以解决所有的问题呢?显然和基于正则的这种模式的检查一样,也有很多不确定的问题。

这两种形式是可以进行互补的,是众多安全检查手段当中的一两种。可能未来还会创造出更多了威胁检查机制不仅仅是基于数据的,也不仅仅是基于简单模式匹配的。地球人都知道。

但是无论哪种方式,有一种问题都有待于需要解决,并且不会因为你采用了哪种高级的算法,就可以解决那个问题,是什么问题呢?就是工程问题,你算法设计的再精妙,也要解决基础搬砖问题。也就是说现阶段算法只是整个系统中的一部分,对于系统的输入管理,输出管理其他的供工程技术栈。都不是一两个高级统计算法可以解决的,搬砖问题还是搬砖问题?不会因为一个高级算法就不会去操作数据库,不会因为一个高级算法就不会操作内存。安全系统除了核心的策略算法,还有更多的基础的工程工作需要去做。

也许未来工程人员可以利用更高级的机器编程来降低工程技术人员的劳动量。但是使用高级的技术,自动化的基础会在另外一方面进行代价的补偿。就像你使用高级语言带来了很高的代码生产性别,但是基于自动化的部分并不一定是最高性能的。人们会花一部分时间去制造这种高级的工具。再用一部分时间去优化,用这种工具编写出来的软件儿的性能。如果你不考虑硬件成本,显然这种对硬件解决性能问题也是可以的。但某些场景下只能用最笨的方法解决问题才能得到高性能,而这样往往牺牲了工程制造的效率。以后这个问题会不会解决?这个矛盾会不会不存在不确定?以后再说。

而简单来说,这种模式的信息系统是同步于业务系统同时存在的,因为业务系统不能正确或者适当的处理非法或者异常的数据,才需要这种类型的信息系统去预警系统中非法行为的存在,并且给予报警或者阻断。如果业务系统本身足够强大可以容错可以识别异常攻击行为,那攻击行为对于业务系统来说是束手无策的,相对来说甚至可以不需要安全系统,去帮助。业务系统发现危险,但很多时候业务系统不具备这种完备性。

而当你主动的去发现业务系统的问题和结合被动监听业务系统的威胁两种方式都无法拦截攻击的时候。就要进入信息系统的沦陷后安全信息管理。。

我们如何发现攻击者留下的痕迹呢?一般情况下我们是在攻击行为发生时记录行为,其实攻击行为本身也是一种正常的系统操作行为,只不过这种操作行为所蕴含的一种恶意的目的。如果我们这么来看,把攻击行为也理解成为一种系统应该接受的行为,也一定会有作出反应的行为,那对于这种行为,每一步的操作都要有对应的日志记录。我们通过对流量的日子转换存储。我们对信息业务系统本身的程序执行阶段的日志进行记录。不这日志系统就像冬天里的雪地一样会让攻击者留下脚印,当然攻击者也可以毁灭日志以及留下的痕迹。但对于攻击者可操控的系统,他的日志可以被毁灭的,但对于旁路监听或者攻击者无法干预的这种日子的记录,就会记录下攻击者的日常行为。也就是说这是两个并行存在的系统,在另外一个系统用于记录供热的痕迹。比如流量转换的日志。

而有一种系统和被攻击系统同时共生的。比如hids系统。这种系统的主要有两部分组成一种是数据的收集,另外一种是数据的分析。数据的收集呢,要保障本身的程序的可靠性以及不对其他进程产生干扰。另外的分析呢,要注意的是报警的准确性和和误报率的控制。

当一切的安全防护系统都成为徒劳时。我们就要从已经存在日志当中寻找攻击者的来路已经留下的操作的痕迹。我们会再一次对日志进行审查,发现是否存在异常。我们会再次确认我们的服务和程序是否发生过变化?我们会确认系统当中是否有我们未知后加的威胁进程。我们会对现有的工程代码进行升级扫描。这样重复迭代曾经的主动安全检查。进行整个系统的取证工作。日志审计工作,等集中管理工具的执行。,来评估我们可能的损失和造成威胁的大小。

可以说,被侵入的系统已经变成了一个全新版本的系统服务。只是对我们来说这些新加的功能和新加的服务,经常不是我们预先所期望的,是一种别的攻击者,强加于我们的系统之上,我们就要观察出这种系统的变化是如何被攻击者进行升级的。如果我们可以准确的归纳出这种变更,也就可以看出我们的损失和我们被利用的地方在哪里?所以被攻击的主机可以理解成是黑客强加的一种系统服务升级和代码变更和新服务的开启。如果我们的安全检查手段可以检查到这种变更存在。就相当于可以发现危险。如果可以实时的发现这种变更存在,就可以实时的发现危险。如果只能在被攻击之后发现了。说明我们前期的安全监控系统遗漏了威胁攻击行为,没有准确定位到攻击的发生。

安全信息系统是用于保护业务信息系统的信息系统。有各种的子系统构成。系统在威胁发生时,威胁入侵成功后面。的整个周期中进行安全交互管理活动。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 糖果的实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档