04.07.2014 Views

시간 기반 키 생성 방식을 이용한 안티 디버깅 기법 - SERSC

시간 기반 키 생성 방식을 이용한 안티 디버깅 기법 - SERSC

시간 기반 키 생성 방식을 이용한 안티 디버깅 기법 - SERSC

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

보안공학연구논문지 (Journal of Security Engineering), 제 10권 제 3호 2013년 6월<br />

이러한 조건문 응답 방식의 안티 디버깅 기법들은 동적 분석을 점프 및 리턴 값 자체를 조작하<br />

는 방식으로 우회 공격이 가능하다(조건문 점프를 무조건 점프로 변환 등). 개선된 기법은 프로세<br />

스가 실행될 때, 프로세스 실행 시간을 이용하여 키가 생성된다. 실행 시간 내에서는 항상 일정한<br />

키 값이 생성되어서 위장된 명령어 셋에 패치된다. 동적 분석을 위해 디버거가 첨부 되면 실행 시<br />

간 증가로 인한 잘못된 키 값이 생성되고 잘못된 키 값으로 패치된 명령어 셋은 원본 명령어 셋으<br />

로 복원이 되지 않으므로 오류가 발생한다.<br />

코드 암호화 기법은 정적 분석에 대해 어렵게 하였지만 디버깅을 통한 동적 분석을 고려하지<br />

않았다. 개선된 코드 암호화 기법은 복호화 할 때마다 프로세스 실행 시간 측정 2회, 시프트 연산<br />

2회, 뺄셈 연산 2회가 추가 적으로 들어가지만 이를 통해 디버깅을 통한 동적 분석을 어렵게 한다.<br />

명령어 자가 변조 기법은 실행 시간의 오차 범위 내에 있으면 복원 루틴을 실행시키고, 오차 범위<br />

밖이면 복원 루틴을 실행시키지 않는 조건 구문으로 구현되었다. 이러한 조건 구문은 리턴 값 조<br />

작이나 점프문 변환으로 우회 공격이 용이하다. 개선된 명령어 자가 변조 기법은 명령어를 복원할<br />

때마다 시프트 연산 2회, 덧셈 연산 1회가 추가적으로 발생하지만 생성된 키를 명령어에 패치함으<br />

로써 우회공격을 어렵게 한다.<br />

5. 결론<br />

본 논문에서는 시간 기반 키 생성 방식을 통한 안티 디버깅 기법을 제안하였다. 제안된 기법은<br />

실행 시간을 키 값으로 생성할 경우의 어려움을 해결하였다. 그리고 디버거 탐지 시 조건 구문 우<br />

회 공격 회피의 어려움을 해결하였다. 제안된 기법으로 암호화 하여 저장하면, 프로세스가 실행 될<br />

때 암호화 된 부분을 복호화하기 위한 키 생성을 하기 위해서 프로세스 실행 시간 차분 값과 특정<br />

영역의 해시 값을 계산하여 동적으로 키를 생성한다. 디버거가 첨부되면 프로세스 실행 시간의 차<br />

가 증가 하여 올바르지 못한 키가 생성된다. 올바르지 못한 키로 복호화하면 잘못된 복호화에 의<br />

해 자가 변조가 일어나고 오류가 발생한다. 또한 코드 암호화 기법과 명령어 자가 변조 기법을 개<br />

선하여 우회가 어려운 안티디버깅 기법을 제안하였다.<br />

301

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!