ניתוח סיכוני זיהוי מחדש (או פשוט ניתוח סיכונים) הוא תהליך של ניתוח נתונים רגישים כדי למצוא מאפיינים שעשויים להגביר את הסיכון לזיהוי של נושאים או לחשיפה של מידע רגיש על אנשים. אפשר להשתמש בשיטות לניתוח סיכונים לפני הסרת הפרטים המזהים כדי לקבוע אסטרטגיה יעילה להסרת פרטים מזהים, או אחרי הסרת הפרטים המזהים כדי לעקוב אחרי שינויים או חריגות.
הסרת פרטי הזיהוי היא תהליך של הסרת פרטים אישיים מזהים מנתונים. התכונה Sensitive Data Protection יכולה לזהות מידע אישי רגיש ולהסיר את הפרטים המזהים שלו בהתאם להגדרות שקבעתם כדי לעמוד בדרישות של הארגון.
לעומת זאת, זיהוי מחדש הוא תהליך של התאמת נתונים שהוסרו מהם פרטי זיהוי לנתונים זמינים אחרים כדי לקבוע למי הנתונים שייכים. המונח 'זיהוי מחדש' משמש בדרך כלל בהקשר של מידע אישי רגיש, כמו נתונים רפואיים או פיננסיים.
למידע נוסף על שימוש ב-Sensitive Data Protection כדי למדוד סוגים שונים של סיכונים, אפשר לעיין במאמר בנושא מדידת הסיכון לחשיפה ולזיהוי מחדש.
מונחים וטכניקות לניתוח סיכונים
אם לא תסירו את הפרטים המזהים מנתונים רגישים בצורה נכונה או מספקת, אתם מסתכנים בכך שתוקף יזהה מחדש את הנתונים או יקבל מידע רגיש על אנשים פרטיים, וזה עלול להוביל להשלכות חמורות על הפרטיות. התכונה 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 | John J. Jacobsen | 98122 | 29 | מחלות לב | |
| 652978 | Debra D. Dreb | 98115 | 29 | סוכרת, סוג II | |
| 075321 | אברהם א. Abernathy | 98122 | 54 | סרטן, כבד | |
| 339012 | קארן ק. קרקוב | 98115 | 88 | מחלות לב | |
| 995212 | William W. Wertheimer | 98115 | 54 | אסטמה | |
| ... |
מערך הנתונים הזה מכיל את כל שלושת סוגי הנתונים שתיארנו קודם: מזהים, מזהים למחצה ומידע אישי רגיש.
אם מידע אישי רגיש כמו מצבים בריאותיים לא מוסווה או לא מצונזר, תוקף יכול להשתמש במזהים למחצה שאליהם כל אחד מהם מצורף, ואולי להשוות אותם עם קבוצת נתונים אחרת שמכילה מזהים למחצה דומים, ולשחזר פרטי זיהוי של האנשים שאליהם הנתונים הרגישים האלה מתייחסים.
מערך נתונים נחשב k-אנונימי אם כל שילוב של ערכים בעמודות הדמוגרפיות במערך הנתונים מופיע לפחות ב-k רשומות שונות. נזכיר שקבוצת שורות עם מזהים דומים זהים נקראת "מחלקת שקילות". לדוגמה, אם ביטלתם את האפשרות לזהות את המזהים למחצה מספיק כדי שיהיו לפחות ארבע שורות שבהן ערכי המזהים למחצה זהים, ערך האנונימיות מסוג k של מערך הנתונים הוא 4.
מזהי ישויות וחישוב של k-anonymity
אפשרות חשובה שכלולה בהגנה על נתונים רגישים כשמחשבים את האנונימיות של 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 (ללא מזהה ישות), ל-3 אנשים יש ערך של k-anonymity של 3, ול-5 אנשים יש ערך של k-anonymity של 5, למרות שיש רק 4 אנשים בפועל במסד הנתונים.
שימוש במזהה ישות גורם לכך שהפתרון Sensitive Data Protection יתייחס לקבוצה המרובה של המיקודים שמשויכים למשתמש כמזהה למחצה, כשהוא מחשב את האנונימיות מסוג k. בדוגמה שלנו, יש למעשה שלושה ערכים של מזהים למחצה 'מורכבים', כי יש שלוש קומבינציות שונות של מזהים למחצה שמוקצים למשתמשים: 42000, קבוצת המולטיסט של 17000 ו-42000, וקבוצת המולטיסט של 17000, 42000 ו-42000. הם מתאימים למשתמשים באופן הבא:
- [42000] משויך למשתמש ייחודי אחד (01).
- הטווח [17000, 42000] משויך ל-2 משתמשים ייחודיים (02 ו-04).
- [17000, 42000, 42000] משויך למשתמש ייחודי אחד (03).
כפי שאפשר לראות, השיטה הזו לוקחת בחשבון שמשתמשים יכולים להופיע יותר מפעם אחת במסד הנתונים של מיקודים, ומתייחסת אליהם בהתאם כשמחשבים את האנונימיות k.
משאבים בנושא k-anonymity
מידע נוסף על k-anonymity אפשר למצוא במאמר Protecting Privacy when Disclosing Information: k-Anonymity and Its Enforcement through Generalization and Suppression (הגנה על הפרטיות בחשיפת מידע: k-anonymity והאכיפה שלה באמצעות הכללה ודיכוי) מאת פייראנג'לה סמראטי ולטניה סוויני ממעבדת הפרטיות של נתונים באוניברסיטת הרווארד.
כדי ללמוד איך לחשב אנונימיות מסוג k באמצעות Sensitive Data Protection, עם מזהי ישויות או בלעדיהם, אפשר לעיין במאמר חישוב אנונימיות מסוג k עבור מערך נתונים.
מידע על l-diversity
l-diversity קשור קשר הדוק ל-k-anonymity, והוא נוצר כדי לעזור לטפל בפגיעות של מערך נתונים שעבר הסרת פרטים מזהים להתקפות כמו:
- מתקפות הומוגניות, שבהן התוקפים מנצלים את ההומוגניות של הערכים בתוך קבוצה של k רשומות כדי לחזות ערכים רגישים עבור קבוצה של נתונים שעברו אנונימיזציה מסוג k.
- מתקפות ידע כללי, שבהן התוקפים מנצלים את הקשרים בין ערכים של מזהים למחצה שיש להם מאפיין רגיש מסוים, כדי לצמצם את הערכים האפשריים של המאפיין.
l-diversity (מגוון l) מנסה למדוד כמה תוקף יכול ללמוד על אנשים במונחים של k-anonymity (אנונימיות k) ומחלקות שקילות (קבוצות של שורות עם ערכים זהים של מזהה למחצה). קבוצת נתונים היא בעלת מגוון של l אם לכל מחלקת שקילות יש לפחות l ערכים ייחודיים לכל מאפיין רגיש. לכל מחלקת שקילות, כמה מאפיינים רגישים יש במערך הנתונים? לדוגמה, אם l-diversity = 1, המשמעות היא שלכולם יש את אותו מאפיין רגיש. אם l-diversity = 2, המשמעות היא שלכולם יש אחד משני מאפיינים רגישים, וכן הלאה.
lמקורות מידע בנושא גיוון
למידע נוסף על l-diversity, אפשר לעיין במאמר l-Diversity: Privacy Beyond k-Anonymity, מאת Ashwin Machanavajjhala, Johannes Gerke ו-Daniel Kifer מהמחלקה למדעי המחשב באוניברסיטת קורנל.
כדי ללמוד איך לחשב את מדד l-diversity באמצעות Sensitive Data Protection, אפשר לעיין במאמר בנושא חישוב מדד l-diversity עבור מערך נתונים.
מידע על מפת k
k-map דומה מאוד ל-k-anonymity, אבל הוא מניח שהתוקף כנראה לא יודע מי נמצא במערך הנתונים. כדאי להשתמש במיפוי k אם מערך הנתונים קטן יחסית, או אם רמת המאמץ הנדרשת להכללת מאפיינים תהיה גבוהה מדי.
בדומה ל-k-anonymity, ב-k-map צריך לקבוע אילו עמודות במסד הנתונים הן מזהים למחצה. בפעולה הזו אתם מציינים אילו נתונים סביר להניח שתוקף ישתמש בהם כדי לשחזר פרטי זיהוי של נושאים. בנוסף, כדי לחשב ערך של מפת k נדרש מערך נתונים של זיהוי מחדש: טבלה גדולה יותר שאפשר להשוות אליה את השורות במערך הנתונים המקורי.
הנה דוגמה קטנה של מערך נתונים. הנתונים לדוגמה האלה הם חלק ממסד נתונים היפותטי גדול יותר, שנאסף מסקר שהתשובות בו כללו מידע רגיש.
| מיקוד | גיל |
|---|---|
| 85535 | 79 |
| 60629 | 42 |
במבט ראשון, נראה שמדובר באותה כמות מידע לגבי שני האנשים. למעשה, אם נתייחס ל-k-anonymity במערך הנתונים הגדול יותר, יכול להיות שנגיע למסקנה שקל מאוד לזהות את הנושא שמתאים לשורה השנייה. אבל אם תגבו את הנתונים ותבדקו אותם, תבינו שהם לא כאלה. לדוגמה, המיקוד 85535 בארצות הברית, שבו גרים כרגע כ-20 אנשים. סביר להניח שיש רק אדם אחד בן 79 בדיוק שגר במיקוד 85535. לשם השוואה, מיקוד 60629 הוא חלק מהאזור המטרופוליני של שיקגו, ומתגוררים בו יותר מ-100,000 אנשים. יש בערך 1,000 אנשים בני 42 בדיוק באזור המיקוד הזה.
היה קל לזהות מחדש את השורה הראשונה במערך הנתונים הקטן שלנו, אבל לא את השורה השנייה. עם זאת, לפי k-אנונימיות, יכול להיות ששתי השורות ייחודיות לחלוטין בקבוצת הנתונים הגדולה יותר.
k-map, כמו k-anonymity, מחייב אתכם לקבוע אילו עמודות במסד הנתונים שלכם הן מזהים למחצה. ממשקי ה-API של ניתוח הסיכונים של Sensitive Data Protection מדמים מערך נתונים של זיהוי מחדש כדי להעריך את השלבים שתוקף עשוי לבצע כדי להשוות את מערך הנתונים המקורי, במטרה לשחזר פרטי זיהוי של הנתונים. בדוגמה הקודמת שלנו, מכיוון שהיא מתייחסת למיקומים בארה"ב (מיקודים) ולנתונים אישיים (גילאים), ומכיוון שאנחנו מניחים שהתוקף לא יודע מי השתתף בסקר, יכול להיות שערכת הנתונים של הזיהוי מחדש תכלול את כל מי שגר בארה"ב.
אחרי שיש לכם מזהים למחצה ומערך נתונים של זיהוי מחדש, אתם יכולים לחשב את ערך המיפוי של k: הנתונים שלכם עומדים בדרישות של מיפוי k עם ערך k אם כל שילוב של ערכים למזהים למחצה מופיע לפחות k פעמים במערך הנתונים של הזיהוי מחדש.
בהתאם להגדרה הזו, ובגלל שהשורה הראשונה במסד הנתונים שלנו כנראה מתאימה רק לאדם אחד בארה"ב, מערך הנתונים לדוגמה לא עומד בדרישה לערך k של 2 ומעלה. כדי לקבל ערך גדול יותר של k-map, אפשר להסיר ערכים של גיל כמו שעשינו כאן:
| מיקוד | גיל |
|---|---|
| 85535 | ** |
| 60629 | ** |
כמו שצוין קודם, במיקוד 85535 יש כ-20 אנשים ובמיקוד 60629 יש יותר מ-100,000. לכן, אפשר להעריך שלמערך הנתונים החדש והמוכלל הזה יש ערך של k-map של כ-20.
משאבים של k-map
מידע נוסף על מפת k והקשר שלה לאנונימיות k זמין במאמר Protecting Privacy Using k-Anonymity מאת Khaled El Emam ו-Fida Kamal Dankar, ב-Journal of the American Medical Informatics Association.
כדי ללמוד איך לחשב אומדנים של k-map באמצעות Sensitive Data Protection, אפשר לעיין במאמר בנושא חישוב k-map עבור מערך נתונים.
מידע על נוכחות δ
נוכחות דלתא (δ-נוכחות) היא הערכה של הסיכון שקשור לתוקף שרוצה לגלות אם היעד שלו נמצא במערך הנתונים. הסיכון הזה שונה מעט מסיכון הזיהוי מחדש, כי המטרה היא לא לגלות איזו רשומה בדיוק מתאימה לאיזה אדם, אלא רק לדעת אם אדם מסוים הוא חלק ממערך הנתונים. השימוש במדד הזה מתאים במיוחד אם לכל הפרטים במערך הנתונים יש מאפיין רגיש משותף. לדוגמה, לכולם יש את אותה אבחנה רפואית.
בדומה למדדי הסיכון האחרים, כדי להשתמש במדד δ-נוכחות צריך לקבוע אילו עמודות במסד הנתונים הן מזהים למחצה. בפעולה הזו אתם מציינים אילו נתונים סביר להניח שתוקף ישתמש בהם כדי לגלות אילו אנשים כלולים במערך הנתונים. בדומה למיפוי k, חישוב הנוכחות של δ דורש מערך נתונים של התקפה: טבלה גדולה יותר שאפשר להשוות אליה שורות במערך הנתונים המקורי.
הנה דוגמה קטנה של מערך נתונים. הנתונים לדוגמה האלה הם חלק ממסד נתונים היפותטי גדול יותר של אנשים עם מחלה גנטית מסוימת.
| מיקוד | גיל |
|---|---|
| 85942 | 72 |
| 85942 | 72 |
| 62083 | 53 |
במיקוד 85942 בארצות הברית יש בערך 2 אנשים בני 72, ובמיקוד 62083 יש בערך 5 אנשים בני 53. אי אפשר לזהות בדיוק את שתי הרשומות הראשונות כי יש להן אותם מזהים למחצה. אבל מכיוון שרק שני אנשים חולקים את המזהים למחצה האלה באוכלוסייה הגדולה יותר, תוקף יכול להסיק ששניהם סובלים מהמחלה הגנטית. δ-נוכחות מכמתת את הסיכון הספציפי הזה על ידי חישוב היחס בין אנשים עם מזהים למחצה מסוימים שנמצאים במערך הנתונים.
כדי להשתמש במדד δ-נוכחות, כמו במדדי הסיכון האחרים, צריך לקבוע אילו עמודות במסד הנתונים הן מזהים למחצה. בדומה להערכת k-מפה, ממשקי ה-API של ניתוח הסיכונים של 'הגנה על נתונים רגישים' מדמים מערך נתונים של אוכלוסייה כדי להעריך את מערך הנתונים שבו תוקף עשוי להשתמש כדי לגלות מי נמצא במערך הנתונים. בדוגמה הקודמת שלנו, מכיוון שהיא עוסקת במיקומים בארה"ב (מיקודים) ובנתונים אישיים (גילאים), ומכיוון שאנחנו מניחים שהתוקף לא יודע למי יש את המחלה הגנטית, יכול להיות שקבוצת הנתונים הזו כוללת את כל מי שגר בארה"ב.
אחרי שיש לכם מזהים למחצה ומערך נתונים של זיהוי מחדש, אתם יכולים לחשב את ערך הנוכחות של δ: הנתונים שלכם עומדים בדרישות של נוכחות δ עם ערך δ אם כל שילוב של ערכים למזהים למחצה מופיע לכל היותר δ * 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, אפשר לעיין במאמר חישוב δ-נוכחות עבור מערך נתונים.