서버 수준의 안티바이러스는 특정 도메인 내에 진입하는 악성코드를 진입점에서 감지하므로 모든 클라이언트를 완벽하게 통제하기 어려운 실제 상황에서 전자우편 서버 등에 유용하게 사용된다. 그러나, 알려지지 않은 악성 코드에 감지에 유용한 행위 감시 기법은 서버에 적용이 어려우므로, 현재의 서버용 안티바이러스들은 이미 알려진 악성 코드에 대한 시그너쳐 기반의 감지, 단순한 필터링 그리고 파일명 변경과 같은 기능만을 수행한다. 본 논문에서는 서버에서의 실행만으로 별도의 안티바이러스가 탑재되지 않은 클라이언트에서도 지속적인 행위 감시가 가능하도록 하는 악성 스크립트 감지 기법을 제안하고 그 구현에 관해 기술한다.
서버 수준의 안티바이러스는 특정 도메인 내에 진입하는 악성코드를 진입점에서 감지하므로 모든 클라이언트를 완벽하게 통제하기 어려운 실제 상황에서 전자우편 서버 등에 유용하게 사용된다. 그러나, 알려지지 않은 악성 코드에 감지에 유용한 행위 감시 기법은 서버에 적용이 어려우므로, 현재의 서버용 안티바이러스들은 이미 알려진 악성 코드에 대한 시그너쳐 기반의 감지, 단순한 필터링 그리고 파일명 변경과 같은 기능만을 수행한다. 본 논문에서는 서버에서의 실행만으로 별도의 안티바이러스가 탑재되지 않은 클라이언트에서도 지속적인 행위 감시가 가능하도록 하는 악성 스크립트 감지 기법을 제안하고 그 구현에 관해 기술한다.
Server-side anti-viruses are useful to protect their domains, because they can detect malicious codes at the gateway of their domains. In prevailing local network, all clients cannot be perfectly controlled by domain administrators, so server-side inspection, for example in e-mail server, is used as...
Server-side anti-viruses are useful to protect their domains, because they can detect malicious codes at the gateway of their domains. In prevailing local network, all clients cannot be perfectly controlled by domain administrators, so server-side inspection, for example in e-mail server, is used as an efficient technique of detecting mobile malicious codes. However, current server-side anti-virus systems perform only signature-based detection for known malicious codes, simple filtering, and file name modification. One of the main reasons that they don't have detection features, for unknown malicious codes, is that activity monitoring technique is unavailable for server machines. In this paper, we propose a detection technique that is executed at the server, but it can monitor activities at the clients without any anti-virus features. we describe its implementation.
Server-side anti-viruses are useful to protect their domains, because they can detect malicious codes at the gateway of their domains. In prevailing local network, all clients cannot be perfectly controlled by domain administrators, so server-side inspection, for example in e-mail server, is used as an efficient technique of detecting mobile malicious codes. However, current server-side anti-virus systems perform only signature-based detection for known malicious codes, simple filtering, and file name modification. One of the main reasons that they don't have detection features, for unknown malicious codes, is that activity monitoring technique is unavailable for server machines. In this paper, we propose a detection technique that is executed at the server, but it can monitor activities at the clients without any anti-virus features. we describe its implementation.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
그러나, 알려지지 않은 악성 스m립트 감지에 있어, 코드 분석에 기반한 방법은 동적으로 생성되는 정보를 얻올 수 없으며, 에뮬레이션에 의한 방법은 서버에서 수행하기에 부하가 크고 모픈 프로그램 흐름을 검사하기 어렵다는 단점을 가지고 있다. 본 논문에서는 서버에서의 실행만으로 지속적인 행위 감시가 가능하도록 하는 악성 스크립트 감지기법옱 제안하고 그 구현 낓 실험결과를 제시하였다. 실험 결과, 클라이언트에 별도의 안티바이러스 구성 요소가 없이 행위 감시에 의한 악성 코드 판별이 가능함을 확인하였으나 변환된 코드에 오버헤드가 존재함이 확인되었다.
본 논문에서는 서버에서의 실행만으로 클라이언트 상에서도 지속적인 행위 감시를 수행할 수 있는 악성 스크립트 감지 기법올 제안하고 그 구현올 제시한다. 제안하는 기법은 억세스 제어(Access Control)를 위해 제안된 기존의 어플리케이션 변환(Application Transformation) 기법에 착안한 것으로, 스크립트 코드에 자체진단 코드를 삽입함으로써 해당 스크립트가 실행될 때 외부의 도움 없이 자신의 악성 여부를 판단할 수 있도록 한 것이다.
그러나, 메소드 호출의 존재유무만올 검사하는 방식을 사용하게 되면, A라는 이름으로 스크립트 파일올 생성하고 B라는 이름의 파일올 첨부하는 관계없는 메소드 호출이 존재하여도 이를 악성 코드로 간주하므로 높은 긍정 오류를 보이게 되는 것이다. 이 기법은 메소드 호출의 존재뿐 아니근}, 상술한 파일명, fso, c, out, male 등 모든 관계 있는 값들이 일치하는가를 검사함으로써, 기존 방식에서 나타나는 높은 오류율을 극복하려고 시도하였다.
제안 방법
또한, 정적 분석 기법은 악성 행위의 메소드 호출시퀀스률 통해 정확한 감지를 시도하나 실행 시에만 결정할 수 있는 값이 하나라도 개입되면 다른 조건을 만족하여도 이를 악성행위로 간주할 수 없으므로 높은 부정 오류롤 수반하게 된다. 따라서, 감지 방식에 있어서는 정적 분석 기법에서와 같은 룰 기반의 메소드 호출 시퀀스 탐지를 채용하되, 어플리케이션 변환 기법을 이용하여 탐지 루틴을 스크립트 소스에 삽입함으로써 실행 시에 악성 코드 감지를 수행하는 악성 코드 탐지 기법 올 제안한다. 코드 삽입 동작을 간략히 도시하면 <그림 4>와 같다.
경우가 다르다. 매칭 룰은 이미 해당 문장이 주어진 형식과 일치할 경우에만 수행되므로, 아무런 조건 없이 해당 룰에 대한 매칭이 일어났음을 기록하기 위해 하나의 룰 인스턴즈(instance)를 생성하고 상위 룰을 검사한다. 룰의 인스턴스는 해당 룰에 관련된 정보를 담고 있는 데이타 구조이며 주어진 조건이 만족될 때 생성된다.
셋째, 어플리케이션 변환 기법이 단지 지정된 함수 호출을 새로운 함수의 호출로 변환하며, 이 함수가 주어진 파라미터만을 평가하여 접근 권한을 부여하는 것과는 달리, 제안하는 기법에서는 리턴 값까지 검사의 대상에 포함한다. 또한, 단지 메소드 이름만을 참조하지 않고 매칭 룰에 기술된 모든 토큰이 동일한 형태로 나타났올때만 코드 삽입을 실시한다.
제안하는 기법은 억세스 제어(Access Control)를 위해 제안된 기존의 어플리케이션 변환(Application Transformation) 기법에 착안한 것으로, 스크립트 코드에 자체진단 코드를 삽입함으로써 해당 스크립트가 실행될 때 외부의 도움 없이 자신의 악성 여부를 판단할 수 있도록 한 것이다. 이 기법은 악성 행위에 사용되는 메소드 호출 시퀀스를 감지한다는 점에서는 정적 분석과 유사하지만, 감지 루틴이 스크립트 실행 중에 동작하므로 동적으로 결정되는 리턴 값과 파라미터까지 검사할 수 있어 높은 감지 정확도를 가지게 된다.
대상 데이터
측정에 중점올 두고 이루어졌다. 실험에 사용한 샘플은 각각 10개씩의 악성 코드와 일반(legitimate) 코드로 구성되었으며, 사용하는 메소드 호출의 패턴이 유사한 것들은 가급적 배제하고 서로 다룬 행위 패턴을 보이는 것들이 선택되었다. 샘플 집합에 대한 실험 결과긍정 또는 부정 오류는 발생하지 않았으며, 펜티엄 m 500MHz CPU를 장착하고 마이크로소프트 윈도우즈 2000 운영체제를 탑재한 PC에서 다음과 같은 수행 결과를 보였다.
성능/효과
배포되어야 한다. 그러나, 제안하는 코드 삽입기법은 악성 행위의 감지에 필요한 모든 코드가 대상 스크립트 내부에 삽입되므로, 코드 삽입이 이루어진 스크립트는 여타 환경에 구애받지 않고 지속적인 자기 감시를 수행할 수 있게 된다.
둘째, 기존의 어플리케이션 변환 기법에서는 접근 정책이 반영된 별도의 라이브러리가 해당 도메인의 사용자들에게 배포되어야 한다. 그러나, 제안하는 코드 삽입기법은 악성 행위의 감지에 필요한 모든 코드가 대상 스크립트 내부에 삽입되므로, 코드 삽입이 이루어진 스크립트는 여타 환경에 구애받지 않고 지속적인 자기 감시를 수행할 수 있게 된다.
둘째, 실행 시간의 관점에서 볼 때, 일반 스크립트는 악성 스크립트보다 적은 오버헤드를 보인다 변환된 코드는 악성 행위에 사용되는 페소드의 출현 시마다 자기진단 루틴이 호출되는데, 알반 스크립트는 이러한 메소드가 적게 나타나므로 전체적인 수행 시간의 증가가 적게 나타남은 당연한 결과로 해석될 수 있다. 따라서, 실제 상황에서는 시스템에 보유한 전체 스크립트 중 극히 일부만이 악성이라는 사실올 고려해보면 사용자가 체감할 수 있는 시스템의 오버헤드는 더욱 작을 것으로 예상할 수 있다.
셋째, 코드 삽입으로 인한 코드 크기의 증가는 실행 시간의 증가에 비해 상대적으로 m게 나타남을 관찰할 수 있다. 이는 모든 툴을 처리할 수 있는 고정된 자기 진단 루틴이 항상 삽입되어야 한다는 것과, 매칭 룰에는 나타나지한 해당 코드 내에서는 실질적으로 악성 행위에 가담하지 않는 떼소드 호출들의 검사롤 위한 코드가 삽입돤다는 점에 기인한다.
본 논문에서는 서버에서의 실행만으로 지속적인 행위 감시가 가능하도록 하는 악성 스크립트 감지기법옱 제안하고 그 구현 낓 실험결과를 제시하였다. 실험 결과, 클라이언트에 별도의 안티바이러스 구성 요소가 없이 행위 감시에 의한 악성 코드 판별이 가능함을 확인하였으나 변환된 코드에 오버헤드가 존재함이 확인되었다. 따라서, 현재 정적분석 기법의 적극적인 활용올 통하여 오버헤드를 감소시키는 방법에 대한 연구가 진행 중이다.
즉, AND로 연결된 조건은 다수의 룰로 분리하여 사전 만족 조건절(pre-condition phrase) 에 기술하고, OR로 처리해야 할 부분은 각각의 조건식이 만족될 경우 false로 초기화된 전역변수를 true로 변경하는 우회적인 방법으로 기술되었다. 이것은 룰 기술과 추후 해독올 어렵게 하는 요소이므로, 조건식에 논리 연산자를 직접 사용할 수 있도록 하고 전역 변수의 사용을 금지함으로써, 전체적으로 룰 기술이 단순하고 악성 행위의 논리와 일치하도록 수정하였다,
첫째, 가장 큰 차이점은 기존의 어플리케이션 변환 기법이 각각의 API가 접근할 수 있는 자원을 제한함으로써 샌드박스(sandbox)와 유사한 효과를 얻기 위한 것이나, 제안하는 기법은 각각의 메소드 호출이 아니라 이들이 구성하는 행위 패턴의 감지를 통해 악성 코드를 구별한다는 점이다.
첫째, 클라이언트에 아무런 안티바이러스 모듈의 설치 없이, 서버에서의 처리만으로도 실질적인 행위 감지를 수행할 수 았다. 따라서, 이러한 기법은 전자우편 서버, 프록시 서버 등과 같이 해당 도메인에 유입되는 모든 프로그램이 특정 서버를 통과하는 서비스에서 유용하게 사용될 수 있다.
나타나고 있다. 특히 변환 후에는 어떠한 코드에나 동일한 자기 진단 루틴이 삽입되는 제안된 기법의 특성을 감안해볼 때, 그 이상의 코드 증가가 거의 발생하지 않았고, 이로 인해 수행시간에도 거의 영향을 미치지 않음을 확인할 수 있다. 그러나 악성 코드의 경우에는 상대적으로 큰 오버헤드를 보이게 된다.
정의의 정확성에 크게 의존하개 된다. 특히 제안하는 기법은 단순하게 메소드 호출 자체만을 검사하는 것이 아니라 기존의 정적 분석 기법을 활용하여 호출에 수반되는 인자까지 정확하게 검사하므로, 악성 행위 패턴의 정의가 정확하다면 긍정 오류 없이 알려진 악성 행위의 발생을 감지함 수 있게 된다.
후속연구
따라서, 현재 정적분석 기법의 적극적인 활용올 통하여 오버헤드를 감소시키는 방법에 대한 연구가 진행 중이다. 향후에는 악성 코드의 감지 이전에 수행된 악성 코드의 영향으로부터 시스템올 복구하는 대응 기법에 대한 연구가 이루어질 것이며, 궁극적으로는 이진 코드에도 이와 동일한 기법을 적용함으로써 기업 환경에서의 서버용 안티바이러스 프레임웍에 이용 가능하도록 할 것이다
참고문헌 (13)
Eugene H. Spafford, 'Computer Viruses as Artificial Life,' Journal of Artificial Life, MIT Press, 1994
배병우, 이성욱, 조은선, 홍만표, '정적 분석 기법을 이용한 악성 스크립트 탐지', 2001년 한국정보보호학회 종합학술발표회 논문집, Vol. 11, No.1, pp.91-95, 2001. 11
차민석, '악성 스크립트의 종류와 역사', 안철수연구소, 2002
Frederick B. Cohen, 'Computer Viruses: Theory and Experiments,' Computers and Security 6, 1987, pp.22-35
Mark Kennedy, 'Script- Based Mobile Threats,' Symantec AntiVirus Research Center, 2000. 6
Baudouin Le Charlier, Morton Swimmer, Abdelaziz Mounji, 'Dynamic detection and classification of computer viruses using general behaviour patterns,' Fifth International Virus Bulletin Conference, Boston, September 20-22, 1995
Francisco Fernandez, 'Heuristic Engines,' 11th International Virus Bulletin Conference, 2001. 9
※ AI-Helper는 부적절한 답변을 할 수 있습니다.