개요
사용자가 엘릭서 코드를 입력하면 실행한 뒤 그 결과값을 반환하는 엘릭서 어플리케이션을 만들고 있는데, 이런 앱에서는 보안이 정말 중요합니다. 인터넷 어딘가에 존재하는 해커가 작성한 악질적인 코드를 실행하게될 수도 있으니까요. 이런 것을 만들어보는 것은 처음이라서 좋은 해법이 있나 찾아봤습니다.
안타깝게도 항상 그러하듯이 완벽한 해법은 없었습니다. 득실을 저울질해본 결과 보안 설정을 해놓은 도커 컨테이너를 사용하기로 결정했는데, 제 경우에는 적절한 보안과 성능을 제공하는 안이라고 생각합니다. 이 글에서는 이 앱을 만드는 과정에서 어떤 것을 배웠나 기록하고자 합니다.
이 주제에 관해서는 저도 초보기 때문에 이 글은 기술적 분석이 아니라 개인적인 경험담으로 읽어주셨으면 좋겠습니다. 혹시 틀린 내용이 있으면 지적해주시고, 추가적으로 볼만한 자료가 있으면 알려주시면 감사드리겠습니다. 참고로 샌드박싱 기술 전반 현황을 보시고 싶으시면 Marek(@majek04)가 작성한 Sandboxing landscape를 추천드리고 싶습니다. 제가 판단할 수 있는 수준 하에서는 최신 정보를 폭 넓게 망라한 글입니다.