서버 보안은 네트워크 보안 만큼 중요합니다. 그 이유는 기업체의 많은 중요한 정보가 서버에 저장되어 있기 때문입니다. 만일 서버가 손상되면 크래커가 서버에 저장된 내용물을 모두 빼내거나 마음대로 조작할 가능성이 있습니다. 다음 부분에서는 이와 관련된 중요한 문제점에 대하여 설명해 보겠습니다.
Red Hat Enterprise Linux를 전체 설치하시면 1200개에 이르는 응용 프로그램과 라이브러리 패키지가 설치됩니다. 그러나 대부분의 서버 관리자 분들은 배포판에 포함된 모든 개별 패키지를 설치하기 보다는, 대신 여러 서버 응용 프로그램을 포함한 기본 패키지 설치를 선호하십니다.
대부분의 시스템 관리자들은 실제로 어떠한 프로그램이 설치되는지 주시하지 않은 채 운영 체제를 설치하시는 경우가 많습니다. 이러한 경우, 기본 설정에 포함된 필요치 않는 서비스가 설치되어 켜질 수 있으므로 문제가 됩니다. Telnet, DHCP, DNS와 같은 원치 않는 서비스가 관리자가 깨닫지 못한채 서버나 워크스테이션에서 실행되어, 서버에 필요없는 트래픽을 야기시키며 심지어는 크래커가 시스템에 침입 가능하게 해줍니다. 포트를 닫거나 사용되지 않는 서비스를 비활성화 시키는 방법을 보시려면 5 장을 참조하시기 바랍니다.
기본 설치에 포함된 대부분의 서버 응용 프로그램들은 철저하게 테스트와 검증을 거친 소프트웨어입니다. 여러 해를 거쳐 생산 환경에서 사용되면서, 이 소프트웨어의 코드가 보다 개선되고 발견된 다수의 문제점이 수정되었습니다.
그러나 완벽한 소프트웨어란 있을 수 없으며 언제든지 개선할 요소가 있기 마련입니다. 더우기 새로운 소프트웨어는 기대하는 만큼 엄격하게 테스트되지 않는 경우가 종종 있습니다. 그 이유는 이 소프트웨어가 제품 환경에 출시된지 얼마되지 않아서 이거나 또는 다른 서버 소프트웨어 만큼 많이 사용되지 않기 때문입니다.
개발자와 시스템 관리자는 서버 응용 프로그램에서 문제점을 발견한 경우 그 정보를 Bugtraq 메일링 리스트 (http://www.securityfocus.com)나 컴퓨터 비상 대응팀 (Computer Emergency Response Team: CERT) 웹사이트 (http://www.cert.org)와 같은 버그 추적과 보안 관련 웹사이트에 공개합니다. 이러한 방법은 커뮤니티에 보안 취약점을 빠르게 알려줄 수 있는 효율 적인 방법이기는 하지만, 시스템 관리자들은 즉시 시스템을 패치를 설치하셔야 합니다. 크래커는 동일한 취약점 추적 서비스를 볼 수 있기 때문에 재빠르게 패치가 설치되지 않은 시스템에 침입하여 정보를 빼내올 가능성이 있기 때문입니다. 훌륭한 시스템 관리자라면 보다 안전한 컴퓨팅 환경을 만들기 위하여 항상 경계하며 지속적으로 버그 (문제점)을 추적하고 적절한 시스템 관리 작업을 수행해야 합니다.
항상 업데이트된 시스템을 유지하는 방법에 대한 자세한 정보는 3 장을 참조하시기 바랍니다.
관리자가 시스템에 패치를 설치하지 않는 것은 서버 보안에 있어서 가장 큰 위험 요소입니다. SANS (System Administration Network and Security Institute)에 따르면 컴퓨터 보안에 취약점을 가져오는 가장 주된 원인은 "재대로 교육 받지 않는 미숙한 사람을 보안 관리하도록 맡겨놓고 작업을 수행할 수 있는 시간이나 교육도 제공하지 않기 때문이다."[1]라고 합니다. 이러한 상황은 미숙한 관리자 뿐만 아니라 너무 자만하거나 의욕을 상실한 관리자에게도 적용됩니다.
일부 관리자들은 서버와 워크스테이션에 패치를 설치하는 것을 잊어버리는 경우가 있는 반면, 다른 어떤 관리자들은 시스템 커널의 로그 메시지나 네트워크 트래픽을 잊고 살펴보지 않는 경우도 있습니다. 또 다른 흔한 실수로 서비스의 기본 암호나 키를 변경하지 않고 그대로 사용하는 것을 들 수 있습니다. 예를 들어 일부 데이터베이스에는 시스템 관리자가 설치 후 암호를 즉시 변경할 것이라는 가정 하에 기본 관리 암호가 할당됩니다. 만일 데이터베이스 관리자가 이 암호를 변경하지 않으면, 경험이 없는 크래커도 잘 알려진 기본 암호를 사용하여 데이터베이스에 관리자 허가를 얻을 수 있습니다. 앞에서 설명된 것은 부주의한 관리가 서버 침입에 미치는 영향을 보여주는 몇가지 예시일 뿐입니다.
가장 경계가 투철한 기업체에서도 선택한 네트워크 서비스가 원래 안전하지 못하다면 공격당하기 쉽습니다. 예를 들어 신뢰하는 네트워크 하에서 사용될 것이라는 가정 하에서 개발된 서비스가 많습니다; 그러나 이러한 가정은 서비스가 본질적으로 신뢰할 수 없는 — 인터넷 상에서 사용 가능해지면 더 이상 적용되지 않습니다.
이러한 안전하지 못한 네트워크 서비스의 한 예로서 인증을 위해 암호화되지 않는 사용자명과 암호를 요구하는 서비스를 들 수 있습니다. Telnet과 FTP가 이러한 서비스의 두 예입니다. 만일 패킷 스니핑 소프트웨어가 원격 사용자와 이러한 서비스 사이의 트래픽을 감시 중이라면 서비스 사용자명과 암호를 쉽게 가로챌 수 있습니다.
이러한 서비스는 본질적으로 보안 산업에서 소위 말하는 man-in-the-middle 공격의 대상이 되기 쉽습니다. 이러한 유형의 공격은 크래커가 네트워크 상의 이름 서버에 침입하여 자신의 컴퓨터를 원래 수신 서버로 오인하게 하여 네트워크 트래픽을 방향 변경시키는 것을 말합니다. 누군가 서버로 원격 세션을 시작하면, 공격자의 컴퓨터는 보이지 않는 관로 역할을 하며 원격 서비스와 아무것도 알아채지 못한 사용자 사이에서 조용히 정보를 빼내갑니다. 이러한 방법을 사용하여 크래커는 서버나 사용자가 모르게 관리자 암호와 원자료를 가로챌 수 있습니다.
안전하지 못한 서비스에는 네트워크 파일 시스템인 NFS와 NIS 정보 서비스가 포함됩니다. 이러한 서비스는 LAN 사용을 위해 만들어졌지만, 불행히도 원격 사용자를 위하여 WAN도 포함하도록 확장되었습니다. NFS는 기본적으로 크래커가 NFS 공유를 마운트한 후 그 공유에 속한 자료에 접근하는 것을 방지할 수 있는 어떠한 인증이나 보안 메커니즘도 갖추고 있지 않습니다. NIS 또한 평문 ACSII 또는 (ASCII에서 파생된) DBM 데이터베이스에 네트워크 상 모든 컴퓨터에 알려진 중요한 정보 (암호와 파일 권한)를 보관합니다. 만일 크래커가 이 데이터베이스에 접속할 수 있게 된다면 네트워크 상 모든 사용자 계정을, 심지어는 관리자의 계정까지도 사용 가능하게 됩니다.
Red Hat은 이러한 서비스를 사용하지 않도록 기본 설정되어 있습니다. 그러나 관리자들은 종종 이러한 서비스를 불가피하게 사용해야할 경우가 있으므로, 신중하게 설정하는 것이 중요합니다. 안전한 방법으로 서비스를 설정하는 방법에 대한 자세한 정보를 원하신다면, 5 장을 참조하시기 바랍니다.
| [1] |