crawler
이 문서는 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
주요 컴포넌트
- API Service (
app.py): 비동기 태스크 처리가 있는 Flask 엔드포인트 - Crawling Engine (
crawling.py): BeautifulSoup이 있는 핵심 크롤링 로직 - Configuration (
crawler_config.py): WebDriver 설정 및 구성 - PageParser Class: DOM, 폼, 링크, 스크립트의 구조화된 추출
데이터 구조
크롤러는 다음을 포함한 구조화된 데이터를 추출합니다:
- DOM: title, meta, scripts, links, forms, visible links, text samples
- Fingerprints: CMS 탐지, 플러그인, 기술
- Panel Login Signals: 관리 패널 후보
- OSINT Exposure: 이메일, 전화번호, 소셜 링크, 클라우드 스토리지
- Internal Data: 브라우저 스토리지, 요청 정보, 깊이 추적
포트폴리오 메모
분석할 주요 파일 (진입점)
app.py- Flask API 서비스 (180줄)crawling.py- 핵심 크롤링 및 파싱 로직 (401줄)crawler_config.py- WebDriver 설정 및 세션 관리requirements.txt- Python 의존성Dockerfile- 컨테이너 설정
레포지토리 컨텍스트
- Role: 웹 탐색 및 공격 벡터 식별
- Dependencies: Selenium Grid, controller 서비스
- Produces: LLM 분석을 위한 구조화된 페이지 데이터
- Integration: 크롤 결과와 함께 controller로 콜백
참고사항
- 포트폴리오 메모: 웹 크롤링 전문성의 사례
- 복잡한 데이터 추출 패턴을 보여줌
- 공격 벡터 탐색이 있는 보안 중심
- 깊이 제어 크롤링 처리
- 기술 지문 채취 기능
- OSINT 데이터 추출 기능