2009-05-20 2 views
2

리눅스에서 임의의 파이썬 스크립트를 안전하게 실행할 수있는 환경을 만들 수 있습니까? 그 스크립트는 신뢰할 수없는 사람들로부터받은 것으로 추정되며 수동으로 확인하기에는 너무 큰 스크립트 일 수 있습니다.리눅스에서 안전한 파이썬 환경

매우 강력한 솔루션은 가상 머신을 생성하고 신뢰할 수없는 스크립트를 실행할 때마다 초기 상태로 복원하는 것입니다. (너무 비싸다.)

파이썬이 파일 시스템에 액세스하거나 다른 프로그램과 상호 작용하는 것을 제한 할 수 있는지 궁금하다.

+0

유사 품질 평가 점수 리눅스 나 유닉스에서 샌드 박스/수감 프로세스에 대한 : * http://unix.stackexchange.com/q/6433/4319 * http://stackoverflow.com/q/3859710/94687 * http://stackoverflow.com/q/4410447/94687 * http://stackoverflow.com/q/4249063/94687 * http://stackoverflow.com/q/1019707/94687 –

답변

4

chroot로 사용을 고려

: "샌드 박스 파이썬"에 대한 예컨대을 검색해보십시오. 이것은 매우 안전하고, 잘 지원되고 테스트 될뿐만 아니라 파이썬에서 실행되는 외부 어플리케이션에도 적용됩니다.

2

jython을 실행하고 JVM의 샌드 박스 메커니즘을 사용할 수 있습니다. JVM에서의 샌드 박싱은 매우 강력하고 잘 이해되며 다소 잘 문서화되어 있습니다. 당신이 허용하고 싶고 dnt 할 수있는 것을 정확히 정의하는 데는 다소 시간이 걸릴 것입니다.하지만 그로부터 매우 강력한 보안을 얻을 수 있어야합니다 ...

반면에 자이 썬은 100이 아닙니다. CPython과 호환 % ...

4

당신이 시도 할 수 4 가지가 있습니다

  • 이미 언급 한 바와 같이, 가상 머신 또는 가상화의 다른 양식을 사용하여가 (아마도 Solaris 영역이 충분히 경량?). 스크립트가 OS를 깨뜨린다면 당신은 상관하지 않습니다.
  • chroot를 사용하면 쉘 세션을 가상 루트 디렉토리에두고 기본 OS 루트 디렉토리와 구분됩니다.
  • systrace를 사용하십시오. 이것을 시스템 호출 용 방화벽으로 생각하십시오. 그것은 자신의 프로세스 테이블을의 각 감옥 제공은 Systrace에 빌드 "감옥"를 사용

은 Systrace 최근, 그래서 인식 손상되었습니다.

1

그 디렉토리에있는 스크립트 이외에 아무 것도 액세스 할 수없는 사용자로 실행할 수 없습니까?

관련 문제