ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 취약점 분석
    [+] Security [+]/보안이론 2020. 12. 6. 00:08

    블랙박스 방식

    • 어떻게 구현되었는지 모름
    • 다양한 테스트 케이스를 시도해보며 알아내는 방식

     

    화이트 박스 방식

    • 소스 코드를 갖고 있는 경우 가능
    • 준비된 테스트 케이스를 사용

     

     

    리버싱 사용분야

    • 취약점 분석 (버퍼 오버플로우 가능성, 암호 알고리즘 취약점 등)
    • 악성 코드 분석
    • 버그 수정
    • 소프트웨어 사용 제한 기능 제거
    • 신기술 연구
    • 디지털 포렌식

     

    버퍼 오버플로우

    • 버퍼에 지정된 크기보다 더 큰 데이터를 입력함
    • 문자열의 경계 값 검사를 하지 않아 발생
    • 루트 권한 획득 가능

     

    쉘 코드

    • 버퍼 오버플로우를 일으켜, 쉘로 제어를 넘기고
    • 다른 프로그램에 접근하기 위해 만든 공격코드

     

    버퍼 오버플로우 공격 과정

    • 공격 쉘 코드를 버퍼에 저장한다
    • 루트 권한으로 실행되는 프로그램의 특정 함수의 스택 복귀 주소를 쉘 코드가 저장된 버퍼 주소로 변조
    • 특정 함수가 호출되면 루트 권한 획득
    • 악성코드, 백도어 설치

     

    프로세스 메모리 구조

     

     

    대처 방법

    • 컴파일시 옵션 - 쿠키를 추가하여 쿠기가 변조되었는지 유무 판단
    • 주소 공간 랜덤화
    • strcpy 대신 strncpy 같은 함수를 사용
    • 컴파일러가 스택프레임 범위 검사를 강제로 수행하는 언어를 사용
    • Lib Safe 사용
    • ASLR - 각 프로세스 안의 스택이 임의의 주소에 위치하도록 하는 기법
    • No Excute(NX) - 스택/힙 영역의 실행 권한을 제거

     

     

    악성 코드

    • 컴퓨터에 침입하여 악의적인 행위를 통해 보안사고를 일으키는 소프트웨어

     

    바이러스

    • 자기 자신을 복제하여 악의적인 목적을 수행하는 소프트웨어
    • 파일이나 문서와 같은 프로그램 없이 스스로 복제될 수 없다

     

    • 자체적으로 수행
    • 네트워크를 통해 자신을 복제, 전파
    • 취약점을 찾아 감염시키는 도구 역할
    • 시스템이 웜에 감염되면 네트워크에 연결된 다른 컴퓨터를 탐색하도록 설계된 도구 사용
    • 악성행위를 하는 코드를 페이로드라고함

     

    트로이 목마

    • 정상적인 프로그램으로 위장
    • 사용자가 실행하도록 속임
    • 합법적인 권한을 이용해 시스템에 침입

     

    루트 킷

    • 보안 시스템의 탐지를 피하면서 시스템을 제어하기 위해 공격자가 설치하는 악성파일을 모아 놓은 것
    • 보통은 운영체제의 합법적인 명령어를 해킹하여 모아놓은 것
    • 실행중인 프로세스를 숨김으로서 anti-virus 프로그램의 탐지를 피할 수 있다
    • 일반적으로 취약점을 이용하거나 사회 공학 기법으로 루트 킷 설치

     

    루트 킷 분류 요소

    • 지속성 - 시스템이 부팅될 때마다 활동
    • 메모리 기반 - 재부팅에 살아남지 못하나 탐지가 어렵다
    • 사용자 모드 - API 호출을 가로채고 반환되는 결과를 수정
    • 커널 모드 - 커널 모드에서 native API로의 호출을 가로챔
    • 가상 머신 기반 - 가벼운 가상 머신을 설치하고 그 위에 OS를 구동
    • 외부모드 - 정상적인 운영모드 밖에 존재 (BIOS나 시스템 관리 모드)

     

    정적 분석

    • 악성코드를 실행하지 않고 분석
    • 식별자, 헤더 정보, String 등 추출
    • 제어 흐름과 데이터 흐름 등을 보아 기능 전이도, API전이도 등을 생성하여 관찰

     

    동적 분석

    • 악성 코드를 실행하고 있는 상태를 갖고서 분석
    • 시스템 파일 삭제, 버퍼 오버플로우 등 탐지
    • 정적 분석에 비해 정확도 높음

     

    혼합 분석

    • 정적 분석과 동적 분석 기법을 혼용

     

    메모리 분석

    • 시스템 메모리를 분석하여 은닉된 정보를 찾아냄

     

    DLL 인젝션

    • 실행 중인 프로세스에 DLL파일을 강제로 삽입
    • DLL은 프로그램이 실행할 때 참고하는 함수, 구조체, 변수 등이 들어있으며, 프로그램에서 링킹할 수 있는 라이브러리

     

    키로거

    • 키보드의 입력 정보를 탈취하는 프로그램
    • 후킹이라는 기법을 사용
    • 유저 쓰레드 큐와 프로그램사이에서 메시지가 윈도우 프로그램으로 전달될 때 메시지 후킹을 사용하여 탈취

     

    대처

    • 시그니처 등록 - 키로거로 의심 되는 프로세스 목록에 기반하여 탐지
    • PC에 있는 모든 모듈 분석
    • 가상 키보드 입력 방식
    • 키보드 드라이버 레벨에서 암호화

     

    '[+] Security [+] > 보안이론' 카테고리의 다른 글

    침입 차단 및 탐지  (0) 2020.12.06
    모의 칩입  (0) 2020.12.06
    운영체제 보안  (0) 2020.12.05
    네트워크 프로토콜  (0) 2020.10.18
    접근제어  (0) 2020.09.09

    댓글

Designed by Tistory.