我可以在 Amazon Lambda 上使用 seccomp

问题描述

我正在尝试使用 Amazon Lambda 来托管一个编程学习平台,我必须在其中执行简单的不受信任的 Python 代码

我最近以一种简单的方式隔离用户代码的尝试是使用 <div id="result-output"></div> 禁用除读取文件和写入 <script> $(document).ready(function(){ $("#rowcount-btn").click(function(){ var sum = 0; $('.rowcount').each(function() { if($(this).val()!="") { sum += parseFloat($(this).val()); } }); // result displayed in HTML tag $("#result-output").html(sum); }); }); </script> /seccomp 之外的任何内容代码看起来像像这样:

stdout

这在本地运行良好,但在 Amazon Lambda 上,它没有找到 stderr 库。

我尝试将 from pyseccomp import * f = SyscallFilter(defaction=KILL) f.add_rule(ALLOW,"open",Arg(1,MASKED_EQ,os.O_RDONLY,os.O_RDONLY | os.O_RDWR | os.O_WRONLY)) f.add_rule(ALLOW,"openat",Arg(2,"read") f.add_rule(ALLOW,"write",Arg(0,EQ,sys.stdout.fileno())) f.add_rule(ALLOW,sys.stderr.fileno())) f.add_rule(ALLOW,"close") f.add_rule(ALLOW,"getdents64") f.add_rule(ALLOW,"exit_group") f.add_rule(ALLOW,"rt_sigaction") f.add_rule(ALLOW,"sigaltstack") f.add_rule(ALLOW,"brk") f.add_rule(ALLOW,"lseek") f.add_rule(ALLOW,"fstat") f.add_rule(ALLOW,"mmap") f.add_rule(ALLOW,"mprotect") f.add_rule(ALLOW,"stat") f.add_rule(ALLOW,"ioctl",0x5401)) # TCGETS f.add_rule(ALLOW,"fcntl") f.load() 从我的 Debian 稳定机器包含在 Amazon Lambda 函数中,并且代码进行到 seccomp,但随后失败了

libseccomp.2

f.load() 返回 Traceback (most recent call last): File "sandBox.py",line 32,in <module> f.load() File "/var/task/pyseccomp.py",line 335,in load _check_status(_libseccomp.seccomp_load(self._filter)) File "/var/task/pyseccomp.py",line 183,in _check_status raise _build_oserror(-res) PermissionError: [Errno 1] Operation not permitted 是否意味着我根本无法在 Amazon Lambda 上使用 seccomp,或者我做错了什么。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)