הגנה על API Keys

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

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

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

לפני שנצלול יחד לעומק הדברים ובכדי להבין ולדבר בשפה משותפת, ארצה להראות לך איך נראים API Keys במערכות הענן השונות, איך הדברים באים לידי ביטוי בפרקטיקה על ידי דוגמא ובה קישרתי את מערכת ניהול תחנות הקצה של הארגון (במקרה שלנו, מוצר הCarbon Black של VMWare) למערכת SIEM בענן (מוצר ה- Sentinel Microsoft ב-Azure) לניטור הפעולות החשודות ברשת ממקור יחיד.
מבט על מתוך ה Function App שב Azure Sentinel:

*לחץ על התמונה להגדלה

כאמור, בדוגמא הנוכחית בקישוריות ה-Carbon Black ל-Sentinel בענן, יצרנו Function App המכיל את פרטי הקישוריות, ובתוכם, פרטי המפתחות (API Keys) המוחלפים בין שתי המערכות הללו לצורך קישוריות ישירה לדיווח והעברת נתונים עפ"י הנדרש והמוגדר.
ניתן לראות כי מפתחות ה-API סונכרנו לקשר בין ה-Carbon Black ל-Sentinel.
שימו לב שכרגע המפתחות מאוחסנים בסביבת ה-Azure תחת ה-Tenant של החברה ללא מנגנוני הגנה ייחודיים וכי לכל מי שיש הרשאות קריאה מלאות על המוצר, יוכל לראות ולהעתיק את המפתחות ולהשתמש בהם כאוות נפשו.

נראה עתה, את הצד השני של המטבע, מסך ה-API Keys ב-Carbon Black אשר מקשר אותו אל הSentinel, לשליחה של מיידעים מהמערכת לתוך מערך SIEM מרכזי.
במבט על הCarbon Black:

*לחץ על התמונה להגדלה

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

*לחץ על התמונה להגדלה

אז אחרי שראינו איך הדברים באים לידי ביטוי בפועל, אפשר לראות כי מדובר בפתרון פשוט, יעיל וחשוב, אך מה בדבר אבטחת אותם המפתחות? מה עם אבטחת
ה-API Keys?
במידה וגורם לא רצוי יצליח לשים את ידו על אותם מפתחות, הוא יוכל להזדהות אל מול שירותי ה-SaaS בענן, לקבל הרשאות גישה למכונות הווירטואליות ולמידע של החברה, כך שניתן יהיה להעתיקו ואף למחוק אותו אם ירצה בכך.
לכן, ברור כי גם על המפתחות הללו, בדיוק כמו על המפתחות לביתנו בעולם האמיתי, יש לשמור מכל משמר.

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

דוגמא למקרה כזה, התרחש ב-OneLogin במאי 2017, במהלכו תוקף הצליח להשיג API Keys ולגשת באמצעותם ל-AWS API ולחדור לתשתית שלהם. מקרה נוסף בו גנבו והשתמשו ב-API Keys של AWS הוא פריצה למאגר הנתונים של חברת Imperva, אשר גרם לחשיפת מידע פרטי של לקוחות החברה כולל סיסמאות.

בגלל חשיבות ה-API Keys, השימוש הרחב בהם ורגישותם, חשוב להגן עליהם ולשמור עליהם מאובטחים.
על מנת לעשות זאת, להלן מספר עצות לאבטחת ה-API Keys ולשמירה על תשתית הענן של הארגון מפני פגיעה אפשרית של תוקפים באמצעות המפתחות:

1. ראשית, מפה את ה-API Keys של הארגון:

כפי שראינו בדוגמאות לעיל את מיקום חלק ממפתחות ההצפנה שלנו לשירותי ענן שונים, חפש היכן מצויים המפתחות בארגון – האם הם נשמרים במאגר נתונים מסוים? האם משתמשים בהם בקוד או במערכות מסוימות? כמו כן, ניתן לבצע את הבדיקות הללו באמצעות תוכנות שסורקות את סביבת הענן ומצביעות היכן נמצאים ה-API Keys. בנוסף, חפש האם ישנם מפתחות בקבצי קונפיגורציה של מערכות, שכן מתכנתים נוהגים לשים אותם שם. לבסוף, הכן תיעוד מסודר ויסודי של מיקומי המפתחות בענן ושימושיהם, כך שתדע תמיד היכן הנקודות הרגישות שצריך לשמור עליהן.

2. שמור את המפתחות במקום מאובטח:

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

3. מחק מפתחות שמוטמעים במערכות הארגון:

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

4. הצפן את המפתחות:

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

5. הגבל את השימוש במפתחות ועדכונם:

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

6. אסור שליחת מפתחות במייל:

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

לסיכום:

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

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

אני מזמין אותך להתחיל ליישם את ההצעות לשמירה ולניהול של API Keys בארגון שלך, ואם יש לך שאלות נוספות, אנחנו ב-CST-360 נשמח לסייע.

נכתב ע״י Yoav Berger

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

פוסטים נוספים

03/12/2020
איך להציג תקציב הגנה בסייבר

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

20/10/2020
כיצד להיות מנהל הגנה מבריק?

עם 20 שנות ניסיון, זכיתי לעבוד עם מגוון מנהלים עסקיים וטכנולוגיים. חלקם רגילים וחלקם מבריקים. מה בעצם מבדיל בין מנהל מבריק למנהל רגיל? אם תשאלו מנכ"ל ממוצע, או חבר דירקטוריון מיהו אותו מנהל מבריק, סביר להניח שהתשובה תכלול סופרלטיבים כגון: מנהיג, מקבל החלטות מצוין, מוביל להישגים ואני מניח שיהיו עוד מחמאות סביב ההישגיות, תוך שימוש […]

22/09/2020
הגנה על API Keys

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

לפוסטים נוספים

מנף את העסק שלך בזמן שאתה מגן על הדברים החשובים

בוא נדבר על מערך האבטחה שלך
הירשם לניוזלטר
נשלח לך מייל שבועי שיעזור לך לשפר רמת האבטחה שלך, ומדי פעם גם קצת תקשורת שיווקית, בהתאם למדיניות הפרטיות שלנו.
lockplusunlockunlock-altcopyrightcross linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram