XieJava's blog

记录最好的自己


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

mitmproxy实战-通过mitmdump爬取京东金榜排行数据

发表于 2024-03-04 | 更新于: 2025-04-08 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 1.4k | 阅读时长 ≈ 5

mitmproxy

对于APP的数据爬取或需要构建复杂的接口参数数据的爬取可以通过mitmproxy抓包还原流量,解析流量数据包来获取。mitmproxy是一个免费的开源交互式的HTTPS代理工具。它类似于其他抓包工具如WireShark和Fiddler,支持抓取HTTP和HTTPS协议的数据包,并可以通过控制台形式进行操作。mitmproxy具有两个非常有用的组件:mitmdump和mitmweb。mitmdump是mitmproxy的命令行接口,可以直接抓取请求数据。

本文介绍通过通过mitmdump爬取京东金榜数据。

京东金榜只有H5小程序和京东APP才有,用直接http请求来爬取数据很麻烦需要找到相应的接口构建很复杂的参数。通过mitmproxy代理抓包,从流量包中解析需要的数据相对来说要容易得多。

一、准备工作

安装mitmproxy并配置客户端。具体步骤见《mitmproxy安装与配置》
如果需要通过APP爬取,需要安装APP的模拟器,这里推荐用夜神模拟器。
启动模拟器后APP的网络配置一样的要配置通过mitmproxy的代理,因为APP一般都是通过HTTPS访问的,还需要安装证书。

1、模拟器安卓操作系统安装证书

夜神模拟器可以直击访问本地的windows目录和模拟器的安卓目录,我们需要将mitmproxy的安卓证书传输到模拟器的安卓文件夹,点击夜神模拟器的文件助手
夜神模拟器的文件助手

将mitmproxy的安卓证书传到安卓端。
将mitmproxy的安卓证书传到安卓端

安装证书: 安卓模拟器–>设置–>安全–>从SD卡安装
安装证书

选择开始传到安卓文件夹中的证书文件
选择证书文件

输入PIN码
输入PIN码

为证书取个名字如mitmproxy,点击确定就可以了
证书命名

查看证书可以点击“用户凭据”
查看证书

可以看到mitmproxy的CA证书已经安装好了。
确认证书

2、模拟器安卓操作系统配置代理

安装好了CA证书,还要配置模拟器安卓操作系统的网络代理。
点击模拟其中的无线和网络中的WLAN
设置网络

选择默认的无线连接WiredSSID在弹出的菜单中选择“修改网络”
修改网络

设置mitmproxy的服务器主机IP和代理服务器端口,服务器主机IP就是宿主机windows主机的IP,端口就是起mitmproxy服务的端口。
设置代理

mitmproxy和模拟器都准备好以后就可以分析京东金榜的数据了。

二、分析数据

京东金榜H5小程序的地址是 https://h5.m.jd.com/babelDiy/Zeus/32xRoXWmepbBVHfDMoHMw2kGfHdF/index.html
我们可以用浏览器访问这个地址来分析需要爬取数据的接口和相应返回的数据格式。在这里可以到到京东金榜的数据接口是https://api.m.jd.com/client.action,通过POST请求来获取的金榜数据。
分析接口

通过Preview仔细分析数据接口返回的金榜数据的JSON格式
分析数据

接下来我们就要根据接口和JSON格式的数据来写代码获取并解析相应的数据信息。

三、爬取数据

在这里我们通过response接口获取通过mitmproxy代理后的流量进行解析,实现对京东金榜数据的获取。爬取数据的jdrank_scripts.py具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import json

def response(flow):
url = 'https://api.m.jd.com/client.action'
if flow.request.url.startswith(url):
text = flow.response.text
json_data = json.loads(text)
#print(json_data)
#获取金榜排行
if ('result' in json_data) and ('tabs' in json_data['result']):
getMainGoldRank(json_data)
#获取金榜排行商品列表
if ('result' in json_data) and ('mainRank' in json_data['result']):
getJDProductInfo(json_data)
#获取商品信息
if flow.request.url.startswith(url):
text = flow.response.text
json_data = json.loads(text)
if ('floors' in json_data) and len(json_data['floors'])>1:
prod_skuId=json_data['floors'][0].get('data').get('extMap').get('skuId')
prod_introduceInfo=text
print('-------prod_skuId-------:+++',prod_skuId)
print(prod_skuId, prod_introduceInfo)


# 获取金榜列表
def getMainGoldRank(json_data):
tabs = json_data['result']['tabs']
for tab in tabs:
tabName = tab['tabName'] # 榜单名称
tabData = tab['data'] # 榜单数据
print(type(tabData))
if type(tabData) is list:
for rankdata in tabData:
rankId = rankdata['id']
rankTitle = rankdata['name']
rankType = rankdata['rankType']
skuId=None
print(tabName, rankId, rankType, rankTitle, skuId)
if type(tabData) is dict:
relatedAdvIds = tab['relatedAdvIds']
if type(relatedAdvIds) is list:
for relatedAdvId in relatedAdvIds:
rankList = tabData[relatedAdvId]['rankList']
for rankdata in rankList:
rankId = rankdata['rankId']
rankTitle = rankdata['rankType']
rankType = rankdata['rankTitle']
skuId = rankdata['skuId']
print(tabName, rankId, rankType, rankTitle, skuId)

#获取JD金榜商品概要信息
def getJDProductInfo(json_data):
#if ('result' in json_data) and ('mainRank' in json_data['result']):
print(json_data)
try:
products=json_data['result']['mainRank']['products']
prod_main_rank=json_data['result']['mainRank']
prod_rankId=prod_main_rank.get('id')
#判断如果没有在main_gold_rank表中则添加记录至main_gold_rank表
rankTitle=prod_main_rank.get('name')
print('', prod_rankId,rankTitle , 13, '')
for product in products:
prod_skuId = product['product']['skuId']
prod_name = product['product']['name']
prod_img = product['product']['img']
prod_skuSallingPoint = product.get('skuSallingPoint')
prod_saleInfoStr = product.get('saleInfoStr')
prod_simpleSaleInfoStr = product.get('simpleSaleInfoStr')
prod_totalBuyInfoStr = product.get('totalBuyInfoStr')
prod_goodCountStr = product.get('goodCountStr')
prod_simpleGoodCountStr = product.get('simpleGoodCountStr')
prod_totalPopularity = product.get('totalPopularity')
prod_popularityStr = product.get('popularityStr')
prod_cmttTag = product.get('cmttTag')
prod_longTitle = product.get('longTitle')
prod_authorityScore = product.get('authorityScore')
prod_saleScore = product.get('saleScore')
prod_popularityScore = product.get('popularityScore')
prod_growthScore = product.get('growthScore')
prod_praiseScore = product.get('praiseScore')
prod_brandScore = product.get('brandScore')
prod_brandStr = product.get('brandStr')
prod_growthStr = product.get('growthStr')
prod_sortedSaleIfoStr = product.get('sortedSaleIfoStr')
prod_rankNum = product.get('rankNum')
print(prod_rankId,prod_skuId,prod_name,prod_img,prod_skuSallingPoint,prod_saleInfoStr,prod_simpleSaleInfoStr,prod_totalBuyInfoStr,
prod_goodCountStr,prod_simpleGoodCountStr,prod_totalPopularity,prod_popularityStr,prod_cmttTag,prod_longTitle,
prod_authorityScore,prod_saleScore,prod_popularityScore,prod_growthScore,prod_praiseScore,prod_brandScore,prod_brandStr,prod_growthStr,prod_sortedSaleIfoStr,prod_rankNum)
except Exception as e:
print('getJDProductInfo Error:', e)

通过运行 mitmdump -s jdrank_scripts.py
用浏览器访问京东H5的小程序https://h5.m.jd.com/babelDiy/Zeus/32xRoXWmepbBVHfDMoHMw2kGfHdF/index.html
从H5的小程序访问获取京东金榜的排行数据
获取京东金榜排行

获取京东金榜商品信息
获取京东金榜商品信息

从京东APP上访问京东金榜也是同样的效果。

至此,本文从环境准备到数据分析到代码实现,通过mitmdump爬取京东金榜排行数据进行mitmproxy爬取数据的实战。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

mitmproxy安装与配置

发表于 2024-02-29 | 更新于: 2025-04-08 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 1.1k | 阅读时长 ≈ 3

mitmproxy是一个免费的开源交互式的HTTPS代理工具。它类似于其他抓包工具如WireShark和Fiddler,支持抓取HTTP和HTTPS协议的数据包,并可以通过控制台形式进行操作。mitmproxy具有两个非常有用的组件:mitmdump和mitmweb。mitmdump是mitmproxy的命令行接口,可以直接抓取请求数据,而mitmweb是一个web程序,可以清楚地观察mitmproxy抓取的请求数据。

此外,mitmproxy的特点之一是它支持Python自定义脚本,这使得mitmproxy的使用更加灵活和强大。通过安装mitmproxy,用户可以实时查看、记录、修改数据,引发服务端或客户端的特定行为。mitmproxy是一个功能强大的抓包工具,具有广泛的应用场景,如网络调试、安全测试、数据分析等。

本文介绍mitmproxy的安装与配置,通过mitmproxy代理进行抓包。

一、mitmproxy的安装

首先需要安装好python,版本需要不低于3.6,且安装了附带了包管理工具pip
在命令行中输入pip install mitmproxy,等待安装完成。
安装完成后,系统将拥有mitmproxy、mitmdump、mitmweb三个命令,可以通过mitmdump检查一下mitmproxy是否安装成功了。
查看mitmproxy版本

二、运行mitmproxy

要启动 mitmproxy 用 mitmproxy、mitmdump、mitmweb 这三个命令中的任意一个即可,这三个命令功能一致,且都可以加载自定义脚本,唯一的区别是交互界面的不同。

启动mitmproxy后,客户端要配置指定通过mitmproxy代理来访问目标网站的服务资源。
mitmproxy代理工作原理

1、配置客户端代理

运行mitmproxy默认代理的端口是8080,所以要配置浏览器通过mitmproxy代理来访问目标网站。

方式一,设置全局代理

设置全局代理,在window中找到网络和Internet,点击手动设置代理,将使用代理服务器的开关打开,设置代理IP地址为127.0.0.1,端口为8080
设置全局代理

方式二,设置浏览器代理

通过浏览器插件设置浏览器代理,如chrome浏览器可以通过SwitchyOmega插件设置代理
通过SwitchyOmega插件设置代理

通过mitmproxy命令启动mitmproxy后通过设置代理后的浏览器访问http://xiejava.ishareread.com,可以看到通过mitmproxy代理后的访问流量日志。
http抓包日志情况

2、客户端安装mitmproxy提供的CA证书

对于访问https加密的网站需要证书才能解密,所以客户端需要安装mitmproxy提供的CA证书。
通过mitmporxy代理浏览器访问http://mitm.it/将显示mitmproxy证书下载和安装指导页面
mitmproxy证书下载和安装指导页面

可以看到mitmproxy提供了各种操作系统的CA证书,点击”Show Instructions”,将显示证书的安装指导,可以根据指导一步步安装成功。
证书的安装指导

对于Windows系统:

手工安装步骤:

  1. 双击mitmproxy提供的CA证书文件(通常是mitmproxy-ca.p12)。
  2. 在出现的导入证书引导页中,直接点击“下一步”按钮。
  3. 接下来会出现密码设置提示,这里不需要设置密码,直接点击“下一步”按钮。
  4. 选择证书的存储区域。通常选择“将所有的证书都放入下列存储”,然后点击“浏览”按钮,选择证书存储位置为“受信任的根证书颁发机构”,接着点击“确定”按钮。
  5. 点击“下一步”按钮完成证书的导入。
  6. 如果有安全警告弹出,直接点击“是”按钮即可。

自动安装步骤:

在window中用管理员权限运行PowerShell,在命令行控制台,进去到证书的目录,一般是在c:\Users\yourname.mitmproxy目录下。执行 certutil.exe -addstore root mitmproxy-ca-cert.cer 如下图所示。
自动安装证书步骤

安装好证书后,通过mitmproxy代理,我们来访问https协议的网站https://www.taobao.com。可以在后台看到mitmproxy抓取的https流量日志
mitmproxy抓取的https流量日志

至此,我们成功安装了mitmproxy,并配置了相应的CA证书,通过mitmporxy代理能够获取访问http和https网站的流量数据。后续我们将通过一个实例来进行mitmproxy抓包爬取京东APP的金榜排行的数据信息。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

Selenium实战-模拟登录淘宝并爬取商品信息

发表于 2024-02-26 | 更新于: 2025-04-08 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 2.3k | 阅读时长 ≈ 10

现在很多网站要获取数据都得要先登录。Selenium是一个用于Web应用程序测试的自动化工具。它直接运行在浏览器中,模拟真实用户的操作。本文介绍如何通过Selenium来登录淘宝并自动爬取商品信息。
关于Selenium的安装与配置请参考博文《Selenium安装与配置》

一、通过Selenium模拟登录淘宝

现在要获取淘宝的商品信息需要先登录淘宝。我们先来分析淘宝的登录页面。

1、分析淘宝登录页面

淘宝登录页面为https://login.taobao.com/member/login.jhtml,支持扫描登录和用户名、密码验证登录。我们模拟用户名、密码登录。
通过Chrome浏览器输入淘宝登录页面链接F12打开开发者工具,分析淘宝登录页的源代码,找到登录账号、登录密码和登录按钮的相关控件的源代码
分析淘宝登录页面

在这里可以看到
账号名的输入框控件代码:<input name="fm-login-id" type="text" class="fm-text" id="fm-login-id" tabindex="1" aria-label="账号名/邮箱/手机号" placeholder="账号名/邮箱/手机号" autocapitalize="off" data-spm-anchor-id="a2107.1.0.i1.3e3e11d9pGQKXf">
登录密码的输入框控件代码:<input name="fm-login-password" type="password" class="fm-text" id="fm-login-password" tabindex="2" aria-label="请输入登录密码" placeholder="请输入登录密码" maxlength="40" autocapitalize="off" data-spm-anchor-id="a2107.1.0.i2.3e3e11d9pGQKXf">
登录按钮的控件代码:<button type="submit" tabindex="3" class="fm-button fm-submit password-login" data-spm-anchor-id="a2107.1.0.i3.3e3e11d9pGQKXf">登录</button>
找到登录需要用的的这几个关键控件代码都就可以开始编码来控制这些控件进行模拟操作了。

2、通过Selenium实现模拟登录代码

具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from selenium.webdriver import Chrome
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common import TimeoutException

driver=Chrome()
wait = WebDriverWait(driver, 10)

# 模拟淘宝登录
def login_taobao():
print('开始登录...')
try:
login_url='https://login.taobao.com/member/login.jhtml'
driver.get(login_url)
input_login_id = wait.until(EC.presence_of_element_located((By.ID, 'fm-login-id')))
input_login_password = wait.until(EC.presence_of_element_located((By.ID, 'fm-login-password')))
input_login_id.send_keys('your account') # 用你自己的淘宝账号替换
input_login_password.send_keys('your password') # 用你自己的密码替换
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.fm-button.fm-submit.password-login')))
submit.click()
is_loging = wait.until(EC.url_changes(login_url))
return is_loging
except TimeoutException:
print('login_taobao TimeoutException')
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.fm-button.fm-submit')))
submit.click()
is_loging = wait.until(EC.url_changes(login_url))
if is_loging:
return is_loging
else:
login_taobao()

if __name__ == '__main__':
is_loging=login_taobao()
if is_loging:
print('已经登录')

运行代码后可以看到程序自动的调起了一个Chrome浏览器并访问了淘宝的登录页面,自动的输入了用户淘宝账号和密码,自动的点击了登录按钮,但出现了一个滑动验证的控件,要求滑动验证。
淘宝登录需要滑动验证

人工拖动滑动验证控件,显示验证失败。
淘宝滑动验证失败

这是因为淘宝有一套反爬机制识别是否是机器自动在登录。如果是人工打开浏览器,手工输入账号密码登录就不会弹出滑动验证控件进行验证。在网上有很多办法,如可以通过代理修改chormdriver的识别码,这里介绍通过Selenium如何接管已经运行的Chrome浏览器来实现规避淘宝的验证。

3、Selenium接管已经运行的Chrome浏览器

1)启动Chrome的远程调试模式

通过
chrome.exe --remote-debugging-port=9222 --user-data-dir='某个存在的文件夹地址' 启动Chrome的远程调试模式,启动一个Chrome浏览器。
找到chrome的安装目录,找到chrome.exe ,通过cmd命令行执行上面的命令。
启动Chrome远程调试模式

运行上面命令后,就会弹出一个chrome浏览器,这个浏览器是可以被Selenium来接管操作的。

2)代码中实现接管已经运行的Chrome浏览器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common import TimeoutException

chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "localhost:9222") #此处端口保持和命令行启动的端口一致
driver = Chrome(options=chrome_options)
wait = WebDriverWait(driver, 10)


# 模拟淘宝登录
def login_taobao():
print('开始登录...')
try:
login_url='https://login.taobao.com/member/login.jhtml'
driver.get(login_url)
input_login_id = wait.until(EC.presence_of_element_located((By.ID, 'fm-login-id')))
input_login_password = wait.until(EC.presence_of_element_located((By.ID, 'fm-login-password')))
input_login_id.send_keys('your account') # 用你自己的淘宝账号替换
input_login_password.send_keys('your password') # 用你自己的密码替换
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.fm-button.fm-submit.password-login')))
submit.click()
is_loging = wait.until(EC.url_changes(login_url))
return is_loging
except TimeoutException:
print('login_taobao TimeoutException')
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.fm-button.fm-submit')))
submit.click()
is_loging = wait.until(EC.url_changes(login_url))
if is_loging:
return is_loging
else:
login_taobao()

if __name__ == '__main__':
is_loging=login_taobao()
if is_loging:
print('已经登录')

4、运行效果

运行上述代码就可以看到,Selenium接管了这个通过Chrome的远程调试模式启动的浏览器,并自动输入用户名和密码,自动登录成功,跳转到我的淘宝界面。
自动登录到我的淘宝

二、通过Selenium自动爬取淘宝商品信息

1、分析商品页面

https://s.taobao.com/search?page=1&q=ipad&tab=all
通过Chrome浏览器输入淘宝搜索商品页面链接F12打开开发者工具,分析淘宝搜索商品列表页的源代码,找到商品展示相关源代码包括商品的title、价格、详情页、购买情况等。我们需要通过解析这些源代码获取相应的商品信息。
分析商品页面

找到下一页翻页的按钮,我们需要控制下一页翻页的按钮来实现自动翻页。
分析淘宝下一页

2、实现商品获取代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 解析获取商品信息
def get_products():
"""提取商品数据"""
html = driver.page_source
doc = pq(html)
items = doc('.Card--doubleCardWrapper--L2XFE73').items()
for item in items:
product = {'url': item.attr('href'),
'price': item.find('.Price--priceInt--ZlsSi_M').text(),
'realsales': item.find('.Price--realSales--FhTZc7U-cnt').text(),
'title': item.find('.Title--title--jCOPvpf').text(),
'shop': item.find('.ShopInfo--TextAndPic--yH0AZfx').text(),
'location': item.find('.Price--procity--_7Vt3mX').text()}
print(product)

# 自动获取商品信息并自动翻页
def index_page(url,cur_page,max_page):
print(' 正在爬取:'+url)
try:
driver.get(url)
get_products()
next_page_btn = wait.until(EC.element_to_be_clickable((By.XPATH, '//button/span[contains(text(),"下一页")]')))
next_page_btn.click()
do_change = wait.until(EC.url_changes(url))
if do_change and cur_page<max_page:
new_url=driver.current_url
cur_page = cur_page + 1
index_page(new_url,cur_page,max_page)
except TimeoutException:
print('---index_page TimeoutException---')

3、实现效果

从浏览器看,Selenium自动访问淘宝登录页,当切到用户名密码登录界面时,Selenium自动输入用户名、密码点击登录。登录成功后,自动访问商品搜索页搜索ipad,进行商信息获取,自动翻下一页。
从后台打印的日志看,显示“开始登录”、“已经登录”,正在爬取的链接和该链接下的商品信息。
Selenium后台日志

至此,通过Selenium来代码实现模拟登录淘宝并自动爬取商品信息,进行了Selenium的实战。
要注意的是:

1、在Selenium打开登录页面后淘宝默认的是扫码登录,需要人为接入切换用户密码模式。这时也可以让Selenium自动去切到用户密码模式登录。代码如下:
change_type=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ‘.iconfont.icon-password’)))
change_type.click() #切换到用户密码模式登录
2、在运行启动Chrome的远程调试模式,启动Chrome浏览器后,要关闭其他的Chrome浏览器,保留远程调试模式启动的浏览器就好了。如果是存在多个Chrome浏览器Selenium会不知道要接管哪一个。

附上全部完整代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common import TimeoutException
from urllib.parse import quote
from pyquery import PyQuery as pq

chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "localhost:9222") #此处端口保持和命令行启动的端口一致
driver = Chrome(options=chrome_options)
wait = WebDriverWait(driver, 10)

# 模拟淘宝登录
def login_taobao():
print('开始登录...')
try:
login_url='https://login.taobao.com/member/login.jhtml'
driver.get(login_url)
change_type=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.iconfont.icon-password')))
change_type.click() #切换到用户密码模式登录
input_login_id = wait.until(EC.presence_of_element_located((By.ID, 'fm-login-id')))
input_login_password = wait.until(EC.presence_of_element_located((By.ID, 'fm-login-password')))
input_login_id.send_keys('your account') # 用你自己的淘宝账号替换
input_login_password.send_keys('your password') # 用你自己的密码替换
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.fm-button.fm-submit.password-login')))
submit.click()
is_loging = wait.until(EC.url_changes(login_url))
return is_loging
except TimeoutException:
print('login_taobao TimeoutException')
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.fm-button.fm-submit')))
submit.click()
is_loging = wait.until(EC.url_changes(login_url))
if is_loging:
return is_loging
else:
login_taobao()


