كشف جدران الحماية العظيمة، وواجهات برمجة التطبيقات الوكية، وكشف شبكات VPN | أصلي، ترجم بواسطة AI

Home 2025.01

جدول المحتويات

  1. هل يمكن لتطبيقات الـ API في خوادم الوكيل تجنب حظر جدار الحماية العظيم (GFW)؟
    • خلط حركة مرور الوكيل مع حركة مرور الـ API يتجنب حظر GFW
    • GFW يميز بين حركة مرور الوكيل وحركة مرور HTTP/HTTPS الطبيعية
    • من المحتمل أن يحظر GFW بناءً على حركة مرور الوكيل الحصرية
    • يستخدم GFW نافذة زمنية لتحليل حركة المرور
    • الوصول بانتظام إلى الـ API قد يمنع الكشف
  2. كيف يعمل جدار الحماية العظيم (GFW).
    • يسجل GFW الطلبات مع بيانات المصدر والهدف
    • يحظر عناوين الـ IP المرتبطة بأنشطة غير قانونية
    • يستخدم قواعد للكشف عن بروتوكولات محددة
    • يمكن أن يحظر بناءً على نسبة الطلبات غير القانونية
    • يستخدم الذكاء الاصطناعي للكشف الذكي عن أنماط حركة المرور
  3. تحليل اكتشف VPN في تطبيق ChatGPT لنظام iOS
    • يعمل تطبيق ChatGPT لنظام iOS الآن مع بعض خدمات VPN
    • يعتمد الوصول على موقع خادم الـ VPN
    • يعتمد الكشف على عناوين الـ IP المحددة
    • بعض عناوين مزودي خدمات السحابة محظورة

هل يمكن لتطبيقات الـ API في خوادم الوكيل تجنب حظر جدار الحماية العظيم (GFW)؟

أشغل خادمًا بسيطًا على مثيلي لـ Shadowsocks باستخدام الكود التالي:

from flask import Flask, jsonify
from flask_cors import CORS
import subprocess

app = Flask(__name__)
CORS(app)  # تمكين CORS لجميع المسارات

@app.route('/bandwidth', methods=['GET'])
def get_bandwidth():
    # تشغيل أمر vnstat للحصول على إحصائيات حركة المرور للفترة الزمنية 5 دقائق لـ eth0
    result = subprocess.run(['vnstat', '-i', 'eth0', '-5', '--json'], capture_output=True, text=True)
    data = result.stdout

    # إرجاع البيانات المحصورة كاستجابة JSON
    return jsonify(data)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

وأستخدم nginx لخدمة المنفذ 443 كما هو موضح أدناه:

server {
    listen 443 ssl;
    server_name www.some-domain.xyz;

    ssl_certificate /etc/letsencrypt/live/www.some-domain.xyz/fullchain.pem; # يدار بواسطة
    # ...
    location / {

        proxy_pass http://127.0.0.1:5000/;
        # ...
    }
}

هذا البرنامج الخادم يوفر بيانات الشبكة، وأستخدم الخادم كخادم وكيل، مما يسمح لي بعرض حالتي عبر الإنترنت على مدونتي باستخدام بيانات الشبكة.

ما هو مثير للاهتمام هو أن الخادم لم يتم حظره من قبل جدار الحماية العظيم (GFW) أو أي نظام آخر للتحكم في الشبكة منذ عدة أيام. عادةً، يتم حظر خادم الوكيل الذي أقوم بإعداده خلال يوم أو يومين. يعمل الخادم ببرنامج Shadowsocks على منفذ مثل 51939، لذلك يعمل بحركة مرور Shadowsocks مختلطة مع حركة مرور الـ API العادية. يبدو أن هذا المختلط يجعل GFW يعتقد أن الخادم ليس وكيلاً مخصصًا، بل خادمًا طبيعيًا، مما يمنع حظر عنوان الـ IP.

هذه الملاحظة مثيرة للاهتمام. يبدو أن GFW يستخدم منطقًا محددًا للتمييز بين حركة مرور الوكيل وحركة المرور الطبيعية. بينما يتم حظر العديد من المواقع مثل تويتر ويوتيوب في الصين، تبقى العديد من المواقع الأجنبية - مثل مواقع الجامعات والشركات الدولية - قابلة للوصول.

