ניתוח הסיכון לשחזור פרטי זיהוי

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

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

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

במאמר מדידת הסיכון לשחזור פרטי זיהוי ולחשיפה מוסבר איך משתמשים ב-Sensitive Data Protection כדי למדוד סוגים שונים של סיכונים.

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

הנה כמה תרחישי שימוש נפוצים:

  • לכמת את הפגיעוּת לשחזור פרטי זיהוי לפני שיתוף נתונים משותפים: מודדים את k-anonymity ואת l-diversity בעמודות של מזהים חלקיים לפני שמשתפים קבוצות נתונים של מחקר, בריאות או דמוגרפיה עם שותפים חיצוניים.
  • הערכת הסיכון לחשיפה בהשוואה לנקודות השוואה של האוכלוסייה: מחשבים את מדדי k-map בהשוואה לקבוצות נתונים דמוגרפיים ציבוריים (כמו נתוני מפקד האוכלוסין בארה"ב) כדי לאמוד את ההסתברות שניתן יהיה לזהות אדם מסוים.
  • הערכת הרגישות של חשיפת החברות באמצעות נוכחות דלתא: הערכת הסיכון שתוקף יוכל לקבוע אם אדם ספציפי נכלל בקבוצה או במאגר מידע רגישים.
  • אופטימיזציה של פרמטרים להסרת פרטי זיהוי ולהסתרת נתונים: מריצים הערכות סיכונים חוזרות כדי לשפר את הטרנספורמציות של חלוקה לקטגוריות, שינוי תאריכים וטוקניזציה, במטרה להגיע לאיזון האידיאלי בין פרטיות לבין שימושיות.

מונחים וטכניקות של ניתוח סיכונים

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

לפני שנתעמק במדדים, נגדיר כמה מונחים נפוצים:

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

יש ארבע שיטות שבהן אפשר להשתמש ב-Sensitive Data Protection כדי לכמת את רמת הסיכון שמשויכת למערך נתונים:

  • ‫k-anonymity: מאפיין של קבוצת נתונים שמציין את היכולת לזהות מחדש את הרשומות שלו. קבוצת נתונים היא k-אנונימית אם המזהים החלקיים של כל אדם בקבוצת הנתונים זהים לאלה של לפחות k – 1 אנשים אחרים בקבוצת הנתונים.
  • l-diversity: הרחבה של k-anonymity, שגם מודדת את המגוון של ערכים רגישים בכל עמודה שבה הם מופיעים. לקבוצת נתונים יש גיוון l אם לכל קבוצת שורות עם מזהים חלקיים זהים, יש לפחות l ערכים נפרדים לכל מאפיין רגיש.
  • k-map: חישוב הסיכון לשחזור פרטי זיהוי על ידי השוואה בין קבוצת נתונים נתונה של נושאים שהוסרו מהם פרטי הזיהוי לבין קבוצת נתונים גדולה יותר של שחזור פרטי זיהוי – או "מתקפה". הכלי Sensitive Data Protection לא מכיר את מערך הנתונים של ההתקפה, אבל הוא יוצר מודל סטטיסטי שלו באמצעות נתונים שזמינים באופן ציבורי, כמו מפקד האוכלוסין של ארה"ב, באמצעות מודל סטטיסטי מותאם אישית (שמצוין כטבלה אחת או יותר ב-BigQuery) או באמצעות אקסטרפולציה מהתפלגות הערכים במערך נתוני הקלט. לכל מערך נתונים – מערך הנתונים לדוגמה ומערך הנתונים לזיהוי מחדש – יש עמודה אחת או יותר של מזהים חלקיים.
  • נוכחות דלתא (δ-presence): אומדן ההסתברות שמשתמש מסוים באוכלוסייה גדולה יותר נמצא במערך הנתונים. השיטה הזו משמשת כשעצם ההשתייכות לקבוצת הנתונים היא מידע רגיש. בדומה ל-k-map, המערכת של Sensitive Data Protection לא מכירה את מערך הנתונים של המתקפה, אבל יוצרת מודל סטטיסטי שלו באמצעות נתונים שזמינים באופן ציבורי, התפלגויות שצוינו על ידי המשתמש או אקסטרפולציה ממערך הנתונים של הקלט.

מידע על k-anonymity

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

לדוגמה, נניח שיש לנו קבוצה של נתוני מטופלים:

מזהה מטופל שם מלא מיקוד גיל תנאי ...
746572 ג'ון ג'. Jacobsen 98122 29 מחלת לב
652978 Debra D. Dreb 98115 29 סוכרת מסוג 2
075321 Abraham A. Abernathy 98122 54 סרטן הכבד
339012 קרן ק. קרקוב 98115 88 מחלת לב
995212 William W.‎ Wertheimer 98115 54 אסתמה
...

מערך הנתונים הזה מכיל את כל שלושת סוגי הנתונים שתיארנו קודם: מזהים, מזהים חלקיים ומידע אישי רגיש.

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

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

מזהי ישויות וחישוב k-anonymity

אפשרות חשובה ש-Sensitive Data Protection כולל כשמחשבים אנונימיות k היא מזהה הישות (ID) האופציונלי. מזהה ישות מאפשר לכם לקבוע בצורה מדויקת יותר את האנונימיות של k בתרחיש הנפוץ שבו כמה שורות במערך הנתונים תואמות לאותו משתמש. אחרת, אם כל שורה נספרת בנפרד, בלי קשר למשתמש, מספר המשתמשים הכולל שמשמש לחישוב ערך האנונימיות מסוג k של מערך הנתונים יהיה גבוה באופן מלאכותי. כתוצאה מכך, ערכי k-אנונימיות המחושבים לא מדויקים.

נבחן את קבוצת הנתונים הפשוטה הבאה:

מזהה משתמש מיקוד
01 42000
02 17000
02 42000
03 17000
03 42000
03 42000
04 42000
04 17000

אם לא משתמשים במזהה ישות כדי לציין ששורות שונות שייכות לאותו משתמש, מספר המשתמשים הכולל שמשמש לחישוב אנונימיות מסוג k הוא 8, למרות שמספר המשתמשים בפועל הוא 4. בקבוצת הנתונים הזו, אם משתמשים בשיטות חישוב מסורתיות של k-anonymity (בלי מזהה ישות ב-SAML), ל-3 אנשים יש ערך k-anonymity של 3, ול-5 אנשים יש ערך k-anonymity של 5, למרות שיש רק 4 אנשים בפועל במסד הנתונים.

כשמשתמשים במזהה ישות, Sensitive Data Protection מתייחסת לקבוצה המרובה של מספרי המיקוד שמשויכים למשתמש כאל מזהה חלקי, כשהיא מחשבת את האנונימיות מסוג k. בדוגמה שלנו, יש למעשה שלושה ערכים "מורכבים" של מזהים חלקיים, כי יש שלושה שילובים נפרדים של מזהים חלקיים שמוקצים למשתמשים: 42,000, קבוצת הערכים 17,000 ו-42,000 וקבוצת הערכים 17,000, 42,000 ו-42,000. הם תואמים למשתמשים באופן הבא:

  • ‫[42000] משויך למשתמש ייחודי אחד (01).
  • [17000, 42000] משויך ל-2 משתמשים ייחודיים (02 ו-04).
  • ‫[17000, 42000, 42000] משויך למשתמש ייחודי אחד (03).

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

מקורות מידע בנושא k-anonymity

למידע נוסף על אנונימיות k, קראו את המאמר Protecting Privacy when Disclosing Information: k-Anonymity and Its Enforcement through Generalization and Suppression, מאת Pierangela Samarati ו-Latanya Sweeney מהמעבדה לפרטיות נתונים של אוניברסיטת הרווארד.

במאמר חישוב אנונימיות מסוג k של מערך נתונים מוסבר איך לחשב אנונימיות מסוג k באמצעות Sensitive Data Protection, עם או בלי מזהי ישויות.

מידע על l-diversity

l-diversity קשור באופן הדוק ל-k-anonymity, ונוצר כדי לעזור לטפל ברגישות של מערך נתונים שעבר הסרת פרטי הזיהוי למתקפות כמו:

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

l-diversity מנסה למדוד כמה מידע תוקף יכול ללמוד על אנשים במונחים של k-anonymity ומחלקות שקילות (קבוצות של שורות עם ערכים זהים של מזהים חלקיים). לקבוצת נתונים יש גיוון l אם לכל מחלקת שקילות יש לפחות l ערכים ייחודיים לכל מאפיין רגיש. כמה מאפיינים רגישים יש במערך הנתונים לכל מחלקת שקילות? לדוגמה, אם l-diversity = 1, לכולם יש את אותו מאפיין רגיש. אם l-diversity = 2, לכולם יש אחד משני מאפיינים רגישים, וכן הלאה.

מקורות מידע בנושא גיוון l

למידע נוסף על l-diversity, קראו את המאמר l-Diversity: Privacy Beyond k-Anonymity, מאת אשווין מצ'נאוואג'האלה, יוהנס גרקה ודניאל קיפר מהמחלקה למדעי המחשב באוניברסיטת קורנל.

כדי ללמוד איך לחשב מגוון l באמצעות Sensitive Data Protection, ראה חישוב מגוון l של קבוצת נתונים.

מידע על k-map

‫k-map דומה מאוד ל-k-anonymity, אבל ההנחה היא שהתוקף כנראה לא יודע מי נמצא במערך הנתונים. השתמשו ב-k-map אם קבוצת הנתונים קטנה יחסית, או אם רמת המאמץ הכרוכה בהכללת מאפיינים גבוהה מדי.

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

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

מיקוד גיל
85535 79
60629 42

במבט ראשון, נראה שמדובר באותה כמות מידע על שני האנשים. למעשה, אם נבחן את האנונימיות מסוג k בקבוצת הנתונים הגדולה יותר, יכול להיות שנגיע למסקנה שהנושא שמתאים לשורה השנייה ניתן לזיהוי בקלות. אבל אם תסתכלו על הנתונים, תבינו שזה לא נכון. לדוגמה, נניח שאתם מטרגטים את המיקוד 85535 בארצות הברית, שבו מתגוררים כרגע כ-20 אנשים. סביר להניח שיש רק אדם אחד בן 79 בדיוק שגר במיקוד 85535. לעומת זאת, המיקוד 60629 הוא חלק מהמטרופולין של שיקגו, וגרים בו יותר מ-100,000 אנשים. יש בערך 1,000 אנשים בני 42 בדיוק באזור המיקוד הזה.

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

כמו ב-k-anonymity, גם ב-k-map צריך לקבוע אילו עמודות במסד הנתונים הן מזהים חלקיים. ממשקי ה-API לניתוח סיכונים של Sensitive Data Protection מדמים קבוצת נתונים של זיהוי מחדש, כדי להעריך את השלבים שתוקף עשוי לעבור כדי להשוות את קבוצת הנתונים המקורית ולשחזר פרטי זיהוי. בדוגמה הקודמת, מכיוון שהיא עוסקת במיקומים בארה"ב (מיקודים) ובמידע אישי (גילאים), ומכיוון שאנחנו מניחים שהתוקף לא יודע מי השתתף בסקר, קבוצת הנתונים לשחזור פרטי הזיהוי יכולה להיות כל מי שמתגורר בארה"ב.

עכשיו, כשיש לכם מזהים חלקיים ומערך נתונים לזיהוי מחדש, אתם יכולים לחשב את הערך של k-map: הנתונים שלכם עומדים בדרישות של k-map עם הערך k אם כל שילוב של ערכים של המזהים החלקיים מופיע לפחות k פעמים במערך הנתונים לזיהוי מחדש.

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

מיקוד גיל
85535 **
60629 **

כמו שציינו קודם, במיקוד 85535 יש כ-20 אנשים ובמיקוד 60629 יש יותר מ-100,000 אנשים. לכן, אנחנו יכולים להעריך שלקבוצת הנתונים החדשה והכללית הזו יש ערך k-map של כ-20.

משאבים של k-map

למידע נוסף על k-map והקשר שלו ל-k-anonymity, קראו את המאמר Protecting Privacy Using k-Anonymity, מאת Khaled El Emam ו-Fida Kamal Dankar, ב-Journal of the American Medical Informatics Association.

במאמר חישוב k-map של מערך נתונים מוסבר איך לחשב אומדני k-map באמצעות Sensitive Data Protection.

מידע על δ-presence

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

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

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

מיקוד גיל
85942 72
85942 72
62083 53

במיקוד 85942 בארצות הברית, יש בערך 2 אנשים בני 72, ובמיקוד 62083 יש בערך 5 אנשים בני 53. אי אפשר לזהות מחדש באופן מדויק את שתי הרשומות הראשונות, כי לשתיהן יש אותם מזהים חלקיים. אבל מכיוון שרק שני אנשים חולקים את המזהים החלקיים האלה באוכלוסייה הגדולה יותר, תוקף יכול להסיק ששניהם סובלים מהמחלה הגנטית. δ-presence מכמת את הסיכון הספציפי הזה על ידי חישוב היחס בין אנשים עם מזהים חלקיים מסוימים שנמצאים במערך הנתונים.

כמו במדדי הסיכון האחרים, כדי להשתמש ב-δ-presence צריך לקבוע אילו עמודות במסד הנתונים הן מזהים חלקיים. בדומה להערכת מפה k, ממשקי ה-API לניתוח סיכונים של Sensitive Data Protection מדמים קבוצת נתונים של אוכלוסייה כדי להעריך את קבוצת הנתונים שבה תוקף עשוי להשתמש כדי לגלות מי נמצא בקבוצת הנתונים. בדוגמה הקודמת, מכיוון שהיא עוסקת במיקומים בארה"ב (מספרי מיקוד) ובמידע אישי (גילאים), ומכיוון שאנחנו מניחים שהתוקף לא יודע מי חולה במחלה הגנטית, קבוצת הנתונים של האוכלוסייה יכולה להיות כל מי שמתגורר בארה"ב.

עכשיו, כשיש לכם מזהים חלקיים וקבוצת נתונים לשחזור פרטי זיהוי, אתם יכולים לחשב את ערך הנוכחות ב-δ: הנתונים שלכם עומדים בתנאי הנוכחות ב-δ עם הערך δ אם כל שילוב של ערכים למזהים החלקיים מופיע לכל היותר δ * k פעמים בקבוצת הנתונים, כאשר k הוא המספר הכולל של האנשים עם ערכי המזהים החלקיים האלה בקבוצת הנתונים של האוכלוסייה. בניגוד ל-k ב-k-anonymity או ב-k-map, הערך δ ב-δ-presence הוא מספר ממשי בין 0 ל-1.

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

מיקוד גיל
85942 **
85942 **
62083 53

עכשיו, מכיוון ש-80 אנשים גרים במיקוד 85942, הערך של δ לשתי הרשומות הראשונות הוא בערך ‎2 / 80 = 2.5%‎, והערך של δ לרשומה השלישית הוא בערך ‎1 / 5 = 20%‎. לכן, אנחנו יכולים להעריך שלקבוצת הנתונים החדשה והכללית הזו יש ערך נוכחות δ של כ-20%.

מקורות מידע על נוכחות δ

למידע נוסף על אומדן נוכחות δ על סמך נתונים סטטיסטיים, קראו את המאמר δ-Presence Without Complete World Knowledge, מאת Mehmet Ercan Nergiz ו-Chris Clifton, מתוך Department of Computer Science Technical Reports של אוניברסיטת Purdue.

כדי ללמוד איך לחשב אומדני נוכחות δ באמצעות Sensitive Data Protection, ראו חישוב נוכחות δ של קבוצת נתונים.