侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

分析攻击IP来源地与防御IP攻击的应对策略

技术  /  管理员 发布于 7年前   170

分布式拒绝服务(DDoS)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。

此文中的API将台湾列为国家,非本人立场,台湾属于中国,台湾岛生活的人不一定!
上码:

#!/usr/bin/python#coding=utf-8'''http://ip-api.com/json/ip'''import plotly import plotly.plotly import plotly.graph_objs as abcc import plotly.plotly class Piecharts:   def __init__(self):     print "饼图生成中"   def makePiecharts(self,labels,values,filename):     trace = abcc.Pie(labels = labels,values= values)     plotly.offline.plot([trace],filename=filename) import requestsimport systry:  iplist = sys.argv[1]except:  print "IP list not given or some other error!"countrylist = {}regionlist = {}citylist = {}with open(iplist) as f:  for ip in f.readlines():    if ip.strip() != '':      url = 'http://ip-api.com/json/' + ip.strip()      try:        result = requests.get(url)        jsontext = result.json()      except:        print "Error: Data not retrieved!"        continue      status = jsontext['status']      if status == 'fail':        print "%s failed!" % ip.strip()        continue      mline = jsontext['as']      city = jsontext['city']      country = jsontext['country']      countryCode = jsontext['countryCode']      isp = jsontext['isp']      lat = jsontext['lat']      lon = jsontext['lon']      org = jsontext['org']      query = jsontext['query']      region = jsontext['region']      regionName = jsontext['regionName']      timezone = jsontext['timezone']      zipcode = jsontext['zip']      if not country in countrylist:        countrylist[country] = 0      else:        countrylist[country] += 1      if not regionName in regionlist:        regionlist[regionName] = 0      else:        regionlist[regionName] += 1      if not city in citylist:        citylist[city] = 0      else:        citylist[city] += 1      try:        print ip.strip() + '--' + country + '--' + regionName      except:        print "Special character!"  print countrylist  #country  labels = [i for i in countrylist]   value = [countrylist[i] for i in countrylist]   drive = Piecharts()   drive.makePiecharts(labels,value,"country.html")   #region  labels = [i for i in regionlist]   value = [regionlist[i] for i in regionlist]   drive = Piecharts()   drive.makePiecharts(labels,value,"region.html")   #city  labels = [i for i in citylist]   value = [citylist[i] for i in citylist]   drive = Piecharts()   drive.makePiecharts(labels,value,"city.html") 

gevent协程并发版

#!/usr/bin/python# coding=utf-8'''http://ip-api.com/json/ip'''import plotlyimport plotly.graph_objs as abccimport plotly.plotlyclass Piecharts:  def __init__(self):    print u'饼图生成中'  def makePiecharts(self, labels, values, filename):    trace = abcc.Pie(labels=labels, values=values)    plotly.offline.plot([trace], filename=filename)import requestsimport systry:  iplist = sys.argv[1]except:  print "IP list not given or some other error!"countrylist = {}regionlist = {}citylist = {}def locater(url):  try:    result = requests.get(url)    jsontext = result.json()  except:    print "Error: Data not retrieved!"    return  status = jsontext['status']  if status == 'fail':    print "%s failed!" % ip.strip()    return  mline = jsontext['as']  city = jsontext['city']  country = jsontext['country']  countryCode = jsontext['countryCode']  isp = jsontext['isp']  lat = jsontext['lat']  lon = jsontext['lon']  org = jsontext['org']  query = jsontext['query']  region = jsontext['region']  regionName = jsontext['regionName']  timezone = jsontext['timezone']  zipcode = jsontext['zip']  if not country in countrylist:    countrylist[country] = 0  else:    countrylist[country] += 1  if not regionName in regionlist:    regionlist[regionName] = 0  else:    regionlist[regionName] += 1  if not city in citylist:    citylist[city] = 0  else:    citylist[city] += 1  try:    print ip.strip() + '--' + country + '--' + regionName  except:    print "Special character!"from gevent import monkeymonkey.patch_socket()from gevent import poolimport geventpool = pool.Pool(40)glist = []with open(iplist) as f:  for ip in f.readlines():    if ip.strip() != '':      url = 'http://ip-api.com/json/' + ip.strip()      glist.append(pool.spawn(locater, url))  gevent.joinall(glist)  # country  labels = [i for i in countrylist]  value = [countrylist[i] for i in countrylist]  drive = Piecharts()  drive.makePiecharts(labels, value, "country.html")  # region  labels = [i for i in regionlist]  value = [regionlist[i] for i in regionlist]  drive = Piecharts()  drive.makePiecharts(labels, value, "region.html")  # city  labels = [i for i in citylist]  value = [citylist[i] for i in citylist]  drive = Piecharts()  drive.makePiecharts(labels, value, "city.html")

