메모리 공격 방어
경계 검사
문자열 복사는 버퍼 크기를 기준으로 제한하고, 널 종료 여부까지
확인한다.
스택 카나리
반환 주소 앞의 임의 값을 확인해 스택 변조를 함수 반환 전에
탐지한다.
주소 무작위화
스택, 힙, 코드 영역 위치를 예측하기 어렵게 만들어 코드 재사용
공격 비용을 높인다.