SuperMap GIS系统的安全与防护

地信行业我知道 发布于 2015/11/27 11:59
阅读 512
收藏 0

互联网时代,用户信息泄露事件时有发生。在201412月,摩根大通银行被黑客攻击,导致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服务,则需要保证服务器的正常运行,不会因为网络攻击而宕机,其安全性是至关重要的。在对其部署过程中,可以从以下几方面进行安全防护。

1GIS服务器(包括GIS应用服务器、GIS分发服务器、GIS门户平台)、GIS数据库及防火墙都有默认的端口号,由2015海康威视事件的经验所知,在部署服务器过程中,为了更安全,应修改默认的密码,有必要时修改默认的端口号。

对于GIS服务器,启动时,HTTP的默认端口都是8090HTTPS的默认端口是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个字符。在安全要求极高的环境中,需要定期更改密钥。

3GIS门户平台可以将分散、异构的GIS服务器中的地图、服务等GIS资源进行整合和统一管理,因此,对其数据库的安全管理是非常必要。既需要在安装数据库时修改默认端口号,也需要设置专用账户(非root),并设置复杂密码。

4)设置反向代理服务器,使Web客户端的请求通过反向代理转发给内部网络系统上的服务器,并将从服务器上得到的结果返回给Web客户端。经过反向代理,客户端并不知道内部网络中有其他服务器的存在,因此对内网服务器可以起到保护作用。

可以使用NginxApache配置反向代理,下面以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加密通信。

HTTPsHypertext Transfer Protocol Secure,超文本传输安全协议)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定。SuperMap GIS服务器中(默认为Tomcat容器),有JSSEAPR两种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应用与后台通信的安全,应对发送的信息使用MD5DES等方式加密。在Web应用开发完成后,需要进行代码混淆,最后部署上线。

4          通用的安全防护

基于GIS系统是一种应用系统,您可以采用应用系统中通用的措施进行安全防护。下面将介绍一下通用的措施。

1)提高密码的复杂度。

12306网站用户信息泄露事件可知,提高密码的复杂度,对不同的GIS系统设置不同的密码可以在一定程度上保护账户信息。为保障GIS系统的安全,在设置密码时,应使用强口令,即密码应该设置8位以上,且由字母、数字、特殊字符混合组成。

2)对操作系统进行安全防护

GIS系统的运行需要有操作系统的支持,可以对操作系统做一定的安全措施。

A)为操作系统安装杀毒软件、软件防火墙,并定期更新病毒库。

B)定期更新操作系统,可以修改操作系统的潜在漏洞。

C)定期备份操作系统日志。

D)关闭不必要的系统服务,如FTP服务、SMTP服务、TFTP服务、多余的管理员账户等。

3)配置硬件防火墙。

GIS系统是生长在硬件系统上的应用,为机房配置硬件防火墙可以为内部网络增添一道安全屏障。常见的硬件防火墙厂商,有国外的CiscoNetScreen,国内的华为、联想网速等。

 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安全风险降至最低。需要注意的是,安全是一个持续的过程,需要您的长期、持续关注。

返回顶部
顶部