반응형

정보보안기사 필기 독학 / 애플리케이션 보안 / 5. 웹 서비스 공격

 

CSRF(Cross Cite Request Forgery, 크로스사이트 요청변조)

로그인한 피해자의 브라우저가 취약한 웹 어플리케이션에 요청을 보내도록 하여 피해자 대신 선택된 작동을 수행하도록 합니다. 만약 공격을 포함하는 태그가 취약한 어플리케이션에 입력된다면 로그인 한 사용자를 찾게 될 가능성은 증가할 것이며 저장되거나 반사된 XSS 취약점의 위험 증가와 유사합니다. 

특정 소수가 아닌 불특정 다수를 대상으로 하고, 원래 의도된 기능이 아닌, 데이터 변경, 삭제등이 가능해집니다. 또한 XSS에서 진보한 공격이라고 보는 의견이 있습니다.  

 

XSS(Cross Site Scripting, 크로스사이트 스크립팅) 공격 

콘텐츠르 암호화나 검증하는 절차 없이 사용자가 제공하는 데이터를 어플리케이션에서 받아들이거나 웹 브라우저로 보낼 때마다 발생합니다. 공격자는 희생자의 브라우저에 스크립트를 실행할 수 있게 허용함으로써 사용자의 세션을 가로채거나 웹 사이트 변조, 악의적인 콘텐츠 삽입, 피싱 공격 행위를 할 수 있습니다. 

 

Injection (인젝션)

SQL, LDAP, XPath, HTML, OS 명령어 인젝션 등 여러 종류가 있습니다. 사용자가 입력한 데이터가 명령어나 질의어의 일부로써 인터프리터에 보내질 때 이루어집니다. 공격자들은 특별히 제작된 데이터를 입력하여 인터프리터를 속여 의도되지 않은 명령어들을 실행하도록 합니다. 

 

악성 파일 실행(원격지 파일 명령 실행)

이 공격은 PHP에서 특히 많이 사용되는 취약점입니다. 스트림이나 파일 함수를 사용하는 경우 사용자 입력이 파일 이름에 영향을 미치지 않도록 하기 위해 매우 주의해야 합니다. PHP는 특히 어떠한 파일이나 API를 토대로 한 스트림과 함께 매개변수 조작을 통한 원격 파일 인클루션(RFI) 공격에 취약합니다. 

 

XXE(XML eXternal Entity attack)

XML 입력을 구문 분석하는 응용 프로그램에 대한 공격 유형입니다. 이 공격은 외부 엔터티에 대한 참조를 포함하는 XML 입력이 약하게 구성된 XML 파서에 의해 처리 될 때 발생합니다.  OWASP TOP 10 2017에서 새로 선정된 보안 취약 점입니다. 

 

웹 서버 취약점 - 대응

1) 디렉토리 리스팅 : DocumentRoot 디렉토리 내의 모든 파일들이 리스팅 되는 것을 방지하기 위해서 Options 지시자에서 Indexes 옵션을 제거하여야 합니다. 

2) 심볼릭 링크 : root 디렉토리까지 nobody 권한으로 접근할 수 있게 되는 취약점을 보안하기 위해서 Options 지시자에서 FollowSymLinks를 제거하여야 합니다. 

3) SSI(Server Side Includes) : SSI는 HTML 페이지 안에 위치하고 있으며 동적인 웹페이지를 제공할 수 있도록 합니다. SSI가 포함된 파일은 exec cmd를 사용해서 스크립트나 프로그램들을 실행시킬 수 있습니다. 취약점을 막기 위해서는 Options 지시자에서 IncludesNoExec 옵션을 추가함으로써 차단할 수 있습니다. 

4) CGI 실행 : 사용자들이 어느 디렉토리에서나 실행할 수 있도록 할 경우 악의적인 사용자가 CGI 프로그램을 업로드한 후 이를 실행하여 임의의 명령을 실행 시킬 수 있습니다. 취약점을 막기 위해서는 SciptAlias 지시자에 의해서 실행 가능한 디렉토리를 제한할 수 있습니다. 

5) 불필요한 정보 공개 : ServerTokens 지시자를 수정함으로써 헤더에 의해 전송되는 정보를 바꿀 수 있습니다. ServerSignature가 On으로 되어 있으면 세부 에러내용과 불필요한 내용들이 공개됩니다. 

 

관련 문제

14회 다음 중 CSRF 취약점의 특징이 아닌 것은?4
①특정 소수가 아닌 불특정 다수를 대상으로 한다.
②원래 의도된 기능이 아닌, 데이터 변경, 삭제등이 가능해진다.
③XSS에서 진보한 공격이라고 보는 의견이 있다.
④XSS는 서버에서, CSRF는 클라이언트에서 악성 코드가 실행된다.

11회 다음의 설명 및 조치 내용에 해당하는 취약점은?2
[보기]
설명: 공격자가 사용자의 cookie 값이나 session 정보를 의 도한 사이트로 보내거나 특정한 동작을 유발하는 스크립트를 글에 삽입하여 사용자가 게시물 등을 클릭할 경우 공격자가 원하는 동작(계좌이체, 물건주문 등)이 실행되게 하는 취약점 (단, 공격 대상자가 사이트에 로그인해 있거나 유효한 cookie, session 정보를 가지고 있어야 공격이 성공할 수 있음)
① SQL injection(sql 명령어 삽입)
② CSRF(크로스사이트 요청변조)
③ RFI(원격 파일 포함)
④ Directory Listing(디렉터리 목록 노출

13회 아래 그림은 공격자가 웹 해킹을 시도하는 화면이다. 이래 화면 의 URL을 고려할 때, 공격자가 이용하는 웹 취약점으로 가장 적 절한 것은?1
[보기]

cms2580.cafe24.com/admin.php

① 관리자 페이지 노출 취약점
② 파일 다운로드 취약점
③ 파일 업로드 취약점
④ 디렉터리 리스팅(Directory Listing) 취약점

 

11회 웹 공격 기법은?4
[보기]
게시판의 글에 원본과 함께 악성코드를 삽입하여 글을 읽을 경우 악성코드가 실행되도록 하여 클라이언트의 정보를 유출 하는 클라이언트에 대한 공격 기법
① SQL Injection 공격
② 부적절한 파라미터 조작 공격
③ 버퍼 오버플로우 공격
④ XSS(Cross Site Scripting) 공격

11회 아래 그림은 웹 해킹과 관련된 로그이다. 이 그림을 보고 짐작할 수 있는 웹 공격 기법은?1
[보기]
10.10.10.1 - - [10/an/2017.00:1803 10900] E /home/login/login.php?userid=%27%2008%201%201%20%2D HTTP/"1.1" 200 970 "http://10.10.10,20/home/login/ogin_form.php" "Mezia-50 (Windows NT 6.3, WOW64; Tricent/7.0; v.11.0) like Cecko)
① SQL Injection
② Cross Site Request Forgery
③ Distribute Denial of Service
④ Cross Site Script

 

14회 다음 사항들 중 웹 서비스에 대한 취약점의 조치사항과 가장 거리가 먼 것은?3
①폐쇄형 사이트로 운영
②해외 IP차단
③쿠키의 활용
④세션 정당성 검증

10회 다음 중 한국인터넷진흥원의 홈페이지 취약점 진단제거 가이드, 행정안전부의 소프트웨어 개발 보안 가이드, 행정안전부의 주요 정보통신기반시설 가술적 취약점 분석 평가 방법상세가이드 등에서 공통적으로 언급하고 있는 웹 애플리케이션 취약점과 가장 관계가 없는 항목은?2

① XSS (Cross-site Scripting)
② GET Flooding
③ CSRF (Cross-site request forgery)
④ SQL Injection

 

10회 53. 다음은 웹 보안 공격 방지에 대한 설명을 나열한 것이다. 어떤 웹 보안 공격을 방지하기 위한 설명인가? 3
[보기]
- 세션 등 모든 정보를 서버 내에서 저장, 관리하는 서버사이드 세션을 사용하도록 구현한다.
- SMS 인증과 같은 2차 인증을 이용하도록 구현한다.
- 사용자 PC에 저장되는 쿠키정보는 안전하지 않으므로 암호화하여 변조를 방지한다.
① 파일 업로드 공격방지 방법
② 쿠키/세션 위조 공격방지 방법
③ SQL 인젝션 공격방지 방법
④ 파일 다운로드 공격방지 방법

11회 다음 중 OWASP TOP 10 2017에서 새로 선정된 보안취약점은?4
① 인젝션
② 인증 취약점
③ 크로스사이트 스크립트
④ XXE

 

11회 어떤 종류의 취약점에 대응하기 위한 대책인가?2
[보기]
PHP의 경우 php.ini 파일에서 allow_url_fopen 옵션을 Off값으로 설정
① 부적절한 파라미터 조작
② 원격지 파일의 명령 실행
③ SQL Injection
④ 쿠키 세션 위조

 

14회 문자열 단위로 문자열의 일치 여부(참/거짓) 값 만을 반환받는 과정을 수없이 반복하여 테이블 정보나 데이터 값을 추출해내는 공격법은?2
①SQL injection
②Blind SQL injection
③Mass SQL injection
④Union SQL injection

9회 5SQL 인젝션 공격에 대한 보호 대책으로 거리가 먼 것은?2
① 사용자 입력이 직접 SQL 문장으로 사용되지 않도록 한다.
② 사용사 입력으로 문자. 기호문자 그리고 구두문자까지만 사용하도록 한다.
③ SQL 서버의 에러 메시지를 사용자에게 보여주지 설정한다.
④ 모든 스크립트에 대힌 모든 파라미터를 점검하여 사용자 입력 값이 공격에 사용되지 않도록 한다.

반응형

+ Recent posts