Windows 및 Unix/Linux 플랫폼에서 작업하신다면, 많은 관리자 및 개발자의 워크스테이션에서 흔히 볼 수 있는 도구 중 하나인 PuTTY에 대해 잘 알고 계실 것입니다. 마이크로소프트 윈도우에는 꽤 최근까지 SSH 클라이언트가 없었으며, 이전에는 윈도우 컴퓨터에서 유닉스 시스템에 연결하려면 SSH 클라이언트가 필요했습니다. 개발자 Simon Tatham이 만든 PuTTY는 널리 사용되며 다용도로 활용 가능한 오픈소스 터미널 에뮬레이터이자 시리얼 콘솔 및 파일 전송 애플리케이션입니다.
다른 모든 소프트웨어와 마찬가지로 PuTTY도 복잡하며, 복잡한 것에는 결함이 있을 수 있습니다. 때로는 이러한 결함이 악의적인 공격자에 의해 악용될 수 있습니다. 2019년 3월에서는 PuTTY에 업데이트가 제공되어 8개의 취약점이 수정되었으며, SSHv2의 보조 라이브러리인 LibSSH2에도 9개의 취약점에 대한 수정 사항이 적용되었습니다.
이러한 취약점들은 여러 가지 서로 다른 시나리오를 나타냅니다. 어떤 것은 DoS 공격이 발생할 수 있게 하고, 어떤 것은 개인 키 문구가 유출될 수 있게 하며, 또 다른 것은 취약한 시스템에서 임의의 코드를 실행할 가능성이 있게 합니다. SSH를 통해 원격 시스템(일반적으로 서버)에 접속해야 할 가능성이 있는 사람들은 관리자나 높은 수준의 접근 권한을 가진 사용자일 것이며, 이들이 PuTTY의 주요 사용자 그룹을 차지하고 있다는 점을 고려할 때, 이러한 취약점을 가능한 한 신속하게 해결하지 않을 경우 위험이 따를 수 있음을 알 수 있습니다.
여러분의 어려움을 해결해 드립니다
자, 이런 상황을 상상해 보세요. 여러분과 동료들이 전 세계 조직 전반에 걸쳐 100.000 개에 가까운 엔드포인트를 운영 및 관리하고 있습니다. 여기에는 서버, 워크스테이션, 노트북, 가상 머신(VM), 온프레미스, 이동 중, 자사 클라우드 또는 타사 클라우드에서 실행되는 클라우드 인스턴스 등이 포함되며, 이들 모두 다양한 운영 체제, 애플리케이션, 애플리케이션 소유자 및 이해관계자를 갖추고 있습니다. 적어도 다음과 같은 과제가 있습니다:
- PuTTY나 관련 응용 프로그램이 설치된 모든 위치를 얼마나 빨리 찾아내고, 해당 프로그램들이 최신 버전인지 확인할 수 있을까요?
- 전 세계 각 지사에서 업무 시간이 시작되면서 관리자와 개발자들이 온라인에 접속할 때, 발생하는 모든 문제가 자동으로 해결되도록 하려면 어떻게 해야 할까요?
- 그날 아침 헤드라인을 장식한 중대한 보안 사고에 대한 최신 뉴스를 접한 CIO나 CISO가 현황을 묻는다면, 조직의 보안 체계가 최신 상태임을 어떻게 확신할 수 있겠습니까?
바로 이러한 까다로운 과제들에서 타늄이 독보적인 도움을 줄 수 있습니다. 준비 과정에서, 다시 PuTTY를 예로 들어 다음 사항을 고려해 보십시오:
- 우리는 취약한가?
조직 내 어디에서도 PuTTY나 LibSSH2 의 구버전이 존재하지 않도록 어떻게 보장할 수 있을까요? 이 내용을 실시간으로 보고하면서 결과를 확실히 파악하려면 어떻게 해야 할까요? - 누군가 이러한 취약점을 악용해 접근 권한을 얻으려고 시도하고 있나요? 우리는 특히 해당 취약점을 둘러싼 악의적인 활동을 시사할 수 있는 행동적 징후를 집중적으로 파악하여, 추가 조사가 필요한지 여부를 확인하고자 합니다.
- 모든 사람이 업데이트된 버전을 이용할 수 있도록 하려면 어떻게 해야 할까요? 업데이트된 버전의 PuTTY와 관련 도구를 관리자 그룹에 배포할 수 있을까요? 아니면 적어도 애플리케이션 배포 셀프 서비스의 일환으로 사용자들이 이를 설치할 수 있도록 허용할 수 있을까요?
- 소프트웨어의 취약한 버전이 사용되는 것을 감지하고 예방할 수 있을까요?
이제 이 각 섹션과 Tanium이 제공할 수 있는 내용을 살펴보겠습니다.
1. 실시간 보기
첫째, 우리 인프라 전반에 걸쳐 설치된 모든 PuTTY에 대한 실시간 현황을 파악할 수 있었습니다.
Tanium의 쿼리 형식을 차용하여 다음과 같이 쿼리를 작성해 보겠습니다. “운영 체제가 Windows인 모든 컴퓨터에서 설치된 애플리케이션 버전 [putty]가 0,71,0,0 미만인 경우”

