יום שלישי, אוקטובר 15, 2024

יופי שועל האש, באמת תודה שאתם יוצאים על ההפצות במקום לשלוח עידכון בתור חבילת apparmor, ולמה אתם מתעלמים מהאזהרות של אובונטו ?

אז איזה שהיא נשמה טובה מהמתכנתים של פיירפוקס החליטו לשים אזהרה בגרסאות ה ESR כנגד חבילות שמותקנות מדביאן.
 
some of Firefox’s security features may offer less protection on your current operating system

 המלל הוא "some of Firefox’s security features may offer less protection on your current operating system"
 
על מנת להיות בטוח שזה לא משהוא באמת באתרים מסויימים , בחרתי לפתוח בכוונה אתר שהוא 100% בטוח ולא מכין חורים או רושעות , והלכתי "למה קורה ?" ,  וכן , אתם רואים את האזהרה עליו ,הטריגר שראיתי שמפעיל את האזהרה הזאת זה אם לוחצים על קישור מתוכנה כלשהיא ושועל האש מוגדר כדפדפן ברירת המחדל במערכת ההפעלה.
 
האזהרה קופצת רק אם אין תהליך אחר של שועל אש שכבר רץ ורק עם לוחצים על קישור מתוכנה אחרת, אני עשיתי זאת מתוך hexchat.

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

 אני אישית משתמש בפרופיל הישן והטוב, שש בו המון הרשאות ייתר, כי אני כן רוצה שאני אוכל לקרוא קבצים מתיקיות מסויימות ולבצע פעולות שהן חסומות בצורה אחרת אצלי (כן מדובר בפרופיל בן 4 שנים !)  : 
# Last Modified: Sun Jul 26 18:26:51 2020
#include  <tunables/global>

