כשבונים שירות משלוחים, קל להתמקד במה שהלקוחות רואים: הזמנה מהירה, מעקב ברור ואישור מסירה שמגיע בזמן. אבל מאחורי כל הפעולות האלה נמצא מידע שצריך להתייחס אליו באחריות.
ב-EdenMish החלטנו לעצור ולבחון את המערכת מנקודת מבט אחרת. לא רק האם היא עובדת, אלא גם מה עלול להשתבש, איזה מידע עובר בין החלקים השונים ואיך אפשר לצמצם סיכונים לפני שהם הופכים לבעיה אמיתית.
המידע שמאחורי המשלוח
תהליך משלוח עשוי לכלול כתובת איסוף ומסירה, פרטי קשר, סטטוס המשלוח, מעקב במהלך הדרך ואישור מסירה, כולל הוכחת מסירה דיגיטלית (POD). המידע הזה דרוש כדי להשלים את השירות, אבל הוא לא צריך להיות חשוף מעבר למי שבאמת זקוק לו.
לכן התחלנו במיפוי של זרימת המידע: איפה הוא נכנס למערכת, מי יכול לראות אותו, היכן הוא נשמר ואילו פעולות מתבצעות כאשר משלוח מתעדכן או מסתיים.
מה בדקנו
הבדיקה כללה את מנגנוני ההרשאה, הגישה למסלולי המערכת, טיפול בקלט שמגיע מהמשתמשים, הגנה על פעולות רגישות והתנהגות המערכת במצבים לא רגילים. בדקנו גם שהודעות שגיאה ולוגים לא חושפים מידע שאינו נחוץ.
לא הסתפקנו בסריקה אוטומטית. עברנו ידנית על אזורים רגישים בקוד, עקבנו אחרי תרחישים מתחילתם ועד סופם והרצנו בדיקות חוזרות כדי לוודא ששינוי במקום אחד לא יוצר בעיה במקום אחר.
מה עושים כשמוצאים משהו
מטרתה של בדיקת אבטחה אינה להצהיר שהכול מושלם. המטרה היא למצוא נקודות שדורשות שיפור, להבין את המשמעות שלהן ולטפל בהן באופן מסודר.
במהלך הבדיקה זיהינו נושאים שדרשו תיקון וחיזוק. טיפלנו בהם לפני שסיימנו את שלב העבודה, ולאחר מכן חזרנו על התרחישים הרלוונטיים. מבחינתנו, תיקון אינו מסתיים ברגע שהקוד משתנה. הוא מסתיים רק לאחר שבדקנו שהבעיה אכן נפתרה וששאר המערכת ממשיכה לעבוד כמצופה.
בדיקה נוספת לאחר התיקונים
לאחר סבב התיקונים ביצענו בדיקה חוזרת בסביבה מקומית ומבודדת. השתמשנו בעותק מצומצם של הקוד, ללא מידע של לקוחות וללא הרשאה לבדוק את האתר הפעיל, את Shopify, ספקי תשלום או שירותים חיצוניים אחרים.
ההפרדה הזו חשובה. בדיקת אבטחה אחראית צריכה להיות מוגדרת מראש, עם גבולות ברורים, ולא להפעיל עומס או ניסיונות חדירה על מערכות פעילות ללא צורך והרשאה מפורשת.
קרדיט לכלי שבו השתמשנו
אחד הכלים ששימשו אותנו בבדיקה החוזרת היה Strix, פרויקט קוד פתוח לבדיקות אבטחה בסיוע AI, המתוחזק על ידי צוות Strix. תודה למפתחים ולמתחזקים של הפרויקט על כך שהעמידו אותו לרשות הקהילה.
Strix היה כלי אחד בתוך תהליך רחב יותר שכלל מעבר ידני על הקוד, מעקב אחר זרימת המידע ובדיקות רגרסיה. כלי אוטומטי יכול לעזור לזהות כיוונים חשובים, אבל הוא אינו מחליף שיקול דעת, הבנת המוצר ואחריות אנושית.
מה זה אומר עבור הלקוחות שלנו
אין מערכת שאפשר להבטיח שלעולם לא תותקף. הבטחה כזו לא תהיה רצינית. מה שאנחנו כן יכולים לעשות הוא לתכנן בזהירות, לצמצם גישה למידע, לבדוק שינויים, לתקן ממצאים ולהמשיך לעקוב גם אחרי שהמערכת כבר פעילה.
אבטחה מבחינתנו אינה תווית שמוסיפים בסוף הפרויקט. היא חלק מהדרך שבה EdenMish נבנית ומשתפרת.
למי שרוצה לקרוא על התהליך מהצד הטכני ומנקודת המבט של מי שבנה ובדק את המערכת, פרסמנו גם סקירה מפורטת באתר של Tal Agmon.