23.12.24 삭제예정/Unix 서버 취약점 점검

★진단수행사전준비

몽블86 2017. 6. 23. 12:45

♥ 진단 수행 준비


진단 수행 사전 준비는 취약점 진단을 위한 준비를 하는 단계로 진단을 수행하기 위해 필요한 정보등을 고객에게 받는다. 준비단계에서 어떤 정보를 주고 받는지에 대해 알아본다.


진단수행사전준비


● 진단대상확인- 진단 대상이 되는 웹 프로그램을 선정하고 우선 순위를 책정

● 수행내용설명- 진단 내용과 서비스 제공의 흐름, 진단을 할 때의 주의사항 등 진단 수행에 대한 내용을 설명

● 사전 청취- 진단 실시 형태와 진단 대상 환경 등 진단에 필요한 정보를 확인

● 환경 및 데이터 준비- 진단에 필요한 계정 정보나 각종 권한 등을 준비

● 현장 작업 환경준비- 현장에서 진단하는 경우 진단 대상 네트워크 연결하는 방법, 작업 장소 등에 대한 준비


진단 대상 확인

진단 대상 확인은 진단 대상이 어떤 것인지 명확히 하기 위한 절차다. 진단 대상이 하나의 도메인에 모두 포함되는 경우도 있지만, 상황에 따라서는 일부만을 진단하거나 여러 개의 도메인을 진단해야 하는 경우도 있다.


다음은 진단 대상을 명확히 하기 위한 방법이다.

● 미리 준비한 화면 전환 다이어그램과 사이트맵(Site Map) 설계서 등을 통한 확인

● 실제 웹사이트를 방문해 URL과 화면 전환 매개변수 확인

● 인터페이스 사양서를 통한 확인(Web API의 경우)


진단에 투입할 수 있는 인력과 시간이 충분히 있는 경우는 위의 방법을 모두 사용해 진단 대상을 정할수 있다. 하지만 시간과 인적 비용에 제한이 있다면, 진단 대상에 우선순위를 부여해 일부만을 진단대상으로 선택한다.


다음은 진단 대상에서 우선도를 높여야 하는 기능이다.


●기밀정보 등 중요도가 높은 정보 자산을 취급하는 기능

● 데이터베이스에 데이터를 읽고 쓰는 기능

● 인증 및 접근제어와 관련된 기능

● 외부로부터 입력 받은 문자열 또는 파일 등을 처리하는 기능


진단 대상을 명확히 했다면, '테스트 케이스'를 작성한다. 테스트 케이스는 진단 대상 웹 페이지의 URL과 액션 매개변수, 진단을 수행하는 절차 등을 기입한 것으로, 취약점 진단은 이 테스트를 바탕으로 수행하게 된다.


테스트 케이스 작성은 이 단계에서 만들어지는 경우도 있고, 이후 취약점 진단을 수행하는 단계에 만들어지는 경우도 있다.


Column- 견적 산출

취약점 진단을 서비스로 제공하는 경우에 필요한 것이 견적 산출이다. 서비스로 제공하지 않는 경우에도 어느 정도의 기간이 걸릴 것인지에 대한 견적이 필요한 경우이다.


견적서를 만들기 위한 기준과 산출방법은 진단 서비스를 제공하고 있는 회사나 취약점 진단자의 능력에 따라 다르다.


● 페이지 기반

진단 대상이 되는 웹 페이지의 페이지 수를 바탕으로 산출

● 행위 기반

화면 이동이나 기능 수 등 특정 액션을 바탕으로 산출

● 요청기반

서버로 보내는 매개변수 등을 바탕으로 산출

● 기타

사이트수, 도메인수, 기능 수(검색 기능과 로그인 기능 등 기능별로 가격 책정)

수행내용설명

수행 내용 설명은 진단을 수행하는데 있어 진단의 개요 및 진단 항목, 진단 업무 흐름 등을 고객에게 이해시키기 위해 실행한다.

