목록으로

윈도우 PowerShell 보안정책 설치

작은 조각 글, 입문
2024. 11. 13. PM 2:44:12
여러분이 사용하고 있는 윈도우 운영체제의 버전이 윈도우 7 또는 윈도우 서버 2008 R2 이상이라면 윈도우 PowerShell이 내장되어 있습니다.
처음 실행하고 뭔가를 하려고 하면 사람 불안하게 빨간 색 오류 메시지가 출력될 거예요.
내용으로 보아하니 보안 관련 정책을 설정해야 하는 것 같군요. 웹을 뒤져보면 Set-ExecutionPolicy RemoteSigned명령어를 실행하라고 하는데 나오고요. 실행해서 정책을 변경하고 나면 비로소 빨간 색 오류 메시지가 나타나지 않아요.
Set-ExecutionPolicy RemoteSigned 명령을 실행하는 이유는 명령 줄 내용 그대로 PowerShell 스크립트의 실행 정책(execution policy)을 설정하기 위해서인데요. 실행 정책은(ExecutionPolicy) 운영체제에서 PowerShell 스크립트를 실행할 때 어떤 종류의 스크립트를 실행할 수 있는지 결정하는 보안 메커니즘이예요.
Set-ExecutionPolicy RemoteSigned 명령어로 설정한 RemoteSigned 실행 정책은 다음과 같은 규칙을 따릅니다.
  • 로컬 컴퓨터에서 만든 스크립트는 제한 없이 실행돼요. 즉, 로컬에서 작성한 스크립트는 서명 여부와 상관없이 실행되는데, 사용자 자신만 사용하니 제한이 없어요.
  • 원격에서, 그러니까 인터넷에서 내려받은 스크립트는 서명되어야(signed) 해요. 서명되지 않은 외부 스크립트는 우리 운영체제에 무슨 짓을 할지 모르는, 신뢰할 수 없는 스크립트이기에 실행되지 않게 막는 거죠.
서명이란, 개인용 인증 기관(Private Certificate Authority)을 이용하거나 공인 인증 기관에서 인증서를 구입하여 스크립트 파일에 디지털 서명을 추가하는 거예요. 이 서명이 유효하면, 원본이 변경되지 않았으며 신뢰할 수 있는(출처가 어딘지 알 수 있는) 곳에서 제공되었다고 처리되어 실행이 되죠.
우리가 공동인증서나 금융인증서 등을 이용해 인터넷 뱅킹이나 행정 업무를 보는 것도 비슷해요. 웹 브라우저에서 사용자가 서버로 보내는 데이터를 곧이 곧대로 믿을 순 없어요. 사용자를 신뢰할 수 없기도 하고, 사용자의 웹 브라우저에서 서버로 데이터가 오는 도중에 데이터가 위변조 될 수도 있거든요. 그래서 사용자가 서버로 보내는 데이터를 공인된 인증서로 디지털 서명을 하고, 서버는 사용자가 보내온 데이터가 신뢰할 수 있는지 디지털 서명의 유효성으로 판단하죠.
결국 인터넷에서 내려받은 스크립트는 보안 상 위험하니 신뢰할 수 있는 것만 실행되도록 운영체제의 보안 정책을 설정하는 거예요.
토이스토리 2기 모집 중!
푸딩캠프 뉴스레터를 구독하면 학습과 성장, 기술에 관해 요약된 컨텐츠를 매주 편하게 받아보실 수 있습니다.