Безопасность компьютерных систем 2017/SECCOMP — различия между версиями
Материал из Wiki - Факультет компьютерных наук
Gamajun (обсуждение | вклад) (→Тестовый пример 2) |
Gamajun (обсуждение | вклад) (→Тестовый пример 2) |
||
| Строка 9: | Строка 9: | ||
int main() { | int main() { | ||
pid_t pid; | pid_t pid; | ||
| − | |||
scmp_filter_ctx ctx = seccomp_init(SCMP_ACT_TRAP); | scmp_filter_ctx ctx = seccomp_init(SCMP_ACT_TRAP); | ||
| − | |||
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(read), 0); | seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(read), 0); | ||
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(write), 0); | seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(write), 0); | ||
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(sigreturn), 0); | seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(sigreturn), 0); | ||
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(exit_group), 0); | seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(exit_group), 0); | ||
| − | |||
| − | |||
printf ("No restrictions yet\n"); | printf ("No restrictions yet\n"); | ||
| − | |||
seccomp_load(ctx); | seccomp_load(ctx); | ||
pid = getpid(); | pid = getpid(); | ||
| − | |||
printf("!! YOU SHOULD NOT SEE THIS!! My PID is%d\n", pid); | printf("!! YOU SHOULD NOT SEE THIS!! My PID is%d\n", pid); | ||
| − | |||
return 0; | return 0; | ||
} | } | ||
Версия 22:21, 28 ноября 2017
Тестовый пример 2
#include <stdio.h>
#include <seccomp.h>
#include <unistd.h>
#include <sys/fcntl.h>
#include <errno.h>
int main() {
pid_t pid;
scmp_filter_ctx ctx = seccomp_init(SCMP_ACT_TRAP);
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(read), 0);
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(write), 0);
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(sigreturn), 0);
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(exit_group), 0);
printf ("No restrictions yet\n");
seccomp_load(ctx);
pid = getpid();
printf("!! YOU SHOULD NOT SEE THIS!! My PID is%d\n", pid);
return 0;
}