heron

발단

소프트웨어공학과 졸업 작품의 일부이다.

시연을 위한 두 개의 웹사이트를 개발하는 프로젝트이다.

  1. 전시 방문자의 모의해킹 체험용 웹사이트. (VulnerablePage)
  2. CLEAR 시스템의 작동을 시각화 하는, 실시간 로그 검사 페이지. (AlertPage)

본론

프로젝트 개요

CLEAR 시스템은 호스트 시스템의 웹 로그를 복사하여 동작한다. 이때 전시 환경에서 호스트 시스템이 실제로 서비스 할 시험용 웹페이지가, 바로 본 문서에서 설명하는 프로젝트이다.

본 웹사이트는 모바일 환경에 최적화 되어 있으며, 사용자가 로그인에 성공하면 사탕을 준다. 전시 참여자는 자유롭게 본 웹사이트에 접속하여 모의해킹을 체험해 볼 수 있는 것이다.

로그인 방법은 두 가지이다.

  1. 상위 디렉터리에 숨겨진 .env 파일에 접근하여 평문으로 기록된 ID, PW를 알아내어 로그인 하는 것.
  2. 이메일 입력란에 SQL Injection을 시도하여, 사용자 검증을 우회하는 것.

또한 본 웹사이트는 외부 IP로부터의 모든 접근이 차단되어 있는 호스트 시스템에서 동작하며, 지정된 WIFI에 연결해서만 접속할 수 있다. 전시에 사용된 가이드 문서는 다음과 같다.

모의해킹 사이트 접속 가이드 문서

한편, 실시간 감지 페이지는 매우 단순하다. 새로운 로그가 생성될 때 마다, 그것을 CLEAR 시스템이 사용하는 API를 호출하는 것으로 검사한다. 그리고 검사 결과를 화면에 출력한다.


개발 범위

두 웹사이트의 주요 기능은 다음과 같다.

  1. [VulnerablePage] 모의해킹 웹사이트. (상단 이미지의 QR로 접속하는, 호스트 시스템의 서비스 대상)
    • 메인페이지: 몇 가지 해킹 기법을 소개한다.
    • 검색 페이지: 해킹 힌트를 제공하는, 이스케이프처리 되지 않은 검색 창이 있는 페이지. (존재하는 사용자 목록을, SQL Injection으로 획득 가능.)
    • 로그인 페이지: 취약점이 존재하는 로그인 페이지. (실제로 DB에 연결되어 있지는 않다. 미리 지정된 쿼리를 입력하면, 로그인에 성공한 것으로 취급하는 모조 시스템이다. 전시회 참관자는 모두 1~3학년이므로, 메인페이지의 힌트 없이는 모의해킹 수행이 불가능하다.)
    • 메인페이지의 상위 디렉터리에 숨겨진 .env 파일과, 그곳에 접근 가능하도록 준비된 취약점.
  2. [AlertPage]실시간 추가 로그에 대한, 정규식 검사 페이지.
    • 메인페이지: 매 초마다 DB를 읽어와서, 새로운 로그와 검사 결과를 화면에 띄운다.
    • 특정한 로그 파일을 POST로 전달받아 검사하는 API. 검사 이후 DB에 기록한다.

역할과 기여

본인이 전부 개발했다.

간단한 구조의 폐쇄망 구축, 취약점이 있는 웹사이트, 실시간 감지 페이지.


기술 스택


GitHub

LogAnalyzer

실시간 감지 페이지는 위의 CLEAR 시스템 내부에 포함되어 있다. (경로: /backend/alertDisplayPage/)

모의해킹 체험용 페이지는 여기서 다운로드 가능하다.


시스템 이미지

01-AlertPage.png 02-AlertPage(2).png 03-VulnerablePage.png 04-VulnerablePage(2).png 05-VulnerablePage(3).png 06-VulnerablePage(4).png 07-VulnerablePage(5).png 08-VulnerablePage(6).png

개발 기간

작업 시작일: 2025-04-29

작업 종료일: 2025-05-22 (졸업전시회 당일)


소감

다른 문서 "CLEAR (Comprehensive Log Evaluation And Review) (2024-12-20 - 2025-05-22)"에 한번에 기술하겠다.


2025-06-12 기록