# 解析获取商品信息
def get_products():
"""提取商品数据"""
html = driver.page_source
doc = pq(html)
items = doc('.Card--doubleCardWrapper--L2XFE73').items()
for item in items:
product = {'url': item.attr('href'),
'price': item.find('.Price--priceInt--ZlsSi_M').text(),
'realsales': item.find('.Price--realSales--FhTZc7U-cnt').text(),
'title': item.find('.Title--title--jCOPvpf').text(),
'shop': item.find('.ShopInfo--TextAndPic--yH0AZfx').text(),
'location': item.find('.Price--procity--_7Vt3mX').text()}
print(product)

# 自动获取商品信息并自动翻页
def index_page(url,cur_page,max_page):
print(' 正在爬取:'+url)
try:
driver.get(url)
get_products()
next_page_btn = wait.until(EC.element_to_be_clickable((By.XPATH, '//button/span[contains(text(),"下一页")]')))
next_page_btn.click()
do_change = wait.until(EC.url_changes(url))
if do_change and cur_page<max_page:
new_url=driver.current_url
cur_page = cur_page + 1
index_page(new_url,cur_page,max_page)
except TimeoutException:
print('---index_page TimeoutException---')




if __name__ == '__main__':
is_loging=login_taobao()
if is_loging:
print('已经登录')
KEYWORD = 'iPad'
url = 'https://s.taobao.com/search?page=1&q=' + quote(KEYWORD) + '&tab=all'
max_page=10
index_page(url,1,max_page)

作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

Selenium安装与配置

发表于 2024-02-23 | 更新于: 2025-04-08 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 1k | 阅读时长 ≈ 3

Selenium是一个用于Web应用程序测试的自动化工具。它直接运行在浏览器中,模拟真实用户的操作。Selenium支持多种主流浏览器,如IE、Mozilla Firefox、Safari、Google Chrome、Opera和Edge等。在爬取数据的时候对于需要登录后才能爬取的情况往往可以利用Selenium来进行模拟登录,登录后进行数据的获取。这里先介绍Selenium的安装与配置,实现通过python来驱动浏览器进行操作。

一、selenium安装

要安装Selenium,首先需要具备Python开发环境。以下是安装Selenium的步骤:

1. Python环境准备:

  • 打开Python官网:https://www.python.org/downloads/,下载适合你操作系统的Python版本。

  • 安装Python。在window下安装python环境非常简单,直接下一步下一步就可以安装完成。安装过程中,确保将Python添加到环境变量中,以便在命令行中运行Python命令。

    在这里插入图片描述

  • 安装完成后,可以在命令行中输入python --version来验证Python是否安装成功,并查看版本号。

在这里插入图片描述

2. 安装Selenium:

  • 在命令行中,使用pip(Python的包管理工具)来安装Selenium。输入以下命令并按回车键执行:
  • 如果你的系统有多个Python版本,可能需要使用pip3代替pip。
1
pip install selenium

3. 浏览器驱动安装:

  • Selenium支持多种浏览器,但每种浏览器都需要相应的驱动程序。例如,对于Chrome浏览器,你需要下载ChromeDriver。
    ○ 访问ChromeDriver的下载页面:https://sites.google.com/a/chromium.org/chromedriver/,选择与你的Chrome浏览器版本相对应的ChromeDriver版本。
    ○ 国内镜像下载站点 https://registry.npmmirror.com/binary.html?path=chromedriver/
    高版本的ChromeDriver可以在https://chromedriver.com/download 下载
  • 下载后,解压(如果需要的话),并将ChromeDriver的路径添加到系统环境变量中,或者将其放在你的项目目录中。比如我的是放到 C:\python\Scripts 并将C:\python\Scripts配置到了系统环境变量中。
    在这里插入图片描述

4. 验证安装:

参考selenium的官方文档,创建一个简单的Python脚本,使用Selenium打开浏览器并访问一个网页。
运行这个脚本。如果一切顺利,它会打开Chrome浏览器并导航到指定的URL,然后关闭浏览器。
代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get("https://www.selenium.dev/selenium/web/web-form.html")

title = driver.title

driver.implicitly_wait(0.5)

text_box = driver.find_element(by=By.NAME, value="my-text")
submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")

text_box.send_keys("Selenium")
submit_button.click()

message = driver.find_element(by=By.ID, value="message")
text = message.text

driver.quit()

效果如下:
打开一个浏览器,访问https://www.selenium.dev/selenium/web/web-form.html
在这里插入图片描述

对浏览器中的元素进行操作,最后关闭浏览器。
在这里插入图片描述

请注意,由于Selenium和浏览器驱动程序可能会定期更新,因此在安装和配置过程中,最好参考最新的官方文档和指南。

二、常见问题

在安装Selenium的过程中,可能会遇到一些常见的问题

1. Selenium版本与浏览器驱动程序不兼容:

  • 问题:安装的Selenium版本与浏览器驱动程序版本不兼容。
  • 解决方案:检查Selenium和浏览器驱动程序的版本,确保它们相互兼容。通常,Selenium的最新版本会支持最新的浏览器驱动程序。如果需要,可以降级或升级Selenium或浏览器驱动程序以确保兼容性。

    2. 浏览器驱动程序路径未正确设置:

  • 问题:浏览器驱动程序的路径未正确设置,导致Selenium无法找到驱动程序。
  • 解决方案:确保将浏览器驱动程序的路径添加到系统环境变量中,或者在Selenium代码中明确指定驱动程序的路径。例如,对于ChromeDriver,可以在代码中这样设置:
1
2
from selenium import webdriver  
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

后续我们将实战通过selenium来实现登录到淘宝并获取淘宝的商品信息。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

数据安全之认识数据库审计系统

发表于 2024-02-22 | 更新于: 2025-04-08 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 3.6k | 阅读时长 ≈ 12

随着企业业务数据量的不断增长和数据存储的集中化,数据库成为企业的核心资产之一。然而,数据库面临着各种安全威胁,如SQL注入、权限滥用、数据泄露等。为了保障数据库的安全性和完整性,企业需要采取有效的审计措施来监控和记录数据库的操作行为。本文让我们一起来认识数据库审计系统。

一、什么是数据库审计系统

数据库审计系统是通过对所有访问数据库操作行为的审计,详细记录用户对数据库进行增删改查、查询、登录等操作行为及返回结果,通过配置安全规则实现对危险操作的实时告警和事后追溯,从而达到保护数据库安全的防护效果的审计产品。通常黑客的SQL注入攻击行为,也可以通过数据库审计发现。

数据库审计系统具备实时监测并智能地分析、还原各种数据库操作过程的功能。它还能根据设置的规则,智能地判断出违规操作数据库的行为,并对违规行为进行记录、报警,甚至阻断攻击行为。

数据库审计系统的主要价值在于:

  1. 在发生数据库安全事件(例如数据篡改、泄露)后,为事件的追责定责提供依据。
  2. 针对数据库操作的风险行为进行时时告警,帮助管理人员对用户的行为一目了然,真正做到数据库操作行为可监控,违规操作可追溯。

此外,数据库审计系统还可以帮助用户事后生成合规报告,提高数据资产安全。它是数据库安全技术之一,与数据库漏扫、数据库加密、数据库防火墙、数据脱敏等技术共同构成了数据库安全体系。

二、为什么需要数据库审计系统

数据库审计系统产生的背景主要基于以下几个方面的需求和发展趋势:

  1. 数据安全风险增加:随着企业业务数据量的不断增长和数据存储的集中化,数据库成为企业的核心资产之一。然而,数据库面临着各种安全威胁,如SQL注入、权限滥用、数据泄露等。为了保障数据库的安全性和完整性,企业需要采取有效的审计措施来监控和记录数据库的操作行为。
  2. 法规政策要求:随着数据保护法规的日益严格,如GDPR(通用数据保护条例)等,企业需要确保数据库操作符合法规要求,并能够提供合规的审计日志。数据库审计系统能够帮助企业满足这些法规要求,提供合规的审计证据。
  3. 业务需求推动:企业为了保障业务连续性和数据安全,需要对数据库操作进行严格的控制和审计。例如,企业需要监控敏感数据的访问和操作,确保只有授权的用户能够执行特定的操作。数据库审计系统能够提供细粒度的审计和监控功能,满足企业的业务需求。
  4. 技术发展推动:随着数据库技术的不断发展和创新,如云计算、大数据等技术的广泛应用,数据库审计系统也需要不断升级和完善,以适应新的技术环境和安全挑战。
    基于数据安全风险增加、法规政策要求、业务需求推动和技术发展推动等因素。企业需要采用有效的数据库审计系统来监控和记录数据库操作行为,保障数据的安全性和合规性,同时满足业务需求和技术发展要求。

三、数据库审计系统的主要功能

数据库审计的主要功能在于对数据库的访问行为进行监管,通过镜像或探针的方式采集所有数据库的访问流量,记录下数据库的所有访问和操作行为,在发生数据库安全事件(例如数据篡改或泄露)后为事件的追责提供依据,并针对数据库操作的风险行为进行告警。
1、实时监控与访问审计
数据库审计系统可实时监控防护数据库系统,防止运维人员、黑客、内部人员的危险操作。当用户访问数据库时,数据库审计系统能够根据内置或者自定义的风险告警规则,进行行为特征及审计规则匹配,任何对数据库的攻击或触发审计规则的操作都会被审计系统记录并实时告警。
2、审计记录检索
数据库审计系统通过各种条件组合的方式进行查询,能够快速精确地定位到某条审计记录。这些组合条件包括操作语句、MAC地址、客户端IP、数据库信息、时间、返回结果等内容。
3、丰富的安全审计报表
数据库审计系统具备功能强大的报表功能,根据审计检索的条件可以导出合规报表和自定义安全报表。
4、安全事件回放
允许安全管理员提取历史数据,对过去某一时段的事件进行回放,真实展现当时的完整数据库操作过程,便于分析和追溯系统安全问题。
5、风险触发实时告警
一旦出现违反数据库安全审计规则的操作,数据库审计系统通常可以配置多种告警方式,包括通过手机短信、邮件、SYSLOG、SNMP等发送到对应运维或者管理人员手中。

四、数据库审计系统的原理

数据库审计系统的原理主要是基于数据库协议标准分析和SQL解析技术,通过旁路部署的方式,镜像或探针采集所有数据库的访问流量,然后对这些流量进行深度解析和审计。
具体来说,数据库审计系统通过获取访问数据库的报文,对报文进行深度解析,提取出针对数据库的操作信息,如访问数据库的IP、账号、时间、操作类型、操作对象以及返回结果等。然后,系统根据预设的审计策略,对这些操作信息进行风险识别,判断是否存在违规操作或安全威胁。如果存在违规行为,系统会实时发出告警,并记录相关审计日志,以便后续分析和追溯。
此外,数据库审计系统还可以根据需要对审计记录进行检索和分析,提供丰富的查询条件和统计分析功能,帮助管理员快速定位问题和追根溯源。同时,系统还可以生成合规报告,帮助用户满足相关的法规要求。
综上所述,数据库审计系统的原理主要是通过采集、解析和审计数据库访问流量,识别违规操作和安全威胁,提供实时告警和审计记录查询功能,确保数据库的安全性和合规性。

