Chapter 14 콘텐츠 관리 시스템 보안
01 콘텐츠 관리 시스템 02 콘텐츠 관리 시스템의 취약점과 보안 방안
콘텐츠 관리 시스템을 파악한다. 콘텐츠 관리 시스템의 취약점과 보안 방안을 학습한다.
1.1 콘텐츠 관리 시스템의 종류 콘텐츠 관리 시스템의 종류 현재 사용되고 있는 콘텐츠 관리 시스템 목록을 확인할 수 있는 페이지 https://en.wikipedia.org/wiki/List_of_content_management_systems
1.1 콘텐츠 관리 시스템의 종류 워드프레스(WordPress) 콘텐츠 관리 시스템 분야에서 독보적인 1위 미국 뉴욕타임스, 포브스, 페이스북 블로그 등이 워드프레스를 활용
1.1 콘텐츠 관리 시스템의 종류 줌라(Joomla) PHP로 작성된 오픈 소스 콘텐츠 관리 시스템 MySQL 데이터베이스를 이용하여 콘텐츠를 작성, 관리, 보관하는 기능을 제공 다른 콘텐츠 관리 시스템에 비해 뛰어난 확장 모듈이 많은 편 영국의 국가범죄수사국 홈페이지(http://www.nationalcrimeagency.gov.uk/)가 줌라를 활용하여 만들어짐.
1.1 콘텐츠 관리 시스템의 종류 드루팔(Drupal) 워드프레스나 줌라에 비해 대규모 홈페이지를 구축하는 데 유리 트위터 블로그(https://blog.twitter.com/), 하버드대학교의 ‘ The Graduate School of Arts and Sciences’ 홈페이지(https://gsas. harvard.edu/)는 드루팔로 만들어짐.
1.1 콘텐츠 관리 시스템의 종류 APM 설치 http://www.wampserver.com/en/ 에 접속하여 WAMPSERVER 32 BITS(X86) 파 일을 내려받음.
1.1 콘텐츠 관리 시스템의 종류 APM 설치 라이선스 동의를 요청하는 대화상자가 나타나면 ‘I accept the agreement’에 체크 표시 후 <Next>를 클릭하여 설치를 계속 진행 설치 준비가 완료되었다는 화면이 나타나면 <Install>을 클릭
1.1 콘텐츠 관리 시스템의 종류 APM 설치 Wampserver에서 사용할 브라우저를 선택하라는 화면이 뜨면 인터넷 익스플 로러를 사용할 것이므로 <아니오> 클릭
1.1 콘텐츠 관리 시스템의 종류 APM 설치 [시작]-[Wampserver32]를 실행하면 윈도우 화면 오른쪽 하단의 트레이바에 실 행된 것을 확인 해당 아이콘을 마우스 오른쪽 버튼을 눌러 [Apache]-[Service administration]- [Install Service]를 선택하여 설치하고 [Start/Resume]을 클릭하여 서비스 실행
1.1 콘텐츠 관리 시스템의 종류 APM 설치 아파치가 성공적으로 구동되면 아파치 서비스(80번 포트)와 MySQL 서비스 (3306번 포트)가 성공적으로 실행됨.
1.1 콘텐츠 관리 시스템의 종류 APM 설치 브라우저를 실행하여 주소창에 ‘localhost’를 입력하면 웹 서버가 구동
1.1 콘텐츠 관리 시스템의 종류 MySQL 데이터베이스 만들기 오른쪽 하단의 실행 아이콘에서 [WAMPServer]-[phpMyAdmin]을 선택 ID에는 ‘root’를 입력하고 Password는 입력하지 않은 채 [Enter]를 눌러 로그인
1.1 콘텐츠 관리 시스템의 종류 MySQL 데이터베이스 만들기 [데이터베이스] 탭을 선택한 후 ‘새 데이터베이스 만들기’ 항목에 ‘wordpress’를 입력하고 <만들기>를 클릭하여 데이터베이스를 생성
1.1 콘텐츠 관리 시스템의 종류 워드프레스 설치 워드 프레스 아카이브 사이트(https://wordpress.org/download/release-archive/ 에 접속하여 4.5버전의 zip 파일을 내려받음. 압축을 풀고 C:\wamp\www\ 폴더로 복사한 후 폴더 이름을 wordpress로 설정
1.1 콘텐츠 관리 시스템의 종류 워드프레스 설치 워드프레스를 복사한 후 http://localhost/wordpress/에 접속한 후 설치할 언어 로 ‘한국어’를 선택하고 <Continue>를 클릭
1.1 콘텐츠 관리 시스템의 종류 워드프레스 설치 이전 단계에서 wordpress 데이터베이스를 생성했기 때문에 <Let’s go!>를 클 릭하여 설치를 계속 진행
1.1 콘텐츠 관리 시스템의 종류 워드프레스 설치 앞에서 생성한 데이터베이스 이름 ‘wordpress’와 사용자명 ‘root’를 입력 후 <저장하기> 클릭
1.1 콘텐츠 관리 시스템의 종류 워드프레스 설치 사이트 제목과 사용자명, 비밀번호(기본적으로 생성), 이메일 주소를 입력하고 <워드프레스 설치하기>를 클릭
1.1 콘텐츠 관리 시스템의 종류 워드프레스 설치 앞에서 입력한 아이디와 패스워드로 로그인을 하면 다음과 같이 워드프레스가 성공적으로 설치된 것을 확인할 수 있음.
2.1 콘텐츠 관리 시스템의 취약점 워드프레스의 취약점 익스플로잇이 올라와 있는 exploit-db 사이트에서 ‘wordpress’를 검색하면 1000개가 넘은 공격 코드가 공개되어 있음. 대부분의 공격 코드는 보안이 제대로 설계되지 않은 플러그인에 의해 발생
2.1 콘텐츠 관리 시스템의 취약점 Apptha Slider Gallery v1.0에서 발견한 취약점 2017년 3월 9일에 Ihsan Sencan이 보고 워드프레스가 설치된 시스템에서 임의의 파일을 내려받을 수 있음.
2.1 콘텐츠 관리 시스템의 취약점 SQL 인젝션 취약점이 존재하는 플러그인 공격 코드 albid 변숫값에 union을 이용한 SQL 인젝션 공격으로 관리자의 아이디와 암호 화된 패스워드를 얻을 수 있음.
2.1 콘텐츠 관리 시스템의 취약점 CSRF/XSS 취약점 공격 코드 dxw가 2017년 4월 7일에 공개 할 수 있음. 크로스 사이트 스크립팅을 통해 다른 사용자의 쿠키를 훔치거나 악의적인 스 크립트를 삽입할 수 있음.
2.1 콘텐츠 관리 시스템의 취약점 줄라의 취약점 대부분 SQL 인젝션 취약점
2.1 콘텐츠 관리 시스템의 취약점 드루팔의 취약점 2017년 4월을 기준으로 공개된 취약점이 31개에 불과(사용자 수가 적기 때문)
2.1 콘텐츠 관리 시스템의 취약점 드루팔 모듈 RESTWS7.x 버전에서 발생하는 원격 코드 실행 공격 코드 메타스플로잇 모듈에 포함되어 있음. 심각도는 매우 높음
2.1 콘텐츠 관리 시스템의 취약점 취약한 워드프레스 플러그인 설치 https://www.exploit-db.com/exploits/40870/ 에서 ‘Vulnerable App’ 항목에 있 는 아이콘을 클릭하여 zip 파일을 내려받음.
2.1 콘텐츠 관리 시스템의 취약점 취약한 워드프레스 플러그인 설치 압축을 풀어 ‘simple-personal-message’ 폴더를 확인 이 폴더를 plug-in 디렉터리에 복사 C:\wamp\www\wordpress\wp-content\plugins\simple-personalmessage
2.1 콘텐츠 관리 시스템의 취약점 취약한 워드프레스 플러그인 설치 워드프레스 관리자 페이지에 접속하여 [플러그인]-[설치된 플러그인]을 선택하 고 ‘Simple Personal Message’ 항목 아래의 <활성화>를 클릭
2.1 콘텐츠 관리 시스템의 취약점 취약점을 이용한 공격 http://localhost/wordpress/wp-login.php에 접속하여 일반 사용자로 로그인
2.1 콘텐츠 관리 시스템의 취약점 취약점을 이용한 공격 [SPM Message]-[SPM Compose]를 클릭하고 메시지를 작성 [SPM Message]-[SPM Outbox]를 클릭하면 발송한 메시지 목록과 각 메시지의 내용을 볼 수 있음.
2.1 콘텐츠 관리 시스템의 취약점 취약점을 이용한 공격 message를 받는 SQL 구문에 대한 필터링이 없기 때문에 공격자는 다양한 SQL 문자열을 입력하여 SQL 인젝션 공격 수행 C:\wamp\www\wordpress\wp-content\plugins\simple-personal-message\admin\partials\ simple-personal-message-admin-view.php
2.1 콘텐츠 관리 시스템의 취약점 SQL 인젝션 공격 수행 공격에 성공하면 wp_users 테이블의 사용자 이름, 암호화된 패스워드가 나타남. http://localhost/wordpress/wp-admin/admin.php?page=simple-personal-messageoutbox&action=view&message=0%20UNION%20SELECT%201,2,user_login,4,user_ pass,6,7,8,9,10,11%20FROM%20wp_users%20WHERE%20ID=1
2.2 콘텐츠 관리 시스템의 보안 방안 워드프레스 보안 패치 및 업데이트 적용 정보 https://wordpress.org/news/category/security/ 에서 확인
2.2 콘텐츠 관리 시스템의 보안 방안 줌마 보안 패치 및 업데이트 적용 정보 https://developer.joomla.org/security-centre.html 에서 확인
2.2 콘텐츠 관리 시스템의 보안 방안 드루팔 보안 패치 및 업데이트 적용 정보 https://www.drupal.org/security 에서 확인
2.2 콘텐츠 관리 시스템의 보안 방안 검증된 플러그인 및 최신 패치 사용 주기적인 백업 콘텐츠 관리 시스템을 사용할 때는 해당 사이트에서 공식적으로 지원하는 플 러그인을 사용 잘 알려지지 않은 플러그인을 사용할 때는 최신 패치가 된 버전을 사용 주기적인 백업 백업을 해두면 설령 불가항력적인 침해를 당하더라도 복구할 수 있는 여지가 있기 때문