또 뭐하지
[포너블 기초] Dreamhack System Hacking (4) - Stack Canary 본문
728x90
카나리
함수 시작 시 스택 버퍼와 Return Address 사이에 랜덤 값을 삽입한 후 함수 종료 시 해당 랜덤 값의 변조 여부를 확인하여 메모리 오염 여부를 확인하는 보호 기법
카나리 생성
`security_init` 함수에서 TLS에 랜덤 값으로 카나리를 설정하면, 매 함수에서 이를 참조하여 사용합니다.
카나리 우회 기법
- 무차별 대입 공격 (Brute Force Attack) : 무차별 대입으로 카나리 값을 구하는 방법. 현실적으로 불가능.
- TLS 접근 : 카나리는 TLS에 전역 변수로 저장되므로, 이 값을 읽거나 조작할 수 있으면 카나리를 우회 가능
- 스택 카나리 릭 : 함수의 프롤로그에서 스택에 카나리 값을 저장하므로, 이를 읽어낼 수 있으면 카나리를 우회할 수 있음. 가장 현실적인 카나리 우회 기
'I.sly() > 9기 기초 - 포너블' 카테고리의 다른 글
[포너블 기초] Dreamhack System Hacking (3) - BOF (0) | 2024.05.20 |
---|---|
[포너블 기초] Dreamhack System Hacking (2) - Shellcode (0) | 2024.05.11 |
[포너블 기초] Dreamhack System Hacking (1) (0) | 2024.04.05 |
[포너블 기초] 생활코딩 리눅스 섹션 12. 로그인 없이 로그인 하기 ssh key (0) | 2024.04.01 |
[포너블 기초] 생활코딩 리눅스 섹션 11. 인터넷을 통한 서버간 동기화 rsync (0) | 2024.04.01 |