2018.06.04

"인터넷의 모든 것을 위한 검색엔진", 쇼단의 정의와 작동 원리

J.M. Porup | CSO
쇼단(Shodan)은 인터넷의 모든 것을 위한 검색엔진이다. 구글을 비롯한 다른 검색엔진은 웹만 인덱싱하지만 쇼단은 웹캠, 정수 처리장, 요트, 의료 장비, 신호등, 풍력 발전기, 번호판 판독기, 스마트 TV, 냉장고 등 인터넷에 연결된, 상상할 수 있는 모든 것을 인덱싱한다.


Credit: Getty Images Bank 

쇼단을 이해하는 가장 좋은 방법은 쇼단을 만든 존 매덜리가 쓴 책을 읽는 것이다. 쇼단의 기본적인 알고리즘은 간단명료하다.

1. 무작위 IPv4 주소 생성
2. 쇼단이 알고 있는 포트 목록에서 테스트를 위한 무작위 포트 생성
3. 무작위 포트에서 무작위 IPv4 주소를 확인하고 배너(banner)를 포착함
4. 1로 이동


이것이 전부다. 모든 것을 찾고, 인덱싱하고, 검색 가능하도록 한다. 이것이 바로 쇼단이다.

쇼단의 작동 원리
열린 포트에서 실행되는 서비스는 배너를 사용해 스스로를 알린다. 배너는 어떤 서비스를 제공하는지, 어떻게 상호작용하는 지를 전체 인터넷에 공개적으로 선언한다. 쇼단은 다음과 같은 FTP 배너의 예를 제공한다.

220 kcg.cz FTP server (Version 6.00LS) ready.

쇼단은 웹 콘텐츠를 인덱싱하지 않지만 포트 80과 443을 쿼리한다. CSOonline(CSO온라인)의 https 배너는 다음과 같다.

$ curl -I https://www.csoonline.com
HTTP/2 200
server: Apache-Coyote/1.1
x-mod-pagespeed: 1.12.34.2-0
content-type: text/html;charset=UTF-8
via: 1.1 varnish
accept-ranges: bytes
date: Fri, 25 May 2018 14:16:18 GMT
via: 1.1 varnish
age: 0
x-served-by: cache-sjc3135-SJC, cache-ewr18125-EWR
x-cache: HIT, MISS
x-cache-hits: 2, 0
x-timer: S1527257779.808892,VS0,VE70
vary: Accept-Encoding,Cookie
x-via-fastly: Verdad
content-length: 72361


다른 포트의 다른 서비스는 서비스별 정보를 제공한다. 이는 게시된 배너가 진짜임을 보장하지 않는다. 대부분의 경우 진짜이며, 어느 경우든 의도적으로 잘못된 배너를 게시하는 것은 숨김 보안(security by obscurity)에 해당한다.

일부 기업은 쇼단의 네트워크 크롤링을 차단하며 쇼단은 이런 요청을 존중한다. 그러나 공격자는 쇼단이 없어도 네트워크에 연결된 취약한 디바이스를 찾을 수 있다. 쇼단을 차단하면 잠깐의 당혹감은 방지할 수 있겠지만 그렇다고 보안 상태가 더 개선될 가능성은 희박하다.

쇼단에 겁 먹는 사람들
가장 명확하지만 껄끄러운 말부터 하자. 쇼단은 사람들을 질겁하게 한다.

쇼단은 인터넷의 작동 방식을 이해하지 못하는, 기술적인 지식이 없는 사람들에게 공포감을 준다. CNN은 2013년 쇼단을 "인터넷에서 가장 무서운 검색엔진"이라고 소개했다. 해커들이 모든 발전소의 위치를 알아내 폭파하면 어쩌려고? 끔찍한 일이다!

물론 이런 생각은 무지에 따른 과대망상이다. 피해를 입히고자 하는 공격자는 쇼단에 의존해 목표물을 찾지 않는다. 이는 지맵(zmap)을 실행하는 봇넷의 역할이다. 쇼단의 진정한 가치는 방어자가 스스로의 네트워크에 대한 시야를 더 넓힐 수 있다는 점이다.

