본문 바로가기

스맥

(7)
'아프니까 개발자다' 블로그 2015년 총결산, "타이젠과 함께" 안녕하세요, 타이젠 개발자 윤진입니다. 2015년 마지막 날을 맞이하여, 블로그 총결산을 진행하고자 합니다.제 블로그를 찾아주시는 극소수의 개발자분들조차 총결산 따위에 관심없으시겠지만,블로거로서 지난 한해를 돌아보고,더 나은 내일을 구상하기 위해 2015년을 돌아보고자 합니다. 블로그 정보를 훑어보겠습니다.그 동안 총 159개의 글을 썼습니다.대부분의 글은 외부에 발행한 공개글이고,열개 남짓한 글은 차후에 게시하기 위해 가다듬고 있는 중입니다.댓글은 글마다 평균 0.6개 정도가 달리고 있습니다.타이젠에 대해 전문적인 내용을 다룬 포스팅에는 댓글이 거의 없네요.문의가 없다는 것은 그만큼 완벽하게 포스팅을 하고 있는 것이겠죠...? 마지막에 블로그 개설일이 뚜렷하게 찍혀있습니다.2015년 3월 1일!그렇습니..
[SMACK] 스맥에서 onlycap으로 root 권한 축소하기 root 권한을 가진 프로세스는 모든 파일에 접근할 수 있습니다.프로세스가 어떤 스맥레이블로 활성화되어있건 관계가 없죠.사실 약간 깡패같은 느낌이 없잖아 있습니다.그게 root의 막강한 권한이기도 하지요. 그렇지만, 플랫폼을 제품으로 출시할때,root 권한은 최대한 제한하고 없애야 합니다. 스맥을 사용하는 시스템에서는 onlycap이 좋은 시작이 될 수 있습니다.특정 스맥레이블을 onlycap이라 설정하고,onlycap만이 "스맥레이블을 명시하지 않아도" 모든 파일에 접근할 수 있게 합니다. 이 말은 root라 할지라도 onlycap이 아니면 모든 파일에 접근할 수 없다는 말이지요. 스맥이 활성화된 커널에서는 CAP_MAC_ADMIN을 가진 프로세스만이 스맥레이블을 변경할 수 있습니다.CAP_MAC_AD..
[SMACK] 스맥에 대한 이야기를 쌓아본다 * SMACK 원리 [SMACK] 스맥체크의 7가지 단계 * SMACK Manifest [SMACK] 스맥 레이블을 긋기 위한 manifest의 모든 것 - 파일편[SMACK] 스맥 레이블을 긋기 위한 manifest의 모든 것 - DBUS편 * SMACK 기능[SMACK] 스맥에서 onlycap으로 root 권한 축소하기 * SMACK 사용하기[SMACK] 쉘의 /proc/self/attr/current로 스맥권한 조종하기 * SMACK & Privilege[SMACK] 타이젠 Privilege의 모든 것
[SMACK] 스맥 레이블을 긋기 위한 manifest의 모든 것 - DBUS편 디버스의 메소드/시그널에도 스맥을 적용할 수 있습니다. 스맥이 적용된 디버스 메소드/시그널에는 권한이 있는 프로세스만 접근할 수 있습니다.브로드캐스팅하는 인터페이스라 할지라도 권한이 없으면 접근할 수 없습니다. 스맥이 최초부터 디버스를 지원하진 않았습니다.하지만, 디버스로 주고받는 정보를 누구에게나 노출하는 것은 위험할 수 있습니다.따라서 2012년 2월에 한 용자가 디버스에 스맥을 이식해버렸습니다. 그리고 3년이 지난 지금은 스맥의 주요 기능 중 하나가 되었죠. 스맥을 위한 manifest 파일 만드는 법은 이전 포스팅에서 설명한 바 있습니다."SMACK 레이블을 긋기 위한 manifest의 모든 것 - 파일편", http://storycompiler.tistory.com/49이 manifest 파일에..
[SMACK] 스맥 레이블을 긋기 위한 manifest의 모든 것 - 파일편 SMACK을 사용하는 시스템에 있는 파일들은, 언제 스맥 레이블이 그어질까요?파일이 설치되는 시점입니다. - 사용자가 직접 파일을 생성/다운로드/카피/이동하는 경우사용자가 직접 파일을 생성/다운로드/카피/이동하면,사용프로세스 혹은 이동디렉토리의 스맥권한이 파일에 새겨집니다. - 패키지를 풀어 그 안의 파일들을 설치하는 경우패키지를 풀어 파일을 설치하면,패키지를 만드는 시점에 지정한 방식으로 스맥레이블이 그어지겠지요. 이 포스팅에서는 패키지를 생성하는 시점에 "파일/디렉토리"에 스맥 레이블을 긋는 방법을 공유하도록 하겠습니다. 패키징하는 시점에 이미 존재하는 파일에는,패키지마다 하나씩 존재하는 manifest 파일로 스맥 권한을 부여할 수 있습니다.manifest 파일은 [패키지이름].manifest로 이..
[SMACK] 스맥체크의 7가지 단계 스맥에 대해 하나씩 정리를 해보고자 마음을 먹었습니다만,정리해야할 내용이 너무 많아서 고민하고 있습니다. 기본적인 원리는 간단할지 모르겠으나,원리와 원리의 적용(현실화)에는 무척이나 깊은 간극이 있습니다. 비교적 간단한 원리부터 설명하여,틈 나는 대로 하나씩 포스팅하겠습니다. 위의 그림은 펭귄...일겁니다.이상한 모양의 삼각형 펭귄.SMACK의 공식 로고입니다.SMACK에 대한 신뢰를 한 순간에 무너뜨릴 만큼 허접한 로고입니다. SMACK은 프로세스와 파일에 Label을 긋는 것에서 시작됩니다.SMACK이 적용된 플랫폼의 모든 파일에는 SMACK Label이 그어지게 되죠.Label은 흔히 그 파일을 설치한 패키지 이름이나 파일의 성격에 따라 작명합니다. 한 패키지에 다수의 파일이 있으면,같은 패키지 이..
[SMACK] 쉘의 /proc/self/attr/current로 스맥권한 조종하기 파일에 rwxrwxrwx처럼 새겨진 권한만으로는 디테일한 권한설정이 어렵습니다. 소유자나 그룹의 권한을 확인하여 파일에 접근하는 종래의 방식은, 그룹 내 사용자들 간에 세부적인 권한설정이 어려웠지요. 이를 위해서는 그룹을 세세히 쪼개 관리해야했죠. 하지만, SMACK을 사용하여 상황이 나아졌습니다. 스맥 코드는 커널소스에 추가되기 때문에, 커널이 프로세스가 가진 실행권한을 분석하며 파일 'label'에 대한 접근권한이 있는지 '추가'로 체크하게 됩니다. 리눅스 권한과 스맥 권한 두 가지를 모두 통과해야 비로소 파일에 대한 접근이 허용되죠. SMACK 환경에서는, 모든 프로세스/파일이 스맥 label을 갖고 있습니다. * SMACK 원리- 프로세스 : Subject, 프로세스에는 실행권한 Label이 새겨..