饼图效果:

在对网络攻击进行上述分析与识别的基础上,我们应当认真制定有针对性的策略。明确安全对象,设置强有力的安全保障体系。有的放矢,在网络中层层设防,发挥网络的每层作用,使每一层都成为一道关卡,从而让攻击者无隙可钻、无计可使。还必须做到未雨稠缪,预防为主 ,将重要的数据备份并时刻注意系统运行状况。以下是针对众多令人担心的网络安全问题,提出的几点建议:

1、提高安全意识

  (1)不要随意打开来历不明的电子邮件及文件,不要随便运行不太了解的人给你的程序,比如“特洛伊”类黑客程序就需要骗你运行。
  (2)尽量避免从Internet下载不知名的软件、游戏程序。即使从知名的网站下载的软件也要及时用最新的病毒和木马查杀软件对软件和系统进行扫描。
  (3)密码设置尽可能使用字母数字混排,单纯的英文或者数字很容易穷举。将常用的密码设置不同,防止被人查出一个,连带到重要密码。重要密码最好经常更换。
  (4)及时下载安装系统补丁程序。
  (5)不随便运行黑客程序,不少这类程序运行时会发出你的个人信息。
  (6)在支持HTML的BBS上,如发现提交警告,先看源代码,很可能是骗取密码的陷阱。

2、使用防毒、防黑等防火墙软件。

防火墙是一个用以阻止网络中的黑客访问某个机构网络的屏障,也可称之为控制进/出两个方向通信的门槛。在网络边界上通过建立起来的相应网络通信监控系统来隔离内部和外部网络,以阻档外部网络的侵入。

3、设置代理服务器,隐藏自已的IP地址。

保护自己的IP地址是很重要的。事实上,即便你的机器上被安装了木马程序,若没有你的IP地址,攻击者也是没有办法的,而保护IP地址的最好方法就是设置代理服务器。代理服务器能起到外部网络申请访问内部网络的中间转接作用,其功能类似于一个数据转发器,它主要控制哪些用户能访问哪些服务类型。当外部网络向内部网络申请某种网络服务时,代理服务器接受申请,然后它根据其服务类型、服务内容、被服务的对象、服务者申请的时间、申请者的域名范围等来决定是否接受此项服务,如果接受,它就向内部网络转发这项请求。

4、将防毒、防黑当成日常例性工作,定时更新防毒组件,将防毒软件保持在常驻状态,以彻底防毒。

5、由于黑客经常会针对特定的日期发动攻击,计算机用户在此期间应特别提高警戒。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对AIDI的支持。如果你想了解更多相关内容请查看下面相关链接


  • 上一条:
    详解XSS 和 CSRF简述及预防措施
    下一条:
    跨站脚本攻击XSS(Cross Site Script)的原理与常见场景分析
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 2024.07.09日OpenAI将终止对中国等国家和地区API服务(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2017-09
    • 2018-01
    • 2018-07
    • 2018-08
    • 2018-09
    • 2018-12
    • 2019-01
    • 2019-02
    • 2019-03
    • 2019-04
    • 2019-05
    • 2019-06
    • 2019-07
    • 2019-08
    • 2019-09
    • 2019-10
    • 2019-11
    • 2019-12
    • 2020-01
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-12
    • 2024-02
    • 2024-04
    • 2024-05
    • 2024-06
    • 2025-02
    • 2025-07
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客