• [2020 정보처리기사 실기]Section 09.소프트웨어 개발 보안 구축 #4

    2020. 5. 5. 23:14

    by. 위지원

    이전 글: 2020.05.05 - [2020년/정처기] - [2020 정보처리기사 실기]Section 09.소프트웨어 개발 보안 구축 #3

     

    캡슐화

    불충분하게 캡슐화하거나 잘못 사용함으로써 발생할 수 있는 문제 예방하기 위한 보안 점검 항목들

    보안 약점 언제 발생하는가? 내용 방지하는 방법
    잘못된 세션에 의한 정보 노출 다중 스레드 환경에서 멤버 변수에 정보를 저장할때 발생 싱글톤 패턴에서 발생하는 레이스컨디션으로 인해 동기화 오류가 발생하거나 멤버 변수의 정보 노출 지역변수 활용
    제거되지 않고 남은 디버그 코드 개발중에 버그 수정/결과 값 확인을 위해 남겨둔 코드로 인해 발생 - 중요 정보가 디버그 코드로 인해 노출
    - 디버그 코드에 인증/식별 절차를 생략하거나 우회하는 코드가 포함 되어있는 경우 공격자가 이를 악용할 수 있음
    디버그 코드 배포전에 다 삭제
    시스템 데이터 정보 노출 시스템 내부정보를 시스템 메시지등을 통해 외부로 출력하도록 하였을 때 발생   최소한의 정보만 메시지로 제공
    public 메소드로부터 반환된 private 배열 private 배열을 public 메서드에서 반환할때 발생 배열의 주소가 외부로 공개되어 외부에서 접근 private 배열을 별도의 메서드를 통해 조작하거나, 동일한 형태의 복제본으로 반환받은 후 값을 전달하는 방식으로 
    private 배열에 public 데이터 할당 private배열에 public으로 선언된 데이터 또는 메서드의 파라미터를 저장할 때 발생 private배열을 외부에서 접근 public으로 선언된 데이터를 private 배열에 저장할 때, 레퍼런스가 아닌 직접 저장

     

     

    API 오용

    DNS(Domain Name System) Lookup에 의존한 보안 결정 

    도메인명에 의존하여 인증이나 접근 통제등의 보안 결정을 내리는 경우 발생

    • DNS 엔트리를 속여 동일한 도메인에 속한 서버인것처럼 위장
    • 사용자와 서버간의 네트워크 트래픽을 유도하여 악성사이트를 경유토록함
    • 공격자는 DNS lookup을 악용하여 인증이나 접근 통제를 우회하는 수법으로 권한을 탈취
    • IP주소를 직접 입력하여 접근해 방지

     

    취약한 API사용

    • 보안 문제로 금지된 대표적인 API는 C언어의 문자열 함수 strcat(),strcpy(),sprintf()등이 있음
    • 보안상 안전한 API라고 하더라도 자원에 대한 직접 연결, 네트워크 소켓을 통한 직접호출과 같은 인터페이스 사용시에도 보안 약점 노출
    • 보안 문제로 금지된 함수는 안전한 함수로 대체하고 API 매뉴얼을 참고하여 보안이 보장되는 인터페이스를 사용해 방지

     

     

    암호 알고리즘

    중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법으로 암호화 방식은 아래와 같음

    양방향 개인키 Stream 방식
    Block 방식
    공개키  
    단방향 HASH  

     

     

    개인키 암호화 기법

    동일한 키로 데이터를 암/복호화

    • 대칭 암호 기법 또는 단일키 암호화 기법이라고도 함
    • 블록 암호화 : 한번에 하나의 데이터 블록을 암호화
      • DES, SEED, AES, ARIA
    • 스트림 암호화 : 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화
      • LFSR, RC4
    • 장점 : 암/복호화 속도가 빠르고 알고리즘이 단순하며 공개키 암호기법보다 파일의 크기가 작음
    • 단점 : 사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많아짐

     

    공개키 암호화 기법

    암호화할 때 사용하는 공개키는 DB사용자에게 공개하고, 복호화할 때의 비밀키는 관리자가 비밀리에 관리

    • 비대칭 암호화 기법이라고 하며 대표적으로 RSA(Revest Shamir Adleman)기법이 있음
    • 장점  : 키의 분배가 용이하고 관리해야 할 키의 개수가 적음
    • 단점 : 암/복호화 속도가 느리고 알고리즘이 복잡하며 개인키 암호기법보다 파일의 크기가 큼
    • 공개키 기반 구조(PKI;Public KEy Infrastructure) : 공개키 암호 시스템을 안전하게 사용하고 관리하기 위한 정보 보호 표준 방식
      • X.509방식 : 인증기간에서 발생하는 인증서를 기반으로 상호 인증 제공
      • 비X.509방식 : 국가별, 지역별로 맞게 보완 및 개발

    양방향 알고리즘 종류

    해시

    임의의 길이의 입력데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것

    • 해시함수를 이용하여 해시키로 변환
    • 데이터의 암호화, 무결성 검증을 위해 사용,정보보호
    • SHA시리즈, MD5, N-NASH, SNEFRU등이 있음

     

    다음 글: 2020.05.07 - [2020년/정처기] - [2020 정보처리기사 실기] Section 10. 응용 SW 기초 기술 활용(1/4)