🪟 Windows TippsThe Gemini desktop app is now available for Windows(11.09.2026 um 17:06 Uhr)
🕵️ SicherheitslückenBurn Out, Or Fade Away(14.09.2026 um 14:25 Uhr)
🪟 Windows TippsProfi-Edelstahlpfanne von WMF jetzt zum halben Preis erhältlich(15.09.2026 um 08:05 Uhr)
🪟 Windows TippsThe Gemini desktop app is now available for Windows(11.09.2026 um 17:06 Uhr)
🕵️ SicherheitslückenBurn Out, Or Fade Away(14.09.2026 um 14:25 Uhr)
🪟 Windows TippsProfi-Edelstahlpfanne von WMF jetzt zum halben Preis erhältlich(15.09.2026 um 08:05 Uhr)

🔧 Programmierung 🕛 vor 3 Monaten 2 Min Lesezeit
0

6개 프로젝트 보안 감사: 25개 이슈 발견 수정 기록

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht




6개 프로젝트 보안 감사: 25개 이슈 발견→수정 기록



Published on: 2026-06-06


Reading time: 8 min


Tags: #security #python #audit #devops





개요



3개월에 걸쳐 개발한 6개 Python 프로젝트(3개 봇 + 3개 라이브러리)를 종합 감사했습니다. 25개 보안/코드 이슈를 발견했고, 23개를 즉시 수정했습니다.





  • 감사 대상: FastAPI + Telegram Bot + LLM 통합 시스템


  • 총 파일: 91개 Python 파일


  • 발견 이슈: 25개 (심각 5개, 중간 18개, 경미 2개)


  • 수정율: 92% (23/25)





심각도 높음 - 5개 이슈





1. API 키가 Git 히스토리에 노출됨 🔴



문제: Anthropic, Supabase, Telegram API 키가 .env 파일로 커밋됨




CODE
# ❌ 노출된 상태 (git log에서 확인 가능)
ANTHROPIC_API_KEY=sk-ant-api03-xxxxxxxxxx
SUPABASE_KEY=sb_publishable_xxxxxxxxxx






위험도: 누구든 이전 커밋으로 API 키 접근 가능 → 리소스 도용, 데이터 침해



해결책:




CODE
# 1. BFG로 히스토리 정리
bfg --delete-files ".env" --no-blob-protection .

# 2. Git에서 제거
git rm --cached .env
echo ".env" >> .gitignore

# 3. API 키 로테이션 (필수)
# - Anthropic: console.anthropic.com/account/keys
# - Supabase: app.supabase.com → Settings → API
# - Telegram: @BotFather → /token









2. SSL 검증 비활성화 (MITM 공격 위험) 🔴



문제: requests 호출에 verify=False 사용 (10곳)




CODE
# ❌ 위험한 코드
response = requests.get(url, verify=False)

# ✅ 안전한 코드
response = requests.get(url, verify=True) # 기본값






영향: HTTPS 중간자 공격(MITM) 가능 → 민감한 데이터 도청



수정: contest-agent, supabase-async 전체 10곳 제거






3. 광범위한 예외 처리 🔴



문제: except Exception 으로 모든 오류를 무시 (114곳)




CODE
# ❌ 버그 추적 불가
try:
result = await db_select("contests")
except Exception:
print("failed") # 어떤 오류인지 알 수 없음

# ✅ 구체적인 처리
try:
result = await db_select("contests")
except requests.HTTPError as e:
logger.error(f"DB error: {e}", exc_info=True)
raise






영향: 버그 원인 파악 불가 → 프로덕션 문제 대응 시간 증가






4. 라이브러리 __init__.py 부실



문제: llm-router, supabase-async, telegram-agent의 __init__.py 비어있음




CODE
# ❌ 기존 (빈 파일)
# __init__.py
# (아무것도 없음)

# ✅ 수정 후
from llm_router import LLMRouter
__version__ = "0.1.0"
__all__ = ["LLMRouter"]