무엇을 보호해야 하는지 모른다면 방어할 수 없다. 기업 수준은 물론 사회 전체 수준에서도 마찬가지다. 쇼단은 우리 모두가 살고 있는 안전하지 않은 상호 연결된 사이버 세계에 대해 훨씬 더 선명한 시야를 제공한다.

쇼단을 사용한 방어
현대의 기업은 일반적으로 스스로 원하는 범위 이상으로 인터넷에 노출된다. 직원은 업무를 수행하기 위해 이런저런 장치를 네트워크에 연결한다. 여기에 온갖 섀도우 IT도 있으니, 관리해야 할 공격 표면은 늘어나기만 한다.

쇼단은 서브넷 또는 도메인에서 연결된 디바이스, 열린 포트, 기본 인증 정보, 알려진 취약점을 쉽게 찾을 수 있게 해준다. 공격자도 똑 같은 것을 볼 수 있으므로 실제 공격이 발생하기 전에 열린 문을 걸어 잠글 수 있다.

많은 디바이스는 배너를 통해 기본 비밀번호를 공개적으로 알린다. 예를 들어 수많은 시스코 디바이스는 기본 사용자 이름/비밀번호 조합(cisco/cisco)을 알린다. 공격자보다 앞서 네트워크에서 이와 같은 디바이스를 찾는 것이 당연히 방어에 유리하다.

또한 쇼단을 사용하면 하트블리드(Heartbleed)와 같은 특정 익스플로잇에 취약한 디바이스를 검색할 수 있다. 쇼단은 방어자가 방어해야 할 디바이스를 찾는 데도 도움이 되지만 침투 테스트의 정보 수집 단계에도 유용하다. 클라이언트의 전체 서브넷에서 요란하게 nmap을 돌리는 방법보다 쇼단을 사용하는 편이 더 빠르고 은밀하다.

유료 회원은 API에 액세스할 수 있고, 모니터링하는 서브넷에 새 디바이스가 나타날 때 경보를 생성할 수도 있다. 직원들이 인터넷에 연결하는 장치를 주시할 수 있는 저렴하고도 효과적인 방법이다.

마구잡이 인터넷 연결 막기
그러나 쇼단에서 가장 주목할 만한 측면은 인터넷에 연결된 불안정한 핵심 사이버피지컬(cyberphysical) 인프라가 우리 주변에 얼마나 많이 있는지 깨닫게 해준다는 점이다. 쇼단이 하는 일은 인터넷 지도 제작이다. 이 지도는 인터넷에 직면한 보안 문제를 정량화하는 데 도움이 될 뿐만 아니라, 미디어에서 이에 관해 보도하고 입법 기관에서 해결책을 논의하도록 유도한다(참고로 필자는 유료 쇼단 멤버십을 구매한 이후 쇼단이 추적 보도에 대단히 유용하다는 점을 발견했다).

예를 들어 ICS/SCADA를 보자. 산업 제어 시스템은 인터넷이 발명되기 이전부터 존재했으며 보안을 염두에 두지 않고 설계됐다. 애초에 글로벌 인터넷에 연결되는 시스템으로 개발되지 않았으며, 예를 들어 정수 공급 라인에 미처리 하수를 방류하는 등의 악의적인 공격은 물리적 보안 통제 수단으로도 충분히 막을 수 있는 것으로 간주됐다.

그러나 지금은 다르다. 인터넷 연결을 감안하지 않고 개발된 여러 핵심 인프라가 인터넷을 이용하는 공격자의 사정권 내에 노출돼 있다. 쇼단을 사용하면 이런 시스템을 손쉽게 찾아 경보를 울릴 수 있다. 정수 처리 시설, 댐, 화장장, 요트 등이 인터넷에 연결되어야 할 필요가 있을까? 아마 거의 없을 것이다. 쇼단은 이 문제에 대한 인식을 훨씬 더 쉽게 높일 수 있게 해준다.