/usr/bin/firefox {
  #include  <abstractions/base>
  #include  <abstractions/bash>
  #include  <abstractions/consoles>

  deny capability sys_ptrace,

  /bin/dash ix,
  /usr/bin/dash rix,
  /usr/bin/firefox r,
  /usr/bin/which mrix,
  /usr/lib/firefox-esr/firefox-esr px,

}
/usr/lib/firefox-esr/firefox-esr {
  #include  <abstractions/audio>
  #include  <abstractions/base>
  #include  <abstractions/dbus-session>
  #include  <abstractions/dri-common>
  #include  <abstractions/fonts>
  #include  <abstractions/nameservice>
  #include  <abstractions/nvidia>
  #include  <abstractions/python>

  signal receive set=vtalrm peer=/usr/lib/firefox-esr/firefox-esr,
  signal send set=term peer=/usr/lib/firefox-esr/plugin-container,
  signal send set=vtalrm peer=/usr/lib/firefox-esr/firefox-esr,

  ptrace read peer=/usr/lib/firefox-esr/firefox-esr//null-/usr/lib/firefox-esr/firefox-esr,

  deny owner /usr/lib/firefox-esr/fonts/* rw,
  deny owner @{HOME}/.local/share/applications/javaws/ r,

  /dev/ r,
  /dev/dri/ r,
  /dev/dri/* rw,
  /etc/firefox-esr/ r,
  /etc/firefox-esr/* r,
  #/etc/fstab r,
  /etc/glvnd/egl_vendor.d/ r,
  /etc/glvnd/egl_vendor.d/** r,
  /etc/mailcap r,
  /etc/mime.types r,
  /sys/class/ r,
  /sys/class/** r,
  /sys/devices/** r,
  /sys/fs/cgroup/** r,
  /tmp/ r,
  /usr/bin/ r,
  /usr/bin/dash rix,
  /usr/bin/lsb_release mrix,
  /usr/bin/python3.7 rix,
  /usr/bin/pulseaudio rix,
  /usr/lib/firefox-esr/** r,
  /usr/lib/firefox-esr/firefox-esr mrix,
  /usr/lib/firefox-esr/plugin-container rix,
  /usr/share/applications/ r,
  /usr/share/applications/* r,
  /usr/share/distro-info/debian.csv r,
  /usr/share/firefox-esr/** r,
  /usr/share/glib-2.0/schemas/** r,
  /usr/share/glvnd/egl_vendor.d/ r,
  /usr/share/glvnd/egl_vendor.d/** r,
  /usr/share/hunspell/ r,
  /usr/share/hunspell/* r,
  /usr/share/icons/ r,
  /usr/share/icons/** r,
  /usr/share/mime/** r,
  /usr/share/mozilla/** r,
  /usr/share/nvidia/* r,
  /usr/share/pixmaps/ r,
  /usr/share/themes/** r,
  /var/tmp/ r,
  /var/lib/flatpak/exports/** r,
  @{PROC}/@{pid}/net/arp r,
  @{PROC}/devices r,
  owner /dev/shm/org.chromium.* rw,
  owner /dev/shm/org.mozilla.ipc.* rw,
  owner /run/user/*/dconf/user rw,
  owner /tmp/** mrwk,
  owner @{HOME}/ r,
  owner @{HOME}/.local/share/flatpak/exports/** r,
  owner @{HOME}/.local/share/icons/ r,  
  owner @{HOME}/.local/share/icons/** r,  
  /var/lib/flatpak/exports/share/icons/ r,
  /var/lib/flatpak/exports/share/icons/** r,
  owner @{HOME}/#[0-9][0-9]* mrw,
  owner @{HOME}/.Xauthority r,
  owner @{HOME}/.cache/dconf/user rw,
  owner @{HOME}/.cache/fontconfig/* rw,
  owner @{HOME}/.cache/mesa_shader_cache/index rw,
  owner @{HOME}/.cache/mozilla/firefox/** rwk,
  owner @{HOME}/.config/dconf/user r,
  owner @{HOME}/.config/mimeapps.list r,
  owner @{HOME}/.config/mimeapps.list.* w,
  owner @{HOME}/.config/user-dirs.dirs r,
  owner @{HOME}/.glvnd* mrw,
#  owner @{HOME}/.local/share/recently-used.xbel* rw,
  owner @{HOME}/.local/share/applications/ r,
  owner @{HOME}/.local/share/applications/userapp-Firefox-*.desktop rw,
  owner @{HOME}/.local/share/icons/** r,
  owner @{HOME}/.local/share/mime/* r,
  owner @{HOME}/.local/share/applications/mimeinfo.cache r,
  owner @{HOME}/Downloads/ rw,
  owner @{HOME}/Downloads/* rw,
  owner @{HOME}/.mozilla/ r,
  owner @{HOME}/.mozilla/firefox/** rwk,
  owner @{HOME}/.mozilla/firefox/*/gmp-widevinecdm/*/libwidevinecdm.so m,
  owner @{HOME}/.nv/.gl* mrw,
  owner @{HOME}/.gtkrc-2.0 r,
  owner @{HOME}/.config/gtk-3.0/settings.ini r,
  owner @{HOME}/.config/gtk-3.0/gtk.css r,
  owner @{HOME}/.config/gtk-3.0/colors.css r,
  owner @{HOME}/.config/gtk-3.0/window_decorations.css r,
  owner @{HOME}/.config/gtk-3.0/assets/** r,
  owner @{HOME}/public/ r,
  owner @{HOME}/public/** rw,
  owner @{PROC}/@{pid}/cgroup r,
  owner @{PROC}/@{pid}/comm r,
  owner @{PROC}/@{pid}/fd/ r,
  owner @{PROC}/@{pid}/mountinfo r,
  owner @{PROC}/@{pid}/smaps r,
  owner @{PROC}/@{pid}/stat r,
  owner @{PROC}/@{pid}/statm r,
  owner @{PROC}/@{pid}/task/** r,

  @{HOME}/.steam/debian-installation/userdata/** r,

לעומת זאת , הם מבקשים שאנחנו נשתמש בפרופיל הבא:
# This profile allows everything and only exists to give the

# application a name instead of having the label "unconfined"

abi  <abi/4.0>,

include  <tunables/global>

profile firefox-local

/home/USER>/bin/firefox/{firefox,firefox-bin,updater}

flags=(unconfined) {

    userns, 

    # Site-specific additions and overrides. See local/README for details. 

    include if exists <local/firefox> 

} 

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

עכשיו במקום שנראה הרשאות מדוייקות והראשות לכל מני תיקיות יש פה שימוש של הוספה userns , זה גם לא מכסה את firefox-esr כלל!.

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


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

הכי זה טוב זה שכולם ישתמשו ב elinks ו w3m (למרות ש ב elinks יש לי תמיד בעיות ).

עריכה: 

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

אין תגובות: