-
Notifications
You must be signed in to change notification settings - Fork 0
/
adg-security-service-name.html
37 lines (37 loc) · 4.42 KB
/
adg-security-service-name.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>4.2. 서비스 이름 선정</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="Linux-PAM_ADG.html" title="Linux-PAM 응용 개발자 안내서"><link rel="up" href="adg-security.html" title="4장. Linux-PAM 보안 관련 사안"><link rel="prev" href="adg-security-library-calls.html" title="4.1. 표준 라이브러리 호출에 유의하기"><link rel="next" href="adg-security-conv-function.html" title="4.3. 대화 함수"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.2. 서비스 이름 선정</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="adg-security-library-calls.html">이전</a> </td><th width="60%" align="center">4장.
<span class="emphasis"><em>Linux-PAM</em></span> 보안 관련 사안
</th><td width="20%" align="right"> <a accesskey="n" href="adg-security-conv-function.html">다음</a></td></tr></table><hr></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="adg-security-service-name"></a>4.2. 서비스 이름 선정</h2></div></div></div><p>
<span class="emphasis"><em>Linux-PAM</em></span> 설정 파일
각 열의 첫 항목에 해당하는 <span class="emphasis"><em>service-name</em></span>을
고를 때 <code class="varname">argv[0]</code>와 연관되도록
선택하는 걸 <span class="emphasis"><em>피해야</em></span> 한다.
사용자가 시스템 상의 응용을 다른 이름으로 호출하는 건 간단한
일이므로 보안 침해를 막으려면 그렇게 하지 말아야 한다.
</p><p>
일반적으로 프로그램이 setuid이거나 그 외 방식으로 호출
사용자보다 높은 권한을 가지고 있는 경우에 이는 항상 올바른
원칙이다. 일부 경우에는 이 원칙을 피하는 게 편하지만,
응용 작성자는 프로그램이 설치되고 사용될 방식들을 충분히
검토해 볼 필요가 있다. (setuid로 의도한 프로그램이 아닌데도
편의를 위해 그렇게 설치되는 경우가 종종 있다. 여기 해당하는
프로그램이라면 원칙을 피하는 게 중대한 실수가 된다.)
</p><p>
어떤 <span class="emphasis"><em>대상</em></span> 응용을
다른 이름으로 호출하기 위해 사용자가 대상 응용에 원하는 다른
이름의 심볼릭 링크를 걸 수 있다. 사용자가
<span class="command"><strong>ln -s /target/application ./preferred_name</strong></span>
실행 후 <span class="command"><strong>./preferred_name</strong></span>을
실행하기만 하면 된다.
</p><p>
공격자가 <span class="emphasis"><em>Linux-PAM</em></span> 설정
파일을 조사해 본 후 보호 정도가 최소인 이름으로
<span class="command"><strong>preferred_name</strong></span>을
고를 수 있다. 예를 들어 <span class="emphasis"><em>Linux-PAM</em></span>을
이용해 하루 중 특정 시간으로 접근을 제한하는 game을 선택할 수 있다.
service-name이 서비스를 호출하는 파일명과 연계돼 있으면
사용자가 실질적으로 그 서비스에서 쓰는 인증 체계를 제어하는
위치에 있게 된다. 당연히 이는 안전한 상황이 아니다.
</p><p>
결론은 응용의 service-name을 조심스럽게 정해야 한다는 것이다.
가장 안전한 방법은 이름 하나를 선정해서 하드코딩하는 것이다.
</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="adg-security-library-calls.html">이전</a> </td><td width="20%" align="center"><a accesskey="u" href="adg-security.html">위</a></td><td width="40%" align="right"> <a accesskey="n" href="adg-security-conv-function.html">다음</a></td></tr><tr><td width="40%" align="left" valign="top">4.1. 표준 라이브러리 호출에 유의하기 </td><td width="20%" align="center"><a accesskey="h" href="Linux-PAM_ADG.html">대문</a></td><td width="40%" align="right" valign="top"> 4.3. 대화 함수</td></tr></table></div></body></html>