五、数据库审计系统的部署方式

1、常规部署(硬件形式旁路部署)
数据库审计系统采用旁路部署时,硬件设备与交换机直连,通过交换机把数据库的访问流量镜像到某个端口,流量直接发送到数据库审计系统的网卡驱动,审计系统需要对流量进行捕获并解析处理。
2、软件部署(软件形式虚拟化部署)
通过插件引流的模式在目标数据库安装agent,解决云环境、虚拟化环境内部流量无法镜像的问题,这种场景下数据库审计系统依旧可以获取网卡的流量,保证正常审计。
3、分布式部署
分布式部署分为中心节点和子节点,审计中心统一负责数据库审计日志数据的存储和分析,审计子节点作为探针负责数据库操作日志的采集、解析和审计,一个审计中心可管理多个审计子节点。另一种模式是单独一个审计管理平台,其他子节点都是正常的审计设备,一个平台实现运维管理和运行监控,适用大型企业单位的分布式部署场景。

六、数据库审计系统如何确保数据安全性

  1. 实时监控与审计:数据库审计系统能够实时监控数据库的所有操作行为,包括访问、修改、删除等。这种实时监控可以确保对数据库的所有活动都有详细的记录,从而能够及时发现并应对任何潜在的安全威胁。
  2. 违规操作检测与告警:系统能够智能地分析并识别出违规操作,如非法越权访问、数据篡改等,并实时发出告警。这有助于管理员及时采取应对措施,防止数据泄露或损坏。
  3. 审计策略管理:系统支持灵活的审计策略设定,可以根据需要对登录用户、数据库表名、字段名及关键字等内容进行多种条件组合的规则设定。这种策略管理可以帮助管理员精确地控制哪些操作需要被审计,从而提高审计效率。
  4. 审计记录检索与分析:系统提供丰富的审计查询条件和细致的统计分析条件,支持以地址、性能消耗、语句数量等多种条件在海量数据中快速检索审计记录。这有助于管理员快速定位问题,找出潜在的安全风险。
  5. 合规报告与事故追根溯源:通过对用户访问数据库行为的记录、分析和汇报,系统可以帮助用户生成合规报告,以及在发生数据安全事故时进行追根溯源,明确责任。这有助于组织满足合规性要求,同时也有助于防止类似事件再次发生。
  6. 风险预警与日志管理:系统提供24小时实时监控,支持syslog、snmp、邮件、网管联动、短信猫、录像等多种方式对危险行为实时告警。此外,系统还具备强大的日志查询与报表管理功能,保证查询结果的可视化展示。这些功能可以帮助管理员及时发现并应对潜在的安全风险。

数据库审计系统通过实时监控、违规操作检测、审计策略管理、审计记录检索、合规报告与事故追根溯源以及风险预警与日志管理等方式,确保数据库的安全性。这些功能共同构成了一个全面的数据库安全防护体系,帮助组织有效地保护其数据免受未经授权的访问和数据泄露的威胁。

七、数据库审计和日志审计系统的区别和联系

数据库审计和日志审计系统都是企业IT安全领域中的重要组成部分,但它们之间存在一些区别和联系。

  • 区别:
  1. 审计对象不同:数据库审计系统主要关注数据库层面的安全审计,监控和记录对数据库的操作行为,包括数据的访问、修改、删除等。而日志审计系统则更广泛地关注企业IT系统中的各种设备、应用和系统产生的日志,包括安全设备、网络设备、服务器、应用系统等。
  2. 审计重点不同:数据库审计系统侧重于对数据库操作行为的合规性、风险性进行审计,帮助用户事后生成合规报告、事故追根溯源。而日志审计系统则更注重对整个IT系统的活动进行审计,包括系统的运行状态、安全事件、用户行为等。
  3. 审计范围不同:数据库审计系统主要关注数据库系统的安全,包括数据库对象的创建、修改和删除,用户的登录和退出,数据库的访问等。而日志审计系统则通常关注整个系统的活动,包括操作系统、应用程序等的活动,以及网络流量等。
  • 联系:
  1. 相辅相成:数据库审计系统和日志审计系统在企业IT安全中都扮演着重要的角色,它们相辅相成,共同构成了企业IT安全审计的完整体系。数据库审计系统可以为日志审计系统提供更为细粒度的审计数据,而日志审计系统则可以为数据库审计系统提供更为全面的系统活动信息。
  2. 相互支持:在实际应用中,数据库审计系统和日志审计系统可以相互支持和配合,共同提高企业的IT安全水平。例如,当数据库审计系统检测到异常操作时,可以触发日志审计系统对相关日志进行深入分析,以便及时发现和应对安全事件。

数据库审计和日志审计系统在审计对象、审计重点和审计范围等方面存在明显的区别,但它们在企业IT安全中又相互支持、相辅相成,共同构成了企业IT安全审计的完整体系。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

数据安全之认识数据资产管理平台

发表于 2024-02-18 | 更新于: 2025-04-08 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 4.4k | 阅读时长 ≈ 14

随着企业数字化转型的深入,数据已经成为企业的重要资产。企业需要更加有效地管理和利用数据,以支持业务决策、优化运营和提高竞争力。本文让我们一起来认识数据资产及数据资产管理平台。

一、什么是数据资产

数据资产是指由个人或企业拥有或控制的,能够为企业带来未来经济利益的,以物理或电子的方式记录的数据资源。这些数据资源需要满足以下条件才能被称为数据资产:

  1. 有价值性:数据资产必须具有价值,能够为企业带来经济利益。这种价值可以表现为直接的经济效益,如提高销售额、降低成本等,也可以表现为间接的经济效益,如提升客户满意度、优化业务流程等。
  2. 可计量性:数据资产的价值必须能够进行量化和计量。这意味着数据资产需要具有可衡量和可评估的属性,可以通过数据分析和挖掘来评估其潜在价值和贡献。
  3. 可读取性:数据资产必须以物理或电子的方式记录,能够被读取、存储和处理。这意味着数据资产需要具有标准化的格式和规范,能够被各种系统和工具所识别和利用。
  4. 权属明确:数据资产必须具有明确的权属关系,即数据的所有权、使用权等需要清晰明确,能够被合法地拥有和控制。这有助于保护企业的数据权益,防止数据泄露和滥用。

数据资产与普通数据的主要区别在于它们的性质和价值。数据资产被视为一种有价值的资源,需要得到妥善的管理和保护,以实现其潜在的经济价值。只有满足以上条件的数据资源才能被称为数据资产。数据资产是企业重要的无形资产之一,对于企业的决策制定、业务优化和经济发展具有重要意义。因此,企业需要加强数据资产的管理和保护,提高数据的质量和价值,从而实现数据驱动的业务发展。

二、什么是数据资产管理平台

1、什么是数据资产管理平台

数据资产管理平台是一个用于集中管理、保护和利用组织数据资产的工具。它提供了一个统一的方式来存储、访问、分析和共享数据,旨在帮助组织更好地管理和利用其数据资产。该平台通常包括数据资产盘点、元数据管理、智能数据分析、数据标准管理、数据集成管理、数据质量管理等功能模块,可以实现对数据资产的全面管理和控制。
数据资产管理平台的核心能力包括简洁可视化的目录构建流程、数据资产标签、数据资产服务等,可以帮助组织实现数据资产的规范管理和高效利用。同时,该平台还具备数据安全保障能力,可以确保数据的安全性和完整性,防止数据泄露和非法访问。

2、为什么需要数据资产管理平台

● 数字化转型趋势:随着企业数字化转型的深入,数据已经成为企业的重要资产。企业需要更加有效地管理和利用数据,以支持业务决策、优化运营和提高竞争力。数据资产管理平台应运而生,为企业提供数据整合、分析、挖掘和利用的能力。
● 数据复杂性增加:随着企业数据规模的不断扩大和来源的多样化,数据的复杂性也在增加。企业需要解决数据整合、数据质量、数据安全等问题,以确保数据的准确性和可靠性。数据资产管理平台通过提供数据集成、数据清洗、数据治理等功能,帮助企业解决这些问题。
● 数据价值挖掘需求:数据资产中蕴含着巨大的价值,但如何发现并利用这些价值成为企业的挑战。数据资产管理平台通过数据分析和挖掘技术,帮助企业发现数据中的模式、趋势和洞察,从而挖掘数据的潜在价值。
● 法规政策要求:随着数据保护法规的日益严格,企业需要确保数据的安全性和合规性。数据资产管理平台通过提供数据加密、访问控制、审计日志等功能,帮助企业满足法规政策的要求,保护数据的安全和隐私。

数据资产管理平台对于现代企业来说具有重要的意义。随着大数据时代的到来,数据已经成为企业的重要资产,而如何有效地管理和利用这些数据资产已经成为企业面临的重要挑战。数据资产管理平台可以帮助企业实现数据资产的规范化、标准化和高效化管理,提高数据的质量和价值,从而为企业的发展提供有力的支持。

三、数据资产管理平台的主要功能

数据资产管理平台的主要功能包括:

  1. 数据资产盘点:从组织架构、业务、信息系统等不同维度统计数据资产,实现组织级数据资产的电子化管理和动态维护功能,形成数据资产管理账册,是实施数据资产管理的重要步骤。
  2. 元数据管理:主要包括数据源管理、数据对象管理、数据资产构造细节、数据标准版本管理等功能。通过元数据标准化、自动审核、血缘关系分析、影响分析等功能,使元数据管理更加自动化、系统化、规范化。
  3. 智能数据分析:基于统计学、模式识别、机器学习、数据抽象等数据分析工具从数据中发现知识的分析方法,直接或间接提高工作效率,帮助用户在正确的时间拥有正确的数据信息,快速做出正确的决策。
  4. 数据标准管理:数据标准分为基本标准和指标标准。通过数据标准,可以检查落地情况和数据质量问题。
  5. 数据集成管理:基于WEB页面的批量集成、可视化流程设计、任务集群管理的数据集成功能,提供全量、增量、CDC、数据库表复制等不同的数据集成能力。
  6. 数据质量管理:数据安全管理规范文件的集中管理、存储和访问,自动发现和分类敏感数据和权限,发现合规风险,监控敏感数据,监控不当数据询问,了解谁在访问数据,观察异常情况并防止数据丢失。
  7. 数据安全和权限管理:确保数据的安全性和隐私保护,包括数据加密、访问控制、权限管理等。
  8. 数据共享和协作:支持数据的共享和协作,促进不同部门和团队之间的数据共享和交流。
    数据资产管理平台的主要功能涵盖了数据资产盘点、元数据管理、智能数据分析、数据标准管理、数据集成管理、数据质量管理、数据安全和权限管理以及数据共享和协作等方面,旨在帮助企业全面管理和利用自身的数据资产,提高数据的质量和价值,为企业的发展提供有力的支持。

