You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
현재 rpc-playground에서는 채점 요청시 worker(docker container)의 생성-종료가 아래와 같이 발생합니다.
소스코드 컴파일
정해 컴파일
제너레이터 컴파일
데이터 생성 x TC
체커 컴파일
채점 x TC
소스코드 실행 및 출력 저장
정해 실행 및 출력 저장
체커 실행 및 Verdict 저장
총 4개 파일의 컴파일, TC번의 (제너레이터 실행 + 소스코드 실행 + 정해 실행 + 체커 실행)이 도커에서 진행되는데요.
현재 시점의 벤치마크입니다.
TC 3개: 27.0792002s
TC 5개: 30.8045307s
TC 7개: 37.6359289s
TC 9개: 43.3885335s
TC 하나당 초 단위의 오버헤드가 있습니다.
고민되는 부분을 공유합니다.
컴파일 및 프로그램 실행은 샌드박스에서 실행되어야 함이 자명합니다?
executable 실행은 물론이거니와 컴파일 단계에서도 보안 위협이 있을 수 있습니다.
후술할 isolate에서 Security of Grading Systems를 발견했습니다.
격리된 샌드박스는 얼마만큼의 권한을 가지고 있어야 할까요
파일 하나의 컴파일, 파일 하나의 실행에 따로 권한을 두기에는 오버헤드가 너무 커보입니다.
docker pull 등의 방법을 고려하더라도 접근 권한을 어떻게 규정해야 할지 고민입니다.
문제 별로 모든 권한을 갖는 샌드박스를 가져야 할까요?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
현재 rpc-playground에서는 채점 요청시 worker(docker container)의 생성-종료가 아래와 같이 발생합니다.
총 4개 파일의 컴파일, TC번의 (제너레이터 실행 + 소스코드 실행 + 정해 실행 + 체커 실행)이 도커에서 진행되는데요.
현재 시점의 벤치마크입니다.
TC 하나당 초 단위의 오버헤드가 있습니다.
고민되는 부분을 공유합니다.
컴파일 및 프로그램 실행은 샌드박스에서 실행되어야 함이 자명합니다?
executable 실행은 물론이거니와 컴파일 단계에서도 보안 위협이 있을 수 있습니다.
후술할 isolate에서 Security of Grading Systems를 발견했습니다.
격리된 샌드박스는 얼마만큼의 권한을 가지고 있어야 할까요
파일 하나의 컴파일, 파일 하나의 실행에 따로 권한을 두기에는 오버헤드가 너무 커보입니다.
docker pull 등의 방법을 고려하더라도 접근 권한을 어떻게 규정해야 할지 고민입니다.
문제 별로 모든 권한을 갖는 샌드박스를 가져야 할까요?
CMS, codeforces polygon 등은 isolate를 사용한다고 합니다.

이에 대해 공부해봐야 할 듯 합니다.
Beta Was this translation helpful? Give feedback.
All reactions