当前位置:C++技术网 > 精选软件 > 服务器安全防护:3 源头控制场景分析-开放式IP控制

服务器安全防护:3 源头控制场景分析-开放式IP控制

更新时间:2018-11-29 14:50:51浏览次数:1+次

    在文章《服务器安全防护和保护措施方案》一文中,我已经罗列了从源头到最末端的所有控制方式。
    不管对于什么东西进行控制,从源头控制,效果是最好的。当然,这里不是应付DDOS攻击的,DDOS攻击不在本文讨论的范围内。
    对于IP控制,我这里将类型分为两大类:封闭式和开放式

    接上一篇《服务器安全防护1-源头控制场景分析-封闭式IP控制》:
2.开放式
    如果服务器是需要对大众开放的,此时没有办法直接封闭式控制。我们就需要采用开放式的源头控制策略了。


下面看看开放式策略:
-开放式:白名单IP允许
-开放式:黑名单IP禁止
-开放式:业务行政物理地址外IP禁止(IP归属地),消除代理攻击
-开放式:业务行政物理地址内IP允许(IP归属地),消除代理攻击

    对于开放式的,最常用的就是黑白名单策略。较少采用的还有IP归属地策略。
      其实我们在讲源头控制,主要也是为了防止攻击渗透。所以针对黑白名单里的IP也是主要根据访问的特征进行区分的,合理的进入白名单,非法的进入黑名单。判定合法和非法,一方面是已知的IP,我们可以人为加入白名单,黑名单则更多是分析出来有恶意攻击渗透行为,才被加入到了黑名单。这种策略也是非常有效的,相比于封闭式控制,这样会相对开放。我们这里说的是黑白名单的机制的原理,并不是指一个黑白名单IP列表。拉黑处理可能一方面需要人为分析,另一方面可以借助程序分析。对于服务器运维人员,更多是人为分析,借助相关的防护软件来实现自动的拉黑,只需要设置相关的策略。如果没有相关的软件程序,我们可以自己在应用层写一个处理程序实现。
      那么如何判定请求是否合法呢?这个工作才是重点工作,黑白名单机制倒是很简单,把对应的IP放进去就可以了。而判定恶意攻击则需要分析请求的相关的数据。这个就需要有样本数据,去分析常规的攻击,一般都是以什么样的套路在走,然后我们顺着这个思路,就可以进行防护。最简单的判断就是(同一个IP):明显有扫描自动化请求的、高频请求、无效请求、恶意数据、脚本注入、SQL攻击等等。详细的策略,将在后续的文章里阐述。
      那么基于IP归属地的策略,则是更宽泛的策略。不过需要注意的是,这个策略并不准确。为什么说不准确呢?
      IP归属地库是会定期更新的。更新的原因是IP会经常变化。IP是互联网的一个公共财产,所有计算机都共享的一个资源池。在动态变化的过程中,用户计算机被分配的IP也在变化,IP分配给不同运行商和所在地也在变化,所以很难固定一个IP归属地库去查询。但是具体IP的归属更新是如何操作的,推测是在分配IP的时候会有登记吧。不要紧,我们需要知道的是,IP归属地不是固定不变的,而且准确度和登记的信息有关,所以很难说100%准确,而且多家查询网站对同一个IP的归属地也会存在差异。这个策略只能当做一个辅助和粗粒度的控制手段,千万不要当做是唯一的判定依据,否则很容易误判,造成正常用户无法使用服务的情况。
      而基于IP归属地的策略,一般是基于运营业务特点来使用的,比如说一个企业的业务只会在北京运作,那么上海那边过来的请求,多数是不合法的请求。这个策略更多用户拦截代理的攻击,比如很多境外的和业务范围外的地方的IP,基本上就不是合法请求了。对于这类请求我们需要作出拦截处理。但是仅依靠IP归属地,拦截处理不能永久,因为怕有误判,而且IP归属地更新之后,当时攻击的IP可能分配给了一个完全正常访问的计算机。如果永久拦截,那么这个IP的用户就不能正常使用服务。同理,黑白名单也是如此。
      总的来说,在开放式的环境中,黑白名单和IP归属地都不能用作永久的控制策略,更因IP归属地本身带有不准确性,更是如此。当然,对于指定的服务器的访问,这是可以固定的,因为服务器的公网IP是固定不变的。对于用户端的IP就不能简单的永久限定了,需要定期解除限制。也就是限制频率。降低攻击的频率,也就提高了服务器的稳定性。
      在后续的文章中,将会对这些策略的具体情况以及如何实现加以说明,一起期待吧。