인터미디어(Intermedia)의 2015년 내부 위험(Insider Risk) 보고서에 따르면, 보안과 관련해 ‘위험한’ 실수를 가장 많이 저지를 수 있는 사람들은 IT 종사자들이다. 비밀번호와 로그인 정보를 공유하고, 업무용 애플리케이션에 개인 비밀번호를 사용하고, 개인 계정의 인증서를 다른 사람에게 주는 행위 등을 예로 들 수 있다.
이는 일반 사용자보다 더 큰 위험을 초래할 수 있다. 시스템 관리자는 네트워크에 ‘신과 같은 영향력’을 행사하기 때문이다. IT 담당자들은 사용자만큼이나 피싱, 몰웨어 등의 공격에 취약하다. 그리고 시스템 관리자의 인증서를 도난 당하면, 예외 없이 더 심각한 보안 침해 사고가 발생한다. 다음은 시스템 관리자와 IT 담당자가 가장 많이 범하는 실수 10가지를 정리한 내용이다.
원문참조: http://www.itworld.co.kr/news/96631?page=0,2
1. ‘Sudo(슈퍼 유저)’ 권한 남용
루트 로그인을 하면 완벽한 권한을 갖게 된다. 이는 아주 위험한 상황을 초래할 수 있다. 해커가 인증서를 훔쳐, 자신이 원하는 일을 맘껏 할 수 있기 때문이다. 윈도우 환경에서 관리자 권한의 작업이 필요 없다면, 굳이 관리자로 로그인할 필요가 없다. 시스템에 루트 로그인하는 대신 개인 계정을 통해 로그인해야 한다. 그리고 필요한 경우에만 ‘Sudo’를 이용한다.
2. 출처가 확인되지 않은 스크립트 실행
서드파티 리눅스 애플리케이션을 설치할 때에도 Sudo가 남용되곤 한다. 명령어를 복사, 스트립트가 설치될 터미널에 직접 붙여 넣기만 하면 된다(이미 Sudo를 사용할 수 있게끔 준비된 상태). 스크립트의 모든 명령어가 특수 권한(Elevated privileges)으로 실행될 것이다.
3. 특수 권한 서비스를 루트로 실행
애플리케이션을 루트로 실행시켜서는 안 된다. 시스템에서 실행되는 각 애플리케이션과 서비스에 구체적인 권한을 지정하고, 고유의 서비스 계정을 생성해야 한다. 서비스 계정에는 일반적으로 홈 디렉토리가 없다. 또 누군가 계정을 이용해 로그인을 시도할 경우, 파일 시스템에서 할 수 있는 일을 제한한다. 공격자는 서비스 계정을 탈취해도, 코드를 실행시킬 특수 권한을 얻기 위해 로컬 취약점을 찾아야 한다.
4. 비밀번호 재사용
여러 시스템, 사이트, 애플리케이션에 동일한 비밀번호를 사용했을 때 발생할 수 있는 문제점은 잘 알려져 있다. 그러나 아직까지도 큰 문제점으로 남아있다. 시스템 관리자 역시 예외가 아니다. 취약한 관리자 비밀번호, 네트워크의 다른 장치에서 이용된 것과 동일한 비밀번호로 서버를 구성하는 사례가 많다. 동일 비밀번호와 사전을 이용하는 무차별 공격(Brute-force attack)이 성공하는 이유는 이런 실수를 저지르는 사람들이 많기 때문이다. 여러 시스템에 동일한 비밀번호를 사용하면 문제가 더 커진다.
5. 관리자 계정 공유
데이터베이스와 관리자 포털 액세스에 쓰이는 관리자 계정이 공유되는 사례가 많다. 관리자가 필요에 따라 특수 권한을 요청하는 환경을 구축하는 대신 무차별적으로 관리자 계정을 공유한다. 루트용 계정, 각 관리자용 계정 등 별개의 계정을 만들어 이용하는 것이 이상적이다. 처음부터 관리자 계정에 최고 수준의 액세스 권한을 부여해서는 안 된다. 관리자는 특별한 작업 동안 특별한 액세스 권한을 요청할 수 있다. 관리자 계정을 사용한 사람을 정확히 파악하지 못하는 것도 문제이지만, 더 큰 문제는 관리자가 퇴사했을 때 비밀번호를 재설정하지 않는 것이다. 비밀번호를 재설정하지 않아, 퇴사자가 아무 문제 없이 회사 시스템에 다시 로그인해 피해를 초래할 수 있다.
6. 트러블슈팅 작업 방치
트러블슈팅 작업을 할 경우, 문제를 해결하기 위해 여러 기법과 시험을 적용한다. 이 과정에 일반적인 프로세스를 놓치는 경우가 많다. 특정 문제를 해결하고 떠났을 때 문제가 발생한다. 관리자가 서두르다 작업한 내용을 정리하는 것을 잊어버려 위험에 노출되는 것이다. 트러블슈팅 동안 작업한 내용을 추적해 기록해야 한다. 그래야 (불가피한 변경을 제외하고) 원래 설정으로 복원할 수 있다.
7. 로그 파일 추적 실패
로그 파일은 유용하다. 특히 트러블슈팅 때 큰 도움을 준다. 발생한 현상을 자세히 조사할 수 있기 때문이다. 이 파일이 더 이상 필요 없을 때, 이를 생성하는 프로세스를 끈다. 로그 파일에 디버깅 정보를 남기거나, 공격자에게 유용한 정보가 포함된 로그 파일을 생성하지 않아야 한다. 베스트 프랙티스는 생성한 로그, 로그에 포함된 정보를 추적 기록하는 것이다.
8. 비밀번호를 일반 텍스트 파일로 저장
기억해야 할 비밀번호가 너무 많다 보면 텍스트 파일에 기록을 하는 방법을 선택하기 쉽다. 이는 공격자가 여러 시스템에 액세스 할 수 있도록 도와주는 ‘선물’이 된다. 당연한 이야기이다. 그러나 주변에 중요한 비밀번호를 텍스트 파일에 보관하고 있는 사람 한 명씩은 알고 있을 것이다.
9. 사용하지 않는 계정 방치
오래된, 사용하지 않는 계정이 문제를 초래할 수 있다. 소프트웨어를 평가할 목적에서 설치한 후 삭제했지만, 설치 과정에 추가한 계정이 시스템에 남아있을 수 있다. 이를 남겨둬서는 안 된다. 공격자가 이런 방치된 계정을 악용할 수 있다. 특히 기본 비밀번호를 획득하는 경우가 위험하다. 시스템에 남겨둬야 하지만 사용하지 않는 계정의 경우, 비밀번호 파일을 편집하고, 계정 비밀번호를 문자열로 대체해 계정을 사용할 수 없게 만든다. 누군가 퇴사를 할 경우, 그 즉시 사용한 계정을 사용할 수 없게 만들어야 한다.
10. 패치 설치 미흡
보안 업데이트가 배포되는 즉시 설치해야 한다(영향을 받는 시스템 먼저). 제로데이 취약점보다는 1년 전에 배포된 패치를 설치하지 않아 감염되는 서버가 너무나 많다. 중요한 서버라면 예정된 유지관리 일정에 따라 어느 정도 다운타임을 감수해야 한다. 공격자가 공격에 성공했을 때 초래될 시간 낭비보다 낫기 때문이다. 패치가 배포되는 즉시 패치를 테스트한다. 그리고 업데이트를 배포할 일정을 수립한다.




