$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

안드로이드 커널 모듈 취약점 탐지를 위한 자동화된 유닛 테스트 생성 기법
Automated Unit-test Generation for Detecting Vulnerabilities of Android Kernel Modules

정보과학회논문지 = Journal of KIISE, v.44 no.2, 2017년, pp.171 - 178  

김윤호 (KAIST 전산학부) ,  김문주 (KAIST 전산학부)

초록
AI-Helper 아이콘AI-Helper

본 논문에서는 안드로이드 커널 모듈의 취약점을 탐지하기 위한 자동 유닛 테스트 생성 기법을 제안한다. 안드로이드 커널 모듈의 각 함수를 대상으로 테스트 드라이버/스텁 함수를 자동 생성하고 동적 기호 실행 기법을 사용하여 테스트 입력 값을 자동으로 생성한다. 또한 안드로이드 커널 모듈의 함수 포인터와 함수 선행 조건을 고려하지 않은 테스트 생성으로 인한 거짓 경보를 줄이기 위해 정적 분석을 통한 함수 포인터 매칭 기법과 def-use 분석을 사용한 함수 선행 조건 생성 기법을 개발하였다. 자동 유닛 테스트 생성 기법을 안드로이드 커널 3.4 버전의 세 모듈에 적용한 결과 기존에 존재하던 취약점을 모두 탐지할 수 있었으며 제안한 거짓 경보 감소 기법으로 평균 44.9%의 거짓 경보를 제거할 수 있었다.

Abstract AI-Helper 아이콘AI-Helper

In this study, we propose an automated unit test generation technique for detecting vulnerabilities of Android kernel modules. The technique automatically generates unit test drivers/stubs and unit test inputs for each function of Android kernel modules by utilizing dynamic symbolic execution. To re...

주제어

참고문헌 (21)

  1. IDC Smartphone OS Market Share, 2015 Q2, http://www.idc.com/prodserv/smartphone-os-market-share.jsp 

  2. P. Godefroid, N. Klarlund, and K. Sen, "DART: Directed Automated Random Testing," Proc. of the 2005 ACM SIGPLAN conference on Programming Language Design and Implementation, pp. 213-223, Jun. 2005. 

  3. I. Zakharov, M. Mandrykin, V. Mutilin, E. Novikov, A. Petrenko, and A. Khoroshilov, "Configurable Toolset for Static Verification of Operating Systems Kernel Modules," Programming and Computer Software, Vol. 41, No. 1, pp. 49-64, Jan. 2015. 

  4. H. Post, C. Sinz, and W. Kuchlin, "Towards Automatic Software Model Checking of Thousands of Linux Modules-A Case Study with Avinux," Vol. 19, No. 2, pp. 155-172, Jun. 2009. 

  5. T. Witkowski, N. Blanc, D. Kroening, and G. Weissenbacher, "Model Checking Concurrent Linux Device Drivers," Proc. of the 22nd IEEE/ACM International Conference on Automated Software Engineering, pp. 501-504, Nov. 2007. 

  6. A. Kadav, M. Renzelmann, and M. Swift, "Tolerating Hardware Device Failures in Software," Proc. of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, pp. 59-82, Oct. 2009. 

  7. D. Song, D. Brumley, H. Yin, J. Caballero, I. Jager, M. Kang, Z. Liang, J. Newsome, P. Poosankam, and P. Saxena, "BitBlaze: A New Approach to Computer Security via Binary Analysis," Proc. of the 4th International Conference on Information Systems Security, pp. 1-25, Dec. 2008. 

  8. K. Sen, D. Marinov, and G. Agha, "CUTE: A Concolic Unit Testing Engine for C," Proc. of the 10th European Software Engineering Conference held jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 263-272, Sep. 2005. 

  9. N. Tillmann, and J. De Halleux, "Pex: White Box Test Generation for .NET," Proc. of the 2nd International Conference on Tests and Proofs, pp. 134-153, Apr. 2008. 

  10. Y. Kim, Y. Kim, T. Kim, G. Lee, Y. Jang, and M. Kim, "Automated Unit Testing of Large Industrial Embedded Software using Concolic Testing," Proc. of the 28th IEEE/ACM International Conference on Automated Software Engineering, pp. 519-528, Nov. 2013. 

  11. C. S. Pasareanu, P. C. Mehlitz, D. H. Bushnell, K. Gundy-Burlet, M. Lowry, S. Person, and M. Pape, "Combining Unit-level Symbolic Execution and System-level Concrete Execution for Testing NASA Software," Proc. of the 2008 International Symposium on Software Testing and Analysis, pp. 15-26, Jul. 2008. 

  12. C. Pacheco, S. K. Lahiri, M. D. Ernst, and T. Ball, "Feedback-directed Random Test Generation," Proc. of the 2007 International Conference on Software Engineering, pp. 75-84, May. 2007. 

  13. G. Fraser and A. Arcuri, "EvoSuite: Automatic Test Suite Generation for Object-oriented Software," Proc. of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, pp. 416-419, Sep. 2011. 

  14. L. Baresi, P. L. Lanzi, and M. Miraz, "TestFul: An Evolutionary Test Approach for Java," Proc. of the 2010 3rd International Conference on Software Testing, Verification and Validation, pp. 185-194, Apr. 2010. 

  15. P. Garg, F. Ivancic, G. Balakrishnan, N. Maeda, and A. Gupta, "Feedback-directed Unit Test Generation for C/C++ Using Concolic Execution," Proc. of the 2013 International Conference on Software Engineering, pp. 132-141, May. 2013. 

  16. P. McMinn, "Search-based Software Test Data Generation: A Survey," Software Testing, Verification and Reliability, Vol. 14, No. 2, pp. 105-156, Jun. 2004. 

  17. Clang/LLVM. http://llvm.org 

  18. Y. Kim, M. Kim, and Y. Jang, "CREST-BV: An improved concolic testing technique supporting bitwise operations for embedded software," Journal of KIISE: Software and Applications, Vol. 40, No. 2, pp. 90-98, Feb. 2013. (in Korean) 

  19. CVE-2013-1059: https://cve.mitre.org/cgi-bin/cvename.cgi?nameCVE-2013-1059 

  20. CVE-2013-1763: https://cve.mitre.org/cgi-bin/cvename.cgi?nameCVE-2013-1763 

  21. CVE-2014-0101: https://cve.mitre.org/cgi-bin/cvename.cgi?nameCVE-2014-0101 

저자의 다른 논문 :

섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로