수행 내용 설명에서 설명해야 할 항목은 다음과 같다.
● 웹 프로그램 취약점 진단 개요
웹 프로그램 취약점 진단의 목적과 절차에 이해

● 진단항목
진단에서 수행하는 항목, 발견 가능한 취약점에 대해

● 진단 업무 흐름
진단 사전 준비와 진단 실시, 진단 후 대응 등의 흐름에 대해

● 제공하는 서비스 내용
보고서나 설명회, 재진단과 같은 서비스 내용에 대해

●진단 시 주의사항
진단 수행 시 발생 할 수 있는 사고나 시스템 영향에 대해

사전청취

사전청취는 진단을 수행하는데 있어 진단 대상에 대한 개요와 진단 수행 행태, 금지사항 등 해당 사이트를 진단 할때 필요한 내용을 사전에 청취해 취약점 진단을 순조롭고 안정적으로 수행하기 위해 실시한다.

다음은 진단 수행 전에 청취해야 할 항목이다.

진단대상과 관련된 사항

● 웹 사이트,, 웹프로그램, 서비스 개요

● 진단 대상 사이트의 이용 용도

PC,스마트폰,스마트폰 앱 연동 등

● 시스템 및 네트워크 구성

● 진단 대상 플랫폼

● 온오프레미스, 호스팅환경, 클라우드 서비스 이용 여부 등

● 진단 대상 환경 정보

OS., 사용언어, 프레임워크, DBMS, 패키지 제품 사용 여부 등

● 웹 프로그램과 관련된 권한

● 웹 프로그램 인증방식

폼 인증, 기본 인증, 다이제스트 인증, 클라이언트 인증 등

● 진단 대상 범위

도메인 기능, 권한 등

● 테스트 환경, 스테이징 환경 업무

● 진단 대상 사전 확인을 위한 접속 기능 여부

● 진단 대상에 접속하기 위한 정보

● URL IP주소, 도메인 기기명, 접근에 필요한 자격(Credential) 정보 등

진단 수행과 관련된 사항

● 진단 수행 형태
현장 진단, 원격 진단 등
● 진단 수행 일정
수행일시, 기간, 시간(야간 또는 휴일 진단 여부)
● 연락처 정보
진단 개시 및 종료 시,  사고 발생시 연락처 및 연락방법
● 연락조건
진단과 관련된 이슈 발생시 또는 긴급 취약점 발생 시 연락여부
● 금지사항 확인
수행하지 말아야 할 취약점 테스트, 접근 또는 취약점 테스트의 범위에서 빼야 할 기능, 진단 수행시 특정 시간을 제외 해야 하는지 여부 등

환경 및 데이터 준비

진단을 수행하는데 필요한 환경 설정과 계정 등의 정보는 미리 준비해야 한다. 따라서 필요한 사항은 미리 고객에게 부탁해 받아야 한다.

필요한 내용은 다음과 같다.

● 진단을 수행하는 PC의 IP를 사전에 등록해 원활하게 접속이 가능하도록 함

● 진단 대상에 접속하기 위한 정보획득- 진단용 계정 정보, 테스트용 신용카드 정보, 접속에 필요한 물리 장비, 클라이언트 인증서, 브라우저 에이전트 정보 ,진단용으로 준비한 페이지 정보, 특정 매개변수 정보 등

● 보안 장비나 관제 서비스 등에 진단자 IP를 예외처리

IDSIPSWAF 등에서 침해사고로 인식해 차단을 하는 경우 정상적인 진단이 불가능할 수 있음

● 플랫폼 관리자에게 취약점 진단 실시 내용 전달

특히 고객이 소유권을 갖지 않은 클라우드 서비스 등에서는 주의해야 함

● 테스트 환경 또는 스테이징 환경이 있는지 여부 파악

진단 수행으로 인한 장애가 발생할 가능성이 있음

테스트환경이나 스테이징환경에서 수행하는 경우 실제 운영 환경과 동일한 내용이 있는지 여부를 확인해야 함

