关于IP,这里有你想知道的一切!
关于IP,这里有你想知道的一切!
原创: 同盾反欺诈研究院 先知安全技术社区 2017-07-13
今日,就来跟大家聊聊关于IP地址方方面面的研究,其实可以归到三个问题上:
1、这个IP在哪儿?
2、这个IP是什么?
3、这个IP干了什么?
看似简单的问题,但每个都需要投入巨大深入研究的代价。同盾科技在IP画像研发过程中,我们接触了国内外很多出色的IP地址数据服务商,也经过诸多的测试与调研,最终我们选择了最优的平台,作为我们的基础数据供应商,在这些数据的基础上,产生出了更加丰富的信息,最终投入到各个风控场景中进行使用。
关于IP的一些冷知识:
IP地址(本文中特指IPv4地址),是用于标识网络和主机的一种逻辑标识。依托于强大的TCP/IP协议,使得我们可以凭借一个IP地址,就访问互联网上的所有资源。
IP地址本质上,只是一个32位的无符号整型(unsigned int),范围从0 ~ 2^32 ,总计约43亿个IP地址。为了便于使用,一般使用字符串形式的IP地址,也就是我们平常用到的192.168.0.1这种形式。实际上,就是把整数,每8个二进制位转换成对应的十进制整数,以点分隔的形式使用。
比如,192.168.0.1和3232235521是等价的。
当今全球,互联网系统共分为四大区域,每一个区域都由一件互联网的本体,通过光缆覆盖信号。这四大区域分别被命名为:格兰芬多,斯莱特林,赫奇帕奇以及拉文克劳......
这是《爱情公寓3》中的一个让人捧腹的桥段。虽然是恶搞,但是有一件事儿说对了,互联网确实是分区域的。
全球共有五个区域互联网注册机构(RIR),分别是:
美洲互联网号码注册管理机构(American Registry for Internet Numbers,ARIN);
欧洲IP网络资源协调中心(RIPE Network Coordination Centre,RIPE NCC);
亚太网络信息中心(Asia-Pacific Network Information Centre,APNIC);
拉丁美洲及加勒比地区互联网地址注册管理机构(Latin American and Caribbean Internet Address Registry,LACNIC);
非洲网络信息中心(African Network Information Centre,AfriNIC)。
IP地址的划分,有RIR机构来进行统筹管理。负责亚洲地区IP地址分配的,就是APNIC,总部位于澳大利亚墨尔本。
各大RIR机构都提供了关于IP地址划分的登记信息,即whois记录。可以在各大RIR机构提供的whois查询页面上查看,或者使用whois命令查询:
whois信息中,会显示IP地址所属的网段,以及申请使用和维护这个网段的运营商。比如,上面的信息中显示,153.35.93.31隶属于江苏省联通。
某些黑客题材的电影中往往会出现使用whois直接查询得到了一个IP的位置,非常精确地定位到了一幢建筑物里。
这张截图来自于2015年上映的《BlackHat》,满满的槽点,都是导演YY出来的。
(导演:怪我咯?)
正餐之前,给大家稍加科普一下,下面我们就要进入主菜了。让我们逐一来解惑文章开篇提到的三个问题。
NO.1 这个IP在哪儿?
前面提到IP的whois信息,其中包含了申请使用该IP的运营商信息,并且在网段描述信息中,会包含国籍和省份信息。
但是这样远远不够,风控场景中,我们需要更加精确的结果,需要知道这个IP具体在哪个城市、哪个乡镇,甚至希望能够精确到某一条街道或者小区。
曾有人问:我们的IP地址库是否能够提供这样的结果?可以确定用户在某个网吧、写字楼甚至某个小区?
那上面这样的IP数据库是如何产生的呢?
俗称“人海战术”。您可别不相信,直到今天,依然有众多的网友在为这个IP库提供数据更新,上报IP地址的确切位置。但我们无从考证这个位置信息是否真实准确,如果不能报保证数据的准确性,在风控决策中同盾是不会去使用的。
一种IP地址定位手段,是通过海量Traceroute信息来分析。
理论上,如果我能够得到所有IP相互之间Traceroute的信息,就可以绘制出整个互联网的链路图。
(上图来自于IPIP.NET提供的BestTrace工具)
每一次traceroute,都会返回详细的网络链路信息。积累了足够多的链路信息之后,就可以直观地看出,很多链路都经过了同一个IP,那么这个IP就是骨干节点或者区域的骨干节点。先确定出哪些节点是CN2骨干节点,进一步确定省级骨干节点,再逐一识别市县区级的骨干节点,最后得到全国范围内的网络分布。
以下是CAIDA的一份报告,使用了类似的原理,但统计的最小单位是AS(自治域)
原图地址:http://www.caida.org/research/topology/as_core_network/pics/2015/ascore-2015-jan-ipv4v6-poster-2000x1389.png圈的边缘,就是探测节点,中间的红色部分,就是全球互联网的骨干节点。原理虽然简单,但实现起来却没那么容易。
首先,你得有足够数量的节点来探测、收集traceroute链路数据。其次,要有可靠的技术手段来及时分析探测到的结果,汇总形成IP地址数据库。据了解,DigitalElemet也用了类似的方式进行探测,在全球范围内一共部署了超过8万个探测节点。
根据这种网络链路探测的出的定位结果,业内又称之为“网络位置”。就是从互联网的结构上来说,我们最终确定了一个IP,被分配到了某个地方的运营商手里。
但是我们又遇到了很多其他的情况,给大家举几个简单的例子。
117.61.31.0 江苏省 南京市 电信
通过分析这个IP关联的所有定位数据,得到了如下的分布:
这种情况,我们称为“流量回源”。当用户在使用南京电信的手机卡上网时,无论用户身处哪里,他的流量都会回到南京电信,再转发出去,所以从IP上看,都会显示为一个南京的IP。
上面的定位信息分布,可以在RTB Asia的IP地址实验室中https://ip.rtbasia.com/
153.35.93.32 江苏省 南京市 联通
各种渠道的信息表明,这个IP确实分配到了南京联通,结果定位点全部落在了北京市的范围内。如果我们根据IP的定位结果来判断用户当前的位置,得到的结果肯定就错了。
难道前面提供的信息错了?其实是由于国内运营商对IP地址的划分和使用不透明,甚至特殊形式的租赁,导致北京的用户,分配到了一个南京的IP。
IP地址跨城市覆盖,覆盖范围非常大,用户位置和网络位置不在同一个城市甚至不在同一个省,都会影响到结果,无法准确给出判断。
另一方面,随着移动设备的普及,在用户允许的情况下,可以通过移动设备采集到设备上的GPS信息。前面大家看到的两张定位分布图,就是分析一个IP在历史上关联过的所有GPS定位绘制出来的。每一个红点,都表示曾经有一个用户这里出现过。再通过聚类和GPS反向解析,就可以预测一个IP下的用户,可能出现的地理位置。这个结果,我们又称之为“行为位置”。
这种分析方法看起来效果非常不错,但是却面临两个很重要的问题。
其一是,今年来设备作弊的方式层出不穷,如果没有有效的手段来保证数据的准确性和可靠性,最终得出的结果也会有偏差。
比如下面这里例子,定位点非常规整地分布在一个矩形区域内,而且覆盖到了海面上,做了深入的分析之后才发现这个IP下面有大量的作弊行为:
另一方面,依靠定位点分布来分析IP的定位,需要长时间积累GPS数据。人口密集的地方,这个数据积累可以只要一天,二线城市需要一周,三线城市就需要至少一个月了。此前还遇到一个位于塔克拉玛干沙漠中的基站IP,至今还没有过与之关联的GPS信息。如果某一天,IP地址被重新分配了,划分到另外一个城市去使用,就需要等上一周甚至一个月的时间,才能重新校正结果。而网络链路的分析可以很快感知到。
实际的使用中,我们会把这两种方式结合到一起。并不是说,两个定位结果中,有一个错了。两个都是正确答案,只是某些情况下,有一个答案并不适合风控场景。
互联网,就像物流系统一样。我们分析IP的位置,和分析一个快递小哥负责派送的区域原理是一样。没有哪个快递小哥只给一户人家送货,IP也一样,我们最终只能确定这个IP后面的用户,可能出现的地理位置区域。随着技术的提升,数据的积累,我们能够不断缩小这个范围,达到最贴近真实的结果。
本次与大家分享的内容到此为止,大家可以反复多次阅读,很多专业描述其实也没有那么难懂,期望可以帮助到有需要的朋友们。另外两个问题的分享,敬请期待IP下半部的分享!
关于IP,这里有你想知道的一切!的更多相关文章
- 今天开dev的时候,config update一下别人的,但是忘了自己改过目录了,导致光看ip,想了半天,为什么接口不对
今天开dev的时候,config update一下别人的,但是忘了自己改过目录了,导致光看ip,想了半天,为什么接口不对 baseUrl: { // // dev: 'http://1 ...
- selenium send_keys慢,卡,怎么办?这里有你想要的解决方案
相信各位看官在用selenium时,会发现发送长字符时,一个字符一个字符在输入,特别在使用chrome时,更加明显. 如果你的网页是要大量编辑的怎么处理呢? 一.send_keys机制 既然问题出来了 ...
- 未来五年什么样的IT技术最具颠覆性?这里有你想知道的答案
据外媒报道称,近日Gartner研讨会在美国弗罗里达州奥兰多举行,智能化.大数据和物联网成为届研讨会的三大主题.市场研究机构Gartner Research的副总裁兼资深研究员大卫·卡利(David ...
- 关于微信跳转,这里有你想知道的一切weixin://dl/business/?ticket=td9cd0bf056c561fe9f56e33c61df61bf
纠结了了很久,还是放出来部分接口,相信能够看到这篇文章的人也基本都是需求比较强烈的. 京东: https://wq.jd.com/mjgj/link/GetOpenLink?rurl=http%3a% ...
- CSS效果:这里有你想要的CSS3漂亮的自定义Checkbox各种复选框
在原来有一篇文章写到了<CSS效果篇--纯CSS+HTML实现checkbox的思路与实例>. 今天这篇文章主要写各种自定义的checkbox复选框,实现如图所示的复选框: 大致的html ...
- CSS效果篇--这里有你想要的CSS3漂亮的自定义Checkbox各种复选框
在原来有一篇文章写到了<CSS效果篇--纯CSS+HTML实现checkbox的思路与实例>.这篇文章主要写各种自定义的checkbox复选框,实现如图所示的复选框: 大致的html代码都 ...
- MyEclipse内存不足?这里有你想要的问题解决方案
[MyEclipse CI 2019.4.0安装包下载] No.1 打开MyEclipse目录下的myeclipse.ini文件 在后面修改下面几个属性: vmargs Xms512m ( Java能 ...
- 【spring springmvc】这里有你想要的SpringMVC的REST风格的四种请求方式
概述 之前的文章springmvc使用注解声明控制器与请求映射有简单提到过控制器与请求映射,这一次就详细讲解一下SpringMVC的REST风格的四种请求方式及其使用方法. 你能get的知识点 1.什 ...
- 【linux】【windows】查看你想访问的电脑Ip 和 端口是否 通畅
常用查看IP是否通畅: 使用ping命令 ping 117.173.218.23 既想看IP又想看端口:使用telnet命令 telnet 117.173.218.23 9000 注意格式!!!
随机推荐
- Spring Boot Starters 列表
Spring Boot application starters 名称 描述 Pom spring-boot-starter 核心starter,包括自动配置支持,日志和YAML Pom spring ...
- 20165235 祁瑛 2018-4 《Java程序设计》第七周学习总结
20165235 祁瑛 2018-4 <Java程序设计>第七周学习总结 教材学习内容总结 MySQL数据管理系统 MySQL数据管理系统,简称MySQL,是世界上流行的数据管理系统. M ...
- 我今天遇到的条件语句Integer类型的
两个Integer类型的值进行比较时,应该用equals进行判断,用"=="判断是错误的,后来想了一下就明白了,Integer毕竟是对象, 而不是int基本数据类型,可以直接比较, ...
- NSL:CPK_NN神经网络实现预测哪个样本与哪个样本处在同一层,从而科学规避我国煤矿突水灾难—Jason niu
load water_data.mat attributes = mapminmax(attributes); P_train = attributes(:,1:35); T_train = clas ...
- Jquery操作一遍过
什么是jQuery对象? jQuery 对象就是通过jQuery包装DOM对象后产生的对象.jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQu ...
- Tomcat v9.0 Could not publish to the server. java.lang.IndexOutOfBoundsException
今天使用Tomcat启动一个java项目,出现报错: Could not publish to the server. java.lang.IndexOutOfBoundsException 众寻之下 ...
- mybatis之级联关系(一对一、一对多)
0. 表结构 1. 准备工作 1.1 配置文件等信息,请参考 myBatis之入门示例 1.2 entity 1.2.1 TPersonInfo.java package com.blueStarW ...
- python数据结构之队列(二)
书接上文,双端队列区别于单队列为:双端队列可以对队列头和尾部同时进行操作,单队列不行 #coding:utf-8 class DoubleQueue(object): def __init__(sel ...
- 那些天使用AWS填过的坑和注意事项
一直在找免费的GPU云端,在某乎上看到AWS提供免费的,就上去试了下,结果那个免费一年的只有CPU,并没有GPU,GPU还是需要付费的,相关背景就说这些,下面放几个相关教程,里面会说怎么使用,看了这几 ...
- Hello 2019 (D~G)
目录 Codeforces 1097 D.Makoto and a Blackboard(DP 期望) E.Egor and an RPG game(思路 LIS Dilworth定理) F.Alex ...