מראה נגד צנזורה וכלי אבטחה

📡 ערכת הכלים של Taylor Wessing לטיפול בחשיפת מידע

סוויט אוניברסלי לבדיקה פורנזית ופירוק שכבות, לחשיפה ולחשיפת ערימות PDF ויזואליות בלבד של Taylor Wessing LLP ו-Valve Corporation.

עמידות בפני צנזורה

ערכת הכלי זו וליקויי המקרה הקשורים אליה ממוירים כאן לצמיתות. כל איומים משפטיים, בקשות להסרה לפי DMCA, או ניסיונות להרתיע על ידי טילור וסינג LLP או חברת Valve יתפס כהוכחה ציבורית ובלתי ניתנת להכחשה לניסיון להטיל צנזורה על מחקר אבטחה ולסוות חוסר כשירות טכני.

Forensic PDF analysis
בדיקת פורנזית של קובץ PDF: יצירת מחדש ובחינת שכבות הציור במסמך, כדי להסיר שכבות וקטוריות מזויפות בצורת קופסה שחורה ולחלץ טקסט גולמי ללא חסימות.

🔍 סיכום מנהלים

ה בדקן ומפרק שכבות אוניברסלי ל-PDF הוא סוויט מקצועי, המבוסס בעיקר על עבודה לא מקוונת (offline-first), לבדיקות פורנזיות ולפירוק שכבות, שפותח במיוחד לזיהוי, אימות וניקוי חולשות מסתירות (redaction) ב-PDF המבוססות על תצוגה ויזואלית בלבד. ערכת הכלי הזו משמשת ככלי פתוח (open-source) לחוקרי אבטחה, מנהלי הגנת מידע ובוחני עמידה, לאימות שלמות המבנה של מסמכים לפני חשיפתם לציבור.

⚖️ אסימטריה טכנית

כלי האודיט הזה נבנה כדי לטפל בחוסר איזון קריטי בכוח בתהליכי עיבוד נתונים תאגידיים. כאשר קונצרנים עצומים (כגון חברת Valve) מיוצגים על ידי משרדי עורכי דין מובילים (כגון טילור וסינג LLP), כל חשיפת נתונים שיטתית אינה פוגעת בחברה או בעורכי הדין היקרים שלה – היא פוגעת בצורה קטסטרופלית בפרטיות של יריבים (הנפגעים האישיים, משתמשי צד שלישי וקטינים, שנתונים אישיים רגישים שלהם נחשפו עקב רשלנות משפטית וטכנית). ערכת הכלים זו מאפשרת לפרטים ולבוחנים עצמאיים לאמת את בטיחות הנתונים ולהחזיר אחריות לגורמים תאגידיים.

📊 מחקר מקרה: דליפת ה-GDPR של Taylor Wessing / Valve

במהלך עיבוד בקשות גישה של בעלי זכויות (SARs) לפי סעיף 15 לרגולציית GDPR הנוגעות לנתוני משתמשי Steam, זוהתה חולשה אבטחתית קריטית במסמכים שעובדו ונשלחו על ידי יועץ משפטי חיצוני טילור וסינג LLP בשם חברת Valve.

ניתוח תקלות טכניות

במקום לבצע סניטציה קבועה של מערכות התווים הגולמיים בתוך זרמי התוכן של קובץ ה-PDF, נעשה שימוש בצינור ייצור PDF אוטומטי ומותאם אישית (המבוסס Aspose.PDF עבור .NET) הופעל. מערכת זו שאלה באופן תוכנתי את קואורדינטות השדות הרגישים וציירה צורות וקטור שחורות מלאות (באמצעות קבצי PDF re וגם f/F/b/B אופרטורים) מעל הטקסט.

מכיוון שכשכבות איור ויזואליות אינן משנות או הורסות את מערכי הטקסט הגולמיים התחתונים, אלפי רשומות פרטיות שלא עברו חסימה – כולל פרטי חשבון, פרטי התחברות, כתובות דוא"ל, יומני אבטחה ונתונים שאינם אנונימיים של קטינים – נותרו שלמים לחלוטין, ניתן להעתקתם ולהחלצתם מהקבצים שהועברו.

📂 תעודה א': תכתובת שנחשפה עם ד"ר פטריק צורהיידי

