微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以在 Amazon Lambda 上使用 seccomp

如何解决我可以在 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 举报,一经查实,本站将立刻删除。