마찬가지로, 불안정한 IoT 디바이스는 연결된 커피메이커부터 성인용품, 냉장고에 이르기까지 상상할 수 있는 모든 시장에 홍수처럼 들이닥치고 있다. 시장은 이런 디바이스에 대한 강력한 사이버 보안을 구축하는 데 실패했으며, 규제 기관 역시 몇 가지 예외는 있지만 더 강력한 사이버보안 통제 수단을 적시에 의무화하지 못했다.

설상가상으로 IoT 제조업체가 사업에서 손을 떼거나 제조한 디바이스에 대한 지원을 포기하면 소비자는 불안정하고 보안도 되지 않는 디바이스를 떠안은 채 방치된다(이런 디바이스는 봇넷 공격에 동원됨). 이로 인해 전체 인터넷이 얼마나 위험에 처해 있는지는 정확히 파악조차 불가능하다.

기술적 지식이 없는 사람들이 쇼단에 대해 처음 알게 될 때 보이는 당혹감은 이런 상황에 이르도록 방치한 시장과 규제 기관이 가장 절실히 느껴야 한다.

쇼단은 무료로 살펴볼 수 있지만 무료 계정에서는 결과의 수가 제한된다. 고급 필터를 사용하려면 유로 멤버십(미화 49달러/평생 회원 자격 유지)이 필요하다. 빠짐없이 모든 사물의 실시간 데이터 스트림을 확인해야 하는 개발자와 기업 사용자에게도 유용하다.

일시적인 당혹감으로부터 조직을 보호하면 기업 대외 이미지 측면에서 얻는 가치는 있을지 몰라도 보안 측면의 가치는 얻을 수 없다. 쇼단은 조직 자체, 그리고 다른 조직의 외부 보안 상태에 대한 시야를 제공한다.

인터넷에서 보안 과제는 계속해서 커지고 있다. 쇼단은 이 문제를 선명하게 볼 수 있게 해준다. 기술적인 지식이 없는 사람들이 불편하게 느끼는 것은 부차적인 문제다. editor@itworld.co.kr
 

2018.06.04

"인터넷의 모든 것을 위한 검색엔진", 쇼단의 정의와 작동 원리

J.M. Porup | CSO
쇼단(Shodan)은 인터넷의 모든 것을 위한 검색엔진이다. 구글을 비롯한 다른 검색엔진은 웹만 인덱싱하지만 쇼단은 웹캠, 정수 처리장, 요트, 의료 장비, 신호등, 풍력 발전기, 번호판 판독기, 스마트 TV, 냉장고 등 인터넷에 연결된, 상상할 수 있는 모든 것을 인덱싱한다.


Credit: Getty Images Bank 

쇼단을 이해하는 가장 좋은 방법은 쇼단을 만든 존 매덜리가 쓴 책을 읽는 것이다. 쇼단의 기본적인 알고리즘은 간단명료하다.

1. 무작위 IPv4 주소 생성
2. 쇼단이 알고 있는 포트 목록에서 테스트를 위한 무작위 포트 생성
3. 무작위 포트에서 무작위 IPv4 주소를 확인하고 배너(banner)를 포착함
4. 1로 이동


이것이 전부다. 모든 것을 찾고, 인덱싱하고, 검색 가능하도록 한다. 이것이 바로 쇼단이다.

쇼단의 작동 원리
열린 포트에서 실행되는 서비스는 배너를 사용해 스스로를 알린다. 배너는 어떤 서비스를 제공하는지, 어떻게 상호작용하는 지를 전체 인터넷에 공개적으로 선언한다. 쇼단은 다음과 같은 FTP 배너의 예를 제공한다.

220 kcg.cz FTP server (Version 6.00LS) ready.

쇼단은 웹 콘텐츠를 인덱싱하지 않지만 포트 80과 443을 쿼리한다. CSOonline(CSO온라인)의 https 배너는 다음과 같다.

