2015.11.20

시스템 관리자가 저지르는 어리석은 보안 실수 10가지

Fahmida Y. Rashid | InfoWorld

보안은 기술적인 문제인 동시에 사람과 관련된 문제이다. 기술보다는 사람과 관련된 실수가 많다. 게다가 시스템 관리자를 비롯한 IT 담당 직원 등 알만한 사람들이 실수를 저지르는 경우가 많다.

인터미디어(Intermedia)의 2015년 내부 위험(Insider Risk) 보고서에 따르면, 보안과 관련해 '위험한' 실수를 가장 많이 저지를 수 있는 사람들은 IT 종사자들이다. 비밀번호와 로그인 정보를 공유하고, 업무용 애플리케이션에 개인 비밀번호를 사용하고, 개인 계정의 인증서를 다른 사람에게 주는 행위 등을 예로 들 수 있다.

이는 일반 사용자보다 더 큰 위험을 초래할 수 있다. 시스템 관리자는 네트워크에 '신과 같은 영향력'을 행사하기 때문이다. IT 담당자들은 사용자만큼이나 피싱, 몰웨어 등의 공격에 취약하다. 그리고 시스템 관리자의 인증서를 도난 당하면, 예외 없이 더 심각한 보안 침해 사고가 발생한다. 다음은 시스템 관리자와 IT 담당자가 가장 많이 범하는 실수 10가지를 정리한 내용이다.

실수 1. 'Sudo(슈퍼 유저)' 권한 남용
루트 로그인을 하면 완벽한 권한을 갖게 된다. 이는 아주 위험한 상황을 초래할 수 있다. 해커가 인증서를 훔쳐, 자신이 원하는 일을 맘껏 할 수 있기 때문이다. 윈도우 환경에서 관리자 권한의 작업이 필요 없다면, 굳이 관리자로 로그인할 필요가 없다. 시스템에 루트 로그인하는 대신 개인 계정을 통해 로그인해야 한다. 그리고 필요한 경우에만 'Sudo'를 이용한다.

주의하지 않으면, 다시 실수를 저지르기 쉽다. 명령 중 하나에 'Sudo'가 필요해 스크립트에 문제가 발생한다. 이제 모든 것을 다시 시작해야 한다. 고급 권한이 필요한 명령, 필요 없는 명령을 추적 기록하지 않으면, 모든 것을 다시 'Sudo'로 처리해야 한다.

실수 2. 출처가 확인되지 않은 스크립트 실행
서드파티 리눅스 애플리케이션을 설치할 때에도 Sudo가 남용되곤 한다. 명령어를 복사, 스트립트가 설치될 터미널에 직접 붙여 넣기만 하면 된다(이미 Sudo를 사용할 수 있게끔 준비된 상태). 스크립트의 모든 명령어가 특수 권한(Elevated privileges)으로 실행될 것이다.

다음을 예로 들 수 있다(웹에 복사, 숨겨진 URL).

sudo -v && wget -nv -O- https://xxx/xxx/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"

이는 웹의 다른 곳에 호스팅되어 있으며, 로컬로 파이썬을 실행하는 항목에 Sudo 권한을 준다. 권장할 수 없는 방법이다. 윈도우 관리자는 파웨셸 스크립트를 다운로드 받아 실행할 때 이와 유사한 문제에 직면할 수 있다. 소스를 신뢰할 수 있는 경우에도, 인터넷에서 다운로드 받은 스크립트가 안전할 것이라고 가정해서는 안 된다. 먼저 스크립트 내용을 검사하고, 명령을 실행시켰을 때 문제가 발생하지 않는지 확인해야 한다.

실수 3. 실수 특수 권한 서비스를 루트로 실행
애플리케이션을 루트로 실행시켜서는 안 된다. 시스템에서 실행되는 각 애플리케이션과 서비스에 구체적인 권한을 지정하고, 고유의 서비스 계정을 생성해야 한다. 서비스 계정에는 일반적으로 홈 디렉토리가 없다. 또 누군가 계정을 이용해 로그인을 시도할 경우, 파일 시스템에서 할 수 있는 일을 제한한다. 공격자는 서비스 계정을 탈취해도, 코드를 실행시킬 특수 권한을 얻기 위해 로컬 취약점을 찾아야 한다.

각 애플리케이션은 루트나 관리자의 개인 계정이 아닌 맞춤화 계정을 사용해 데이터베이스에 액세스할 수 있도록 해야 한다. 웹 애플리케이션은 적절한 그룹이나 사용자가 소유하고 있어야 한다. 윈도우 애플리케이션에 도메인 권한을 부여할 경우, 애플리케이션에는 관리자 권한의 액세스를 허용하지 않는다.

인기 유명 리눅스 배포판은 서비스 계정을 기본 값으로 지원한다. 그러나 관리자가 서드파티 패키지를 수동으로 구성할 때 실수를 저지르기 쉽다. 설치와 성정을 완료한 후 승인 권한을 바꿔, 루트나 관리자 개인 계정이 애플리케이션 소유자가 되지 않도록 만들어야 한다.



2015.11.20

시스템 관리자가 저지르는 어리석은 보안 실수 10가지

Fahmida Y. Rashid | InfoWorld

보안은 기술적인 문제인 동시에 사람과 관련된 문제이다. 기술보다는 사람과 관련된 실수가 많다. 게다가 시스템 관리자를 비롯한 IT 담당 직원 등 알만한 사람들이 실수를 저지르는 경우가 많다.

인터미디어(Intermedia)의 2015년 내부 위험(Insider Risk) 보고서에 따르면, 보안과 관련해 '위험한' 실수를 가장 많이 저지를 수 있는 사람들은 IT 종사자들이다. 비밀번호와 로그인 정보를 공유하고, 업무용 애플리케이션에 개인 비밀번호를 사용하고, 개인 계정의 인증서를 다른 사람에게 주는 행위 등을 예로 들 수 있다.

이는 일반 사용자보다 더 큰 위험을 초래할 수 있다. 시스템 관리자는 네트워크에 '신과 같은 영향력'을 행사하기 때문이다. IT 담당자들은 사용자만큼이나 피싱, 몰웨어 등의 공격에 취약하다. 그리고 시스템 관리자의 인증서를 도난 당하면, 예외 없이 더 심각한 보안 침해 사고가 발생한다. 다음은 시스템 관리자와 IT 담당자가 가장 많이 범하는 실수 10가지를 정리한 내용이다.

실수 1. 'Sudo(슈퍼 유저)' 권한 남용
루트 로그인을 하면 완벽한 권한을 갖게 된다. 이는 아주 위험한 상황을 초래할 수 있다. 해커가 인증서를 훔쳐, 자신이 원하는 일을 맘껏 할 수 있기 때문이다. 윈도우 환경에서 관리자 권한의 작업이 필요 없다면, 굳이 관리자로 로그인할 필요가 없다. 시스템에 루트 로그인하는 대신 개인 계정을 통해 로그인해야 한다. 그리고 필요한 경우에만 'Sudo'를 이용한다.

주의하지 않으면, 다시 실수를 저지르기 쉽다. 명령 중 하나에 'Sudo'가 필요해 스크립트에 문제가 발생한다. 이제 모든 것을 다시 시작해야 한다. 고급 권한이 필요한 명령, 필요 없는 명령을 추적 기록하지 않으면, 모든 것을 다시 'Sudo'로 처리해야 한다.

실수 2. 출처가 확인되지 않은 스크립트 실행
서드파티 리눅스 애플리케이션을 설치할 때에도 Sudo가 남용되곤 한다. 명령어를 복사, 스트립트가 설치될 터미널에 직접 붙여 넣기만 하면 된다(이미 Sudo를 사용할 수 있게끔 준비된 상태). 스크립트의 모든 명령어가 특수 권한(Elevated privileges)으로 실행될 것이다.

다음을 예로 들 수 있다(웹에 복사, 숨겨진 URL).

sudo -v && wget -nv -O- https://xxx/xxx/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"

이는 웹의 다른 곳에 호스팅되어 있으며, 로컬로 파이썬을 실행하는 항목에 Sudo 권한을 준다. 권장할 수 없는 방법이다. 윈도우 관리자는 파웨셸 스크립트를 다운로드 받아 실행할 때 이와 유사한 문제에 직면할 수 있다. 소스를 신뢰할 수 있는 경우에도, 인터넷에서 다운로드 받은 스크립트가 안전할 것이라고 가정해서는 안 된다. 먼저 스크립트 내용을 검사하고, 명령을 실행시켰을 때 문제가 발생하지 않는지 확인해야 한다.

실수 3. 실수 특수 권한 서비스를 루트로 실행
애플리케이션을 루트로 실행시켜서는 안 된다. 시스템에서 실행되는 각 애플리케이션과 서비스에 구체적인 권한을 지정하고, 고유의 서비스 계정을 생성해야 한다. 서비스 계정에는 일반적으로 홈 디렉토리가 없다. 또 누군가 계정을 이용해 로그인을 시도할 경우, 파일 시스템에서 할 수 있는 일을 제한한다. 공격자는 서비스 계정을 탈취해도, 코드를 실행시킬 특수 권한을 얻기 위해 로컬 취약점을 찾아야 한다.

각 애플리케이션은 루트나 관리자의 개인 계정이 아닌 맞춤화 계정을 사용해 데이터베이스에 액세스할 수 있도록 해야 한다. 웹 애플리케이션은 적절한 그룹이나 사용자가 소유하고 있어야 한다. 윈도우 애플리케이션에 도메인 권한을 부여할 경우, 애플리케이션에는 관리자 권한의 액세스를 허용하지 않는다.

인기 유명 리눅스 배포판은 서비스 계정을 기본 값으로 지원한다. 그러나 관리자가 서드파티 패키지를 수동으로 구성할 때 실수를 저지르기 쉽다. 설치와 성정을 완료한 후 승인 권한을 바꿔, 루트나 관리자 개인 계정이 애플리케이션 소유자가 되지 않도록 만들어야 한다.



X