자격증/정보처리기사 실기

정보처리기사 실기 - 소프트웨어 개발 보안 구현 (SW 개발 보안 구현)

비뀨_ 2023. 7. 17. 23:17

SW 개발 보안 구현

시큐어 코딩 가이드

해킹 등의 공격을 유발할 가능성이 있는 보안 취약점을 사전에 제거하고,

외부 공격으로부터 안전한 소프트웨어를 개발하는 기법

 

보안 약점 내용 대응 방안
입력데이터 검증 및 표현 프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 입력 데이터에 대한 유효성 검증,
실패 시 처리 설계 및 구현
보안 기능 보안 기능(인증, 접근 제어, 기밀성, 암호화, 권한 관리 등)의
부적절한 구현
인증, 접근 통제, 권한 관리, 비밀번호 등 정책이 적절하게 반영되도록 설계 및 구현
시간 및 상태 거의 동시에 수행 지원하는 병렬 시스템 or 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태 부적절한 관리 공유 자원의 접근 직렬화, 병렬 실행 가능 Framework 사용, 블록문 내에서만 재귀함수 호출
에러 처리 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요정보 포함 중요 데이터 반환하지 않도록
설계 및 구현
코드 오류 개발자가 범할 수 있는 코딩 오류로 유발 됨 코딩 규칙 도출 후 검증 가능한 구성과 경고 순위 최상향 조정
캡슐화 기능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 유출 클래스내 private 접근자 지정
디버그 코드 제거
API 오용 의도된 사용에 반하는 방법으로 API 사용하거나,
보안에 취약한 API 사용
개발 언어별 취약 API 확보 및 
취약 API 검출 프로그램 사용

 

 

1. 입력데이터 검증 및 표현

취약점

XSS ( Cross Site Scripting)

검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우에
사용자가 클릭해 열람해 부적절한 스크립트가 실행되는 공격

 

종류

  • Stored XSS : 방문자들이 악성 스크립트가 포함된 페이지를 읽어 봄과 동시에 브라우저에서 실행되며 감염
  • Reflected XSS : 공격용 악성 URL을 생성 후 이메일로 사용자에게 전송하면 사용자가 URL 클릭시 스크립트가 피해자로 반사되어, 접속 사이트에 민감 정보를 공격자에게 전송
  • DOM XSS : DOM 기반 XSS 취약점이 있는 브라우저를 대상으로 조작된 URL을 이메일을 통해 발송, 피해자가 URL 클릭시 피해를 당함.

대책

  • 특수문자 등록을 방지하기 위해 특수문자 필터링
  • HTML 태그 사용 금지(특히 < 사용시 &lt로 변환)
  • 자바스크립트로 시작하는 문자열은 모두 문자열 변환

 

 

CSRF(사이트 간 요청 위조 : Cross Site Request Forgery)

사용자가 자신의 의지와 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격

  1. 공격자는 CSRF 스크립트 포함된 게시물 등록
  2. 사용자가 해당 게시물을 열람 요청
  3. 게시물 읽은 사용자의 권한으로 공격자가 원하는 요청 발생
  4. 스크립트 결과 발생

대책

  • 입력화면 폼을 작성시 POST 방식 사용
  • 입력 폼과 입력처리 프로그램에서 세션별 CSRF 토큰을 사용하여 점검
  • 중요기능의 경우 재인증을 통해 안전하게 실제 요청 여부를 확인하도록 구현

SQL 삽입(SQL Injection)

응용 프로그램의 보안 취약점을 이용해 악의적인 SQL 구문을 삽입 + 실행시켜 DB의 정보를 탈취 or 조작

 

대책

  • 바인딩 매개변수 방식 적용해 사전에 변수 타입을 명시
  • 사용자로부터 입력되는 모든 값 체크해 필터링
  • Servlet Filter 기능 적용