iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
Security

威脅情資分析與挑戰系列 第 14

[Day 14] 威脅情資工具開發 - 從 Twitter 擷取資安相關推文 (上)

  • 分享至 

  • xImage
  •  

今天使用 Python 與 Twitter API 來開發一個 OSINT 搜集工具。

Twiiter API [1]提供一個方便的介面讓我們可以快速搜尋或分析 Twitter 推文。

那別人寫過類似的文章我們就不碰,
所以看到官網現在最新的版本是 Twitter API v2
使用免費方案即可
限制如下:

  • 權限: 要註冊
  • 價格: 免費
  • 使用 Twitter API v2: YES
  • 項目限制: 1
  • 應用限制: 1
  • 推文上限:每個月可以查 50 萬條
  • 過濾限制: 5 個
  • POST 速率:每15分鐘 可以查 25 次
  • 驗證方式: Oauth 2.0

其他限制可以看參考來源 1

總之先來註冊

https://developer.twitter.com/en/portal/petition/essential/basic-info

https://ithelp.ithome.com.tw/upload/images/20220918/20151201bafwHnh8DM.jpg

看完他的協議與原則,同意後送出。
不過他跳出要我先驗證電話號碼的訊息。

There was a problem completing your request
User must have a verified phone number on file prior to submitting application.

回到 Titter 設定先驗個電話號碼。
https://ithelp.ithome.com.tw/upload/images/20220918/20151201GKvicHuytF.jpg

正之後會驗證 Email,下一步想一個 App Name

會得到三串 key 好好保存
https://ithelp.ithome.com.tw/upload/images/20220918/20151201hU61vzSCjq.jpg

然後到 Twitter-API-v2-sample-code 看一下有沒有寫好的範本我們可以直接改來節省時間

https://github.com/twitterdev/Twitter-API-v2-sample-code

從文件看到
Endpoint-specific scripts and libraries
search-tweets Python - Python library for the v2 and enterprise search endpoints
有現成的 Python 套件
https://github.com/twitterdev/search-tweets-python
看了一下文件,
免費用戶不能用...那這條路先放棄

This project serves as a wrapper for the Twitter premium and enterprise search APIs, providing a command-line utility and a Python library. 

之後在 Github 上找到另一個 python-twitter 專案
https://github.com/bear/python-twitter

上面的文件是舊版的...不確定ok不ok

總之我拿我寫這篇文章時看到的內容去做

https://ithelp.ithome.com.tw/upload/images/20220918/20151201iyAL2YBZik.jpg

仔細比對要獲取存限的要求...發現版本應該不同,
那就自己打 v2 的 API 來用吧

點到 Products 的 Twitter API v2
https://ithelp.ithome.com.tw/upload/images/20220918/20151201LG9kmeUgo2.jpg

我們主要的功能應該要能搜尋比較相近的方法
叫做 Search Tweets 看一下文件

https://ithelp.ithome.com.tw/upload/images/20220918/20151201MrloEYYPd9.jpg

功能大致上是「搜索推文是一項重要功能,用於顯示有關特定主題或事件的 Twitter 對話[2]」
資格免費方案符合

環境設置

使用 Python 需要一些前置處理

pip install requests
pip install requests-oauthlib

看一下 API 文件的參數要求

https://developer.twitter.com/en/docs/twitter-api/tweets/search/api-reference/get-tweets-search-recent

(Python 程式改為下一篇)

Postman

Postman[3]是一個API平台,供開發人員設計,構建,測試和迭代其API。

想了想還是明天再用 Python 抓,
今天先用這個工具來幫忙,
因為 Twitter API v2 走的是 Oauth 2.0

先到這裡 fork 專案

https://www.postman.com/twitter/workspace/twitter-s-public-workspace/request/9956214-acd41db7-05bc-4359-be63-dd5249dfef32

找到 Search Tweets

選擇 Get Recent Search

在 Params 的 query 參數填上 threat intelligence
https://ithelp.ithome.com.tw/upload/images/20220918/20151201qZmIqw2Y2c.jpg

然後切到 Authorization

Type 選擇 Oauth 2.0
在 Acces Token 填上上面註冊 Twitter 開發者提供的 Bearer Token
這一定要填喔
否則會回傳 401 code

送出後

我們就收到 JSON 格式的關於 threat intelligence 關鍵字的推文內容

https://ithelp.ithome.com.tw/upload/images/20220918/20151201Wpq2rHkjJv.jpg

小結

這篇文是邊做邊寫,所以有點混亂,整個工具完成有時間再重新編排,下一篇,將改為 Python 處理請求與回應。

Reference

[1] Twitter. Getting started. https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api
[2] Search Tweets https://developer.twitter.com/en/docs/twitter-api/tweets/search/introduction
[3] wekipedia. https://en.wikipedia.org/wiki/Postman_(software)


上一篇
[Day 13] 威脅情資收集 - CVE Trends
下一篇
[Day 15] 威脅情資工具開發 - 從 Twitter 擷取資安相關推文 (中)
系列文
威脅情資分析與挑戰15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言