chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

艾體寶干貨 IOTA流量分析秘籍第三招:檢測黑名單上的IP地址

laraxu ? 來源:laraxu ? 作者:laraxu ? 2024-07-16 11:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

艾體寶干貨 | IOTA流量分析秘籍第三招:檢測黑名單上的IP地址

IOTA 設(shè)備提供 RESTful API,允許直接訪問存儲在設(shè)備上的數(shù)據(jù)。這對于集成到各種場景中非常有用。在本例中,可以過濾當(dāng)前捕獲內(nèi)容中的黑名單 IP。用例可能是分析某些內(nèi)部 IP 是否未傳播到特定訪問級別之外,或者某些設(shè)備是否從不應(yīng)訪問的區(qū)域進(jìn)行訪問。

IOTA簡介

IOTA 是一款功能強(qiáng)大的網(wǎng)絡(luò)捕獲和分析解決方案,適用于邊緣和核心網(wǎng)絡(luò)。IOTA 系列包括便攜式 EDGE 型號、高速 CORE 型號和 IOTA CM 集中設(shè)備管理系統(tǒng)。IOTA 解決方案可為分支機(jī)構(gòu)、中小企業(yè)和核心網(wǎng)絡(luò)(如數(shù)據(jù)中心)提供快速高效的網(wǎng)絡(luò)分析和故障排除功能。

IOTA 設(shè)備提供 RESTful API,允許直接訪問存儲在設(shè)備上的數(shù)據(jù)。這對于集成到各種場景中非常有用。在本例中,可以過濾當(dāng)前捕獲內(nèi)容中的黑名單 IP。用例可能是分析某些內(nèi)部 IP 是否未傳播到特定訪問級別之外,或者某些設(shè)備是否從不應(yīng)訪問的區(qū)域進(jìn)行訪問。

一、前提條件

  • Python 編程基礎(chǔ)知識。
  • 從 Profitap 訪問 IOTA 設(shè)備。

二、設(shè)置 IOTA 設(shè)備

  1. 連接 IOTA 設(shè)備
  • 將 IOTA 設(shè)備連接到要監(jiān)控的網(wǎng)段。
  • 確定正確的網(wǎng)段至關(guān)重要。通過目視檢查 IOTA 設(shè)備上的流量,確保在捕獲期間使用正確的網(wǎng)段。
  1. 訪問 IOTA 網(wǎng)絡(luò)界面
  • 打開網(wǎng)絡(luò)瀏覽器并輸入 IOTA 設(shè)備的 IP 地址。
    • 例如:https://(用 IOTA 設(shè)備的實際 IP 地址替換)。
  • 使用正確的憑證登錄。該腳本使用的用戶名/密碼組合應(yīng)允許它查看必要的信息。
  1. 配置捕獲設(shè)置
  • 設(shè)置用于捕獲數(shù)據(jù)包的網(wǎng)絡(luò)接口。
    • 從設(shè)備的 Web 界面選擇要監(jiān)控的接口。
  • 根據(jù)需要配置過濾器,以關(guān)注特定流量類型。
    • 您可以根據(jù)需要設(shè)置過濾器,只捕獲特定類型的流量,如 HTTP 或 FTP。

三、使用 IOTA 數(shù)據(jù)庫查詢引擎

查詢引擎允許任何用戶以機(jī)器可讀的方式與 IOTA 設(shè)備交互,以查詢元數(shù)據(jù)數(shù)據(jù)庫。用戶只需輸入用戶名/密碼,即可通過 RESTful API 訪問數(shù)據(jù)庫。
image.png

為確保敏感信息不被傳播,以及設(shè)備上的任何信息都不會被用戶篡改,建議創(chuàng)建一個新的特殊用戶。在本例中,創(chuàng)建了一個用戶名為 “apitest ”的用戶。請注意,該用戶已作為 “查看器 ”自動添加到組織中。不需要配置任何其他功能,而且該角色只允許只讀訪問,可以防止任何誤傳。
image.png

四、安全考慮

這里使用的解決方案是為使用腳本創(chuàng)建一個專用的用戶/密碼組合。由于建議保護(hù) IOTA 的直接訪問不受任何外部干擾,并使用 HTTPS 連接,因此這樣做沒有問題。但請注意,良好的做法是確保該用戶/密碼組合不在任何其他情況下使用,并且該用戶僅具有查看器角色(新用戶默認(rèn)具有該角色)。

五、檢測黑名單 IP 的 Python 腳本

import requests
import re
import time
import urllib.parse
import json
import argparse
from urllib3.exceptions import InsecureRequestWarning
 
def main():
    # CLI options
    parser = argparse.ArgumentParser(description='Compare IP blacklist files against IOTA metadata. Blacklist files must contain a list of single IPv4/IPv6 addresses or IP subnet in CIDR notation.')
    required_args = parser.add_argument_group('required')
 
    required_args.add_argument('-d', '--device_ip', help='Device IP address')
    required_args.add_argument('-i', '--infile', nargs='+', help = 'Blacklist file(s)')
    parser.add_argument('-u', '--device_username', default='admin', help='Device IP username (default: admin)')
    parser.add_argument('-p', '--device_password', default='admin', help='Device IP password (default: admin)')
    parser.add_argument('-l', '--query_time_window_s', type=int, default=600, help='Number of seconds from the current time to query IOTA metadata (default: 600)')
 
    args = parser.parse_args()
    if args.device_ip:
        iota_ip_address = args.device_ip
    if args.device_username:
        iota_username = args.device_username
    if args.device_password:
        iota_password = args.device_password
    if args.query_time_window_s:
        query_time_window_s = args.query_time_window_s
    if args.infile:
        blacklist_files = args.infile
 
    query_time_window_end = int(time.time())
    query_time_window_start = query_time_window_end - query_time_window_s
 
    results = {}
 
    session = requests.Session()
    session.auth = (iota_username, iota_password)
 
    # Suppress warnings from urllib3
    requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)
 
    # Open blacklist files, iterate over them
    for blacklist_file in blacklist_files:
        count_fail = 0
        print(f' - {blacklist_file}')
        with open(blacklist_file) as f:
            for line in f:
 
                # Skip comments or empty lines
                if re.match(r"^[;#s]", line):
                    continue
 
                # Current IP address or subnet
                ip = line.split()[0]
                print(f'   - {ip:45}', end='')
 
                # Handle CIDR subnet query
                if re.match(r"^(?:(?:(?:[0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2})|(?:[0-9a-fA-F:]{2,39}/[0-9]{1,2}))$", ip):
                    query = urllib.parse.quote(f"SELECT COUNT(DISTINCT FLOW_ID) AS matching_flows FROM flows.base WHERE (isIPAddressInRange(IP_SRC, '{ip}') OR isIPAddressInRange(IP_DST, '{ip}')) AND DATE_PKT_MS_FIRST >= toDateTime64({query_time_window_start}, 3) AND DATE_PKT_MS_FIRST <= toDateTime64({query_time_window_end}, 3) FORMAT JSON", safe='()*')
                    response = session.get('https://'+iota_ip_address+'/api/datasources/proxy/3/?query='+query, verify=False)
                    matching_flows = json.loads(response.content)['data'][0]['matching_flows']
 
                    if matching_flows == "0":
                        print('Ok')
                    else:
                        count_fail += 1
                        print(f'Match (flows: {matching_flows})')
 
                # Handle single IP address query
                elif re.match(r"^(?:(?:(?:[0-9]{1,3}.){3}[0-9]{1,3})|(?:[0-9a-fA-F:]{2,39}))$", ip):
                    query = urllib.parse.quote(f"SELECT COUNT(DISTINCT FLOW_ID) AS matching_flows FROM flows.base WHERE (IP_SRC = '{ip}' OR IP_DST = '{ip}') AND DATE_PKT_MS_FIRST >= toDateTime64({query_time_window_start}, 3) AND DATE_PKT_MS_FIRST <= toDateTime64({query_time_window_end}, 3) FORMAT JSON", safe='()*')
                    response = session.get('https://'+iota_ip_address+'/api/datasources/proxy/3/?query='+query, verify=False)
                    matching_flows = json.loads(response.content)['data'][0]['matching_flows']
 
                    if matching_flows == "0":
                        print('Ok')
                    else:
                        count_fail += 1
                        print(f'Match (flows: {matching_flows})')
 
                # Some unknown case
                else:
                    print('Unhandled case')
 
        # Record results after completing file
        results[blacklist_file] = count_fail
 
    # Print results
    print('nResultsn===')
    for file in results:
        print(f' - {file:47}{str(results[file])} matches')
 
