Безопасность компьютерных систем 2017/SECCOMP — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Тестовый пример 2)
(Тестовый пример 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;
 }