뭐 범용성이나 확장성이나 이런 저런 여러가지 문제 때문에
결국 안을 폐기하지 않았을까 ?
ㅇㅇ
굳이 하드웨어 아키텍처를 새로 만들 필요 없이, 인텔 기준으로 얘기하면 OS만 바꿔도 가능. 세그멘테이션을 활용해서 CS, DS, SS가 가리키는 메모리를 선형 주소로는 다른 영역으로 지정하게끔 하면 내가 제안한 모델이 되지.
ㅇㅇ OS레벨에서 처리해도 되긴하겠징.
64비트면, 주소 공간은 널널하니깐.
근데 폰노이만 아키텍쳐에서도 하바드처럼 완전분리는 아닐지라도 옛날에 코드/데이터 세그멘트 나눠쓰다가 짱나서 flat memory 모델로 온거아님? 후에 인텔은 XD(execute disable), arm 은 XN(execute never) 같은거 추가하고...
flat memory 모델로 오게 된 게 메모리 공간 낭비 때문에 그런 거지. 가뜩이나 메모리 용량도 작아 죽겠는데 거기서 코드, 데이터, 스택 공간을 나누고 있으니.
근데 64비트 주소 공간을 갖게 된 지금은, 다시 옛날 모델로 돌아가도 충분할 듯. 62비트 씩만 줘도~
그리고 XD, XN은 DEP 얘기하는 거 같은데. DEP도 버퍼 오버플로 차단의 approach 중 하나지. 내가 제안하는, 하버드 아키텍처에 기초한 모델도 memory separation이라고 해서 또 다른 버퍼 오버플로 차단의 approach고.
근데 DEP는 legacy code에 의한 취약성, ROP을 해결하지 못해서 여전히 취약하지. 윈도우 버퍼 오버플로만 봐도 DEP 우회하려고 legacy code나 ROP으로 VirtualProtect 불러서 우회하고 있는 실정이니~
아 legacy code는 DEP가 아니라 ASLR의 취약성이지 참. DEP가 ROP으로 뚫리자 ASLR이 나오고, ASLR은 legacy code로 공략되고 있지.
굳이 하드웨어 아키텍처를 새로 만들 필요 없이, 인텔 기준으로 얘기하면 OS만 바꿔도 가능. 세그멘테이션을 활용해서 CS, DS, SS가 가리키는 메모리를 선형 주소로는 다른 영역으로 지정하게끔 하면 내가 제안한 모델이 되지.
ㅇㅇ OS레벨에서 처리해도 되긴하겠징.
64비트면, 주소 공간은 널널하니깐.
근데 폰노이만 아키텍쳐에서도 하바드처럼 완전분리는 아닐지라도 옛날에 코드/데이터 세그멘트 나눠쓰다가 짱나서 flat memory 모델로 온거아님? 후에 인텔은 XD(execute disable), arm 은 XN(execute never) 같은거 추가하고...
flat memory 모델로 오게 된 게 메모리 공간 낭비 때문에 그런 거지. 가뜩이나 메모리 용량도 작아 죽겠는데 거기서 코드, 데이터, 스택 공간을 나누고 있으니.
근데 64비트 주소 공간을 갖게 된 지금은, 다시 옛날 모델로 돌아가도 충분할 듯. 62비트 씩만 줘도~
그리고 XD, XN은 DEP 얘기하는 거 같은데. DEP도 버퍼 오버플로 차단의 approach 중 하나지. 내가 제안하는, 하버드 아키텍처에 기초한 모델도 memory separation이라고 해서 또 다른 버퍼 오버플로 차단의 approach고.
근데 DEP는 legacy code에 의한 취약성, ROP을 해결하지 못해서 여전히 취약하지. 윈도우 버퍼 오버플로만 봐도 DEP 우회하려고 legacy code나 ROP으로 VirtualProtect 불러서 우회하고 있는 실정이니~
아 legacy code는 DEP가 아니라 ASLR의 취약성이지 참. DEP가 ROP으로 뚫리자 ASLR이 나오고, ASLR은 legacy code로 공략되고 있지.