ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 소프트웨어 개발 보안 구축 - 소프트웨어 개발 보안 설계
    카테고리 없음 2020. 10. 11. 22:33

    소프트웨어 개발 보안 설계

     

    SW 개발 보안의 개념

     

     - 소스 코드 등에 존재하는 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등 소프트웨어 개발

     

       과정에서 지켜야할 일련의 보안 활동을 말한다.

     

    SW 개발 보안의 구성요소

     

     - 정보보안의 세 가지 요소 기밀성, 무결성, 가용성 

    3대 요소 설명
    기밀성
    (Confidentiality)
    인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출 차단
    가용성
    (Availability)
    권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성
    무결성
    (Integrity)
    정당한 방법을 따르지 않고선 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 
    변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성

     

    SW 개발 보안 용어

    용어 설명
    자산
    (Assets)
    조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상
    ex) 서버의 하드웨어, 기업의 중요 데이터
    위협
    (Threat)
    조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
    ex) 해킹, 삭제, 자산의 불법적인 유출, 위/변조, 파손
    취약점
    (Vulnerability)
    위협이 발생하기 위한 사전 조건에 따른 상황
    ex) 평문 전송, 입력값 미검증, 비밀번호를 공유
    위험
    (Risk)
    위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성

     

    SW 개발 보안을 위한 공격기법의 이해

     

    1) Dos(Denial of Service) 공격

     

     - 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격

     

     - 특정 서버에 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스를 이용하지 못하게 하거나 서버의 TCP를 

     

      소진시키는 등의 공격

     

     2) Dos 공격의 종류

     

     - Dos 공격의 종류에는 지역 시스템 공격과 원격 네트워크 공격이 있다.

     

    종류 설명
    지역 시스템 공격 - 실제 대상 시스템에 접근하여 서버 하드웨어에 직접 과부하를 주는 공격
    ex) 메모리 고갈, 프로세스 서비스 거부, 디스크 서비스 거부
    원격 네트워크 공격 - 공격자가 목표시스템에 접근하지 않고 원격지에서 인터넷 등을 이용한 공격
    - 서비스를 제공받지 못하거나 실제 시스템에 영향

    2) DDos(Distributed Dos) 공격

     

    - Dos의 또 다른 형태로 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법

     

    - 해커들이 취약한 인터넷 시스템에 대한 액세스가 이뤄지면, 침입한 시스템에 소프트웨어를 설치하고 이를 실행시켜

     

       원격에서 공격을 개시.

     

     - DDos 공격 구성요소

     

     *hamad

    구성요소 설명
    핸들러(handler) - 마스터 시스템의 역할을 수행하는 프로그램
    에이전트(agent) - 공격 대상에게 직접 공격을 가하는 시스템
    마스터(master) - 공격자에게서 직접 명령을 받는 시스템
    - 여러 대의 에이전트를 관리
    공격자(attacker) - 공격을 주도하는 해커의 컴퓨터
    데몬(demon) 프로그램 - 에이전트 시스템의 역할을 수행하는 시스템

     

    3) DDos 공격의 대응 방안

     

    대응방법 설명
    차단 정책 업데이트 공격 규모를 확인하여 가용성이 침해될 수 있는 지점을 확인 및 데이터 기반 차단 정책 업데이트
    좀비 PC IP 확보 공격자는 대부분 Source IP를 위조하므로 IP위변조 여부를 확인하는 절차 필요
    보안 솔루션 운영 방화벽, 침입 탐지시스템 등의 보안 솔루션 운영
    홈페이지 보안 관리 홈페이지에 대한 모의 해킹 등을 수행하여 보안 유지
    시스템 패치 시스템에 존재하는 취약점을 패치를 통해 해결

     

    자원 고갈 공격

     

     - 서버 간 핸드셰이크(handshake)를 통해 통신이 연결되는 정상 트래픽과 달리 Dos 공격은 정상 접속을 시도하는 

     

       오픈된 소켓에 트래픽을 집중시킨다.

     

     - 공격이 임계치에 도달하면 사용자들은 네트워크에 전혀 접속할 수 없게 된다.

     

     1) SYN Flooding

     

     2) UDP Flooding 

     

     3) 스머프(Smurf)

     

     4) PoD(Ping of Death)

     

    애플리케이션 공격

     - HTTP Get Flooding

     

     - Slowloris (Slow HTTP header Dos)

     

     - Rudy(Slow HTTP Post Dos) 

     

    네트워크 서비스 공격

    - 네트워크 스캐너(Scanner), 스니퍼(Sniffer)

     

    - 패스워드 크래킹

     

     - IP Spoofing

     

     - 트로이 목마

     

     

    취약점 공격

     

    공격기법 설명
    랜드 어택(land Attack) 출발지 IP와 목적지 IP를 같은 패킷주소로 만들어 보냄으로써 수신자가 자신에게 응답을 보내게 하여 시스템의 가용성을 침해
    봉크/보잉크(bonk/) 프로토콜의 오류 제어를이용한 공격기법으로써 시스템의 패킷 재전송과 재조립이 과부하를 발생
    * 봉크 : 같은 시퀀스 번호를 꼐속 보냄
      보잉크 : 일정간 산격으로 시퀀스 번호에 빈 공간 생성
    티어 드롭(tear drop) - IP패킷의 재조합 과정에서 잘못된 Frament Offset 정보로 인해 수신시스템이 문제를 발생하도록 만드는 Dos공격
    - 공격자는 IP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고, 이를 수신한 시스템이 재조립하는 과정에서 오류가 발생, 시스템의 기능을 마비시키는 공격 방식

     

    SW 개발 보안을 위한 암호화 알고리즘

     

     암호 알고리즘의(Encryption Algorithm) 개념

     

     - 데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없도록 만드는 것

     

    암호 알고리즘 방식

    종류 설명
    대칭키 암호화 방식 - 암호화 알고리즘의 한 종류로, 암호호와 복호화에 같은 암호키를 쓰는 알고리즘
    - 대칭 키는 블록 암호화 스트림 암호화 알고리즘으로 나뉨
    블록 암호 방식 긴 평문을 암호화 하기 위해 고정 길이의 블록을 암호화하는 블록 암호 알고리즘을 반복하는 방법
    ex) DES, AES, SEED
    스트림 암호 방식 매우 긴 주기의 난수열을 발생시켜 평문과 더불어 암호문을 생성하는 방식
    ex) RC4
    비대칭키 암호화 방식 - 공개 키를 이용해 암호화하고 공개 키에 해당하는 개인 키를 이용해 복호화하는 암호 방식
    - 비대칭 키 암호 방식에서는 공개 키와 개인 키가 존재하며, 공개 키는 누구나 알 수 있지만, 그에 대응하는 개인키는 키의 소유자만이 알 수 있어야 함
    - 비밀 키는 키의 소유자만이 알 수 있어야 한다. 공개 키는 보안 타협 없이 공개적으로 배포가 가능
    - 비대칭키 암호를 구성하는 알고리즘은 댗이 키 암호 방식과 비교하여 공개 키 암호 방식이라고 부름
    ex) 디피-헬만, RSA
    해시 방식 - 단방향 알고리즘으로서 임의의 데이터를 고정된 길이의 데이터로 매핑하는 함수
    - 해시 함수의 결과로 원본 데이터를 유추하기 어려운 것을 이용
    - 연산에 걸리는 시간이 빠른 것이 장점이지만, 동일한 결과를 갖는 값이 발생하는 해시 충돌 문제 발생 가능
    ex) SHA, MD5

     


    정보에 대한 보안 항목 식별

     

     - 내, 외부 환경 분석을 통하여 보안 항목을 분석하고 규제와 컴플라이언스 이슈 제거를 위한 사전 항목을 식별

     

     - 정보보호 관련 법령을 인지하고 관련 보안 위협요소를 검토

    관련 법규 주요 내용
    개인정보 보호법 개인정보 처리 과정상의 정보 주체와 개인정보 처리자의 권리, 의무 등 규정
    정보통신망 이용촉진 및
    정보보호 등에 관한 법률
    정보통신망을 통하여 수집, 처리, 보관, 이용되는 개인정보의 보호에 관한 규정
    신용 정보의 이용 및
    보호에 관한 법률
    개인 신용정보의 취급 단계별 보호조치 및 의무사항에 관한 규정
    위치정보의 보호 및
    이용 등에 관한 법률
     
       

     

    암호화 조치 명시(주요 3법)

    구분 암호화 대상 개인정보 보호법 정보통신망법 신용정보법
    인증 비밀번호 바이오 정보 해당 해당 해당
    식별 주민등록번호
    운전면허번호
    여권번호
    외국인등록번호
    해당 해당  
    금융 계좌번호
    신용카드번호
      해당  
    위치 위치번호     해당

     

    개인정보 보호법 검토

     

     - 개인정보 처리 과정상의 정보 주체와 개인정보 처리자의 권리, 의무 등을 검토하여 소프트웨어 개발 요구사항에 충분히 반영

    조항 주체 설명
    24조 고유 식별정보의 처리제한 고유 식별정보를 처리하는 경우
    29조 안전조치 의무화 분실, 도난, 유출, 변조, 훼손
    30조 개인정보의 안전성 확보조치  

     

    정보통신망 이용촉진 및 정보보호 등에 관한 법률

    조항 주체 설명
    15조 개인정보의
    보호조치
    - 비밀번호 및 바이오 정보(지문, 홍채, 음성, 필적 등) 일방향 암호화 저장
    - 주민등록번호, 계좌번호, 금융정보를 암호화하여 저장
    - 개인정보 및 인증정보 송,수신시 보안 강화된 서버 인프라 구축
    28조 - 개인정보 취급 시 개인정보의 분실, 도난, 훼손, 변조, 유출 방지를 위해 기술적, 관리적 조치 수행
    6조 개인정보의 암호화 - 비밀번호, 바이오 정보는 복호화되지 않도록 일방향 암호화 하여 저장
    - 주민등록번호, 신용카드 번호, 계좌번호에 대해 안전한 암호화 알고리즘으로 암호화하여 저장
    - 서버는 SSL인증서를 통해 암호화하여 송수신

     

    개인정보 등급 식별

     

     - 물리적, 기술적 접근 허용범위와 정보유출 시 예상되는 피해를 기준으로 보안 등급을 결정하거나, 법정의무 사항에 준하는 보안 강도를 

     

       적용하여 정보가 처리될 수 있도록 설계

     

     

    * 일방향 암호화 : 암호화는 수행하지만 절대로 복호화가 불가능한 알고리즘

     

      SSL(Secure Socket Layer) : 응용계층과 TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송 시 기밀성을 보장하는 공개키 기반의 보안

     

                                                  프로토콜

     

     

    정보 보안등급 예시

    보안등급(가치) 설명
    1등급(5) - 그 자체로 개인을 식별할 수 있거나 민감한 정보
    - 관련 법령에 따라 처리가 엄격히 제한된 정보
    - 유출 시 범죄에 직접 이용 가능한 정보
    2등급(3) - 조합되면 명확히 개인을 식별 가능한 정보
    - 유출 시 법적 책임 부담 가능한 정보
    3등급(1) - 개인정보와 결합하여 부가적인 정보 제공 가능한 정보
    - 제한적인 분야에서 불법적 이용 가능한 정보

     

    개인정보 등급분류

    등급 분류 개인정보 종류
    1등급 고유 식별정보 - 개인을 고유하게 구별하기 위하여 부여된 식별번호
    - 주민번호, 여권번호, 운전면허번호, 외국인등록번호
    민감 정보 - 유전자 검사정보, 범죄경력정보 등 정보 주체의 사생활을 현저하게 침해할 수 있는 정보
    - 사상, 신념, 노동조합, 정치적 견해 등
    - 병력, 신체, 정신적 장애, 성적 취향 등
    인증정보 - 비밀번호, 바이오 정보(지문, 홍채, 정맥 등)
    신용정보 - 신용정보, 신용카드 번호, 계좌번호
    2등급 개인 식별정보 - 이름, 주소, 전화번호, 핸드폰번호, 이메일 주소, 생년월일, 성별 등
    개인 관련 정보 - 학력, 직업, 키, 몸무게, 혼인 여부, 가족 상황, 취미 등
    기타 개인정보 - 해당 사업의 특성에 따라 별도 정의
    3등급 자동생성정보 - IP정보, MAC 주소, 사이트 방문 기록, 쿠키 등
    가공정보 - 통계 정보, 가입자 성향 등
    제한적 본인 식별 정보 - 회원 번호, 사번, 내부용 개인 식별정보 등

     

    자산에 대한 보안 항목식별

     

    정보자산의 주요 용어

     

     - 정보자산은 자산, 사용자, 소유자, 관리자 등의 주요개념이 있다.

     

    용어 설명
    자산(Asset) - 조직에서 보유한 가치 있는 모든 것
    ex) 정보, 소프트웨어, 물리적 자산, 인력, 서비스 등
    사용자(User) - 정보처리 기기 및 시스템을 활용해 
    소유자(Owner) - 자산의 소유 권한 및 관리에 대한 최종 책임자
    관리자(Admin) - 자산의 소유자부터 관리위임을 받은 자
    - 자산의 보관 및 운영 책임을 짐

     

    정보자산의 식별

     

     - 기업이 가진 중요자산을 보호하기 위해 자산의 식별과 평가를 수행한다.

     

     - 위험을 분석하기 위해 적절한 분류기준에 따라 중복, 누락을 최소화하여 자산목록을 작성한다.

     

     

    정보자산의 분류기준

     

     - 정보자산은 소프트웨어, 하드웨어, 데이터, 문서, 시설, 인력으로 분류

    구분 설명 사용 예시
    소프트웨어 - 상용 또는 자체 개발된 소프트웨어 자산 애플리케이션, 개발도구, 유틸리티
    하드웨어 - 대외 서비스를 위해 사용되거나 개인이 사용하는 자산 서버, pc, 노트북, 라우터, 스위치
    데이터 - 전자적 형태로 저장되는 데이터 데이터베이스, 데이터파일
    문서 - 종이 매체로 된 정보자산
    - 업무 목적 문서, 기록물
    결재 문서, 계약서, 합의서
    시설 - 시스템 설치, 운영 장소 등 물리적 공간 및 시설 사무실, 전산실, 통신실
    지원설비 - 정보시스템 운영을 지원하기 위한 설비 UPS, 항온항습기, 발전기
    인력 - 시스템 운영 업무 수행 중인 인력 내부직원, 협력업체

     

    자산목록 작성

     

     - 자산목록은 반드시 포함되어야 할 항목을 명시하고 주기적으로 갱신되어 최신 상태를 유지해야 한다.

     

     

     

     

     

    댓글

Designed by Tistory.