TTY watcher 열기
UNIX system에서 사용자가 로긴을 하게 되면 kernel은 새로운 가상의 터미널인 tty를 할당하고 tty를 통해 사용자와 대화를 하
게 된다. 마치 실생활에서 tty란 전화기라고 할 수 있는 것이다. 전화를 도청하는 것처럼 그 tty 를 엿보게 해주는 것이 ttywatc
her이다. 즉, ttywatcher란 local system에서 사용자들이 하는 행동들을 제어 또는 모니터링할 수 있는 도구이다. ttywatcher는
전 네트웍에 대해서 사용자들을 제어 모니터링을 할 수 있는 IP-watcher에 기반을 두고 만들어졌다. 비슷한 종류의 도구로는 tap
이란게 있으나 ttywatcher는 tap보다는 진보적이고 user-friendly한 인터페이스를 지니고 있다. X-windows Interface를 사용한다
.
그리고,
TTYwatcher의 경우 한국이라는 상황때문에 필히 "한글"문제가 있기 마련이다. X interface로 띄운 경우 특별리 한글
을 보기 위한 셋업이 되어 있지 않다면 한글은 모두 깨져서 나오게 욀것이다. 그리고 역시 curses 모드로 시용하여도 한글을 지
원하지 않는 터미널이면 역시 한글을 볼수가 없다. 이러한 문제의 해결책은 아래와 같다.
X-interface :
아래 주소에서 한글 X-library를 가져와서 설치한 후 실행 한다.
ftp://ara.kaist.ac.kr/pub/SPARCS/HanX
Curses interface :
hanterm을 설치한 후 hanterm내에서 시동한다.
이렇게 하면 한글 메세지까지 완전하게 보일것이다.
Watcher는 주로 trap을 걸때 사용한다. 해커가 침입시 그에 대한 log를 잡기 위해 침입루트를 열어주고 그의 행동을 관찰한 후
로그로 남긴 후 차후에 증거로 쓸수 있는 점에서 그 유일한 의미를 찾을수 있다. 볼법 사용자에 의해 사용될때 이도구는 개인의
프라이버실을 적나라하게 들어질수 있는 도구가 된다는 점에서 그 양변성을 찾을수있다.
TTY watcher 구하기
ftp://kus.kaist.ac.kr/pub/Security/tools/ttywatcher-*.*.*.tar.gz
http://nad.infostructure.com/watcher.html
TTY watcher 설치
1.SunOS 4.x에 설치하기
2.Solaris 2.x에 설치하기
SunOS 4.x의 경우
최상위 directory의 Makefile을 편집한다. 다음은 각각의 factor에 관한 설명이다.
1. Compiler의 Option 선택하기
CCOPT = -g -O -Itwtch -I/usr/5include # For gcc//cc compile시 comment out
#CCOTT = -0 -Itwtch -I/usr/5include # For cc//cc compile시 comment in
2. 사용할 X library include file 선택
INCLUDES = -I/use/openwin/incluse #for standard xview
#INCLUDES = -I/use/local/X11R6/include #For use installed Xview
Sun사의 openwindow를 사용할 경우엔 그대로 X11R6를 사용할 경우엔 아래 라인을 commemt in 한다.
3. 사용할 XVIEW라이브러리의 선택
#LIBXVIEW = -L/local/X11R6/lib/xviex-L/use/local/X11R6/lib-L /use/lob -lc -lxvuew -lolgx # -lX11
LIBXVIEW = -L/use/opemwin/lib-L/use/lib -lc0lxview -lolgx -lX11 -lm
의의 경우와 동일하다. 단, 위에서 X11을 택해 주어댜 한다.
4 Compoiler의 선택
CC = gcc -traditional
#CC =cc
LD=gcc
#LD =cc
ttywatcher는 K&R방식으로 코딩되어 있으므로 K&R방식을 지원하는 컴파일러로 컴파일한다.
대부분의 컴파일러가 K&R style을 지원하므로 신경쓸 필요는 없다.
이제 ttywatcher 를 build 한다.
$make
컴파일이 완료되면 커널에 모듈을 삽입한다. ttywatcher는 유저에게 tty가 할당되고 다시 커널에 귀속되는 일련의 과정을 위해
커널안에서 이 기능을 해줄수 있는 특정 함수 들의 집합인 모듈을 삽입해야 한다. 특정한 목적에 의해 변조된 커널의 경우 Mulica
st, Sybase kernel Fault 가 날수도 있다.
시스템을 Reboot 시킬때 마다 module 을 삽입해야 한다. 다수의 모듈을 삽입하면 ttywatcher가 동작하지 않는다. modstat, m
odunload 등의 명령을 사용하뎌 kernel 모듈을 핸들링 할수 있다.
$ cd twtch
$ make
$ su root
$ make doit /*모듈을 삽입해주는 루틴이다.*/
모든 셋업이 완료되었다.
ttywatcher를 실행한다.
$ ttywatcher [ -c ]
option for CURSES envirronment not X
Solaris 2.x의 경우
Makefile.solaris 를 편집하여 사용한다.
주의할점으로는, ttywatcher는 X liblary를 사용하므로 (when compiled Dynamically ) LD_LIBRARY_PATH에 /use/opensin/lib을
지정하도록한다.
&seten LD_LIBRARY_PATH/use/openwin/lib (csh style)
$ LD_LIBRARY_PATH= /use/openwin/lib;export LD_LIBRARY_PATH (sh style)
TTY watcher의 사용법
ttywatcher는 두가지의 인터페이스로 운용될수 있다.
1.view (X-windows) interface
2.Curses (text based) interface
TTYwatcher는 시동즉시 X-windows 인터페이스를 가동하려고 시도한다. (DISPLAY변수가 설정되어진 경우) X-WINDOWS 인터페이스
를 사용하길 원한다면 시동전에 DISPLAY 변수를 설정해야 한다.
Curses 모드에서의 인터페이스는 다음과 같이 나타난다.
=============================================================================
TTY=Watcher v1. 0 by En Garde Systems | Command:
----Active Session---------------------------------Status----------------------
dwhong [/dev/pts/0] 0 | Conn : No active connection
dwhong [/dev/pts/1] 0 | Conn status : *DEAD*
chester [/dev/pts/3] 0 |
chester [/dev/pts/4] 0 | Active conns:5
young [/dev/pts/2] 0 |
|-------------keys-----------------------
| Arrow/VI keys scroll,<ret> selects
| [f]ullscreen mode, [q]uit
-----------------------------Server -> Client-----------------------------------
----------------------------Client -> Server------------------------------------
==============================================================================
Main window 는 현재의 Active session에 대한 표시와 여러가지의 Option 메뉴가 있다.
Window에서 원하는 session 을 클릭하면 그세션에 대한 윈도우가 하나 더 뜨게 되고 이윈도우상에서 사용자의 tty를 감시할수
있다.
다음의 예제들은 Silaris 2.4에서 실행을 보이는 예제이다.
Active sessions :
chester [/dev/pts/2 ] 1697
/dev/pts/2의 세션은 chester란 유저가 스고 있다. 모니터링 시작부터 1697바이트의 정보가 그 세션을 통과햇다는 것을 나타 내
고 있다. 자세한 key sequence 는 man ttywatvjer에 자세히 설명되어 있다.