1. 일정
Day 1: 킥오프 및 역할 분담
- 활동:
- 프로젝트 목표와 기술 스택 확인
- 역할 분담:
- 크롤러 개발(2명): 다크웹 크롤링 및 데이터 수집
- 데이터 분석(1명): 수집 데이터 정제 및 분석
- 알림 시스템 개발(1명): 실시간 알림 구현
- 통합 및 검증(1명): 최종 통합 및 테스트
- 아님 걍 묶는 게 나을수도? - 전우조
- 환경 세팅 (Python 가상환경 또는 Docker - 의견 듣고 결정)
Day 2~4: 기술 학습 및 초기 개발
- 크롤러 개발:
- Tor 네트워크 연결 (
stem, PySocks) 학습 및 구현
- 다크웹 포럼/마켓 크롤링 스크립트 작성
beautifulsoup 될지 모르겠다 - 전에 한 웹 프로젝트 스캐빈징 해보기
- OSINT 학습:
- OSINT 플랫폼 및 API 활용 학습 (e.g.,
Shodan, Maltego, Hunter.io)
- 알림 시스템:
- 기본 CLI 환경 설계 및 알림 시스템의 아키텍처 초안 작성
Day 5~7: 주요 기능 개발
- 크롤러 개발:
- 다크웹 주요 사이트 탐지 및 데이터 수집 스크립트 완성
- 데이터 분석:
- Python 기반 데이터 정제 (
pandas) 및 통계 분석 모듈 구현
- 알림 시스템:
- 데이터 수집 결과 기반 알림 생성 로직 구현
- 이메일, CLI 출력 통합
- UI/CLI 개발:
click 라이브러리를 활용한 직관적인 CLI 메뉴 개발
Day 8~9: 통합 및 테스트
- 통합:
- 크롤러, 데이터 분석, 알림 시스템 통합
- 데이터 저장 (SQLite) 및 시각화 테스트
- 테스트:
- 다크웹 테스트 환경에서 데이터 수집 및 분석 검증
- 다양한 케이스(정상/오류 데이터)에 대한 알림 시스템 테스트
Day 10: 최종 검증 및 개선
- 수집 데이터 정확성 및 성능 최적화
- 크롤링 성능 개선 (다중 스레드/비동기 처리)
- 최종 보고서 작성 및 발표 준비
- day 11?
Day 11: 발표 및 문서화
- 팀별 발표 자료 준비 및 리허설
- 최종 시스템 문서화 (사용법 및 코드 설명)
2. 사용할 기술 및 도구
- 언어: Python
- 라이브러리:
- 크롤러:
requests, BeautifulSoup, stem, PySocks
- 데이터 분석:
pandas, numpy
- CLI 개발:
click, argparse
- 데이터 저장:
sqlite3, MongoDB
- 알림:
smtplib (이메일), plyer (데스크탑 알림)
- 환경:
- Tor 네트워크 및 프록시 설정
- Docker (개발 환경 컨테이너화)
- 참고 자료:
ElasticSearch와 MongoDB를 병행한 워크플로우
- 크롤링 후 MongoDB 저장:
- 원본 데이터를 MongoDB에 저장
- JSON 기반으로 문서화하여 검색/분석 효율화
- Elasticsearch로 전송:
- 특정 필드(작성자, 제목, 위험도 등) 기준으로 데이터를 선별
- Elasticsearch에 적재하여 속도 최적화 및 검색/시각화에 활용
- 경고 시스템 통합:
- Elasticsearch와 연동해 주요 데이터 기반 실시간 경고
- 분석 결과에 따라 중요 데이터를 MongoDB에서 Elasticsearch로 이동
성능 최적화 및 클러스터링 고려
- MongoDB:
- 데이터 증가 시 샤딩(Sharding)을 적용하여 스케일 아웃
- 다중 노드 클러스터링을 통해 읽기/쓰기 부하 분산
- Elasticsearch:
- 데이터 볼륨 증가 대비 클러스터링 환경 세팅
- 시간 소모 감소 전략?
- 필요 없는 데이터를 주기적으로 삭제하여 색인 효율 개선
- 알림 데이터 위주로 인덱스 필터링
3. 개발 수행 절차
- 초기 세팅:
- 팀원별 Python 개발 환경 구성
- Tor 네트워크와 프록시 테스트
- 데이터 수집:
- 크롤링 대상 URL 선정 및 스크립트 작성
- Tor 네트워크를 통해 데이터 수집
- 데이터 처리:
- 수집된 데이터의 중복 제거 및 정규화
- 키워드 기반 데이터 필터링 (e.g., 이메일, 사용자 ID)
- 데이터 분석:
- 알림 시스템:
- 실시간 탐지 데이터 알림 구현 (CLI 및 이메일)
- 통합 및 검증:
4. 참고할 포럼 및 비교 검증 절차
참고할 다크웹 포럼
비교 검증 절차
유료 등 추가 공신력 있는 벤더를 차용한다는 가정 하에?
- 크롤링 데이터 검증:
- 수집 데이터와 다크웹 유출 정보 API 데이터 비교
- 주요 키워드 및 위험도 매칭
- OSINT 분석 검증:
- 데이터의 정합성과 신뢰성 검증
- 데이터 유효성 테스트
- 알림 시스템 검증: