CS/CS

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

JWonK 2023. 7. 16. 17:05
728x90
반응형

Secure SDLC


: SDLC에 보안 강화를 위한 프로세스를 포함한 것을 의미

 

 

 

 소프트웨어 개발 보안 요소


  • 기밀성 : 인가된 사용자만 접근이 허용
  • 무결성 : 인가된 사용자만 수정 가능
  • 가용성 : 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있다.
  • 인증 
  • 부인 방지 : 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공

 

 

 

시큐어 코딩


: 시큐어 코딩(Secure Coding)은 구현 단계에서 발생할 수 있는 보안 취약점들을 최소화하기 위해 보안 요소들을 고려하며 코딩하는 것

 

 

 

 

SQL 삽입


: SQL 삽입(Injection)은 웹 응용 프로그램에 SQL을 삽입하여 내부 데이터베이스(DB) 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회하는 보안 약점

 

 

 

 

※ 크로스사이트 스크립팅 [XSS]


: 웹 페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점

 

 

 

 

 메모리 버퍼 오버플로


: 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점

 

 

 

 

 보안 기능 관련 용어


  • HTTPS(Hypertext Transfer Protocol Secure) : 웹 브라우저와 서버 간의 안전한 통신을 위해 HTTP와 암호 통신 규약을 결합한 것
  • SSL(Secure Sockets Layer) : 데이터를 송-수신하는 두 컴퓨터 사이, 종단 간, 즉 TCP/IP 계층와 애플리케이션 계층(HTTP, TELNET, FTP 등) 사이에 위치하여 인증,암호화,무결성을 보장하는 업계 표준 프로토콜
  • 하드 코딩(Hard-coding) : 데이터를 코드 내부에 직접 입력하여 프로그래밍하는 방식

 

 

 

 

 스택 가드


  • 널 포인터 역참조와 같이 주소가 저장되는 스택에서 발생하는 보안 약점을 막는 기술 중 하나
  • 메모리 상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장한 후 그 값이 변경되었을 경우 오버플로우 상태로 판단

 

 

 

 

 접근 제어자


: 외부로부터의 접근을 제한하기 위해 사용되는 예약어

 

접근 제어자 클래스 내부 패키지 내부 하위 클래스 패키지 외부
Public O O
Protected O O O X
Default O O X X
Private O X X X

 

 

 

 

 개인키 암호화 기법


: 동일한 키로 데이터를 암호화하고 복호화하는 암호화 기법

 

  • 암호화와 복호화 속도가 빠르다
  • 관리해야 할 키의 수가 많다
  • 스트림 암호화 방식 : 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화하는 방식
  • 블록 암호화 방식 : 한 번에 하나의 데이터 블록을 암호화 하는 방식

 

 

 

 공개키 암호화 기법


: 암호화 할 때 사용하는 공개키(Public Key)는 사용자에게 공개하고, 복호화할 때의 비밀키(Secret Key)는 관리자가 비밀리에 관리하는 암호화

 

  • RSA 알고리즘

 

 

 

※ DES


  • 블록 크기는 64비트, 키 길이는 56비트, 16회의 라운드 수행

 

 

 

AES


  • 블록 크기는 128비트, 키 길이에 따라 AES-128, AES-192, AES-256으로 분류

 

 

 

※ 해시


  • 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미
  • SHA 시리즈, HAVAL, MD4, MD5, N-NASH, SNERFU 등

 

 

 

※ TKIP


  • 기존의 무선 랜 보안 프로토콜인 WEP의 취약성을 보완한 데이터 보안 프로토콜
  • 암호 알고리즘의 입력 키 길이를 128비트로 늘리고 패킷 당 키 할당, 키값 재설정 등의 키 관리 방식을 개선

 

 

 

 

※ 인증


  • 지식 기반 인증 [Something You Know] : 고정된 패스워드, 패스 프레이즈, 아이핀(i-Pin)
  • 소유 기반 인증 [Something You Have] : 신분증, 메모리 카드, 스마트 카드, OTP
  • 생체 기반 인증 [Something You Are] : 지문, 얼굴, 정맥
  • 위치 기반 인증 [Somewhere You Are] : GPS, IP
  • 행위 기반 인증 [Something You Do] : 서명, 동작

 

 

 

 

※ 침입 탐지 시스템 [IDS : Intrusion Detection System]


: 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템

 

  • 오용 탐지(Misuse Detection) : 미리 입력해 둔 공격 패턴이 감지되면 이를 알려줌
  • 이상 탐지(Anomaly Detection) : 비정상적인 행위나 자원의 사용 감지

 

 

 

 

 

침입 방지 시스템 [IDS : Intrusion Prevention System]


: 비정상적인 트래픽을 능동적으로 차단하고 격리하는 등의 방어 조치를 취하는 보안 솔루션

 

  • 침입 탐지 기능으로 패킷을 하나씩 검사한 후 비정상적인 패킷이 탐지되면 방화벽 기능으로 해당 패킷을 차단

 

 

 

 

 웹 방화벽 [Web Firewall]


  • 웹 기반 공격을 방어할 목적으로 만들어진 웹 서버에 특화된 방화벽

 

 

 

 

 VPN [Virtual Private Network, 가상 사설 통신망]


