서울아이티고등학교 해킹 방어대회

해킹 방어대회를 직접 운영하며, 느낀 점과 부족한 점

본인이 해킹 방어대회를 직접 운영하며, 느낀 점과 부족한 점 및 개발을 하면서 배운 점을 기록한 기술 문서입니다. 한창 웹 개발을 배울 때 개발하였습니다. 많이 부족한 점도 있고 틀린 부분은 편하게 알려주시면 수정하도록 하겠습니다.

사이트 바로가기 →

소개

제1회 서울아이티고등학교 해킹 방어대회는 17년도 09월 22일~23일 까지 총 이틀간 진행되었습니다. 저는 2017년도 3월달에 해당 고등학교로 전학을 온뒤, 마음이 맡는 친구들과 동아리를 개설 하였고 힘을 모아 대회를 운영 하게 되었습니다. 본인은 해킹 방어대회의 웹 개발을 맡아 개발 하였습니다. 웹의 전반적인 디자인은 부트스트랩을 이용 하였습니다. 문제는 총 열일곱 문제 출제 하였고, 각 분야마다 다른 학생들이 담당하여 출제 하였습니다.

사용한 기술

핵심적인 기술은 아래 세가지가 대표적으로 있습니다.

서버는 PHP 를 이용해 구축 하였고, 유저 데이터관리 및 모든 서버 로그 관리는 MySQL 를 이용 하였습니다. 사용자가 입력받은 flag 를 처리하는 부분은 ajax 를 사용 하였습니다. 웹 프론트엔드 프레임워크는 부트스트랩을 이용하였고, 페이지 로딩(refresh)시 상단 로딩바는 pacejs를 사용 했습니다.

고비

  1. flag를 입력 받으면 정답 유/무 처리와 동시에 스코어(점수) 지급 및 문제 내 등수 체크 및 추가점수 지급 (아래 이미지 참고)
    • 예를 들어 1번 문제를 첫번째로 풀었으면 추가점수 4점을, 두번째는 추가점수 3점, 첫번째 부터 네번째 까지 추가점수 지급
    • 첫번째에 값이 있으면 두번째로, 두번째에서 세번째로 넘어갔을 때 값이 없으면 세번째에 이용자 이름이 업데이트

고비1번 이미지

  1. flag의 모든 입력된 로그들을 쉽게 보기 위해 keyword 별로 나누었음.

대회 일기장

대회 시작은 09월 22일 오전 9시에 진행되었습니다. 대회 시작과 동시에 문제들이 공개되었습니다. ‘한세 사이버 고등학교’ 학생분들이 맨 처음으로 문제를 풀었습니다. 이후 연달아 ‘한세 사이버 고등학교’ 학생분들이 문제를 풀어주셨습니다. 문제 공개와 동시에 많은 학생분이 참가를 해 저희가 힘을 모아 낸 문제를 풀었다는 거에 대해 참으로 뿌듯했습니다. 이틀간 모든 문제를 푼 학생들은 총 다섯 명이었습니다. 그 중 우리 학교 학생은 전체 순위 4등으로 올 클리어를 했습니다. 현재 사이트 가입자는 200명을 돌파하였으며 대회 기간 동안 한 문제라도 푼 학생들은 100여 명이 넘습니다. 대회 종료 후에도 문제들을 공개 (몇 개는 비공개)하여 대회 기간 내에 못 풀어본 문제를 풀어볼 수 있도록 하였습니다. 랭킹 1위 ‘대덕소프트웨어마이스터고등학교’ 학생과 2등 Safflower님 ‘한국교통대학교’ 에게는 정보보안 책을 증정하였습니다. ‘한세 사이버 고등학교’ 학생들이 38명 가입으로 저희 해킹 방어대회 학교 중 많은 인원을 기록 하였습니다.

느낀점

이틀 동안 학교 친구들과 해킹 방어대회를 운영한다는 것이 정말 뜻깊었다. 이 대회 웹사이트를 구축하면서 몰랐던 것을 많이 배운 것 같아 기분이 좋다.

부족한점

웹 개발에 앞서 코딩을 나만 알아볼 수 있게 한 것 같다. 학교 친구들과 같이 운영을 하는 만큼 잘 알아볼 수 있게 개발을 해야 했는데….