영향: PyPI 설치 후 import 실패




CODE
from llm_router import LLMRouter  # ❌ ImportError









5. 문법 오류 (try-except 들여쓰기)



ai-insight-curator의 processor.py에서 DB 작업이 try 블록 밖에 있었음 → 예외 처리 안 됨






심각도 중간 - 18개 이슈






의존성 버전 불일치




  • Anthropic: 0.25.0 / 0.34.0 혼재 → 0.34.0으로 통일

  • Supabase: 2.0.0 / 2.4.0 혼재 → 2.4.0으로 통일

  • Python: 3.9 / 3.11 혼재 → 3.11로 통일 (3.9 EOL: 2025-10)






입력 검증 부재





  • /contests?status=invalid&limit=999 같은 잘못된 입력 허용

  • 해결: status enum, limit 1-100 범위 검증 추가






README와 코드 불일치




  • ai-insight-curator README에 FastAPI 언급 → 실제로는 순수 Telegram Bot

  • 구현 상태 명시 누락






통계






변경 내역




























항목 수치
신규 커밋 15개
수정 파일 22개
삭제된 코드 347줄
추가된 코드 200줄





테스트 결과






CODE
✅ 91개 파일 Python 문법 검증 통과
✅ 라이브러리 import 테스트 3/3 통과
✅ 프로젝트 구조 검증 3/3 통과









배운 점





  1. 초기부터 보안: .env는 처음부터 .gitignore에 넣기


  2. 버전 관리: 모든 패키지를 명시적으로 고정 (>=는 피하기)


  3. 구체적인 예외: Exception 대신 HTTPError, ValueError 등 구체적으로


  4. 정기 감사: 3-6개월마다 보안 감사 실행






보안 검증 완료 (배포 후)






최종 확인 (2026-06-07)



API 키 로테이션: 완료




  • Anthropic, Supabase, Telegram API 키 새로 생성

  • 기존 키 비활성화



.env 파일 보안: GitHub에 올라가지 않음




CODE
git log --all --full-history -- ".env" # 결과: 없음
git ls-files | grep -i "env\|key\|token" # 결과: .env.example만






SSL 검증: 활성화 (verify=True)




  • contest-agent, supabase-async 전체 검증



예외 처리: 구체적으로 변경




  • 114개 광범위 예외 → 구체적 예외로 변경



배포 상태: 3개 서비스 모두 작동 중




  • Lifelogger (포트 8000): 매일 자동 요약

  • Curator (포트 8001): 매일 RSS 수집

  • Contest Agent: 준비 완료









최종 체크리스트



긴급 (24시간): API 키 로테이션 - 완료

높음 (1주): SSL 검증 활성화 - 완료

중간 (2주): 예외처리 감사 - 완료

진행: 정기 감사 일정 (분기별) - 설정됨






결론



3개월 개발 + 보안 감사 + 배포 = 완성






교훈





  1. 초기 보안: .env는 처음부터 .gitignore에 ✅


  2. 정기 감사: 3개월 개발 후 종합 감사 필수 ✅


  3. 자동화: CI/CD 파이프라인으로 지속적 검증 ✅






현재 상태





  • GitHub: 민감 정보 0개 노출 ✅


  • 배포: 3개 서비스 안전하게 운영 중 ✅


  • 비용: $0/월 (완전 무료 배포) ✅


  • 가용성: 99.9% (Oracle Cloud Always Free) ✅



보안을 넘어 안정성까지 확보한 상태입니다.

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
The Gemini desktop app is now available for Windows
1 Quelle
Burn Out, Or Fade Away
1 Quelle
Windows 11 KB5129195 is out after Microsoft confirms major issues with the September 2026 update, but it won’t fix AMD GPU errors
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten 6개 프로젝트 보안 감사: 25개 이슈 발견 수정 기록

Thematisch verwandte Begriffe: 프로젝트 · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...