7과목 소프트웨어 개발 보안 구축

YunGyu Choi·2023년 4월 25일
0

정보처리기사

목록 보기
7/10

1. SW개발 보안

1) 3대 요소

  • 기밀성 : 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단
  • 무결성 : 정당한 방법을 따르지 않고선 데이터가 변경X, 데이터의 정확성 및 완전성 보장
  • 가용성 : 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장

2) 개발 보안 용어

  • 자산 : 조식의 데이터 또는 조직의 소유자가 가치를 부여한 대상
  • 위협 : 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
  • 취약점 : 위협이 발생하기 위한 사전 조건, 시스템의 정보 보증을 낮추는데 사용
  • 위험 : 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성

2. Dos 공격

  • 죽음의 핑 : ICMP 패킷을 정상적인 크기보다 아주 작게 만들어 전송해 IP단편화를 유발, 수신측에서는 단편화 패킷 조합 과정에서 많은 부하 or 재조합 버퍼의 오버플로우 발생
  • 랜드어택 : 출발지와 목적지가 같은 패킷을 만들어 공격 대상이 자기 자신에게 응답하도록 부하 유발
  • 스머프 : 출발지를 공격대상 IP로 위조한 ICMP 패킷을 브로드캐스트하여 공격 대상이 자기 자신에게 응답하도록 부하 유발
  • 티어드롭 : 하나의 IP패킷이 분할된 IP 단편의 Offset 값을 서로 중첩되도록 조작하여 이를 재조합하는 대상 시스템에 에러와 부하 유발
  • 봉크/보잉크 : 프로토콜 오류 제어를 이요한 공격 기법으로 시스템의 패킷 재전송과 재조립 과부하 유발
  • SYN-Flooding : 다량의 TCP SYN 패킷을 전송하여 공격 대상 시스템 마비
  • UDP-Flooding : 다량의 UDP 패킷을 전송하여 네트워크 자원 고갈

3. 기타 보안 공격

1)세선 하이재킹 : 세션을 가로채다는 의미로 세션 관리 취약점을 이용한 공격 방법

2) 애플리케이션 공격

  • HTTP GET Flooding :과도한 GET 메시지를 이용하여 웹서버에 과부하 일으키는 공격
  • Slow HTTP Header Dos : HTTP GET 메서드를 사용하여 해더의 끝을 알리는 개행 문자열을 전송하지 않아 대상 웹 서버와 장시간 연결상태 유지로 연결 자원 소진 시키는 공격
  • Slow HTTP POST Dos : 요청 해더의 Content-Length를 비정상적으로 크게 설정해 메시지 바디 부분을 매우 소량을 보내 계속 연결 유지시키는 공격
  • Slow HTTP Read Dos : TCP 윈도 쿠기와 데이터 치리율을 감소시킨 상태에서 다수 HTTP패킷을 지속적으로 전송하여 대상 웹 서버 연결 상태 장시간 유지시키는 공격
  • Hulk Dos : 공격자가 공격대상 웹사이트 웹페이지 주소를 지속적으로 변경하면서 다량으로 GET요청을 발생
  • Hash Dos : 웹 서버는 클라이언트 HTTP 요청을 통해 전달되는 파라미터를 해쉬 테이블로 저장하고 관리하는데 공격자가 수많은 파라미터를 POST방식으로 전달하여 해쉬 충돌 유발

3) 네트워크 공격

  • 스니핑 : 직접 공격하지 않고 데이터만 몰래 들여다 보는 수동적 공격 기법
  • 네트워크 스캐너, 스니퍼 : 네트워크 취약점 파악을 위해 공격자가 취약점ㅇ르 탐색하는 공격 도구
  • IP스푸핑 : 침입자가 인증된 컴퓨팅 시스템인 것처럼 속여 타깃 정보 빼내는 기법
  • ARP스푸핑 : 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송해 특정 호스트의 MAC 주소로 변경
  • ICMP Redirect : ICMP 리다이렉트 메시지를 공격자가 원하는 형태로 만들어서 특정 목적지로 가는 패킷을 스니핑, 3계층에서 스니핑 시스템을 또 다른 라우터라고 알려서 패킷 흐름을 바꾸는 기법
  • 트로이 목마 : 겉보기엔 정상, 실행하면 악성코드 실행되는 프로그램
  • 패스워드 크래킹 : 사전 크래킹, 무차별 크래킹, 패스워드 하이브리드 공격, 레인보우 테이블 공격

4. 시스템 보안 위협

