-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
criteria for kernel module blacklisting / disabling / Suggestions for kernel modules blacklisted in /etc/modprobe.d/30_security-misc.conf #224
Comments
Hello, thanks for your suggestions. Many of these seem certainly very actionable. However. given the number of modules to be disabled, it may take some time to review. Have you tested all these settings on Kicksecure yourself to ensure none of them cause any breakages for you? Note: Some discussion may or may not occur on the Whonix forums. |
Some seem extreme with no clear rationale provided. Such as:
|
Thanks for your replies. I edited the post as suggested by @souchikjoardar201. |
Good question, the second option. Outdated/old and could be used for attack surface. So I try these with a kicksecure virtualbox. No issues at the moment. What are the tests I could use for more results ? |
|
#235 makes me question what the scope for kernel module blacklisting / disabling. Some criteria is needed such as:
Please suggest criteria. |
Maybe good to reconsider the history of
But it seems now we're getting ahead / taking the lead / blacklisting / disabling everything and the kitchen sink without much rationale / error handling. Will comment in #236 too. |
I would agree that some of the discussion has been based on research and other distributions. However, the majority of kernel modules actually disabled have been on the basis attack surface reduction by blocking "obscure/rare/uncommon/legacy" networking protocols and file systems". See e0aa676, a813e7d, 18d67db, 61ef9bd, ef1ef99, 06f13bb, and many more. I strongly agree that we should develop some sort of criteria. |
It needs a rationale. If an incoming incoming network package can result in auto loading a kernel module (such as IRC), which may then be vulnerable, we have a good rationale to block loading it. Need to consider the code flow. Can a non-root user make a kernel module load and would that widen the attack surface by loading a module which is most likely just legacy? Then we have another good rationale to block loading it. Blocking obscure file systems is also good because if a device gets connected with a nowadays obscure / unexpected filesystem. A good reason to block a kernel module is also if security researcher(s) make a good argument why that should be done. However, common functionality should not be blocked. |
As said in #239:
|
Through issue: I learned, the only thing we blacklisted was This had resulted in multiple kernel modules not loading.
So in theory, one could report a bug:
This would be technically correct. But who has really the time to read through thousands of kernel modules and build a complete list? I don't think we have this capability. |
Digital Video Broadcasting
install dvb_core /bin/true # Core module for DVB devices
install dvb_usb_rtl2832u /bin/true # DVB-T USB devices with RTL2832U chipset
install dvb_usb_rtl28xxu /bin/true # DVB-T USB devices with RTL28xx chipset
install dvb_usb_v2 /bin/true # Newer DVB USB framework
install rtl2830 /bin/true # Realtek RTL2830 DVB-T receiver
install rtl2832 /bin/true # Realtek RTL2832 DVB-T receiver
install rtl2832_sdr /bin/true # RTL2832-based SDR devices
install rtl2838 /bin/true # Realtek RTL2838 DVB-T receiver
Point-to-Point Protocols
install ppp_async /bin/true # Point-to-Point Protocol for asynchronous connections
install ppp_deflate /bin/true # Compression module for PPP
install ppp_generic /bin/true # Generic PPP support
install pppoe /bin/true # PPP over Ethernet
install pppox /bin/true # PPP over various transports
install slhc /bin/true # SLIP/PPP compression and decompression
Intel Platform Monitoring Technology Telemetry (Intel-PMT)
install pmt_class /bin/true # Platform Monitoring Telemetry (Intel)
install pmt_telemetry /bin/true # Platform Monitoring Telemetry (Intel)
Network Drivers
install brcm80211 /bin/true # Very old Broadcom wireless driver
install cfg80211 /bin/true # Wireless API for a very old Broadcom device
install eepro100 /bin/true # Very old network driver
install eth1394 /bin/true # Very old network driver
install rtl8187 /bin/true # Realtek RTL8187 wireless LAN driver
Miscellaneous Drivers
install fddi /bin/true # Fiber Distributed Data Interface
install floppy /bin/true
install hamradio /bin/true # Amateur radio protocol
install ib_ipoib /bin/true # InfiniBand over IP
install joydev /bin/true # Joystick support
install lp /bin/true # Printer support for parallel port
install parport /bin/true # Parallel port support
install tr /bin/true # Token Ring protocol
install uvcvideo /bin/true # USB Video Class driver
FileSystem
install jfs /bin/true # IBM's Journaled File System
install reiserfs /bin/true # ReiserFS filesystem
install squashfs /bin/true # SquashFS filesystem
Blacklisted : Make this optional and can be loaded later
blacklist amdgpu
blacklist b43 # Quite old Broadcom wireless driver
blacklist exfat
blacklist iwlwifi # Intel wireless driver
blacklist mac80211 # Printer support for parallel port
blacklist ntfs
blacklist nvidia
blacklist radeon
blacklist usb_storage
blacklist uinput # User-level input driver
The text was updated successfully, but these errors were encountered: