首頁 > 資料庫 > mysql教程 > SQL注入系列部分-建構即時偵測蜜罐

SQL注入系列部分-建構即時偵測蜜罐

Mary-Kate Olsen
發布: 2024-12-14 01:31:11
原創
448 人瀏覽過

Part SQL Injection Series - Building Honeypots for Real-Time Detection

作者:Trix Cyrus

Waymap滲透測試工具:點這裡
TrixSec Github:點這裡
TrixSec Telegram:點此


歡迎來到我們的 SQL 注入 (SQLi) 系列的第 9 部分!在本期中,我們將深入探討蜜罐的迷人世界——這些工具旨在吸引攻擊者並收集有價值的情報。蜜罐為 SQLi 嘗試提供了獨特的視角,從而能夠即時檢測並更深入地洞察惡意行為。


什麼是蜜罐?

蜜罐是故意存在漏洞的系統,旨在模仿現實世界的應用程式、資料庫或伺服器。與生產系統不同,蜜罐不會儲存合法資料或提供實際服務。相反,他們的目的是引誘攻擊者、監視他們的活動並收集有關其工具、技術和有效負載的情報。


為什麼要用蜜罐進行 SQL 注入?

部署蜜罐有幾個好處:

  1. 早期威脅偵測:在 SQLi 嘗試到達生產系統之前識別它們。
  2. 行為分析:了解攻擊者策略、有效負載和工具。
  3. 事件應變改善:獲得可操作的情報以加強防禦。
  4. 欺騙策略:轉移攻擊者的實際資產,浪費他們的時間和資源。

如何建構 SQL 注入蜜罐

1.選擇適合的環境

決定使用低交互還是高交互蜜罐:

  • 低交互蜜罐:模擬功能有限的基本漏洞,更容易設定。
  • 高互動蜜罐:完全模仿生產系統,提供更深入的見解,但需要強大的管理以避免意外利用。

2.建立誘餌 Web 應用程式

建立一個對攻擊者來說看似真實的虛假 Web 應用程式。

  • 包含接受輸入的表單、搜尋欄位或登入頁面。
  • 易受攻擊的查詢範例:
  SELECT * FROM users WHERE username = '$input' AND password = '$password';
登入後複製
登入後複製

3.模擬資料庫

用假數據設定一個虛擬資料庫。 MySQLSQLite 等工具運作良好。確保資料庫不連接到敏感系統。

  • 用現實但無意義的數據填充它以使其令人信服。

4.新增故意漏洞

故意引入SQL注入漏洞,如:

  • 缺乏輸入清理。
  • 使用使用者輸入的串聯查詢。

5.部署日誌記錄與監控

監控與蜜罐的所有互動以捕捉攻擊者行為。

  • 記錄嘗試的 SQL 負載,例如:
  SELECT * FROM users WHERE username = '$input' AND password = '$password';
登入後複製
登入後複製
  • ELK StackSplunk 等工具可以即時分析日誌。

6.隔離蜜罐

將蜜罐與生產系統隔離,以防止意外違規。使用防火牆、虛擬機器或沙箱環境進行部署。


範例設定

這是一個使用 Flask 建立 SQLi 蜜罐的基本 Python 範例:

  ' OR 1=1; DROP TABLE users; --
登入後複製

監控什麼

  1. 有效負載分析: 記錄並分析惡意查詢,例如:
from flask import Flask, request
import sqlite3

app = Flask(__name__)

# Dummy database setup
def init_db():
    conn = sqlite3.connect('honeypot.db')
    c = conn.cursor()
    c.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, username TEXT, password TEXT)")
    c.execute("INSERT INTO users (username, password) VALUES ('admin', 'password123')")
    conn.commit()
    conn.close()

@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    password = request.form['password']

    # Deliberate vulnerability: SQL query concatenates user input
    query = f"SELECT * FROM users WHERE username='{username}' AND password='{password}'"
    print(f"Query executed: {query}")  # Logs the SQL query

    conn = sqlite3.connect('honeypot.db')
    c = conn.cursor()
    c.execute(query)
    result = c.fetchall()
    conn.close()

    if result:
        return "Login successful!"
    else:
        return "Invalid credentials."

if __name__ == "__main__":
    init_db()
    app.run(debug=True)
登入後複製
  1. IP 追蹤:

    記錄嘗試 SQLi 識別惡意來源的 IP 位址。

  2. 行為模式

    監控重複嘗試和不斷演變的有效負載以適應防禦。


增強蜜罐效率

  1. 與威脅情報整合

    與全球威脅情報平台分享來自蜜罐的見解,為社群做出貢獻。

  2. 自動警報

    使用 PagerDutySlack Webhooks.

  3. 等工具配置可疑活動的即時警報
  4. 機器學習

    使用 ML 模型識別 SQLi 嘗試中的模式並預測未來的攻擊。


道德與法律考量

部署蜜罐需要承擔道德和法律責任:

  • 知情同意:確保它不會無意中收集敏感資料。
  • 隔離:確保攻擊者無法從蜜罐轉向生產系統。
  • 合規性:遵守當地和國際網路安全法規。

最後的想法

建立 SQL 注入蜜罐提供了了解攻擊者並加強防禦的獨特機會。透過即時監控惡意活動,組織可以預測潛在的攻擊,完善其安全策略,並為更廣泛的網路安全社群做出貢獻。

~Trixsec

以上是SQL注入系列部分-建構即時偵測蜜罐的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板