1) 버퍼 오버 플로우 : 메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력하여 프로세스 흐름 변경, 악성코드 실행

  • 스택 가드 : '카나리'라는 무결성 체크용 값을 두고 오버플로우 발생시 '카나리'값 체크
  • 스택 쉴드 : 함수 시작시 복귀주소를 Global RET라는 특수 스택에 저장, 함수종료시 비교
  • ASLR : 메모리 공격 방어하기 위해 주소 공간 배치 난수화, 리눅스에서 설정 가능

2) 백도어 : 어떤 제품이나 시스템 혹은 알고리즘에서 정상적인 절차를 우회하는 방법

3) 주요시스템 보안 기본 공격

  • 포맷 스트링 공격 : 포맷 스트링을 인자로 하는 함수의 취약점을 이용한 공격
  • 레이스 컨디션 공격 : 둘 이상의 프로세스나 스레드가 공유자원을 동시에 접근할 때 접근 순서에 따라 비정상적인 결과가 발생하는 조건/상황을 레이스 컨디션이라 하고 실행되는 프로세스가 임시파일을 만드는 경우 그 실행 중에 끼어들어 임시파일을 심볼릭 링크하여 악의적인 행위 수행
  • 키로거 : 컴퓨터 사용자의 키보드 움직임 탐지해서 정보 빼가는 공격
  • 루트킷 : 시스템 침입 후 침입 사실을 숨긴채 차후 침입을 위한 백도어, 트로이목마, 원격 접근 등 불법적인 해킹에 사용되는 기능을 제공하는 프로그램 모음

5. 보안 관련 용어

  • 스피어 피싱 : 특정 대상 선정후, 일반적인 메일로 위장한 메일을 계속 보내어 클릭을 유도, 사용자의 개인정 보탈취
  • 스미싱 : SMS와 Phishing의 합성어로 문자메시지를 이용해 개인정보 탈취 or 소액결제 유도
  • 큐싱 : QRcode와 Phishing의 합성어로 큐알코드를 이용해 악성 앱 내려받도록 유도
  • 봇넷 : 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들의 네트워크
  • APT공격 : 특수목적의 조직이 하나의 표적에 대해 다양한 IT기술을 이용하여 지속적으로 정보를 수집하고, 취약점을 분석하여 피해를 주는 공격
  • 공급망 공격 : 소프트웨어 개발사의 네트워크에 침입, 소스코드에 악의적인 코드 삽입 or 배포 서버에 접근해 악의적인 파일로 바꿔서 공격
  • 제로 데이 공격 : 보안 취약점이 개선되기 전에 악용하여 공격, 공격의 신속성 의미
  • 웜 : 스스로 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 소프트웨어 컴퓨터 프로그램
  • 악성 봇 : 스스로 실행되지 못하고, 해커의 명령에 의해 원격으로 제어되는 프로그램 or 코드
  • 사이버 킬 체인 : 공격형 방위 시스템으로 지능적, 지속적 사이버 공격에 대해 7단계 대응을 체계화한 모델
  • 랜섬웨어 : 악성코드의 한 종류로 감염된 시스템의 파일을 암호화하여 인질로 잡고 몸값 요구하는 소프트웨어
  • 이블 트윈 공격 : 무선 wifi 파싱 기법으로 합법적인 와이파이 제공자처럼 속여 정보 탈취

6. 서버 접근 통제

1) 접근 통제 용어

  • 주체 : 객체나 객체 내의 데이터에 대한 접근을 요청하는 능동적인 개체
  • 객체 : 접근 대상이 수동적인 개체, 혹은 행위가 일어나는 아이템
  • 접근 : 읽고, 만들고, 삭제하거나 수정하는 등의 행위를 하는 주체의 활동

2) 접근 통제 기법

  • 식별 : 객체에게 주체가 자신의 정보를 제공하는 행위
  • 인증 : 주체의 신원을 객체가 인정해주는 행위
  • 인가 : 인증된 주체에게 접근을 허용하는 행위
  • 책임 추적성 : 주체의 접근을 추적하고 행동을 기록하는 행위

3) 서버 접근 통제 유형

  • 임의적 접근 통제 : 신분 기반 접근통제 정책
  • 강제적 접근 통제 : 규칙 기반 접근통제 정책
  • 역할 기반 접근 통제 : 혁할 기반 접근 통제 정책

7. 암호 알고리즘

1) 일방향 방식

  • MAC : 키를 사용하는 메시지 인증 코드로 메시지 무결성과 송신자의 인증 보장
  • MDC : 키를 사용하지 않는 변경 감지 코드로 메시지의 무결성 보장

