我正在开发一个基于应用程序的防火墙,它拦截应用程序发起的传出互联网请求,以通知用户试图从他的设备(从这些应用程序)访问哪些外部服务器和端口。此安全功能最终将保护用户免受窃取个人数据的恶意软件的侵害。
我正在使用 Linux 安全模块 (LSM) 框架来拦截内核级别的 Internet 套接字请求,以允许或拒绝连接。此请求通过 unix 域套接字发送给用户。有一个应用程序充当守护进程,等待请求警报(unix 域套接字服务器),向用户显示请求信息。这决定是接受还是拒绝连接,并且这个选择被发送回钩子函数(LSM)。
不幸的是,用户被迫安装新内核才能使用此功能,因为 LSM 挂钩函数是在编译时安装的(不再作为内核模块)。
有没有其他方法可以使用互联网套接字来允许或拒绝连接?