由XSS到网络安全

这是本人大一上期末水的一篇期末作业,当时刚接触网络安全,整体思想以及技术水平还是比较稚嫩的,但是文末对安全的理解,即“完全的公开或者是相对的保密”是作为我的安全方向的本体论贯穿我的整个学习以及工作生涯的。

今天整理博客一并上传。


内容摘要:XSS(Cross Site Script)作为一种常见的漏洞早已在网络中泛滥成灾,虽然一些安全厂商在这种简单但是一经利用就会有极大威胁的漏洞上还是花费心思进行过滤的,但是企业却似乎毫不重视,联想至网络安全的现状以及以及曾经由乌云开启的乌云众测下的白帽时代,不经感慨万千。

关键词XSS 网络安全 风险评估 等保

XSS简述

XSS的全称是跨站脚本攻击,是在网页中只要有对外的接口很容易发现的漏洞,根据其涉及的攻击方式,普遍将其划分成反射型,存储型和DOM型,其中反射型最为常见也运用最广。反射型XSS最基础的测试方式就是构建类似于“”的语句,而成功构建弹窗就是XSS的一个里程碑。而相对的防御XSS的方式也是极为简单的,只要在代码中加入相应的过滤方式(如:用双引号扩起属性值,转义HTML中的特殊字符等)就可以防御这类攻击。可所谓道高一尺魔高一丈,和其他常见的网络漏洞一样,XSS的虽然原理简单,可是攻击方式千奇百怪,层出不穷,这也要求安全防御人员能与时俱进,添加新的XSS过滤方法。

简单分析

我当初学习完XSS以后随手找了一个网站进行测试时发现的一个及其匪夷所思的问题促使我去思考我们国家网络安全的现状。
这个问题的具体实现是这样的:我先在网站的搜索框中输入<script>alert(1);</script>的语句,点击搜索,然后就跳出了创宇云安全拦截的界面而这个网站的管理人员似乎为了简化搜索,还设置了一个只要你在搜索框中输入搜索项就可以直接响应搜索结果,就这样,当我关闭掉拦截页面时,我构造的弹窗出现了。

这能说明什么呢,我想了想。大致有以下几点:

  1. 当安全人员不停的进行安全防护时,企业方在不停地添加新的漏洞,这说明了安全意识在企业方还是相对薄弱的。即使随着各种各样的安全问题不断地出现,各种中小型公司也开始注重安全这个方面,可仍旧有不少的企业厂商抱着侥幸的心理不去做安全方面的措施,而这种行为只会助长各种安全问题的。
  2. 国内的从事网络安全的工作人员总体水平还是普遍偏低的,当这类的人员在某些公司负责该公司的安全问题时,公司难以抵挡外部的攻击,造成难以弥补的损失。
  3. 其实这种最基础的问题的出现反映了一个相当重要的问题:安全常识的缺失。如果说一些“高质量”的攻击厂商没有能抵抗攻击,这也是没有办法的事情。但是,像这种最基础,最简单的漏洞,厂商还是会放出来,只能说是厂商的安全常识缺失,认为将安全外包给一些所谓的安全公司就能万无一失。这种常识的缺失是要命的,因为这很容易发生类似的现象发生:安全人员将一些常见的漏洞过滤掉以后,开发人员不停地去制造新的漏洞。

浅谈我国网络安全

在我第一次接触网络安全时,那时网上讲课的老师说过一句话给我留下了深刻的印象:如果让我去拍一部关于国内信息安全的纪录片,我首先要拍的就是北京的雾霾。虽然发展到现在,许多高校都开设了网络安全,信息安全相关的专业,专业课的设置也越发的合理化,可大多数的安全专业也难逃“计算机+数学”这种套路。其实我认为我国的网络安全发展相对落后于某些欧美国家,主要原因就是信息的相对封闭以及一些人的思想固化导致这门专业难以系统化,难以在一开始就将教学与实践相结合。

相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国很多的野路子出身的网络人才都相对处于一种怪现状,结合自身我相对的总结了一些:

  1. 重视“攻”, 轻视“防”。攻与放是两个对立又关联的两面。所谓不知攻怎会防,
    我们再学习时都是先从攻击开始学习的,而这也是安全学习中相对有意思的部分。可是最终的结果难免差强人意,攻击的思路一套一套,但若是谈及如何预防或者解决,一句“厂商加强防护”就完事了。
  2. 重视“技术”, 轻视“业务”。 安全是个技术对抗非常激烈的领域,但这并不代技
    术高超就能把基本问题解决的很好,黑灰产对抗就是个非常好的例子。作为一个产业,现在的黑灰产已经形成了一个完整的链条,每个环节都有大量的从业者各司其职。相比较那些神奇的0day,除了极个别情况,黑灰产使用的技术都是相对基础的。即使如此仍然有大量网站被简单的注入或者弱口令攻破,无数个人信息都在地下黑市被贩卖,如果没有徐玉玉案件引起国家重拳,现在的情况可能更为糟糕。商业上的薅羊毛也让众多电商网站承受资损并搅乱了市场公平,但行业里相关的人才却很稀缺。
  3. 重视“反向能力”, 轻视“正向能力”。 很多人都是从渗透、逆向、分析漏洞入门
    的,其实这些都是反向能力,如果要达到相反的目标,也就是防止渗透、防止逆向、设计没有漏洞的系统,一种是“反反向能力”,一种是“正向能力”,两者并不相同。而大多数人都重视反向的能力,正向能力却懈怠了。
  4. 重视“人肉”, 轻视“自动化”。这是一种很奇怪的想法,认为很多的东西通过手工
    的手段检测出来就是好的,而不去想一想如何通过自动化的机器的方式去实现。就拿逆向来说,大多数的工作都是纯粹的体力劳动,而很少有人去试图通过机器的方式来简化这一步骤。

乌云创始人将中国的网络安全发展史分成三个阶段:

  1. 黑客时代。从上世纪90年代到10年之前,没有纯粹的白帽子和黑帽子之分。黑帽子
    可能会给企业提交漏洞,但是没有可预期的回报,他们可能也会做黑产,利用自己的技术犯罪。同一个人也许有黑白两个身份,没有清晰的边界。
  2. 前白帽时代。从2010年乌云建立开始,黑客渐渐分化成了两个群体:白帽子和黑帽
    子。代表理想主义情怀的白帽子在发现企业漏洞之后,提交到乌云或其他平台,获得声望;而代表现实主义的黑帽子发现漏洞之后,卖给地下黑产,和这个世界玩捉迷藏。
  3. 后白帽时代。2016年“世纪佳缘案”和“乌云事件”之后,白帽子群体分化,有些
    白帽子选择了“授权测试”的平台,完全守法,不再公开漏洞。有些白帽子转而从事其他职业,有一部分边缘白帽子转入黑产,进入地下。目前来看,他们从公众的视野里消失了。
    而真正意义上,人们通常将信息安全分为三阶段:通信保密阶段、信息安全阶段、信息保障阶段。
  • 具体来说,第一阶段:1995年以前,以通信保密和依照TCSEC的计算机安全标准开展计算机的安全工作,其主要的服务对象是政府保密机构和军事机构。

  • 第二阶段:在原有基础上,1995年开始,以北京天融信网络安全技术有限公司、北京启明星辰信息技术有限公司、北京江南科友科技有限公司、北京中科网威信息技术有限公司、北京清华德实科技股份有限公司、上海复旦光华信息科技股份有限公司等一批从事信息化安全企业的诞生为标志的创业发展阶段,主要从事计算机与互联网的网络安全。
    从1999年起,将信息安全的工作重点逐步转移到银行与电信信息化安全建设上。2000年我国第一个行业性质的《银行计算机系统安全技术规范》出台,为我国信息化安全建设奠定了基础和树立了示范。这个时期主要提供的是隔离、防护、检测、监控、过滤等中心的局域网安全服务技术与产品,其主要面对病毒、黑客和非法入侵等威胁。到2001年,一时间全国成立1300多家从事信息化安全的企业。

  • 第三阶段:以2002年成立中国信息产业商会信息安全产业分会为标志的有序发展阶段。这个阶段不仅从事互联网的信息与网络安全,而且开始对国家基础设施信息化安全开展工作,产生了许多自有知识产权的信息与网络安全产品。

本文虽然着重于讨论网络安全,但是将信息安全这么一个相对较大的范围放在这里比较也是可以说明安全这方面在我们国家发展相对于西方是滞后的,而其滞后的主要原因私以为还是因为安全这方面的受众面小,普及率不高,在一段时间内甚至是不受重视的。

现在网络安全突然蓬勃发展,一方面是企业开始重视了,另一方面国家的重视也是为网络安全的发展起了很大的助推作用。所以说,当下也许可以说是网安的一个新的发展阶段。
问题基本可以通过两种方式解决:法律的和技术的。当问题无法用法律方式解决时,就需要通过技术的手段来解决。网络安全似乎在某一段时间内就是游离于法律之外的的一门学科,而这种“游离”是致命的。一个又一个某某安全学院的关闭,一批又一批的人对这个行业的放弃,都说明着不成体系的行业是没有任何生命力的。随着网络安全法的颁布,各种各样诸如JSRC的约定的使用,在信息安全工作人员和企业之间也是定下了一个默认的协议:什么改做,什么不该做,在某个范围内可以做必要的尝试。这些看似使工作人员束手束脚的约定制定了规则,明确了边界反而让人更能安心来做事,知道底线和边界在哪,反倒能在边界之内放开手脚去干,不必畏首畏尾。

