סקירה כללית של תצוגות מאובטחות עם פרמטרים ב-Cloud SQL

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

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

דוגמה לתצוגה מאובטחת עם פרמטרים

הדוגמה הבאה היא של תצוגה מאובטחת עם פרמטרים:

CREATE VIEW user_specific_items WITH (security_barrier) AS
       SELECT item_id, item_name, description
       FROM items t
       WHERE owner_id = $@app_user_id;

אפשר להריץ שאילתות על התצוגות באמצעות הפונקציה execute_parameterized_query או באמצעות ההצהרה EXECUTE .. WITH VIEW PARAMETERS.

תרחישים לדוגמה

מודלים גדולים של שפה (LLM) עשויים ליצור שאילתות SQL שחושפות נתונים רגישים.

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

אתם יכולים להשתמש בתצוגות מאובטחות עם פרמטרים כדי להחיל את הדרישות הבאות על האופן שבו Cloud SQL ל-PostgreSQL מבצע את השאילתה הזו:

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

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

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

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

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

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

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

אבטחת מידע

תצוגות מאובטחות עם פרמטרים מספקות למפתחי אפליקציות אבטחת נתונים ושליטה בגישה לשורות באמצעות השיטות הבאות:

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

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

מגבלות

  • כדי להשתמש בתצוגות מאובטחות עם פרמטרים, צריך להפעיל את cloudsql.enable_parameterized_viewsהדגל של מסד הנתונים במכונת Cloud SQL, ולשם כך צריך להפעיל מחדש את מסד הנתונים.

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

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

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

המאמרים הבאים