$ curl -I https://www.csoonline.com
HTTP/2 200
server: Apache-Coyote/1.1
x-mod-pagespeed: 1.12.34.2-0
content-type: text/html;charset=UTF-8
via: 1.1 varnish
accept-ranges: bytes
date: Fri, 25 May 2018 14:16:18 GMT
via: 1.1 varnish
age: 0
x-served-by: cache-sjc3135-SJC, cache-ewr18125-EWR
x-cache: HIT, MISS
x-cache-hits: 2, 0
x-timer: S1527257779.808892,VS0,VE70
vary: Accept-Encoding,Cookie
x-via-fastly: Verdad
content-length: 72361


다른 포트의 다른 서비스는 서비스별 정보를 제공한다. 이는 게시된 배너가 진짜임을 보장하지 않는다. 대부분의 경우 진짜이며, 어느 경우든 의도적으로 잘못된 배너를 게시하는 것은 숨김 보안(security by obscurity)에 해당한다.

일부 기업은 쇼단의 네트워크 크롤링을 차단하며 쇼단은 이런 요청을 존중한다. 그러나 공격자는 쇼단이 없어도 네트워크에 연결된 취약한 디바이스를 찾을 수 있다. 쇼단을 차단하면 잠깐의 당혹감은 방지할 수 있겠지만 그렇다고 보안 상태가 더 개선될 가능성은 희박하다.

쇼단에 겁 먹는 사람들
가장 명확하지만 껄끄러운 말부터 하자. 쇼단은 사람들을 질겁하게 한다.

쇼단은 인터넷의 작동 방식을 이해하지 못하는, 기술적인 지식이 없는 사람들에게 공포감을 준다. CNN은 2013년 쇼단을 "인터넷에서 가장 무서운 검색엔진"이라고 소개했다. 해커들이 모든 발전소의 위치를 알아내 폭파하면 어쩌려고? 끔찍한 일이다!

물론 이런 생각은 무지에 따른 과대망상이다. 피해를 입히고자 하는 공격자는 쇼단에 의존해 목표물을 찾지 않는다. 이는 지맵(zmap)을 실행하는 봇넷의 역할이다. 쇼단의 진정한 가치는 방어자가 스스로의 네트워크에 대한 시야를 더 넓힐 수 있다는 점이다.

무엇을 보호해야 하는지 모른다면 방어할 수 없다. 기업 수준은 물론 사회 전체 수준에서도 마찬가지다. 쇼단은 우리 모두가 살고 있는 안전하지 않은 상호 연결된 사이버 세계에 대해 훨씬 더 선명한 시야를 제공한다.

쇼단을 사용한 방어
현대의 기업은 일반적으로 스스로 원하는 범위 이상으로 인터넷에 노출된다. 직원은 업무를 수행하기 위해 이런저런 장치를 네트워크에 연결한다. 여기에 온갖 섀도우 IT도 있으니, 관리해야 할 공격 표면은 늘어나기만 한다.

쇼단은 서브넷 또는 도메인에서 연결된 디바이스, 열린 포트, 기본 인증 정보, 알려진 취약점을 쉽게 찾을 수 있게 해준다. 공격자도 똑 같은 것을 볼 수 있으므로 실제 공격이 발생하기 전에 열린 문을 걸어 잠글 수 있다.

많은 디바이스는 배너를 통해 기본 비밀번호를 공개적으로 알린다. 예를 들어 수많은 시스코 디바이스는 기본 사용자 이름/비밀번호 조합(cisco/cisco)을 알린다. 공격자보다 앞서 네트워크에서 이와 같은 디바이스를 찾는 것이 당연히 방어에 유리하다.

또한 쇼단을 사용하면 하트블리드(Heartbleed)와 같은 특정 익스플로잇에 취약한 디바이스를 검색할 수 있다. 쇼단은 방어자가 방어해야 할 디바이스를 찾는 데도 도움이 되지만 침투 테스트의 정보 수집 단계에도 유용하다. 클라이언트의 전체 서브넷에서 요란하게 nmap을 돌리는 방법보다 쇼단을 사용하는 편이 더 빠르고 은밀하다.

