공식 분야

드림핵은 점수 체계의 신뢰도 및 공정성 유지를 위해 분야 별로 문제 수가 적절히 확보된 분야에 대해서만 점수를 집계하고 있습니다. 이에 따라 아직 문제 수가 적절히 확보되지 않은 분야들에 대하여 공식적으로 점수를 집계하고 있지 않습니다. 현재 공식 분야로 선정된 분야는 다음과 같습니다.

  • 시스템해킹 (System Hacking, Pwnable)
  • 리버스 엔지니어링 (Reverse Engineering, Reversing)
  • 암호학 (Cryptography, Crypto)
  • 웹해킹 (Web Hacking, Web)

점수 시스템

워게임의 레이팅은 다음과 같은 기준으로 산정됩니다.

워게임 레이팅 = (공식 분야 점수들의 합)

워게임 레이팅 = (시스템 해킹 점수) + (리버스 엔지니어링 점수) + (암호학 점수) + (웹해킹 점수)

분야별 점수 = 문제 상수 * 가중치(0.0 ~ 1.0)의 합

가중치 = 0.95 ^ (난이도 순 정렬했을 때 순서)

문제의 난이도마다 산정되는 고유 점수는 다음과 같습니다. (100% 가중치 기준 획득할 수 있는 최대 점수입니다.)

  • UNRANKED: 0
  • 레벨 1: 20
  • 레벨 2: 40
  • 레벨 3: 75
  • 레벨 4: 130
  • 레벨 5: 200
  • 레벨 6: 300
  • 레벨 7: 435
  • 레벨 8: 610
  • 레벨 9: 830
  • 레벨 10: 1100

투표 시스템

문제 풀이자는 자신이 해결한 문제의 난이도를 투표할 수 있습니다. 정해진 레벨에 투표하기 위해서는 기준 점수를 만족해야 합니다.

  • 레벨 1: 500
  • 레벨 2: 500
  • 레벨 3: 500
  • 레벨 4: 500
  • 레벨 5: 500
  • 레벨 6: 1000
  • 레벨 7: 1000
  • 레벨 8: 1500
  • 레벨 9: 1500

문제의 난이도는 투표된 모든 난이도의 중앙값으로 선정되며, 짝수 개의 투표가 존재하는 경우 가장 가운데 두 투표의 산술평균을 난이도로 사용합니다.
예외로 레벨 10은 투표할 수 없으며, 드림핵 관리자가 가장 가치 있고 도전적인 문제를 임의로 선택하여 선정됩니다.

워게임 구조

Dreamhack 워게임은 만약 문제를 동작시키기 위해 별도의 서버를 필요로 하는 경우(예: 리모트 서버, 웹 서버) 해당 문제를 해결하기 위해 각 유저를 대상으로 별도의 가상 환경을 제공합니다. 해당 가상 환경을 공격하여 사용자는 Flag를 획득하고, 문제에 따른 점수를 획득합니다.

  • 사용자가 VM을 필요로 하는 문제를 도전하려고 할 때 새로운 VM 인스턴스가 생성되며 각 유저에게 독자적으로 제공됩니다.
    • 이를 통해 문제를 도전 중인 여러 사용자의 상태가 간섭되는 것을 방지합니다.
  • 워게임 서버의 임의의 포트가 배정되며, Specfile에 정의된 포트로 포워딩됩니다.
    • 포트는 TCP와 UDP를 지원합니다.
    • 각 문제는 여러 개의 포트를 Expose 할 수 있지만, 워게임 서버에서 순차적인 포트를 배정하지 않을 수 있습니다.
      예를 들어, Specfile에서 Expose 하기로 지정한 포트가 8080/tcp,8081/tcp 과 같은 연속된 포트여도, 시스템에서 배정하는 포트는 10254/tcp,10532/tcp 와 같이 연속적이지 않을 수 있습니다.