신뢰할 수없는 코드를 안전하게 실행하는 방법


3

인터넷에서 다양한 c / c ++ 라이브러리를 다운로드 / 컴파일 / 실행하고 싶습니다. 이들은 대부분 반 구운, 모호하거나 버려진 프로젝트이며, 그중 일부는 의심스러운 출처에서 나왔습니다. 안전한 "샌드 박스"유형의 환경에서 실행되도록하려면 어떻게해야합니까? 파일 시스템 / 네트워크 리소스를 건드리지 않습니다. 함수 호출에 대한 값만 반환해야합니다.

바람직하게는 Win / Linux 모두에 대한 솔루션이지만 적어도 Linux에 대한 솔루션


2
가상 기기?
Alex K

1
코드를 직접 검토 한 다음 컴파일하면 실제로 신뢰할 수 있습니다.
Ramhound

왜 다운 보트인가?
Baruch


:의 부분 집합 superuser.com/questions/690553/run-user-code-safely 또한 서버에서 실행 효율성을 요청,
치로 틸리新疆改造中心996ICU六四事件

답변:


7

Linux의 경우 이는 컨테이너의 이상적인 워크로드입니다. Docker ( http://docker.io ) 를 사용하여 간단하게 수행 할 수 있습니다 . 이를 통해 VM보다 훨씬 빠르게 컨테이너를 몇 초 만에 쉽게 만들고 파괴 할 수 있습니다.

Windows의 경우 내가 아는 한 VM을 사용하고 있습니다.


확실하지 않지만 Windows에서 CAMEYO가 비슷한 것이 아닙니까? cameyo.com
DEVID

0

권한이없는 사용자로 소프트웨어를 실행하면 충분합니다. 루트 에스컬레이션에 취약한 커널을 사용하지 않는 한.

sudo adduser SandBoxGuy
sudo passwd SandBoxGuy

이제 SanBoxGuy로 로그인하여 소프트웨어를 실행하면 소프트웨어가 다른 사용자의 파일에 액세스하거나 SandBoxGuy 사용자 디렉토리 외부의 손상을 수행 할 수 없습니다.

커널이 루트 에스컬레이션에 취약하지 않다고 가정합니다.

더 큰 답변은 여기에서 찾을 수 있습니다 . Raspberry Pi + Xserver를 염두에두고 작성되었지만 모든 Linux 시스템에 적합합니다.


다른 용도로는 여전히 파일을 읽을 수 있지만 OP가 원하지 않는 것일 수 있습니다.
Kritzefitz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.