四、数据资产管理平台的工作原理

数据资产管理平台通过资产发现系统对多类型数据的资产数据做识别、分析并采集到资源库。支持数据表技术字段、业务类型、字段业务类型识别,以标准数据格式存储,通过后端服务实现对目录和资源的数据管理。

技术架构示意图如下:

数据资产管理平台技术架构

  1. 数据收集与整合:平台首先通过各种方式(如数据库接口、文件导入、API等)从企业的各个数据源中收集数据,并对这些数据进行整合和清洗,以确保数据的准确性和一致性。
  2. 元数据提取与管理:平台会自动提取数据的元数据(即描述数据的数据),并对这些元数据进行管理。元数据可以帮助企业理解数据的来源、含义、关系以及使用方式。
  3. 数据资产目录构建:基于元数据,平台会构建一个数据资产目录。这个目录可以清晰地展示企业的所有数据资产,包括它们的类型、位置、状态以及与其他数据资产的关系。
  4. 数据质量监控与提升:平台会对数据的质量进行持续的监控,并提供工具和方法来提升数据质量。例如,平台可以检测数据的完整性、准确性、一致性等,并提供数据清洗和转换的工具。
  5. 数据安全保护:平台会实施严格的数据安全保护措施,包括数据加密、访问控制、审计日志等,以确保数据的安全性和隐私性。
  6. 数据展示与服务提供:平台会提供一系列的数据服务,如数据查询、数据分析、数据挖掘等,以帮助用户更好地利用数据。同时,平台也会支持数据的共享和交换,以促进企业内部以及企业与外部的数据合作。

数据资产管理平台通过自动化的方式,对企业的数据资产进行全面的管理、保护和利用,从而帮助企业提高数据的质量和价值,实现数据驱动的业务发展。

五、数据资产管理平台的应用场景

数据资产管理平台的应用场景非常广泛,主要涵盖以下几个领域:

  1. 企业数据管理:数据资产管理平台可以帮助企业管理和整合各类数据,包括客户数据、产品数据、供应链数据、财务数据等。通过实现数据的一致性和准确性,平台支持企业的决策和业务运营。
  2. 数据分析与洞察:通过数据资产管理平台,企业可以进行数据分析和挖掘,发现数据中的模式、趋势和洞察。这些洞察有助于企业了解市场需求、优化产品设计、改进营销策略等。
  3. 智能决策支持:平台可以提供实时和准确的数据,支持企业进行智能决策。通过数据的可视化和报表生成,企业可以快速获取关键指标和业务洞察,以支持决策制定和执行。
  4. 客户关系管理:数据资产管理平台可以集成和管理客户数据,帮助企业建立完整的客户画像,实现个性化营销、客户维护和客户服务的优化。
  5. 供应链管理:平台可以监控和管理供应链中的各个环节,包括供应商管理、库存管理、物流管理等,从而提高供应链的效率和可靠性。
  6. 金融风控:在金融行业,数据资产管理平台可以集成和分析大量的金融数据,帮助金融机构进行风险评估和风控管理,提高风险管理的准确性和效率。

此外,随着技术的发展和应用场景的不断扩展,数据资产管理平台还可能应用于更多的领域,如物联网、人工智能、大数据等,以满足企业不断增长的数据管理和利用需求。

六、安全资产管理平台与数据资产管理平台的区别与关系

安全资产管理平台和数据资产管理平台在功能和目标上存在一定的区别,但它们之间也存在紧密的联系。

1、安全资产管理平台与数据资产管理平台的区别

  1. 关注点不同:安全资产管理平台主要关注资产的安全性和风险管理,包括资产识别、风险评估、安全策略制定等。而数据资产管理平台则更侧重于数据的收集、整合、分析和利用,关注数据的完整性、准确性、一致性和可访问性等方面。
  2. 管理对象不同:安全资产管理平台主要管理的是企业的IT资产,包括硬件、软件、网络设备等。而数据资产管理平台则主要管理企业的数据资产,包括结构化数据、非结构化数据、流数据等。
  3. 技术手段不同:安全资产管理平台通常采用安全审计、漏洞扫描、入侵检测等技术手段来确保资产的安全。而数据资产管理平台则利用数据集成、数据清洗、数据挖掘等技术手段来管理和利用数据资产。

    2、安全资产管理平台与数据资产管理平台的关系

  4. 相辅相成:安全资产管理平台和数据资产管理平台在企业的信息化建设中相辅相成。安全资产管理平台为数据资产管理平台提供了安全保障,确保数据资产在收集、传输、存储、使用等过程中的安全性。而数据资产管理平台则通过有效的数据管理和利用,为企业的业务决策和运营提供有力支持,同时也为安全资产管理平台提供了更多的数据源和分析依据。
  5. 相互促进:随着企业信息化程度的不断提高,数据资产的安全性和价值性日益凸显。安全资产管理平台和数据资产管理平台可以通过相互集成和协作,共同提升企业的信息化水平和核心竞争力。例如,通过数据资产管理平台发现的数据异常或风险,可以触发安全资产管理平台进行相应的安全审计和风险评估,从而及时发现和解决潜在的安全隐患。

安全资产管理平台和数据资产管理平台虽然在功能和目标上存在一定的区别,但它们之间紧密相连、相互促进,共同构成了企业信息化建设的重要组成部分。

七、企业如何利用数据资产管理平台管理数据

数据资产管理平台可以通过以下几个方面帮助企业管理数据:

  1. 数据资产盘点:数据资产管理平台可以对企业的数据资产进行全面的盘点,包括数据的来源、存储、使用情况等,从而帮助企业了解自身的数据资产状况,为数据管理和利用提供基础数据。
  2. 元数据管理:元数据是描述数据的数据,通过对元数据的管理,可以帮助企业更好地理解和利用数据。数据资产管理平台可以提供元数据的采集、存储、查询和利用等功能,从而实现元数据的规范化管理。
  3. 智能数据分析:数据资产管理平台可以利用人工智能技术对数据进行分析和挖掘,从而帮助企业发现数据中的规律和趋势,提高数据的利用价值。
  4. 数据标准管理:数据资产管理平台可以制定和管理企业的数据标准,包括数据格式、数据命名、数据分类等,从而确保数据的规范性和一致性,提高数据的质量和可利用性。
  5. 数据集成管理:数据资产管理平台可以实现对企业内部和外部的数据进行集成和整合,从而消除数据孤岛,实现数据的共享和利用。
  6. 数据质量管理:数据资产管理平台可以对数据进行质量检查和管理,包括数据的完整性、准确性、一致性等,从而确保数据的质量和可靠性。
  7. 数据安全保障:数据资产管理平台可以提供数据安全保障能力,包括数据的加密、备份、恢复等,从而确保数据的安全性和完整性,防止数据泄露和非法访问。

数据资产管理平台可以通过全面的数据管理和利用能力,帮助企业更好地管理和利用自身的数据资产,提高数据的质量和价值,为企业的发展提供有力的支持。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

网络安全产品之认识蜜罐

发表于 2024-02-14 | 更新于: 2025-04-08 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 4.2k | 阅读时长 ≈ 14

蜜罐的概念首次由Clifford Stoll在其1988年出版的小说《The Cuckoo’s Egg》中提出。Clifford Stoll不仅是一位著名的计算机安全专家,还是这本小说的作者。他在小说中描述了自己作为一个公司的网络管理员如何追踪并发现一起商业间谍案的故事。在这个过程中,他成功地利用包含虚假信息的文件作为诱饵来检测入侵,这种技术思想就是蜜罐的雏形。因此,可以认为Clifford Stoll是首次提出蜜罐概念的人。随后,在1998年,商用的蜜罐产品开始出现,这标志着蜜罐技术开始从理论走向实际应用。本文让我们一起来认识蜜罐。

一、什么是蜜罐

蜜罐(Honeypot)是一种主动防御技术,是一个包含漏洞的诱骗系统。蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
蜜罐好比是情报收集系统。蜜罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。

二、蜜罐的主要类型

蜜罐的主要类型可以根据其交互程度和实现方式进行分类:

  1. 根据交互程度的不同,蜜罐可以分为高交互蜜罐和低交互蜜罐。
    ● 高交互蜜罐:提供一个真实的、可交互的操作系统或服务。这种蜜罐模拟了真实系统的功能,允许攻击者获得完全的访问权限,并能作为跳板实施进一步的网络攻击。然而,高交互蜜罐的部署较为困难,维护成本较高,且一旦服务上存在的漏洞被利用,容易引发新的安全问题。
    ● 低交互蜜罐:只模拟部分系统、端口或服务的功能。这种蜜罐的设计相对简单,主要目的是引诱攻击者进行交互,同时保护真实的系统不受攻击。由于低交互蜜罐的功能有限,攻击者不能通过攻击这些服务获得完全的访问权限。因此,低交互蜜罐相对容易部署和维护。
  2. 从实现方法上来分,蜜罐可分为物理蜜罐和虚拟蜜罐。
    ● 物理蜜罐:指网络上一台真实的完整计算机,它运行着真实的操作系统和服务,具有较高的逼真度,能够吸引更多的攻击者。然而,物理蜜罐的部署和维护成本较高,且可能面临法律和道德问题。
    ● 虚拟蜜罐:由一台计算机模拟的系统,它可以响应发送给虚拟蜜罐的网络流量。虚拟蜜罐具有成本低、易于部署和管理的优点,同时可以模拟多种操作系统和服务,提高蜜罐的灵活性和多样性。

此外,根据部署目的的不同,蜜罐还可以分为产品型蜜罐和研究型蜜罐两类。产品型蜜罐主要用于为一个组织的网络提供安全保护,而研究型蜜罐则专门用于对黑客攻击的捕获和分析。

三、蜜罐的主要功能

  1. 迷惑入侵者,保护服务器
    一般的客户/服务器模式里,浏览者是直接与网站服务器连接的,换句话说,整个网站服务器都暴露在入侵者面前,如果服务器安全措施不够,那么整个网站数据都有可能被入侵者轻易毁灭。但是如果在客户/服务器模式里嵌入蜜罐,让蜜罐作为服务器角色,真正的网站服务器作为一个内部网络在蜜罐上做网络端口映射,这样可以把网站的安全系数提高,入侵者即使渗透了位于外部的“服务器”,他也得不到任何有价值的资料,因为他入侵的是蜜罐而已。虽然入侵者可以在蜜罐的基础上跳进内部网络,但那要比直接攻下一台外部服务器复杂得多,许多水平不足的入侵者只能望而却步。
  2. 诱捕和追踪攻击者:蜜罐可以记录攻击者的所有活动,并追踪攻击者的来源和身份。通过分析攻击者的IP地址、攻击工具、攻击时间等信息,可以帮助管理员追踪攻击者的真实身份和位置,为后续的应对和处置提供有力支持。
  3. 评估和提升安全防护能力:蜜罐可以模拟实际系统中的漏洞和弱点,帮助管理员评估实际系统的安全防护能力。通过模拟攻击,管理员可以了解实际系统中存在的安全漏洞和弱点,从而采取相应的措施进行修复和加固,提升系统的安全防护能力。
  4. 威胁情报收集:蜜罐可以捕获攻击者的攻击数据和样本,为威胁情报收集提供重要来源。通过分析攻击数据和样本,管理员可以了解最新的攻击方法和工具,及时发现新的安全威胁,并采取相应的应对措施。

