사전 준비 - 계획 수립

goldenGlow_21·2024년 12월 20일
0

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. 개발 수행 절차

  1. 초기 세팅:
    • 팀원별 Python 개발 환경 구성
    • Tor 네트워크와 프록시 테스트
  2. 데이터 수집:
    • 크롤링 대상 URL 선정 및 스크립트 작성
    • Tor 네트워크를 통해 데이터 수집
  3. 데이터 처리:
    • 수집된 데이터의 중복 제거 및 정규화
    • 키워드 기반 데이터 필터링 (e.g., 이메일, 사용자 ID)
  4. 데이터 분석:
    • 통계 분석 및 위험도 판단 로직 작성
  5. 알림 시스템:
    • 실시간 탐지 데이터 알림 구현 (CLI 및 이메일)
  6. 통합 및 검증:
    • 기능별 통합 및 다중 테스트 케이스 실행

4. 참고할 포럼 및 비교 검증 절차

참고할 다크웹 포럼

비교 검증 절차

유료 등 추가 공신력 있는 벤더를 차용한다는 가정 하에?

  1. 크롤링 데이터 검증:
    • 수집 데이터와 다크웹 유출 정보 API 데이터 비교
    • 주요 키워드 및 위험도 매칭
  2. OSINT 분석 검증:
    • 데이터의 정합성과 신뢰성 검증
    • 데이터 유효성 테스트
  3. 알림 시스템 검증:
    • 알림 정확도 및 실시간성 테스트

profile
안드로이드는 리눅스의 꿈을 꾸는가

0개의 댓글