보안 및 안티치트
HandyCafe에는 운영자용 안티치트 및 클라이언트 보안 시스템이 포함되어 있습니다. 이 시스템은 두 부분으로 구성됩니다. 탐지 내역을 모니터링하고 차단을 관리하는 보안 패널, 그리고 클라이언트 PC에서 어떤 보호 기능을 실행할지 구성하는 보안 설정 페이지입니다. 이 시스템으로 클라이언트 프로세스를 강화하고, 치트 도구와 디버거를 탐지하며, 하드웨어 지문으로 기기를 차단하고, 연결된 Steam 계정의 VAC 차단 여부를 확인할 수 있습니다.
보안 패널
보안 패널은 세 개의 탭으로 구성됩니다. 변조 이벤트, HWID 블랙리스트, Steam VAC입니다. 패널 상단의 탭을 클릭하여 전환합니다.
변조 이벤트
변조 이벤트 탭은 클라이언트 PC가 보고한 안티치트 탐지 기록을 보여줍니다. 각 행에는 시간, 컴퓨터(친숙한 이름과 그 아래 표시되는 MAC 주소), 이벤트 카테고리, 심각도, 탐지된 내용을 평이한 언어로 설명한 설명이 표시됩니다.
상단의 필터 행을 사용하여 목록을 좁힙니다. 날짜를 선택할 수 있고(기본값은 오늘이며 날짜를 변경하면 다시 불러옵니다), 카테고리를 선택하고, 심각도(위험, 경고, 정보)를 선택하며, 컴퓨터 또는 MAC으로 검색 상자에 입력할 수 있습니다. 새로 고침 버튼은 이벤트를 다시 불러옵니다. 필터 옆의 카운터는 불러온 전체 이벤트 중 현재 필터 조건에 일치하는 개수를 보여줍니다.
이벤트 카테고리에는 프로세스 스캔, 창 스캔, 드라이버 스캔, 디버거, 메모리 편집기, 인젝터, 게임 치트, 바이너리 무결성, 코드 서명, DNS 감시, 시간 변조가 포함됩니다. 선택한 날짜에 탐지 내역이 없으면 패널에 해당 날짜에 변조 이벤트가 없습니다라고 표시됩니다.
HWID 블랙리스트
HWID 블랙리스트 탭은 하드웨어 지문(HWID 해시)으로 차단된 기기를 나열합니다. 표에는 HWID 해시, 샘플 MAC, 사유, 메모, 시간이 표시됩니다. 상단의 카운터는 차단 건수를 보여줍니다.
기기를 차단하려면 HWID 차단 추가를 클릭합니다. 대화 상자에 MAC(AA:BB:CC:DD:EE:FF 형식), 필수 항목인 사유, 선택 항목인 메모를 입력한 후 차단 추가를 클릭합니다. 서버는 MAC을 기기 지문으로 변환하여 차단을 기록합니다. 저장하지 않고 대화 상자를 닫으려면 취소를 사용합니다.
차단을 해제하려면 해당 행의 제거 동작(차단 해제)을 사용합니다. 새로 고침 버튼은 목록을 다시 불러옵니다. 차단 건이 없으면 표에 HWID 차단이 없습니다라고 표시됩니다.
Steam VAC
Steam VAC 탭은 Steam Web API를 사용하여 연결된 회원 Steam 계정의 VAC 차단 여부를 확인합니다.
Steam Web API 키 필드에 키를 입력하고 저장을 클릭합니다. 안내 문구는 다음과 같습니다. VAC 차단 조회에 필요합니다. steamcommunity.com/dev/apikey에서 키를 발급받으세요.
VAC 스윕 아래의 지금 검사 버튼은 수동 스윕을 실행합니다. 이 스윕은 연결된 모든 회원의 Steam 계정에서 VAC 차단 여부를 확인하며 매일 자동으로 실행됩니다. 지금 검사 버튼은 Steam Web API 키가 저장되기 전까지 비활성화됩니다. 상태 텍스트에는 마지막 스윕 시간이 표시되며, 스윕이 한 번도 실행되지 않았으면 아직 스윕한 적 없음으로 표시됩니다.
클라이언트 보안 구성
클라이언트 보안 설정 페이지는 각 클라이언트 PC가 적용할 보호 기능을 제어합니다. 이 페이지는 프로세스 강화와 변조 모니터로 나뉩니다.
클라이언트 보안 보호 활성화 마스터 스위치로 전체 시스템을 켜거나 끌 수 있습니다. 이 스위치를 끄면 클라이언트는 프로세스 강화를 적용하지 않으며 변조 모니터 검사를 실행하지 않습니다. 스위치 아래의 배너는 HandyCafe Client, Server, Watchdog 바이너리가 항상 화이트리스트에 등록되어 있어 보호 기능이 절대 이들을 탐지하지 않음을 알려 줍니다. 세부 섹션은 마스터 스위치가 켜져 있을 때만 나타납니다.
이 페이지는 설정 하위 페이지입니다. 변경 사항은 섹션 내부의 별도 버튼이 아니라 페이지 수준의 저장 버튼으로 적용됩니다. 저장은 모든 연결된 지원 클라이언트가 새 구성이 메모리에서 활성화되었음을 인정한 후에 성공합니다. 배송은 자동으로 재시도됩니다. 배송 실패 시 설정 페이지가 더티 상태를 유지하므로 다시 시도할 수 있습니다. 연결이 끊긴 클라이언트는 다시 연결할 때 저장된 구성을 받습니다.
프로세스 강화
프로세스 강화는 클라이언트 시작 시 프로세스 자체 강화 정책을 적용합니다. 각 토글에는 위험도 배지(낮은 위험, 중간 위험, 높은 위험)와 동작을 설명하는 툴팁이 표시됩니다. 사용 가능한 옵션:
- 메모리 보호(DACL): 자체 프로세스의 DACL을 교체하여 비관리자 토큰이 읽기, 쓰기, 스레드 접근 권한을 잃도록 합니다. 표준 Cheat Engine 연결을 차단합니다.
- DEP 영구 적용: 데이터 실행 방지(DEP)를 영구적으로 유지하여 스택과 힙이 실행 불가능 상태로 남게 합니다.
- 동적 코드 금지(높은 위험): JIT 및 실행 가능 메모리 할당을 차단합니다. 일부 시스템에서 GPU 드라이버의 셰이더 JIT가 작동하지 않을 수 있고, 화면 캡처와 원격 제어가 실패할 수 있습니다.
- AppLocker/WDAC 서명 정책(중간 위험): 프로세스를 기존 AppLocker 또는 WDAC 바이너리 서명 규칙에 적용합니다.
- DLL 로드 필터(중간 위험): 원격 이미지 DLL 로드를 차단하고, System32를 우선하며, 낮은 무결성 이미지를 차단합니다. 일부 벤더 오버레이가 작동하지 않을 수 있습니다.
- AppInit_DLLs / IME 차단: AppInit_DLLs, IME, Winsock LSP 주입 경로를 차단합니다.
- 엄격한 핸들 검사(높은 위험): 잘못된 핸들 사용 시 오류를 발생시킵니다. 타사 라이브러리의 핸들 관리 버그가 있으면 프로세스가 충돌합니다.
- Linux: ptrace 차단: Linux에서 비루트 사용자의 ptrace 및 디버거 연결을 방지합니다.
- macOS: 디버거 연결 거부: macOS에서 이후 모든 디버거 연결을 거부합니다.
변조 모니터
변조 모니터는 치트 도구, 디버거, 인젝터에 대한 백그라운드 프로브를 실행합니다. 탐지 및 시행 결과는 변조 이벤트 탭에 나타납니다. 사용 가능한 프로브:
- Cheat Engine / 메모리 편집기 탐지: 1초마다 실행 중인 프로세스를 확인합니다. 지원되는 Cheat Engine 버전 및 기타 메모리 편집기 계열을 안정적인 프로세스 ID로 인식합니다. Windows에서는 PE 회사 및 설명 필드도 확인하므로 실행 파일 이름을 바꾸어도 탐지를 우회할 수 없습니다. 실행 파일 해시는 사용하지 않습니다. 높은 신뢰도의 메모리 편집기는 종료됩니다. 인식 가능한 ID가 없는 도구는 HandyCafe Client 또는 관찰된 활성 사용자 소유 애플리케이션의 메모리 쓰기 또는 스레드 주입 권한을 가진 도구를 열면 중요 보고서 전용 이벤트를 생성합니다.
- 디버거 / 리버스 엔지니어링 도구 탐지(x64dbg, IDA, Ghidra): 리버스 엔지니어링 도구를 탐지합니다.
- 코드 인젝터 탐지(Process Hacker, Scylla): Process Hacker, Scylla, kdmapper 같은 코드 인젝터를 탐지합니다.
- 게임 치트 브랜드 탐지(neverlose, aimware 등): 알려진 상용 게임 치트 프로세스 이름과 일치하는지 확인하고 해당 도메인에 대한 DNS 조회를 수행합니다.
- 의심스러운 드라이버 스캔: 취약한 드라이버 악용을 탐지합니다. 참고: RTCore64는 MSI Afterburner에서도 사용되므로 오탐이 발생할 수 있습니다.
- 안티디버그 검사: 일반적인 디버거 존재 API와 하드웨어 중단점을 확인합니다.
- 실행 파일 무결성 검사(SHA-256): 스윕마다 자체 실행 파일을 해싱하여 디스크상의 패치를 탐지합니다.
- 서명 검증(WinVerifyTrust): Authenticode 서명을 검증합니다. 서명되지 않은 베타 빌드에서는 이 기능을 꺼 두세요.
- DNS 쿼리 모니터링(치트 도메인 블랙리스트): DNS 캐시를 분석하여 알려진 치트 벤더 도메인을 찾습니다.
- 창 제목 스캔: 창 제목을 검사하여 이름 기반 탐지를 회피하려고 바이너리 이름을 변경한 치트 프로세스를 잡아냅니다.
일반 목적의 16진수 및 리소스 편집기는 자동 종료 없이 보고됩니다. 디버거 및 인젝터는 보고서 전용 상태로 유지됩니다. 알 수 없는 동작 전용 발견 사항도 안티바이러스, 접근성, 프로파일러 및 원격 지원 소프트웨어가 동일한 Windows 프로세스 권한을 요청할 수 있기 때문에 보고서 전용 상태로 유지됩니다. 동작 전용 발견 사항은 대상 애플리케이션마다 하나의 이벤트 대신 소스 프로세스마다 하나의 이벤트로 그룹화됩니다. 표시 및 지속되지만 클라이언트 상태 점수를 낮추거나 자동 시행을 트리거하지 않습니다. 자동 종료는 독립적으로 재검증된 높은 신뢰도 메모리 편집기 ID가 필요하며 HandyCafe Client 프로세스 자체를 대상으로 하지 않습니다.
ID가 제거된 유휴 커스텀 도구가 자신을 식별하지 않고 HandyCafe Client 또는 관찰된 활성 사용자 소유 애플리케이션을 열지 않는 경우 일반 소프트웨어와 안전하게 구별할 수 없습니다. HandyCafe는 게임에 후크를 주입하거나 시스템 전역 프로세스 차단을 활성화하지 않습니다. 이러한 메커니즘은 캡처, 원격 관리, 시작된 애플리케이션을 중단시킬 수 있기 때문입니다.
메모리 편집기 시행은 HandyCafe 프로세스 DACL을 변경하거나 프로세스 완화 정책을 활성화하지 않습니다. 화면 캡처, 원격 관리, 네트워킹 또는 파일 및 애플리케이션 시작 경로를 수정하지 않습니다. Windows가 더 높은 권한 또는 보호된 프로세스를 종료할 권한을 거부하는 경우 이벤트는 중요로 유지되고 설명에 action=termination_failed가 보고됩니다.
변조 보고서는 제한된 백그라운드 큐를 사용합니다. 네트워크 승인은 공유 클라이언트 잠금 외부에서 대기되므로 보고 시 화면 캡처, 원격 관리 또는 애플리케이션 시작 명령이 지연되지 않습니다. 보고서는 다시 연결 재시도 중에 안정적인 요청 ID를 유지하고 서버는 중복 배송을 억제합니다. 대기 중인 및 진행 중인 중복은 축소됩니다. 이벤트 세부 정보는 고정 크기 제한이 있고 높은 신뢰도 시행 결과가 큐가 가득 찼을 때 보고서 전용 원격 측정보다 우선됩니다.
검사 간격
최소 검사 간격(초) 및 최대 검사 간격(초) 필드는 느린 드라이버, 디버거, 무결성, 서명, DNS 및 창 프로브를 제어합니다. 클라이언트는 각 느린 스윕마다 이 두 값 사이에서 무작위 간격을 선택합니다. Cheat Engine 및 메모리 편집기 ID 확인은 자체 1초 간격을 사용하므로 이 필드는 시행을 지연시키지 않습니다. Windows 핸들 동작 원격 측정은 HandyCafe Client와 최대 64개의 경로 검증된 활성 사용자 소유 애플리케이션을 10초마다 확인합니다. 허용 범위는 30초에서 3600초이며 최솟값은 최댓값보다 작거나 같아야 합니다. 값이 유효하지 않으면 페이지에 다음 메시지가 표시됩니다. 최소 간격은 최대 간격보다 작거나 같아야 합니다. 값을 수정할 때까지 저장이 차단됩니다.