四、蜜罐的主要组成及核心技术

蜜罐的主要组成部分包括:

  1. 操作系统和应用软件:蜜罐通常会安装一个操作系统和一些常见的应用软件,以模拟真实系统的环境。这些操作系统和应用软件可能包含一些已知的漏洞,以吸引攻击者进行攻击。
  2. 网络服务:蜜罐会开放一些网络服务,如Web服务、FTP服务、数据库服务等,以提供攻击者攻击的目标。这些服务也可能包含一些漏洞,以吸引攻击者进行攻击。
  3. 日志和监控工具:蜜罐会安装日志和监控工具,以记录和分析攻击者的活动。这些工具可以记录攻击者的IP地址、攻击时间、使用的攻击工具和方法等信息,帮助管理员了解攻击者的行为和意图。
  4. 防火墙和安全策略:为了保护蜜罐本身不被攻击者攻破,通常会配置防火墙和安全策略,限制攻击者的访问和攻击手段。这些防火墙和安全策略也会根据需要进行调整和优化。
  5. 数据分析工具:蜜罐收集的攻击数据和样本需要进行深入的分析和处理,以提取有用的信息。数据分析工具可以帮助管理员对攻击数据和样本进行挖掘和分析,发现新的安全威胁和漏洞。

蜜罐的主要组成部分包括操作系统和应用软件、网络服务、日志和监控工具、防火墙和安全策略以及数据分析工具等。这些组件共同构成了蜜罐的基本架构和功能,使其能够作为一个有效的安全工具来监测和发现攻击。

蜜罐的核心技术主要包括数据捕获技术、数据控制技术和数据分析技术。

  1. 数据捕获技术:数据捕获是在入侵者无察觉的情况下,完整地记录所有进入蜜罐系统的连接行为及其活动。捕获到的数据日志是数据分析的主要来源,通过对这些数据日志的分析,管理员可以发现入侵者的攻击方法、攻击目的、攻击技术和所使用的攻击工具。数据捕获技术对于蜜罐的有效性至关重要,因为它提供了攻击行为的直接证据。
  2. 数据控制技术:数据控制技术用于管理和控制蜜罐系统中捕获的数据。这包括数据的存储、访问和传输等方面的控制。通过数据控制技术,管理员可以确保捕获的数据的安全性和完整性,防止数据被篡改或泄露。
  3. 数据分析技术:数据分析是对蜜罐系统所捕获到的数据记录进行分析处理的过程。通过数据分析,管理员可以提取入侵规则,分析是否有新的入侵特征。数据分析技术包括网络协议分析、网络行为分析和攻击特征分析等。这些分析技术可以帮助管理员深入了解攻击者的行为模式和攻击意图,为制定相应的防御措施提供依据。

此外,蜜罐系统中还常常采用一些辅助技术来提高其安全性和有效性,例如伪装技术、诱饵技术、网络流量生成技术等。这些技术可以进一步增强蜜罐的欺骗性,使其更难以被攻击者识别和利用。

总的来说,蜜罐的主要技术涵盖了数据捕获、数据控制和数据分析等方面,这些技术共同构成了蜜罐的核心功能,使其能够有效地检测和应对网络攻击。

五、蜜罐的优缺点

蜜罐技术的优缺点如下:

  • 优点:
  1. 早期预警:蜜罐可以作为一个早期预警系统,帮助组织及时发现潜在的网络攻击。当攻击者试图访问或利用蜜罐时,管理员可以立即得到通知,从而采取相应的防御措施。
  2. 威胁情报收集:蜜罐可以捕获攻击者的活动信息,包括使用的工具、方法、攻击策略等,为组织提供有价值的威胁情报。通过分析这些信息,管理员可以了解攻击者的行为模式,提高防御能力。
  3. 增强安全防护:蜜罐可以分散攻击者的注意力,使其将资源投入到无用的攻击上,从而保护真实的系统免受攻击。此外,蜜罐还可以作为跳板,帮助管理员追踪攻击者的来源和身份。
  4. 提供培训和学习环境:蜜罐可以为安全人员提供一个安全的培训和学习环境,帮助他们了解攻击者的行为模式、工具和方法,提高安全技能和知识水平。
  • 缺点:
  1. 数据收集面狭窄:蜜罐只能检测到针对其自身的攻击行为,对于攻击者攻击其他系统的行为则无法感知。因此,蜜罐的数据收集范围相对狭窄,可能无法提供全面的安全威胁信息。
  2. 指纹识别风险:蜜罐在模拟漏洞和弱点时,可能会暴露自身的特征和行为模式,从而被攻击者识别出真实身份。这可能导致蜜罐失去其作用,甚至成为攻击者的攻击目标。
  3. 管理和维护成本:为了保持蜜罐的有效性和安全性,需要对其进行定期更新和维护。这可能会增加组织的管理和维护成本,同时也需要具备一定的技术能力和专业知识。

蜜罐技术作为一种主动防御手段,在提高组织的安全防护能力方面具有重要作用。然而,其也存在一定的缺点和限制,需要在实际应用中综合考虑其优缺点,并采取相应的措施来确保其有效性和安全性。

六、蜜罐如何与其他安全工具协同工作?

蜜罐可以与其他安全工具协同工作,形成一个更加全面和有效的安全防护体系。以下是一些蜜罐与其他安全工具协同工作的方式:

  1. 入侵检测系统(IDS):蜜罐可以与IDS协同工作,共同监测和防御网络攻击。IDS负责实时监控网络流量,检测异常行为和潜在的攻击模式,而蜜罐则作为诱饵吸引攻击者,并捕获攻击者的行为数据。通过将蜜罐与IDS集成,可以及时发现并响应攻击,提高整体的安全防护能力。
  2. 防火墙:防火墙是网络安全的重要组成部分,负责控制进出网络的流量。蜜罐可以与防火墙协同工作,通过配置特定的防火墙规则,将蜜罐暴露在公网上,同时保护真实的系统不受攻击。防火墙可以过滤掉大部分的恶意流量,而蜜罐则用于捕获和分析剩余的攻击行为。
  3. 端点保护平台:端点保护平台用于保护网络中的终端设备,如计算机、服务器等。蜜罐可以与端点保护平台协同工作,共同防御针对终端设备的攻击。蜜罐可以吸引攻击者,并捕获攻击者的行为数据,而端点保护平台则负责检测和清除终端设备上的恶意软件和其他威胁。
  4. 日志分析工具:蜜罐捕获的攻击行为数据可以与日志分析工具结合使用,对攻击行为进行深入的分析和溯源。日志分析工具可以对蜜罐捕获的日志数据进行挖掘和分析,提取出攻击者的特征、攻击工具、攻击路径等信息,为安全人员提供有价值的情报和线索。

此外,蜜罐还可以与其他安全工具如安全信息和事件管理(SIEM)系统、网络流量分析工具等协同工作,共同构建一个全面而高效的安全防护体系。通过整合各种安全工具和资源,可以实现对网络攻击的及时发现、快速响应和有效防御。

七、什么是“蜜网”?与蜜罐的联系和区别是什么?

蜜网(Honeynet)是一个比蜜罐更为复杂和全面的概念,它不仅仅是一个单一的诱骗系统,而是一个由多个蜜罐和其他安全组件组成的网络。蜜网的主要目的是构建一个高度可控的环境,以收集和分析来自攻击者的信息,同时提供一个平台来研究和应对网络安全威胁。与蜜罐相比,蜜网的区别主要体现在以下几个方面:

  1. 规模与复杂性:蜜网是一个网络,通常包含多个蜜罐以及其他安全组件,如入侵检测系统、防火墙等。而蜜罐则是一个单一的、独立的系统。因此,蜜网在规模和复杂性上通常要大于蜜罐。
  2. 交互性:蜜网中的蜜罐可以模拟各种不同的系统和设备,如Windows、Linux、路由器等,从而提供更具交互性的环境,吸引攻击者进行更深入的攻击。而蜜罐通常只能模拟一个特定的系统或服务。
  3. 数据收集与分析:蜜网通过集中监控和管理所有进出蜜网的数据,可以收集到更丰富的攻击信息,包括攻击者的工具、方法、动机等。同时,蜜网还提供了更强大的数据分析和处理能力,以支持更深入的安全研究。

联系方面,蜜罐和蜜网都是用于诱捕攻击者的安全工具,它们都是通过模拟漏洞和弱点来吸引攻击者的注意。此外,蜜罐可以作为蜜网的一个组成部分,通过将其集成到蜜网中,可以构建一个更完整、更全面的安全监控体系。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

2023年我都干了啥?

发表于 2024-02-07 | 更新于: 2025-04-08 | 分类于 人生 , 程序人生 | | 阅读次数:
字数统计: 1.4k | 阅读时长 ≈ 4

中国人都喜欢过春节,2024年农历新年来临之际,又到了回首过去展望未来的时候。
在2023年年初的时候就在《写给两年后2025年的自己》立了flag,要练好架子鼓、实现英语阅读的自由、写技术博客,换车等,一年过去了进度怎么样呢?2023年我都干了啥?
很多时候我都在问自己,自己的兴趣到底是什么?兴趣是一个人对特定事物或活动的喜好和热爱,它通常表现为一种积极的、自发的、持久的倾向,可以激发人们的热情和动力,使人们愿意投入时间和精力去探索和体验。
所以我的兴趣是打鼓、看书、写代码、旅行。

一、打鼓

2021年底萌生了学习架子鼓的想法,经过一段时间的努力彻底明白了《任何说30天快速学会架子鼓的都是骗人的!》,抛弃了速成的念头。希望通过两到三年的学习能够入个门自娱自乐一下。两年过去了,在2023年有段时间还是练得比较勤快,基本上每天都有练一个小时,无赖是全靠自学且资质平平所以进步比较缓慢,一首《感官先生》练了我两个多月。不过还是可以敲几首简单的歌了。2023年在抖音上发了6首完整的架子鼓演奏视频(抖音号:xiejava)见证我的努力和进步。

xiejava抖音

二、看书观影

我有个习惯就是每看一本书或看一部电影都会在豆瓣上记录一下,2023年工作很忙,很少看电影,看也书不多,在豆瓣上记录了看了9部电影、14本书。

看书记录
观影记录

