CKEditor 4 사용 중 발견한 보안 취약점과 이를 해결하기 위한 과정을 설명하는 글이다.
WYSIWYG 에디터인 CKEditor에서 소스 편집 기능을 활용할 때 보안 규칙이 적용되지 않는 문제를 발견하고, 이를 해결하기 위해 여러 방법을 시도해 보았다.
HCL AppScan Source를 활용해 보안 취약점을 찾아내는 과정, Eclipse IDE에 플러그인을 설치하는 방법, 그리고 진단 결과까지 자세히 기술하였다.
이 글을 통해 보안 취약점 테스트와 이를 해결하는 방법에 대한 이해를 돕고자 한다.
✨시작하며
현재 내가 진행 중인 프로젝트에서는 WYSIWYG 에디터로 CKEditor 4를 사용하고 있다.
CKEditor에서는 소스 편집 기능을 제공한다.
일반적으로 사용자가 에디터에 글을 작성 시 보안 규칙에 위배될 경우 그에 따라 처리를 하도록 설정했다.
문제는 소스 편집 기능을 사용해 글을 작성 시 보안 규칙에 위배될 경우 처리가 되지 않았다.

예를 들어 동일한 문장을 소스 편집 기능 유무에 따라 비교해 본다면 아래처럼 적용되는 것을 확인할 수 있다.


에디터에 작성한 코드는 자동으로 엔티티 코드로 변환되나 소스 편집 기능에서 작성한 코드는 변환되지 않는다.
그래서 이를 어떻게 수정해야 하나 고민을 해봤는데, 태그 자체를 치환해 주기에는 에디터에서 적용한 스타일이 정상적으로 적용되지 않을 것 같아 에디터에서 소스 편집 기능을 사용하지 못하도록 비활성화하려고 했다.
그렇지만 이것도 역시 혼자서 진행하는 개인 프로젝트가 아니기에.. 해당 취약점에 대해 알렸으나 소스 코드를 막지는 말자고 얘기가 나왔다.
보안에 대한 지식이 얄팍하지만 쿠키에 대한 정보가 타인에게 넘어가지 않도록 유의해야 할 것 같다고 생각이 들었으나 우선은 수용하고 이외의 취약점 조사에 나섰다.
🤔그래서 어떻게 취약점을 찾아낼 건데?
바로 이게 문제였다.
분명 테스트 코드로도 한계가 있을 텐데, 그럼 취약점을 어떻게 조사해야 하지?
HCL AppScan Source
그렇게 조사 끝에 찾아낸 것이 HCL AppScan Source다.
구글링을 통해서도 정보가 크게 많지 않아 공식 문서를 위주로 탐색했다.
사이트가 거미줄 구조처럼 이것저것 복잡하고 많아서 찾기 힘들었는데, 우선은 체험판을 통해 해당 프로그램을 이용하기로 했다.
둘의 정확한 차이는 잘 모르겠으나, 아마 모든 기능 사용을 위해서는 Cloud 쪽에서 체험을 진행하면 될 것 같다.
아이디 생성하기
체험을 진행하기 위해 free trial 버튼을 누르면 정보를 입력하도록 폼이 나타난다!
여기서 회사와 직업명은 대강 적고, 핸드폰 번호는 필수 항목이 아니니 불필요하다면 넘기면 된다.

이후 위에서 입력한 이메일로 본인인증을 위한 메일이 발송된다.

이메일을 받고 Activate를 누르면 아래처럼 HCL 소프트웨어 ID 만들기라는 폼이 있는 사이트가 나온다.
정보를 입력하고 ID를 만들어주면 된다.

새 애플리케이션 작성하기
성공적으로 가입을 완료했다면 AppScan on Cloud에서 로그인을 진행한 다음 메인 화면에서, 새 애플리케이션 작성을 누른 후 애플리케이션 이름을 작성한다.
원래는 AppScan Source for Analysis라는 프로그램이 따로 존재하는 것 같아 해당 프로그램을 다운로드하여 사용하려고 했으나, 어디서 어떻게 파일을 설치하는지 찾을 수 없어 어쩔 수 없이 Eclipse IDE에 플러그인을 설치하는 방법을 선택했다.

AppScan on Cloud Plugin for Eclipse IDE
Eclipse에서 Help > Install New Software...를 들어간 후, 아래의 주소를 Work with 부분에 붙여 넣는다.
https://asocstorage.blob.core.windows.net/eclipse-plugins


이후 Eclipse에서 보기 > 보안 분석 > Application Issues를 눌러준다.


창이 나타나면 다음으로는 AppScan on Cloud에서 API 키를 생성해 주면 된다.
이미 인증을 완료해 아래와 같이 키가 나타나지만, 처음에는 생성 버튼만 누르면 된다.
이후 나타나는 키 ID와 PW를 기록해 두고, 이전 Eclipse 화면에 ID와 PW를 입력해 주면 된다.

ID와 PW를 입력하면 이전에 생성했던 애플리케이션이 나온다.
확인을 눌러주고, 기다려주면 된다.
과정은 우측 하단의 Progress 버튼을 통해 확인하거나, Progress View를 실행해서 보면 된다.

모든 실행이 완료되면 Progress Bar는 아래와 같이 변경되며, My Scans에서 상태를 확인 가능하다.

Eclipse에서는 스캔이 모두 완료되기 전까지 상태가 실행 중... 이라고만 표시되는 것 같으니, 자세한 내용은 AppScan on Cloud의 애플리케이션에 들어가 확인하면 된다.


Eclipse 환경에서 HCL AppScan on Cloud Plugin 설치와 공식 문서에 대한 내용

진단 결과
나의 경우에는 약 2시간에 걸쳐 진단이 완료되었다.
결과 확인을 위해서는 위 사진에 보이는 것처럼 AppScan on Cloud의 애플리케이션에 들어가면 된다.