DEV Community

Cover image for מה זה Authenticated Origin Pulls ואיך זה מגן על האתר שלי
Hello Web!
Hello Web!

Posted on

מה זה Authenticated Origin Pulls ואיך זה מגן על האתר שלי

‫Cloudflare היא חברת אינטרנט ענקית, ש-20% מהאינטרנט "עובר דרכה". הם הפכו פופולריים במיוחד מכיוון שהם מספקים שירותים חינמיים שבדרך כלל עלו אלפי דולרים. הכוונה כמובן להגנה מהתקפות מבוזרות על האתרים שלכם, וגם איחסון (cache) קבצים סטאטיים על השרתים שלהם, שמורידים את העומס על האתר שלכם. מי לא ירצה, ובחינם?

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

‫ב2019 החברה הונפקה אז ייתכן שהלחץ להרוויח יגדל עם הזמן, אבל בכל מקרה, לא על זה רציתי לדבר איתכם היום...

‫Cloudflare מגינה על האתר שלכם על ידי כך שכל התקשורת עוברת דרכם, והלקוחות קצה לא מדברים ישירות עם הIP של האתר שלכם. לכן יש חשיבות למנוע ממי שלא צריך, לדעת מה הכתובת IP האמיתית של האתר שלכם. הבעיה היא שהיום להריץ חיפוש על כל כתובות הIP שיש זה כבר לא מדע בדיוני, ורוב הסיכויים שכבר עכשיו כל כמה שניות מישהו מנסה להתחבר לשרת שלכם, בשיטת מצליח. בפרויקט שלנו, אתר הכרויות, אבטחה האתר המידע של הלקוחות היא בחשיבות עליונה, לכן אנו תמיד עוקבים אחר הפתרונות שהספקים ממליצים ליישם.

‫הגישה הנאיבית - לחסום את כל מי שלא מ Cloudflare

‫זאת אופציה דיי פופולרית, וניתן לקבל את כל הכתובות של CF כאן: https://www.cloudflare.com/ips

‫אפשר לעשות את החסימה ברמת הלינוקס דרך iptables או ufw, או ברמת הפרוקסי (nginx), אבל עדיף להשתמש בחומת אש שהיום כל שירות ענן מציע ולחסוך מהשרת שלכם עבודה מיותרת.

‫הפתרון הזה אומנם יאפשר רק לרשת של CF לגשת לאתר שלכם, אבל יש איתו בעיה.

‫מאחר שבעצם כל אחד יכול להרשם ולהשתמש בשירותים של CF. שום דבר לא ימנע ממישהו לכוון את הדומיין שהוא קנה לIP מסוים דרך CF, אפילו אם זה IP לא שלו, ולראות האם יש תגובה. וגם יש את שאר השירותים הנוספים, כמו workers, tunnels וכו', כולם יראו לאתר שלכם כאילו הם באים מהרשת הפנימית של CF.

‫לכן כדאי בנוסף להגדיר שהאתר שלכם לא יגיב אם הHost לא תואם לאתר שלכם, או למשל לבדוק האם יש את הההאדר של cf-worker וכו'.

‫אבל יש פתרון יותר טוב.

‫Authenticated Origin Pulls - מה זה

‫הפיצר הזה מאפשר לנו בעזרת mTLS לוודא שאנחנו מדברים עם ה"חשבון" שלנו ברשת הפנימית של CF.

‫כולנו כבר מכירים TLS, הפרוטוקול הצפנה שמאבטח את האתרים של כולנו, נותן את אייקון המנעול. ומאפשר לנו לוודא שאנחנו מדברים עם האתר הנכון.

‫mTLS מוסיף שלב נוסף, בדיקה נוספת, בשביל לוודא גם את הצד השני.

‫זאת אומרת שצריך זוג מפתחות נוסף - פרטי ופומבי, את הפומבי במקרה הזה אנחנו משאירים לנו, ואת הפרטי נותנים לCF. המפתח יכול להיות משויך ברמת Hostname ספציפי, או לכל הZONE של הדומיין שלנו.

‫ככה אם מישהו חיצוני ינסה לתקשר ישירות עם הIP שלנו, בלי קשר אם הוא מהרשת הפנימית או לא, הוא לא יצליח להוכיח את הזהות שלו.

‫החסרון היחיד כרגע הוא שאין אפשרות להפעיל את האפשרות הזאת דרך הממשק באתר, וצריך לבצע מספר בקשות דרך הAPI.

‫בנוסף הCertificate צריך להיות חתום עם CA - אפשרי CA שיצרנו לבד.

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

Top comments (0)