Project/Javascript isolation bypass(2)
-
VM2와 문제점
VM2는 VM을 기반으로 만들어진 js 코드 격리 라이브러리이다. VM2는 VM에 membrane를 추가하여 만든 방어막이다.아래 와 같은 코드를 VM에서 사용했을 경우, 호스트 context를 탈출 가능했을 것이다. 하지만, Vm2에서는 오류가 발생된다. 즉 추가적인 방어막을 통하여 적절히 방어한 것이다. 하지만 아래는 vm2에서 발생된 CVE이다. try catch 구문을 이용하게 되면 exception이 발생하게 되고, 이는 host 코드에서 에러를 넘겨주고 이는 host에서 온 객체임으로 이를 타고 넘어갈 수 있다.
2025.01.18 -
javascript 격리 기술 . VM
javascript 격리 기술에 대해서 설명해보고자 한다. client 혹은 server 단에서 자바스크립트를 많이 사용한다. 이때 많은 라이브러리를 참조하는데, 참조한 라이브러리가 안전한 라이브러리인지 판단하기 힘들다. 예시로 참조한 라이브러리가 오류로 무한 로딩되는 문제가 있는데 이를 서버단의 코드로 import하여 사용했다간 서버가 멈출 수 있다. 이외에도 악의적으로 악성 라이브러리가 존재하여 서버 단을 망가트리는 코드가 존재할 수 있다. 이러한 경우를 방지하기 위해서 javascript 격리 기술을 사용한다. javascript 격리 라이브러리는 많이 존재한다. isolate-vm, vm2 등등이 있다. 방법에 따라 달라지는데 런타임 격리 기술과 언어 기반 격리 기술이 있다. 이런한 격리 기술..
2025.01.17