בכל ארגון ישנם לפחות אחד או יותר בסיסי נתונים (Databases), חלקם לסביבת ה-Production, חלקם לסביבת Test, אחרים לצרכי QA ועוד. במרבית המקרים, הגישה הרווחת בקרב האמונים על אבטחת התשתיות היא: ישנו Firewall העומד בשער וחוסם את כל מי שלא מורשה להיכנס לארגון; ברמת התקשורת - סגורים כל הפורטים מלבד אלו המשמשים גישה אל בסיס הנתונים; השרתים אשר עליהם מותקנים בסיסי הנתונים מוקשחים בטלאי האבטחה של מיקרוסופט; כך שההרגשה והגישה הרווחת הינה שבסיסי הנתונים מאובטחים היטב.
הבעיה
גם אם כל האמור לעיל אכן מתקיים (למרות שבפועל, במרבית הארגונים רק מקצתם אכן ממומש) - מה באמת מתבצע על גבי הפורטים הפתוחים לצורכי גישה בסיסית אל בסיס הנתונים? כיצד - אם בכלל - מתבצעת הגנה כנגד האיום הפנימי? מי אחראי על אבטחת בסיסי הנתונים? האם זהו ה-DBA? האם אנשי אבטחת המידע? האם מותקנים טלאי אבטחה ספציפיים עבור אפליקציות בסיסי הנתונים (Oracle CPUs למשל)? האם מתבצע ניטור כלשהו של התעבורה על בסיסי הנתונים של החברה? האם ידוע מי ניגש, לאן ומתי ואילו פעולות הוא ביצע?
הרשימה להלן מכילה חלק מן ה-Default Ports של אפליקציות בסיסי הנתונים המובילות:
Oracle - 1521, 1810, 2481, 7778
SQL Server - 1433, 1434, 2433
DB2 - 446, 50000, 60000, 60001, 60002, 60003, 523
רובן המכריע של ההתקפות על בסיסי-הנתונים מתבצעות על-גבי הפורטים הידועים, ותוקפות ישירות את אפליקציית בסיסי הנתונים ולא את מערכת ההפעלה עליה מותקן ה-Database.
באופן טבעי הנטייה הינה להגן על הארגון ועל המידע הנמצא ברשת מפני התקפות מבחוץ (מהעולם). זאת למרות שמרבית התקיפות על ה-Databases מתבצעות מתוך הארגון תוך ניצול הרשאות של משתמשים קיימים, או ע"י ניצול נקודות חולשה קיימות וידועות באפליקציה. נוסף על כך, נקודת תורפה נוספת נעוצה בתהליכי הפיתוח והניהול של בסיסי הנתונים - תהליך אשר בו ישנה לעיתים מעורבות של מספר גורמים פנים-ארגוניים וחוץ-ארגוניים, טכנולוגיות ומפתחים - עובדה אשר מגבירה את הסיכון והרגישות למתקפות.
הפתרון
על-מנת להגן על בסיסי-הנתונים בארגון מומלץ להתקין את טלאי האבטחה של החברות שמפתחות את אפליקציות ה DB's (Oracle, Microsoft וכד') ע"פ המלצותיהם. בהקשר זה יש לציין כי במרבית הארגונים לא מתקינים כלל את טלאי האבטחה המסופקים ע"י ה-Vendors (ע"פ סקר אשר פורסם לפני כשבוע - יותר מ-60% מן הארגונים לא התקינו טלאי אבטחה של Oracle כלל!). כמו-כן, מומלץ לבדוק את כלל בסיסי הנתונים בחברה באמצעות סורקי פרצות אפליקטיביים ייעודיים של חברות המתמחות בהגנה על בסיסי נתונים וזאת ע"מ לחשוף פגיעויות אפליקטיביות אשר הינן ייחודיות לכל סוג אפליקציית Database באופן ספציפי - פגיעויות אשר כמותן נחשפות ומתגלות על בסיס קבוע וכמעט יומיומי, וכן בכדי לחשוף הגדרות תצורה קיימות אשר חושפות את ה-Database לפריצות ופגיעות. נוסף על כך, מומלץ גם לסרוק עם סורקי פרצות (Vulnerability Scanners) סטנדרטיים אשר ביכולתם לוודא שהפורטים הפתוחים אינם פרוצים ופגיעים.
כאשר ברצוננו להגן על מערכות בכלל ומערכות קריטיות בפרט יש להפנים את העובדה שחוזקה של שרשרת ניכר בחולייתה החלשה ביותר. כלומר: ישנו צורך אמיתי להערך עד כמה שאפשר ל- Zero-Day-Attacks ו/או לתקיפות אשר מנצלות פרצות אפליקטיביות ידועות אשר לא אותרו באמצעות שימוש בכלים נפוצים ו/או חופשיים לשימוש. מטרה זו תושג אך ורק באם נהיה מעודכנים ומודעים לחולשות הקיימות במערכת שלנו.
על מנהל אבטחת המידע וה-DBAs להיות מעודכנים על בסיס יומי בנוגע לפרצות החדשות ומשמעותן למידע הקריטי ולהתנהלות העסקית השוטפת של הארגון. מטרה זו יכולה להיות מושגת באופן מיטבי אך ורק ע"י בדיקות תקופתיות יזומות, ותיקון הליקויים תוך פרק זמן סביר בשילוב עם מערכת ניטור המיידעת למשל על כל נסיון ניצול ו/או חדירה לרשומה בבסיס הנתונים על-ידי מי שלא רשאי לבצע זאת.
דוגמאות
פרצת אבטחה ידועה הנמצאת במערכות Oracle רבות הינה רשימת משתמשי ברירת המחדל של בסיס הנתונים. בגרסאות קודמות של Oracle היו קיימים כ-600 Default Users, אשר יכלו להיכנס לבסיס הנתונים. זוהי פרצה שניתנת לניצול ע"י תוקף פוטנציאלי המכיר את שמות המשתמשים הללו (הרשימה, אשר חלקה מוצג בדפים הבאים, זמינה באינטרנט בחיפוש גוגל פשוט). אחד משלבי התקיפה הראשונים של פורץ פוטנציאלי יהיה לבדוק את הימצאותם של שמות משתמש אלו; במידה ואפילו אחד מהם זמין לשימוש - דרכו של הפורץ אל תוך ה-Database ואל המידע הקריטי ביותר של הארגון - פתוחה. ראוי לציון כי מרבית שמות המשתמשים הללו נחסמו בגרסה 10g, אולם עקב העובדה כי במרבית הארגונים עדיין משתמשים בגירסאות 8 ו-9 על מערכות Production, מומלץ מאוד לבדוק!!!
להלן חלק מצומצם מרשימה ה-Oracle Default Users:
Product |
Security Level |
Username |
Password |
Hash Value |
Oracle |
3 |
BRIO_ADMIN |
BRIO_ADMIN |
EB50644BE27DF70B |
Oracle |
3 |
BRUGERNAVN |
ADGANGSKODE |
2F11631B6B4E0B6F |
Oracle |
3 |
BRUKERNAVN |
PASSWORD |
652C49CDF955F83A |
Oracle |
2 |
BSC |
BSC |
EC481FD7DCE6366A |
Oracle |
3 |
BUG_REPORTS |
BUG_REPORTS |
E9473A88A4DD31F2 |
Oracle |
3 |
CALVIN |
HOBBES |
34200F94830271A3 |
Oracle |
3 |
CATALOG |
CATALOG |
397129246919E8DA |
Oracle |
2 |
CCT |
CCT |
C6AF8FCA0B51B32F |
Oracle |
3 |
CDEMO82 |
CDEMO82 |
7299A5E2A5A05820 |
Oracle |
3 |
CDEMO82 |
CDEMO83 |
67B891F114BE3AEB |
Oracle |
3 |
CDEMO82 |
UNKNOWN |
73EAE7C39B42EA15 |
Oracle |
3 |
CDEMOCOR |
CDEMOCOR |
3A34F0B26B951F3F |
Oracle |
3 |
CDEMORID |
CDEMORID |
E39CEFE64B73B308 |
Oracle |
3 |
CDEMOUCB |
CDEMOUCB |
CEAE780F25D556F8 |
Oracle |
3 |
CDOUGLAS |
CDOUGLAS |
C35109FE764ED61E |
Oracle |
2 |
CE |
CE |
E7FDFE26A524FE39 |
Oracle |
3 |
CENTRA |
CENTRA |
63BF5FFE5E3EA16D |
Oracle |
3 |
CENTRAL |
CENTRAL |
A98B26E2F65CA4D3 |
Oracle |
3 |
CIDS |
CIDS |
AA71234EF06CE6B3 |
Oracle |
3 |
CIS |
CIS |
7653EBAF048F0A10 |
Oracle |
3 |
CIS |
ZWERG |
AA2602921607EE84 |
Oracle |
3 |
CISINFO |
CISINFO |
3AA26FC267C5F577 |
Oracle |
3 |
CISINFO |
ZWERG |
BEA52A368C31B86F |
Oracle |
4 |
CLARK |
CLOTH |
7AAFE7D01511D73F |
Oracle |
2 |
CN |
CN |
73F284637A54777D |
Oracle |
1 |
COMPANY |
COMPANY |
402B659C15EAF6CB |
Oracle |
3 |
COMPIERE |
COMPIERE |
E3D0DCF4B4DBE626 |
Oracle |
3 |
CQSCHEMAUSER |
PASSWORD |
04071E7EDEB2F5CC |
Oracle |
3 |
CQUSERDBUSER |
PASSWORD |
0273F484CD3F44B7 |
Oracle |
2 |
CRP |
CRP |
F165BDE5462AD557 |
Oracle |
2 |
CS |
CS |
DB78866145D4E1C3 |
Oracle |
2 |
CSC |
CSC |
EDECA9762A8C79CD |
Oracle |
2 |
CSD |
CSD |
144441CEBAFC91CF |
Oracle |
3 |
CSE |
CSE |
D8CC61E8F42537DA |
Oracle |
2 |
CSF |
CSF |
684E28B3C899D42C |
Oracle |
3 |
CSI |
CSI |
71C2B12C28B79294 |
Oracle |
3 |
CSL |
CSL |
C4D7FE062EFB85AB |
Oracle |
3 |
CSMIG |
CSMIG |
09B4BB013FBD0D65 |
Oracle |
2 |
CSP |
CSP |
5746C5E077719DB4 |
Oracle |
2 |
CSR |
CSR |
0E0F7C1B1FE3FA32 |
Oracle |
2 |
CSS |
CSS |
3C6B8C73DDC6B04F |
Oracle |
3 |
CTXDEMO |
CTXDEMO |
CB6B5E9D9672FE89 |
Oracle |
1 |
CTXSYS |
CHANGE_ON_INSTALL |
71E687F036AD56E5 |
Oracle |
1 |
CTXSYS |
CTXSYS |
24ABAB8B06281B4C |
Oracle |
1 |
CTXSYS |
UNKNOWN |
A13C035631643BA0 |
Oracle |
2 |
CUA |
CUA |
CB7B2E6FFDD7976F |
Oracle |
2 |
CUE |
CUE |
A219FE4CA25023AA |
Oracle |
2 |
CUF |
CUF |
82959A9BD2D51297 |
Oracle |
3 |
CUG |
CUG |
21FBCADAEAFCC489 |
Oracle |
2 |
CUI |
CUI |
AD7862E01FA80912 |
Oracle |
2 |
CUN |
CUN |
41C2D31F3C85A79D |
Oracle |
2 |
CUP |
CUP |
C03082CD3B13EC42 |
Oracle |
2 |
CUS |
CUS |
00A12CC6EBF8EDB8 |
Oracle |
2 |
CZ |
CZ |
9B667E9C5A0D21A6 |
Oracle |
2 |
DATA_SCHEMA |
LASKJDF098KSDAF09 |
5ECB30FD1A71CC54 |
Oracle |
2 |
DBI |
MUMBLEFRATZ |
D8FF6ECEF4C50809 |
Oracle |
3 |
MDDEMO_MGR |
MDDEMO_MGR |
2E175141BEE66FF6 |
Oracle |
1 |
MDSYS |
MDSYS |
72979A94BAD2AF80 |
Oracle |
2 |
ME |
ME |
E5436F7169B29E4D |
Oracle |
2 |
MFG |
MFG |
FC1B0DD35E790847 |
Oracle |
3 |
MGR |
MGR |
9D1F407F3A05BDD9 |
Oracle |
3 |
MGWUSER |
MGWUSER |
EA514DD74D7DE14C |
Oracle |
3 |
MIGRATE |
MIGRATE |
5A88CE52084E9700 |
Oracle |
3 |
MILLER |
MILLER |
D0EFCD03C95DF106 |
Oracle |
3 |
MMO2 |
MMO2 |
AE128772645F6709 |
Oracle |
3 |
MMO2 |
MMO3 |
A0E2085176E05C85 |
Oracle |
3 |
MMO2 |
UNKNOWN |
62876B0382D5B550 |
Oracle |
3 |
MODTEST |
YES |
BBFF58334CDEF86D |