企業の脅威インテリジェンスネットワーク監視プラットフォーム暗いの構築

クリエイティブコモンズライセンス 著作権:帰属、紙ベースを作成するために他人を許可し、(同じライセンスで元のライセンス契約に基づいて用紙配布する必要がありますクリエイティブコモンズ

I.はじめに

私は穴の虎」だけでサイバー犯罪者の集まりのような濃いネットワークに我々は何も知らない人、この概念は、我々はすべて知っている、どこにでも暗い市場の暗い隠されたネットワークバージョン、違法なツール、売春、麻薬取引、銃器情報、信じていません。 " 私たちは、簡単なシルクロードとして、浅いネットワークの暗いネットワーク、主にポルノやデータ・インテリジェンス情報にアクセスすることができますなど、Torのブラウザを使用します。

企業にとって、多くの場合、ハッキングされて助けることができない多くのデータを取得し、これらのデータは、一般的に暗いネットワークで販売することを好むだろう、など近年では12306として、そのようなデータ侵害などの大手インターネット企業です。迅速に対応するためには、データ侵害のバースト、企業はウールやビジネスセキュリティリスクおよび他のイベントを引き出し、機密データの漏洩を監視するために使用されるネットワークデータ漏洩暗い脅威インテリジェンスプラットフォームのリアルタイム監視を必要としています。

第二に、プロキシサーバーを設定します

国内のネットワーク環境に、成功したダークのWebにアクセスするために、我々は外国のサーバーを必要とし、システムのバージョンはUbuntuの18.04である(もちろん、他のシステムはできますが、この記事では例として、システムのこのバージョンを入れます)が、このサーバーが必要アクセスにプロキシサーバーとしてのTorとPrivoxyのをインストールしてください。

この記事のシステムのバージョン:

root@536ef99cab94:/# cat /etc/issue.net
Ubuntu 18.04.2 LTS

2.1全体的なアーキテクチャは、
ここに画像を挿入説明
主にSOCKS5のプロトコルhttpプロトコルを回して、SOCKS5ターンのTor Torのプロトコルに責任があるし、交通機関などのフィギュア、Privoxyのから見ることができます。だから、への代理アクセスの全体のプロセス:

1.用户输入后缀为onion的地址,由Privoxy暴露的8118端口访问http协议; 

2.Privoxy把http协议转发给Tor,Tor获取该网站公钥进行加密,通过Tor通信链路发送信息给Tor节点,由该节点转发请求到.onion网站。

2.2インストールのTor

多くの人が実行し、直接、このコマンドを起動することがあります。sudo apt-getのTORをインストールし、このコマンドは、最新の暗号化アルゴリズムのいくつかに少ないアクセスで、その結果、新しい暗号化アルゴリズムをサポートしていないのTorのv2のインストールバージョンがありますダークウェブURL。

主にTorのV3を変更するにはTor v2は以下の通りです:

1.签名算法从SHA1/DH/RSA1024升级到SHA3/ed25519/curve25519;

2.改进的Tor directory protocol,安全性更高;

3.更好的洋葱地址,换成sha3,可以提高枚举生成一样地址的难度;

4.可拓展的交换协议。

インストールは、次のようにTorの最新バージョンの(V3版)をインストールし、公式のネットワークを参照してください。

1.次のソースの/etc/apt/sources.listを追加します。

deb https://deb.torproject.org/torproject.org bionic main
deb-src https://deb.torproject.org/torproject.org bionic main

2.次のコマンドを実行し、GPGキーを追加します。

curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -

3. Torのをインストールします。

apt update
apt install tor deb.torproject.org-keyring

4. Torのインストールのバージョンを確認し、この記事では、Torのバージョン0.3.5.8のインストールを示しています。

root@536ef99cab94:/# tor -v
Jun 18 14:30:43.530 [notice] Tor 0.3.5.8 running on Linux with Libevent 2.1.8-stable, OpenSSL 1.1.1, Zlib 1.2.11, Liblzma 5.2.2, and Libzstd 1.3.3.
Jun 18 14:30:43.531 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jun 18 14:30:43.531 [warn] Command-line option '-v' with no value. Failing.
Jun 18 14:30:43.531 [err] Reading config failed--see warnings above.

2.3 Torの設定

あるTorの設定ファイルは/ etc / TOR / torrcと/etc/tor/torsocks.conf:

/etc/tor/torsocks.confは靴下がTorのプロトコルポートとアドレスをオンにするプロトコルを定義します。

の/ etc / TOR / torrc我々は上のHTTPプロキシ(polipo、Privoxyの)、インスタントメッセージング(ピジン、lrssi)、TorDNSとを変更し、このファイルには、Torのユーザー構成です。

Torv3バージョンをサポートするには、/ etc / TOR / torrcファイルには、以下を追加する必要があります。

HiddenServiceDir /var/lib/tor/other_hidden_service/
HiddenServicePort 80 127.0.0.1:80
HiddenServiceVersion 3

編集後、コマンドラインまたはTorのTORを開始するために、サービスTORの開始を入力してください。

2.4インストールと設定Privoxyの

そこには、バージョン要件をされていない、apt-getを直接Privoxyのインストールを実行することが可能です。

インストール後、Privoxyのは、Torのにhttpプロトコルを転送できるようにするために、編集する必要があるの/ etc / Privoxyの/ configにプラス:

forward-socks5 / 127.0.0.1:9050 .
listen-address 0.0.0.0:8118

変更後は、サービスのサービスPrivoxyの再起動を再起動します。

2.5エージェントが利用可能であることを確認します

あなたはダークWebサイトにアクセスするためにTorのブラウザ柔和-紺碧を使用することができますが、アクセスが遅いですが。私たちは、プロキシサーバが利用可能である設定を検証するために、我々はネットワーク設定Torのブラウザを変更することができます(:11.11.11.11プロキシサーバーのIPとして我々を仮定して):
ここに画像を挿入説明
それは説明書にアクセスすることができます成功した場合、ダークWebサイトへのアクセスを設定した後私たちのプロキシサーバは使用可能ですが、アクセス速度が柔和-紺碧よりもはるかに高速です。

もちろん、我々はより迅速にテストするには、次のコマンドを入力することができます。

➜  ~ curl -x 11.11.11.11:8118 https://httpbin.org/ip
{
  "origin": "178.175.132.225, 178.175.132.225"
}

あなたはTorの出口ノードアドレスとして、外国モルドバのため178.175.132.225の位置を確認することができます。

リアルタイム監視プログラムの第三に、開発

最後の章では、我々はあなたが暗闇のウェブサイトにTorのブラウザ+代理店ネットワークの高速アクセスを使用することができますが、暗いの主要なネットワークへのアクセスを持っている同等のプロキシサーバを、セットアップが、人工および24時間監視やデータのタイムリーな検出を行うことはできませんされていますリークは、私たちは、リアルタイム監視クローラ暗いウェブサイトを開発する必要があります。

特長3.1ダークWebサイト

ダークWebサイトは非常に派手なjsのダイナミックな戦略と強力な抗登るがない、表面のWebサイトから異なっているので、ダークWebサイトのクローラーは比較的簡単です。暗いは、いくつかの一般的なウェブサイトを要約した後に抗登る暗いネットワーク戦略のサイトには、一般的に次のような状況です。

1.Referer;

2.针对Cookie的请求频率限制;

3.User-Agent;

4.验证码;

5.对网站代码进行更新,修改html标签名字或位置。

3.2ダークWebサイトファンファンの爬虫類

この記事の推力が戦略を模索中の抗爬虫類ではありませんので、抗爬虫類戦略3.1のために、私たちは、回避する方法を見つけることができ、それは単に回避策下に置かれています。

1.指定请求头的referer为访问暗网网站的域名;

2.建立多账号Cookie池,同时使用Redis对url去重实现增量爬取减少请求量;

3.指定User-Agent为FireFox浏览器:{‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0’};

4.暗网网站的验证码一般比较简单,可以简单使用ocr技术识别,如tesseract;

5.需要及时更新爬虫代码,有针对地修改反反爬虫代码。

3.3ダークネット監視爬虫類アーキテクチャ

Scrapyは、データをクロールするためのウェブサイトのPython実装で、アプリケーション・フレームワーク書かれた構造化データを抽出します。Scrapyは、しばしばデータを含む、鉱業で使用される、情報処理プログラムや履歴データの系列を記憶等されます。通常、我々は簡単にScrapyフレームワークによって爬虫類を達成することができ、Webサイトがクロールされます。

抗爬虫類に基づき、本論文の3.2節Scrapyでバイパス方法は、以下のように、その構造は、リアルタイム監視プログラムを実装しています:
ここに画像を挿入説明
実現3.4監視プログラム

この論文の監視プログラムは、それが一例としてのみ、ダークWebサイトを取った、紙面の都合で、同時にいくつかの一般的なダークWebサイトを監視することです。

Scrapyプロキシ設定:

class DarkwebSpiderDownloaderMiddleware(object):

    def process_request(self, request, spider):
        request.meta['proxy'] = 'http://11.11.11.11:8118'

マルチコアコードのアカウントのログイン:

for accounts in Accounts:
    count = 0
    try:
        logging.info('Account %s is logining ......' % accounts)
        cookie, sid = get_CookieSid(accounts, 'Testtest')
        __i__ = {'cookie': cookie, 'sid': sid}
        # print(__i__)
        logging.info('Account %s finish login !' % accounts)
        __value__.append(__i__)
    except Exception as e:
        logging.error('[*] 超时,忽略一个账户!')
        count += 1
        if(count > 7):
            logging.error('[*] 用户登录个数过少~')
            return
        continue

組換えメンバーに、主にリクエストの量を削減するために使用:

class DuplicateRequestMiddleware(object):

    #初始化redis
    def __init__(self):
        self.RedisQuery = RedisOpera('query')

    #根据redis去重url
    def process_request(self, request, spider):
        spider.logger.info('duplicating >>>>>> %s' % request.url)
        u = request.url
        import hashlib
        if 'vpic' in request.url:
            b = u.index('=') + 1
            MD5 = hashlib.md5()
            MD5.update(bytes(str(b), 'utf-8'))
            if self.RedisQuery.query(MD5.hexdigest()):
                spider.logger.info('duplicate >>>>>> %s' % request.url)
                raise IgnoreRequest("IgnoreRequest : %s" % request.url)
        else:
            spider.logger.info('ignore duplicate >>>>>> %s' % request.url)
            return None

リファラーリクエストヘッダとのUser-Agent指定:

LOGIN_HEADERS = {
    'Host': '%s' %load()['domain'].split(',')[index],
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Encoding': 'gzip, deflate',
    'Referer': 'http://%s/index.php' %load()['domain'].split(',')[index],
    'Content-Type': 'application/x-www-form-urlencoded',
    'Connection': 'keep-alive',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0'
}

Webページを解析し、主に取り出してデータベースに格納されています:

def parse(self, response):
    item = DarkwebSpiderItem()
    soup = BeautifulSoup(response.text, 'lxml')
    # 交易价格
    table = soup.find_all(name = 'table', attrs = {'class':'v_table_1'})
    tr_list = table[0].find_all('tr')
    td_list_price = tr_list[4].find_all('td')
    price_list = re.findall(r'\d+\.?\d*', td_list_price[3].get_text())
    price = price_list[0]
    # 成交数量
    td_list_volume = tr_list[6].find_all('td')
    volume_list = re.findall(r'\d+', td_list_volume[3].get_text())
    volume = volume_list[0]
    # 帖子内容
    content_list = soup.find_all(name='div', attrs={'class': 'content'})
    if len(content_list):
        content = content_list[0].get_text()
    else:
        content = ''
    # 图片url
    img_list = soup.find_all(name = 'img', attrs = {'class':'postimage'})
    item['image_urls'] = []
    if len(img_list) > 0 :
        url_list = []
        for img_url in img_list:
            if img_url['src'].find(self.image_domain) > 0:
                download_url = img_url['src']
            else:
                download_url = self.target_url + img_url['src'].replace('./', '')
            url_list.append(download_url)
        item['image_urls'] = url_list
    # 发布时间
    p_author = soup.find_all('p', attrs={'class': 'author'})
    origin_publish_time = p_author[0].contents[4].strip()
    if len(origin_publish_time):
        # origin_publish_time = pt_str
        ptr_list = [x for x in filter(str.isdigit, str(origin_publish_time))]
        pt_str = "".join(ptr_list)
        y = pt_str[:4]
        d = pt_str[-6:-4]
        h = pt_str[-4:-2]
        min = pt_str[-2:]
        if len(pt_str) == 12:
            m = pt_str[4:6]
        else:
            m = '0' + pt_str[4]
        publish_time = y + '-' + m + '-' + d + " " + h + ":" + min + ":00"
    else:
        publish_time = ''
    dt = datetime.datetime.strptime(publish_time, "%Y-%m-%d %H:%M:%S")
    publish_time = dt.astimezone(pytz.timezone('UTC')).strftime('%Y-%m-%d %H:%M:%S')

    b = response.meta['content_url'].index('=') + 1
    item['title_id'] = (response.meta['content_url'])[b:]
    item['title'] = response.meta['title']
    item['url'] = response.meta['content_url']
    item['content'] = content
    item['price'] = price
    item['volume'] = volume
    item['visits'] = response.meta['visits']
    item['publish_time'] = publish_time
    yield item

:あなたは、新しいキーワードのモニター記録、電子メールによる通知を見つけたら

def send_html_email(title, html, content, mailto, cc=None):
html_content = render_to_string(html, content)
send_mail = settings.EMAIL_TO.split(',') if mailto == '' else settings.EMAIL_TO

msg = EmailMultiAlternatives(title, html_content,
                             settings.EMAIL_LUCKY_NAME +    '<' + settings.EMAIL_HOST_USER + '>', send_mail, cc=cc)
msg.attach_alternative(html_content, "text/html")
msg.send()

第四に、データ視覚化爬虫類

4.3バージョンはMySQLのデータソースをサポートしていた後、読者configureを視覚化するGrafanaを使用できるように、Grafanaは、クロスプラットフォーム、オープンソースのメトリクス分析と可視化の監視ツール、タイムリーな通知クエリであると可視化は、収集したデータを示しており、電子メールアラートは、操作の具体的な方法はまた、独自のレビューです。

次のようにしかし、セキュリティ管理プラットフォームに、このプログラムへのアクセスの暗いネットワークリアルタイム監視、そう自己開発の管理ページの使用は、あなたがより簡単に検索し、ダークWebクローラーのデータを表示することができ、およそ効果がある:
ここに画像を挿入説明
V.概要

ほとんどの人々のためのダークウェブモニタリングは存在の謎である、紙は抗クライミング戦略の一般的な解釈をした後、設定したプロキシサーバから始めて、この層の神秘的なベールを明らかにステップによって読者のステップをとり、ゼロからダークを開発する方法を説明しますウェブサイトの監視プログラム、監視プログラムと組み合わせることができる最後のGrafanaのビジュアル監視ツールを導入しました。

おすすめ

転載: blog.csdn.net/kclax/article/details/93730743