본문 바로가기

Security Indicator

IT 관리자들의 10가지 어리석은 실수들-1

IT 관리자들의 10가지 어리석은 실수들-(기본 인프라)   -zdnet column

 

Pc world 실린 내용 이나 의미 있게 살펴 보아야 할 내용들도 존재하고 다른 관점에서 보아야 할 이슈들도 존재한다. 침해사고가 창궐하고 있는 불황의 시기에 주관적인 의견도 도움이 되는 부분을 발췌하여 활용 한다면 서비스의 안정성 유지에 충분한 역할을 할 수 있을 것이다. 노골적인 표현 그대로 어리석은 실수라기 보다는 잘 지켰다면 문제들이 많이 줄었을 것이라는 아쉬움의 표현이라고 받아 들였으면 하는 바램이다. 한국적 IT 서비스에서 일반적으로 발생하는 침해사고에 관한 10가지 정도의 이슈로 참고 하셨으면 한다. 우선은 기본 인프라에 관련된 5가지 정도의 이슈에 대해 정리 한다.

 

차분하게 기업의 IT 보안 현실과 여러 가지 진행중인 개선 과제들이 무엇을 위한 것인지를 되돌아 보고 동일한 실수나 위험들이 반복 되지는 않는지 또는 기본적인 부분들은 어느 정도 대비가 되고 있는지도 살펴 보는 기회가 되었으면 한다.

 

본 컬럼에는 인터넷의 시작과 더불어 지금까지 계속된 일반적으로 알려진 이야기들도 존재하고 현재에 이르러 급격하게 나타난 이슈들도 존재한다. 시대의 상황에 맞게 기본적인 틀들을 지켜야 함은 변함 없는 규칙이다. 최소한의 규칙 준수는 피해의 가능성을 그만큼 줄여 줄 수 있기 때문이다.

 

기업의 보안에 있어서 가장 흔한 문제는 일어 났던 사고들이 반복해서 일어나고 시스템의 규모와 어플리케이션의 규모가 커짐에 따라 이미 알고 있는 부분 조차도 신경을 쓰지 못하여 방치된 기본적인 문제들이 추가적인 침입을 초래하는 상태에 이르는 문제이다. 이전까지는 발견을 하지 못하다가 침해사고를 경험한 이후에야 문제는 기본적인 것에 있음을 알게 된다.. 그러나 개선은 매우 더디게 진행된다. 이것이 지금까지의 루틴화된 대응방식들 이였다.  

근본적으로는 IT 보안 관리자 혹은 역량 있고 강력한 지원을 받는 IT 관리자가 극심하게 부족한 이유이기도 하고 경영과 분리된 기술로 치부 되고 있어서 더 심각한 양상을 우리나라에서는 띄고 있기도 하다.

 

IT 서비스를 운영하는 회사에서 IT 서비스의 생존을 유지하는 것은 절대적인 일이다. 경영의 효율과 마케팅의 최적화로도 커져가는 구멍을 막을 수는 없다. 그대로 방지할 경우 구멍은 점점 더 커져 종래에는 모든 일들을 수포로 돌아가게 한다. 보안에 투입되는 비용은 그대로 소모되는 비용이 아닌 미래의 불확실성을 줄여주고 예측 가능한 범주의 안정성을 일정수준 보장하는 의미가 있다. 일회적인 투입이 아닌 지속적인 투자와 관심만이 많은 부분의 위험을 줄일 수 있으며 서비스의 영속성이 보장된다. 마케팅의 귀재들이 있는 회사라 할지라도 기본적인 보안이 되어 있지 않다면 그 어떤 마케팅도 의미 없는 것이 되어 버린다. IT 서비스 회사에서의 보안은 이제 절대적인 이슈이지 부수적인, 있으면 좋은 그런 요소는 아니다.

 

 

참조 기사에서는 Network 관리자라고 칭하였으나 적당하지 않은 부분도 있어서 IT 관리자로 호칭하도록 한다. 또한 각 열 가지 항목만을 발췌하고 설명은 주관적으로 제시를 한다. 반드시 필요한 항목임에는 두말할 필요가 없다. 실정에 맞지 않는 부분은 현실에 맞도록 재해석을 하였다.

 

 

-Not changing the default passwords on all network devices

 

Default 계정과 패스워드에 대한 이슈는 운영체제가 생기고 네트워크로 연결된 이래 항상 논의되는 문제이다. 계정과 패스워드 관리에 대한 정책들은 요 근래에야 많은 부분 지적이 되고 있으나 일반적인 침해 사고에서 여전히 무시할 수 없는 부분이 Default 계정 및 패스워드에 의해 발생 되는 것은 엄연한 현실이다.

 

네트워크 장비 ( 스위치, 라우터), 운영체제 , DB, Application과 같은 모든 IT자산에 대해 존재하는 Default password와 계정의 변경은 반드시 확인이 되어야 한다. 패스워드에 대한 Life cycle을 유지하고 관리 할 수 있어야 하며 모든 IT 자산에 대해 분명한 검토들이 있어야 한다. 지금 이 글을 읽고 있는 독자들 중에서 IT관리를 하시는 분들도 관리하에 있는 모든 시스템들의 Default 계정과 패스워드를 완벽하게 제거 하고 있다고 확언 하실 수 있는 분은 그리 많지 않으리라 생각된다.

 

공격자들은 기본적으로 초기 침입 성공 이후 (근래에는 대부분 웹 Application 공격 및 이메일 등을 통한 백도어 설치로 침입 성공) 거점을 통해 내부망에 대한 스캐닝 작업들을 시작하게 된다. 내부망에 대한 스캔 작업으로 인해 발견 되는 것들은 시스템에 대한 취약성 및 네트워크 장비에 대한 취약성과 계정과 패스워드에 대한 취약성들도 발견 하는 것이 일반적이다. 그 이후에는 장비에 접근 하여 공격자가 원하는 대로 조정을 하거나 변화를 시키는 유형이 일반적인 공격 유형이다. 현재 큰 문제로 지적되고 있는 Mass Sql injection에 관련된 문제와는 다른 관점이긴 하나 고전적인 유형이며 가장 일반적인 침입의 유형으로도 여전히 유효하다는 점에서 의미를 가진다.

 

외부에 드러난 직접 접근이 가능한 통로에는 많은 문제들이 해결 되어 있을 것이나 내부망에 존재하는 모든 장비에 대해서 확신을 하기에는 문제점이 있을 것이다. 외부자에 의한 문제와 내부자에 의한 문제 모두 문제가 발생 될 수 있는 지점을 최소화 함으로써 예방이 가능한 이슈들이다.  단순하게 IT관리자의 의지만으로 일련의 문제제거들이 진행 되기에는 어려움이 있다.  단순반복적으로 보이는 업무들이 있어야 체계를 이룰 수 있으므로 경영진의 의지와 이해는 문제제거를 위해 필수적이다. 무조건적인 관리의 부실과 문제로 내몰기에는 지금의 시스템들은 너무 크고 많다.

 

 

-Sharing a password across multiple network devices

 

일반적으로 모든 시스템에 대해 별개의 패스워드를 사용한다는 것은 불가능하다. 특히 규모가 큰 서비스를 운영할 경우에는 사실상 불가능한 작업이라 할 수 있다. 영역별로 분리 하거나 의미 있는 단위로 구분하여 공용 패스워드를 사용하는 것이 일반적인 경우라 할 수 있다. 패스워드에 대한 복잡도와 관리는 현재 상태에서는 상당 수준에 올라와 있는 곳들도 있으나 다른 관점으로 보면 근본적인 문제들이 존재한다.

 

문자와 특수문자, 숫자를 결합하여 패스워드를 만들고 이것을 소수의 관리 인원들만 알고 있는 것은 일면 타당한 보안성을 유지하고 있는 것으로 보인다. 그러나 외부 업체와의 작업들은 있을 수 밖에 없고 해당 업체와의 작업을 진행 하기 위해서는 경우에 따라서는 계정정보를 전달 해 줄 수 밖에 없는 상황들이 발생한다. 이런 경우에 전체의 시스템들에 문제가 생길 수 있는 가능성은 높다. 너무 어렵게 패스워드를 만드는 것들도 절차상으로는 부합하나 직접적인 입력과 기억의 어려움으로 인해 패스워드를 적은 포스트잇 등을 화면에 붙여 놓는 것을 자주 보게 된다. 이 경우도 동일한 위험으로 간주 할 수 있다.

 