유료 회원은 API에 액세스할 수 있고, 모니터링하는 서브넷에 새 디바이스가 나타날 때 경보를 생성할 수도 있다. 직원들이 인터넷에 연결하는 장치를 주시할 수 있는 저렴하고도 효과적인 방법이다.

마구잡이 인터넷 연결 막기
그러나 쇼단에서 가장 주목할 만한 측면은 인터넷에 연결된 불안정한 핵심 사이버피지컬(cyberphysical) 인프라가 우리 주변에 얼마나 많이 있는지 깨닫게 해준다는 점이다. 쇼단이 하는 일은 인터넷 지도 제작이다. 이 지도는 인터넷에 직면한 보안 문제를 정량화하는 데 도움이 될 뿐만 아니라, 미디어에서 이에 관해 보도하고 입법 기관에서 해결책을 논의하도록 유도한다(참고로 필자는 유료 쇼단 멤버십을 구매한 이후 쇼단이 추적 보도에 대단히 유용하다는 점을 발견했다).

예를 들어 ICS/SCADA를 보자. 산업 제어 시스템은 인터넷이 발명되기 이전부터 존재했으며 보안을 염두에 두지 않고 설계됐다. 애초에 글로벌 인터넷에 연결되는 시스템으로 개발되지 않았으며, 예를 들어 정수 공급 라인에 미처리 하수를 방류하는 등의 악의적인 공격은 물리적 보안 통제 수단으로도 충분히 막을 수 있는 것으로 간주됐다.

그러나 지금은 다르다. 인터넷 연결을 감안하지 않고 개발된 여러 핵심 인프라가 인터넷을 이용하는 공격자의 사정권 내에 노출돼 있다. 쇼단을 사용하면 이런 시스템을 손쉽게 찾아 경보를 울릴 수 있다. 정수 처리 시설, 댐, 화장장, 요트 등이 인터넷에 연결되어야 할 필요가 있을까? 아마 거의 없을 것이다. 쇼단은 이 문제에 대한 인식을 훨씬 더 쉽게 높일 수 있게 해준다.

마찬가지로, 불안정한 IoT 디바이스는 연결된 커피메이커부터 성인용품, 냉장고에 이르기까지 상상할 수 있는 모든 시장에 홍수처럼 들이닥치고 있다. 시장은 이런 디바이스에 대한 강력한 사이버 보안을 구축하는 데 실패했으며, 규제 기관 역시 몇 가지 예외는 있지만 더 강력한 사이버보안 통제 수단을 적시에 의무화하지 못했다.

설상가상으로 IoT 제조업체가 사업에서 손을 떼거나 제조한 디바이스에 대한 지원을 포기하면 소비자는 불안정하고 보안도 되지 않는 디바이스를 떠안은 채 방치된다(이런 디바이스는 봇넷 공격에 동원됨). 이로 인해 전체 인터넷이 얼마나 위험에 처해 있는지는 정확히 파악조차 불가능하다.

기술적 지식이 없는 사람들이 쇼단에 대해 처음 알게 될 때 보이는 당혹감은 이런 상황에 이르도록 방치한 시장과 규제 기관이 가장 절실히 느껴야 한다.

쇼단은 무료로 살펴볼 수 있지만 무료 계정에서는 결과의 수가 제한된다. 고급 필터를 사용하려면 유로 멤버십(미화 49달러/평생 회원 자격 유지)이 필요하다. 빠짐없이 모든 사물의 실시간 데이터 스트림을 확인해야 하는 개발자와 기업 사용자에게도 유용하다.

일시적인 당혹감으로부터 조직을 보호하면 기업 대외 이미지 측면에서 얻는 가치는 있을지 몰라도 보안 측면의 가치는 얻을 수 없다. 쇼단은 조직 자체, 그리고 다른 조직의 외부 보안 상태에 대한 시야를 제공한다.

인터넷에서 보안 과제는 계속해서 커지고 있다. 쇼단은 이 문제를 선명하게 볼 수 있게 해준다. 기술적인 지식이 없는 사람들이 불편하게 느끼는 것은 부차적인 문제다. editor@itworld.co.kr
 

X