هذا يشير إلى أن GFW يعمل على الأرجح بناءً على قواعد تميز بين حركة مرور HTTP/HTTPS الطبيعية وحركة مرورية مرتبطة بالوكيل. يبدو أن الخوادم التي تتعامل مع كلا النوعين من حركة المرور تتجنب الحظر، بينما الخوادم التي تتعامل فقط مع حركة مرور الوكيل من المرجح أكثر أن يتم حظرها.

السؤال هو ما هي الفترة الزمنية التي يستخدمها GFW لتراكم البيانات للحظر - سواء كانت يومًا واحدًا أو ساعة واحدة. خلال هذه الفترة الزمنية، يكشف ما إذا كانت حركة المرور حصرية من وكيل. إذا كانت كذلك، يتم حظر عنوان الـ IP الخاص بالخادم.

أزور مدونتي غالبًا لمراجعة ما كتبته، ولكن في الأسابيع القادمة، ستنتقل تركيزي إلى مهام أخرى بدلاً من كتابة منشورات المدونة. هذا سيقلل من وصولي إلى الـ API bandwidth عبر المنفذ 443. إذا وجدت أنني تم حظري مرة أخرى، يجب أن أكتب برنامجًا للوصول بانتظام إلى هذا الـ API لخداع GFW.


كيف يعمل جدار الحماية العظيم (GFW).

الخطوة الأولى: تسجيل الطلبات

import time

# قاعدة بيانات لتخزين بيانات الطلبات
request_log = []

# دالة لتسجيل الطلبات
def log_request(source_ip, target_ip, target_port, body):
    request_log.append({
        'source_ip': source_ip,
        'target_ip': target_ip,
        'target_port': target_port,
        'body': body,
        'timestamp': time.time()
    })

تقوم دالة log_request بتسجيل الطلبات الواردة مع معلومات أساسية مثل عنوان الـ IP المصدر، عنوان الـ IP الهدف، منفذ الهدف، جسم الطلب، وطابع الزمن.

الخطوة الثانية: التحقق من عناوين الـ IP وحظرها

# دالة للتحقق من الطلبات وحظر عناوين الـ IP
def check_and_ban_ips():
    banned_ips = set()

    # التكرار عبر جميع الطلبات المسجلة
    for request in request_log:
        if is_illegal(request):
            banned_ips.add(request['target_ip'])
        else:
            banned_ips.discard(request['target_ip'])

    # تطبيق الحظر على جميع عناوين الـ IP المحددة
    ban_ips(banned_ips)

تقوم دالة check_and_ban_ips بالتكرار عبر جميع الطلبات المسجلة، وتحديد وحظر عناوين الـ IP المرتبطة بأنشطة غير قانونية.

الخطوة الثالثة: تعريف ما يجعل الطلب غير قانوني

# دالة لمحاكاة التحقق مما إذا كان الطلب غير قانوني
def is_illegal(request):
    # العنصر النائب للمنطق الفعلي للتحقق من الطلبات غير القانونية
    # على سبيل المثال، التحقق من جسم الطلب أو الهدف
    return "illegal" in request['body']

هنا، تقوم is_illegal بالتحقق مما إذا كان جسم الطلب يحتوي على كلمة “illegal”. يمكن توسيع هذا المنطق إلى منطق أكثر تطورًا بناءً على ما يشكل نشاطًا غير قانوني.

الخطوة الرابعة: حظر عناوين الـ IP المحددة

# دالة لحظر قائمة من عناوين الـ IP
def ban_ips(ip_set):
    for ip in ip_set:
        print(f"حظر عنوان الـ IP: {ip}")

بعد تحديد عناوين الـ IP غير القانونية، تقوم دالة ban_ips بحظرها عن طريق طباعة عناوين الـ IP الخاصة بها (أو، في نظام حقيقي، يمكن أن تمنعها).

الخطوة الخامسة: طريقة بديلة للتحقق من عناوين الـ IP وحظرها بناءً على 80٪ من الطلبات غير القانونية

# دالة للتحقق من الطلبات وحظر عناوين الـ IP بناءً على 80٪ من الطلبات غير القانونية
def check_and_ban_ips():
    banned_ips = set()
    illegal_count = 0
    total_requests = 0

    # التكرار عبر جميع الطلبات المسجلة
    for request in request_log:
        total_requests += 1
        if is_illegal(request):
            illegal_count += 1

    # إذا كانت 80٪ أو أكثر من الطلبات غير قانونية، يتم حظر تلك عناوين الـ IP
    if total_requests > 0 and (illegal_count / total_requests) >= 0.8:
        for request in request_log:
            if is_illegal(request):
                banned_ips.add(request['target_ip'])

    # تطبيق الحظر على جميع عناوين الـ IP المحددة
    ban_ips(banned_ips)

