확인된 공격이 위험한지 아닌지 검증하는 방법은 크게 2 가지로 구분된다. 동적 분석과 정적 분석이 있다. 동적 분석은 공격 행위나 악성 프로그램을 다시 재현하여 실제 어떤 위험을 미치는지 검증하는 방법이고, 정적 분석은 재현 없이 공격 구문 또는 악성 프로그램의 바이너리 코드만을 가지고 위험 여부를 확인하는 방법이다.
공격재현
네트워크를 통해서 이뤄지는 많은 수의 공격들 중 대부분은 무작위 대상으로 취약점 여부를 시도하는 경우가 많다. 그렇기 때문에 보안 솔루션이나 시스템 로그에서 위협의 징후가 포착되었다면 실제 위협이 되는지 여부에 대해 재현을 통해 점검을 진행해야 한다.
2013년 발생했던 취약점 공격 중 위험도가 매우 높았던 공격이 아파치 취약점을 이용했던 공격이 CVE-2013-[1]2251이다. 당시 많은 수의 아파치 서버들이 해당 공격에 취약했고, 빠른 시간에 공격이 자동화된 형태로 확산 되었다.
| CVE 코드 | 취약점 정보 | 영향 범위 |
| CVE-2013-2251 | Struts 2.0.0 – Struts 2.3.15 | 원격 코드 삽입 및 실행 |
당시 공격 시 사용되던 공격 구문은 다음과 같다.
| http://target/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command’,’goes’,’here’})).start()} http://target/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command’,’goes’,’here’})).start()} http://target/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command’,’goes’,’here’})).start()} |
실제 기업이나 조직에서는 해당 공격에 의한 피해를 막기 위해 운영 중인 소프트웨어의 취약점을 점검했다. 점검하는 방식은 동일한 공격 방식에 취약점 확인을 위해 특정 사이트로 리다이렉션을 시켜서 명령이 실행 되는지 확인을 통해 취약 여부를 가늠했다.
| http://[target]/action.do?redirect:[redirecturl] |
이처럼 공격 구문이 확보가 가능한 경우에는 동일한 방식으로 재현을 통해 운영하는 시스템의 취약점이 존재하는지 쉽게 확인 할 수 있다.
공격 유형 분석
공격 유형 분석은 체계적으로 위협에 대응하기 위해 필요한 항목 이다. 앞서 얘기 했듯이 보안 분석가는 이벤트 분석을 통해 공격 유형 및 위험도를 평가한다. 공격 유형에 맞는 대응 방안을 수립해 일관된 위협 대응 정책을 유지 한다.
- 공격단계별 구분
공격자는 목적 시스템에 침투하기 위해 정보를 수집하는 단계를 거친다. 이후 수집된 정보를 이용해 취약 시스템을 공격하고, 권한을 획득하는 과정을 거친다.
침입탐지시스템 이벤트 분석 시 현재 공격이 어떤 단계에 포함되는지 정의하여 대응 우선 순위를 정의 한다. 우선 순위에 따라서 대응 방식이 달라진다. 공격이 정보 수집 단계에 해당하면 사전 예방 활동에 초점을 맞춰서 사고 발생을 예방한다. 공격이 성공 또는 확산되는 상황이라면 최대한 피해복구에 초점을 맞춰 대응 한다.
다음은 단계별 공격 유형과 분석 및 대응에 필요한 점검 항목이다.
| 단계 | 공격유형 | 관련 이벤트 점검 및 결과 |
| 정보수집단계 | Network Scan Web Scan TCP/UDP Port Scan | 서비스(포트) 활성 여부에 대해 확인 시도 공격 대상 시스템에 영향이 없거나, 위험이 적은 이벤트, 분석 우선 순위가 낮다. |
| 취약점공격단계 | Email 첨부파일 Anomaly Traffic SQL Injection OS Command Injection Cross Site Scripting directory-traversal Web 취약점공격 Buffer Overflow Application 취약점공격 | 이벤트 분석 시 실제 공격을 시도하는 단계로 취약점공격 단계에서 공격이 성공하면 침해사고로 이어진다. 실패한 공격과 성공한 공격을 구분하는데 초점을 맞춰 분석한다. 기본 계정 또는 패스워드 취약여부 확인애플리케이션 사용여부 점검관리되지 않는 애플리케이션 점검공격 명령 실행 테스트공격 시도한 버전 및 대상 시스템 버전확인 |
| 공격성공단계 | Backdoor Trojan Spyware BotNet | 공격이 성공한 단계에서는 이전 단계의 취약점 공격 단계에서 실패 또는 성공한 IP가 탐지된 내역이 대부분 존재 한다. 이전 단계로 거슬러 올라가 공격 유형과 공격 대상 범위를 파악 한다 최초 이벤트 분석 시 해킹 또는 침해사고 시 자주 발생되는 시그니처에 대해 선 검색을 통해 분석 시간을 단축 한다 |