본문 바로가기
SK shieldus Rookies 16기

[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(35일차) - 작성 중

by Challenge programmers 2023. 12. 12.

오늘 학습 주제

1. 취약점 진단 실습 - SQL Injection  

2. 취약점 진단 실습 - 악성 코드 파일 업로드

3. 취약점 진단 실습 - Directory traversal

4. 취약점 진단 실습 - 인증 우회

 

 

 

 

취약점 진단 - SQL Injection


-  SQL Injection -

SQL Injection
정의 OWASP Injection 공격 중 한 형태로
특정 페이지나 기능 사용 시 입력 값에 대한 DB 쿼리 유효성 검증을 하지 않아
DB 쿼리가 조작되어 공격자가 의도한 대로 행동하도록 하는 취약점
결과
  • DB 내 주요 정보 유출
  • DB 내 데이터 수정 / 삭제
  • 인증 우회
공격(보안진단)
포인트
  • 게시판 view / write / edit 시 DB의 쿼리 문에 포함되는 파라미터 값
  • 첨부파일 다운로드 시 DB의 쿼리 문에 포함되는 파라미터 값
종류
  • Boolean Based SQL Injection : 쿼리 요청 시 응답 값의 참/거짓 반응을 통해 DB 결과 조회

  • Error Based SQL Injection : 쿼리 실행 시 오류나 예기치 않은 예외 상황이 발생될 때
    클라이언트 측에서 DB 정보가 노출되는 공격

  • Time Based SQL Injection : DB 시간 관련 함수를 활용해 참과 거짓을 반응을 통해 DB 결과 조회
보안 대책 외부 입력이나 외부 변수로부터 받은 값이 직접 SQL함수의 인자로 전달되거나,
문자열 복사를 통하여 전달되는 것은 위험하므로 인자화된 질의문을 사용

 

 

 

 

 

취약점 진단 실습 - 악성 코드 파일 업로드


- 악성 코드 파일 업로드 -

악성 코드 파일 업로드
정의 게시판 등에서 악성 파일 업로드에 대한 검증이 없을 경우
이를 악용해 악성스크립트(웹쉘) 파일이 업로드 되어
원격 명령 실행, 권한 획득 등의 공격이 실행될 수 있는 보안 취약점
결과
  • 원격 명령 실행, 권한 휙득 등
공격(보안진단)
포인트
  • 게시판의 첨부파일
  • 게시판 내부의 이미지 삽입 박스
  • 게시판 내부의 동영상 첨부 부분
  • 업로드 검증 로직이 존재할 경우 BlackList/WhiteList인지 확인
  • 환경 분석을 통한 환경에 맞는 웹쉘 사용
보안 대책
  • 업로드하는 파일 타입과 크기를 제한하고 업로드 디렉토리를 웹서버의 document 외부에 설정
  • 화이트리스트 방식으로 허용된 확장자만 업로드 되도록 하고, 확장자도 대소문자 구분없이 처리
  • 업로드 되는 파일경로 및 파일명에는 “../”, ”;”, ”%0” 등과 같은 특수문자 사용도 제한

 

- 화이트 리스트와 블랙 리스트 -

화이트 리스트 : 개발자가 의도한 파일만 올라가도록

블랙리스트 : 특정 파일 제한

 

화이트리스트가 확장자 검증에 보다 안전하다

존재하는 모든 파일확장자를 확인하는 것은 힘들기 때문 

 

최선 > 확장자 검증(화이트 리스트)

차선 > 확장자 검증(블랙 시스트) 권고되는 사항은 아니다

차선> 우회공격을 방지하기 위해 특수문자 필터링 / Null / ; / .jpg,jsp / .jsp;jpg

차선 업로드된 디렉터리나 파일 실행 권한을 제거

차차선 업로드된 경로 노출 방지(공격 지연)

 

 

존재하지 않는 확장자를 업로드해서 블랙리스트와 화이트 리스트 구분

 

- htaccess -

Apache 웹 서버에서 사용되는 설정 파일로,

디렉터리 수준에서 웹 서버의 동작을 제어하고 수정하는 데 사용

허가, 인증, RUL 재작성, 스팸봇 차단, SSL, 디렉토리 리스팅,

에러 응답 커스터마이징 등에 사용

 

 

- mime type -

컨텐츠의 종류를 나타내는 라벨이며, 주로 웹에서 사용

HTTP 헤더에 포함되어 웹 브라우저에게 어떤 종류의 파일을 처리해야 하는지 알려주는 역할

ex) text/plain, text/html

 

 

- HTTP Error -

HTTP Error

200 : 성공, 자원 생성

300: 자원에 대한 이동

400: 에러, 요청이 잘못되거나 부적절

500: 서버에러, 서버가 요청을 수행하지 못함

 

 

 

 

취약점 진단 실습 - Directory travbersal(경로 순회)


- Directory travbersal(경로 순회) -

 

../ 상위 디렉터리에서 작업

./ 현재 디렉터리에서 작업

 

UUID: 파일의 키 값을 변수로 사용하여 다운

경로를 사용할 경우 특수 문자의 보안 필터링 적용

 

 

 

취약점 진단 실습 - 인증 우회


- 인증 우회 -

 

robots.txt

검색 엔진에서 사용하는 검색 로봇을

검색 엔진의 종류와 상관없이 접근하는 것을 방지

 

 

robots.txt에서는 블랙리스트 등록보다는

화이트 리스트로 적용하는것이 더 안전하다

 

 

referer

 

사용자 비밀번호 변경 시