מודול לבדיקת אבטחה של ספריות צד לקוח של אתר

כלי חינמי ופשוט לבדיקת חולשות באתרים שכדאי להכיר

רוב האתרים בעולם משתמשים בספריות צד לקוח של ג'אווהסקריפט. בין אם מדובר ב-jQuery הותיקה והפופולרית או בין אם מדובר בפריימוורק כמו אנגולר או בספריות שהן בין לבין -axios, jQuery UI וכו'. מטבע הדברים, הספריות האלו מתיישנות ומתגלים בהן חורי אבטחה שונים, מפתחי הספריות יוצאים עם גרסאות חדשות אך לא תמיד אנו מקפידים או זוכרים לעדכן. לפעמים מערכת האתר שלנו מכשילה אותנו – כך למשל וורדפרס באה עם גרסה ישנה של jQuery.

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

אם יש לכם Node.js מותקן במחשב, ואמור להיות לכם. (ואם לא, קל להתקין אותו). הכנסו אל הטרמינל שלכם, בחלונות או במק/לינוקס והקלידו:

npx is-website-vulnerable HTTPS://MY-SITE.COM

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

npx is-website-vulnerable https://internet-israel.com
✔ Set up completed in 1.16 seconds!
✔ Auditing completed in 5.30 seconds!

  Website: https://internet-israel.com/
  ○ No JavaScript libraries detected with publicly known security vulnerabilities

  [0] Total vulnerabilities
  [5100.73ms] execution time

אם יש בעיות באתר שלכם – כלומר אתם משתמשים בספרית ג'אווהסקריפט שיש בה חולשות ידועות, תראו את התוצאה הבאה:

npx is-website-vulnerable https://www.leumi.co.il
✔ Set up completed in 0.72 seconds!
✔ Auditing completed in 7.93 seconds!

  Website: https://www.leumi.co.il/

    ⎡ ✖ jQuery@1.9.1
    ⎜ ■■■  2  vulnerabilities
    ⎣ ▶︎ https://snyk.io/vuln/npm:jquery?lh=1.9.1

  [2] Total vulnerabilities
  [7715.06ms] execution time
אתר אקראי לחלוטין שהאבטחה שלו לא מאוד חשובה, כנראה. לפחות לא כמו הבלוג שלי

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

כיוון שמדובר בכלי שרץ בשורת הפקודה, אפשר גם להריץ אותו כחלק מבילד או תהליך שרץ כל תקופה מסוימת. הוא יעבוד יפה עם כל כלי דיווח שהם כי הוא יכול להוציא פלט ב-JSON:

npx is-website-vulnerable https://internet-israel.com –json

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

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

פוסטים נוספים שכדאי לקרוא

ספריות ומודולים

מציאת PII באמצעות למידת מכונה

כך תגנו על משתמשים שלכם שמעלים מידע אישי רגיש כמו תעודות זהות באמצעות שירות אמאזוני.

פיתוח ב-JavaScript

Axios interceptors

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

גלילה לראש העמוד