Shodan
쇼단(Shodan)은 보안취약점을 가진 시스템을 찾아내서 보안을 강화하기 위한 수단으로 개발된 검색엔진이다.
네이버나 구글과 같은 검색 엔진은 웹 사이트에서 우리가 원하는 정보를 크롤링한 뒤 보여주지만 쇼단은 포트를 검색한 후 ‘배너’ 정보로부터 ‘메타데이터’를 가져와 인터넷에 연결된 라우터, 관리자 서비스, 인터넷 전화, 웹캠 등의 정보를 수집하고 결과로 보여준다. 쇼단은 IP주소, 네트워크 연결상태뿐만 아니라 장비의 위치 정보와 같은 민감한 정보까지 식별할 수 있다. 쇼단은 보안 전문가들이 취약점을 쉽게 찾을 목적으로 만들어졌지만, 현재에 와서는 해커들이 공격 전 정보를 수집하는 범죄 도구가 되어 세계에서 가장 위험한 검색 엔진이 됐다. IoT 기기 공격에 활용할 수 있는 악성코드나 네트워크 정보를 쉽게 구할 수 있다는 점도 공격이 빠르게 확산되는 이유 중 하나다.
1. 쇼단의 작동
인터넷을 사용하는 서버 또는 장비의 열려 있는 포트를 통해 배너 그래빙으로 정보 수집 후 색인을 생성하여 클라이언트에 반환하는 형식이다. 반환된 데이터는 쇼단 웹 인터페이스를 통해 사용자에게 장비의 정보, 지원하는 서비스 등으로 보여진다. 즉, 인터넷에 연결된 디바이스의 배너와 메타데이터를 24/7로 수집하며 실시간으로 수집된 데이터베이스를 업데이트한다.
쇼단에선 facet이란 개념을 사용하는데, facet이란 수집한 배너에서 특정 field에 관한 정보만 모은 것을 의미한다. Facet은 결과의 부분집합이라고 볼 수도 있겠다. 이 부분은 웹 인터페이스에서 필터 영역으로 볼 수도 있다. Facet은 CLI와 Developer API에서만 사용 가능하다.
사용자 검색 → 포트 조사 결과 배너 캡쳐 → 캡쳐 된 배너 색인화 결과 출력
1-1. 배너
- 쇼단이 수집하는 데이터의 기본 단위는 배너
- 배너는 쇼단이 찾을 수 있는 장치의 서비스를 설명하는 텍스트
- 배너는 서비스 유형에 따라 달라짐
HTTP/1.1 200 OK
Server: nginx/1.10.3
Date: Thu, 25 Oct 2018 02:08:03 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
1-2. 장치 메타데이터
- 배너 외에도 호스트 이름, 사용OS, 위치 정보와 같은 장치의 메타데이터를 수집
- 메타데이터는 디바이스에 관련된 정보
- 대부분의 메타데이터는 쇼단 웹 사이트를 통해 얻을 수 있음 (+유료결제 API)
1-3. SSL 테스트
- SSL로 암호화된 서비스는 Heartbleed, Poodle, Freak 공격에 취약한 장치인지, SSL 인증서 체인이 유효한지 검사
- API 사용자는 SSL 배너 속성에서 정보의 추가 이용이 가능함
2. 쇼단의 구성
2-1. Shodan Maps
지도에 편리한 방식으로 시각적인 결과를 표시함. 검색결과는 최대 1000개를 표시함
2-2. Shodan Images
크롤링된 이미지 데이터 스크린샷을 사용자에게 제공해 스크린샷의 빠른 탐색을 가능하도록 함
2-3. Shodan Exploit
메타데이터를 포함하여 ExploitDB, Metasploit, CVE(Common Vulnerabilities and Exposures)의 취약점과 Exploit을 수집한다.
3. 쇼단 사용법
쇼단은 API나 웹 인터페이스, Command-Line Interface(CLI) 를 사용해 원하는 데이터를 얻을 수 있다. 계정이 없는 사용자 / 계정이 있는 사용자 / 비용을 지불한 사용자에 따라 검색 가능한 방법과 API 사용여부가 달라진다. 기본적으로 계정이 없는 사용자일 경우 검색에 따라 약 10개의 결과값을 얻을 수 있다. 또한 24시간 동안 검색할 수 있는 횟수가 상당히 제한적이다.
Censys
센시스는 인터넷을 더욱 안전하게 만들기 위한 도구로 미시간 대학의 과학자 그룹에 의해 2013년에 만들어졌다. 쇼단과 유사한 라이벌 검색엔진이다. 센시스는 공개된 보안취약점을 찾는데 중점을 둔다. 예를 들어 CVE-20yy-zzzz와 같은 보안 취약점이 발표되면 자사의 네트워크에 속한 장비 중 해당 보안 취약점을 가진 장비를 찾는 것이다. Censys 또한 계정이 있는 사용자와 없는 사용자가 볼 수 있는 검색 결과의 수가 다르다.
출처 : 인터넷의 여러 링크를 참고해 공부했다..
http://preview.kyobobook.co.kr/epubPreviewPopup.jsp?type=web&barcode=480D170403920
'Today I Learned' 카테고리의 다른 글
[파이썬을 이용한 웹 크롤링과 스크레이핑] URL과 퍼머링크 (0) | 2021.07.12 |
---|---|
[TIL] 210507 - 파이썬 for ~ else문, gcd 알고리즘 (0) | 2021.05.07 |
[TIL] XXS 크로스 사이트 스크립팅 (웹 취약점 공부) (0) | 2021.01.14 |
[TIL] 검색엔진 작동원리, 네이버의 라이브 검색 (0) | 2021.01.11 |