免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1112|回复: 0
收起左侧

[技术交流] SuperMap GIS系统的安全与防护

[复制链接]

16

主题

156

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
96
发表于 2015-11-25 14:16 | 显示全部楼层 |阅读模式
互联网时代,用户信息泄露事件时有发生。在2014年12月,摩根大通银行被黑客攻击,导致7600万家庭和700万小企业的相关信息被泄露。同年12月份,12306也发生了用户信息泄露事件,该事件经分析指出,是经 “撞库攻击”所致。该攻击是黑客通过获取用户在A网站的账户从而尝试登陆B网站,从而获得用户的相关信息。
网络信息系统所面临的威胁来自很多方面,如各种自然灾害,网络设备的自然老化,注入攻击、文件上传漏洞、XSS(跨站脚本攻击)、访问控制、DDOS(应用层拒绝服务攻击)、点击劫持等。在面对如此多的威胁时,可以通过某些安全措施提高安全等级。GIS系统的安全包括在GIS数据、GIS服务器、GIS服务、操作系统等层面,要提高GIS系统的安全等级,则需要从以上各方面做到安全的防护。
针对上述几方面,SuperMap已在自己的GIS产品内置了一些安全防护手段,来应对这些攻击,保障系统安全。但是,系统安全与业务环境、机房环境、操作系统环境、安全意识等息息相关,用户在使用SuperMap GIS平台产品进行业务开发、部署的时候,依然需要注重安全,从方方面面杜绝网络攻击。
本文期望能从GIS系统的开发、部署等方方面面做一些指引,使您轻松驾驭GIS系统安全,将潜在威胁最小化。
1          GIS数据处理过程进行防护
GIS数据是GIS系统的核心价值,包括GIS工作空间、基础GIS数据库、地图瓦片等。因此,保障GIS数据的安全是非常必要的。可以从以下几方面实施安全措施。
1)对于GIS数据的安全,可以通过设置密码进行加密,让其穿上“防弹衣”。如GIS工作空间在进行保存时,可对其设置密码,从而保障数据安全。如下图所示:
2)面对一些自然威胁,可以通过定期备份的方法,确保GIS数据的安全。对于文件型数据源(.udb),可以通过文件复制进行备份。对于数据库型数据源,采用数据库本身的备份策略进行备份。数据的备份尽量做到不同盘符、不同机器或不同机房,使数据永生。
3)检查GIS数据服务的“允许编辑”选项并默认关闭。如果“允许编辑”,则可以通过GIS服务修改云GIS中心的GIS数据,降低了安全等级。所以,要根据具体应用是否有修改云GIS中心的GIS数据的需求来按需设置,如果没有则关闭该选项。
2          GIS服务器部署过程进行防护
GIS服务器可提供各种各样的GIS服务,则需要保证服务器的正常运行,不会因为网络攻击而宕机,其安全性是至关重要的。在对其部署过程中,可以从以下几方面进行安全防护。
1)GIS服务器(包括GIS应用服务器、GIS分发服务器、GIS门户平台)、GIS数据库及防火墙都有默认的端口号,由2015年“海康威视事件”的经验所知,在部署服务器过程中,为了更安全,应修改默认的密码,有必要时修改默认的端口号。
对于GIS服务器,启动时,HTTP的默认端口都是8090,HTTPS的默认端口是8443。要对其默认端口进行修改,则需要在服务停止时,打开【安装目录】/conf/server.xml 文件,修改其中的<Connector port="8090" … />、<Connector port="8443" … />,修改为您自己设定的端口号,同步修改Web应用程序,使其向新端口请求服务。同理,对于GIS数据库,先找到相应的端口配置文件,修改为您自己设定的端口号。不管是Windows还是Linux操作系统,都应开启系统防火墙,只允许必要的端口通过,具体的修改方式需根据具体的操作系统而定。
2)对于GIS服务器发布的GIS服务,也可对其进行一定的安全防护。SuperMap支持按用户角色授权访问,并支持Token(令牌)机制供Web应用安全对接。
以GIS应用服务器SuperMap iServer 7C(2015)为例,在服务实例页面(http:// <host>:<port>/iserver/manager/instances)中,可以查看每个服务实例的安全状态。如果锁的标识为灰色,表示该服务实例是匿名可访问的;如果为蓝色,则该服务需要登录验证后才可以访问。对于不同用户、不同应用所需的GIS服务,需要对每个实例进行授权,确保权限最小化,如下图所示。当GIS授权后,仅隶属于授权角色的用户才可以访问,并且需要先登录,或者携带有效的Token。
Token是包含用户名、有效期和某些专有信息并通过共享密钥加密的信息字符串。对于已注册并具有服务授权的用户,可以自助获取Token。用户访问申请地址(http:// <host>:<port>/iserver/services/security/tokens),输入相关参数用以验证,并单击“生成令牌”以获取Token。
对于管理员可指定/修改密钥,进入(http:// <host>:<port>/iserver/manager/security)可查看当前GIS服务器的共享密钥,如下图所示。密钥变动后,之前发布的所有的Token立即失效,用户需要重新申请。
为有效保障GIS服务的安全,Token共享密钥应不少于16个字符。在安全要求极高的环境中,需要定期更改密钥。
3)GIS门户平台可以将分散、异构的GIS服务器中的地图、服务等GIS资源进行整合和统一管理,因此,对其数据库的安全管理是非常必要。既需要在安装数据库时修改默认端口号,也需要设置专用账户(非root),并设置复杂密码。
4)设置反向代理服务器,使Web客户端的请求通过反向代理转发给内部网络系统上的服务器,并将从服务器上得到的结果返回给Web客户端。经过反向代理,客户端并不知道内部网络中有其他服务器的存在,因此对内网服务器可以起到保护作用。
可以使用Nginx或Apache配置反向代理,下面以Nginx为例说明具体的配置方法。打开【Nginx安装路径】\conf\nginx.conf文件,修改http节点下的server节点内容如下 所示。
server {
        listen      192.168.120.42:8000; //设置代理后的服务监听端口
       server_name   www.myiserver.com;  //设置代理后的服务器名称
        location / iserver{
        proxy_pass   http://192.168.112.217:8090/iserver;  /*设置需要转发的GIS服务地址,*/
        #proxy_set_header Host $host:8000;
        proxy_set_header ProxyHost $host:8000;
}
}

配置好后,就可以访问代理后的访问地址http://www.myiserver.com:8000/iserver,因此,代理前的IP地址(192.168.112.217)及8090端口均被隐藏,使服务器的安全等级提高。
5)使用HTTPS加密通信。
HTTPs(Hypertext Transfer Protocol Secure,超文本传输安全协议)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定。SuperMap GIS服务器中(默认为Tomcat容器),有JSSE和APR两种SSL方式配置HTTPs连接,下面以JSSE为例说明具体的配置方法。
使用JSSE方式配置HTTPs,第一步需要生成服务器证书(公钥),
Windows:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA -keystore D:\key.keystore
Unix:
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /home/key.keystore
其中,-keystore 参数指定的是证书的存放位置,可以任意指定。
按照提示输入密码(部署时 Tomcat 默认使用“changeit”作为密码),如“123456”,输入相关信息后确认。
第二步需要修改Tomcat配置,即修改 server.xml 配置文件(位于【安装目录】\conf目录),开启 SSL
注释掉如下配置,不使用 APR:
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

找到 SSL HTTP/1.1 Connector 的配置,即:
<!-- Define a SSL HTTP/1.1 Connector on port 8443
         This connector uses the JSSE configuration, when using APR, the
         connector should be using the OpenSSL style configuration
         described in the APR documentation -->
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
        …
-->

去掉注释,修改如下:
<Connector port="8444" protocol="HTTP/1.1"
                   SSLEnabled="true"
                   maxThreads="150"
                   scheme="https"
                   secure="true"
                   URIEncoding="utf-8"
                   clientAuth="false"
                   keystoreFile="D:\key.keystore"
                   keystorePass="123456"
                   sslProtocol="TLS"/>

最后,重启 Tomcat,即可在8444端口通过 HTTPS 访问 GIS服务,如https://localhost:8444/iserver/services 。
3          Web应用开发及部署过程进行防护
SuperMap提供客户端GIS程序开发工具包——SuperMap iClient,您可以基于iClient开发二维/三维行业Web应用。在Web开发和部署过程中,也应注意一些安全事项,以是您的业务系统更安全。下面将介绍几个常用的安全防护手段。
1)对HTML标签过滤。用户输入的东西(如注册信息、评论等)有可能被利用做HTML注入或JS注入。HTML注入可能导致页面错乱、出现非法链接等;而JS注入可能导致页面运行非法脚本,出现非法交互、信息等。为了避免这样的注入导致业务系统的不安全,可以在页面输入的地方,对HTML标签及一些特殊的字符做过滤,将其转化为不被浏览器解释执行的字符。以JavaScript为例,处理方式如下所示。
//定义一个字符串,该处理方式是HTML编码,还有URL编码。
var content="<div><input type='text' value='userName'></div>";
//将所有的< 替换为"&lt";
var content1= content.replace(/</gi,"&lt");
//将所有的>替换为"&gt";
var content2=content1.replace(/>/gi,"&gt");
//输出最后的字符串"&ltdiv&gt&lt input type='text' value='userName'&gt&lt/div&gt"
doucment.write(content2);//属性字符过滤

