서버 크래시 예방
서버의 크래시 취약점을 일부러 찔러 보는 악의적인 사람들이 있다.
너무 걱정할 필요는 없다. 꾸준히 유지보수되는 플러그인에는 보통 크래시 취약점이 없다. 그래도 대비는 해 두는 게 좋다.
Minecraft 서버가 자주 당하는 크래시 유형을 몇 가지 정리했다.
플러그인 관련
섹션 제목: “플러그인 관련”오래되었거나 아직 발견되지 않은 취약점이 있는 플러그인을 설치하면, 버그로 플러그인이 스스로 뻗거나 심하면 공격자가 취약점을 악용할 수 있다. 이런 문제는 서버 운영자가 미리 대비해야 한다. 우선 플러그인을 고를 때부터 다음을 지킨다.
- 처음 설치할 때 WARN과 ERROR를 최대한 해결하고, 도저히 안 되면 바로 다른 플러그인으로 바꾼다
- 업데이트가 끊긴 플러그인은 되도록, 가능하면 아예 쓰지 않는다
- 크랙(유출) 플러그인은 되도록, 가능하면 아예 쓰지 않는다
- 가능하면 사용자가 많은 플러그인을 쓴다
믿을 만한 플러그인만 골랐더라도 대비는 여전히 필요하다. 구체적인 방법은 다음과 같다.
-
플레이어가 쓸 수 있는 명령어를 제한한다. 화이트리스트 방식으로 플레이어가 실제로 쓰는 명령어만 열어 두는 것이 가장 좋다.
-
서버 플러그인을 숨기고 위장해서, 공격자가 서버에서 어떤 플러그인을 쓰는지 최대한 알아내지 못하게 한다.
블랙리스트에 추가를 권장하는 명령어
섹션 제목: “블랙리스트에 추가를 권장하는 명령어”블랙리스트 명령어
# WorldEdit exploit- "//calc"- "//calculate"- "//eval"- "//evaluate"- "//solve"- "//asc"- "//ascend"- "//desc"- "//descend"# HolographicDisplays exploit- "/hd readtext"- "/holo readtext"- "/hologram readtext"- "/holograms readtext"- "/holographicdisplays readtext"# PermissionsEx exploit- "/pex promote"- "/pex demote"- "/promote"- "/demote"- "/execute"# Multiverse exploit- "/mv ^"- "/mv help <"- "/mvhelp <"- "/$"# FAWE exploit- "//to"- "/to"실행 환경 관련
섹션 제목: “실행 환경 관련”이런 취약점은 사실상 피하기 어렵다. Log4j처럼 발견되기 전까지는 아무도 모른다.
서버 운영자는 최대한 관련 소식에 귀를 기울여서 취약점이 나오면 빨리 알아채고, 공격자가 틈을 파고들지 못하게 해야 한다.
패킷 전송/아이템 관련 (바닐라 취약점이라고도 함)
섹션 제목: “패킷 전송/아이템 관련 (바닐라 취약점이라고도 함)”간단히 말해, 서버가 처리하지 못하거나 처리가 느린 패킷을 보내는 공격이다.
대표적인 예로 책 크래시, 표지판 크래시가 있다(최근 버전에서는 수정됨).
구버전 서버라면 이런 공격을 막는 플러그인을 설치해야 한다. 아래는 추천 플러그인이며, 네 개를 모두 함께 설치하는 것을 권장한다.
AnarchyExploitFixes (무료)
섹션 제목: “AnarchyExploitFixes (무료)”다운로드. Minecraft 바닐라 취약점을 고치는 플러그인이다. 불법 아이템, 유효하지 않은 닉네임 등을 처리한다.
LPX (유료)
섹션 제목: “LPX (유료)”구매. 정확히 말하면 LPX가 막는 것은 바닐라 취약점이 아니라, 공격자가 특수한 패킷으로 Netty 처리를 타임아웃시키는 공격(NettyCrashers)이다. 서버가 크래시되지는 않지만 플레이어의 게임 경험을 크게 해친다.
이 플러그인은 최신 버전에서도 여전히 쓸모가 있다.
Panilla (유료, 오픈 소스)
섹션 제목: “Panilla (유료, 오픈 소스)”구매 (inactive로 표시된 것은 유지보수자가 바뀌었는데 Spigot에 아직 알리지 않아서다), GitHub
Panilla는 서버에서 NBT와 패킷 악용을 막는 플러그인이다. 서바이벌 모드에서 얻을 수 없는 것들을 막고 여러 취약점을 수정한다. 서버 크래시뿐 아니라 불법 NBT로 인한 클라이언트 크래시도 막아 준다.
Surf (무료)
섹션 제목: “Surf (무료)”다운로드. Surf는 Minecraft의 여러 취약점을 수정하며, Folia도 지원한다.