[정보보안 목차]

 

 

1. SW 의 내재된 보안취약점을 최소화하기 위한 시큐어코딩의 개요

 

 - 안전한 소프트웨어 개발을 위해서 소프트웨어 개발시 추후에 일어날 수 있는 취약점을 미리 제거, 개발과정에서 보안을  위해 지켜야할 보안 활동

 - 보안 취약점 제거는 운영단계보다 개발단계가 훨씬 효율적, 소스코드 레벨의 보안 취약점 잔존 최소화 

 

2. 소프트웨어 개발기준의 시큐어코딩 적용 범위(SW 보안약점 7가지 유형)

 3. 시큐어코딩 적용 사례

 가. SQL  삽입

  - 외부 입력한 값이 SQL Query 파라미터 검증 없이사용되어, 공격자가 Query 구조를 변경하여 임의로 데이터베이스 명령어를 실행 가능함.

  - 위 예시를 보면 ${name} 구문 사용하면 값으로 ' OR 'X'='X' 가 전달되어 모든 값이 삭제되므로 #{name}의 형태로 코딩하여 Query 구조가 변경되지 않도록 해야 함.

 

나. 크로스 사이트 스크립트

  - 공격자가 웹 페이지에 악의적인 스크립트 삽입하여 사용자 측에서 실행되도록 유도하는 것. 이를 예방위해서 외부에서입력된 파라미터 대해 사용자 브라우저에서 실행될 수 있는 스크립트 생성에 이용되는 문자열이 있는지 검증해야 함.

 

  - 위 예시 코드에서 javax.servlet.http.HttpServletRequest.getParameter에 전달된 attachment검증하지 않고 있음. attachment에 <,>,&,"와 같은 스크립트 코드가 입력되고 이 값이 그대로 사용되면, 공격자에게 사용자의 Cookie 정보가 전달됨. 따라서 크로스 사이트 스크립트 공격을 예방위해 입력값에서 script 생성에 사용되는 문자열 제거하는 로직 적용함.

 

다. 에러처리 : 오류 메시지를 통한 정보 노출

       위와 같이 오류 메시지 통한 정보 노출은 공격자에게 도움을 줄 수 있기 때문에 Log.error("illegal Acess")와 같이 처리햐야 함.

 

라. 코드 오류 : Null Pointer 역참조

  - Null이 할당될 수 있는 변수에 대해 Null 검사 없이 역참조 되었을 경우, 프로그램 실행 중에 NullPointerException 발생 후 프로그램 비정상적으로 종료 시킬 수 있으므로 대응 코드가 필요함.

4. 시큐어 코딩 적용 유무 확인 방법

 

   - 행정자치부에서는 "공개 소프트웨어를 활용한 소프트웨어 개발 보안 점검 가이드" 제공, Jenkins, FindBugs, FindSecurityBugs, PMD  이용 소프트웨어 보안 약점을 분석, 리포팅 할 수 있도록 소개함.                          -끝-

 

'메가노트 > 토픽과제(정리)' 카테고리의 다른 글

자율주행자동차보안(황선환)  (1) 2022.10.01
IPSec(이강욱)  (0) 2022.10.01
디지털 포렌식(홍진택)  (0) 2022.10.01
웹 해킹(이상희)  (0) 2022.10.01
DDOS 공격(문경숙)  (0) 2022.10.01

+ Recent posts