패스워드 관점에서는 주기적이고 영역별로 나뉘어진 관리가 필요하며 소수의 인원에게만 공유 되어야 한다. 그리고 권한 별로 계정에 대한 구분이 명확하게 나뉘어져 있어야만 한다. 최소한 대규모 서비스 운영이나 몇 십 혹은 몇 백대 이상의 시스템을 운용하는 곳에서라면 각 서비스 구분 별로 별도의 규칙과 절차를 통해 Secure한 패스워드를 유지하는 절차를 구비하는 것이 필요하다. 침해사고 방지의 가장 큰 부분은 피해 확산을 최소화 하는 부분도 큰 부분이며 패스워드에 대한 정책적인 관리와 구분은 가장 기본적이며 큰 효과를 볼 수 있는 영역이기도 하다.

 

외부 노출된 Application 취약성이나 내부로 침입한 악성코드에 의해 단 하나의 계정과 패스워드가 유출 되었다고 한다면 체계적인 영역구분과 관리 절차가 없는 서비스에 대해서는 모든 것에 대한 권한을 넘겨 준 것과 동일 하다고 볼 수 있다.

 

 

-Misconfiguring your access control lists.

 

 

대부분의 서비스를 운영하는 회사에서는 외부에서의 직접적인 접근을 금지하고 있다. ACL이라는 것은 네트워크 장비나 서비스 서버 단위에서 접근 할 수 있는 영역을 제한하는 용도로 사용되는 모든 것을 총칭한다. 단순하게 네트워크 장비에서의 접근제어 리스트를 가지고 있는 것 외에도 서버 단위에서의 ipchain iptable 그리고 비슷한 기능을 하는 도구들을 모두 총칭한다.  잘못 설정된 ACL 이라는 의미 보다는 명확한 의미의 접근제어가 필요하다는 내용으로 이해 하면 될 것이다.

 

일반적으로 외부에서 접근을 제한적으로 허용하기 위해 VPN을 많이 활용한다. 접근 할 수 있는 host를 한정하거나 VPN 접근 전용의 계정과 패스워드를 통해 허가된 사용자만이 접근 할 수 있도록 구성하는 것이다. 그러나 일단 접근한 이후의 통제 방안에 대해서는 잘 논의 되지 않는다. 일단 외부로부터의 접근을 단일통로로 제한하는 것으로 끝나는 경우를 많이 볼 수 있다.

 

여기에서 지적하는 부분은 외부에서의 접근 이후에도 효율적인 통제들이 필요함을 예로 들고 있다. 권한에 대한 확실한 적용으로 접근이 가능한 영역과 접근 해서는 안 되는 영역에 대해서 분명한 구분이 필요하며 적용이 필요하다는 점을 언급 하고 있다.

 

기본적으로 외부에서 접근 할 수 있는 통로는 제한적으로 구성을 하고 이후 사용자 각각 혹은 그룹별로 접근이 가능한 군을 형성하여 해당 군 이외에는 경유하여 접근이 되지 않도록 구성하는 것이 중요하다.

 

서비스 구성 네트워크 단위에서 외부 접근 지점과 권한 별로 접근이 필요한 시스템들을 최소화 하고 한정 하게 되면 기본적인 ACL의 미비로 인한 추가적인 사고를 막을 수 있다.

 

침해사고의 경우에는 외부에서 접근이 가능한 계정을 탈취한 이후에 VPN이나 경유 서버를 통과하여 내부망에 대한 자료 유출 및 악성 행위들이 발생 되는 경우도 종종 발생된다. 명확한 역할에 따라 접근제어의 시행은 이런 문제를 막기 위해서 필요하며 경우에 따라서는 접근 계정의 유효성과 접근 기록들에 대해서 기록을 유지하여 비정상적인 접근과 비정기적인 접근에 대해 판별 하는 로직들을 도입하게 되면 보다 큰 효과를 거둘 수 있다.

 

 

-Failing to configure your router to prohibit unwanted outbound traffic

 

현재 사용자의 PC와 기업의 내부 시스템을 위협하는 악성코드들은 대부분 백도어 기능을 가지고 있다. 백도어의 기능은 침입이 성공한 이후 외부와의 연결을 유지하고 명령을 실행 하도록 하고 있다. 물론 2009년 7월에 발생된 DDos 이슈와 같이 특정 IP로의 주기적인 연결 시도를 통해 다음 명령을 받는 유형이라면 위와 같은 정책도 그다지 큰 의미는 없다. 본 컬럼에서 논하는 이슈는 일상적으로 발생 되는 이슈들에 대한 문제이며 참고적인 사항일 따름이다.

 

