루트킷이나 해킹의 흔적이 있는지 어떻게 확인할 수 있을까요?
궁금~ 궁금~
변변치 않은 제 경험으로 보자면
확인 불가입니다.
해킹한 사람이 실수를 한 것이 아니라면
시스템 로그가 이미 다른 것으로 바뀌었거나
남아 있다고 하더라도
ls 나 cd cat df 같은 기본 명령어가
다 다른 것으로 바뀐 상태일 테니까요.
미리 누군가가 노리고 있는지(?)를 평소에 확인하지 않는 한
털린 후에는 별 방법이 없을 겁니다.
지금 질문 제목을 보니 조금 애매하기는 하군요.
제가 알고 싶은 것은…
해킹 시도의 흔적을 확인하는 방법과 루트킷이 설치되었는지 검사하는 방법입니다.
그런데 확인이 불가능하다니…
아주 전문적인 해커가 아닌 초보적 수준의 해킹 기술로도 완벽하게 해킹이 가능하다는 말씀이십니까…
기본 명령어가 바껴있다는 걸 확인할 수는 없는 것인가요?
확인이 불가능하다면 의심이 갈 때 새로 설치하는 방법 밖에는 없을까요?
예방을 하고 싶다면 누군가가 노리고 있는지 평소에 확인할 수 있는 방법은 무엇인가요?
이런 보안쪽으로는 전혀 모르기 때문에 궁금한게 많네요.
적어도 윈도우는 프로세스 감시나 백신 등을 통해서 확인할 수라도 있는데.
우분투도 보안면에서 안전한 곳은 아니군요.
어느날 부터인가 집에 돌아오면 느낌이 이상합니다. 누군가 왔다 간 것 같은 느낌이 듭니다.
이걸 어떻게 확인해야 할까…
열쇠구멍(로그인)을 들여다 볼까? 근데 아무리 봐도 이상을 찾을 수 가 없었다.
그럼 집안이 어질러진 흔적은? (시스템 로그)
음… 화장실에 걸려있던 수건이 약간 틀린듯한 기분이 든다.
오늘 나가기 전에 이불이 저렇게 되어 있었나?
해킹 흔적을 찾는다는건 이것과 마찬가지입니다.
당장에 이것저것 바뀌어 있어도 집중해서 알아보기 전에는 정확히 알 방법이 없죠.
시스템에 침입한 사람의 실력은 그렇게 중요하지 않습니다.
애초에 '시스템에 침입했다’는 시점에서, 그건 보안이 뚫린겁니다.
이미 현관은 열고 들어온 상태고, 그 이외에 할 수 있는건 중요물품을 금고에 넣고 잠궈 뒀다거나 하는 정도의 이야기가 되는거죠.
여기서 침입자의 흔적을 찾는건 2가지 방법이 있습니다.
시스템 내의 모든 로그를 뒤져 비교/분석해서 어긋나는 점이 있는지 찾아보는것(집 수색)이 있고
그 이외의 네트워크 경로(라우터 등의 로그)선상에 있는 장비의 로그와 시스템에 들어온 로그를 비교하는 방법입니다. (주변 목격자 탐문)
여튼 그래서 ‘이미 들어온’ 상태에서는 침입자가 초보건 아니건 별로 중요하지 않습니다.
그러면 그걸 사전에 예방하려면 현관이 제일 중요하겠죠.
일단 가장 간단하게는 방화벽이 있고, 사용하지 않는 포트를 막고, 사용하는 포트에 대해서는 유저 로그인에 대한 룰을 확실히 정해두고…
언제나 초고급 해커들의 먹잇감 취급을 받는 시스템이 아니라면 저정도만 해도 정말 대부분의 해킹/크래킹을 막을 수 있습니다.
루트킷 확인은 chroot로 샌드박스 시스템을 구성한 다음 각 명령을 한번씩 실행해 보는게 가장 확실합니다.
다만 이것은 시간이 오래 걸리기 때문에 find를 이용해서 '침입이 의심되는 기간 동안 변경된 시스템 파일’을 검색해 보세요.
예를들면 정말 어지간해선 수정될 일이 없는 ls같은 파일이 비슷한 기간에 변경되어 있다면 루트킷으로 의심해 볼 수 있는거죠.
음… 횡설수설 제대로 한 느낌이군요.
도움이 될지 모르겠습니다.
[quote="yemharc":f8za5959]
여기서 침입자의 흔적을 찾는건 2가지 방법이 있습니다.
시스템 내의 모든 로그를 뒤져 비교/분석해서 어긋나는 점이 있는지 찾아보는것(집 수색)이 있고
그 이외의 네트워크 경로(라우터 등의 로그)선상에 있는 장비의 로그와 시스템에 들어온 로그를 비교하는 방법입니다. (주변 목격자 탐문)
[/quote:f8za5959]
아…
너무나도 적절하신 표현에 바로 이해가 가네요.
[quote="yemharc":7tfpu3kg]다만 이것은 시간이 오래 걸리기 때문에 find를 이용해서 '침입이 의심되는 기간 동안 변경된 시스템 파일’을 검색해 보세요.
예를들면 정말 어지간해선 수정될 일이 없는 ls같은 파일이 비슷한 기간에 변경되어 있다면 루트킷으로 의심해 볼 수 있는거죠.[/quote:7tfpu3kg]말씀해 주신 방법으로 기본 도구가 변경되지는 않았는지 확인이 가능하겠군요. 감사합니다.
아주 적절하신 비유로 인해 대충 이해할 수 있게 되었습니다.
그 비유 그대로 제가 알고 싶은 것에 대해 말씀 드리자면…
-
해킹 시도의 흔적 확인
집에 돌아올 때마다 수상한 넘이 현관문앞에 얼쩡거리는 것을 목격했으며
종종 현관 열쇠구멍에 철사 쪼가리가 들어 있는 것을 확인했다. -
해킹 후에 유출 루트 발견
어느날 집에 들어왔더니 가전제품의 상태가 내가 나가기 전이랑 조금 다르다.
그래서 TV 근처를 살펴봤더니 뒤에 몰래 카메라가 설치되어 있는 것을 발견했다.
이런 상황을 예방하고 확인하기 위한 적절한 도구가 있을지 궁금합니다.
이를테면 최신식 자물쇠를 설치해 두면
이 자물쇠에 정확히 맞지 않는 열쇠를 끼워서 열려고 시도할 때
자물쇠에 장착된 카메라로 범인의 사진을 찍었다가
나중에 집에 돌아오면 침입 시도의 시간과 사진을 확인할 수 있을 껍니다. (윈도에서의 성능 좋은 방화벽들)
그리고 알려진 몰래 카메라나 도청기를 검색해주는 검사기를 집안에서 한번 실행시키면
귀찮게 집안 여기저기를 사진 찍어서 비교해 보며 구석구석 확인하지 않고도
범인이 흔한 장비를 사용했다면 범죄에 쓰인 도구들을 발견할 수 있겠지요. (윈도에서의 백신들)
이런 방법과 같이
열려있지 않은 포트로 접근하려고 자꾸 시도하는 연결과
ssh로 잘못된 계정으로 로그인을 시도하는 대상들을 감시해서 손쉽게 보여주거나
잘 알려져 있는 루트킷이나 해킹 방법에 따른 변화를 비교해보고
의심스러운 것을 보고해주는 도구가 없을까요?
아니면 바이러스나 스크립트 등으로 간단하게 해킹되는 윈도우에 비해
리눅스에서의 해킹 패턴이 일정하지 않기 때문에 이런식의 도구를 만들기 불가능한 것인지…
[quote="yemharc":7tfpu3kg]시스템 내의 모든 로그를 뒤져 비교/분석해서 어긋나는 점이 있는지 찾아보는것(집 수색)이 있고
그 이외의 네트워크 경로(라우터 등의 로그)선상에 있는 장비의 로그와 시스템에 들어온 로그를 비교하는 방법입니다. (주변 목격자 탐문)[/quote:7tfpu3kg]
집 수색과 주변 목격자 탐문을 조금 쉽게 도와주는 사설탐정과 같은 도구들은 없을까요?
일단 사설탐정(…)으로는 로그 뷰어가 있습니다.
[url:rfv6g0ls]http://soft.udm4.com/downloading/ubuntu_event_log_viewer/[/url:rfv6g0ls] ::: 이벤트 로그 뷰어
[url:rfv6g0ls]http://soft.udm4.com/downloading/firewall_log_viewer_for_ubuntu/[/url:rfv6g0ls] ::: 방화벽 로그 뷰어
최신식 방범설비(…)로는 우분투에서는 최근 ufw라는 방화벽 시스템을 사용합니다.
ufw의 그래픽 프론트앤드로는 gufw가 있습니다.
사용법도 매우 간단하며, 우분투 소프트웨어 센터에서 구할 수 있습니다.
또한 집 안의 몰래카메라에 대해서는 apparmor (App Armor)가 있습니다.
아마…기본적으로 설치되어 있을것 같은데 확실하진 않네요.
이건 시스템 각 어플리케이션의 취약점을 공략하여 침투한 경우에 대비해 각 어플리케이션이 자신의 권한 이상을 획득하지 못하도록 막아줍니다.
앱아머 역시 소프트웨어 센터에서 제공됩니다.
마지막으로, 리눅스의 해킹/크래킹 패턴은 되려 윈도우보다 간단합니다.
사람들이 오해하는 것 중 가장 큰 것은 수단입니다.
대다수의 해킹/크래킹은 ‘사람을 통해’ 이루어집니다.
막상 시스템 자체의 취약점은 점점 사라지고 있는 상황이죠.
만약의 만약에, 내 시스템은 최신 보안패치가 모두 적용되었고 각종 보안툴과 보안설정도 열심히 했는데 순식간에 정보가 털렸다!!!
라는 상황에 부딪히신다면 어느 시스템이라도 마찬가지라고 생각하셔도 무방합니다.
그만큼 최근의 시스템은 외부로부터의 공격에 강력한 방어수단을 가지고 있다는 말입니다.
오히려 프로그램/바이러스 등에 의한 크래킹은 윈도우가 더 활발하죠
그럼 횡설수설은 마무리 하고, 도움이 되셨으면 합니다.
아주 많은 도움이 되었습니다.
정말 감사합니다.
던져주신 키워드 만으로도 많은 것을 검색해볼 수 있어서 정말 좋습니다.
그 와중에 rkhunter와 chkrootkit이라는 루트킷 검사 도구도 알게 되었구요.
제가 개인적으로 사용하고 있는 서버에 최근 이상한 접속 시도가 있는 것 같아서 걱정이 많이 되었는데…
한마디로 "사람만 조심하면 왠만해서는 털릴일이 없다"는 것이로군요.
너덜너덜한 현관문을 가진 윈도에 비해 단단하니 별다른 도구가 필요하지 않은 것일 수도 있겠군요.
매번 윈도나 리눅스를 사용하면서 아직 한번도 해킹이나 크래킹을 겪어본 적이 없는지라
윈도에서도 다양한 도구들이 있으니 우분투에는 어떤 도구들이 있으려나 하는 호기심에 많이 여쭤보았습니다.
너그럽게 여러번 답변해 주셔서 감사합니다.
[quote="yemharc":2kxpjf8l]
대다수의 해킹/크래킹은 ‘사람을 통해’ 이루어집니다.
막상 시스템 자체의 취약점은 점점 사라지고 있는 상황이죠.
만약의 만약에, 내 시스템은 최신 보안패치가 모두 적용되었고 각종 보안툴과 보안설정도 열심히 했는데 순식간에 정보가 털렸다!!!
라는 상황에 부딪히신다면 어느 시스템이라도 마찬가지라고 생각하셔도 무방합니다.
[/quote:2kxpjf8l]
결국 보안의 '핵심’은 소프트웨어가 아닌 사람인거군요.
이 이야기는 그만큼 리눅서들이 '보안’에 관해 관심을 가지고 서버를 정비하며 나아갈때
그만큼 서버를 의도적으로 뚫고 들어온다는 것은 현재상황에선 어려운 일이며,
결국…
진짜 적은 '내부’에 있는 격인거네요.
넵. 사람이 가장 중요합니다.
제가 아는 한 보안 강도의 기준은
사람 >> 물리적 접촉 >> 네트워크 >> 소프트웨어
입니다.
그리고 보안 == 귀찮게 하기 가 꼭 틀린 말은 아닙니다.
귀찮다는건 바꿔 말하면 복잡하다는 것도 되거든요.
예를들면 서버 루트 계정 비밀번호는 다음과 같은 규정이 있습니다. (업계 관행적 규정에 가깝습니다.)
-
비밀번호는 영문 소/대문자, 특수문자, 숫자를 섞어 최소 12자리 이상으로 만든다.
1-1. 일반적으로 자주 사용되는 단어/문장을 사용하지 않는다.
1-2. 자신이 일상에서 자주 사용하는 단어/문장을 사용하지 않는다. -
루트 계정 접속이 인가된 사람 이외에는 누구에게도 알려주지 않는다.
2-1. 외부인에게 루트 계정을 할당해야 할 경우 관리자가 옆에서 직접 비밀번호를 입력해 준다. -
비밀번호를 따로 어딘가에 적어두거나 통신수단(전화/문자/메신저/이메일 등등) 일체를 이용하여 전송하지 않는다.
-
시스템의 중요도에 따라 최소 일주일에서 최대 6개월에 한번 이상 비밀번호를 교체한다.
4-1. 한번 사용한 비밀번호는 폐기하고 최소 1년, 최대 3년간 중복해서 사용하지 않는다.
요게 루트 계정에 대해 앞 뒤 다 자르고 남은 "비밀번호"에만 관련된 보안 권고사항입니다. (더 있었던거 같은데 기억이 안나네요)
음… 근데 이게 정말 잘 지켜질까요? 아마 사람이 먼저 지쳐 나가 떨어질거 같은데 말이죠
…여튼 여러가지 이유로 사람이 제일 큰 '보안 구멍’입니다.
일하는 중이라 이만 줄입니다. ㅠㅠ
저는 패스워드 생성기를 통해서 생성한 비밀 번호를 사용하고 (32자리)
딱 한장 출력해서 저만 아는 서류철에 보관해 둡니다.
그리고 심심하면(비정기적으로) 한번씩 재생성해서 바꾸고 출력하고 하는 식으로 사용하는 중입니다.
이정도면 20명 이하의 소규모 서버에서는 충분하겠지요?
[quote="tinywolf":m5oa5n7i]저는 패스워드 생성기를 통해서 생성한 비밀 번호를 사용하고 (32자리)
딱 한장 출력해서 저만 아는 서류철에 보관해 둡니다.
그리고 심심하면(비정기적으로) 한번씩 재생성해서 바꾸고 출력하고 하는 식으로 사용하는 중입니다.
이정도면 20명 이하의 소규모 서버에서는 충분하겠지요? [/quote:m5oa5n7i]
패스워드는 좀 과하다 싶을 정도네요 ^^;; (나쁜건 아닙니다. 다만 매우 귀찮을거 같아요 ㅎㅎ)
그 이외에는 뭐, 혹시라도 그럴 일이 있겠습니까마는, 서버에 물리적으로 접근이 가능하면 어쨌든 뚫리는건 아시죠? -> 그런데 이정도면 말 그대로 범죄