2023年重新回味了经典港剧《无间道》,看了国产科幻大片《流浪地球2》及很火的电视剧《狂飙》,感受到了国产剧的崛起。
2023年虽然看书不多只记录了14本,但是我做了一些改变,不求数量,重点是主题阅读构建自己的知识架构体系。历史类的书看得比较多,新书看了二战相关的《最长的一天》、《遥远的桥》,科技类看了《芯片战争》、《ChatGPT:人类新纪元》,技术方面的书主要是关于机器学习方面的包括《Python机器学习基础教程》、《数据分析咖哥十话》等,其他还看了《红星照耀中国》、《三体:地球往事》等。
主要还是以历史和技术类的为主,很多书看了就忘了,所以2023年重读了一些书,包括《文明之光》系列的4册等。给自己做了个约定,自己认为经典的书,至少要看三遍。

三、写博客

2023年写了42篇博客,主要是网络安全和数据分析相关的技术博客。因为目前在从事网络安全相关方面的工作,平时对数据分析机器学习感兴趣,这方面的内容会多一点。技术类的博客主要发表在CSDN,读书及书评发表在豆瓣,当然还有自己的自留地 《xiejava’s blog》 所有的博客文章都会在这里。

CSDN1
CSDN2

2023年在CSDN发布了37篇原创博文,上榜了273次,每次上榜都坚定了我写博客的心。
2023年开通了微信公众号fullbug,经过一年的努力在公众号上发布了116篇文章,公众号订阅用户也到1407,1407个订阅用户就是对我小小的鼓励,激励我持续的输出。

fullbug微信公众号

四、计划

都2024年了,架子鼓、实现英语阅读的自由、写技术博客,换车等,一年过去了进度怎么样呢?离2025年的目标还差多远呢?

架子鼓:目前的水平还只能僵硬的对着动态鼓谱敲几首简单的歌,离架子鼓自由还差很远,2024年将继续努力,持续的在抖音上发布练习视频,让大家监督,让自己看到自己的努力和进步,争取在2025实现几首比较经典歌曲的熟练的演奏。

英语:英语和架子鼓一样是靠时间练习和积累的,在写了一篇《学习英语,你认为“长期”的坚持是多长,“大量”的阅读又是多少?》的博文后2023年基本没有怎么看英语,本来就不好的英语越发退步了。对于英语已经放弃治疗了。人的精力毕竟是有限的,同时要做好几件事是非常困难的,所以英语自由的计划估计要缓一缓了,等架子鼓学得差不了再来学英语吧。我想如果能够把架子鼓学会,同样也能够把英语学会。

博客:2025年立的flag是CSDN账号的粉丝到10W,经过2023年的努力目前CSDN的粉丝到了3.7W,离10W还有不少的差距,需要在2024年更加努力的持续输出高质量的文章才有可能达到这个目标。

旅行:旅行虽然是兴趣之一,一直在憧憬说走就走的旅行,但从来就没有成行过。2023年更是哪里都没有去,2025年的flag之一就是要先换车。在2023年底终于如愿换了台领克08的新能源SUV,见《颜值与实力并存-领克08提车和用车感受》。祖国的大好河山,我想去看看!世界那么大,我想去走走!


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

网络安全产品之认识防非法外联系统

发表于 2024-02-06 | 更新于: 2025-04-08 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 2.5k | 阅读时长 ≈ 8

非法外联是指计算机或其他内部网络设备在未经授权的情况下私自连接到外部网络或设备,如互联网、其他公共网络或非法设备等。这种行为可能涉及违反法律法规、公司政策或安全规定。非法外联的危害包括可能导致数据泄露、恶意软件感染、非法访问和攻击等安全风险,同时可能违反合规要求并导致法律责任。

非法外联的形式多种多样,包括但不限于通过拨号上网、双网卡上网、GPRS、红外等方式进行连接。这些非法连接不仅可能暴露内部网络于外部攻击的风险,而且可能使内部数据面临泄露的风险,特别是当员工使用个人设备连接企业内部网络时。因此,防止非法外联对于维护网络安全和保护组织利益至关重要。

一、什么是防非法外联系统

针对非法外联,内网计算机连接外网(断开内网连接外网或者同时连接内外网络),常用且有效的方法就是使用防非法外联系统,禁用内网终端访问外部网络,实现内网终端无法外联的方法。防非法外联技术作为管理者有效的技术手段,可以全面、实时地监控整个单位网络内部的非法外联行为。

二、非法外联的安全风险

(1)内部人员可通过Modem拨号、ADSL拨号或手机无线拨号等方式,非法连接到互联网等外部网络,造成内部网络安全保障措施失效,可能会造成病毒感染、敏感信息泄密等安全事件。
(2)在内、外网物理隔离的涉密信息系统内部,工作人员也可能把内网计算机连接到外部网络上,形成非法的网络出口,从而为外部黑客非法入侵提供途径,容易造成安全隐患。
(3)外部移动笔记本电脑等,通过非法接入内部网络的交换设备,访问内部信息系统中的计算机和服务器资源,造成可能的信息失泄密。
(4)在某些情况下,外部移动笔记本计算机还可以通过直连线,直接跟内部网络中的计算机相连,建立对等网络连接,从而造成信息泄密。

三、防非法外联系统的工作原理

防非法外联系统的工作原理主要基于网络监控和行为分析。具体来说,它通过以下几个步骤实现非法外联的监测和阻断:

  1. 网络流量监控:防非法外联系统首先会对内部网络的流量进行实时监控。它可以通过部署在网络中的传感器或代理程序来捕获和分析网络数据包。
  2. 行为分析:系统会对捕获到的网络数据包进行深度分析,识别出网络流量的来源、目的、协议类型等信息。通过分析这些数据,系统能够判断网络流量是否属于正常行为,还是存在非法外联的嫌疑。
  3. 非法外联检测:当系统检测到异常的网络流量,即可能存在非法外联行为时,它会进一步进行详细的检测和分析。例如,系统可能会检查网络连接的持续时间、数据传输量、目标IP地址等信息,以确认是否存在非法外联行为。
  4. 阻断与报警:如果系统确认存在非法外联行为,它会立即采取相应的阻断措施,阻止非法连接的继续建立。同时,系统会触发报警机制,向管理人员发送报警信息,以便及时处理和应对。
  5. 日志记录与分析:防非法外联系统还会记录所有检测到的非法外联行为,并生成详细的日志。这些日志可以作为后续分析的依据,帮助管理人员了解非法外联行为的情况和趋势,进一步完善网络安全策略。

防非法外联系统的工作原理是通过网络监控和行为分析来检测非法外联行为,并采取阻断和报警措施来保障内部网络的安全。

四、防非法外联系统的主要功能

防非法外联系统的主要功能包括以下几个方面:

  1. 监测和识别非法外联行为:防非法外联系统能够实时监控网络流量,检测和识别所有被控主机的网络连接状态,以及终端软件的运行情况。它可以检测使用双/多网卡联通内外网的行为,从而发现破坏内外网隔离的违规行为。
  2. 阻断和报警非法外联行为:一旦检测到非法外联行为,防非法外联系统可以采取阻断措施,阻止非法连接并建立报警机制。它还能报告非法外联主机的客户端ID号,从而准确锁定非法外联主机,即使在单机环境下也能实现阻断并报警。
  3. 实时监视和检测多种上网方式:防非法外联系统能够实时监视普通方式的拨号上网,以及通过WLAN、GPRS或CDMA1X等无线方式进行非法上网的行为。这有助于全面覆盖和检测各种非法外联方式。
  4. 强大的日志查询功能:系统提供强大的日志查询功能,可以对受控主机的非法外联行为进行实时报警,并在报警控制中心进行详细的显示和统计分析。这有助于用户了解非法外联行为的情况和趋势。
  5. 与违规外联系统联动:在完成前面各项工作后,防非法外联系统还可以与违规外联系统的互联网服务端联动,侦测到涉密载体违规外联的行为。这有助于及时发现和处理涉密载体的非法外联行为。

防非法外联系统的主要功能包括监测和识别非法外联行为、阻断和报警非法外联行为、实时监视和检测多种上网方式、提供日志查询功能以及与违规外联系统联动。这些功能共同构成了防非法外联系统的核心能力,有助于提升内部网络的安全性。

五、防非法外联系统的使用方式

1、防非法外联系统与内部局域网建立连接后,监测终端的外网连接请求;
2、根据外网连接请求,对所述终端中存储的文件进行安全防护,并输出针对外网连接进行响应的选项;
3、接收响应于所述选项的操作,并根据所述操作按照预设策略对所述外网连接请求进行处理。
一种防止非法外联的系统,包括多个终端、至少一个服务器;其中,所述服务器,用于与所述终端构成的内部局域网;所述终端,用于与所述内部局域网建立连接,监测终端的外网连接请求;根据所述外网连接请求,对所述终端中存储的文件进行安全防护,并输出针对外网连接进行响应的选项;接收响应于所述选项的操作,并根据所述操作按照预设策略对所述外网连接请求进行处理。

六、非法外联与准入控制有什么区别?

非法外联和准入控制是网络安全中的两个重要概念,它们有一定的区别。

  • 非法外联通常指的是内部网络中的设备未经授权擅自与外部网络(如互联网)建立连接的行为。这种行为可能导致敏感数据泄露、网络攻击、恶意软件感染等安全威胁。非法外联通常是由于用户的不当操作、设备漏洞或恶意攻击等原因引起的。为了防止非法外联行为的发生,需要采取一系列的安全措施,如部署防非法外联系统、加强用户教育等。
  • 准入控制则是一种网络安全管理策略,用于控制和管理网络中的设备访问。它通常包括设备认证、访问授权、安全审计等功能。准入控制的主要目的是确保只有符合安全策略的设备才能访问网络,从而防止未经授权的设备或恶意软件进入网络。准入控制可以通过各种技术手段实现,如802.1X认证、NAC(网络准入控制)解决方案等。

简单来说,非法外联关注的是内部设备是否非法连接到外部网络,而准入控制关注的是如何控制和管理网络中的设备访问。两者都是网络安全的重要组成部分,但关注点和实施手段有所不同。在实际应用中,通常需要结合使用非法外联监控系统和准入控制系统来全面提升网络安全水平。


博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

网络安全产品之认识准入控制系统

发表于 2024-02-04 | 更新于: 2025-04-08 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 3.9k | 阅读时长 ≈ 13

随着企业信息化建设的不断深入,企业的各种信息资产越来越多,网络安全问题也越来越突出。如何防止外来电脑、移动设备接入局域网,保护企业信息资产的安全,成为企业网络管理的重要问题。准入控制系统的出现,为企业提供了一种有效的解决方案。本文我们一起来认识一下准入控制系统。

一、什么是准入控制系统

准入控制系统是一种用于管理和控制访问权限的安全机制。该系统的原理是通过对用户、设备、应用程序和网络资源的身份验证和授权,限制对受保护资源的访问。重点解决网络的合规性要求,达到“违规不入网、入网必合规”的管理规范,支持包括身份认证、友好WEB重定向引导、基于角色的动态授权访问控制、可配置的安全检查规范库、“一键式”智能修复、实名日志审计等功能,满足等级保护对网络边界、终端防护的相应要求,同时提供更高效、更智能的网络准入防护体系。