● 진단 수행 전 데이터 백업요청

진단 수행으로 인해 문제가 발생하는 경우 복구를 하기 위한 목적

● 진단 수행 전 테스트를 위한 더미 데이터입력 요청

웹 프로그램만으로는 프로그램이 어떤 동작을 하는지 정확히 판단하는 것이 어렵기 때문에 데이터가 어떤 방식으로 가공되는지 확인해야 함(쇼핑 사이트의 상품 목록, 게시판의 목록 등)

● 사양서,, 화면 설계서 등의 문서 제공

사양서나 화면 설계서가 있다면 올바른 동작과 취약점을 쉽게 판단할 수 있음

● Web API의 경우 인터페이스 사양서 등의 문서 제공 요청

정상적으로 처리된 매개변수나 응답결과, URL등이 필요함

현장 작업 환경준비

진단 수행자가 평소에 수행하는 자사의 환경이나 본인의 PC가 아닌 고객의 네트워크 환경, 제공받은 PC에서 진단을 수행하는 것을 현장 진단이라고 한다..


현장 진단의 경우 고객의 네트워크 환경에 접속해야 하기 때문에 미리 준비해야 할 사항이 있다

다음은 현장 작업 환경 준비를 위해 사전에 준비해야 할 항목이다.

● 진단을 수행할 장비(PC)에 할당될 IP주소 등의 정보

● 진단 대상 네트워크 접속방법

LAN 포트 확보, 네트워크 케이블, Wi-Fi 규격 및 접속정보, VPN 사용여부 등

●전원 확보(노트북 등을 지참하는 경우)

● 진단을 수행할 장소의 정보

위치 및 이동수단,, 출입 신청방법, 출입 담당자 정보 등

● 제공받은 PC에 설치 가능한 도구 목록(제공받은 PC를 사용하는 경우)

금지사항 및 면책조항

금지사항
취약점 진단은 정해진 기준에 따라 진단을 수행해야 한다. 진단을 할 때 금지된 사항에 대해서는 반드시 지켜야 한다.
다음은 진단을 할 때 금지되는 항목이다.
● 정해진 진단 대상 외의 대상에 진단 수행
어떤 문제가 발생할지 모르기 때문에 취약점이 있다고 판단해도 진단을 수행하면 안된다.
● 정해진 진단 시간 외 진단 수행
문제가 발생할 경우 담당자의 부재로 적절하게 대응하지 못할 수 있다.
● 진단 결과를 허가없이 공개
취약점 진단 결과는 수정되지 않은 취약점에 대한 공격 방법이 포함돼 있다.
● 기타 고객으로부터 지시받은 금지사항 준수

면책조항

취약점 진단 서비스 계약을 체결하는 경우 면책조항을 결정하는 것이 일반적이다. 면책조항이라는 것은 불의의 사고가 발생했을때 진단 회사가 배상 책임을 지지 않기 위한 기재사항이다.


서비스 제공자에게 있어서 위험 회피나 문제해결에 도움이 되므로 반드시 계약서나 서비스 이용 약관에 기재해야 한다. 단, 법률을 위반하거나 법률 행위 판단의 기준이 되는 사회적 타당성에 반하는 내용은 면책의 대상이 되지 않는다.


다음은 진단 면책조항에 주로 포함되는 항목이다.

● 존재하는 모든 취약점을 발견하는 것은 아니다.

● 보고서에 기입한 권장 조치는 그 결과를 보장하지 않는다.

● 취약점 진단 실시 후 발견된 취약점에 대해서는 책임을 지지 않는다..

● 인터넷 서비스 공급자 또는 네트워크 사정에 따라 진단이 중단될수 있다.

● 고객에게 손해가 발생하는 경우 책임을 지지 않거나 배상액의 한도를 서비스 대금으로 총액 이하로 한다.

● 기타 일반적인 비지니스 계약서에 체결하는 면책조항