: 악성 소프트웨어 (Malicious SW)
① worm : malicious program that replicates itselft on other system (스스로 실행 가능, 자기 자신을 복제)
② virus : 컴퓨터의 정상적인 동작에 나쁜 영향을 미치거나 저장된 데이터나 프로그램을 파괴하는 프로그램 (독립적으로 실행X)
③ trojan : 정상적으로 보이지만 백그라운드에서 비정상적 동작을 수행
④ rootkit : 시스템의 기능을 숨기거나 왜곡하는 악성 SW
⑤ ransomware : 사용자의 데이터나 파일을 암호화하여 사용자의 파일에 대한 접근을 차단하고, 해독키를 요구하는 악성 소프트웨어
How Malware works?
malware structure = replication mechanism(dropper) + payload
① replication mechanism
: 악성코드를 전파하거나 실행하도록 설계된 일종의 실행 파일
② paylod
: Payload는 악성코드가 실행되면 수행되는 실제 악성 기능
- 기밀 유출
- 개인 정보 암호화 후 ransom비용을 요구
- 비트코인 채굴 등과 같은 바람직하지 않은 일 수행
- 루트킷을 설치하여 컨트롤러가 악성 작업을 수행
- 통과하는 트래픽을 감시하거나 다른 트래픽을 공격하기 위해 설치된 소프트웨어
① Scanners
: malware의 특징 기반 탐색 (악성 코드들이 주로 가지는 문자열 패턴 분석)을 통해 'pattern matching'을 수행, 흔적(로그, output)파일을 탐색
=> fast & efficient to find 'known' malware
=> do not detect 'unknown' pmalware
공격자들은 scanner의 존재를 알기 때문에, 코드를 암호화하여 수행할 수 있다.
How to evade scanners-based detection?
Encrypting virus (공격자 입장)
ⓐ Ciphertext looks like random bits
ⓑ Different key를 사용하면 different "random" bit가 생성
=> 'pattern matching'이 불가
그러면 encryption of virus로부터 어떻게 detect할 수 있는가?
어딘가에 존재하는 decryptor code를 찾아내야함
(스스로를 변형시키는 방법)
어쩄든, 둘다 변종 malware의 일종이다. 위와 같은 변종 Malware에 대해 ①-scanner를 사용하기 어려워진다. 따라서 다른 방어책을 사용한다.
② checksummers
: 해시함수를 사용하여 변형 감지 ("change" detection)
파일 해시값을 계산하고 안전하게 저장합니다.
주기적으로 해시값을 다시 계산하고 비교합니다.
해시값이 변경되면 파일이 감염됐을 가능성이 있습니다.
Adv
false negative(거짓 양성)이 없음
알려지지 않은 malware 감지 가능
Dis
오경보 발생 가능 (감연되지 않은 파일이 변경되지 않은 경우)
③ anomaly detection
• 시스템을 "비정상적"이거나 "악성코드와 유사"하거나 "잠재적으로 악성적"인 것으로 감시
• "비정상적"인 예시
- 파일이 예상하지 못한 방식으로 변경될 때
- 시스템이 어떤 방식으로든 동작하지 않을 때
- 예기치 않은 네트워크 활동이 있을 때
- 예상하지 못한 파일 접근 등
※ 먼저 "정상"을 정의해야 합니다.
정상은 시간이 지남에 따라 변할 수 있습니다.
Adv
unknow malware를 감지할 수 있음
DIS
비정상적임을 입증하는 과정에 cost가 필요
정상인척하는 반대의 경우가 존재할 수 있음
따라서 단독으로 쓰이기 보다 다른 countermeasure와 같이 쓰임 (e.g. scanners-based detection)
※ Malware를 감지하고자 특징(IOC)기반 탐색을 수행 (Scanners)
Malware는 scanner를 어렵게 하고자 encrypt virus
그러면 어딘가에 존재하는 decryptor code를 scan!
그러면 Malware developrs (Polymorphic malware & Metamorphic malware)
"checksummers"를 사용해 변경 전 해시값을 저장해 주기적으로 검사하여 변조를 감지(false- negative, 거짓 음성은 발생하지 않음 but 오탐 발생)
"anomaly detection"을 사용해 'unusual' or 'malware like'를 탐지
결론!
Malware도 끊임없이 발전하고, Anti-malware method도 끊임없이 발전하고 있다.