메모리 정의
컴퓨터가 가지고 있는 기억장치
종류
- 레지스터 -cpu일부로 cpu동작속도와 동기화 되어 빠르게 작동을 하는 기억장치
- 주 기억장치 - cpu에서 직접적으로 접근이 가능한 메모리
- 보조 기억장치 - cpu에서 직접 접근이 불가능한 메모리
메모리 관리
메모리에 있는 정보를 읽고 다시 가져오기 위해서는 메모리의 위치랑 주소가 중요하다
메모리의 위치는 8비트의 데이터를 저장할 수 있도록 되어있다
각각의 주소는 특정 메모리 위치에 대한 고유한 식별자
컴퓨터가 메모리의 위치를 식별하는 과정이 있는데 이러한 과정을 주소지정이라고 한다
프로그램과 메모리
하나의 프로그램이 실행되면 프로그램 수행에 필요한 데이터들이 메모리에 올려지기 때문에 프로그램을 사용할 수 있게 되는것이다
이때 올라가는 방식이 3가지가 있는데
- 데이터영역 - 전역변수, 시작과 동시에 할당 , 종료와 함께 소멸
- 스택영역 - 함수변수저장 함수호출시 생성 함수완료시 소멸
- 힙 영역 - 필요에 의해 동적으로 메모리할당
주소할당시 데이터와 힙 영역은 낮은 주소부터 높은주소로 할당
스택만 높은주소(위)에서 낮은주소(아래)로 할당
메모리 취약점
한주소에 할당된 메모리의 크기보다 큰 변수를 저장하면 다른 영역을 침범
버퍼오버플로우
정의
- 버퍼 - 데이터가 한곳에서 다른곳으로 이동할때 그 데이터가 일시적으로 보관되는 임시적인기억 공간
- 오버는 과하다
- 플로우는 넘치다
즉 사용자가 입력한 데이터의 크기가 너무 과해서 제한된 버퍼의 용량을 넘치는거
할당된 영역을 넘어서서 옆에 있는 공간까지 밀어서 사용하는 현상이 버퍼오버플로우
특징
공격자가 프로그래머가 사용한 취약한 함수를 사용하여 그 취약점을 활용해서 데이터를 넘어서 밀어서 쓸 수 있다
정상적인.제한적인 입력환경에서는 버퍼오버플로우 발생x
사용자의 입력 요구시 버퍼오버플로우 발생
크게 두가지 영역에서 버퍼오버플로우가 발생하는데
- stack
- 주로 return (RET)을 사용한다
- RETURN은 함수종료 뒤 수행을 위해서 이동할 주소이다
- return값을 변조해서 관리자 권환을 획득하는 방식으로 프로그램을 조작할 수 있어면 프로그램 조작가능
- 힙
- malloc이든지 calloc같은함수를 사용해서 프로그래머가 직접적으로 공간에 여러가지 데이터를 할당
- 이곳에 저장되는 데이터 및 함수를 변경해서 원하는 결과값을 얻어내는 방식이 일반적으로 공격자들이 힙 오버플로우를 활용한 공격 방식
'4-2학기 > 정보보호와 보안의기초' 카테고리의 다른 글
13 - 백도어, SQL인젝션, 크로스 사이트,DDOS (2) | 2024.12.10 |
---|---|
12주 - 최신공격기법 이해 (1) | 2024.12.10 |
10주차 - DNS (0) | 2024.12.09 |
3주차 - 네트워크 (1) | 2024.12.08 |
2주차 - 소프트웨어 (3) | 2024.12.08 |