그냥 게임개발자

9장 소프트웨어 개발 보안 구축 본문

나만의 정처기 공부

9장 소프트웨어 개발 보안 구축

sudoju 2022. 4. 24. 21:47

Chapter01 소프트웨어 개발 보안 설계

 

  • SW 개발 보안 : 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동
    • SW 개발 보안 생명주기 : 요구사항 명세 -> 설계 -> 구현 -> 테스트 -> 유지보수
  • SW 개발 보안 3대 요소
    • (기무가)
    • 기밀성(Confidentiality) : 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용
    • 무결성(Integrity) : 시스템 내의 정보는 오직 인가된 사용자만 수정 가능
    • 가용성(Availability) : 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용가능
  • SW 개발 보안 용어
    • 자산 : 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상
    • 위협 : 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
    • 취약점 : 위협이 발생하기 위한 사전 조건으로 시스템의 정보 보증을 낮추는 데 사용되는 약점
    • 위험 : 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성
  • DoS(Denial of Service) 공격 : 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격
  • DoS공격 종류
    • SYN 플러딩(SYN Flooding) : 서버의 동시 가용 사용자수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가능하게 하는 공격 공격자는 ACK를 발송하지 않음
    • UDP 플러딩(UDP Flooding) : 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지를 생성하게 하여 지속해서 자원을 고갈시키는 공격
    • 스머프(Smurf)/스머핑(Smurfing) : 출발지 주소를 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo패킷을 직접 브로드캐스팅하여 마비시키는 공격
      • 직접 브로드캐스팅 : IP 주소의 호스트 ID 비트를 모두 1로 설정하여 Broadcast 하는 방식을 Directed Broadcast라고 함
    • 죽음의 핑(Ping Of Death) : ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송하여 정상적인 서비스를 못하도록 하는 공격
    • 랜드 어택(Land Attack) : 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보내 시스템의 가용성을 침해하는 공격
    • 티어 드롭(Tear Drop) : IP 패킷의 재조합 과정에서 Fragement Offset이 잘못된 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 공격
    • 봉크(Bonk)/보잉크(Boink) : 프로토콜의 오류 제어를 이용한 공격기법
  • DDos(Distributed Deinal of Serivce) : 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정사이트를 공격하는 기법
  • DDos 공격 구성요소
    • HAMAD
    • 핸들러 : 마스터 시스템의 역할을 수행
    • 에이전트 : 공격 대상에 직접 공격을 가함
    • 마스터 : 공격자에게 직접 명령을 받음, 여러 대의 에이전트 관리
    • 공격자 : 공격을 주도하는 해커의 컴퓨터
    • 데몬 프로그램 : 에이전트 시스템의 역할을 수행
  • DDos 공격 도구
    • Trinoo : 많은 소스로부터 통합된 UDP flood 서비스 거부 공격을 유발하는 데 사용되는 도구
    • Trible Flood Network : 많은 소스에서 하나 혹은 여러개의 목표 시스템에 대해 서비스 거부 공격을 수행할 수 있는 도구
    • Stacheldraht : 분산 서비스 거부 에이전트 역할을 하는 Linux 및 Solaris 시스템용 멀웨어 도구
  • DoS와 DDos의 차이
    • Dos는 직접 공격 DDos는 공격하도록 지시
    • Dos는 한사람에 의해 공격을 감행, DDos는 수많은 감염 호스트를 통해 공격을 감행
  • DRDos(Distributed Reflection Dos) : 공격자는 출발지 IP를 공격대상 IP로 위조하여 다수의 반사서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부(Dos)가 되는 공격
  • 세션 하이재킹(Session Hijacking) : TCP의 세션 관리 취약점을 이용한 공격 기법, 케빈 미트닉이 사용
  • 애플리케이션 공격기법
    • HTTP GET 플러딩 : 과도한 Get 메시지를 이용하여 웹 서버의 과부하를 유발시키는 공격
    • Slowloris : HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열을 전송하지 않고, 대상 웹 서버와 연결상태를 장시간 지속시키고 연결자원을 모두 소진시키는 서비스 거부 공격
    • RUDY : 요청 헤더의 Content-Length를 비상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결상태를 유지시키는 공격
    • Slow HTTP Read DoS : 다수 HTTP 패킷을 지속적으로 전송하여 웹서버의 연결상태가 장시간 지속, 연결자원을 소진시키는 서비스 거부 공격
    • Hulk DoS : 공격자가 웹 페이지 주소를 지속적으로 변경하면서 다량으로 GET 요청을 발생시키는 서비스 거부 공격
    • Hash DoS : 많은 수의 파라미터를 POST 방식으로 웹서버로 전달하여 다수의 해시 충돌을 발생시켜서 자원을 소모시키는 서비스 거부 공격
  • 네트워크 공격
    • 스니핑 : 공격대상의 데이터만 몰래 들여다보는 수동적 공격 기법
    • 네트워크 스캐너, 스니퍼 : 네트워크 하드웨어 및 소프트웨어 구성의 취약점 파악을 위해 공격자가 취약점을 탐색하는 공격 도구
      • 패스워드 크래킹
        • 사전 크래킹 : ID와 PW가 될 가능성이 있는 단어를 파일로 만들어 파일의 단어를 대입하여 크랙하는 공격 기법
        • 무차별 크래킹 : 무작위로 패스워드 자리에 대입하여 패스워드를 알아내는 공격 기법
        • 패스워드 하이브리드 공격 : 사전 공격 + 무차별 공격
        • 레인보우 테이블 공격 : 크래킹 하고자 하는 해시 값을 테이블에서 검색해서 역으로 패스워드를 찾는 공격 기법
      • IP 스푸핑 : 침입자가 인증된 컴퓨팅 시스템인 것처럼 속여서 인증된 호스트의 IP 주소로 위조하여 타깃에 전송하는 공격 기법
      • ARP 스푸핑 : 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송
      • ICMP Redirect 공격 : 스니핑 시스템을 네트워크에 존재하는 또다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격 기법
      • 트로이 목마 : 악성 루틴이 숨어있는 프로그램, 실행하면 악성 코드를 실행
    • 버퍼 오버플로우(Buffer Overflow) 공격 : 메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력하여 프로세스의 흐름을 변경시켜서 악성 코드를 실행 시키는 공격 기법
      • 스택 버퍼 : 스택 영역에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력해 공격자가 원하는 임의의 코드를 실행하는 공격 기법
      • 힙 버퍼 : 힙 영역에 할당된 버퍼 크기를 초과하는 데이터를 입력하여 공격자가 원하는 임의의 코드를 실행하는 공격기법
    • 버퍼 오버플로우 방안
      • 스택 가드 : 카나리라고 불리는 무결성 체크용 값을 복귀 주소와 변수 사이에 삽입, 카나리 값 체크하여 변하면 호출하지 않음
      • 스택 쉴드 : 함수 시작 시 복귀 주소를 Global RET라는 특수 스택에 저장 함수 종료시 스택의 RET 값을 비교해 다른 경우 실행 중단
      • ASLR : 메모리 공격을 방어하기 위해 주소 공간 배치를 난수화 실행 시 마다 메모리주소 변경
      • 안전한 함수 활용
    • 백도어(Backdoor) : 허가받지 않고 시스템의 접속하는 권리, 정상적인 인증 절차를 우회하는 기법
    • 주요 시스템 보안 공격 기법
      • 포맷 스트링 공격 : 포맷 스트링을 인자로 하는 함수의 취약점을 이용한 공격
      • 레이스 컨디션 공격 : 둘 이상의 프로세스나 스레드가 공유자원을 동시에 접근할 때 접근 순서에 따라 비정상적인 결과가 발생하는 공격
      • 키로거 공격 : 컴퓨터 사용자의 키보드 움직임을 탐지해서 저장, ID나 패스워드, 계좌번호 등 개인의 중요한 정보를 몰래 빼가는 공격
    • 보안 관련 용어
      • 스피어 피싱(Spear Phishing) : 발송 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도하여 사용자의 개인정보를 탈취하는 공격기법
      • 스미싱(Smishing) : SMS를 이용하여 개인 비밀정보를 요구하거나 휴대폰 소액 결제를 유도하는 피싱 공격
      • 큐싱(Qshing) : QR코드를 통해 악성 앱을 내려받도록 유도하여 금융 정보 등을 빼내는 피싱 공격
      • 봇넷(Botnet) : 악성 프로그램이 감염되어 있는 컴퓨터들이 네트워크로 연결된 형태
      • APT 공격 (Advanced Persistent Threat) : 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법
      • 공급망 공격(Supply Chain Attack) : SW개발사의 네트워크에 침투하여 악의적 코드를 삽입, 서버 배포하여 사용자가 설치 또는 업데이트시에 자동적으로 감염되도록 하는 공격 기법
      • 제로데이 공격(Zero Day Attack) : 보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 악용하여 이루어지는 보안 공격기법
      • 웜(Worm) : 스스로 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 소프트웨어 프로그램
      • 악성 봇(Malicious Bot) : 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 또는 코드
      • 사이버 킬체인(Cyber Kill Chain) : 공격형 방위 시스템, APT 공격 방어 분석 모델
      • 랜섬웨어(Ransomware) : 시스템의 파일을 암호화하여 인질처럼 잡고 몸값을 요구하는 악성 소프트웨어
      • 이블 트윈(Evil Twin) 공격 : 핫스팟에 연결한 무선 사용자들의 정보를 탈취하는 무선 네트워크 공격 기법
  • 서버 인증의 기능 : 스니핑 방지(SSL 인증서 설치), 피싱 방지, 데이터 변조 방지, 기업 신뢰도 향상(기업 인증)
  • 인증 기술의 유형 (지소생특)
    • 지식기반 인증 : 사용자가 기억하고 있는 지식(ID/PW)
    • 소지기반 인증 : 소지하고 있는 사용자 물품(공인인증서, OTP)
    • 생체기반 인증 : 고유한 사용자의 생체 정보(홍채, 얼굴, 지문 등)
    • 특징기반 인증 : 사용자의 특징을 활용(서명, 몸짓)
  • 접근 통제 용어
    • 주체 : 객체나 객체 내의 데이터에 대한 접근을 요청하는 능동적인 개체(행위자)
    • 접근 : 접근 대상이 수동적인 개체 혹은 행위가 일어나는 아이템(제공자)
    • 객체 : 읽고, 만들고, 삭제하거나 수정하는 등의 행위를 하는 주체의 활동
  • 접근 통제 기법
    • 식별(Identification) : 자신이 누구라고 시스템에 밝히는 행위
    • 인증(Authentication) : 주체의 신원을 검증하기 위한 활동
    • 인가(Authorization) : 인증된 주체에게 접근을 허용하는 활동
    • 책임추적성(Accountability) : 주체의 접근을 추적하고 행동을 기록하는 활동
  • 서버 접근 통제 유형
    • 임의적 접근 통제(DAC) : 신분에 근거하여 객체에 대한 접근을 제한하는 방법
    • 강제적 접근 통제(MAC) : 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한하는 방법
    • 역할 기반 접근 통제(RBAC) : 중앙 관리자가 조직 내 맡은 역할에 기초하여 자원에 대한 접근을 제한하는 방법
  • 3A
    • 인증(Authentication) : 접근을 시도하는 가입자 또는 단말에 대한 식별 및 신분을 검증
    • 권한 부여(Autorization) : 검증된 가입자나 단말에게 어떤 수준의 권한과 서비스를 허용
    • 계정 관리(Accounting) : 리소스 사용에 대한 정보를 수집하고 관리하는 서비스
  • 접근 통제 보호 모델
    • 벨 라파듈라 모델 : 미 국방부지원 보안 모델, 보안 요소 중 기밀성을 강조하며 강제적 정책에 의해 접근 통제하는 모델
      • No Read Up : 보안수준이 낮은 주체는 보안 수준이 높은 객체를 읽어서는 안됨
      • No Write Down : 보안수준이 높은 주체는 보안 수준이 낮은 객체에 기록하면 안됨
    • 비바 모델 : 무결성을 보장하는 최초 모델
      • No Read Down : 보안수준이 높은 주체는 보안 수준이 낮은 등급의 객체를 읽을 수 없음
      • No Wirte Up : 보안 수준이 낮은 주체는 보안 수준이 높은 등급의 객체에 기록하면 안됨
  • 암호 알고리즘(Encryption Algorithm) : 데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법
    • 양방향 방식 : 대칭 키 암호 방식, 비대칭 키 암호 방식
    • 일방향 해시함수 방식 : MDC, MAC
  • 대칭 키 암호 방식 : 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘
    • 블록 암호 방식 : 고정 길이의 블록을 암호화하여 반복하는 알고리즘(DES, AES, SEED)
    • 스트림 암호 방식 : 매우 긴 주기의 난수열을 발생시켜 평문과 더불어 암호문을 생성하는 방식(RC4)
  • 비대칭 키 암호 방식 : 개인 키를 나눠 가지지 않은 사용자들이 안전하게 통신하는 방식, 공개키는 누구나 알 수 있으나 개인키는 키의 소유자만 알고 있어야 함(RSA, 디피헬만)
  • 일방향 암호 방식(해시 암호 방식) : 임의의 길이의 정보를 입력 받아, 고정된 길이의 암호문(해시값)을 출력하는 암호 방식
    • MAC : 키를 사용하는 메시지 인증 코드로 메시지의 무결성과 송신자의 인증 보장
    • MDC : 키를 사용하지 않는 변경 감지 코드로 메시지의 무결성 보장
  • 대칭키 암호화 알고리즘
    • DES : 1975년 IBM 개발, 대칭 키 기반 64bit, 56bit인 페이스텔 구조, 16라운드 암호
    • SEED : 1999년 한국인터넷진흥원(KISA) 개발, 128bit 비밀키로부터 생성된16개의 64bit의 라운드 키사용 블록 길이는 128bit, 키 길이에 따라 128, 256bit로 분류
    • AES : 2001년 미국 표준기술 연구소(NIST) 개발, 3DES의 성능문제를 극복하기 위해 개발, 블록크기는 128bit, 키 길이에 따라 128, 192, 256bit로 분류, AES의 라운드 수는 10, 12, 14로 분류
    • ARIA : 2004년 국가정보원과 산학연구협회가 개발, XOR과 같은 단순한 바이트 단위 연산으로 구성
    • IDEA : DES 대체, 스위스 연방기술기관 개발, 128bit 키를 사용해 64bit 평문을 8라운드에 거쳐 64bit 암호문을 만듬
    • LFSR : 선형 함수로 계산되는 구조로 되어있는 스트림 암호화 알고리즘, LFSR의 초기 비트값은 SEED라고 함
  • 비대칭키 암호화 알고리즘
    • 디피-헬만 : 최초의 공개키 알고리즘, 이산대수 계산이 어려운 문제를 기본 원리로 함
    • RSA : 1977년 MIT 개발, 소인수분해하는 수학적 알고리즘 이용하는 공개키 암호화 알고리즘
    • ElGamal : 1984년 ElGamal 개발, RSA와 유사하게 전자서명과 데이터 암복호화에 사용
    • ECC : 1985년 RSA 대안으로 개발, 타원 곡선 암호(ECC) 이산대수 문제에 기초한 공개키 암호화
  • 해시 암호화 알고리즘
    • MD5 : MD4를 개선한 암호화 알고리즘, 파일의 무결성 검사에 사용
    • SHA - 1 : 1993년 NSA에 미국 정부 표준 지정, DSA에 사용 160비트 해시값
    • SHA - 256/384/512 : 256비트의 해시값을 생성하는 해시 함수,AES 의 키 길이에 대응하도록 늘인 해시 알고리즘
    • HAS - 160 : 국내 표준 서명 알고리즘, MD5와 SHA1의 장점을 취하여 개발된 알고리즘
    • HAVAL : 메시지를 1024bits 블록으로 나눔
  • IPSec(Internet Protocol Security) : 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜
    • IPSec 동작 모드
      • 전송 모드 : IP 패킷의 페이로드(상위 프로토콜 데이터)를 보호하는 모드
      • 터널 모드 : IP 패킷 전체를 보호하는 모드
    • IPSec 프로토콜
      • 인증(AH)프로토콜 : 메시지 인증 코드(MAC)를 이용하여 인증과 송신처 인증을 제공해주는 프로토콜 기밀성 x
      • 암호화(ESP) 프로토콜 : 메시지 인증 코드와 암호화를 이용하여 인증과 송신처 인증과 기밀성 제공
      • 키 관리(IKE) 프로토콜 : Key를 주고받는 알고리즘
  • SSL/TLS : 클라이언트와 서버 간의 웹 데이터 암호화(기밀성) 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
  • SSL/TLS 구성요소
    • Change Cipher Spec Protocol : 협상이 끝난 Cipher Spec을 상대에게 알림
    • Alert Protocol : SSL/TLS 관련 경고 메시지 전달
    • Heartbeat Protocol : 서버와 클라이언트가 정상적인 상태인지 확인하기 위하여 사용
    • Handshake Protocol : 서버와 클라이언트가 서로 인증하고 암호화 키를 협상하는 프로토콜
    • Record Protocol : 합의된 Cipher Suite로 암호화 복호화 무결성 압축 해제 등 수행
  • S-HTTP : 웹상에서 네트워크 트래픽을 암호화하는 방법
  • SW 개발 보안 적용 사례
    • BSIMM : 미국 국토안보국의 지원을 받아 수행된 소프트웨어 보증 프로젝트 결과물
    • Open SAMM : OWASP에서 개발한 개방형 보완 프레임 워크
    • Seven TouchPoints : 실무적으로 검증된 개발 보안 방법론 중 하나로써 SW 보안의 모범사례를 SDLC에 통합한 소프트웨어 개발 보안 생명주기 방법론
    • MS-SDL : 마이크로소프트사가 2004년 이후 자사의 소프트웨어 개발에 의무적으로 적용하도록 고안한 보안강화 프레임워크
    • OWASP CLASP : 역할 기반의 프로세스로 구성된 보안 프레임워크

 

 

Chapter02 소프트웨어 개발 보안 구현

 

  • 시큐어 코딩 가이드 : 설계 및 구현 단계에서 해킹 등의 공격을 유발할 가능성이 있는 잠재적인 보안 취약점을  사전에 제거하고, 외부 공격으로부터 안전한 소프트웨어를 개발하는 기법(입보시 에코캡아)
    • 보안 취약점 : 운영 단계의 보안 리스크
    • 보안 약점 : 개발 단계의 보안 리스크
  • 입력 데이터 검증 및 표현 : 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목
  • 입력 데이터 검증 및 표현 취약점
    • XSS(Cross Site Script) : 검증되지 않은 외부 입력 데이터가 포함된 웹페이지를 사용자가 열람함로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격
      • Stored XSS : 방문자들이 악성 스크립트가 포함된 페이지를 읽어 봄과 동시에 악성 스크립트가 브라우저에서 실행되면서 감염되는 기법
      • Reflected XSS : 공격용 악성 URL을 생성한 후 이메일로 사용자에게 전송하면 사용자가 URL 클릭 시 즉시 공격 스크립트가 피해자로 반사되어 접속 사이트에 민감정보를 공격자에게 전송하는 기법
      • DOM XSS : 공격자는 DOM 기반 XSS 취약점이 있는 브라우저를 대상으로 조작된 URL을 이메일을 통해 발송하고 피해자가 URL 클릭 시 공격 피해를 당하는 기법 
        • 대책 : 특수문자 필터링, HTML 태그 사용금지
    • 사이트 간 요청 위조(CSRF) : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
      • 대책 : 입력화면 폼 POS방식 사용, 세션별 CSRF 토큰 사용
    • SQL 삽입(SQL Injection) : 악의적인 SQL 구문을 삽입, 실행시켜 데이터베이스의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격
      • Form SQL Injection : HTML, Form 기반 인증을 담당하는 애플리케이션의 취약점이 있는 경우 사용자 인증을 위한 쿼리 문의 조건을 임의로 조작하여 인증을 우회하는 기법
      • Union SQL Injection : 쿼리의 UNION 연산자를 이용하여 한 쿼리의 결과를 다른 쿼리의 결과에 결합하여 공격
      • Sotred Procedure SQL Injection : 저장 프로시저를 이용하여 공격
      • Mass SQL Injection : 기존 SQL Injection의 확장된 개념, 대량의 DB값이 변조되는 공격
      • Error-Based SQL Injection : DB 쿼리에 대한 에러값을 기반으로 한 단계씩 점진적으로 DB 정보를 획득하는 공격
      • Blind SQL Injection : 쿼리 결과의 참과 거짓을 통해 의도하지 않은 SQL 문을 실행하여 비정상적으로 공격 
        • 대책 : 변수 타입 지정, 사용자 입력 값 모두 체크하여 필터링
  • 보안 기능 : 소프트웨어 개발 단계에서 인증, 접근 제어, 기밀성, 암호화, 권한 관리 등을 적절하게 구현하기 위한 보안 점검 항목
  • 에러 처리 : 프로그램 실행시 발생하는 에러를 예외 처리하지 못하거나, 에러에 중요한 정보가 포함될 때 발생할 수 있는 취약점을 예방하기 위한 보안 점검 항목
  • 세션 통제 : 세션과 관려되어 발생할 수 있는 취약점을 예방하기 위한 보안 점검 항목
  • 코드 오류 : 개발자의 실수로 발생하는 프로그램 오류를 예방하기 위한 보안 점검 항목
  • 캡슐화 : 외부에 은닉이 필요한 중요한 데이터와 인가되지 않은 사용자에게 노출되지 않게 보안 취약점을 예방을 위한 보안 검증 항목
  • API 오용 : 보안에 취약한 API를 오용하여 발생할 수 있는 보안 취약점 예방을 위한 보안 검증 항목

 

  • 네트워크 보안 솔루션
    • 방화벽(FireWall) : 기업 내부, 외부 간 트래픽을 모니터링 하여 시스템의 접근을 허용/차단하는 시스템
    • 웹 방화벽(WAF : Web Application FireWall) : 웹 애플리케이션 보안에 특화된 보안 장비
    • 네트워크 접근 제어(NAC : Network Access Control) : 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션
    • 침입 탐지 시스템(IDS) : 네트워크에 발생하는 이벤트를 모니터링 하고, 보안정책 위반행위를 실시간으로 탐지하는 시스템
    • 침입 방지 시스템(IPS) : 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고, 유해트래픽에 대해 능동적으로 조치하는 시스템
    • 무선 침입 방지 시스템(WIPS) : 무선 단말기의 접속을 자동 탐지 및 차단하고 보안에 취약한 무선 공유기를 탐지하는 시스템
    • 통합 보안 시스템(UTM) : 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
    • 가상 사설망(VPN) : 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용해 마치 전용망을 사용하는 효과를 가지는 보안 솔루션
  • 시스템 보안 솔루션
    • 스팸 차단 솔루션(Anti-Spam Solution) : 메일 서버 앞단에 위치하여 Proxy 메일 서버로 동작
    • 보안 운영체제(SecureOS) : 컴퓨터 운영체제의 커널에 보안기능을 추가한 솔루션
  • 콘텐츠 유출 방지 솔루션
    • 보안 USB : 정보 유출 방지 등의 보안 기능을 갖춘 USB 메모리
    • 데이터 유출 방지(DLP) : 조직 내부의 중요 자료가 외부로 빠져나가는 것을 탐지하고 차단하는 솔루션
    • 디지털 저작권 관리(DRM) : 디지털 저작물에 대한 보호와 관리를 위한 솔루션
  • 소프트웨어 개발 보안테스트 유형
    • 정적 분석 : SW를 실행하지 않고 보안 약점을 분석, 개발 단계
    • 동적 분석 : SW를 실행환경에서 보안 약점 분석, 시험 단계
  • 비즈니스 연속성 계획(BCP) : 각종 재해, 장애, 재난으로부터 위기관리 기반으로 재해복구, 업무복구 및 재개, 비상계획 등을 통해 비즈니스 연속성을 보장하는 체계
  • 비즈니스 연속성 계획 관련 주요 용어
    • BIA : 장애나 재해로 인해 운영상의 주요 손실을 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석
    • RTO : 업무중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간
    • RPO : 업무중단 시점부터 데이터가 복구되어 다시 정상가동될 때 데이터의 손실 허용 시점
    • DRP : 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획
    • DRS : 재해 복구계획의 원활한 수행을 지원하기 위하여 평상시에 확보하여 두는 인적, 물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구센터

DRS의 유형

 

  • Mirro Site : 실시간 동시 서비스가 가능한 재해복구센터 재해 발생 시 복구까지의 소요시간 0
  • Hot Site : 최신 상태를 유지하고 있는 재해복구센터 재해 발생 시 복구까지의 소요시간 4시간 이내
  • Warm Site : Hot Site와 유사하나 중요성이 높은 자원만 부분적으로 재해복구센터에 보유하고 있는 센터, 재해 발생 시 복구까지의 소요시간은 수일 ~ 수주
  • Cold Site : 데이터만 원격지에 보관, 필요 자원을 조달하여 복구 할 수 있는 재해 복구 센터, 재해 발생 시 복구까지의 소요시간 수주~수개월

 

보안 공격 관련 중요 용어

  • 부 채널 공격 : 암호화 알고리즘의 실행 시기의 전력 소비, 전자기파 방사 등의 물리적 특성을 측정하여 암호 키 등 내부비밀 정보를 부 채널에서 획득하는 공격 기법
  • 드라이브 바이 다운로드 : 악의적인 해커가 불특정 웹 서버와 웹 페이지에 악성 스크립트를 설치, 불특정 사용자 접속 시 사용자 동의 없이 실행되어 의되된 서버로 연결하여 감염시키는 공격기법
  • 워터링홀 : 특정인에 대한 표적 공격을 목적으로 특정인이 잘 방문하는 웹 사이트에 악성 코드를 심거나 악성 코드를 배포하는 URL로 자동으로 유인하여 감염시키는 공격기법
  • 스캠 공격 : 기업 이메일 계정 도용하여 무역 거래 대금 가로채는 사이버 범죄
  • 하트 블리드 : OpenSSL 암호화 라이브러리의 하트비트라는 확장 모듈에서 클라이언트 요청 메시지를 처리할 때 데이터 길이에 대한 검증을 수행하지 않는 취약점을 이용하여 시스템 메모리에 저장된 64KB 크기의 데이터를 외부에서 아무런 제한 없이 탈취할 수 있도록 하는 취약점
  • 크라임웨어 : 중요한 금융정보 또는 인증정보를 탈취하거나 유출을 유도하여 금전적인 이익 등의 범죄행위를 목적으로 하는 악성 코드
  • 토르 네트워크 : 네트워크 경로를 알 수 없도록 암호화 기법을 사용하여 데이터를 전송하며, 익명으로 인터넷을 사용할 수 있는 가상 네트워크
  • MITM 공격 : 네트워크 통신을 조작하여 통신 내용을 도청 및 조작하는 공격기법
  • DNS 스푸핑 공격 : 공격 대상에게 전달되는 DNS응답을 조작하거나 DNS 서버의 캐시 정보를 조작하여 희생자가 의도하지 않은 주소로 접속하게 만드는 공격기법
  • 포트 스캐닝 : 공격자가 침입 전 대상 호스트에 어떤 포트가 활성화되어 있는지 확인하는 기법으로 침입 전 취약점을 분석하기 위한 사전 작업
  • 디렉토리 리스팅 취약점 : 웹 애플리케이션을 사용하고 있는 서버의 미흡한 설정으로 인해 인덱싱 기능이 활성화되어 있을 경우, 공격자가 강제 브라우징을 통해서 서버 내의 모든 디렉토리 및 파일 목록을 볼 수 있는 취약점
  • 리버스 쉘 공격 : 타깃 서버가 클라이언트로 접속해서 클라이언트가 타깃 서버의 쉘을 획득해서 공격하는 기법
  • 익스플로잇 : 소프트웨어나 하드웨어의 버그 또는 취약점을 이용하여 공격자가 의도한 동작이나 명령을 실행하도록 하는 코드 또는 그러한 행위
  • 스턱스넷 공격 : 독일 지멘스사의 SCADA 시스템을 공격 목표로 제작된 공격
  • 크리덴셜 스터핑 : 사용자 계정을 탈취해서 공격하는 유형 중 하나, 다른 곳에서 유출된 아이디와 비밀번호 등의 로그인 정보를 다른 웹 사이트나 앱에 무작위로 대입해 로그인이 이루어지면 타인의 정보를 유출시키는 기법

보안 공격 대응 관련 주요 용어

  • 허니팟 : 비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템으로 일부러 허술하게 만들어서 해커에게 노출하는 유인시스템
  • OWASP Top 10 : 웹 애플리케이션 취약점 중 공격 빈도가 높으며, 보안상 큰 영향을 줄 수 있는 10가지 가이드
  • 핑거 프린팅 : 멀티미디어 콘텐츠에 저작권 정보와 구매한 사용자 정보를 삽입하여 콘텐츠 불법 배포자에 대한 위치 추적이 가능한 기술
  • 워터 마킹 : 디지털 콘텐츠에 저작권자 정보를 삽입하여, 불법 복제 시 워터마크를 추출, 원소유자를 증명할 수 있는 콘텐츠 보호 기술
  • FDS : 전자금융거래에 사용되는 단말기 정보, 접속 정보, 거래 정보 등을 종합적으로 분석하여 의심 거래를 탐지하고, 이상 거래를 차단하는 시스템
  • CC : 정보기술의 보안 기능과 보증에 대한 평가 기준, 정보보호 시스템의 보안 기능 요구사항과 보증 요구사항 평가를 위해 공통으로 제공되는 국제 평가기준
  • C-TAS : 사이버 위협정보를 체계적 수립해서 인터넷진흥원 주관으로 관계 기관과 자동화된 정보공유를 할 수 있는 침해 예방 대응 시스템
  • PAM : 리눅스 시스템 내에서 사용되는 각종 애플리케이션 인증을 위해 제공되는 다양한 인증용 라이브러리
  • CVE : 미국 비 영리회사인 MITRE 사에서 공개적으로 알려진 소프트웨어의 보안취약점을 표준화한 식별자 목록
  • CWE : 미국 비영리 회사인 MITRE 사가 중심이 되어 소프트웨어에서 공통적으로 발생하는 약점을 체계적으로 분류한 목록으로, 소스 코드 취약점을 정의한 데이터베이스

 

 


