컴퓨터 구조

컴퓨터 보안 이론 - 취약점

monstro 2025. 10. 14. 16:28
728x90
반응형

- 개요

해킹은 프로그램의 취약점을 공격하는 방식으로 동작합니다.

이때 프로그램의 취약점은 프로그램의 심각한 버그로부터 발생합니다.

대표적으로 Stack Overflow / Heap Overflow / Use-After-Free 등이 존재합니다.

 

버그는 대부분 크래시가 발생하고 종료되는 선에 끝나지만,
낮은 확률로 코드의 흐름을 제어 + 실행되는 위치의 데이터를 조작할 수 있는 기회를 제공합니다.

제공되는 기회는 곧 취약점으로 이어지고 해킹을 가능하게 만듭니다.

 

- Stack Overflow 버그를 통한 취약점의 표현

Stack의 표현

 

어떤 함수가 호출되면 해당 함수만의 스택 프레임을 생성하게 됩니다.

Data 영역에는 해당 함수에서 사용하는 인자함수의 코드를 저장하고,

Return Address 영역에는 함수를 호출하고 return한 후에 돌아갈 주소를 저장합니다.

이때 스택에서 발생하는 Stack Overflow는 스택 메모리를 침범하여 의도하지 않은 수정을 하여 발생합니다.

 

1) 코드의 흐름을 제어

Return Address 영역의 값을 엉뚱한 값으로 덮어씌워 의도하지 않은 곳에서 코드를 실행하여 발생합니다.

따라서 설계자가 의도한 흐름이 아닌 해커코드의 흐름을 제어할 수 있는 기회를 제공합니다.

 

2) 실행되는 위치의 데이터를 조작

Shell Code실행할 수 있는 작은 크기의 코드를 의미합니다.

해당 Shell Code를 이미지 파일과 같은 파일로 변환하여 프로그램에 포함시킵니다.

이후 스택의 주소를 조작하여 셸코드를 실행하면 실행되는 위치의 데이터를 조작할 수 있습니다.

728x90
반응형

'컴퓨터 구조' 카테고리의 다른 글

컴퓨터 보안 이론 - 암호학  (0) 2025.10.15
컴퓨터 보안 이론 - 해킹  (0) 2025.10.14
NAT와 홀펀칭  (0) 2025.10.11
네트워크 5계층 - Application  (0) 2025.10.10
네트워크 4계층 - TCP & UDP  (0) 2025.10.09