정보처리기사

9. 소프트웨어 개발 보안 구축 - Chap 2. 소프트웨어 개발 보안 구현

Elin J 2021. 7. 6. 15:06

Chapter 2. 소프트웨어 개발 보안 구현

1. 소프트웨어 개발 보안 구현

1) 시큐어 코딩 ---> 입보시에코캡아

  입력데이터 검증 및 표현 (sql인젝션, XSS) / 보안기능 / 시간 및 상태(병렬 시스템->직렬화)

  / 에러처리(에러 미처리, 불충분한 처리) / 코드 오류 / 캡슐화(프라이빗 접근자 지정) / API 오용

 

2) 입력데이터 검증 및 표현 취약점 ★★

 ㉠ XSS (Cross Site Script)

    : 검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우,

사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격

 --> XSS 취약점 대책 :  특수문자 필터링 / HTML 태그 사용 금지 / 자바스크립트로 시작하는 문자열 모두 변환처리

 --> XSS 공격유형 : 스S리R돔D ( Stored XSS, Reflected XSS, DOM XSS)

 

 ㉡ CSRF (Cross-Site Requeset Forgery)

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

 --> 대책 : 폼 작성 시 get 방식보다 post 방식 사용 / CSRF 토큰 사용 / 재인증

 

 ㉢ SQL삽입 (SQL Injection) -- 기출!

    : 응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL구문을 삽입, 실행시켜

    데이터베이스 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격기법

   --> 대책 : 모든 값 체크하여 필터링 / 바인딩 매개변수 방식 적용(ex. prepared statment)

  

3) 보안 기능

   : 적절한 인증 없이 중요 기능 허용, 부적절한 인가, 취약한 암호화 알고리즘 사용

    중요 정보 평문 저장 및 전송, 하드코드 된 비밀번호

 

4) 에러 처리 

   : 취약한 패스워드 요구조건, 오류메세지 통한 정보 노출

    오류 상황 대응 부재(Try~catch문 사용) , 적절하지 않은 예외 처리

 

5) 세션 통제

  : 다른 세션 간 데이터 공유 금지 등 안전 설계 필요 --> 세션 타임아웃

 

6) 코드 오류 

  : 널 포인드 역참조 , 정수를 문자로 변환 , 초기화되지 않은 변수 사용

부적절한 자원 해제 (힙, 스택 등 사용 후 반환 -> finally블록에서 반환되도록 코딩) 

 

7) 캡슐화 취약점

  : 잘못된 세션에 의해 데이터 정보 노출(변수 범위 주의, 지역변수 활용) , 시스템 데이터 정보 노출

     , 제거되지 않고 남은 디버그 코드, 민감한 데이터를 가진 내부 클래스 사용 

 

8) API 오용

  : DNS Lookup에 의존한 보안 결정, 위험하다고 알려진 함수 사용, 널(null) 매개변수 미검사

 

 

 

=============================================================

=============================================================

 

 

2. 시스템 보안 구현

1) 유닉스/리눅스 주요 로그 파일

 * 유닉스의 경우 Nar/adm 디렉토리에 주로 저장된다

 * 리눅스의 경우 Nar/log 디렉토리에 주로 저장된다 (log파일-> 사후(공격 후))

 * /etc/syslog.conf 파일에서 시스템 로그 파일 위치 지정하고 있다

  -> wtmp, utmp, btmp, lastlog, sulog, acct/pact, xgerlog, messages, secure

 

2) 보안 솔루션

  * 네트워크 보안 솔루션

  -> 방화벽 , 웹 방화벽(WAF), 네트워크 접근제어(NAC), 침입 탐지 시스템(IDS),

   침입 방지 시스템(IPS), 무선 침입 방지 시스템(WIPS), 통합 보안 시스템(UTM), 가상 사설망(VPN)

 

  * 시스템 보안 솔루션

    - 스팸 차단 솔루션(Anti- SPAM),

      보안 운영체제(Secure OS)-운영체제 커널에 보안 기능 추가

 

  * 콘텐츠 유출 방지보안 솔루션

      - 보안USB, 데이터 유출 방지(DLP), 디지털 저작권 관리(DRM)-문서 보안 솔루션

 

