절대 죽지 않는 프로세스(for monitoring)을 만들고 싶어요
글쓴이: munhoney / 작성시간: 목, 2010/04/22 - 1:44오후
안녕하세요
모니터링 툴을 만들려고 하는데, 악의적인 사람들이 그 프로세스를 죽일 수 없도록 만들고 싶어요.
지금 생각은 두개의 프로세스를 띄우고, 한놈이 죽으면 다른 한놈이 다시 띄워주도록 할려고 하는데,
이보다 더 좋은 방법이 있을까요?
그리고 만약 좋은 방법이 없다면 두개의 프로세스를 만들어서 백업시켜주는 방법의 문제가 있을까요?
의견을 듣고 싶습니다.
P.S.
Window 환경에서 개발을 할 것 같긴한데.. 그래도 개념 이라도 알고 싶어서 KLDP 문을 두들려 봅니다.
정말 Window 개발은 영~~~~ ㅡㅡ''''
Forums:
좀비 프로세서 라는 개념으로 한번 알아 보시죠
대개는 님 처럼 하나의 프로세스에서 계속 적으로 다른 프로세스를 감시하면서
죽으면 다시 살리는 식으로 하는걸로 알고 있습니다.
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------
절대 죽지 않는
절대 죽지 않는 프로세스를 만드는 것은 불가능합니다.
RET ;My life :P
앞에서 언급한 Dual Process로 하는 방법은 괜찮을까요?
제 생각도 절대 죽지 않은 프로세스를 만드는 것은 불가능할 듯 싶네요
하지만 앞분이 말씀하신 Dual Process 개념은 어떨까요? 그렇게 하면 비록 프로세스는 죽을 지언정 다시 살릴 수는 있자나요?
---------------------------------
http://blog.naver.com/munhoney
---------------------------------
프로세스 두개가
프로세스 두개가 서로 감시한다고 하더라도 무력화가 가능합니다.
자세한 방법은 언급하지 않겠습니다...
RET ;My life :P
어떤 방법인가요?
자세한 방법 좀 언급 해주세요.
실행 파일 이름 바꾸거나.... 뭐 이런건 아니시죠?
http://nicesj.com
https://nicesj.com
https://blog.nicesj.com
ruby on rails의 WEBrick은 못 죽이겠습니다.
ruby on rails 2.3.5를 깔고
WEBrick을
# nohup server & 이런 식으로 백그라운드로 실행을 시키니
kill로 아무리 죽일려고 해도 안 죽었습니다.
결국에 리부팅을 하는 방법 밖에 없었는데 이런 경우는 왜 안죽을까요?
kill -9로도
kill -9로도 안죽었나요? SIGINT, SIGTERM정도로 안죽는 경우 suspended process를 생각해 볼 수 있습니다.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
실제로..
정부 행망에 접속하면 깔리는 악성프로그램(..)은 프로세스 두개가 떠서 서로 감시하면서
하나가 죽으면 하나가 살리고 이런식으로 동작합니다.
하나 지우면 하나가 재설치해서 살리더군요 -_-;
뭐 그것도 제 기억에 설정파일 손대서 그런짓 못하게 해버렸던 기억이 나네요...
아는 사람은 다 아는
아는 사람은 다 아는 악명높은 인캅스가 그렇게 동작합니다.
윈도우 서비스가 백그라운드로 떠 있으면서 exe 파일을 실행하고 모니터링 합니다.
exe 파일은 윈도우 서비스가 내려가면 재 실행하고요.
하지만 이렇게 해도 죽이는 방법이 있습니다.
ntfs 접근 가능한 라이브cd로 부팅해서 서비스 실행 파일과 exe 파일을 삭제하면 그만입니다.
그래서 인캅스는 인캅스가 실행이 안 되면 네트웍이 안 되도록 제한을 걸었지요.
일반적으로
일반적으로 프로세스를 죽일려면 프로세스를 죽이는 함수들이 있을겁니다.(제생각으로 몇개 않될거에요)
그 함수들을 후킹하여 들어가는 인자값들을 검사하여 죽이려는 프로세스가 나일때는 못하게 막는 방법도 있겠구요
아니면 프로세스 목록에서 님이 실행시킨 프로세스를 감추는 방법도 있습니다.
도움이 되셨음 좋겠네요
linux 같은 경우 inittab
linux 같은 경우 inittab 에 등록을 해 주면.. kernel이 알아서 감시해 주죠. :-)
안죽는 방법보다
안죽는 방법보다 안보이는 방법이 더 좋을 것 같네요.
숨기는 방법은 많이 나와 있습니다. ps/proc 에서도 숨길수 있고 파일이나 커널모듈도 숨길수 있습니다.
------식은이 처------
길이 끝나는 저기엔 아무 것도 없어요. 희망이고 나발이고 아무 것도 없어.
댓글 달기