Skip to content

Security: e919-user/MabiMusicMonitor

Security

SECURITY.md

보안과 검증 안내

먼저 알아둘 점

오픈소스 공개는 누구나 동작을 검토하고 직접 빌드할 수 있게 해 주지만, 공개된 소스만으로 임의의 EXE가 반드시 같은 소스에서 만들어졌음을 자동 증명하지는 않습니다. 가장 강한 검증 방법은 이 저장소를 직접 빌드해 사용하는 것입니다. 제공 EXE를 사용할 때는 release/SHA256SUMS.txt와 해시를 비교하세요. 소스 변경 이력과 파일 무결성은 Git 커밋으로 추적합니다. 해시는 파일의 동일성을 확인할 뿐, 그 자체가 안전성을 보증하지는 않습니다.

동작 범위

항목 동작 확인 위치
패킷 캡처 Npcap/Scapy AsyncSniffer로 선택된 TCP 16000 연결을 수동 관찰 src/mabi_music_probe/capture/sniffer.py
연결 탐색 psutil.net_connections()로 게임 연결 후보 확인 src/mabi_music_probe/capture/connections.py
맵 이동 갱신 패킷 수가 3초간 멈춘 경우에만 연결을 다시 확인 src/mabi_music_probe/countdown_gui.py
패킷 처리 서버가 보낸 제목·압축 MML·합주 상태를 로컬에서 해석 score_packet.py, ensemble_packet.py
파일 기록 실행 파일 옆 timer_logs/에 PCAP·JSONL 기록 capture/pcap_writer.py, countdown_gui.py
관리자 권한 Npcap 캡처를 위해 EXE manifest에서 요청 MabiMusicMonitor.spec

의도적으로 포함하지 않은 기능

  • keyboard, pynput 같은 입력 자동화 의존성
  • SendInput, keybd_event 또는 게임 창으로의 키 입력
  • 패킷 전송·변조·재생
  • ReadProcessMemory, WriteProcessMemory, DLL 주입
  • HTTP 클라이언트, 원격 분석 서버, 텔레메트리, 자동 업데이트

공개용 pyproject.toml의 실행 의존성은 Brotli, psutil, Scapy 세 가지뿐입니다. Tkinter와 ctypes는 Python/Windows 기본 기능이며, ctypes는 DPI 설정·둥근 창·관리자 권한 확인에 사용됩니다.

직접 확인하기

# 테스트
.\.venv\Scripts\python.exe -m pytest

# 배포 파일 해시
Get-FileHash -Algorithm SHA256 .\release\MabiMusicMonitor.exe

# 위험 기능 이름 검색 예시
rg -n "SendInput|keybd_event|ReadProcessMemory|WriteProcessMemory|press_and_release|requests|urllib" src

PyInstaller 내부 파일 목록도 확인할 수 있습니다.

.\.venv\Scripts\pyi-archive_viewer.exe -r -b .\release\MabiMusicMonitor.exe

백신과 SmartScreen

이 EXE는 관리자 권한과 패킷 캡처 기능을 사용하고 코드 서명이 없기 때문에 일부 보안 제품에서 경고할 수 있습니다. 경고를 무조건 무시하지 말고 파일 해시를 확인하거나 소스에서 직접 빌드하세요.

취약점 제보

보안 문제를 발견하면 실제 PCAP, 계정 정보, 닉네임을 공개 이슈에 첨부하지 마세요. GitHub 저장소에서 Security Advisories를 활성화한 뒤 비공개 제보 기능을 사용하는 것을 권장합니다.

There aren't any published security advisories