디지털 라이브러리[ 검색결과 ]
정적, 동적 분석방법을 결합하는 바이너리 코드 취약점 분석 프레임워크
http://doi.org/10.5626/JOK.2018.45.12.1217
바이너리 코드의 취약점을 분석하는 것은 소스 코드 분석에 비해 프로그램 의미정보가 적어서 분석이 상대적으로 어렵다. 따라서 전문 분석가가 다양한 특징을 가지는 여러 분석 기법을 조합해서 사용해야 하는 경우가 많다. 하지만, 이러한 분석 기법들은 수행 환경과 분석 결과나 분석에 드는 요구 사항들이 각기 다르므로, 각 도구에 대한 전문 지식이 있더라도 여러 분석 도구를 조합해서 사용하는 데에 부담이 존재한다. 본 논문에서는 바이너리 코드의 다양한 특징을 가지는 분석 도구들을 조합하는 프레임워크를 제시한다. 제안하는 도구는 서로 다른 수행 환경 등의 차이를 가지게 되는 정적분석과 동적 분석을 통합하는 프레임워크를 목표로 한다. 본 논문에서는 제안하는 프레임워크를 사용하여 IDA Pro및 angr 등을 활용한 예를 구축하여 사용가능성을 보이고 수행 시간 측면에서 개선됨을 보인다.
Nested Kernel의 커널코드 및 메모리보호 취약점 분석
http://doi.org/10.5626/JOK.2018.45.9.873
Nested Kernel은 2015년 ACM ASPLOS 학회에서 제시된 커널의 무결성 보장을 위한 새로운 보안커널 구조이다. Nested Kernel은 하드웨어 기반의 커널보호 기법에 대한 의존도를 줄이고 기존의 모놀리식 커널구조를 개선하여 보안성을 높였다. 그러나 Nested Kernel의 커널코드 및 메모리보호 기법을 상세히 분석한 결과 현재의 구현에는 직접사상과 코드영역에 대한 구현이 완벽하지 않고 논문에서 저자들이 제시하는 일부 기능이 실제로 구현되지 않아 메모리보호의 취약점을 발견하였다. 보안커널로의 활용을 위해서는 추가적인 연구가 필요할 것으로 보인다.
안드로이드 장치 드라이버에 대한 효과적 취약점 탐지 기법
안드로이드 및 리눅스 기반 임베디드 시스템에서는 디바이스 드라이버가 커널 함수로 포함되는 구조로 되어 있다. 어떤 디바이스 드라이버들의 경우, 여러 Third-party에 의해 제공되는 소프트웨어(펌웨어)가 포함되는데, 그 보안 수준에 대해 검토되지 않고 사용되는 경우가 많다. 보안 취약점 분석을 위해 일반적으로 사용되는 정적 분석의 경우, 오탐 가능성으로 인하여 실제 권한상승과 같은 주요 취약점을 확인하는데 많은 비용이 발생한다. 본 논문에서는 안드로이드 시스템에서 사용되는 디바이스 드라이버를 대상으로 정적 및 동적 분석 기반의 효과적인 보안 취약점 탐지 기법을 제시하고 그 효용성을 확인한다.
강건한 안드로이드 어플리케이션 개발을 위한 실행시간 인텐트 명세 검사 기법
안드로이드 앱의 액티비티, 서비스, 브로드캐스트 리시버와 같은 컴포넌트에 부적절한 인텐트를 전달하면 비정상적으로 종료되는 인텐트 취약점 문제가 빈번하게 발생한다. 이 논문은 안드로이드 컴포넌트가 기대하는 인텐트 명세를 개발자가 직접 기술하고, 실행시간에 이 컴포넌트에 전달된 인텐트를 검사하여 인텐트 취약점을 방지하는 방법을 제안한다. 인텐트 유효성을 검사하는 여러 조건문이 실수로 누락되거나 다른 코드와 섞여 유지 보수하기 어려운 점을 이 논문에서 제안하는 인텐트 명세를 선언함으로써 해결할 수 있다. 7개의 안드로이드 앱에 대해 제안한 방법을 적용한 실험 결과 인텐트 명세 기반 실행시간 검사 방법을 통해 앱의 비정상 종료를 방지할 수 있었다.