« לעמוד הראשי

חדש: רכיב CI לאפליקצית 'המגן' למען שיפור אבטחת המידע שלה

בקצרה: על-מנת לעודד הורדות של אפליקצית 'המגן', בנינו פתרון משלים של Continuous Integration וסריקות קוד למען שיפור אבטחת המידע, הפרטיות וקוד האפליקציה, ואנו גם מזמינים את מפתחי הפרוייקט (וכל המעוניינים) לתרום לזה ולהשתמש בזה באופן חופשי ושוטף.

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

זו אפליקציה חשובה שגם קיבלה את ברכתה של קהילת הקוד הפתוח.

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

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

חשבנו ב- ALM-Toolbox איך נוכל לעזור להגברת האמון באפליקציה ולתרום להגדלת כמות ההורדות – וראינו שאין סריקת קוד אוטומטית של הקוד ובדיקות security.

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

 

המגן אפליקציה

המגן (מקור: אתר משרד הבריאות)

לכן החלטנו להקים פתרון משלים של CI הכולל סריקת קוד ומציאת פרצות אבטחה.

החלטנו להשתמש ב- GitLab , ומהסיבות הבאות:

  • הכלי מאפשר הרצת אוסף נרחב של כלים לסריקת קוד בהיבטי אבטחה ולגילוי vulnerabilities (ובפרט עבור React – ה- framework שבו נכתבה האפליקציה)
  • הואיל וזה קוד פתוח, החלטנו להשתמש בכלי CI שבעצמו מגיע כקוד פתוח
  • השימוש בכל כלי ה- security הינו חינמי לפרוייקטים ציבוריים — כך שגם נוכל לתת לאנשים נוספים להצטרף ולתרום לפרוייקט
  • ניתן לחבר אותו לפרוייקט ב- GitHub (הואיל ולשניהם בסיס משותף של git)
  • ה- CI נגיש בענן כך שנוכל לצרף תורמים נוספים לפרוייקט בקלות וללא צורך להתקין כלים נוספים
  • אנחנו מכירים את הכלי היטב (מפרוייקטים קודמים שביצענו וכן הואיל ואנחנו נציגי היצרן בארץ)

בימים האחרונים השקענו זמן בהבנת 'המגן' ובניית פתרון CI (אינטגרציה רציפה) שמותאם לאפליקציה ולשפות הקוד בה נכתבה ונבנתה.

אז מה הפעלנו?

  1. סריקת קוד סטטית (SAST) על קוד האפליקציה
  2. סריקת Dependencies לאיתור שימוש בחבילות תוכנה בקוד פתוח שעלולות להיות עם נקודות חולשה ופרצות אבטחה
  3. דו"חות Security (עם דשבורד נוח לשימוש)
  4. סריקת קונטיינרים (עבור ה- CI)
  5. חיבור בין הפרוייקט ב- GitHub לבין ה- CI , כך שירוץ pipeline חדש בכל פעם שנעשה push לקוד האפליקציה (לרוב בהוספת קוד חדש או בעדכון הקוד)
  6. סריקת "Code Quality" לזיהוי שגיאות תחביר ושגיאות לוגיות

(אפשרי גם היה להריץ בדיקות DAST ובדיקות license אך השארנו זאת בצד כרגע)

חיברנו את זה ל GitHub הואיל והפרוייקט ממשיך להתעדכן שם – למעשה התחברנו ישירות ל- git repo .

למעשה ניתן לומר שהפכנו גם את ה-CI (ופן ה- DevOps) של האפליקציה לקוד פתוח.

אז מה הממצאים שמצאנו?

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

בהרצת CI pipeline שביצענו במוצ"ש 28.03.2020

gitlab ci pipeline

התגלו הממצאים הבאים:

25 vulnerabilities ברמת סיכון 'Medium'

115 ברמת סיכון נמוכה:

gitlab security dashboard

Security dashboard: 25 medium vulnerabilities + 115 low vulnerabilities

 

התגלו 7 נקודות תורפה (vulnerabilities) בהרצת dependency scanning :

gitlab dependency scanning

 

התגלו כ- 10 vulnerabilities בהרצת בדיקת קוד סטטי על קוד האפליקציה:

gitlab sast

התגלו 252 נושאים של code quality (חלקן חשובות, חלקן קצת פחות):

gitlab code quality

מסיבות של אבטחת מידע אנו מעדיפים כמובן לא לחשוף את פרטי כל תוצאות הריצה כאן באופן פומבי, ומזמינים את מפתחי הפרוייקט – וכל מי שמעוניין לתרום -לפנות אלינו ואנו ניצור חשבון שיאפשר להם לצפות בהכל ולפרטי פרטים (כולל מידע איזו פירצה יש באיזו קובץ ועל איזו שורת קוד ; המלצות כיצד לתקן פירצות שהתגלו ועוד) – וכן להריץ את הבדיקות בכל עת שירצו – וזאת למען שיפור מתמיד של האפליקציה. לפניה אלינו:  hamagen@almtoolbox.com

 

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

ה- CI שבנינו (עם ה-pipelines) לטובת האפליקציה זמינים בענן הציבורי של GitLab וניתן לצפות בהם כאן:

https://gitlab.com/almtoolbox/hamagen-ci/pipelines

 

הצעות לשיפור יתקבלו בברכה במייל hamagen@almtoolbox.com .

סרטון שמסכם את הנושא בצורה ויזואלית – כאן:

תודות על הקמת הסביבה וסיוע: אלכס קרנובסקי ונחמיה ליטרט מהצוות שלנו, Xiaogang Wen מחברת GitLab ואלעד כהן מ- GoCode .

 

מעוניינים לקבל עדכון כאשר נעדכן את המאמר? השאירו כאן מייל

* אימייל:

קישורים רלבנטים: