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 감시 소프트웨어가 사무실을 부활시키는 진짜 이유

AI 감시 소프트웨어가 재택근무 시대를 끝내고 있다. 직원의 키스트로크·화면·표정까지 추적하는 기술의 실체와, 한국 직장인이 알아야…

2시간 ago

정보보안기사 실기 합격을 가르는 10문제, 로그 분석부터 RSA 계산까지 풀이 포함

정보보안기사 실기는 개념을 아는 것보다 로그를 읽고, 규칙을 쓰고, 계산하는 힘에서 점수가 갈립니다. 이번 글은…

3시간 ago

호르무즈에서 2주간 선박 24척 피격, 원유 수송은 전쟁 전보다 43% 줄었다

호르무즈 해협 뉴스는 이제 '또 공격이 있었다'보다 '얼마나 늘었나'를 봐야 합니다. 이투데이가 FT와 영국해사무역기구(UKMTO) 등을…

3시간 ago

추석 연휴에 뚫린 은행들, 해외 법인 보안망까지 다시 짜는 이유

이번 추석 연휴, 은행들은 쉬지 못했습니다. 연휴 기간 금융권에서 대규모 개인정보 유출 사고가 터졌기 때문입니다.…

6시간 ago

서울 집값은 11% 올랐는데 거래는 17% 줄었다, 토허제 1년의 역설

"집 못 팔게 막으면 값이 내려가겠지." 서울 전역이 토지거래허가구역으로 묶이던 1년 전, 이런 기대가 있었습니다.…

6시간 ago

코스피 5연속 급락 뒤 2% 반등, 외국인·기관이 받쳤고 코스닥은 제자리

다섯 거래일 연속 밀린 코스피가 오늘 아침 크게 반등했습니다. 오전 9시 12분 기준 6,165.02로 전…

6시간 ago