[דעה] עם כוח גדול באה אחריות גדולה

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

 

טעינת קוד מ”העולם שבחוץ”

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

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

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

 

אחרי שדיברנו על ווינדוס, בואו נחזור לסלולר, קיימים היום 3 מערכות הפעלה עקריות:

  • iOS - לא ניתן לטעון קבצים בצורה חיצונית.
  • Android - ניתן לטוען קבצים בצורה חיצונית (בנוסף לחנות הרשמית).
  • WP - לא ניתן לטעון קבצים בצורה חיצונית.

ובמחשב?

  • Windows - ניתן לטעון קבצים בצורה חיצונית (בנוסף לחנות הרשמית).
  • Ubuntu - ניתן לטוען קבצים בצורה חיצונית (בנוסף לחנות הרשמית).
  • OS X - ניתן לטוען קבצים בצורה חיצונית (בנוסף לחנות הרשמית).

 

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

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

 

Root

Chain Android

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

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

  1. משתמשות במשהו במכשיר שלך שלא היה לו את הפונקציה הזאת, היא פשוט לא קיימת.
  2. המשהו (או הפונקציה) הזה מנוטרל.

הרבה מהאפליקציות האלה מועתקות אח”כ ע”י גוגל לתוך אנדרואיד (ורואים את אותו תהליך קורה גם אצל אפל ו iOS עם אפליקציות מה cydia). לדוגמה: היינו צריכים הרשאות root לבצע Tethering כל הנושא התחיל מאפליקציות באנדרואיד של מפתחים מוכשרים שפתחו בפניינו את היכולת הזאת (שאז נקראה פריצה), לאחר מכן האופציה נכנסה באופן מובנה לתוך מערכת האנדרואיד ולבסוף הפיצ’ר מצא את עצמו גם ב iOS. 

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

ועוד המון אפשרויות, כמו:

  • לראות לאן המשתמשים המחוברים לנק’ ה Wifi גולשים והיכולת “לזרוק” אותם מה Wifi (עם wifikill).
  • לבדוק את הרשת שלכם (עם zanti).
  • לנקות את המכשיר שלכם מפרסומות בדפדפן או באפלקיציות השונות (עם adaway או adfree).
  • לגבות אפליקציות ו/או את המידע שלהן (סתם כי נמאס לאבד את הנקודות באנגרי בירדס), או להסיר אפליקציות “מובנות” שהגיעו מהיצרניות או המפעילה הסלולרית (עם titanium backup).
  • לשנות לגמרי את המראה והתחושה של המערכת (עם metamorph).
  • להחליף את אנימציית ההפעלה של המכשיר (עם boot animations).
  • אם תרצו להתקין rom מקוסטם או קרנל או ריקברי (אפליקציות ששולטות בהן צריכות הרשאות root).

 

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

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

 

לסיכום

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