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

최윤성·2023년 4월 22일
0

정보처리기사

목록 보기
10/12

Secure SDLC

  • 보안상 안전한 소프트웨어를 개발하기 위해 SDLC(Software Development Life Cycle)에 보안 강화를 위한 프로세스를 포함한 것을 의미한다.
  • Secure SDLC의 대표적인 방법론
    • CLASP: SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론
    • SDL: 마이크로소프트 사에서 안전한 소프트웨어 개발을 위해 기존의 SDLC를 개선한 방법론
    • Seven Touchpoints: 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론
  • 소프트웨어 개발 보안 요소
    • 기밀성: 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됨
    • 무결성: 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음
    • 가용성: 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음
    • 인증: 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위
    • 부인 방지: 데이터를 송수신한 자가 송수신한 사실을 부인할 수 없도록 송수신 증거를 제공함

입력 데이터 검증 및 표현

  • 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들이다.
  • 입력 데이터 검증 및 표현의 보안 약점
    • SQL 삽입: 웹 응용 프로그램에 SQL을 삽입하여 내부 데이터베이스 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회하는 보안 약점
    • 경로 조작 및 자원 삽입: 데이터 입출력 경로를 조작하여 서버 자원을 수정/삭제 할 수 있는 보안 약점
    • 크로스사이트 스크립팅(XSS): 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점
    • 운영체제 명령어 삽입: 외부 입력값을 통해 시스템 명령어의 실행을 유도함으로써 권한을 탈취하거나 시스템 장애를 유발하는 보안 약점
    • 위험한 형식 파일 업로드: 악의적인 명령어가 포함된 스크립트 파일을 업로드함으로써 시스템에 손상을 주거나, 시스템을 제어할 수 있는 보안 약점
    • 신뢰되지 않는 URL 주소로 자동접속 연결: 입력 값으로 사이트 주소를 받는 경우 이를 조작하여 방문자를 피싱 사이트로 유도하는 보안 약점
    • 메모리 버퍼 오버플로: 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점

암호 알고리즘

  • 패스워드, 주민번호, 은행계좌와 같은 중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법을 의미한다.
  • 암호화 방식
    • 양방향
      • 개인키
      • 공개키
    • 단방향
      • 해시

개인키 암호화(Private Key Encryption) 기법

  • 동일한 키로 데이터를 암호화하고 복호화하는 암호화기법이다.
  • 대칭 암호 기법 또는 단일키 암호화 기법이라고도 한다.
  • 암호화/복호화 속도가 빠르지만, 관리해야 할 키의 수가 많다.
  • 개인키 암호화 기법의 종류
    • 스트림(Stream) 암호화 방식: 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화 하는 방식
    • 블록(Block) 암호화 방식: 한 번에 하나의 데이터 블록을 암호화 하는 방식

공개키 암호화(Public Key Encryption) 기법

  • 데이터를 암호화할 때 사용하는 공개키는 사용자에게 공개하고, 복호화할 때의 비밀키는 관리자가 비밀리에 관리하는 암호화 기법이다.
  • 비대칭 암호 기법이라고도 한다.
  • 관리해야 할 키의 수가 적지만, 암호화/복호화 속도가 느리다.
  • 대표적으로는 RSA 기법이 있다.
    • RSA(Rivest Shamir Adleman): 라이베스트, 샤미르, 애들먼에 의해 제안된 공개키 암호화 알고리즘으로, 큰 숫자를 소인수분해 하기 어렵다는 것에 기반하여 만들어짐

해시(Hash)

  • 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미한다.
  • 데이터의 암호화, 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용된다.

서비스 공격 유형

서비스 거부(DoS; Denial of Service) 공격

  • 표적이 되는 서버의 자원을 고갈시킬 목적으로 다수의 공격자 또는 시스템에서 대량의 데이터를 한 곳의 서버에 집중적으로 전송함으로써, 표적이되는 서버의 정상적인 기능을 방해하는 것이다.
  • 주요 서비스 거부 공격의 유형
    • Ping of Death(죽음의 핑): Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격 방법이다.
    • SMURFING(스머핑): IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법이다.
    • SYN Flooding: 공격자가 가상의 클라이언트로 위장하여 3-way-handshake 과정을 의도적으로 중단시킴으로써 공격 대상지인 서버가 대기 상태에 놓여 정상적인 서비스를 수행하지 못하게 하는 공격 방법이다.
    • TearDrop: 분할된 여러 패킷의 Offset 값을 변경시켜 수신 측에서 패킷을 재조립할 때 오류로 인한 과부하를 발생시킴으로써 시스템이 다운되도록 하는 공격 방법이다.
    • LAND Attack(Local Area Network Denial Attack): 패킷을 전송할 때 송신 IP주소와 수신 IP 주소를 모두 공격 대상의 IP 주소로 하여 공격 대상에게 전송하는 것으로, 자신에 대해 무한히 응답하게 하는 공격이다.
    • DDoS(Distributed Denial of Service) 공격: 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 서비스 거부 공격을 수행하는 것이다.

네트워크 침해 공격 관련 용어

  • 세션 하이재킹: 상호 인증 과정을 거친 후 접속해 있는 서버와 서로 접속되어 클라이언트 사이의 세션 정보를 가로채는 공격 기법
  • ARP 스푸핑(Spoofing): ARP의 취약점을 이용한 공격 기법으로, 자신의 물리적 주소를 공격대상의 것으로 변조하여 공격 대상에게 도달해야 하는 패킷을 가로채거나 방해함
  • 스미싱(Smishing): 문자 메시지(SNS)를 이용해 사용자의 개인 신용 정보를 빼내는 수법
  • 스피어 피싱(Spear Phishing): 사회 공학의 한 기법으로, 특정 대상을 선정한 후 그 대상에게 일반적인 이메일로 위장한 메일을 지속적으로 발송하여, 발송 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도해 사용자의 개인정보를 탈취함
  • APT(Advance Persistent Threats): 다양한 IT 기술과 방식들을 이용해 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤 때를 기다리면서 보안을 무력화시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격
  • 무작위 대입 공격(Brute Force Attack): 암호화된 문서의 암호키를 찾아내기 위해 적용 가능한 모든 값을 대입하여 공격하는 방식
  • 큐싱(Qshing): QR코드를 통해 악성 앱의 다운로드를 유도하거나 악성 프로그램을 설치하도록 하는 금융사기 기법
  • SQL 삽입 공격: 전문 스캐너 프로그램 혹은 봇넷 등을 이용해 웹사이트를 무차별적으로 공격하는 과정에서 취약한 사이트가 발견되면 데이터베이스 등의 데이터를 조작하는 일련의 공격 방식
  • 크로스 사이트 스크립팅: 네트워크를 통한 컴퓨터 보안 공격의 하나로, 웹 페이지의 내용을 사용자 브라우저에 표현하기 위해 사용되는 스크립트의 취약점을 악용한 해킹 기법
  • 스니핑(Sniffing): 네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나로 수동적 공격에 해당함

정보 보안 침해 공격 관련 용어

  • 좀비 PC: 악성코드에 감염되어 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터로 C&C(Command and Control) 서버의 제어를 받아 주로 DDoS 공격 등에 이용됨
  • C&C 서버: 해커가 원격지에서 감염된 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용하는 서버를 말함
  • 봇넷(Botnet): 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태를 말함
  • 웜(Worm): 네트워크를 통해 연속적으로 자신을 복제하여 시스템의 부하를 높임으로써 결국 시스템을 다운시키는 바이러스의 일종으로, 분산 서비스 거부 공격, 버퍼 오버플로 공격, 슬래머 등이 웜 공격의 한 형태임
  • 제로 데이 공격: 보안 취약점이 발견되었을 때 발견된 취약점의 존재 자체가 널리 공표되기도 전에 해당 취약점을 통하여 이루어지는 보안 공격으로, 공격의 신속성을 의미함
  • 키로거 공격: 컴퓨터 사용자의 키보드 움직임을 탐지해 ID, 패스워드, 계좌번호, 카드번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격
  • 랜섬웨어: 인터넷 사용자의 컴퓨터에 잠입해 내부 문서나 파일 등을 암호화해 사용자가 열지 못하게 하는 프로그램으로, 암호 해독용 프로그램의 전달을 조건으로 사용자에게 돈을 요구하기도 함
  • 백도어: 시스템 설계자가 서비스 기술자나 유지 보수 프로그램 작성자의 액세스 편의를 위해 시스템 보안을 제거하여 만들어놓은 비밀 통로로, 컴퓨터 범죄에 악용되기도 함
  • 트로이 목마: 정상적인 기능을 하는 프로그램으로 위장하여 프로그램 내에 숨어 있다가 해당 프로그램이 동작할 때 활성화되어 부작용을 일으키는 것으로, 자기 복제 능력은 없음

보안 솔루션

  • 접근 통제, 침입 차단 및 탐지 등을 수행하여 외부로부터의 불법적인 침입을 막는 기술 및 시스템을 말한다.
  • 주요 보안 솔루션
    • 방화벽: 기업이나 조직 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용/거부/수정하는 기능을 가진 침입 차단 시스템
    • 침입 탐지 시스템(IDS): 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템
    • 침입 방지 시스템(IPS): 비정상적인 트래픽을 능동적으로 차단하고 격리하는 등의 방어 조치를 취하는 보안 솔루션
    • 데이터 유출 방지(DLP): 내부 정보의 외부 유출을 방지하는 보안 솔루션
    • 웹 방화벽: 일반 방화벽이 탐지하지 못하는 SQL 삽입 공격, XSS 등의 웹 기반 공격을 방어할 목적으로 만들어진 웹 서버에 특화된 방화벽
    • VPN: 인터넷 등 통신 사업자의 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
    • NAC: 네트워크에 접속하는 내부 PC의 MAC 주소를 IP 관리 시스템에 등록한 후 일관된 보안 관리 기능을 제공하는 보안 솔루션
    • ESM: 다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션

0개의 댓글