본문 바로가기

ETC/자격증

[정보처리기사실기]소프트웨어 개발 보안 요약 정리

반응형

1. 소프트웨어 개발 보안 목표

    - 기밀성(Confidentiality) : 인가받은 사용자만 접근을 허용한다.

    - 무결성(Integrity) : 인가받은 사용자만 수정을 허용한다.

    - 가용성(Availabilty) : 인가받은 사용자는 언제든지 사용이 가능해야 한다.

 

2. Secure SDLC(Software Development Life Cycle) : 보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안강화를

                                                                  위한 프로세스를 포함하는 것

 

3. 보안요소

    - 기밀성 : 인가된 사용자만 접근을 허용

    - 무결성 : 인가된 사용자만 수정을 허용

    - 가용성 : 인가된 사용자는 언제든지 사용이 가능해야 한다.

    - 인증 : 합법적인 사용자인지 확인하는 것

    - 부인방지 : 데이터를 송, 수신한 자가 송, 수신 사실을 부인할 수 없도록 증거를 제공

 

4. 시큐어 코딩(secure coding) : 소프트웨어의 구현 단계에서 발생할 수 있는 보안 취약점을 최소화하기 위해 보안

                                         요소를 고려하며 코딩하는 것

 

5. SQL 삽입 : 입력란에 SQL을 삽입하여 무단으로 DB를 조회하거나 조작하는 보안 약점

 

6. 크로스사이트 스크립팅(XSS) : 웹 페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나 비정상적인

                                          기능 수행을 유발하는 보안 약점

 

7. TOCTOU(Time of check to time of use) 경쟁 조건 : 검사 시점(Time of Check)과 사용 시점(Time Of Use)을 고려하지

                                                                      않고 코딩하는 경우 발생하는 보안 약점

                                                                      ex> 동기화오류, 교착상태 발생 가능

 

8. 교착상태(Dead Lock) : 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 잇는 자원을

                                요구하며 무한정 기다리는 현상

    - 예방기법

    - 회피기법

    - 발견기법

    - 회복기법

 

9. 널 포인터(Null Pointer) 역참조 : 널 포인터가 가리키는 메모리에 어떠한 값을 저장할 때 발생하는 보안 약점

 

10. 암호 알고리즘 : 중요정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 or 방법

 

11. 개인키 암호화(Private Key Encryption) 기법 = 대칭키 암호화 기법

    - 동일한 키로 데이터를 암호화하고 복호화한다(암호화키 = 복호화키)

    - 속도가 빠르고 알고리즘이 단순하고 파일크기가 작다

    - 사용자의 증가에 따라 관리해야할 키의 수가 상대적으로 많아진다.

    - DES : 블록크기 64비트 / 키 길이 56키

    - AES : 블록크기 128비트

 

12. 공개키 암호화(Public Key Encryption) 기법 = 비대칭키 암호화 기법

    - 암호화할 때 공개키 복호화는 비밀키(암호화키 != 복호화키)

    - 키 분배 용이함

    - 관리해야 할 키 수가 적다

    - 속도가 느림

    - 알고리즘이 복잡함

    - 파일크기가 크다

    - RSA

 

13. 해시(hash) : 임의의 길이의 입력 데이터나 메세지를 고정된 길이의 값이나 키로 변화하는 것

반응형