summaryrefslogtreecommitdiff
path: root/sys/secmodel
diff options
context:
space:
mode:
authorelad <elad@NetBSD.org>2007-11-21 22:49:05 +0000
committerelad <elad@NetBSD.org>2007-11-21 22:49:05 +0000
commit6887492c261e6d27ac6fa6294fb8552ffcfd0c49 (patch)
tree78d111bde1dabc4e6b5af527827c1adb7b37e3e1 /sys/secmodel
parente3e9b753513368b9a76956e04b089d78306a974d (diff)
Make securelevel a "secmodel" of its own.
While it's true that it's part of the traditional 4.4BSD security model, there may come a time where a different "primary" security model used for fine-grained privileges (ie., splitting root's responsibilities to various privileges that can be assigned) may want to still have a securelevel setting. Idea from Daniel Carosone: http://mail-index.netbsd.org/tech-security/2006/08/25/0001.html The location of the removed files, for reference, was: src/secmodel/bsd44/secmodel_bsd44_securelevel.c src/secmodel/bsd44/securelevel.h
Diffstat (limited to 'sys/secmodel')
-rw-r--r--sys/secmodel/bsd44/files.bsd445
-rw-r--r--sys/secmodel/bsd44/secmodel_bsd44.c12
-rw-r--r--sys/secmodel/bsd44/secmodel_bsd44_logic.c8
-rw-r--r--sys/secmodel/files.secmodel7
-rw-r--r--sys/secmodel/securelevel/files.securelevel5
-rw-r--r--sys/secmodel/securelevel/secmodel_securelevel.c (renamed from sys/secmodel/bsd44/secmodel_bsd44_securelevel.c)40
-rw-r--r--sys/secmodel/securelevel/securelevel.h (renamed from sys/secmodel/bsd44/securelevel.h)28
7 files changed, 57 insertions, 48 deletions
diff --git a/sys/secmodel/bsd44/files.bsd44 b/sys/secmodel/bsd44/files.bsd44
index 3896b843921..5f006461cb2 100644
--- a/sys/secmodel/bsd44/files.bsd44
+++ b/sys/secmodel/bsd44/files.bsd44
@@ -1,9 +1,8 @@
-# $NetBSD: files.bsd44,v 1.1 2006/09/08 20:58:57 elad Exp $
+# $NetBSD: files.bsd44,v 1.2 2007/11/21 22:49:07 elad Exp $
defflag secmodel_bsd44_logic
-defflag secmodel_bsd44 : secmodel_bsd44_logic
+defflag secmodel_bsd44 : secmodel_bsd44_logic, secmodel_securelevel
file secmodel/bsd44/secmodel_bsd44.c secmodel_bsd44
file secmodel/bsd44/secmodel_bsd44_logic.c secmodel_bsd44_logic
file secmodel/bsd44/secmodel_bsd44_suser.c secmodel_bsd44_logic
-file secmodel/bsd44/secmodel_bsd44_securelevel.c secmodel_bsd44_logic
diff --git a/sys/secmodel/bsd44/secmodel_bsd44.c b/sys/secmodel/bsd44/secmodel_bsd44.c
index e27465d1f38..0ea41f658cb 100644
--- a/sys/secmodel/bsd44/secmodel_bsd44.c
+++ b/sys/secmodel/bsd44/secmodel_bsd44.c
@@ -1,4 +1,4 @@
-/* $NetBSD: secmodel_bsd44.c,v 1.10 2007/01/16 11:53:00 elad Exp $ */
+/* $NetBSD: secmodel_bsd44.c,v 1.11 2007/11/21 22:49:07 elad Exp $ */
/*-
* Copyright (c) 2006 Elad Efrat <elad@NetBSD.org>
* All rights reserved.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: secmodel_bsd44.c,v 1.10 2007/01/16 11:53:00 elad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: secmodel_bsd44.c,v 1.11 2007/11/21 22:49:07 elad Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -39,7 +39,7 @@ __KERNEL_RCSID(0, "$NetBSD: secmodel_bsd44.c,v 1.10 2007/01/16 11:53:00 elad Exp
#include <secmodel/bsd44/bsd44.h>
#include <secmodel/bsd44/suser.h>
-#include <secmodel/bsd44/securelevel.h>
+#include <secmodel/securelevel/securelevel.h>
SYSCTL_SETUP(sysctl_security_bsd44_setup,
"sysctl security bsd44 setup")
@@ -82,7 +82,7 @@ SYSCTL_SETUP(sysctl_security_bsd44_setup,
CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
CTLTYPE_INT, "securelevel",
SYSCTL_DESCR("System security level"),
- secmodel_bsd44_sysctl_securelevel, 0, NULL, 0,
+ secmodel_securelevel_sysctl, 0, NULL, 0,
CTL_CREATE, CTL_EOL);
sysctl_createv(clog, 0, &rnode, NULL,
@@ -100,7 +100,7 @@ secmodel_bsd44_start(void)
secmodel_bsd44_init();
secmodel_bsd44_suser_start();
- secmodel_bsd44_securelevel_start();
+ secmodel_securelevel_start();
secmodel_register();
}
@@ -110,7 +110,7 @@ void
secmodel_bsd44_stop(void)
{
secmodel_bsd44_suser_stop();
- secmodel_bsd44_securelevel_stop();
+ secmodel_securelevel_stop();
secmodel_deregister();
}
diff --git a/sys/secmodel/bsd44/secmodel_bsd44_logic.c b/sys/secmodel/bsd44/secmodel_bsd44_logic.c
index d447294ded6..c13362c9665 100644
--- a/sys/secmodel/bsd44/secmodel_bsd44_logic.c
+++ b/sys/secmodel/bsd44/secmodel_bsd44_logic.c
@@ -1,4 +1,4 @@
-/* $NetBSD: secmodel_bsd44_logic.c,v 1.3 2007/01/09 12:57:56 elad Exp $ */
+/* $NetBSD: secmodel_bsd44_logic.c,v 1.4 2007/11/21 22:49:07 elad Exp $ */
/*-
* Copyright (c) 2006 Elad Efrat <elad@NetBSD.org>
* All rights reserved.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: secmodel_bsd44_logic.c,v 1.3 2007/01/09 12:57:56 elad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: secmodel_bsd44_logic.c,v 1.4 2007/11/21 22:49:07 elad Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -37,7 +37,7 @@ __KERNEL_RCSID(0, "$NetBSD: secmodel_bsd44_logic.c,v 1.3 2007/01/09 12:57:56 ela
#include <secmodel/bsd44/bsd44.h>
#include <secmodel/bsd44/suser.h>
-#include <secmodel/bsd44/securelevel.h>
+#include <secmodel/securelevel/securelevel.h>
int secmodel_bsd44_curtain;
@@ -47,6 +47,6 @@ int secmodel_bsd44_curtain;
void
secmodel_bsd44_init(void)
{
- secmodel_bsd44_securelevel_init();
+ secmodel_securelevel_init();
secmodel_bsd44_curtain = 0;
}
diff --git a/sys/secmodel/files.secmodel b/sys/secmodel/files.secmodel
index c2eaadc0485..d0f18d67a39 100644
--- a/sys/secmodel/files.secmodel
+++ b/sys/secmodel/files.secmodel
@@ -1,4 +1,9 @@
-# $NetBSD: files.secmodel,v 1.1 2006/09/08 20:58:56 elad Exp $
+# $NetBSD: files.secmodel,v 1.2 2007/11/21 22:49:07 elad Exp $
+
+#
+# Traditional 4.4BSD - Securelevel
+#
+include "secmodel/securelevel/files.securelevel"
#
# Traditional NetBSD (derived from 4.4BSD)
diff --git a/sys/secmodel/securelevel/files.securelevel b/sys/secmodel/securelevel/files.securelevel
new file mode 100644
index 00000000000..edaff734e7b
--- /dev/null
+++ b/sys/secmodel/securelevel/files.securelevel
@@ -0,0 +1,5 @@
+# $NetBSD: files.securelevel,v 1.1 2007/11/21 22:49:09 elad Exp $
+
+defflag secmodel_securelevel
+
+file secmodel/securelevel/secmodel_securelevel.c secmodel_securelevel
diff --git a/sys/secmodel/bsd44/secmodel_bsd44_securelevel.c b/sys/secmodel/securelevel/secmodel_securelevel.c
index fd0a0614295..67d43e31e3c 100644
--- a/sys/secmodel/bsd44/secmodel_bsd44_securelevel.c
+++ b/sys/secmodel/securelevel/secmodel_securelevel.c
@@ -1,4 +1,4 @@
-/* $NetBSD: secmodel_bsd44_securelevel.c,v 1.30 2007/07/09 21:11:31 ad Exp $ */
+/* $NetBSD: secmodel_securelevel.c,v 1.1 2007/11/21 22:49:09 elad Exp $ */
/*-
* Copyright (c) 2006 Elad Efrat <elad@NetBSD.org>
* All rights reserved.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: secmodel_bsd44_securelevel.c,v 1.30 2007/07/09 21:11:31 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: secmodel_securelevel.c,v 1.1 2007/11/21 22:49:09 elad Exp $");
#ifdef _KERNEL_OPT
#include "opt_insecure.h"
@@ -52,7 +52,7 @@ __KERNEL_RCSID(0, "$NetBSD: secmodel_bsd44_securelevel.c,v 1.30 2007/07/09 21:11
#include <miscfs/specfs/specdev.h>
-#include <secmodel/bsd44/securelevel.h>
+#include <secmodel/securelevel/securelevel.h>
static int securelevel;
@@ -63,7 +63,7 @@ static kauth_listener_t l_system, l_process, l_network, l_machdep, l_device;
* only rises unless the caller has pid 1 (assumed to be init).
*/
int
-secmodel_bsd44_sysctl_securelevel(SYSCTLFN_ARGS)
+secmodel_securelevel_sysctl(SYSCTLFN_ARGS)
{
int newsecurelevel, error;
struct sysctlnode node;
@@ -84,7 +84,7 @@ secmodel_bsd44_sysctl_securelevel(SYSCTLFN_ARGS)
}
void
-secmodel_bsd44_securelevel_init(void)
+secmodel_securelevel_init(void)
{
#ifdef INSECURE
securelevel = -1;
@@ -93,8 +93,8 @@ secmodel_bsd44_securelevel_init(void)
#endif /* INSECURE */
}
-SYSCTL_SETUP(sysctl_security_bsd44_securelevel_setup,
- "sysctl security bsd44 securelevel setup")
+SYSCTL_SETUP(sysctl_security_securelevel_setup,
+ "sysctl security securelevel setup")
{
/*
* For compatibility, we create a kern.securelevel variable.
@@ -109,28 +109,28 @@ SYSCTL_SETUP(sysctl_security_bsd44_securelevel_setup,
CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
CTLTYPE_INT, "securelevel",
SYSCTL_DESCR("System security level"),
- secmodel_bsd44_sysctl_securelevel, 0, NULL, 0,
+ secmodel_securelevel_sysctl, 0, NULL, 0,
CTL_KERN, KERN_SECURELVL, CTL_EOL);
}
void
-secmodel_bsd44_securelevel_start(void)
+secmodel_securelevel_start(void)
{
l_system = kauth_listen_scope(KAUTH_SCOPE_SYSTEM,
- secmodel_bsd44_securelevel_system_cb, NULL);
+ secmodel_securelevel_system_cb, NULL);
l_process = kauth_listen_scope(KAUTH_SCOPE_PROCESS,
- secmodel_bsd44_securelevel_process_cb, NULL);
+ secmodel_securelevel_process_cb, NULL);
l_network = kauth_listen_scope(KAUTH_SCOPE_NETWORK,
- secmodel_bsd44_securelevel_network_cb, NULL);
+ secmodel_securelevel_network_cb, NULL);
l_machdep = kauth_listen_scope(KAUTH_SCOPE_MACHDEP,
- secmodel_bsd44_securelevel_machdep_cb, NULL);
+ secmodel_securelevel_machdep_cb, NULL);
l_device = kauth_listen_scope(KAUTH_SCOPE_DEVICE,
- secmodel_bsd44_securelevel_device_cb, NULL);
+ secmodel_securelevel_device_cb, NULL);
}
#if defined(_LKM)
void
-secmodel_bsd44_securelevel_stop(void)
+secmodel_securelevel_stop(void)
{
kauth_unlisten_scope(l_system);
kauth_unlisten_scope(l_process);
@@ -148,7 +148,7 @@ secmodel_bsd44_securelevel_stop(void)
* Responsibility: Securelevel
*/
int
-secmodel_bsd44_securelevel_system_cb(kauth_cred_t cred,
+secmodel_securelevel_system_cb(kauth_cred_t cred,
kauth_action_t action, void *cookie, void *arg0, void *arg1,
void *arg2, void *arg3)
{
@@ -267,7 +267,7 @@ secmodel_bsd44_securelevel_system_cb(kauth_cred_t cred,
* Responsibility: Securelevel
*/
int
-secmodel_bsd44_securelevel_process_cb(kauth_cred_t cred,
+secmodel_securelevel_process_cb(kauth_cred_t cred,
kauth_action_t action, void *cookie, void *arg0,
void *arg1, void *arg2, void *arg3)
{
@@ -335,7 +335,7 @@ secmodel_bsd44_securelevel_process_cb(kauth_cred_t cred,
* Responsibility: Securelevel
*/
int
-secmodel_bsd44_securelevel_network_cb(kauth_cred_t cred,
+secmodel_securelevel_network_cb(kauth_cred_t cred,
kauth_action_t action, void *cookie, void *arg0,
void *arg1, void *arg2, void *arg3)
{
@@ -381,7 +381,7 @@ secmodel_bsd44_securelevel_network_cb(kauth_cred_t cred,
* Responsibility: Securelevel
*/
int
-secmodel_bsd44_securelevel_machdep_cb(kauth_cred_t cred,
+secmodel_securelevel_machdep_cb(kauth_cred_t cred,
kauth_action_t action, void *cookie, void *arg0,
void *arg1, void *arg2, void *arg3)
{
@@ -417,7 +417,7 @@ secmodel_bsd44_securelevel_machdep_cb(kauth_cred_t cred,
* Responsibility: Securelevel
*/
int
-secmodel_bsd44_securelevel_device_cb(kauth_cred_t cred,
+secmodel_securelevel_device_cb(kauth_cred_t cred,
kauth_action_t action, void *cookie, void *arg0,
void *arg1, void *arg2, void *arg3)
{
diff --git a/sys/secmodel/bsd44/securelevel.h b/sys/secmodel/securelevel/securelevel.h
index e3162652b7b..f9f98f7f1fc 100644
--- a/sys/secmodel/bsd44/securelevel.h
+++ b/sys/secmodel/securelevel/securelevel.h
@@ -1,4 +1,4 @@
-/* $NetBSD: securelevel.h,v 1.5 2007/01/09 12:57:56 elad Exp $ */
+/* $NetBSD: securelevel.h,v 1.1 2007/11/21 22:49:09 elad Exp $ */
/*-
* Copyright (c) 2006 Elad Efrat <elad@NetBSD.org>
* All rights reserved.
@@ -26,28 +26,28 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef _SECMODEL_BSD44_SECURELEVEL_H_
-#define _SECMODEL_BSD44_SECURELEVEL_H_
+#ifndef _SECMODEL_SECURELEVEL_SECURELEVEL_H_
+#define _SECMODEL_SECURELEVEL_SECURELEVEL_H_
-int secmodel_bsd44_sysctl_securelevel(SYSCTLFN_PROTO);
+int secmodel_securelevel_sysctl(SYSCTLFN_PROTO);
-void secmodel_bsd44_securelevel_init(void);
-void secmodel_bsd44_securelevel_start(void);
+void secmodel_securelevel_init(void);
+void secmodel_securelevel_start(void);
#if defined(_LKM)
-void secmodel_bsd44_securelevel_stop(void);
-SYSCTL_SETUP_PROTO(sysctl_security_bsd44_securelevel_setup);
+void secmodel_securelevel_stop(void);
+SYSCTL_SETUP_PROTO(sysctl_security_securelevel_setup);
#endif /* _LKM */
-int secmodel_bsd44_securelevel_system_cb(kauth_cred_t, kauth_action_t, void *,
+int secmodel_securelevel_system_cb(kauth_cred_t, kauth_action_t, void *,
void *, void *, void *, void *);
-int secmodel_bsd44_securelevel_process_cb(kauth_cred_t, kauth_action_t, void *,
+int secmodel_securelevel_process_cb(kauth_cred_t, kauth_action_t, void *,
void *, void *, void *, void *);
-int secmodel_bsd44_securelevel_network_cb(kauth_cred_t, kauth_action_t, void *,
+int secmodel_securelevel_network_cb(kauth_cred_t, kauth_action_t, void *,
void *, void *, void *, void *);
-int secmodel_bsd44_securelevel_machdep_cb(kauth_cred_t, kauth_action_t, void *,
+int secmodel_securelevel_machdep_cb(kauth_cred_t, kauth_action_t, void *,
void *, void *, void *, void *);
-int secmodel_bsd44_securelevel_device_cb(kauth_cred_t, kauth_action_t, void *,
+int secmodel_securelevel_device_cb(kauth_cred_t, kauth_action_t, void *,
void *, void *, void *, void *);
-#endif /* !_SECMODEL_BSD44_SECURELEVEL_H_ */
+#endif /* !_SECMODEL_SECURELEVEL_SECURELEVEL_H_ */