Shodan能力分析(二)

目  录

1.总体分析

1.1背景知识

1.2数据量分析

1.3有效会话分析

2.要素相关性分析

2.1shodan节点与协议的相关性

2.2sensor节点与协议的相关性

2.3shodan节点与sensor节点的相关性

3.时间相关性分析

3.1shodan节点与时间的相关性

3.2sensor节点与时间的相关性

3.3协议与时间的相关性

4. 小结

附录

1. 总体分析

目前数据库存储了蜜罐截获的各种协议记录共计24935条,其中来源于Shodan各个节点记录737条,具体数据可以参见shodan data.html。本文档将主要围绕这737条数据展开分析,力求窥探Shodan的探测规律与策略。  

1.1背景知识

已知Shodan使用15探测节点, 其中9个节点位于美国本土(3个节点位于东部的芝加哥,6个节点位于西海岸的圣地亚哥),6个节点位于欧洲,详情如表1所示。

表1 Shodan节点详情

Shodan节点名称

IP地址

地理位置

census1.shodan.io

198.20.69.74

Chicago Illinois United States

census2.shodan.io

198.20.69.98

Chicago Illinois United States

census3.shodan.io

198.20.70.114

Chicago Illinois United States

census4.shodan.io

198.20.99.130

Netherlands

census5.shodan.io

93.120.27.62

Romania

census6.shodan.io

66.240.236.119

San Diego California United States

census7.shodan.io

71.6.135.131

San Diego California United

census8.shodan.io

66.240.192.138

San Diego California United

census9.shodan.io

71.6.167.142

San Diego California United

census10.shodan.io

82.221.105.6

Iceland

census11.shodan.io

71.6.165.7

San Diego California United

census12.shodan.io

71.6.165.200

San Diego California United

rim.census.shodan.io

85.25.43.94

Germany

pacific.census.shodan.io

85.25.103.50

Germany

atlantic.census.shodan.io

188.138.9.50

Germany

目前已部署sensor蜜罐7个,仍然处于活跃状态的6个,sensor01已于2015年12月过期停用,详情如表2所示。

表2sensor节点详情

节点名称

IP地址

地理位置

活跃性

sensor00

203.88.174.117

HongKong China

1

sensor01

103.57.164.101

Singapore

0

sensor02

120.24.100.127

Shenzhen China

1

sensor03

47.88.8.106

San Mateo California United States

1

sensor04

47.88.151.24

Singapore

1

sensor05

104.224.144.159

Dronten Netherlands

1

sensor06

91.218.244.94

Russia

1

1.2数据量分析

本小节将从协议组成、数据包来源、探测目标三个方面对源自Shodan各个节点的737条记录展开分析。

首先在协议组成方面,表3和图1展示了737条记录中各种协议的组成情况。从记录条目的绝对数量看,排名前三位为的分别是kamstrup、s7comm和modbus,而并非直觉上认为的http协议,这说明Shadon对蜜罐的工控协议主属性判断准确,对http端口的探测仅仅为辅助探测,而扫描的重点在于各个工控协议的端口。

表3 数据记录协议分布

图1协议记录数柱状图

其次在数据包来源方面,由表4和图2可知,蜜罐共捕获到源于Shodan的12个探测节点的数据,未捕获的节点为census4.shodan.io,census5.shodan.io和census11.shodan.io,并且来源于census10.shodan.io的记录也仅仅只有一条。数据包来源最多的两个节点为census7.shodan.io和census9.shodan.io,两者的数据量之和几近占到数据总量的50%,引起这种分布不均的原因可能有三个:第一,shodan扫描器本身的任务分配策略导致了各个节点的负载不均;第二,每个节点侧重的协议(即目标端口)不同导致;第三,蜜罐的部署策略导致;

表4 数据记录来源分布

图2 Shodan节点记录数柱状图

最后在探测目标方面,根据表5和图3的统计,sensor03并未收到任何来自Shodan的扫描数据,对照表2可知,该蜜罐正是部署于美国硅谷的节点。通过对sensor03捕获的其他数据分析可知,sensor03并非未捕获来源于美国的探测,例如来源于密歇根州立大学(eecs.umich.edu)对工控端口的探测就被记录其中。因此这很可能说明shodan作为一个公开的搜索引擎,出于安全保护或政策需要,并不探测位于美国本土的目标。进一步观察可知,sensor00和sensor02的收到的探测数据明显高于其他蜜罐节点,且两者之和超过数据总量的50%,这主要是由于sensor00、sensor01和sensor02三个节点部署最早,而sensor01在12月停止运行,因此另外两个节点积累的数据量累计偏多。但鉴于sensor00和sensor02均部署在中国境内,这种数据分布上的偏斜性也可能隐含着Shodan在目标探测上的倾向性,需要进一步分析才能得出可靠结论。

表5 探测目标分布

POT

sensor00

sensor01

sensor02

sensor04

sensor05

sensor06

COUNT

213

99

164

40

115

106

图3 sensor节点捕获记录数柱状图

1.3有效会话分析

上一小节主要从数据的绝对数量角度展开分析,但是一次端口的探测过程往往包含多次往复的数据包交互,仅从绝对数量上观察难以分辨探测频次的分布情况,因此需要从会话的层面对Shodan的探测数据展开分析。从737条数据记录中一共提取到82次有效会话。

表6和图4展示了82次会话在各种协议间的分布情况,探测频次最高的三个协议分别是s7comm、modbus、和bacnet。结合图1可知,尽管kamstrup的绝对数据量最高,但有效会话数却排在倒数第二位;而bacnet协议的数据量最少,但效会话数却排名第三。据此,可以得出以下结论:一、针对kamstrup端口的探测通常包含多个数据包往复交互,并且单次会话的交互数据量明显高于其他几种工控协议;二,针对bacnet的探测数据条目和有效会话数量相等,这表明对bacnet协议的探测仅有端口连接而无应用层数据交互。

表6有效会话的协议分布

PROTOCOL

bacnet

http

kam_manag

kam

modbus

s7comm

COUNT

13

12

8

11

15

23

图4 协议会话数柱状图

表7、图5和表8、图6分别来源和目标两个方面展示了82次会话的分布情况,结合前面数据条目的分析结果可以发现以下特点:一、虽然源自census7.shodan.io和census9.shodan.io两个节点的会话仍然最多,但是其优势程度较数据量层面小很多,这反映出census7.shodan.io和census9.shodan.io发起对会话中单次会话包含的交互包较多,根据前面的分析推知很可能是kamstrup协议的会话较多,需要进一步证实;二、sensor05虽然在接收数据总量上位于第三位,但是在会话频次上却位居最后一位,这反应出sensor05接收的会话也是以单次包含的多包交互的kamstrup协议会话为主,准确结论仍然需要分析证实。

表7 shodan节点的有效会话

表8 sensor节点接受的有效会话

图5 shodan节点的有效会话柱状图

图6 sensor节点的有效会话柱状图

2. 要素相关性分析

因为sensor节点代表了被探测目标的地理位置属性,而协议代表了被探测目标的功能属性,因此本节将从分析shodan节点、sensor节点和协议的相关性入手,探究shodan扫描引擎的工作策略。

2.1shodan节点与协议的相关性

图7 shodan节点与协议的数据热度图

图8 shodan节点与协议的会话热度图

图7和图8使用热度图分别从绝对数据量和会话频次两个维度展示了shodan各个节点和协议的相关性。通过观察能够得到以下结论:一、无论是在数据量和会话频次上,census7.shodan.io和census9.shodan.io在kamstrup上的热度都非常高,并且对该协议的探测主要由这两个节点完成,这直接验证了1.3节中的推测;二、census9.shodan.io是唯一一个对所有协议类型都发起过探测的shodan节点;三、前文提到的来源于census10.shodan.io的唯一一条记录是针对bacnet端口的连接。

2.2sensor节点与协议的相关性

图9 sensor节点与协议的数据热度图

图10 shodan节点与协议的会话热度图

图9和图10使用热度图分别从绝对数据量和会话频次两个维度展示了sensor各个节点和协议的相关性。通过观察能够得到以下结论:一、sensor05和sensor06接收的主要为kamstrup协议的数据,这再次印证了1.3节中的推测;二、作为运行最久的两个节点,sensor00和sensor02捕获的协议最为全面,而其中无论数据量和探测频次,都是以s7comm协议为最热点;三、sensor00和sensor02都是部署在中国境内的节点,而sensor05和sensor06是部署在欧洲的协议,这在一定程度上表明Shadon对中国地区扫描强度最高的是s7comm协议,而在欧洲强度最高的是kamstrup协议。

2.3shodan节点与sensor节点的相关性

图11 sensor节点与shodan节点的数据热度图

图12 sensor节点与shodan节点的会话热度图

图11和图12使用热度图分别从绝对数据量和会话频次两个维度展示了sensor节点和shodan节点的相关性。通过观察能够得到以下结论:一、sensor05中记录的数据全部来源于census7.shodan.io,并且全部与kamstrup协议相关(图9),而sensor06的数据主要来自于census9.shodan.io,结合前面的分析可知,对于欧洲的扫描主要由census7.shodan.io和census9.shodan.io完成,而目标协议主要是kamstrup。二、census2.shodan.io,census3.shodan.io、census6.shodan.io和census12.shodan.io则更加青睐中国境内的蜜罐节点。

3. 时间相关性分析

鉴于蜜罐节点的部署时间和活跃时间存在明显差异,为了考察时间因素对数据分布的影响,探究shodan在不同时段的探测策略,本节将重点分析时间与其他要素的相关性。

表9、图13和表10、图14分别对每个月的数据量和会话频次进行了统计与展示,引人注意的是2015-8和2015-12在两个柱状图中位次的变化,表明2015-12捕获的数据很可能以单次包含的多包交互的kamstrup协议会话为主,而2015-8则以其他协议为主,需要后续验证。

表9 数据量月度统计表

表10 会话频次月度统计表

图13 数据量月度分布柱状图

图14 会话频次月度分布柱状图

3.1shodan节点与时间的相关性

图15和图16分别从数据量和会话频次两个维度展示了各个月份shodan节点的活性。首先最为明显的特点是几乎每一个月都存在一个活跃度尤其凸出的节点,如2015-8的census8.shodan.io、2015-9的atlantic.census.shodan.io、2015-12的census7.shodan.io和2015-1census9.shodan.io。这种节点活跃性的变化可能是由不同时段的shodan的任务策略改变造成的,需要进一步证实。

图15 shodan节点的月度数据热度图

图16 shodan节点的月度会话热度图

其次,具体到每个节点,不同月份的活跃性差异很大,持续活跃度较高的节点为census9.shodan.io、census8.shodan.io、census7.shodan.io、census3.shodan.io和census12.shodan.io,这说明这几个节点在对已部署的工控协议的端口探测中起主要作用,今后需持续关注来自它们的探测数据。

3.2sensor节点与时间的相关性

图17 sensor节点的月度数据热度图

图18 sensor节点的月度会话热度图

图17和图18分别从数据量和会话频次两个维度展示了各个月份sensor节点的捕获的探测数量。图中直接反映了各sensor节点的活跃性:7-10月仅部署了sensor00-02;11月所有节点下线;12月新增加了sensor03-06,sensor01停用;sensor03未收到任何与Shodan先关的探测数据。同时不难发现,sensor00和sensor 02两个部署于中国境内的节点,几乎每个月都是会话频次最高的目标,而sensor05和sensor 06因为某些原因分别在2015-12和2016-01成为数据量上的最热点。

3.3协议与时间的相关性

图19 协议的月度数据热度图

图20 协议的月度数据热度图

图19和图20分别从数据量和会话频次两个维度展示了各个月份Shodan对协议的倾向性。从图中得到以下结论:一、2015-08和2015-09的探测重点是s7comm和modbus;二、2015-12和2016-01的探测重点是Kamstrup相关协议,综合前面的分析,捕获该协议探测数据的sensor节点是05和06节点,而且它们分别是2015-12和2016-01最热目标。

4. 小结

