crawler

메인 인덱스 | Shield4U | GitHub

이 문서는 crawler 레포의 핵심 정보와 포트폴리오 메모를 한 파일로 정리한 노트입니다.

레포지토리 정보

  • Name: crawler
  • Primary Purpose: 공격 벡터 탐색 및 페이지 탐색을 위한 Selenium 기반 웹 크롤러
  • Part of: Hackerspace-Shield4U 마이크로서비스 아키텍처

주요 목적

Selenium WebDriver를 사용하여 구성 가능한 깊이로 자동화된 웹 크롤링을 수행하는 웹 크롤링 마이크로서비스입니다. 공격 벡터를 탐색하고, 페이지 데이터(폼, 링크, 스크립트)를 추출하고, 기술을 지문 채취하고, 보안 평가를 위한 로그인 패널을 식별합니다.

주요 기술 스택

  • Language: Python 3
  • Framework: Flask (API 엔드포인트용)
  • Browser Automation: Selenium WebDriver
  • HTML Parsing: BeautifulSoup4
  • Configuration: 환경 기반 설정
  • Containerization: Docker

주요 컴포넌트

  1. API Service (app.py): 비동기 태스크 처리가 있는 Flask 엔드포인트
  2. Crawling Engine (crawling.py): BeautifulSoup이 있는 핵심 크롤링 로직
  3. Configuration (crawler_config.py): WebDriver 설정 및 구성
  4. PageParser Class: DOM, 폼, 링크, 스크립트의 구조화된 추출

데이터 구조

크롤러는 다음을 포함한 구조화된 데이터를 추출합니다:

  • DOM: title, meta, scripts, links, forms, visible links, text samples
  • Fingerprints: CMS 탐지, 플러그인, 기술
  • Panel Login Signals: 관리 패널 후보
  • OSINT Exposure: 이메일, 전화번호, 소셜 링크, 클라우드 스토리지
  • Internal Data: 브라우저 스토리지, 요청 정보, 깊이 추적

포트폴리오 메모

분석할 주요 파일 (진입점)

  1. app.py - Flask API 서비스 (180줄)
  2. crawling.py - 핵심 크롤링 및 파싱 로직 (401줄)
  3. crawler_config.py - WebDriver 설정 및 세션 관리
  4. requirements.txt - Python 의존성
  5. Dockerfile - 컨테이너 설정

레포지토리 컨텍스트

  • Role: 웹 탐색 및 공격 벡터 식별
  • Dependencies: Selenium Grid, controller 서비스
  • Produces: LLM 분석을 위한 구조화된 페이지 데이터
  • Integration: 크롤 결과와 함께 controller로 콜백

참고사항

  • 포트폴리오 메모: 웹 크롤링 전문성의 사례
  • 복잡한 데이터 추출 패턴을 보여줌
  • 공격 벡터 탐색이 있는 보안 중심
  • 깊이 제어 크롤링 처리
  • 기술 지문 채취 기능
  • OSINT 데이터 추출 기능