사전 목록
Buffer Overflow

버퍼 오버플로

버퍼 오버플로는 프로그램이 할당된 메모리 경계를 넘어 데이터를 쓰거나 읽어 인접 메모리를 손상시키는 약점입니다.

#보안 취약점#버퍼 오버플로#메모리 안전성#경계검사

버퍼 오버플로

C와 C++ 같은 메모리 비안전 언어에서 길이 검증이 없는 복사와 산술 오류, 잘못된 종료문자 처리로 발생합니다. 스택과 힙, 정수 오버플로와 결합된 형태가 있습니다.

핵심 정보

분류보안 취약점

핵심 질문이 개념이 어떤 데이터·시스템·업무에 적용되며 실패할 때 누구에게 어떤 피해가 생기는지 확인합니다.

판단 원칙실제 구현, 권한, 데이터 흐름, 로그와 예외 절차를 함께 평가합니다.

발생 원인과 악용 조건

메모리 손상은 충돌로 끝날 수 있으며 제어 흐름이 바뀌면 코드 실행으로 이어질 수 있습니다. ASLR, DEP, 스택 보호기법은 악용을 어렵게 하지만 근본 결함을 제거하지 않습니다.

운영 효과는 데이터 생성 지점, 처리 목적, 사용자와 관리자 권한, 외부 연동, 백업과 로그, 삭제 절차를 연결할 때 확보됩니다. 설계 문서와 실제 운영 상태가 다를 수 있으므로 설정값, 표본 데이터, 접근기록, 변경 이력을 근거로 검증합니다.

영향 범위

서버와 단말에서 임의 코드 실행, 권한 상승, 개인정보 메모리 노출, 서비스 중단이 가능합니다. 네트워크 경계 장비의 결함은 광범위한 침해 경로가 됩니다.

개인정보 관련 위험에는 기밀성 침해, 잘못된 수정과 삭제, 서비스 중단, 부정확한 프로파일링, 차별적 의사결정, 계정 탈취, 사칭과 2차 피싱이 포함됩니다. 위험 평가는 정보의 민감도, 변경 가능성, 결합 가능성, 노출 기간, 대상 인원, 공격자의 실제 접근 능력을 반영합니다.

진단과 우선순위 판단

위험한 메모리 함수와 길이 계산, 경계검사, 퍼징·정적분석·메모리 검사 도구 결과를 확인합니다. 충돌 덤프와 비정상 프로세스 종료를 분석합니다.

검토 결과에는 적용 범위, 남은 위험, 책임자, 개선 기한, 재검증 조건을 기록합니다. 외부 서비스와 오픈소스 구성요소가 관련되면 계약서와 보안 공지, 버전, 데이터 처리 위치, 하위 수탁·의존 관계도 확인합니다.

예방과 완화

보호조치는 예방, 탐지, 대응, 복구 단계에 나누어 배치합니다. 한 통제가 우회되거나 오작동해도 피해가 곧바로 전체 데이터로 확산되지 않도록 권한·네트워크·데이터·로그 통제를 겹쳐 적용합니다.

혼동하기 쉬운 개념

버퍼 오버플로는 입력이 길다는 사실만으로 성립하지 않습니다. 프로그램이 메모리 경계를 안전하게 처리하지 못해 손상이 발생하는 경우를 뜻합니다.

공식 참고자료

MITRE Common Weakness Enumeration

NIST National Vulnerability Database