서비스 시스템에 침입한 이후 재 침입을 하기 위해서 공격자들은 일반적으로 재 침입이 용이하도록 외부에서 직접 접근이 가능한 통로를 만들어 두게 된다. 이런 통로들을 백도어라고 총칭한다. Botnet Client이든 Command shell 이든 대부분의 기업 서비스 망에서는 외부에서 내부로 유입되는 Inbound Traffic에 대해서는 엄격한 기준을 적용하지만 내부에서 외부로 나가는 Outbound Traffic에 대해서는 무척 관대한 편이다. 장비의 성능 이슈도 무시 할 수 있는 부분은 아니기에 특별한 문제가 없다면 외부로 전달 되는 트래픽에 대한 통제는 그리 심한 수준은 아니라고 할 수 있다.

 

성능문제로 모든 부분에 대해서 적용하기는 어렵더라도 역할 별로 구분된 시스템들에 대해서는 최소한의 규칙들은 지켜져야 한다. 시스템에 기본으로 설치된 다수의 서비스들에 대해서도 시스템의 목적에 맞도록 여러 서비스들은 제거나 중지를 통한 비활성화를 거치거나 장비 단위에서의 허용 트래픽만을 규정 하는 행위들은 필요하다.

 

서비스별로 사용 서비스에 대해서 정의를 하고 해당 서비스만 사용하도록 하는 기본 보안설정이 필요하고 대규모 서비스의 경우 서비스 군으로 분할 하여 Outbound traffic을 서비스별로 제한 하는 작업들도 침해사고의 확산을 방지 하는데 도움을 줄 수 있을 것이다.

 

 

-Allowing nonsecure remote access and management software

 

시스템과의 거리상 대부분의 서비스 기업 관리자들은 리모트 관리 도구들을 많이 사용한다. 그러나 특별한 접근제어설정을 가지고 있지 않거나 계정과 패스워드의 문제로 인해 손쉽게 침해를 입기도 한다. VNC PC Anywhere, Terminal Service, SSH 등은 관리도구로 일반적으로 사용이 되는 접근 도구들이다. 각 사용 도구별로 기본적인 보안설정의 부족과 안전하지 않은 패스워드 혹은 변경 없는 패스워드의 사용은 종종 공격자들의 주된 타켓이 되고는 한다.

 

더불어 외부 네트워크 영역에 대해 VPN 과 같은 경유 서버가 없는 경우 직접적으로 열려져 있는 경우들이 많이 발견이 된다. 관리의 편리성을 논하기엔 지금의 시절은 호락호락 하지 않다. 외부에서의 열려져 있는 포트정보와 열려져 있는 서비스들에 대해서는 주기적인 점검이 이루어 져야 하고 장비를 통한 통제들도 필수적으로 이루어 져야 한다.

 

원격에서의 관리를 위한 도구들은 손쉬운 공격자의 목표가 되고 있으며 주기적인 검토와 보안성의 강화 (접근 IP 제한, 패스워드의 변경과 난이도 상승) 만이 기본적인 보안수준을 보장 할 수 있다.

 

접근 할 수 있는 IP에 대한 한정과 권한의 조정, 패스워드에 대한 관리 철저, 외부로 나가는 트래픽에 대한 제한과 접근제어의 철저는 가장 기본적으로 요구되는 인프라 보안의 구성요소이다.

 

10가지 정도의 항목에서 현재 컬럼은 인프라와 기본적인 보안에 관련된 부분을 정리했다. 참조한 기사와는 다른 방향으로 논의된 부분들도 있으나 각 항목에 대해서는 현재의 상황에 맞도록 설명을 하였고 세부적인 해석들은 환경에 따라 다를 수 있으므로 참고용도로의 이해가 필요하다. 규모에 따른 대응방안들도 다를 수 있기에 원칙적인 면에서 지켜야 할 룰 정도로 참고 할 수 있을 것이다.

 

다음 편에서는 10가지 실수라고 총칭 되는 부분에서 지금의 시대에 가장 큰 화두로 대두된Application과 관련된 부분을 다루도록 하겠다. 네트워크 관리자만을 위한 참고가 아닌 전체 IT관리자를 위한 참고가 될 수 있도록 항목에 대한 확장과 해석들은 달라 질 수 있음을 알려 드린다.

 

기본적인 노력들이 끊임없이 이루어져야만 변화도 효과가 있을 수 있다.  -바다란