본문 바로가기
STUDY

[정처기] 9과목 소프트웨어 개발 보안 구축 시스템 보안위협 총정리

by univus 2022. 10. 13.

 

수제비 2022 정보처리기사 실기 교재 개념 정리한 내용입니다.

 

1. 버퍼 오버플로우(buffer overflow)

: 메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력, 프로세스 흐름을 변경시켜 악성 코드 실행시킴

  1. 스택 버퍼 오버플로우 공격 : 스택 영역에 할당된 버퍼 크기를 초과하는 양의 데이터 입력, 복귀 주소 변경, 공격자가 원하는 임의 코드 실행
  2. 힙 버퍼 오버플로우 공격 : 프로그램 실행 시 동적으로 할당되는 힙 영역에 할당된 버퍼 크기를 초과하는 데이터를 입력, 메모리 데이터와 함수 주소등 변경, 공격자가 원하는 임의의 코드 실행, 인접한 메모리(linked-list)메모리 삭제될 수 있고 특정 함수에 대한 포인터 주소 있으면 악용하여 관리자 권한 파일에 접근하거나 공격자의 특정 코드 실행해 공격 가능

 

- 버퍼 오버플로우 공격 대응 방안

  • 스택가드(stackguard) : 카나리(canary)라는 무결성 체크용 값을 복귀 주소와 변수 사이에 삽입해 두고, 버퍼 오버플로우 발생 시 카나리 값을 체크하고 변했을 경우 복귀 주소를 호출하지 않는 방식으로 대응
  • 스택쉴드(stack shield) : 함수 시작 시 복귀 주소를 Global RET 특수 스택에 저장, 함수 종료시 저장된 값과 스택의 RET 값 비교해서 다를 경우 오버플로우로 간주하고 프로그램 실행 중단
  • ASLR(address space layout randomization) : (리눅스에서 설정)메모리 공격 방어위해 주고 공간 배치를 난수화하고 실행 시마다 메모리 주소를 변경, 버퍼 오버플로우를 통한 특정 주소 호출 차단
  • 안전한 함수 활용 : str + n, n+printf, f + gets/scanf

 

2. 백도어(backdoor)

: 제품, 컴퓨터 시스템, 암호시스템, 알고리즘에서 정상적인 인증 절차를 우회하는 기법, 고정된 형태 x, 허가받지 않고 시스템에 접속하는 권리를 얻기 때문에 대부분 은밀하게 작동

 

- 백도어 탐지 기법

  • 프로세스 및 열린 포트 확인 : TCPView로 열린 포트 확인
  • Setuid 파일 검사 : 새로 생성된 Setuid 파일이나 변경된 파일 확인
  • 백신 및 백도어 탐지 툴 활용
  • 무결성 검사 : 리눅스 Tripwire 툴 이용
  • 로그 분석 : wtmp, secure, lastlog, pacct, history, messages 사용

 

3. 주요 시스템 보안 공격기법

  • 포맷 스트링 공격(format string attack) : 외부로부터 입력된 값을 검증하지 않고 입출력 함수의 포맷 스트링 그대로 사용하는 경우 발생하는 취약점 공격기법, 메모리 내용 참조하거나 특정 영역의 값 변경 가능
  • 레이스 컨디션 공격(race condition attack) : 둘 이상의 프로세스나 스레드가 공유자원을 동시에 접근할 때 접근 순서에 따라 비정상적인 결과가 발생하는 상황, 실행되는 프로세스가 임시파일을 만드는 경우 악의적인 프로그램을 통해 끼어들어 임시파일을 심볼릭 링크하여 악의적인 행위를 수행
  • 키로거 공격(key logger attack) : 키보드 움직임을 탐지하여 저장하고 개인의 중요한 정보를 몰래 빼가는 해킹공격, 키보드 활동을 기록하는 것을 키로깅/키스트로크 로깅 이라고 함.
  • 루트킷(rootkit) : 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 프로그램(트로이 목마, 백도어)의 모음