틀린 문제

  • 스니핑 - 공격대상에게 직접 공격하지 않고 데이터만 몰래 보는 수동적 공격 기법
  • SQLInjection - 악의적인 SQL 구문을 삽입시켜 데이터의 정보를 탈취하거나 조작 하는 공격기법
  • 가용성 - 인가된 사용자가 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성
  • 위협 - 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
  • 취약점 : 위협이 발생하기 위한 사전 조건
  • 스머프 공격 : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 타겟 시스템을 마비시키는 공격
  • ASLR : 버퍼오버플로우 대응방안, 메모리 공격을 방어하기 위해 주소 공간 배치를 난수화, 실행 시마다 메모리 주소를 변경시켜 특정 주소 호출을 차단하는 기법
  • 레이스 컨디션 공격 : 둘 이상의 프로세스나 스레드가 공유자원을 동시에 접근할 때 순서에 따라 비정상적인 결과가 발생
  • 루트킷 : 시스템 침입 후, 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이 목마 설치 등 불법적인 해킹에 사용되는 기능을 제공하는 프로그램 모음
  • APT 공격 : 특수목적의 조직이 하나의 표적에 대해 다양한 IT 기술을 이용하여 취약점을 분석해 피해를 주는 공격기법
  • wtmp/wtmpx - last명령어
  • utmp/tmpx - who, w, users, finger
  • btmp/btmpx - lastb명령어
  • lastlog - lastlog
  • sulog
  • acct/pacct
  • messages
  • secure

'나만의 정처기 공부' 카테고리의 다른 글

11장 응용 SW 기초 기술 활용  (0) 2022.04.28
10장 애플리케이션 테스트 관리  (0) 2022.04.25
8장 서버 프로그램 구현  (0) 2022.04.17
7장 SQL 응용  (0) 2022.04.17
6장 (오답노트만)  (0) 2022.04.10