: 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션

 

 

 

 

 

 NAC [Network Access Control]


: 네트워크에 접속하는 내부 PC의 MAC 주소를 IP 관리 시스템에 등록한 후 일관된 보안 관리 기능을 제공하는 보안 솔루션

 

 

 

 

 

AAA [=3A]


  • 인증 [Authentication]
  • 인가 [Authorization]
  • 과금 [Accounting]

 

 

 

 

정보보호 관리 체계 [ISMS : Information Security Management System]


: 정보 자산을 안전하게 보호하기 위한 보호 절차와 대책

 

 

 

 

 Ping of Death


: 패킷의 크기를 허용 범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격 방법

 

 

 

 

 

 SMURFING


: SMURFING(스머핑)은 IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법

 

 

 

 

 

 SYN Flooding


: 3-way-handshake 과정을 의도적으로 중단시킴으로써 서버가 정상적인 서비스를 수행하지 못하게 하는 공격 방법

 

 

 

 

 

※ LAND Attack


: 패킷을 전송할 때 송신 IP 주소와 수신 IP 주소를 모두 공격 대상의 IP 주소로 하여 자신에 대해 무한히 응답하게 하는 공격 방법

 

 

 

 

 DDoS 공격


: 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 서비스 거부 공격을 수행하는 것

 

 

 

 

 세션 하이재킹


: 상호 인증 과정을 거친 후 접속해 있는 서버와 클라이언트 사이의 세션 정보를 가로채는 공격 기법

TCP 3-Way-handshake 과정에 끼어듦으로써 클라이언트와 서버 간의 동기화된 시퀀스 번호를 가로채 서버에 무단으로 접근하는 TCP 세션 하이재킹이 대표적인 예

 

 

 

 

 

 ARP 스푸핑


: ARP 스푸핑(ARP Spoofing)은 자신의 물리적 주소(MAC)을 공격대상의 것으로 변조하여 데이터 패킷을 가로채거나 방해하는 기법

 

  • ARP(Address Resolution Protocol) : 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 변환해주는 프로토콜

 

 

 

 

 스니핑 [Sniffing]


: 네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형

 

 

 

 

 

 워터링 홀 [Watering Hole]


: 자주 방문하는 웹 사이트를 사전에 감염시켜 사이트에 방문했을 때 악성 코드에 감염되게 하는 공격

 

 

 

 

 키로거 공격 [Key Logger Attack]


: 컴퓨터 사용자의 키보드 움직임을 탐지해 정보를 몰래 빼가는 해킹 유형

 

 

 

 백도어 [Back Door]


: 시스템 설계자가 액세스 편의를 위해 시스템 보안을 제거하여 만들어놓은 비밀 통로

 

  • 백도어 탐지 방법 : 무결성 검사, 열린 포트 확인, 로그 분석, SetUID 파일 검사 등

 

 

 

 

 


 

 

 

 

▶ 소프트웨어 개발 보안과 관련된 내용 중 Secure SDLC의 개념을 간략히 서술하시오.

: 보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함하는 것

 

 

 

▶ TLS 연결을 SSL 3.0으로 낮춰 SSL 3.0의 취약점을 이용하여 암호문을 해독하는 공격 기법은?

: POODLE 공격

 

 

▶ QR코드와 '개인정보 및 금융정보를 낚는다'를 의미하는 'Fishing'의 합성 신조어로, QR코드를 통해 악성 앱의 다운로드를 유도하거나 악성 프로그램을 설치하도록 하는 금융 사기 기법은?

: 큐싱

 

 

▶ 다음에서 설명하는 정보 보안 관련 용어를 작성하시오

- 전사적 IT인프라에 대한 위협정보들을 수집, 분석, 경보, 관리하는 정보보호 통합 관리 시스템

- 실시간으로 공신력 있는 대외 정보보호기관의 위협 정보들을 수집/분석하여 정보보호 관리자에게 제공한다.

 

→ TMS

 

 

▶ 악성코드에 감염되어 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터로, C&C(Command & Control) 서버의 제어를 받아 주로 DDoS 공격 등에 이용되는 컴퓨터는?

: Zombie PC

 

 

▶ 다음에서 설명하는 정보 보안 관련 용어를 작성하시오.

- Windows 7부터 지원되기 시작한 Windows 전용의 볼륨 암호화 기능이다.

- TPM(Trusted Platform Module, 신뢰할 수 있는 플랫폼 모듈)과 AES-128 알고리즘을 사용한다.

 

→ 비트로커

 

 

▶ 악성 소프트웨어를 뜻하는 멀웨어와 광고의 합성어로, 온라인 광고를 통해 악성코드를 유포시키는 행위는?

: 멀버타이징 (Malvertising)

 

 

▶ 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태를 의미하는 용어는?

: 봇넷

728x90
반응형