综合上述分析,能够得到以下对Shodan的探测规律与策略的认识:

第一,从目前的数据看来,Shodan对于美国本土的IP地址具有保护性,而且很可能是出于政治目的,保护本国的脆弱性目标不被暴露,进而遭受攻击威胁。

第二,从目前已部署的蜜罐位置看,Shodan对于不同地理区域的探测强度也存在差异。从洲际看,亚洲>欧洲>北美;从主要国家看,中国>俄罗斯> >美国。

第三,在不同的时期,Shodan对各种工控端口的探测并不均匀,而是存在阶段性的探测热点,例如2015-08至2015-09的探测热点是s7comm,而2015-12至2016-01的探测热点是Kamstrup协议。特别是针对Kamstrup协议的探测,在2015-12在各个sensor节点上都存在数据量陡增的情况,而热点区域为部署在欧洲的节点,是否背后有安全事件驱动(乌克兰电力事件?),需要进一步研究。

第四,就目前sensor部署的区域而言,Shodan针对工控协议的探测存在几个长期活跃的节点:census9.shodan.io、census8.shodan.io、census7.shodan.io、census3.shodan.io和census12.shodan.io;同时也存在一些低活跃度的节点:census4.shodan.io,census5.shodan.io和census11.shodan.io和census10.shodan.io。在探测的地域范围方面,不同的Shodan也各有青睐:欧洲的扫描主要由census7.shodan.io和census9.shodan.io完成,而census2.shodan.io,census3.shodan.io、census6.shodan.io和census12.shodan.io主要用于中国境内目标。

下一步工作指导:

第一,目前蜜罐捕获的Shodan相关数据的绝对量和时间连续性都存在明显不足,特别是数据连续性缺陷会导致数据中隐含的Shodan探测规律的丢失或偏斜。下一步,当数据连续性改善后将重点开展对Shodan及其个节点的时序和周期性研究。

第二,对于目前未收到数据的Shodan节点,也可能是蜜罐部署区域覆盖不足导致的,建议下一步继续增加北美(美、加)和欧洲(英、法、德)的节点,同时新增日本和南半球的节点。

第三,因目前蜜罐的交互深度不够,协议数据不完整且高度雷同,难以开展数据交互层面的指纹分析,后续随着蜜罐交互深度的提高,将逐步开展Shodan指纹的研究。

第四,本次报告主要将视角放在了多要素的相关性(关联规则)分析上,从目前的结果看,作为一种几乎是最重要的要素分析方法,目前已经掌握了该方法的要点和具体技术,应该是此次报告撰写最大的收获

附录:

shodan节点和协议的数据量相关性

bacnet

http

kam_manag

kam

modbus

s7comm

atlantic

1

0

0

0

6

60

census1

0

6

0

0

0

10

census10

1

0

0

0

0

0

census12

2

3

0

0

6

40

census2

0

6

2

0

18

10

census3

3

3

0

0

18

20

census6

0

5

0

56

12

0

census7

1

4

4

141

12

0

census8

2

0

6

0

6

30

census9

2

2

4

119

12

4

pacific

1

3

0

0

0

20

rim

0

0

0

28

0

20

shodan节点和协议的会话相关性

bacnet

http

kam_manag

kam

modbus

s7comm

atlantic

1

0

0

0

1

4

census1

0

2

0

0

0

1

census10

1

0

0

0

0

0

census12

2

1

0

0

1

4

census2

0

2

1

0

3

1

census3

3

1

0

0

3

2

census6

0

2

0

2

2

0

census7

1

2

2

4

2

0

census8

2

0

3

0

1

3

census9

2

1

2

4

2

4

pacific

1

1

0

0

0

2

rim

0

0

0

1

0

2

sensor节点和协议的数据量相关性

bacnet

http

kam_manag

kam

modbus

s7comm

sensor00

3

14

6

56

18

116

sensor01

5

0

0

0

24

70

sensor02

5

15

2

56

30

56

sensor04

0

0

6

28

6

0

sensor05

0

0

2

113

0

0

sensor06

0

3

0

91

12

0

sensor节点和协议的会话相关性

bacnet

http

kam_manag

