הפניה / אבטחה ופרויקט
אבטחה וטיפול בנתונים
מודל איומים, מודל גישה, מידע סודי במאגר, חשיפה ברשת, ייבוא הפעלות וכיצד לדווח על פגיעות אבטחה.
TgWitness פועל על המחשב או השרת שלכם. לחיבורי חשבונות, לתחזוקת רשימת פרוקסי ציבורית ולשירותים חיצוניים אופציונליים יש מדיניות ניתוב מפורשת. התראות, חותמות זמן, עותקים מחוץ לאתר ועד מוגדרים בנפרד. דף זה מפרט מה מוגן, כיצד, ומה נותר להחלטת המפעיל.
| תחום | בקיצור |
|---|---|
| גישה | מפתח מנהל בתוספת גישה מוגבלת לחשבונות/צ'אטים, שבע רמות הרשאה ומפגשים הניתנים לביטול; localhost כברירת מחדל |
| סודות במנוחה | ההגדרות של ההפעלה, זוג ה-API, מפתח החתימה והגדרות ה-proxy מוצפנות באמצעות Fernet |
| הודעות ומדיה | מאוחסן ללא הצפנה: יש להשתמש בהצפנת דיסק ובהגבלות גישה קפדניות |
| יושרה | שרשרת חשיש SHA-256 וחתימת Ed25519 על כל רשומה |
| לא נכלל | מנהל מערכת, אסימון לוח בקרה שהודלף, שלמות התיעוד |
לדיווחים על פגיעויות, ראו את מדיניות האבטחה.
מודל גישה#
אסימון הפאנל הראשי מעניק שליטה מלאה. משתמשים אחרים יכולים לקבל גישה מוגבלת: סביבות עבודה וצ'אטים נבחרים, הרשאות, תוקף, הגבלות IP, מגבלות כניסה ומפגשים הניתנים לביטול. גישה המוגבלת לצ'אט אינה מאפשרת לבצע פעולות בכל סביבת העבודה, גם אם ההרשאה מסומנת. סביבות העבודה חולקות תהליך ואינן מבודדות את הנתונים מהמנהל המארח.
כברירת מחדל, הפאנל מאזין ב-localhost. כניסה דרך הדפדפן מחליפה אסימון גישה בתעודת זהות של הפעלה; הדפדפן שולח אותה כאסימון נושא. היא נשמרת ב-sessionStorage ולא בעוגיית אימות. נעילה/יציאה מוחקת את הפעלת הדפדפן. סגירת הדפדפן או סיום הפעלה אינם עוצרים את האיסוף.
אסימונים שהונפקו ואישורי גישה למפגשים נשמרים כ-hashes בכספת המוצפנת. ביטול האסימון מסיים את המפגשים הקשורים אליו; שינויים בהרשאות משפיעים על בקשות עתידיות. לא ניתן לבטל קבצים שהורדו. המנהל יכול להגביל גם את מפגשי הדפדפן שלו עצמו, אך סקריפטים המשתמשים ישירות באסימון של לוח הבקרה הראשי שומרים על גישה מלאה ועוקפים את מגבלות מפגשי הדפדפן הללו.
אימות כושל מוגבל לפי קצב לפי כתובת הלקוח. הגבלות ה-IP משתמשות בכתובת שנראית על ידי היישום; יש לבדוק את התנהגות ה-reverse-proxy לפני שמסתמכים עליה. אמצעי הזיהוי של Witness נשארים נפרדים, כנקודת ביקורת לקריאה בלבד או כאמצעי זיהוי לבדיקת תקינות.
גישה לדמו#
/api/demo-access הוא בוטסטראפ שלא אומת בכוונה, המיועד להדגמה סינתטית מבודדת
שהופעלה במפורש. הוא מנפיק יכולת נפרדת לתקופת חיי התהליך,
לעולם לא את אסימון הפאנל האמיתי או עקיפת TGWITNESS_TOKEN. ההנפקה והשימוש דורשים
עמית לולאה אחורית (loopback) ומארח, ללא כותרות מועברות וללא בקשות בין-מקורות.
סביבות עבודה נוספות או הפעלה מורשית מבטלות נתיב זה. סביבות עבודה פעילות לעולם אינן מנפיקות
את היכולת. ההדגמה אינה יכולה לחבר חשבונות או לשנות הגדרות איסוף.
תוכן הלוח וייצוא נתונים#
הפאנל אינו משתמש בגופנים חיצוניים, בניתוח נתונים, במשאבי CDN או במדיה מרוחקת משובצת. טקסט שמקורו ב-Telegram מוחדר כטקסט, ולא כ-HTML. קבצים מצורפים שהורדו מוצגים כקבצים בינאריים. ייצוא בפורמט JSONL משמר את המחרוזות המקוריות; HTML מבצע החלפה של תווים; לתאי CSV שעלולים להפוך לנוסחאות מתווסף קידומת של גרש.
הייצוא אינו כולל סודות אימות וחתימה, אך מכיל במכוון מטא-נתוני מקור שנאספו, מזהים, וייתכן שגם תוכן אישי או רגיש. במטא-נתוני המקור הגולמיים עשויים להופיע חשישים של גישה ל-Telegram והפניות לקבצים.
סודות במנוחה#
אמצעי הזיהוי של ממשק ה-API של טלגרם, StringSession והמפתח הפרטי Ed25519 מוצפנים באמצעות Fernet. כברירת מחדל, המפתח מאוחסן באותה ספריית נתונים מוגנת. דבר זה מצמצם חשיפה מקרית של טקסט רגיל; אין מדובר בהגנה מפני תוקף שיכול לקרוא את הספרייה כולה. תוכן ההודעות והמדיה אינם מוצפנים על ידי TgWitness. יש להשתמש בהצפנת דיסק ובהרשאות מערכת הפעלה מגבילות. קבצי המפתח הפרטי של Unix נוצרים במצב 0600; ספריות נתונים שנוצרו לאחרונה משתמשות במצב 0700. הרשאות הספריות הקיימות אינן משתנות. Windows יורש את רשימות ה-ACL של הספריות: הגבל אותן לחשבון השירות ולמנהלים מורשים.
מפתח ראשי חיצוני#
עבור ספריית נתונים חדשה, TGWITNESS_VAULT_KEY_FILE יכול לספק מפתח ראשי אקראי חיצוני. מפתח ראשי. HKDF-SHA256 ומלח אקראי נפרד מפיקים מפתח Fernet שונה עבור כל סביבת עבודה. יש לשמור את הקובץ vault.external.json לצורך שחזור. מפתחות ראשיים חסרים או שגויים יגרמו לכישלון. כספות מקומיות קיימות אינן מועברות באופן אוטומטי. התהליך הפועל יכול לגשת למפתח; אין מדובר בבידוד HSM. הלוח מדווח על המצב הנבחר ומציין במפורש כי אחסון הודעות/מדיה אינו מוצפן על ידי היישום. ראו חיבור, פרוקסי והגנת נתונים לקבלת מודל האיומים המלא.
פרוקסי ונתיבי רשת#
תצורת ה-Proxy מוצפנת בכספת. סיסמאות וסודות MTProxy אינם מוחזרים על ידי ה-API ואינם נכתבים ברשומות הראיות. כל סביבת עבודה בוחרת את נתיב ה-Telegram שלה ואת מצב ה-IP.
מצב "הסתרת IP" מסרב לגישה ישירה ל-Telegram כגיבוי ודורש פרוקסי עבור בקשות HTTP חיצוניות. מצב הגיבוי שנבחר במפורש מאפשר גישה ישירה ל-Telegram לאחר עיכוב; מצב מנהרה/VPN מאפשר נתיבים ישירים. בחירת מצב "מנהרה" אינה מתקינה או מאמתת VPN. הגדרות אלה אינן שולטות בכל התעבורה במחשב, בדפדפנים, במנהלי החבילות או בפתרון ה-DNS של שרת פרוקסי מקומי.
MTProxy מעביר רק תעבורת טלגרם. בקשות חיצוניות יכולות להשתמש ב- פרוקסי SOCKS5/HTTP נפרד, בנתיב SOCKS5/HTTP של סביבת העבודה, או בנתיב ישיר מותר; ניתן גם להשבית אותן. ל-Witness העצמאי יש הגדרות העברה משלו. אימות SOCKS5/HTTP CONNECT רגיל אינו מוצפן על ידי פרוטוקולי הפרוקסי עצמם. סודות TLS מזויפים של MTProxy אינם נתמכים.
כניסה וייבוא נתוני הפעלה#
קבצי .tgwitness-session שהומרו מכילים סוד אימות בטקסט רגיל עד לטעונם ואחסונם בכספת. ממשק ה-CLI המקוון מקבל סכמות Telethon שנבדקו. ייבוא הפאנל מקבל בנוסף Pyrogram SQLite, ZIP של TData מודרני לחשבון יחיד, וקבצי JSON מתועדים. הוא מאומת, מוגבל לארבעה קבצים / 8 MiB, ומעבד העלאות בזיכרון ללא חילוץ ארכיונים או שמירת קבצים מקוריים. אישורי הכניסה המנורמלים מוחזרים רק לדפדפן המאושר המבקש; הם נשמרים בכספת המוצפנת לאחר אימות מוצלח ב-Telegram. יש להגן על הקבצים המקוריים והקבצים שהומרו, ולמנוע מלקוחות מקבילים לשכפל אישור.
עיבוד הנתונים מאמת סכומי ביקורת של קונטיינרים, חשישים של פענוח מקומי ואורכי מבנה. קוד גישה מקומי לשולחן העבודה שסופק משמש באופן זמני ואינו נשמר. מנתח תחבירי מוגבל זה אינו קובע שכל גרסת שולחן עבודה תואמת. תמונות QR נוצרות באופן מקומי, מכילות אסימוני כניסה לטלגרם בעלי תוקף קצר, ו לעולם אינן נשלחות לשירות עיבוד חיצוני. נעילה, מעבר בין סביבות עבודה, כניסה חדשה, ושינויי מסלול מבטלים ניסיונות QR הממתינים לאישור. טעינה מחדש/סגירת כרטיסייה עלולה להשאיר ניסיון הממתין לאישור עד לפקיעת תוקפו. כניסה מוצלחת באמצעות QR עדיין מחייבת קישור חשבון. גופי API רגילים נשארים מוגבלים ל-16 KiB; מסלול הייבוא המאומת מקבל עד 12 MiB של JSON מקודד, תוך אכיפה נפרדת של המגבלה הקטנה יותר על קובץ מפוענח.
קודי כניסה וסיסמאות לאימות דו-שלבי ב-Telegram אינם נשמרים. מצב מספר הטלפון/ה-hash של הקוד נשמר בזיכרון במהלך תהליך האימות. הפעלות ב-Telegram מעניקות גישה לחשבון; לעולם אל תעלו ספריית נתונים, הפעלה, אסימון, מפתח כספת או מפתח חתימה פרטי ל-GitHub.
יומנים והעברה#
תגובת אימות ה-API המוגדרת כברירת מחדל הוחלפה כך שלא תחזור על ערכי האישורים. רישום הגישה ליישום מושבת. אין להגדיר פרוקסי הפוך כדי לרשום כותרות אימות או גופי בקשות. פרוטוקול HTTP מעביר אסימונים ופרטי התחברות בטקסט גלוי: יש להשתמש ב-HTTPS או במנהרת SSH בכל פעם שיוצאים מ-localhost.
מגבלות שלמות#
שרשרת ההאש, טריגרים של מסד הנתונים והחתימות מזהים שינויים מסוימים; הם אינם מונעים ממנהל מערכת מקומי לשכתב את היומן ולחתום עליו מחדש. יש לשמור נקודות ביקורת חתומות ואת טביעת האצבע של המפתח הציבורי במערכת נפרדת. מצב הראיות והעותק מחוץ לאתר (שניהם כבויים כברירת מחדל) שולחים חתימות נקודת ביקורת לשירותי תאריכי זמן ועותקים מוצפנים לאחסון תואם S3; ראו את פורמט הראיות. יומני שקיפות, חתימה מגובה ב-HSM ואישור רשמי של שרשרת האחריות אינם מיושמים.
אם אתם חושדים בבעיה#
יש לשמור על ספריית הנתונים המקורית ולהשתמש בעותק נפרד לצורך ניתוח. אין לכלול נתוני טלגרם פרטיים או פרטי הזדהות בפרסום פומבי. לא נטען כי קיימת הסמכת אבטחה עצמאית כלשהי.