웹 컴파일러 기능을 지원하려고 하는데 악성 코드로 인해서 서버가 다운될 경우를 우려하여 도커를 샌드박스 용도로 사용하려고 합니다. 매 코드 컴파일 요청마다 도커로 컴파일러 샌드박스를 띄우는 방식으로 진행할 것 같습니다.
처음 생각했을 때 소스 코드 안에 블랙리스트 코드가 있는지 검사하는 방식이 있을텐데 커버 해야 할 범위가 너무 넓어 도커를 사용하는 것이 더 간편할 것이라고 생각했습니다.
그러나 도커를 매번 띄우면 성능이 너무 낮아질 것 같아 걱정이 되고, 도커를 사용해도 완벽하게 악의적인 공격을 차단할 수는 없을 것 같아 고민이 됩니다.
도커, 코드 분석이 아니라 다른 방법으로 악의적인 코드 주입을 막을 수 있는 방법이 있을까요?
혹은 보통 웹 컴파일러나 알고리즘 서버에서 코드를 실행할 때 샌드박스 환경을 어떤 식으로 구축하는지 궁금합니다!
→ 도메인에 종속적인 주제
→ 웹에서 타 언어 (c, python, java) 등을 컴파일해서 보여주기 위함?
Javascript 컴파일 계획하고 있습니다.
이런 경험을 해본적이 없음 → 정답을 제공드리긴 힘들고
- 정적분석기를 도입 → 코드 자체에 대해서 컴파일 하기 전에 분석 → 느릴 수 있음 → 효과적일까?
- 코드 퀄리티
- 보안 이슈
- 무한루프
- …
서버 한대를 컴파일 용도로만 쓰자
express → request → 로컬에서 실행해서 결과를 response
도커에다가 직접 해당 코드를 실행을 해보고 → 정상적으로 실행 되면 → 결과값을 긁어서 돌려주거나, 죽으면 끝
도커 → 격리 → 실행 → 정상적으로 되는지 → 도커 자체가 굉장히 느릴 수 있다 → image →
run 자체가 엄청 오래걸리진 않는다
→ entrypoint에서 뭔가 하는게 많으면 오래 걸릴 수 있다.
→ dockerfile에다 뭔가를 정의를 해놓는데
이미 만들어진 docker container를 계속 실행
[ubuntu → node → npm → package]
안정성 → Docker