3) 취약점 분석 절차

  * 분석 대상 : 환경 및 시설, 하드웨어, 소프트웨어

  * 분석 절차 : 자산 조사 및 분석 -> 진단 대상 선정 -> 제약사항 확인 -> 진단 수행 -> 결과 분석/보고서

                                     (규모 작으면 전수조사, 크면 샘플링)            (체크리스트)

 

 

 

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

1) 소프트웨어 개발 보안 테스트

     : 정적 분석 -> 개발단계 (초기 발견, 비용 절감)

       동적 분석 -> 시험 단계 (소스코드 필요 없음, 정확도 높음)

   

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

    준비단계      ->     실행단계     ->      개선단계     ->       관리단계       -> 종료

(대상 선정, 일정 수립)   (테스트 수행)    (보고서 발행/ 지적사항 해결)  (결함해결 보고,      (보안 상황 보고) 

                                                                                          점검 소스 코드관리)

 

 

4. 비즈니스 연속성 계획(BCP)

  : 각종 재해, 장애, 재난으로부터 위기관리를 기반으로

  재해복구, 업무복구 및 재개, 비상계획 등을 통해 비즈니스 연송성을 보장하는 체계,

  -> 비즈니스 영향 평가(BIA)가 선행되어야 함

 

 

5. 보안 중요 용어

1) BCP 용어 

    BIA - 비즈니스 영향 분석 (영향도 및 손실평가)

    RTO - 재해 시 복구 목표 시간의 선정( 실시간 RTO=0)

    RPO - 시점, 재해 시 복구 목표 지점의 선정

    DRP - 재난 복구 계획

    DRS - 재해 복구 센터

      ->  DRS 유형 :  Mirro Site(모두 운영, 운영비용 높음...),

                          Hot Site(대기상태, 최신유지) ,

                          Warm Site(중요성 높은 자원, 백업주기 수시간~1일, 복구까지 수일~수주),

                          Cold Site(데이터만 보관, 복구까지 수주~수개월, 저렴하나 시간 길고 신뢰성 낮음)

 

2) 보안 중요 용어  -> 책에 있는거 참고 ! 익숙하게 해서 이해하기! 

 

부채널 공격 (Side Channel Attack)

드라이브 바이 다운로드 (DBD) - 악성 스크립트

워터링홀-- 표적, 웹사이트 (스피어피싱--(표적, 이메일)과 헷갈리지 않게 주의!)

스캠공격 - 무역 거래대금

하트블리드 - 하트비트라는 확장 모듈 (심장에서 피..) 

크라임웨어 - 금융정보 또는 인증정보 탈취로 금전적 이익

MITM - 중간에 침입, 도청 및 조작

DNS 스푸핑(위조,변조) - 희생자가 의도하지 않은 주소로 접속, =DNS 캐시 포이즈닝

포트 스캐닝 - 열린(활성화) 포트로 공격

디렉토리 리스팅 - 강제브라우징

리버스 쉘 공격 - 쉘 획득해서 공격

익스플로잇 - 의도한 동작이나 명령 실행

스턱스넷 - 독일 지멘스사의 SCADA시스템 (산업 제어 시스템), 산업 기반 시설

크리텐셜 스터핑 - 다른곳에서 유출된 아이디 비번 적용

허니팟 - 일부러 허술하게 만들어 노출, 유인 시스템OWASP top 10 - 10가지 취약점핑거프린팅 - 저작권 정보와 구매한 사용자 정보워터마킹 - 저작권 정보 삽입

 

 

FDS - 이상 거래 탐지, 이상거래 차단CC인증 - 정보기술, 정보보호 시스템 등...... 국제 평가 기준C-TAS - 인터넷진흥원(KISA) 주관 침해 예방 대응 시스템PAM - 리눅스 내 인증용 라이브러리

 

CVE : 미국 MITRE 비 영리회사 식별자 목록

CWE :미국 MITRE 비 영리회사 약점 체계적으로 분류한 목록