아니면 설치된 모든 애플리케이션을 조회한 뒤 “putty”라는 단어로 필터링하고, 실시간 결과를 보기 쉬운 차트 형식으로 표시하도록 선택할 수도 있습니다:

Tanium Index는 당사의 위협 대응 모듈의 구성 요소이며, 저장된 파일의 위협 지표를 탐지하고 보고하는 보안 사용 사례를 가능하게 하는 핵심 요소입니다. 이 모듈을 사용하면 관리 중인 모든 시스템에서 putty.exe의 모든 버전이 있는지 여부를 실시간으로 검색할 수 있습니다. 이는 중요한 점입니다. 많은 경우 PuTTY는 실제로 설치된 애플리케이션이 아니라, 엔드포인트에 독립 실행형 파일로 존재하기 때문입니다. 어떤 상황에서도 그것을 찾을 수 있다고 어떻게 확신할 수 있을까요?

Trace Event Recorder는 당사의 위협 대응 모듈을 구성하는 또 다른 구성 요소입니다. Trace를 사용하면 네트워크 전반에 걸쳐 Linux, Mac 및 Windows 엔드포인트에서 발생하는 주요 포렌식 및 보안 이벤트를 직접 조사할 수 있습니다. Trace는 프로세스 실행, 로그온 내역, 네트워크 연결, 파일 및 레지스트리 변경 사항 등 중요한 이벤트에 대한 실시간 및 과거 기록을 제공합니다. 이 예시에서는 지난 30 일 동안 관리 대상 시스템 어디에서든 누군가 PuTTY를 실행했는지 확인하고 싶습니다. 아래 예시에서 볼 수 있듯이, “Elain_Devito”라는 사용자가 바로 이런 행동을 했습니다.

2. 신호
다음으로, PuTTY의 취약점 중 하나를 악용하려는 악의적인 사용자의 시도를 반영할 수 있는 의심스러운 행동이 있었는지 확인해 볼 필요가 있습니다. Tanium 신호를 사용하면 여러 검색식을 조합하여 의심스럽거나 주목할 만한 프로세스 동작을 탐지할 수 있습니다.
다음은 CVE 중 하나와 관련이 있을 수 있는 활동을 탐지하기 위한 신호 예시입니다. 기본적으로, PuTTY와 관련된 어떤 프로세스든 명령줄 셸이나 PowerShell 인스턴스를 생성할 경우, 이를 파악하고 조사할 수 있어야 합니다.

3. 패키지 배포
PuTTY의 구버전으로 인해 발생할 수 있는 위험을 완화할 수 있는 또 다른 방법은, 필요한 관리자나 개발자 사용자에게 설치할 수 있도록 최신 버전의 패키지를 준비해 두는 것입니다. 다음은 저희 Deploy 모듈의 예시입니다:

다음 스크린샷에서 볼 수 있듯이, 사용자가 설치할 패키지를 선택할 수 있는 당사의 셀프 서비스 애플리케이션 제공 포털에서 PuTTY가 최종 사용자가 선택할 수 있는 옵션으로 제공되고 있습니다.

4. Protect 모듈을 사용하여 기본 보안 기능을 관리합니다.
다음은 이러한 상황에서 Tanium의 신속성과 유연성이 어떻게 독보적인 도움을 줄 수 있는지 보여주는 또 다른 사례입니다. AppLocker의 엔터프라이즈급 정책을 적용하여, “Protect” 모듈을 사용해 취약한 putty.exe 실행 파일이 실행되는 것을 차단하고, 엔드포인트에 팝업 알림을 표시하여 사용자에게 Tanium 셀프 서비스를 통해 업그레이드할 것을 안내할 수 있습니다.
겉보기에는 단순해 보이는 이러한 상황이 전 세계 수많은 조직에서 매주 끊임없이 반복되고 있다. 기존의 운영 및 보안 도구는 실제 대규모 환경에서 제대로 작동하기에 턱없이 부족하며, 보안 및 운영 팀에게 “이 작업에 얼마나 걸릴까요?”라고 물었을 때 흔히 듣는 답변은 “잘 모르겠습니다”, “일주일 정도?”와 같은 것들입니다. “우리는 그 일을 확실히 할 수 없습니다.”
이와 같은 단순하고 흔한 상황에 대처하는 능력에는, 대규모로 그리고 신속하게 민첩하게 대응하고 피할 수 없는 난관에 유연하게 대처할 수 있는 역량이 반드시 포함되어야 합니다.
Tanium이 실제로 어떻게 작동하는지 궁금하신가요? 와 1:1 데모를 예약하거나 주간 웨비나에 참여해 보세요. 에서 개최될 예정인 행사()에서 Tanium 전문가들과 상담해 보세요.
