slide-image

 

랄라 망한거같아 이미

일단은 Countermeasures부터인데.. 어차피 전 범위니까 상관없으려나

 

사실 malware 예방은 쉽지 않으나 적절한 방지책(보안 정책)을 통해 멀웨어 공격 가능성을 많이 낮출 수 있다.

사용자 교육을 통해서는 phishing이나 drive-by-download 등으로부터 보호할 수 있고, 최신 보안 업데이트나 시스템 약점을 최소화하여 예방할 수 있다. 또한 최소한의 권한 허용이나 적절한 접근 제어를 통해서도 가능하다.

(사실 당연한 얘기들임)

 

대응 요구조건으로는 generality(다양한 공격에 대응 가능), timeliness(빨리 대응 가능), resiliency(회피 기법에도 대응할 수 있어야 함), minimal denial-of-service costs(정상적인 운영 장애를 최소화), transparency(기존 OS, 응용 소프트웨어, 하드웨어의 변경 불필요), global&local coverage(기업 네트워크 내부와 외부의 공격에 대응할 수 있어야 함)들이 있다. 

 

Detection은 멀웨어 공격을 인지하는 거고, Identification은 시스템을 감염시킨 멀웨어의 종류를 확인하는 것이며, removal은 더 이상 멀웨어가 퍼져나가지 못하도록 제거하는 것이다. identificaion이나 removal이 어려우면, 온전한 백업으로 교체하는 것이 좋다.

 

Detection을 어디에서 하냐에 따라서 countermeasure가 나뉠 수 있는데, 개별 host에서 한다면 anti-virus 프로그램 등이 해당 될 수 있으며, 경계 보안 매커니즘(perimeter security mechanism)을 사용한다면, firewall이나 IDS(intrusion detection system)등이 해당될 것이다. 혹은 두 방식을 결합할 수도 있다.

 

Host-based scanners는 개별 시스템에서 멀웨어를 디텍션하는 것인데, 멀웨어가 타겟 시스템에 어떻게 작용하는지에 대해서는 최대한의 정보를 제공받을 수 있으나, 멀웨어의 활동에 대한 전체적인 활동이 안 보인다는 단점이 있다. 아까 말했듯이 AV software(일종의 host-based IDS)가 해당된다.

 

AV software 1세대는 단순한 스캐너로 멀웨어의 시그니처만 감지하거나 응용프로그램의 길이 변화를 감지했다면, 2세대는 heuristic 스캐너로 특정 시그니처를 찾지 않고, 멀웨어를 찾기 위한 휴리스틱한 규칙에 의존한다. 예를들어 프로그램의 체크섬을 기록하다 변조 여부를 확인하는 무결성 체킹(integrity checking)을 사용한다.

(어차피 둘 다 손이 많이 간다.)

integrity checking은 체크섬 자체의 변조를 막기 위해서 encrypted hash function을 이용하는데, encryption key는 프로그램과 별도의 장소에 보관된다. 암호학 관점에서 encrypted hash를 쓰느니 잘 설계된 MAC(message authentication code)를 쓰라고 하신다.

AV 3세대는 activity traps을 보는데, 감염된 프로그램에서의 구조가 아닌 멀웨어의 행동에 의해서 감지된다. 수많은 멀웨어에 대한 시그니처나 휴리스틱(구조)를 모두 개발할 필요가 없어졌다.

AV 4세대는 full-featured protection을 보며 앞서 이야기한 다양한 기법을 결합한 방식인데, 스캐닝과 activity trap을 결합할 수 있거나, 접근제어 기능도 포함할 수 있다.

 

샌드박스 분석(sandbox analysis)는 분석을 위해 악성 코드를 emulated sandbox 혹은 가상머신에서 실행하는 것이다. 실제 시스템에 미치는 위협 없이 악성코드의 활동에 대한 면밀한 감시가 가능하다.