kam

modbus

s7comm

sensor00

3

6

3

2

3

12

sensor01

5

0

0

0

4

5

sensor02

5

5

1

2

5

6

sensor04

0

0

3

1

1

0

sensor05

0

0

1

3

0

0

sensor06

0

1

0

3

2

0

sensor节点和shodan节点的数据量相关性

sensor00

sensor01

sensor02

sensor04

sensor05

sensor06

atlantic

21

36

10

0

0

0

census1

10

0

3

0

0

3

census10

0

0

1

0

0

0

census12

10

11

24

0

0

6

census2

9

0

27

0

0

0

census3

24

7

7

0

0

6

census6

39

6

28

0

0

0

census7

36

0

3

8

115

0

census8

14

11

17

2

0

0

census9

20

17

13

30

0

91

pacific

20

1

3

0

0

0

rim

10

10

28

0

0

0

sensor节点和shodan节点的会话相关性

sensor00

sensor01

sensor02

sensor04

sensor05

sensor06

atlantic

3

2

1

0

0

0

census1

1

0

1

0

0

1

census10

0

0

1

0

0

0

census12

1

2

4

0

0

1

census2

2

0

5

0

0

0

census3

4

2

2

0

0

1

census6

4

1

1

0

0

0

census7

4

0

1

2

4

0

census8

3

2

3

1

0

0

census9

4

3

3

2

0

3

pacific

2

1

1

0

0

0

rim

1

1

1

0

0

0

shodan节点和时间的数据量相关性

2015-07

2015-08

2015-09

2015-10

2015-12

2016-01

atlantic

0

6

61

0

0

0

census1

0

10

0

0

3

3

census10

0

0

1

0

0

0

census12

0

30

14

1

6

0

census2

0

12

13

0

11

0

census3

0

5

16

17

0

6

census6

0

17

0

0

56

0

census7

0

10

0

1

119

32

census8

0

37

1

0

4

2

census9

0

28

12

8

32

91

pacific

10

13

0

1

0

0

rim

0

20

0

0

28

0

shodan节点和时间的会话相关性

2015-07

2015-08

2015-09

2015-10

2015-12

2016-01

atlantic

0

1

5

0

0

0

census1

0

1

0

0

1

1

census10

0

0

1

0

0

0

census12

0

3

3

1

1

0

census2

0

2

2

0

3

0

census3

0

3

2

3

0

1

census6

0

4

0

0

2

0

census7

0

3

0

1

4

3

census8

0

5

1

0

2

1

census9

0

4

2

3

3

3

pacific

1

2

0

1

0

0

rim

0

2

0

0

1

0

sensor节点和时间的数据相关性

2015-07

2015-08

2015-09

2015-10

2015-12

2016-01

sensor00

10

84

43

11

37

28

sensor01

0

43

48

8

0

0

sensor02

0

61

27

9

67

0

sensor04

0

0

0

0

36

4

sensor05

0

0

0

0

113

2

sensor06

0

0

0

0

6

100

sensor节点和时间的会话相关性

2015-07

2015-08

2015-09

2015-10

2015-12

2016-01

sensor00

1

14

6

2

5

1

sensor01

0

6

5

3

0

0

sensor02

0

10

5

4

5

0

sensor04

0

0

0

0

3

2

sensor05

0

0

0

0

3

1

sensor06

0

0

0

0

1

5

协议和时间的数据相关性

2015-07

2015-08

2015-09

2015-10

2015-12

2016-01

bacnet

0

3

4

6

0

0

http

0

15

8

0

6

3

kam_ manag

0

0

0

0

10

6

kam

0

0

0

0

225

119

modbus

0

48

6

12

18

6

S7comm

10

122

100

10

0

0

协议和时间的会话相关性

2015-07

2015-08

2015-09

2015-10

2015-12

2016-01

bacnet

0

3

4

6

0

0

http

0

6

3

0

2

1

kam_ manag

0

0

0

0

5

3

kam

0

0

0

0

7

4

modbus

0

8

1

2

3

1

S7comm

1

13

8

1

0

0

声明:本文来自网信防务,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。