System
![[System][Dreamhack] 메모리 보호기법 Mitigation: NX & ASLR](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPUVnz%2FbtrLNwd8pYN%2Fv3IekahSLFwMmISowDgTZ1%2Fimg.png)
[System][Dreamhack] 메모리 보호기법 Mitigation: NX & ASLR
지난 글(Return to shellcode)를 보면 쉘을 딸 수 있었던 이유는 다음과 같다. return addr을 임의의 주소로 덮기 가능 → canary 도입 ⇒ canary leak 으로 우회 버퍼의 주소 알아내기 가능 버퍼안의 쉘코드 실행 가능 공격을 막기 위해 시스템 개발자들은 여려 겹의 보호 기법을 적용해 공격당할 수 있는 표면(Attack Surface) 를 줄여나가려 한다. Attack surface를 줄이기 위한 메모리 보호기법에 대해 드림핵을 기반으로 작성하였다. 요약 return addr을 임의의 주소로 덮기 가능 → canary 도입 ⇒ canary leak 으로 우회 가능 버퍼의 주소 알아내기 가능 → ASLR 도입 버퍼안의 쉘코드 실행 가능 → NX-bit 도입 ASLR ( A..
![[System][Dreamhack] stack buffer overflow - 스택 버퍼 오버플로우](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmbmaB%2FbtrBNcQ3sFl%2FDcTedVqqRGgmWtW5A5T6W1%2Fimg.png)
[System][Dreamhack] stack buffer overflow - 스택 버퍼 오버플로우
드림핵 내용을 기반으로 내 방식으로 이해한 내용을 정리했다. (잘못된 내용이 있다면 댓글로 알려주세요..!) 스택 버퍼 오버플로우 스택의 버퍼에서 발생하는 오버플로우 버퍼 데이터가 목적지로 이동되기 전에 보관되는 임시 저장소 데이터가 저장될 수 있는 모든 단위를 뜻하기도 함 스택 버퍼 스택에 있는 지역변수 힙 버퍼 힙에 할당된 메모리 영역 버퍼가 필요한 이유 데이터의 처리속도 차이 때문 처리 속도가 다른 두 장치 사이의 데이터 전달 시 abcdefg를 전달했지만 받는 쪽에서는 abcd만 받을 수 있음 → 이를 방지하기 위해 수신 측과 송신 측 사이에 버퍼 둠 버퍼 오버플로우 버퍼가 넘치는 것 버퍼는 일정한 크기를 가지고 있다. int로 선언한 지역변수 = 4bytes char[10] = 10bytes 1..