시험공부하며 러프하게 정리한 내용이니, 가볍게 참고만 하시길
Malware
* 바이러스, 웜, 트로이목마, 루트킷
- 전파 : 퍼뜨리는게 목표 (바이러스, 웜)
- 은폐 : 자신의 존재를 숨김 (트로이목마, 루트킷)
* payload : 소프트웨어로 피해를 주는 모든 행위
* Insider Attacks : 회사 내부 사람이 공격하는 것
* Insider Attacks 방어하는 방법
- 단일 실패지점은 피하기
- 코드 워크스루 사용 (코드 작성한 프로그래머가 다른 프로그래머에게 발표하는 것)
- 권한 제한하기
- 물리적 보호 강화
- 직원 행동 감시
- 소프트웨어 설치 제어
* Backdoor = trapdoor : 특수 커맨드로 예외적인 기능 수행. 평소에는 기능 숨겨놓고 허용 안함.
ex) 이스터 에그
* Logic Bombs : 특정 날짜에 프로그램 충돌시키도록 설정함. 백도어와 결합해서 사용 가능
ex) 특정 날짜에 가상의 사용자가 모든 파일을 삭제하도록 설정함.
Virus
* Virus
- 자기 복제 특성이 있지만, 이메일, 파일 열어보기 등으로 누군가 처음엔 실행시켜야함.
- Brain 이라는 바이러스가 최초로 PC를 감염시킴
* Virus의 4가지 phase (파일이 계속 여기저기 사용되면서 복잡하게 감염시킬 수 있음)
- Dormant 잠복단계 : 탐지를 피하면서 잠복해있음
- Propagation 전파단계 : 복제하며 파일 감염시킴
- Triggering 트리거링단계 : 이제부터 의도한 작업을 시작함
- Action 실행단계 : payload라는 악성 작업을 수행함
* Infection의 4가지 타입
- Overwriting 덮어쓰기
- Pre-pending 미리 보류하기?? : 압축된 코드 상태를 유지함
- Infection of library 라이브러리 감염 : 바이러스가 MM에 상주하게 만듦
- Macro virus : 새로운 파일을 만들면 그 파일이 감염되도록 매크로 설정
* Concealment 바이러스가 은폐하는 방법
- Encrypted virus 암호화된 바이러스 : 복호화 엔진 + 암호화 된 본문, 암호화 키는 무작위 생성
- Polymrphic virus 다형성 바이러스 : 복호화 엔진의 무작위 변형을 사용하는 암호화된 바이러스. CPU 에뮬레이터를 사용한 탐지
- Metamorphic virus 변종 바이러스 : 코드 순열이나 명령어 대체등이 접근에 포함되고, 탐지가 어려움
Worm, Trojan, Rootkit
* Worm : 스스로 복제함. 파일삭제, 백도어 설치 같은 payload 가지고 있음.
- 최초의 웜 : Morris 웜
* Worm 개발
- 알려지지 않은 취약점 찾고 악용하기
- botnet에 초기 배포
- 각 host들에 대해서 감염 여부 체크 → 취약한지 확인 → 감염시키기 → 반복 ...
- 분산 그래프 알고리즘 이용
* 트로이 목마 : 유용한 작업 하는 것처럼 보이지만 키로거 등 부정적인 결과를 초래함.
- 다른 멀웨어의 일부로 사용될 수 있음.
- 사용자가 실수로 설치하는 경우가 많음
- 현재 멀웨어중 가장 감염성이 크다. (트로이-웜-바이러스-백도어 순서)
* Rootkit : OS 수정해서 자신의 존재를 숨김.
- 파일 시스템 탐색하는 부분을 수정해서 안보이게 할 수도 있음.
- OS 자체에 의존하는 SW는 탐지하기 어려움
* Rootkit Revealer 루트킷 찾는 방법
- 파일 시스템 2번 스캔하기
- Windows API 이용한 하이레벨 스캔
- Disk Access 이용한 원시레벨 스캔
+) 그러나 루트킷이 결과 가로채고 수정하여 무력화될 수 있음.
* 멀웨어 좀비 : 악의적인 공격 수행하도록 외부에서 조종당하는 컴퓨터
* Botnet : 악성 소프트웨어에 감염되어 소유자 허가 없이(혹은 소유자 모르게) 집단으로 제어되는 "컴퓨터 네트워크"이다. 봇넷 코디네이터는 봇넷을 사용해 DDoS 공격을 개시하고 데이터를 도용하며 멀웨어를 유포할 수 있습니다.
Malware 대응책들
* Signature 서명
- DB에 특정 문자열을 저장해놓음. 바이러스가 이 문자열을 가지고 있는지 체크함. 있다면 감염된 것.
- 그래서 빠른 문자열 패턴 매칭 기술이 필요함.
- 모든 서명을 합쳐서 멀웨어 DB를 만들어서 대응, 보통 유료 백신프로그램
* 화이트/블랙 리스트
- 감염된 파일은 블랙리스트에 넣음.
- OS, 정상 application은 화이트리스트
* Heuristic 분석 : 불충분한 정보나 부족한 시간에 명확한 실마리 없이 쓰는 어림 짐작법
- Zero Day 식별에 유용함 : 보안패치가 아직 안된 Zero day에 취약점을 공격하는 것.
- 실행 Emulation : 격리된 환경에서 실행하고 수행하는 작업 모니터링. 에뮬레이션은 HW까지 조작함. 지켜보다가 유해한 행동 하면 바이러스로 분류
* Shield vs On-demand
- Shield : 파일 건드릴 때마다 스캔하는 백그라운드 프로세스
- On-demand : 사용자의 요구에 의해 or 정기적으로 스캔
* 스캔
- Comparative : 이미 발견된 멀웨어들이랑 비교
- Retrospective : 알려지지 않은 바이러스에 대한 사전 탐지 & 더 나은 휴리스틱 확인
* 백신 프로그램 온라인 vs 오프라인
온라인 (인터넷) | 오프라인 | |
돈 | 무료 | 유료 |
인증 | 타사 인증서로 인증 | OS에 설치하기 때문에 인증 없음 |
쉴드 | 쉴드 없음 | 시스템 쉴드 |
설정 | poor한 설정 | 쉽게 설정 가능 |
* Quarantine 격리(검역소 역할) : 의심스러운 파일을 검역소로 보내서 격리된 환경에서 따로 실행해서 확인해봄
- 의심스러운 파일을 암호화 해서 무해하게 만듦.
- 오탐지일 수도 있으니 아직 삭제는 안함.
- 백신을 이용해서 격리된 파일과 소통함.
* static 분석 vs Dynamic 분석
- static : 코드 실행 없이 분석
- dynamic : 가상 공간에서 실행함. 파일, 레지스트리, 프로세스, 네트워크 포트 등이 변경됐는지 체크함
* Virus Detection
- 실행 전에는 바이러스가 있다고 결정 불가능. Runtime에 실행되는 감염코드가 있을 수도 있으므로.
- 외적으로, 행동으로만 바이러스라고 결정 불가능
- 알려진 바이러스라고 해서 꼭 아닌 것도 아님. 진화된 바이러스일 수도 있음
'CS 개념 > 컴퓨터 보안' 카테고리의 다른 글
컴퓨터보안 Intro ~ Network1 요약 (1) | 2024.04.26 |
---|---|
컴퓨터보안 - 실습내용 간단 정리 (1) (0) | 2024.04.25 |
컴퓨터 보안 (4) - OS Security 2 (0) | 2024.04.25 |
컴퓨터 보안 (3) - OS Security 1 (0) | 2024.04.25 |
컴퓨터 보안 (2) - Physical Security (0) | 2024.04.25 |