להלן התגובה המדויקת שהתקבלה מ ד"ר פטריק צורהיידי (שותף שכיר ב-Taylor Wessing LLP) לאחר ש-PhishDestroy הודיעה רשמית למשרד על כישלון הסתרת מידע ב-PDF ועל הדליפה העוקבת של נתוני משתמשי Steam. במקום להפעיל הודעת הפרת מידע לפי סעיף 33 ל-GDPR, הוא בחר לכתוב את הדברים הבאים:

שלום צוות PhishDestroy,

תודה רבה על ההודעה שלך, שמתורגמת לכאורה אך בכל זאת מהנה. על איזו תקשורת "עם רדיפה פלילית" עם צוות PhishDestroy אתה מתייחס? אני בטוח שלא התקשרתי אף פעם בעבר עם PhishDestroy באף צורה. אנא העבר את התקשורת המדוברת, כדי להבין על מה מדובר בכלל.

קשה מאוד, אם לא בלתי אפשרי, להבין את תוכן מכתבכם. להבהרה: פטור מאחריות (Disclaimer), כפי שמופיע בתחתית מכתבכם, המציין מה据 נטען שלא נעשה ולא נועד, אינו בעל משמעות כלל אם הפעולות בפועל סותרות אותו.

פטרק זורהיידי

🔍 ניתוח PhishDestroy:

  • הודעה מרתקת מומחה יקר ל"חוק טכנולוגיות מידע" כינה "מעניין" הודעה פורנזית על דליפת נתוני GDPR עצומה שהכילה חשפת חשבונות Steam של קטינים.
  • קשה מאוד או בלתי אפשרי לעקוב אחריו ספקנו לו את ערכי ההקסדצימלי המדויקים, את מטא-הנתונים של קובץ ה-PDF שלו, את חותמות הזמן של צינור העיבוד (batch pipeline) באורך 36 שניות, ואת Aspose 20.8 גרסה שגרמה לדליפה. לכאורה, מדדי IT הם "קשים מדי לעקוב" עבור דוקטור למשפט IT.

🛠️ יכולות רב-כלים

סוּיט זה מציע שלושה מצבים משלימים, המבוצעים כולם בצד הלקוח, לניתוח ולפירוק של הסתרות ויזואליות מזויפות:

  • 📡 מצב 1: סורק רנטגן (PDF.js): מציג את תצוגות ה-PDF החזותיות, אך מושך את תוויות הטקסט הבסיסיים שלא עברו חסימה בזמן אמת. אתה רואה את התיבה השחורה, אך קורא את הסוד מיד.
  • ✂️ מצב 2: מפריד שכבות (PDF-Lib): סניטיזציה בדרגת זרם כירורגית. מחליפה פיזית פקודות ציור ויזואליות מלבניות (re f, re F) עם n אופרטור (no-paint), מחיקת פסות השחורות.
  • 🔎 מצב 3: ביקורת התנגשויות (פריסת פיץ): מסמן טקסטים וגרפיקות חופפים כדי ליצור רשימות דליפות המאוספות אוטומטית.

💻 שימוש ב־CLI (decensor.py)

# 1. Decompose PDF to raw text layers (Strips all drawings, lines, and masks globally)
python decensor.py -i compromised.pdf -d -o naked_document.pdf

# 2. Extract and save all text hidden under black visual shapes to a leaks text report
python decensor.py -i compromised.pdf -e verified_leaks.txt

# 3. List page-by-page structural element counts
python decensor.py -i compromised.pdf -l

🔍 מנקה זרמי Python ליבה

import re, fitz

def strip_black_bars_global(input_path, output_path):
    doc = fitz.open(input_path)
    for xref in range(1, doc.xref_length()):
        if not doc.is_stream(xref):
            continue
        try:
            obj_dict = doc.xref_object(xref)
            if any(m in obj_dict for m in ["/Type /Font", "/Subtype /Image", "/Type /Halftone"]):
                continue
                
            stream_bytes = doc.xref_stream(xref)
            text = stream_bytes.decode('latin-1')
            
            # Swap rectangular painting operators with no-fill 're n', preserving newlines
            modified_text, count = re.subn(
                r'\bre\s+([fFbB]\*?)(?=\s|$)',
                lambda m: f"re{m.group(0)[2:-len(m.group(1))]}n",
                text
            )
            if count > 0:
                doc.update_stream(xref, modified_text.encode('latin-1'))
        except Exception:
            continue
    doc.save(output_path, garbage=4, deflate=True, clean=True)
    doc.close()