二、准入控制系统的主要功能

1. 接入设备的身份认证

对终端计算机网络访问权限从入口进行检测验证,只允许受信任的设备和用户使用内网,可在很大程度上降低网络安全风险;支持包括MAC地址、IP地址、基于用户名和密码的身份、接入设备端口、所在VLAN等信息,还支持U-KEY、支持智能卡、数字证书认证,LDAP、无缝结合域管理。

2. 接入设备的安全性检查

包括各种防病毒软件版本、终端补丁漏洞、应用软件黑、白、红名单检测、非法外联、非法代理、异常流量、敏感操作行为检测等。

  1. 完善的安全策略管理
    包括资产安全策略、补丁安装策略、访问策略、应用程序策略、桌面防火墙策略、外设策略和远程维护的策略管理。
  2. 移动存储管理
    能够对电脑usb接口进行综合管理,设置U盘使用权限(仅写入、仅读取、禁止使用),支持禁用移动硬盘、便携式存储设备和所有usb存储设备,还能够对U盘的插入使用进行日志统计,及U盘中文件的操作行为也能够进行审计记录。
  3. 操作系统补丁及升级
    能够对内网电脑的操作系统补丁进行统一下发和及时更新,可自动检测终端计算机操作系统漏洞和自动更新安装操作系统补丁。

三、准入控制系统的工作原理

准入控制系统的设计有两个基本的理论前提:

  1. 网络安全状态的非稳定性:这意味着系统会随着时间迁移和变迁,可能会从安全状态转移到非安全状态。因此,及时进行系统更新,将系统状态重新调整回安全状态,是减少受攻击可能性的有效方式。
  2. 网络安全状态的可控性:在网络环境中,收集的网络及用户主机的状态信息越多,就越能准确地判断出网络所面临的风险,并及时给出应对措施,控制网络安全状态。

网络准入控制系统的工作原理主要是通过对接入网络的终端进行身份认证、安全技术测评、权限管理和流量控制等手段,确保只有符合规定要求的终端设备能够接入网络,并保障网络的安全性和稳定性。

具体来说,网络准入控制系统的工作原理包括以下几个方面:

  1. 用户认证:网络准入控制系统对用户身份进行认证,只有授权的用户才能接入网络。用户认证可以通过多种方式进行,如用户名/密码、动态令牌、智能卡等。通过用户认证,可以防止非法用户访问网络资源。
  2. 安全技术测评:网络准入控制系统对接入网络的用户终端进行安全技术测评,包括操作系统、防病毒软件、防火墙等的安全性进行评估。通过安全技术测评,可以确保用户终端符合安全要求,减少安全威胁和风险。
  3. 权限管理:网络准入控制系统根据不同的用户和设备制定不同的策略,实现灵活的网络准入管理。通过对用户终端的权限进行管理和控制,可以限制用户对网络资源的访问,防止未经授权的访问和数据泄露。
  4. 安全检查:网络准入控制系统对接入终端设备进行杀毒软件安装情况、系统补丁等级、设备漏洞等安全检查,确保接入设备的安全性。通过安全检查,可以及时发现和修复终端上的安全漏洞和隐患。
  5. 流量控制:网络准入控制系统对网络流量进行监控和管理,限制不安全协议和流量的传输,保障网络带宽和稳定性。通过流量控制,可以提高网络的性能和稳定性,防止网络拥塞和攻击。

网络准入控制系统通过对接入网络的终端进行身份认证、安全技术测评、权限管理和流量控制等手段,实现了对用户终端的全面管理和控制,提高了企业网络的安全性和可靠性。

准入控制系统有多种准入管控方式,以下是其中一些常见的管控方式:

  1. 802.1X准入控制:基于端口的网络接入控制协议,在接入设备的端口这一级验证用户身份并控制其访问权限。通过EAPoL(局域网可扩展认证协议),实现客户端、设备端和认证服务器之间认证信息的交换。
  2. DHCP准入控制:通过DHCP服务器的配合,实现基于用户身份的IP地址分配和权限控制。用户通过DHCP获取IP地址,同时需要进行身份认证才能获得相应的网络访问权限。
  3. 网关型准入控制:通过部署专门的网关设备,对经过该设备的网络流量进行安全检查和过滤,并根据用户身份和权限进行控制。网关型准入控制可以对网络流量进行深度分析和控制,提供更加精细化的网络访问控制。
  4. ARP准入控制:通过ARP协议的特性,实现对ARP请求的拦截和过滤,以防止ARP欺骗攻击。ARP准入控制可以保护网络不受ARP攻击的影响,提高网络的安全性。

准入控制系统有多种管控方式,每种管控方式都有其特定的应用场景和优缺点。在实际应用中,可以根据企业的安全需求和网络环境选择适合的管控方式,提高企业网络的安全性和可靠性。

四、准入控制系统的特点

准入控制系统的特点主要包括以下几点:

  1. 安全性:准入控制系统实现对网络边界准入的控制,对所有入网终端的统一身份认证、未经允许的设备无法进入网络,可以对网络设备和应用进行集中管理和控制,可以批量处理和更新设备或用户的安全策略,大大提高了网络管理的效率。
  2. 合规性:准入控制系统一般采用“不改变网络、不装客户端”的特性,重点解决网络的合规性要求,达到“违规不入网、入网必合规”的管理规范,支持包括身份认证、友好WEB重定向引导、基于角色的动态授权访问控制、可配置的安全检查规范库、“一键式”智能修复、实名日志审计等功能,满足等级保护对网络边界、终端防护的相应要求,同时提供更高效、更智能的网络准入防护体系。
  3. 灵活性:准入控制系统支持多样化的认证方式及多种认证协议,对所有入网设备进行身份认证,支持包括MAC地址、IP地址、基于用户名和密码的身份、接入设备端口、所在VLAN等信息,还支持U-KEY、支持智能卡、数字证书认证,LDAP、无缝结合域管理。
  4. 可靠性:准入控制系统以电信级稳定的、专业化硬件平台,提供更高的可靠性与稳定性。
  5. 高效性:准入控制系统对网络流量进行监控和管理,限制不安全协议和流量的传输,保障网络带宽和稳定性。

此外,准入控制系统还具有集成性、易用性和可扩展性等特性,可以根据企业网络规模和安全需求进行灵活配置和扩展。

五、准入控制系统的部署方式

1. 网关模式

采用网关部署模式时,将准入控制系统上行端口(与终端相连的端口)设置为要求通过EAP认证,将其下行端口(与外网相连的端口)设置为不要求通过EAP认证。终端设备发送的数据包全部通过准入控制系统,并由系统要求终端进行EAP认证。NACC根据源IP地址对应的设备的网络准入控制状态来决定是允许、拒绝还是重定向。其部署方式如下图所示:
网关模式

2. 控制旁路模式

将准入控制系统部署在网络中的汇聚层或核心层,与汇聚层或核心层的交换路由设备连接。在交换路由设备上(与准入控制相连相连的设备)启用策略路由,将上行数据包(终端设备发送的数据包)路由到准入系统中,由准入控制系统要求终端设备进行EAP认证。系统根据源IP地址对应的设备的网络准入控制状态来决定是允许、拒绝还是重定向。对于经过验证之后允许接入的数据包,其下行的数据包则从正常的路由汇聚层或核心层设备走,不经过准入设备。其部署方式如下图所示:
控制旁路模式

六、准入控制系统的应用场景

准入控制系统可以在多种应用场景中发挥重要作用,以下是一些常见的应用场景:

  1. 无线接入控制:在无线局域网(WLAN)环境中,准入控制系统可以对接入网络的用户终端进行身份认证和安全评估,确保只有符合安全要求的终端才能接入网络。这样可以防止非法终端的接入,保护无线网络的安全。
  2. 有线网络接入控制:对于企业有线网络环境,准入控制系统同样可以对接入网络的用户终端进行身份认证和安全评估。通过控制网络访问权限,限制用户终端对网络资源的访问,保护企业网络资源的安全性。
  3. 远程接入控制:在远程接入企业网络的环境中,准入控制系统可以实施安全策略,对远程用户进行身份认证和安全评估。通过控制远程用户的网络访问行为,保障企业网络的安全性和可靠性。
  4. 虚拟化环境:在云计算和虚拟化环境中,准入控制系统可以对虚拟机进行统一的管理和安全控制。通过实施安全策略和进行安全评估,保障虚拟机的安全性和合规性。
  5. 终端安全管理:准入控制系统可以对接入网络的用户终端进行全面的安全管理,包括软件安装、系统配置、防病毒软件等的安全性进行评估。通过及时发现和修复终端上的安全漏洞,减少安全事件的发生,提高终端的安全性。

准入控制系统可以在无线接入、有线网络接入、远程接入、虚拟化环境和终端安全管理等多种应用场景中发挥重要作用,提高企业网络的安全性和可靠性。

七、企业如何利用准入控制系统来保护信息资产的安全?

企业可以利用准入控制系统来保护信息资产的安全,具体措施如下:

  1. 控制终端接入:通过身份认证、安全技术测评等手段,对接入网络的用户终端进行身份验证和安全评估,确保只有符合安全要求的终端才能接入网络。这样可以防止非法终端的接入,保护企业网络的安全。
  2. 实施终端安全策略:对用户终端实施安全策略,包括软件安装、系统配置、网络访问权限等,确保用户终端的安全性。这样可以及时发现和防止终端上的安全漏洞和隐患,减少安全事件的发生。
  3. 控制网络访问:通过控制网络访问权限,限制用户终端对网络资源的访问,防止未经授权的访问和数据泄露。这样可以保护企业网络资源不被非法获取和使用,保障企业的机密信息安全。
  4. 日志审计:对用户终端的网络访问行为进行日志记录和审计,以便及时发现和处理安全事件。通过审计功能,可以追溯和还原终端的网络访问行为,及时发现和处理安全事件,提高企业网络的安全性和可靠性。
  5. 集成其他安全产品:准入控制系统可以与其他网络安全产品进行集成,实现更全面的网络安全防护。通过与防火墙、入侵检测系统等其他安全产品的集成,可以提供更加完善的安全解决方案,提高企业网络的安全防护能力。
  6. 灵活部署和扩展性:准入控制系统支持多种部署方式,可以根据企业网络规模和安全性要求进行灵活配置。同时,该系统支持可扩展性,可以根据企业网络的发展和变化进行升级和扩展。这样可以满足企业不断发展的需求,提高企业的信息安全管理水平。

综上所述,企业可以利用准入控制系统来保护信息资产的安全,通过控制终端接入、实施终端安全策略、控制网络访问、日志审计、集成其他安全产品以及灵活部署和扩展性等措施,提高企业网络的安全性和可靠性。


博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

<1…456…20>
XieJava

XieJava

200 日志
11 分类
25 标签
RSS
GitHub
友情链接
  • 爱分享读书
  • CSDN
  • 豆瓣
© 2025 XieJava | Site words total count: 415.3k

主题 — NexT.Muse
0%