[정보처리기사 실기] 9장 소프트웨어 개발 보안 구축 - 소프트웨어 개발 보안 구현

2022. 4. 23. 22:18정보처리기사/실기

728x90
반응형

SW 개발 보안 구현

시큐어 코딩 가이드

- 공격을 유발할 가능성이 있는 잠재적인 보안 취약점을 사전에 제거하고, 외부 공격으로 안전한 소프트웨어 개발, 보안 약점을 방지하기 위한 시큐어 코딩 가이드 필요

  • 시큐어 코딩 가이드 : 입력 데이터 검증 및 표현, 보안 기능, 시간 및 상태, 에러 처리, 코드 오류, 캡슐화, API 오용

입력 데이터 검증 및 표현

(1) 개념 : 입력 데이터 검증 및 표현 , 입력 데이터로 인해 발생하는 문제들을 예방하기 위한 단계, 유효성 검증을 갖추고 검증 되지 않은 데이터 입력 처리 가능

 

(2) 취약점

  • XSS : 검증 되지 않은 외부 입력 데이터가 포함 된 경우, 부적절한 스크트립가 실행
    • 특수 문자 등록 방지위해 필터링, HTML 태그 사용 금지, 자바스크립트로 시작하는 문자열은 모두 문자열 변환 처리
    • 공격 유형 
      • Stored XSS : 방문자들이 악성 스크립트가 포함된 페이지 읽어 동시에 악성 스크립트가 브라우저에 실행되면서 감염
      • Reflected XSS : rhdrurdyd dkrtjd ㅕ끼 생성 이메일로 전송하면 사용자가 크릭시 즉시 공격 스크립트가 피해자로 반사되어 접속 사이트에 민감정보 전송
      • DOM XSS : DOM 기반 XSS 취약점이 있는 브라우저를 대상으로 조작된 URL을 이메일 통해 발송하고 피해자가 URL 클릭 시 공격 피해 당하는 기법
    • 공격 절차
      • 취약점이 존재하는 서버에 XSS 코드 삽입 -> 웹 서비스 사용자가 작성해 놓은 XSS 코드에 접근 -> XSS 코드가 저장된 페이지 정보 요청 -> 시스템에서 XSS 코드 실행 -> 골격자는 결과 가지고 웹 서버에서 2차 해킹 시도
  • 사이트 간 요청 위조 CSRF : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 요청하게 하는 공격
    • 폼 작성시 POST 방식 사용, CSRF 토큰 사용하여 점검, 재인증 통해 안전하게 실제 요청 여부 확인하도록 구현
    • 공격 절차
      • 스크립트 포함 게시물 등록 -> 열람 요청 -> 요청 발생 -> 스크립트 결과 발생
  • SQL 삽입 : 악의적인 구문 삽입, 실행시켜서 디비 접근 통해 정보 탈취하거나 조작
    • 바인딩 매개 변수 방식 적용해 사전에 변수 타입 명시적 지정, 모든 값 체크하여 필터링, Servlet Filter 기능 적용(자바)
    • 공격 유형
      • Form SQL Injection : Form 기반 인증을 담당하는 앱의 취약점ㅇ로 쿼리 문의 조건 임의 조정
      • Union SQL Injection : union 연산자 이용 다른 쿼리의 결과에 결합해 공격
      • Stored Procedure SQL Injection : 저장 프로시저 이용 공격
      • Mass SQL Injection : 확장된 개념으로 한 번의 공격으로 대량의 디비 값이 변조되어 치명적인 영향 미침
      • Error-Based SQL Injection : 디비 쿼리에 대한 에러값 기반으로 점진적으로 디비 정보 획득
      • Blind SQL Injection : 오류 메시지 반환하지 않으면 공격 할 수 없는 에러 기반 쿼리 삽입과 달리 오류 메시지가 아닌 쿼리 결과으 ㅣ참과 거짓을 통해 비정상적 공격 기법
    • 공격 절차
      • 응용 프로그램의 취약점 탐지 -> 악의적인 쿼리 구문 삽입해 인증 우회 -> 권한이 상승 되어 디비 정보 탈취 및 조작 실행

보안 기능

(1) 개념 : 인증, 접근제어, 기밀성, 암호화, 권한 관리 적절히 구현 위한 보안 점검 항목, 환경이나 취급 데이터 맞게 처리

 

(2) 취약점 : 인증 없이 중요 기능 허용, 부적절한 인가, 취약한 암호화 알고리즘 사용, 중요 정보의 평문 저장 및 전송, 하드 코드 된 비밀번호 등의 방지해야 함

  • 취약점 : 적절한 인증 없이 중요 기능 허용, 부적절한 인가, 취약한 암호화 알고리즘 사용, 중요 정보 평문 저장 및 전송, 하드 코드 된 비밀 번호, 취약한 패스워드 요구 조건

에러 처리

(1) 개념 : 에러를 예외 처리 하지 못하거나, 중요한 정보 포함 될 때 발생하는 취약점 예방

 

(2) 취약점 : 오류 메시지 통한 정보 노출, 오류 사항 대응 부재, 적절하지 않은 예외 처리

세션 통제

(1) 개념 : 데이터 공유 등 세션과 관련되어 발생하는 취약점 보호, 이미 종료된 클라의 정보가 사용 상태로 방치되 허가 받지 않은 사용자가 디비 접근 가능할 수 있다.

 

(2) 취약점 : 불충분한 세션 관리

코드 오류

(1) 개념 : 구현 단계에서 프로그램 변환 시 오류, 서버의 리소스의 부적절한 반환 개발자가 흔하게 실수하는 오류 예방

 

(2) 취약점 : 널 포인터 역참조, 정수를 문자로 변환, 부적절한 자원 해제, 초기화되지 않은 변수 사용

캡슐화

(1) 개념 : 외부에 은닉이 필요한 중요한 정보와 기능 보호

 

(2) 취약점 : 잘못된 세션에 의한 데이터 정보 노출, 제거되지 않고 남은 디버그 코드, 민감한 데이터 가진 내부 클래스 사용, 시스템 데이버 정보 노출

API 오용

(1) 개념 : 서비스 제공되는 이용에 반하는 방법으로 API 이용하거나 보안에 취약한 API를 오용하여 발생할 수 있는 보안 취약점 예방

 

(2) 취약점 : DNS Lockup 의존한 보안 결정, 위험하다고 알려진 함수 사용, 널 매개 변수 미검사

시스템 보안 구현

유닉스 리눅스 주요 로그 파일

- 저장되는 경로가 시스템 마다 다르다, 유닉스는 /var/adm, 리눅스는 /var/log(시스템의 모든 로그 기록 및 관리), /etc/syslog.conf에서 로그 파일의 위치 지정 가능

  • wtmp/wtmpx : 사용자 로그인 아웃 정보, 시스템 shutdown,reboot 정보 : last 통해 내용 확인
  • utmp/utmpx : 현재 로그인 정보 : who, w, users, finger 통해 내용 확인
  • btmp/btmpx : 로그인 실패 정보 : lastb 
  • sulog : su 명령어 실행 성공 실패 결과 정보 : 텍스트 파일
  • acct/pacct : 사용자별로 실행되는 모든 명령어 로그 : lastcomm, acctcom
  • xfetlog : gtp 서비스 데이터 전송 기록 : 텍스트 파일
  • messages : 전반적인 메시지 저장 : 텍스트 파일
  • secure : 보안과 관련된 기록 : 텍스트 파일

보안 솔루션

(1) 네트워크 보안 솔루션 : 방화벽, 웹 방화벽, NAC, IDS, IPS, WIPS, UTM, VPN

 

(2) 시스템 보안 솔루션 : 스팸 차단 솔루션, 보안 운영체제

 

(3) 콘텐츠 유출 방지 보안 솔루션 : 보안 USB, 데이터 유출 방지 DLP, 디지털 저작권 관리 DRM

취약점 분석

(1) 개념 : 보안상의 결점 또는 취약한 속성 파악해 위험 낮춤

 

(2) 대상 : 환경 및 시설, 하드웨어, 소프트웨어

 

(3) 취약점 분석 절차 : 자산 조사 및 분석 -> 진단 대상 선정 -> 제약 사항 확인 -> 진단 수행 -> 결과 분석 및 보고서 작성

SW 개발 보안 테스트와 결함 관리

개발 보안 테스트 개념

- 요구사항이 반영되어 있나 보증, 취약점 발견하고 안전하게 개발

테스트 유형

  • 정적 분석 : 실행하지 않고 보안 약점 분석, 개발 단계에서 수행 : 취약점 조기 발견으로 비용 절감, 컴포넌트 간 통합된 취약점 발견에 제한적, 설계 구조 관점의 취약점 식별 불가
  • 동적 분석 : 실행환경에서 보안 약점 분석, 시험 단계에서 수행 : 소스 코드 필요 없음, 정확도와 커버리지 향상, 구조 관점의 보안 약점 식별 불가

소프트웨어 개발 보안 테스트 절차

  1. 준비 단계 : 대상 선정 및 일정 수립
  2. 실행 단계 : 테스트 수행
  3. 개선 단계 : 보고서 발생 및 지적사항 해결
  4. 관리 단계 : 결함 해결 사항 보고 및 점검된 소스 코드 관리
  5. 조욜 단계 : 보안 상황 보고

비즈니스 연속성 계획 BCP

비즈니스 연속성 계획 개념

- 각종 재해 장애 재난으로 위기 관리, 비즈니스 영향 평가(BIA)가 선행되어야 한다.

용어

  • 비즈니스 연속성 계획 관련 주요 용어
    • BIA : BCP 구축 위한 비즈니스 영향 분석
    • RTO : 복구되어 다시 가동될때까지 시간
    • RPO : 복구되어 다시 정상 가동 까지 데이터 손실 허용 시점
    • DRP : 재난 복구 계획
    • DRS : 재해 복구 센터
      • Mirror Site(즉시), Hot Site(4시간 이내), Warm Site(수 시간에서 1일, 수일~수주), Cold Site(수주 ~ 수개월, 신뢰성 낮음)

보안 주요 용어

  • 보안 공격 관련 중요 용어 : 부 채널 공격, 드라이브 바이 다운로드, 워터링홀, 스캠 공격, 하트 블리드, 크라임웨어, 토르 네트워크, MITM 공격, DNS 스푸핑, 포트 스캐닝, 디렉토리 스캐닝, 리버스 쉘 공격, 익스플로잇, 스턱스넷 공격, 크리덴셜 스터핑
  • 보안 공격 대응 관련 중요 용어 : 허니팟, OWASP Top 10, 핑거프린팅, 워터 마킹, 이상금융거래탐지시스템, CC, 사이버 위협 정보 분석 공유 시스템, 장착형 인증 모듈PAM, CVE, CWE
728x90
반응형