if __name__ == '__main__':
    main()

六、腳本分步說明

1.導(dǎo)入必要的庫

import requests
import re
import time
import urllib.parse
import json
import argparse
from urllib3.exceptions import InsecureRequestWarning

2.設(shè)置配置

# CLI options
    parser = argparse.ArgumentParser(description='Compare IP blacklist files against IOTA metadata. Blacklist files must contain a list of single IPv4/IPv6 addresses or IP subnet in CIDR notation.')
    required_args = parser.add_argument_group('required')
 
    required_args.add_argument('-d', '--device_ip', help='Device IP address')
    required_args.add_argument('-i', '--infile', nargs='+', help = 'Blacklist file(s)')
    parser.add_argument('-u', '--device_username', default='apitest', help='Device IP username (default: apitest)')
    parser.add_argument('-p', '--device_password', default='apitest', help='Device IP password (default: apitest)')
    parser.add_argument('-l', '--query_time_window_s', type=int, default=600, help='Number of seconds from the current time to query IOTA metadata (default: 600)')
  • -d / -device_ip
    • IOTA 設(shè)備的 IP。
  • -i / -infile
    • 包含要查找的 IP 地址的文本文件。也可以提供地址范圍的 CIDR 子網(wǎng)查詢。文件可能包含以 ; 或 # 為前綴的注釋。任何空行或以空格開頭的行都將被省略。通過多次提供此參數(shù),可以向腳本提交多個輸入文件。
  • -U / -device_username
    • 上一步中定義的用戶名。
  • -p / -device_password
    • 上述步驟中定義的密碼。
  • -l / -query_time_window_s
    • 查詢應(yīng)在過去多少時間內(nèi)進(jìn)行。默認(rèn)值為 600 秒,相當(dāng)于 10 分鐘。

輸入文件:

以輸入文件為例,它將搜索特定子網(wǎng)以及內(nèi)部 DNS 服務(wù)器的所有 IP 地址。

# IP Address of DNS server
192.168.1.250

# Host range for internal testing
10.40.0.0/24

3.檢測黑名單 IP 的主邏輯

主邏輯打開黑名單文件,逐步進(jìn)行解析,并查詢內(nèi)部數(shù)據(jù)庫,進(jìn)行相應(yīng)的子網(wǎng)查詢或直接 IP 地址查詢。

query = urllib.parse.quote(f"SELECT COUNT(DISTINCT FLOW_ID) AS matching_flows FROM flows.base WHERE (isIPAddressInRange(IP_SRC, '{ip}') OR isIPAddressInRange(IP_DST, '{ip}')) AND DATE_PKT_MS_FIRST >= toDateTime64({query_time_window_start}, 3) AND DATE_PKT_MS_FIRST <= toDateTime64({query_time_window_end}, 3) FORMAT JSON", safe='()*')
                    response = session.get('https://'+iota_ip_address+'/api/datasources/proxy/3/?query='+query, verify=False)
                    matching_flows = json.loads(response.content)['data'][0]['matching_flows']

首先,設(shè)置查詢。在本例中,我們只需要查詢找到的條目的數(shù)量,這就是我們執(zhí)行 COUNT 操作的原因。數(shù)據(jù)庫以 SQL 格式進(jìn)行查詢。

創(chuàng)建查詢后,將建立一個會話,該會話將使用 HTTP GET 操作來查詢信息。查詢結(jié)果以 JSON 數(shù)據(jù)形式顯示,目前正在讀取第一個條目。

對于找到的每個 IP 地址,將打印匹配條目的數(shù)量,對于每個文件,將打印匹配條目的總數(shù)。

七、運行腳本

建議在 Python 環(huán)境中運行腳本??梢允褂靡韵旅顏韺崿F(xiàn):

python3 -m venv ./Development/iota
source ./Development/iota/bin/activate
python3 -m pip install argparse requests

這將創(chuàng)建一個 Python3 venv 環(huán)境(更多信息請參見此處),并安裝默認(rèn)環(huán)境中不存在的所需庫。
image.png

然后,假設(shè) Python 腳本和 infile 文件都在當(dāng)前目錄下,下面的命令將運行該腳本:
image.png

在這種情況下,IOTA 的定位是在出站廣域網(wǎng)連接上進(jìn)行捕獲。在最后 10 分鐘內(nèi),內(nèi)部 DNS 服務(wù)器沒有進(jìn)行任何出站 DNS 查詢,但內(nèi)部測試網(wǎng)絡(luò)通過廣域網(wǎng)連接發(fā)送了 4 次數(shù)據(jù)。

在本例中,腳本被用作白名單測試,但也可輕松配置為黑名單測試。

結(jié)論

通過本指南,您可以有效地利用 IOTA 設(shè)備及其 REST API 來監(jiān)控網(wǎng)絡(luò)流量,并使用 Python 檢測黑名單 IP 地址。這種方法為在自動化監(jiān)控環(huán)境中維護(hù)網(wǎng)絡(luò)安全提供了強(qiáng)大的工具。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    2158

    瀏覽量

    66246
  • 網(wǎng)絡(luò)安全
    +關(guān)注

    關(guān)注

    11

    文章

    3450

    瀏覽量

    62973
  • Iota
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    8764
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    OT網(wǎng)絡(luò)流量分析的突破口:IOTA助力安全與效率雙提升

    重點速覽面對復(fù)雜的OT網(wǎng)絡(luò)環(huán)境,傳統(tǒng)的數(shù)據(jù)采集與分析工具往往難以滿足高效性和精準(zhǔn)性的需求。ProfitapIOTA提供了一種智能化的解決方案,使企業(yè)能夠更快速、更準(zhǔn)確地進(jìn)行流量分析與故障診斷。本文
    的頭像 發(fā)表于 08-08 18:12 ?714次閱讀
    OT網(wǎng)絡(luò)<b class='flag-5'>流量分析</b>的突破口:<b class='flag-5'>IOTA</b>助力安全與效率雙提升

    CNC的IP地址相同沖突如何解決?

    在網(wǎng)絡(luò)世界中,每個設(shè)備都需要一個獨特的標(biāo)識來確保信息的準(zhǔn)確傳輸,這個標(biāo)識就是IP地址。然而,在CNC(數(shù)控機(jī)床)生產(chǎn)車間中,由于存在多個品牌、不同型號的設(shè)備,且這些設(shè)備在出廠測試時往往會被配備相同
    的頭像 發(fā)表于 07-23 14:13 ?444次閱讀
    CNC的<b class='flag-5'>IP</b><b class='flag-5'>地址</b>相同沖突如何解決?

    干貨 IOTA實戰(zhàn):如何精準(zhǔn)識別網(wǎng)絡(luò)風(fēng)險

    在當(dāng)前網(wǎng)絡(luò)威脅日益頻繁的背景下,企業(yè)迫切需要一種高效、智能的安全監(jiān)測工具。本文深入介紹了 IOTA 在網(wǎng)絡(luò)威脅識別中的實際應(yīng)用價值。通過實時監(jiān)控 TCP 連接、檢測異常端口以及分析 SSL/TLS
    的頭像 發(fā)表于 05-07 17:29 ?465次閱讀
    <b class='flag-5'>艾</b><b class='flag-5'>體</b><b class='flag-5'>寶</b><b class='flag-5'>干貨</b> <b class='flag-5'>IOTA</b>實戰(zhàn):如何精準(zhǔn)識別網(wǎng)絡(luò)風(fēng)險

    局域網(wǎng)地址檢測

    局域網(wǎng)地址檢測器是一款非常實用的IP地址沖突快速檢測工具。這款它功能強(qiáng)大、操作簡單,能幫助用戶快速檢測
    發(fā)表于 02-17 17:00 ?2次下載

    今日看點丨美國國防部將長鑫存儲、騰訊、寧德時代等134家中企列入黑名單;英特爾明確不會關(guān)閉其獨立顯卡

    ? 1. 美國國防部將長鑫存儲、騰訊、寧德時代等134 家中企列入黑名單 ? 美國國防部周一表示,已將包括騰訊控股、電池制造商寧德時代在內(nèi)的中國科技巨頭添加到其表示與中國軍隊協(xié)作的公司名單中。據(jù)當(dāng)局
    發(fā)表于 01-07 11:10 ?1146次閱讀

    方案 全面提升API安全:AccuKnox 接口漏洞預(yù)防與修復(fù)

    AccuKnox 的 API 安全解決方案,其通過實時威脅檢測、隱形 API 發(fā)現(xiàn)等技術(shù),提供覆蓋 API 全生命周期的安全保護(hù)。
    的頭像 發(fā)表于 12-30 11:46 ?777次閱讀
    <b class='flag-5'>艾</b><b class='flag-5'>體</b><b class='flag-5'>寶</b>方案 全面提升API安全:AccuKnox 接口漏洞預(yù)防與修復(fù)

    ISP與IP地址

    ISP可以為用戶提供互聯(lián)網(wǎng)接入、信息內(nèi)容、應(yīng)用服務(wù)以及其他增值業(yè)務(wù)。 要知道,在ISP的網(wǎng)絡(luò)中,IP地址池幾乎可以說不可或缺。IP地址池是指一定范圍內(nèi)可供分配的
    的頭像 發(fā)表于 12-27 10:41 ?926次閱讀

    CIDR的IP地址分配與管理

    傳統(tǒng)IP地址分類,也就是ABC類等。但是,有一種情況,“如果一個公司可能被分配了一個C類網(wǎng)絡(luò)地址,但是實際,它僅需少量的IP
    的頭像 發(fā)表于 12-26 10:01 ?947次閱讀

    VoIP?網(wǎng)絡(luò)排障新思路:從日志到 IOTA?分析

    VoIP 網(wǎng)絡(luò)需要高可用性與低延遲,但復(fù)雜的問題如 SIP 403 錯誤常導(dǎo)致服務(wù)中斷。傳統(tǒng)的日志和基本流量分析方法往往耗時低效,而 IOTA 工具通過實時流量捕獲與深入分析,大幅提高
    的頭像 發(fā)表于 12-24 14:35 ?888次閱讀
    VoIP?網(wǎng)絡(luò)排障新思路:從日志到 <b class='flag-5'>IOTA</b>?<b class='flag-5'>分析</b>

    IP地址偽造和反偽造技術(shù)

    IP地址偽造簡而言之就是網(wǎng)絡(luò)攻擊的一種手段。攻擊者通過偽裝成合法的IP地址,繞過訪問控制、進(jìn)行惡意攻擊或竊取敏感信息。 IP
    的頭像 發(fā)表于 12-20 10:12 ?988次閱讀

    華納云:服務(wù)器設(shè)置黑名單名單方法

    黑名單是一種包含被禁止訪問或使用的IP地址、域名、電子郵件地址或其他標(biāo)識符的列表。任何在黑名單
    的頭像 發(fā)表于 12-19 14:35 ?1614次閱讀

    高效、安全、智能:探索網(wǎng)絡(luò)管理方案

    網(wǎng)絡(luò)可觀測平臺是一款專為現(xiàn)代網(wǎng)絡(luò)挑戰(zhàn)設(shè)計的解決方案,提供實時的網(wǎng)絡(luò)流量分析和深度數(shù)據(jù)洞察。無論是網(wǎng)絡(luò)性能優(yōu)化、故障排除還是安全威脅檢測
    的頭像 發(fā)表于 12-16 17:36 ?721次閱讀
    高效、安全、智能:探索<b class='flag-5'>艾</b><b class='flag-5'>體</b><b class='flag-5'>寶</b>網(wǎng)絡(luò)管理方案

    與Kubernetes原生數(shù)據(jù)平臺AppsCode達(dá)成合作

    虹科姐妹公司宣布與Kubernetes 原生數(shù)據(jù)平臺 AppsCode達(dá)成正式合作,致力于將其核心產(chǎn)品KubeDB引入中國市場,為企業(yè)提供專業(yè)、高效的云原生數(shù)據(jù)庫管理解決方案。
    的頭像 發(fā)表于 12-16 15:07 ?897次閱讀

    通過安卓手機(jī)查找IP地址步驟

    我們在使用安卓手機(jī)的時候,可以在設(shè)備通過一些方法來查到IP地址,而IP地址也分為公網(wǎng)IP
    的頭像 發(fā)表于 12-12 13:53 ?4519次閱讀
    通過安卓手機(jī)查找<b class='flag-5'>IP</b><b class='flag-5'>地址</b>步驟

    如何在Linux系統(tǒng)設(shè)置站群服務(wù)器IP地址

    在Linux系統(tǒng)設(shè)置站群服務(wù)器的IP地址,可以通過以下步驟進(jìn)行,主機(jī)推薦小編為您整理發(fā)布如何在Linux系統(tǒng)設(shè)置站群服務(wù)器IP
    的頭像 發(fā)表于 12-11 10:05 ?863次閱讀