Kevin Fenzi, kevin@tummy.com
Dave Wreski, dave@nic.com
v1.1.0 2000년 3월 8일
장 범수, bschang@kldp.org
2000년 5월 9일
-----------------------------------------------------------------------------------
이 문서는 Linux System 관리자가 상대하게 되는 보안 이슈에 대한 일반적 개론을 밝힌다. 일반적인 보안 철학 등과 Linux System을 침입자로부터 보호할 방법 등의 특정 보기를 몇 가지 적어 놓았다. 보안에 관계된 자료들과 Program을 구할 수 있는 곳도 적어 놓았다. 개선 사항, 건설적인 비평, 첨가 사안, 그리고 수정안 등을 감사한 마음으로 수용하겠다. 여러분의 의견은 두 저자 모두에게 "Security HOWTO"를 Mail의 제목에 써서 보내 주기 바란다
-----------------------------------------------------------------------------------
10. 침입 도중이나 후에 할 일들
드디어 여기에 적혀 있는 (혹은 다른 곳의) 조언을 따른 결과로 침입을 감지해 내었다면? 첫 번째로 할 일은 침착성을 유지하는 것이다. 성급한 행동은 공격자가 저지를 수 있는 것보다 더 큰 해를 끼칠 수 있다.
10.1 보안 공격 진행 중!
진행 중인 보안 공격을 알아차리는 것은 긴장되는 일일 수 있다. 여러분이 어떻게 대응하는가에 따라 중요한 결과를 가져올 수 있다.
공격이 물리적인 것이라면, 누군가 여러분의 집이나 사무실, 연구실에 침입한 것을 감지한 경우일 것이다. 경찰에 알려야 한다. 연구실 환경에서 누군가가 Case를 열려고 하거나 Computer를 재부팅 하려고 하는 것을 여러분이 볼 수도 있다. 여러분의 권한과 절차에 따라, 여러분은 그들에게 중지하도록 요구하거나 지역 보안 책임자에게 연락할 수 있다.
지역 사용자가 보안을 훼손하고자 하는 것을 감지했을 경우, 가장 먼저 해야 할 일은 그 사용자가 실제 본인인지 확인하는 것이다. 그 사용자가 어디에서 Log-In하려고 하고 있는지 확인해 보도록 하라. 그 곳이 평상시에 Log-In해서 들어오는 곳인가? 그렇지 않은가? 다음에는 (E-Mail을 쓰는 등으로) Computer를 통하지 않은, 직접적인 연락을 취해 보도록 하라. 예를 들어 전화를 걸거나 그 사용자의 집 혹은 사무실로 직접 찾아가서 이야기를 나눌 수 있다. 만일 그 사용자가 자기의 행위를 시인한다면, 그의 행위에 대해서 설명하도록 요구할 수 있고 그런 행위를 중지하라고 말할 수도 있다. 그가 부인하거나, 여러분이 말하는 사건에 대해서 모른다면 좀 더 조사를 해야 한다. 비슷한 사건들을 알아보고 고발이나 비난을 하기 전에 많은 정보를 확보하도록 하라.
Network를 통한 침투를 감지했다면, 처음 할 일은 (할 수 있다면) Network 연결을 끊는 것이다. 침입자가 Modem으로 접속했다면 Modem 선을 뽑아 버리도록 하고, Ethernet을 통해 접속해 들어온다면 Ethernet 선을 뽑아라. 이렇게 하면 침입자가 더 큰 피해를 입히는 것을 막을 수 있고, 침입자는 아마 자신이 들통났다고 생각하기보다는 Network에 문제가 생긴 모양이라고 여길 것이다.
여러분이 Network 연결을 끊을 수 없다면 (접속이 빈번한 Site이거나, Computer에 대한 물리적 관리 권한이 없다면), 차선책은 침입자의 Site로부터 접속해 들어오는 것을 막기 위해 tcp_wrapper나 ipfwadm 같은 Program을 사용하는 것이다.
침입자의 Site에서 들어오는 모든 사람들의 접근을 거부할 수 없는 입장이라면, 사용자들의 계정을 폐쇄하여야 한다. 하나의 계정을 폐쇄하는 것은 쉬운 일이 아니라는 점에 주의하라. .rhosts File과 ftp를 통한 접근, 매우 많은 뒷문 (backdoor)의 가능성을 염두에 두어야 한다.
위의 조치들 (Network 절단, 공격자의 Site로부터 오는 접근 시도 거부, 그리고/혹은 그들의 계정 폐쇄) 가운데 한 가지를 하고 나면, 공격자의 모든 사용자 Process를 죽이고 그들을 Log Off 시켜야 한다.
공격자는 다시 들어오려고 시도할 것이므로, 다음 몇 분 동안은 여러분의 Site를 자세히 감시해야 한다. 공격자는 아마도 다른 계정을 쓸 것이고, 다른 Network 주소를 쓸 수도 있다.
10.2 보안 훼손이 이미 일어난 경우
이미 일어난 사고를 뒤늦게 겨우 알아차렸거나, (바라기로는) 감지된 공격자를 여러분의 System에서 잠가서 쫓아내 버렸다.. 이제는 무엇을 해야 할까?
개구멍 막아내기
공격자가 여러분의 System에 들어오기 위해 사용한 방법이 무엇인지 알 수 있다면, 그 구멍을 막도록 해야 한다. 예를 들어서, 어쩌면 침입자가 들어오기 바로 직전에 FTP 사용이 여러 번 보이는 것을 보았다고 하자. 이런 경우에는 FTP Service를 중지하고 개정 버전이나 알려진 교정 사항 목록이 있는지 찾아봐야 한다.
일지 문서들을 확인해 보고, 여러분의 보안 List와 Page Site에 가서, 고쳐야 하는 새롭거나 잘 알려지고 있는 침탈법이 올려져 있는지 목록을 살펴보도록 하라. 칼데라 보안 수정안은 여기에서 구할 수 있다. Redhat은 아직 보안 수정안 목록을 Bug 수정안에서 구분하지 않고 있지만, 배포본의 수정안 정보는 여기에서 구할 수 있다.
Debian은 Web에 보안 관련 Mailing List를 구성해 놓았다.
또한 한 제작자가 보안 수정안을 내면, 다른 대부분의 제작자 또한 곧 수정본을 내놓을 수 있다.
Linux 보안 감사 프로젝트 (保安 監査: Linux Security Auditing Project)도 있다. 그들은 사용자 공간 도구들에서 보안 침탈법과 Overflow들을 찾기 위해서 하나씩 철저히 검사하고 있는 작업을 하고 잇다. 그들의 공고문을 보면:
"저희는 OpenBSD 정도로 보안이 잘 되도록 만들기 위해서 Linux Source를 체계적으로 감사하려는 시도를 하고 있습니다. 이미 여러 개의 문제점을 발견했고 (그리고 고쳐 놓은) 상황입니다만, 많은 도움이 필요합니다. Mailing List는 조정자가 없고, 일반적인 보안 관련 토론에 있어서 쓸모 있는 수단이 되고 있습니다. List의 주소는 security-audit@freet.lm.h.ox.ac.uk입니다. 가입하시고 싶으시면 security-audit-subscribe@ferret.lm.h.ox.ac.uk로 Mail 주시기 바랍니다".
공격자를 완전히 차단하지 않으면, 그는 대개 다시 돌아온다. 여러분의 Computer뿐 아니라, 여러분의 Network 안의 어딘 가로 말이다. 공격자가 Packet Snifer를 작동시키고 있었다면, 그는 지역 내의 다른 Computer로 접근할 수 있다.
피해 평가
첫 번째 할 일은 피해를 평가하는 것이다. 무엇이 훼손되었는가? Tripwire 같은 완전성 검사 Program을 사용하고 있다면, Tripwire를 실행시켜서 무결성의 검사를 실시할 수 있다. 이런 Program이 없다면, 모든 중요한 자료들을 일일이 살펴보아야 한다.
Linux System은 갈수록 설치하기 쉬워지고 있으므로, 중요한 설정 File들을 따로 저장해 두고 Disk를 아예 지워 버린 다음 Linux를 처음부터 다시 설치한 뒤, Backup으로부터 사용자 File과 설정 File들을 복구하는 것을 고려해 볼 수도 있다. 이렇게 하면 깨끗한 System을 새로 갖게 된다. 만약 보안이 깨진 Computer의 Backup을 만든다면 -- 침입자가 심어 둔 트로이의 목마일 수 있으므로 -- 어떠한 이진 File이라도 주의해서 보아야 할 것이다.
침입자가 root 권한을 가지게 된다면, 재설치 작업은 반드시 실행되어야 할 작업 중의 하나로 인지되어야 한다. 덧붙여서, 여러분이 증거를 확보하려 한다면 여분의 Disk를 금고에 보관하는 것도 나쁜 것은 아닐 것이다.
그 뒷일로는 언제 침탈이 실행되었는지를 걱정해야 할 것이고, 그에 따라서 Backup이 어느 정도나 손상된 Data를 소지하고 있는가를 봐야 할 것이다. Backup에 대해서는 뒤에 더 설명하겠다.
Backup, Backup, 그리고 또 Backup!
정기적으로 Backup을 해 두는 습관은 보안 문제에 있어서는 정말 중요하다. System의 보안이 깨졌을 때, 필요한 자료를 Backup으로부터 복구할 수 있기 때문이다. 공격자가 가치 있게 생각하는 자료는, 훔쳐서 자기의 사본을 만들어 둔 다음에 원본을 파괴하려 하겠지만, 최소한 원래의 자료를 도난 당할지언정 아주 잃어 버리지는 않게 되는 것이다.
변조된 File을 Backup된 것으로 복구하기 전에, 이전의 여러 Backup본들을 확인해 보아야 한다. 침입자가 File을 오래 전에 망쳐 놓았다면, 이미 변조된 File들만 잔뜩 Backup해 놓았을 수도 있기 때문이다.
물론 Backup본들에 대해서도 보안 문제가 있다. Backup본들을 안전한 장소에 두었는지 확인하여야 하고, 누가 거기 접근할 수 있는지 알고 있어야 한다. (공격자가 Backup본을 얻을 수 있다면, 여러분이 모르는 사이에 여러분의 모든 자료에 접근할 수 있게 되는 것이다.)
침입자 추적
침입자를 몰아내고, System을 복구했다고 해서 모든 일이 끝난 것은 아니다. 대개 침입자들은 잡히지 않지만, 그래도 공격 사건을 보고해야 한다.
공격자가 여러분 System을 공격하던 Site의 관리자에게 그 사건을 알려주어야 한다. 연락처는 whois나 Internet Database를 이용해서 찾아볼 수 있다. 상관된 모든 일지 내용과 날짜 및 시간을 첨부해서 저쪽 관리자에게 Mail을 보내는 것도 좋다. 침입자에 대해서 어떤 특이한 점을 발견했다면 그것도 함께 알려주도록 하라. Mail을 보낸 뒤에 (하고 싶다면) 전화를 써서 연락을 계속하도록 하라. 저쪽 관리자가 그 공격자를 찾아냈다면, 그 관리자가 다시 공격자가 들어온 Site의 관리자에게 말하고 뭐 그렇다.
뛰어난 Cracker는 대개 많은 건너뛰기 용 중간 System들을 사용한다. 이 System들 중의 어떤 (혹은 여러분의) 장소에서는 침입 당했다는 사실조차 모를 수도 있다. Cracker의 원래 System까지 쫓아가는 것은 어려운 일이다. 여러분이 이야기하게 되는 관리자들에게 공손하게 대하는 것은 그들로부터 도움을 얻어내는데 좋다.
여러분이 관계되는 (CERT나, 이와 비슷한) 모든 보안 조직들에도 알려주어야 한다.
'Operating System > Linux' 카테고리의 다른 글
| Sendmail (Compile & Installation) (0) | 2007/06/19 |
|---|---|
| Sendmail (Sendmail이란?) (0) | 2007/06/19 |
| Linux Security How-To (FAQ/결론) (0) | 2007/06/18 |
| Linux Security How-To (색인) (0) | 2007/06/18 |
| Linux Security How-To (보안 관련 자료) (0) | 2007/06/18 |
| Linux Security How-To (침입 도중이나 후에 할 일들) (0) | 2007/06/18 |
| Linux Security How-To (접속에 앞서서) (0) | 2007/06/18 |
| Linux Security How-To (Network Security) (0) | 2007/06/18 |
| Linux Security How-To (Kernel Security) (0) | 2007/06/18 |
| Linux Security How-To (Password Security & Encryption) (0) | 2007/06/16 |
| Linux Security How-To (File & File System Security) (0) | 2007/06/16 |