Categories: 정보보안기사

정보보안기사 기출 핵심 [62] 취약점 분석과 익스플로잇 개발 방어 기법 완전 정복

취약점 분석과 방어 기법이란?

소프트웨어 취약점은 공격자가 시스템을 침해하는 주요 경로입니다. 정보보안기사에서는 메모리 취약점의 원리, 익스플로잇 기법, 그리고 운영체제·컴파일러 레벨의 방어 메커니즘을 깊이 이해해야 합니다.

메모리 취약점 유형

버퍼 오버플로우

  • Stack-based BOF: 스택의 로컬 변수 영역을 침범해 리턴 주소 덮어쓰기. strcpy·gets·sprintf 등 안전하지 않은 함수 사용 시 발생
  • Heap-based BOF: 동적 할당 메모리 영역 침범. 청크 헤더 메타데이터 조작으로 임의 주소 쓰기 가능
  • Off-by-one: 경계 검사 오류로 1바이트 초과 쓰기. 스택 카나리 부분 덮어쓰기에 활용 가능

기타 메모리 취약점

  • Use-After-Free(UAF): 해제된 메모리를 재참조. 댕글링 포인터(Dangling Pointer) 문제
  • Double Free: 같은 메모리를 두 번 해제. 힙 메타데이터 손상
  • Format String: printf(“%s”, user_input) 대신 printf(user_input) 형태. %x·%n으로 임의 주소 읽기·쓰기
  • Integer Overflow: 정수형 범위 초과로 할당 크기 조작 가능

운영체제 방어 메커니즘

ASLR (Address Space Layout Randomization)

  • 개념: 스택·힙·라이브러리의 메모리 주소를 실행 시마다 무작위화
  • 엔트로피: 64비트 시스템에서 높은 무작위성. 32비트는 엔트로피 낮아 브루트포스 가능
  • 우회 기법: 정보 유출(Info Leak)로 베이스 주소 획득. Heap Spray로 주소 예측
  • Linux 설정: /proc/sys/kernel/randomize_va_space (0=비활성, 1=부분, 2=전체)

DEP/NX (Data Execution Prevention/No-eXecute)

  • 개념: 데이터 영역(스택·힙)에서 코드 실행 방지. 하드웨어 NX 비트 활용
  • 우회 기법: ROP(Return-Oriented Programming). 기존 코드의 가젯(Gadget) 조합
  • ROP 체인: ret 명령으로 연결되는 코드 조각들. mprotect·VirtualProtect로 실행 권한 변경

스택 카나리(Stack Canary)

  • 개념: 리턴 주소 앞에 랜덤 값 배치. 함수 반환 전 카나리 값 변조 여부 확인
  • GCC 옵션: -fstack-protector(-all/-strong). SSP(Stack Smashing Protector)
  • 우회 기법: 카나리 값 유출(Format String 등). 비연속 메모리 덮어쓰기

CFI (Control Flow Integrity)

  • 개념: 간접 호출(함수 포인터, 가상 함수)의 대상을 미리 정의된 집합으로 제한
  • Shadow Stack(CET): Intel CET. 리턴 주소를 별도 쉐도우 스택에 저장해 검증

안전한 코딩 기법

  • 경계 검사 함수: strncpy·snprintf·strlcpy 사용. 입력 길이 항상 검증
  • 스마트 포인터: C++ unique_ptr·shared_ptr으로 UAF·Double Free 방지
  • 메모리 안전 언어: Rust의 소유권 시스템으로 컴파일 타임에 메모리 오류 방지
  • Fuzzing: AFL++·libFuzzer·OSS-Fuzz. 무작위 입력으로 크래시 발견

시험 핵심 포인트

  • ASLR 우회: 정보 유출(Info Leak) + ROP 체인 조합
  • DEP 우회: ROP(Return-Oriented Programming) — 실행 가능 코드 가젯 재활용
  • 스택 카나리: __stack_chk_fail 호출로 프로그램 종료
  • Format String: %n으로 임의 주소에 쓰기 가능

마무리

취약점 방어 기법은 공격 기법과 항상 쌍으로 이해해야 합니다. 각 방어 기법이 어떤 공격을 막고, 어떻게 우회될 수 있는지 파악하는 것이 핵심입니다.

zerg96

Recent Posts

[한방정리] 샘 올트먼 방한 전격 연기: 삼성·카카오·네이버 다 비웠는데 무슨 일

오픈AI 샘 올트먼이 삼성·카카오·네이버와의 연쇄 회동을 앞두고 '개인 사정'을 이유로 방한을 전격 연기했습니다. 카카오톡-챗GPT 연동…

13시간 ago

[한방정리] 잠실 개표소 봉쇄 시위: 3만 명이 몰린 이유, 부정선거냐 과열이냐

6.3 지방선거 투표용지 부족 사태로 시작된 잠실 개표소 봉쇄 시위, 최대 3만 명이 밤샘 농성을…

13시간 ago

[한방정리] 쿠팡 개인정보 과징금 6246억: 3750만 명 털렸는데 당신은 몰랐다

쿠팡이 3750만 명의 개인정보를 유출하고 무단 수집까지 해 역대 최대 과징금 6246억 원을 부과받았습니다. 전직…

13시간 ago

AI가 내 직업을 빼앗는 속도, 당신의 직종은 몇 년 남았나

구글·IBM·삼성이 AI를 이유로 대규모 감원을 시작했습니다. 맥킨지·골드만삭스·옥스퍼드 연구 데이터로 보는 직종별 AI 대체 타임라인과 살아남는…

7일 ago

당신 정보 이미 팔렸다, 2025년 개인정보 유출 실태 충격 공개

SKT 유심 해킹 2,300만 명, 다크웹 개인정보 거래 실태까지. 내 정보 유출 여부 즉시 확인하는…

7일 ago

삼성 vs 애플, 2025년 진짜 승자는 당신이 생각하는 그 회사가 아니다

하드웨어 스펙 경쟁은 끝났습니다. AI 생태계, 프리미엄 수익, 중국 변수까지. 2025년 삼성 vs 애플 진짜…

7일 ago