모의해킹 및 보안

코드 분석(디버깅)

잉여토끼 2024. 11. 26. 17:40

바이러스 / 악성코드

바이러스

: 시스템 내부에서 또 다른 파일을 감염시킴

  1. 부트 바이러스
    • MBR 부트 파티션을 감염시킨다. --> 포멧을 해도 살아남음
  2. 트로이안 바이러스
    • 정상 프로그램의 사이에서 동작. 
      --> 파일의 크기가 변형되는것으로 알 수 있음.

 

이미 감염된 파일을 다시 감염 시킬 수 있음. 이를 막기위해 특정 signiture를 넣어둠.

 

악성코드 

레지스트리(Registry) --> 윈도우 운영에 필요한 정보가 포함된 DB

레지스트리를 변경시키는 등으로 특정 시스템을 변경시킴.

: 사용자에게 허가받지 않은 일련의 행동을 수행하는 프로그램

 

 

악성코드 분석 

1. Process분석

: 프로그램이 실행 되었을 때 동작을 통해 발생하는 시스템의 변경점을 파악

 

2. 파일 분석.

:파일로써의 특성을 파악.(Ex : 생성일자(mtime), 마지막 엑세스(atime), 변경(ctime))

 

 

 

분석.

  1.  자동화 분석
  2. 정적(Static) 분석
    : 프로그램을 실행하지 않은 상태에서의 분석
    : Ollydbg, x64dbg --> 어셈블리어 분석기, Exinfo PE --> 패킹여부 및 어떠한 툴로 패킹되었는지 확인 가능.
    • 백신 프로그램 진단 확인
    • 파일 종류 판별. exe/dll 파일 고유값 확인
    • 파일 구조 파악(디버깅 프로그램) --> 호출하는 라이브러리 확인. (win32 api)
    • 실행 압축 확인. --> packing --> 패키징 : 시그니처
    • 문자열 확인
    • 파일 비교(dll / 실행파일) --> 정상파일(검증된 샘플) / 비정상파일
  3. 동적(Dynamic) 분석
    : 동작 시켰을 때의 상태값을 분석
    • 프로세스 모니터링 --> process exploer
    • 파일 모니터링 -- > 새로 생성되거간 삭제된 파일 . 주로 서비스 프로그램 / DLL
    • 레지스트리 모니터링
    • 네트워크 모니터링. netstat -nlap(-nat) | findstr 4444
    • 시작 프로그램 모니터링
  4. 상세 분석
    : 네트워크 및 메모리를 외부의 다른 모듈을 추가하여 분석.
    • 메모리 프리징 --> 물리적인 메모리에 직접 접근가능한 툴을 통해 현제 메모리 상태를 저장.
      • 메모리 프리징의 경우 프로세스가 실행 중일 때 해야 함. --> 끄거나 일시적으로 실행되는 프로세스는 잡기 힘듦.
    • 어셈블리어 --> 0/1로만 이루어진 기계어. 명령어를 각각 대응시킨 저급 언어
      • 장점 : 빠름
      • 단점 : 어려움. cpu에 종석적임 --> CPU가 가진 마이크로 프로세싱 명령어를 호출. 운영체제에 따라 코드값이 다름.
      • C언어 --> 프로그램을 동작시킬 운영체제에서 컴파일을 진행.