2) 대칭키 암호화 알고리즘

  • DES : 대칭키 기반 블록 암호화기법, 블록크기는 64bit 키길이는 56bit인 페이스텔 구조, 16라운드 암호화 알고리즘
  • SEED : 1993년 한국 KISA에서 개바한 블록 암호화 기법, 128bit 비밀키에 생성된 16개의 64bit 라운드키 활용
  • AES : 2001년 미국 NIST에서 개발한 블록 암호화 기법, 3DES 성능 문제 극복, 블록크기 128bit
  • ARIA : 2004년 국정원과 산학 연구회가 합작한 블록 암호화 기법, 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발
  • IDEA : DES 대체하기 위해 스위스에서 개발, 128bit키 사용, 64bit 평문을 8라운드에 거쳐 64bit 암호문 만듬
  • LFSR : 선형 되먹임 시프트 레지스터, 선형함수로 계산되는 스트림 암호화 기법

3) 비대칭키 암호화 알고리즘

  • 디피-헬만 : 최초의 공개키 알고리즘
  • RSA : 3명의 MIT 교수가 고안한 큰 인수의 곱을 소인수 분해하는 수학적 알고리즈을 이용한 공개키 알고리즘
  • ECC : RSA 대안으로 개발, 타원 곡선 암호는 유한체 위에서 정의된 타원 곡선군의 이산대수 문제에 기초함
  • EIGamal : 이산 대수의 계산이 어려운 문제를 기본 원리로 하는 공개키 암호화 알고리즘

4) 해시 암호화 알고리즘

  • MD5 : MD4를 개선, 프로그램이나 파일의 무결성 검사에 사용, 각각의 512bit짜리 메시지 블록에 등장해 128bit 해시값 생성
  • SHA-1 : NSA에서 미 정부 표준 지정, DSA에서 사용, 10bit 해시값 생성
  • SHA-256/384/512 : SHA알고리즘의 한 종류로서 256bit의 해시값 생성, AES에 대응하도록 출력길이 늘림
  • HAS-160 : 국내 표준 서명 알고리즘, MD5와 SHA-1의 장점 취합
  • HAVAL : 메시지를 1024bit 블록으로 나누고 128, 160, 192, 224, 256bit인 메시지 다이제스트 출력

8. 안전한 전송을 위한 데이터 암호화 전송

1) IPSec : IP계층에서 무결성과 인증을 보장하는 인증 해더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜

2) SSL/TSL : 전송계층과 응용계층 사이에서 클라이언트와 서버 간의 우베데이터 암호화(기밀성), 상호인증 및 전송시 데이터 무결성을 보장하는 보안 프로토콜

3) S-HTTP : 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나, 클라이언트와 서버 간에 전송되는 모든 메시지 암호화하여 전송, 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능

9. 입력데이터 검증 및 표현 취약점

1) XSS : 검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹 페이지에 포함된 부적절한 스크립트 실행

2) SQL Injection : 사용자의 입력값 등 외부 입력 값이 SQL 쿼리에 삽입되어 공격

3) CSRF : 사이트간 요청 위조, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격

10. 콘텐츠 유출 방지 위한 보안 솔루션

  • 보안 USB : 정보 유출 방지등의 보안 기능을 갖춘 USB메모리, 사용자 식별/인증, 데이터 암/복호화, 임의 복제 방지, 분실시 데이터 삭제 기능
  • 데이터 유출 방지 : 조직 내부 중요 자료가 외부로 유출되는 것을 탐지하고 차단하는 솔루션, 정보 흐름에 대한 모니터링과 실시간 차단 기능
  • 데이터 저작권 관리 : 파일 자체에 암호를 걸어 권한 없는 사용자 사용 못하게 함

11. 비즈니스 연속성 계획 관련 주요 용어

  • BAI : 장애나 재해로 인해 운영상의 주요 손실을 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실 평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석
  • RTO : 업무 중단 시점부터 업무가 복구되어 다시 가동될 때 까지의 시간, 재해 시 복구 목표 시간의 선정
  • RPO : 업무 중단 시점부터 데이터가 복구되어 다시 정상 가동될 때 데이터의 손실 허용 시점, 재해 시 복구 목표 지점의 선정
  • DRP : 재난으로 장시간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획
  • DRS : DRP의 원활한 수행을 위해 평상시 확보해두는 인적, 물적 자원 및 관리체계
profile
velog에는 이론을 주로 정리하고, 코드와 관련된 것은 Git-hub로 관리하고 있어요. 포트폴리오는 링크된 Yun Lab 홈페이지를 참고해주시면 감사하겠습니다!

0개의 댓글