쉽게 말해드리자면,
기본적으로 커널은 프로세스가 갑자기 많아지면 프로세스 스케줄러가 그걸 못버티고 커널이
일시적으로 뻗어버립니다.
그 커널이 뻗은 사이에 재빨리 /system/xbin에 su와 busybox등을 박고
/system/app/superuser.apk를 심는겁니다.
이게 거의 모든 루팅법의 기반이 되는 Exploit이라는 취약점이고요,
그럼 커널이 뻗어버리면 아무것도 못하지만 외부적? or 내부적으로는 뭘 할수있나?
모바일 안드로이드 커널 소스 잘보는사람
공인 인증서 시스템이 안전하지 못한 이유 소프트웨어 2010/03/22 08:34 |
소프트웨어 시스템 보안의 관점에서 공인 인증서로 통칭되는 우리나라의 인터넷 금융 거래를 위한 소프트웨어 시스템은 구조적으로 보안 또는 안전성이 매우 떨어지는 시스템이다. 암호화 알고리즘이나 공인 인증 방식 자체가 안전하지 못하다고 말하는 것이 아니다. 여기서 이야기하고자 하는 것은 보안을 위해 '설치'되고 '실행'되는 소프트웨어들 (공인 인증서 프로그램, 키보드 보안 프로그램 등)의 보안 및 안전성에 대해 이야기 하는 것이다. 이유는 간단하다. 보안을 위해 우리가 믿어야 하는 요소가 너무 많기 때문이다.
소프트웨어 시스템의 보안에 대해 이야기할 때 반드시 등장하는 용어가 Trusted Computing Base (이하 TCB) 라는 용어다. TCB란 간단히 말해 소프트웨어를 만들때 믿고 쓰는 그 무언가이다 [2]. 예를 들어 데이터를 암호화해 전송하는 소프트웨어 모듈 X가 있다고 하자. X는 암호화 하고자 하는 데이터를 파일시스템 Y로부터 읽어온다고 하자. 제 3자가 이 시스템의 보안을 무력화하기 위해서는 네트워크로 전송되는 암호화된 데이터를 해독하는 방법도 있지만, 컴퓨터에 침입하여 파일시스템 Y에 저장되어 있는 암호화 되기 이전의 데이터를 얻는다면 마찬가지로 보안은 깨진다. 따라서 암호화 모듈 X의 보안은 파일시스템 Y의 보안에 의존적이며 이 때 Y를 X의 TCB라고 한다.
근본적으로 모든 시스템은 그것을 만들기 위해 사용한 다른 무언가를 믿을 수 밖에 없다. 소프트웨어 시스템의 보안은 그 시스템 자체의 보안 뿐 아니라 믿고 사용하는 TCB의 보안에 의존하고 있기 때문에 어떤 시스템이 아무리 그 자체로는 안전하다고 해도 TCB의 안전성이 떨어진다면 전체 시스템은 안전하지 않다. 소프트웨어는 크기가 커질 수록 급속도로 복잡해 지기 때문에 안전성이 떨어질 수 밖에 없기 때문에 안전한 시스템을 만들기 위해서는 그것이 의존하고 있는 TCB의 크기를 최소화 하는 것이 기본이다 [3].
한국의 공인 인증서 시스템이 안전하지 못한 이유는 우리가 '믿고' 사용하는 TCB인 Active X로 구현된 각종 프로그램들이 안전하지 못하기 때문이다. Active X로 만든 프로그램은 운영체제의 모든 기능을 아무런 제약없이 사용할 수 있다. 하지만 그로 인해 이 프로그램들의 TCB는 운영체제및 그것이 사용하는 모든 라이브러리가 된다. 공인인증서 관련 모듈의 오류로 인해 브라우져가 멎거나 이상한 동작을 하는 경험을 누구나 해 보았을 것이다. 현재 시스템의 보안은 딱 그만큼 보안상으로도 안전하지 못하다. 스마트폰에서도 유사하게 인증서 프로그램 및 기타 소프트웨어를 설치하는 방식으로 한다고 하는데 [1], 기본적으로 외부 실행 프로그램에 의존하는 방식은 그 프로그램의 실행을 위한 런타임 (운영체제, 라이브러리)이 TCB 되므로 안전하지 못하다. 현재 공인 인증서 시스템을 구현한 프로그램은 보다 구체적으로 윈도우 운영체제 (XP, Vista, Win7 의 각 버젼) 및 MFC 라이브러리 등이 TCB이며, 스마트폰에서는 안드로이드, iPhone OS등이 새로운 TCB가 된다. 근본적으로 안전성을 담보할 수 없는 방식이다.
안전성을 높이기 위해서는 TCB를 최소화 해야 하며 지금처럼 Active X 방식 또는 기타 방식으로 '믿을 수 없는' 소프트웨어를 설치해서는 안된다는 것은 명백하다. 이에 대한 대안은 많은 전문가들에 의해 논의되는 바와 같이 SSL + OTP 등과 같은[4,5,6] 운영체제 비 의존적이며 최소한의 TCB를 가지는 방법이어야만 한다.
현행 시스템을 개발할 당시에는 브라우져에 내장되어 있는 암호화 알고리즘 40비트로 제한되어 있어 (미국이 안보상의 이유로 탑재 금지하였음) 어쩔 수 없이 별도의 프로그램 형태로 개발된 측면이 강하다. 그러나 이러한 제약이 없어진 지금에도 (현재는 128bit 이상의 암호화를 모든 브라우져가 지원함) 지금과 같은 안전하지 못한 별도 프로그램 실행 방식을 고수하며 이 방식이 더 안전하다고 주장하는 것은[1] 옳지 않다.
Reference
[1] 스마트폰 공인인증서에 대한 신문기사, http://news.mt.co.kr/mtview.php?no=2010032110421673170&type=1
[2] TCB 에 대한 Wiki 정의, http://en.wikipedia.org/wiki/Trusted_computing_base
[3] Native Client: A Sandbox for Portable, Untrusted x86 Native Code, Bennet Yee, David Sehr, Gregory Dardyk, J. Bradley Chen, Robert Muth, Tavis Ormandy, Shiki Okasaka, Neha Narula, Nicholas Fullagar, Security and Privacy, IEEE Symposium on, pp. 79-93, 2009 30th IEEE Symposium on Security and Privacy, 2009
[4] 오픈웹, http://openweb.or.kr/
[5] 오픈 뱅크, http://openbank.or.kr/
[6] 류한석님 컬럼, http://www.zdnet.co.kr/Cont
'wif LiNoUz > Ubuntu' 카테고리의 다른 글
vi (0) | 2013.01.21 |
---|---|
정규식 표현 (0) | 2012.12.12 |
우분투 ojdbc14 드라이버 어따 복사하냐 (0) | 2012.10.10 |
우분투 VMWARE 한영키 (0) | 2012.10.10 |
리눅스 파일 이름 한번에 바꾸기 (0) | 2012.09.11 |