MTD란 무엇일까? 말 그대로의 의미를 받아들인다면 moving target defense로 사이버보안 전력에서 혁신적인 해결책으로 주목받고 있다는 부분이다.

 

이 내용은 아주 오래된 내용이다 실제로 관련된 내용은 2011년 12월에 발표한 자료를 바탕으로 하기 때문이다.

하지만 생각해볼만한 주제이기도 하다.

 

우리는 공격자에게 일정한 코드흐름을 제공해 주고 있다. 이것은 공격자의 입장에서 엄청나게 큰 혜택을 받고있는 부분이다. 왜냐하면 일반적인 솔루션이나 프로그램들은 재배포의 기간이 상당부분 걸리기 때문이다 이 상당부분을 낮추고 낮춰서 낮춘다고 할지라도 기본적인 QA프로세스와, 사용자의 불만사항을 감당하기 위해서는 1주단위의 업데이트도 엄청나게 짧은 기간임을 생각할 필요가 있다.

 

이러한 관전에서 공격의 대상이 되는 Target이 moving한다는 의미는 매우 의미있는 이야기로 들린다.

OS를 다변화 하고, Memory Address를 다변화 하고 등등의 개념이 들어간다.

 

하지만 이게 현실성이 있는 부분일까? 서버쪽 개발로 생각하면 일정부분 현실성이 있을수 있다. 하지만 안드로이드, ios등과 같이 정해진 플랫폼을 대상으로 진행하는 경우 OS의 변화는 불가능하며, Virtual로 별도의 OS를 띄우면 된다지면 performance의 관점에서 불가능한 이야기이다.

 

그렇다면 실질적으로 가능한건 Random memory address?와 같은 부분인데 이 부분은 이미 운영체제가 하고 있는 부분이며, Memory map만 뒤진다면 충분히 해결 가능한 부분으로 생각된다.

 

즉 OS는 불가능하며 Random memory address도 실질적인 효과를 얻기에는 불가능하다는 것이다.

 

 

그렇다면 결국 library내부에서의 위치의 변경과, Virtual machine을 이용한 방법으로 귀결된다.

library의 내부에서의 위치변경은 매우 까다롭다. 실행 코드들은 그 효율성을 위해서 상대주소를 많이 사용한다.

절대주소만을 사용한다면 오히려 간단하게 해결가능한 부분이 상대주소를 사용하기 떄문에 복잡해지고 난해해지기 마련이다.

 

이런부분들과 Virtual Machine과 관련하여 연구를 조금 해볼 필요가 있을것 같다.

Posted by 콩딱파파
,