2)前后台加密
为保障Web应用与后台通信的安全,应对发送的信息使用MD5、DES等方式加密。在Web应用开发完成后,需要进行代码混淆,最后部署上线。
4          通用的安全防护
基于GIS系统是一种应用系统,您可以采用应用系统中通用的措施进行安全防护。下面将介绍一下通用的措施。
1)提高密码的复杂度。
由12306网站用户信息泄露事件可知,提高密码的复杂度,对不同的GIS系统设置不同的密码可以在一定程度上保护账户信息。为保障GIS系统的安全,在设置密码时,应使用强口令,即密码应该设置8位以上,且由字母、数字、特殊字符混合组成。
2)对操作系统进行安全防护
GIS系统的运行需要有操作系统的支持,可以对操作系统做一定的安全措施。
(A)为操作系统安装杀毒软件、软件防火墙,并定期更新病毒库。
(B)定期更新操作系统,可以修改操作系统的潜在漏洞。
(C)定期备份操作系统日志。
(D)关闭不必要的系统服务,如FTP服务、SMTP服务、TFTP服务、多余的管理员账户等。
(3)配置硬件防火墙。
GIS系统是“生长”在硬件系统上的应用,为机房配置硬件防火墙可以为内部网络增添一道安全屏障。常见的硬件防火墙厂商,有国外的Cisco、NetScreen,国内的华为、联想网速等。
4)制定GIS系统安全自查表
本文中介绍了很多保障GIS系统安全的方法,为了能够把GIS系统的安全等级提到最高,可以制定自查表,把所有的安全防护手段都写进表里,对每个自查项进行检查,并填写自查结论。下表为GIS系统安全自查表的一部分,您可参考本文提到的安全防护措施制定详细的自查表。
表 GIS系统安全自查表
编号
自查项
优先级
自查结论
1
GIS工作空间是否加密?

2
存基础GIS数据的关系型数据库,是否有专用账户/密码?

3
存地图瓦片的MongoDB数据库,是否有专用账户/密码?

4
GIS缓存(紧凑型)是否设置了密码?

5
是否修改了三维服务的初始密码?

6
密码复杂度(含GIS服务器管理密码、GIS数据库密码、工作空间密码、三维数据密码等)

7
是否安装了杀毒软件?

8
是否开启了系统防火墙?

9
除GIS服务(默认端口8090)外,OS是否开放了其他端口?

10
数据库和GIS服务是否使用了默认端口?

11
服务器是否禁用了不必要的服务?

12
iServer上是否开启服务安全?并对GIS服务分别授权?

13
确认GIS数据服务是否有必要开启“允许编辑”选项?

14
token共享密钥是否足够复杂?

15
是否定期修改密钥?

16
是否使用了https加密通信?

17
是否使用了代理服务器

18
是否定期备份GIS服务器配置?

19
是否定期备份基础GIS数据库?

20
是否配置邮件通知?

5          结语
在国内,GIS数据被列为基础性、战略性信息资源,政府对GIS数据的保密级别有明确的规定,在GIS应用中如何避免网络攻击、避免敏感信息泄露,是各级组织都应重视的问题。
本文从GIS数据、GIS服务器、GIS服务、操作系统、硬件系统等方面描述了GIS系统安全防护的解决方案,期望能协助您提高GIS应用的安全等级,把GIS安全风险降至最低。需要注意的是,安全是一个持续的过程,需要您的长期、持续关注。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表