이를 대비하기 위해서 멀웨어에서는(군비 경쟁..) 가상 머신인지 탐지하는 기능이 생기거나 오랜 휴면 상태를 유지하거나 가상머신이 만족하지 않을 법한 논리폭탄을 가지는 경우가 생겼다.(..)

 

호스트 기반 동적 멀웨어 분석은 실시간으로 프로그램들의 행동을 분석하여 악성 행동을 감지하는데, 호스트 기반 IPS(intrusion prevention system)이다. 여기서 감시되는 행동들은 뭐 대충 파일을 열거나 보거나 제거하거나 수정하는 행동, 디스크 포캣이나 복구 불가능한 디스크에 관련된 행동들, 실행파일 로직 변조나 매크로, 시작 세팅 등 시스템 세팅 변조, 즉시 실행 가능한 컨텐츠를 클라이언트에게 이메일이나 스크립트로 보내는 행위, 네트워크 커뮤니케이션 시작 등의 행동이다.

이렇게 동적으로 멀웨어 분석을 하면 코드 변형과 상관없이 언젠가는 악성행위를 해야만 하는 멀웨어 특성상 멀웨어 회피 기능에 덜 구애받는다. 하지만 감지되고 차단되기 전에 해를 입을 수 있다..

 

Rootkit에 대한 대응은 루트킷 탐지에 유용한 관리자 도구들 자체가 루트킷에 의해 변조될 수 있으므로 다양한 보안 도구가 필요하다.

호스트 기반 AV 소프트웨어나 IDS는 imcoming traffic에서 알려진 루트킷의 코드 시그니처를 탐지할 수 있다.

행동분석을 통해 시스템 콜 interception이나 키보드 드라이버와 상호작용을 통해 루트킷의 존재를 확인할 수 있다.

API 결과와 API를 통하지 않은 파일 무결성 체크를 통해 루트킷을 확인할 수도 있다.

 

Perimeter Scanning은 개별 호스트가 아니라 perimeter(영역)에서 탐지하는 것인데, 주로 firewall이나 IDS에서 탐지한다.

대표적으로 이메일과 웹 프록시 서비스 등에 포함되며, 전체 네트워크를 볼 수 있으므로 멀웨어 활동에 대해 보다 넓은 시야를 제공한다. 영역 내에서 어떻게 행동하는 지 등을 볼 수 있어 기관의 임의 시스템으로의 네트워크 연결 상에서 이동중인 멀웨어에 접근이 가능하다.

하지만, 멀웨어의 특정 호스트에서의 동적행동, 예를 들어 내부적으로 어떻게 트래픽을 발생하거나 어떻게 감염되는지를 파악하기 어렵다.

 

Perimeter Scanning 중에서 ingress monitoring은 들어오는 패킷을 모니터링 하는 것으로, border router, firewall등의 ingress filtering software나 별도의 모니터를 통해서 이뤄진다. anomaly나 signature/휴리스틱한 접근방식으로 멀웨어를 탐지하는데 허니팟(비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템)을 사용하거나 미사용 로컬 IP 주소로의 incoming traffic을 발생시킨다.

 

ingress와 반대로 Egress monitoring도 있는데, 당연히 나가는 트래픽을 모니터링하는 것이다. 따라서 잘하면 멀웨어 공격의 본진(공격 소스)를 찾아낼 수 있다. worm의 스캐닝 패턴을 감지하거나 관련 트래피을 제약하거나 차단할 수 있으며, 봇넷이 의심되는 대량의 이메일 트래픽을 차단할 수 있다. 또한 민감 데이터의 유출 차단도 가능하다. 

 

Distributed Intelligence Gathering Approaches는 호스트 기반 및 perimeter기반의 센서들로부터 정보를 중앙에서 취합하고 분석해 멀웨어의 활동을 감지하거나 방어하는 것이다. 둘의 장점 모아놓은 것임.

distriuted IPS가 이에 해당된다.