Netlog





I. Introduction of netlog



I-I.Netlog에 사용된 특징

말그대로 netlog 패키지는 TCP/IP 커넥션이 일어나는 상황의 데이터그램 중에 인증되지 않은 사용자나 호스트로부터의 접속이 일어나거나, 특정 명령과 관계 된 접속이 일어날 경우 그 데이터그램을 분석하여 원하는 정보를 빼어내게 된다. 즉, 소스 IP어드레스와 해당 서비스면들을 모니터하게 되는 것이다. 즉, netwatch이든, tcplogger이든, udplogger이든 모두 데이터그램으로부터 원하는 정보를 빼어낼 수 있게끔하는 루틴이 모두 필요하게 된다. 이 역할을 하는 루틴이 바로 pktfilt.c 에서 맡게 된다. 즉, 모든 프로그램이 위의 소스를 링크하여 적절한 스트럭쳐를 분석하게 된다. 소스레벨에서 궁금한 점이 있는 시스텀 관리자들은 아래의 파일들을 분석해보기 바란다.


$NETLOG_DIR/netwatch/pktfilt.c
$NETLOG_DIR/tcplogger/pktfilt.c
$NETLOG_DIR/udplogger/pktfilt.c


Netlog 도구의 pktfilt.c 은 telnet이나 ftp등의 TCP 패킷에서 userID와 passwd 부분에 해당하는 데이터는 필터링하지 못한다. 이를 보강한것이 sunsniffer등이다.



I-II.Netlog의 능력

Netlog패키지는 말 그대로 네트웍 상에서의 패키지의 전송을 모니터링하는 기능을 제공해 준다. 하지만, 막연히 데이터 패킷이 이리저리 옮겨다니는 현상만 있다면 그것은 시스템 관리자에게 아무런 도움을 주지 못하며, 엄청난 자원을 낭비하는 결과를 초래한다. 실제로 tcplogger프로그램을 약 10초간 돌렸을때 패킷을 모니터링한 파일은 약 5~10킬로바이트에 달한다. netlog가 꼭 필요하게 쓰이는 이유와 netlog도구가 등장하게 된 가장 큰 원인은 바로 'IP spoofing attack' 때문이다.즉, netlog패키지를 이용하여 'IP spoofing attack'과 'Hijacking tool'이 이용되고 있는지 체크하기 위한 목적으로 개발 되었다.

IP spoofing이란 기존의 TCP/IP 프로토콜의 디자인 상의 문제점을 이용하여 타겟 호스트의 trusted호스트인 척 가장하여 타겟 호스트로의 침입을 성공시키는 침입방법 중의 하나이다.


I-III.Netlog의 양면성

Netlog패키지는 단순한 모니터링만 제공해 줄 뿐, 어떤 exploit한만한 대상이 되지 못한다. 즉 'ps -aux | grep netwatch'와 같은 수작업을 통하여 자신이 모니터되고 있는지 아닌지에 관한 정보만 intruder에게 제공해 줄 뿐이다. 예를 들어, intruder가 kus.kaist.ac.kr에 계정을 갖고 있지만, IP spoofing을 통하여 attack을 시도하고자 할 경우, 'ps -aux | grep netwatch'등을 통하여 netwatch패키지가 동작중인지를 우선 알아본 다음 공격할 수 밖에 없는 것이다.

비록 netlog패키지를 이용하여 자신이 공격당할 우려는 없지만, netlog패키지의 신뢰도등을 자세히 살펴보고 신중한 분석이 필요하다고 판단된다. 왜냐하면, netlog패키지는 말 그대로 Network log를 모니터할뿐이므로, 공격의 수단은 될 수 없지만, 굉장히 많은 로그파일을 남기므로 세밀히 분석해 보지 않는한 효과적으로 시스템을 방어할 수 없다. 예를 들어, netwatch를 이용하여 모니터하고있더라도, smtp포트에 debug명령을 합법적인 사용자가 필요에 의하여 이를 사용하고 있을 수도 있지만, netwatch 프로그램이 이를 판별할 수는 없기 때문이다. netwatch의 결과를 통해 낯선 곳에서의 debug 명령 등이 나타난다면 이는 의심해 볼 수 있을 것이다.

하지만, network firewall의 신뢰도가 높아지고, 관리자들의 지식이 늘수록 IP spoofing 과 같은 침입은 줄어들것으로 예상된다. 왜냐하면, IP spoofing의 원천적인 봉쇄 방법이 바로 filtering router의 설치를 이용한 firewall의 setup이기 때문이다. 그러나, TCP/IP 프로토콜 디자인이 변하지 않는 이상 IP spoofing은 언제든지 일어날 수 있는 일이므로, 라우터 셋업(filtering router)등의 과정을 거쳐 철저한 trusted 환경을 구축해야 할 것이다.

먼저 IP spoofing에 대한 지식이 있어야 netlog패키지의 중요성을 실감할 수 있을 것이다.



I-IV. Netlog의 결론

Netlog 패키지는 intruder로 부터 exploit될 만한 우려의 소지는 전혀없다. 하지만,웬만한 지식이 없는 시스템 관리자에게는 무용지물이나 다름이 없다. IP spoofing등의 사전 지식을 필요로 하며 서브넷의 모든 커넥션을 로그파일에 남길 경우 자원의 낭비가 심할 수 있다.

Netlog 패키지의 방어용 소프트웨어로의 가장 최선의 전략은 무엇일까?

Netlog 패키지는 기본적으로 IP spoofing을 파악할 수 있다. 하지만, 앞서도 말했듯이 IP spoofing을 원천적으로 봉쇄할 수는 없다. IP spoofing attack이 시도되고 있다면, 즉시 시스템을 중단시키던지, 아니면 IP spoofing attack에 사용되는 TCP서비스를 찾아서 deamon을 죽이는 방법을 취해야 한다. Netlog는 또한 컴파일 시에 '$NETLOG_DIR/netwatch/monitors/lognames.h' 파일에 적절한 사용자 ID를 추가하여, 의심이 되는 사용자를 집중적으로 모니터할 수 있다. 기본적으로 lognames.h에 포함되어 있는 사용자들로는 'sybase, oracle, irc, bbs, anonymous, info, ftp, guest, gopher'등이 있다.

이러한 lognames.h파일에 필요에 따라 사용자들을 추가하여 모니터하면 굉장히 유용한 기능을 발휘할 수 있다. 또한, '시간, 공격 서비스명, 공격시도 호스트, 타겟 호스트, 명령' 등으로 이루어진 출력물을 이용하여 분석력과 시스템 관리자의 자질을 기를 수 있다.

사용자 인터페이스의 개선과 help 기능의 추가를 통한 개량이 가능할 것으로 보인다. 또한 netlog패키지와 여러 관리 도구를 병합하여 시스템 파괴에 대한 증거를 잡아내는 유틸리티들을 만들 수 있을 것 같다.




II. Install netlog




III. use netlog tools

netlog패키지의 모든 툴들은 root만이 사용할 수 있다는 점을 명심하기 바란다.



III-I. use netwatch



III-II. use tcplogger



III-III. use udplogger



III-IV. use extract




IV. link about netlog




V. Referance




Copyright

1998 anticj SPARCS all right reserved
LastUpDated at 1999.01.31