تقييم هذه الطريقة البديلة ما إذا كان يجب حظر عنوان الـ IP بناءً على نسبة الطلبات غير القانونية. إذا كانت 80٪ أو أكثر من الطلبات من عنوان الـ IP غير قانونية، يتم حظره.

الخطوة السادسة: التحقق المعزز من الطلبات غير القانونية (على سبيل المثال، اكتشف بروتوكول Shadowsocks وTrojan)

def is_illegal(request):
    # التحقق مما إذا كان الطلب يستخدم بروتوكول Shadowsocks (جسم الطلب يحتوي على بيانات مشابهة للثنائية)
    if request['target_port'] == 443:
        if is_trojan(request):
            return True
    elif is_shadowsocks(request):
        return True
    return False

تقوم دالة is_illegal الآن أيضًا بالتحقق من بروتوكولات محددة مثل Shadowsocks وTrojan:

الخطوة السابعة: مثال على الطلبات القانونية

على سبيل المثال، طلبات مثل GET https://some-domain.xyz/bandwidth بالتأكيد قانونية ولن تؤدي إلى تشغيل آلية الحظر.

الخطوة الثامن: خصائص حركة مرور خادم الوكيل

لخوادم الوكيل خصائص مختلفة جدًا لحركة المرور مقارنةً بالخوادم الطبيعية للويب أو الـ API. يحتاج GFW إلى التمييز بين حركة مرور خادم الويب الطبيعية وحركة مرور خادم الوكيل، والتي يمكن أن تبدو مختلفة تمامًا.

الخطوة التاسعة: نماذج الذكاء الاصطناعي والتعلم الآلي للكشف الذكي

مع التنوع الكبير للطلبات والاستجابات التي تمر عبر الإنترنت، يمكن لـ GFW استخدام نماذج الذكاء الاصطناعي والتعلم الآلي لتحليل أنماط حركة المرور والكشف الذكي عن السلوك غير القانوني. من خلال تدريب النظام على مجموعة متنوعة من أنواع حركة المرور واستخدام تقنيات متقدمة، يمكن أن يحظر أو يرشح حركة المرور بشكل أكثر فعالية بناءً على الأنماط الملاحظة.


تحديث

على الرغم من جهودي، يستمر حظر خادم الوكيل الخاص بي. للتخفيف من ذلك، قمت بتنفيذ حل مؤقت باستخدام ميزة الـ IP المعكوسة من Digital Ocean، والتي تسمح لي بتعيين عنوان الـ IP جديد بسرعة كلما حدث حظر.


تحليل اكتشف VPN في تطبيق ChatGPT لنظام iOS

2024.12.26

اليوم، اكتشفت أن تطبيق ChatGPT لنظام iOS يسمح الآن بتسجيل الدخول باستخدام الـ VPN في الصين. سابقًا، كان يعرض رسالة حظر مثل تلك الموضحة أدناه.

ومع ذلك، اعتبارًا من اليوم، يعمل بشكل جيد مع الـ VPN.

أتذكر أنه عندما تم إصدار تطبيق ChatGPT لنظام iOS لأول مرة، لم يكن استخدامه مع الـ VPN مشكلة. لاحقًا، أصبح اكتشاف الـ VPN أكثر صرامة، مما جعل من الصعب تسجيل الدخول. لحسن الحظ، يبدو أن هذا القيود قد خففت مؤخرًا.

بعد المزيد من الاختبار، وجدت أنه عند استخدام VPN لمنطقة سنغافورة من DigitalOcean، لم أتمكن من الوصول إلى التطبيق. ومع ذلك، عندما استخدمت خدمات VPN من تايوان أو المملكة المتحدة (المقدمة من https://zhs.cloud)، عملت بشكل مثالي.

يبدو أن اكتشف VPN في تطبيق ChatGPT لنظام iOS يعتمد على عناوين الـ IP المحددة. بعض مزودي خدمات السحابة أو بعض عناوين الـ IP محظورة، مما قد يفسر السلوك غير المتسق اعتمادًا على موقع خادم الـ VPN.


Back Donate