有关等保

等保即信息安全等级保护,是指对国家重要信息、法人和其他组织及公民的专有信息以及公开信息在存储、传输、处理这些信息时分等级实行安全保护;对信息系统中使用的信息安全产品实行按等级管理;对信息系统中发生的信息安全事件分等级响应、处置。

等保测评方法主要分为两种:针对应用系统的,针对数据库系统的。

针对应用系统的有以下的一些要求: 检查关键应用系统,查看应用系统是否具有对人机接口输入或通信接口输入的数据进行有效性检验的功能;测试关键应用系统,可通过对人机接口输入的不同长度或格式的数据,查看系统的反应,验证系统人机接口有效性检验功能是否正确;渗透测试主要应用系统,进行试图绕过访问控制的操作,验证应用系统的访问控制功能是否不存在明显的弱点。

针对数据库系统的有以下的一些要求:检查关键服务器操作系统和关键数据库管理系统,查看匿名/默认帐户的访问权限是否已被禁用或者限制,是否删除了系统中多余的、过期的以及共享的帐户;检查关键服务器操作系统和关键数据库管理系统的权限设置情况,查看是否依据安全策略对用户权限进行了限制;检查关键服务器操作系统和关键数据库管理系统的补丁是否得到了及时更新;检查关键服务器操作系统和关键数据库管理系统帐户列表,查看管理员用户名分配是否唯一;检查关键服务器操作系统和关键数据库管理系统,查看是否提供了身份鉴别措施,其身份鉴别信息是否具有不易被冒用的特点,如对用户登录口令的最小长度、复杂度和更换周期进行要求和限制;检查关键数据库服务器的数据库管理员与操作系统管理员是否由不同管理员担任。

信息安全等级保护的等级根据危害程度由小到大一共分为五个级别:

  • 第一级:信息系统受到破坏后,会对公民、法人和其他组织的合法权益造成损害,但不损害国家安全、社会秩序和公共利益。
  • 第二级:信息系统受到破坏后,会对公民、法人和其他组织的合法权益产生严重损害,或者对社会秩序和公共利益造成损害,但不损害国家安全。
  • 第三级:信息系统受到破坏后,会对社会秩序和公共利益造成严重损害,或者对国家安全造成损害。
  • 第四级:信息系统受到破坏后,会对社会秩序和公共利益造成特别严重损害,或者对国家安全造成严重损害。
  • 第五级:信息系统受到破坏后,会对国家安全造成特别严重损害。

针对各个级别也有相应的保护方法:

  • 第一级:信息系统运营、使用单位应当依据国家有关管理规范和技术标准进行保护。
  • 第二级: 信息系统运营、使用单位应当依据国家有关管理规范和技术标准进行保护。国家信息安全监管部门对该级信息系统信息安全等级保护工作进行指导。
  • 第三级:信息系统运营、使用单位应当依据国家有关管理规范和技术标准进行保护。国家信息安全监管部门对该级信息系统信息安全等级保护工作进行监督、检查。
  • 第四级:信息系统运营、使用单位应当依据国家有关管理规范、技术标准和业务专门需求进行保护。国家信息安全监管部门对该级信息系统信息安全等级保护工作进行强制监督、检查。
  • 第五级:信息系统运营、使用单位应当依据国家管理规范、技术标准和业务特殊安全需求进行保护。国家指定专门部门对该级信息系统信息安全等级保护工作进行专门监督、检查。

而我在实际运用中,等保对我来说可能就是一张表,比如说渗透测试说明书,脆弱性扫描说明书等等。时间(业务空余时间),渗透测试对象,技术手段,可能产生的影响,登陆应用系统可能产生的现象,建议采取的对应措施,测试方采用的措施等,诸如此类的参数影响着风险评估的等级,将指标反馈给企业方,一次完整的渗透测试才算完成,而这也是渗透测试整个过程中非常重要的后渗透测试环节。

近日在freebuf上看到一篇名为《一处代码执行引发的思考》的文章,文中根据file_exists允许传入特殊符号这一点结合/../格式中将第一个“/”前的内容当成目录名处理的漏洞可以轻松地达到执行任意命令的目的。许多安全方面的问题就是细节不到位,正如开头所说的XSS,本应是较好预防的问题,却成了最烂大街的漏洞。

曾经我也思考过什么是安全,思前想后得出一个结论:完全的公开或者是相对的保密

而今后的努力,大多还是放在相对的保密这个层次上。