보안 / 개발 챌린저가 목표

캐슬(CASTLE)을 이용한 웹 방화벽 구축 본문

IT Security/Class_Do it

캐슬(CASTLE)을 이용한 웹 방화벽 구축

햄미은서 2020. 9. 9. 20:56

웹 방화벽(WAF) 이란

  • 웹 어플리케이션 보안에 특화되어 개발된 별도 솔루션이다.
  • SQL Injection, XSS 공격 등과 같은 웹 공격을 탐지하고 차단하는 역할을 수행한다.
  • 직접적인 웹 공격 외에도 정보유출방지, 부정 로그인 방지, 웹 사이트 위변조 방지 등의 활용이 가능하다.

캐슬(CASTLE) 이란

  • 한국인터넷진흥원(KISA)에서 홈페이지 해킹 사고 예방을 위한 서비스 제공의 목적으로 개발했다.
  • 웹 서버에 설치되어 홈페이지 취약점을 이용한 해킹 공격을 차단하는 웹 방화벽 기능을 제공한다.
  • asp, jsp, php, spring framework 등의 웹 개발 환경에서 구성이 가능하다.
  • https://www.krecrt.or.kr/download/whistlCastle/castle.do 에서 신청을 통해 다운로드가 가능하다.

캐슬 구축 환경

 

웹 서비스   wordpress (php)

IP   192.168.0.142(NAT)


워드 프레스를 켜 놓으면, Host PC에서 192.168.0.142 에 접속이 가능하다.

 

워드 프레스에 "castlephp" 파일을 drag & drop!

 

 

$ cd ~/Desktop
~/Desktop$ sudo mv -f castlephp /var/www/html/wordpress

명령어를 통하여 웹 브라우저 루트 경로로 이동한다.

   * ~본인에게 들어가는 것이다!

 

 

 

 

Host PC에서 웹 브라우저를 이용하여

http://192.168.0.142/castlephp/install.php

에 접속하여 동의하고 다음 단계로 넘어간다.

 

 

 

권한 설정을 위해 Ubuntu 콘솔 창에서 

 

위의 사진 명령어를 통하여 권한을 변경시킨다.

 

권한을 변경시킨 후, 다시 Host PC의 웹 브라우저로 돌아와서 F5(새로고침)를 누르면 화면이 다음과 같이 바뀐다.

 

다음 단계로 를 클릭하여 넘어간다.

 

 

계정을 생성하고 로그 파일 이름을 살짝 변경해준다.

   * 로그 파일 이름을 변경하지 않으면 오류나거나 안넘어감!

 

 

▶ 웹 방화벽 적용

  • 콘솔에서 웹 방화벽을 적용하고자 하는 페이지에 아래 내용을 추가한다.
  • Wordpress의 경우 대부분의 액션 수행시 functions.php를 참고하므로 대부분의 행동에 액션을 부여하기 위하여 해당 functions.php에 내용을 추가한다.

   * vi 편집기는 가독성이 조금 떨어져서 gedit을 이용하여 편집!

$ sudo gedit /var/www/html/wordpress/wp-includes/functions.php

파란색 네모칸 부분을 추가해주면 된다.

 

 

다시 Host PC에서 관리자 권한으로 로그인을 한 후, 기본설정 메뉴에 들어간다.

 

 

집행모드 - 적용모드 / 알림방식 - 메시지모드

다음과 같이 설정해 준 후, Confirm을 클릭한다.

   * Confirm 위치 확인 후 잘 눌러주기!

   * 한 번에 적용이 안될 수 있으니 여러 번 시도해주기!

 

 

검색 창에 정책에 해당하는 <script> 입력하여 검색한다.

 

 

SORRY 메시지와 함께 웹 방화벽 차단이 적용된 것을 확인할 수 있다.

 

 

정책설정에서 어떤 것들이 방화벽이 적용되는지 확인 가능하다.

Comments