• Home
  • About
    • 최정재 photo

      최정재

      창의적인 시각으로 다양한 가능성을 탐색하는 개발의 모험가

    • Learn More
    • Email
    • Instagram
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

[정처기] 정보시스템 구축 관리 #2

14 Aug 2024

Reading time ~7 minutes

소프트웨어 개발 보안 구축

Secure SDLC

  • 소프트웨어의 유지 보수 단계에서 보안 이슈를 해결하기 위해 소모되는 많은 비용을 최소화하기 위해 등장
  • 요구사항 분석, 설계, 구현, 테스트, 유지보수등 전체 단계에 걸쳐 수행되야할 보안 활동을 제시

SDLC

  • 소프트웨어 개발 생명주기(SDLC; Software Development Life Cycle)
  • 소프트웨어 개발 방법론의 바탕이 되는것

Secure SDLC 대표 방법론

  • CLASP : Secure Software 사에서 개발, 초기단계에서 보안 강화하기 위해..,활동중심 역할 기반의 프로세스로 구성
  • SDL : 마이크로소프트사에서 개발, 전통적인 나선형 모델 기반
  • Seven Touchpoints : 설계 및 개발 과정의 모든 산출물에 대해 위험 분석 및 테스트 수행, 각단계에 관련된 7개의 보안 강화 활동 수행

보안요소

  • 기밀성 : 인가된 사용자만 접근 가능
  • 무결성 : 인가된 사용자만 수정 가능
  • 가용성 : 인가된 사용자만 언제라도 사용 가능
  • 인증 : 합법적 사용자인지 확인
  • 부인 방지 : 사실을 부인할수 없도록 송수신 증거 제공

세션 통제

세션은 서버와 클라이언트의 연결을 의미, 세션통제는 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것
요구사항 분석 및 설계 단계에서 진단해야하는 보안 점검 내용

세션 하이재킹(Session Hijacking)

  • 서버에 접속한 클라이언트의 세션 정보를 가로채는 공격기법
  • 정상적인 연결을 RST(reset) 패킷을 통해 종료시킨후 재연결시 연결 당사자가 아닌 공격자에게 연결됨
  • 연결되어 인가되지 않은 시스템의 기능 이용 or 정보 접근

세션하이재킹 탐지방법

  • 비동기화 상태 탐지
  • ACK Storm 탐지 : 패킷량이 비정상적으로 늘어나는 현상을 탐지
  • 패킷의 유실 탐지
  • 예상치 못한 접속의 리셋 탐지

세션 설계시 고려사항

  • 어느페이지든 로그아웃 가능하게 UI구성
  • 로그아웃 시 세션 완전히 제거
  • 세션 타임아웃 중요한것은 2~5분, 아니면 15~30분
  • 세션 종료안되면 새세션 생성 못하게 설계
  • 패스워드 변경시 활성화된 세션 삭제후 재할당

세션 ID의 관리 방법

  • 안전한 서버에 최소 128비트 길이
  • 난수 알고리즘 적용
  • 로그인시 로그인 전 세션ID 삭제하고 재할당
  • 장기간 접속한 세션ID는 주기적으로 재할당
  • 노출되지 않도록 URL Rewrite기능을 사용하지 않는 방향으로 설계




입력 데이터 검증 및 표현

입력 데이터 검증 및 표현의 보안 약점

SQL 삽입(SQL Injection)

  • 웹 응용프로그램에 SQL 삽입해 DB 서버 데이터 유출 및 변조
  • 동적 쿼리에 사용되는 입력데이터에 예약어 및 특수문자 입력못하게 하면됨

경로 조작 및 자원삽입

  • 데이터 입출력 경로 조작해 서버 자원을 수정 삭제할 수 있는 보안 약점
  • 입력값을 식별자로 사용하는 경우 경로 순회 공격을 막는 필터를 사용해 막음(/,\,.. 등 사용못하게)

크로스사이트 스크립팅(XSS;Cross site Scripting)

  • 웹페이지에 악의적인 스크립트를 삽입해 방문자 정보 탈취등 비정상적인 기능 수행하는 보안 약점
  • HTML 태그 사용 제한(<,>,&등 문자를 다른 문자로 치환)

운영체제 명령어 삽입

  • 외부입력값을 통해 시스템 명령어의 실행을 유도해 권한 탈취 및 장애 유발하는 보안약점
  • 외부 입력값을 검증없이 내부 명령어로 사용 x로 방지

위험한 형식 파일 업로드

  • 명령어가 포함된 스크립트 파일을 업로드해 시스템에 손상주는 보안약점
  • 확장자 제한, 파일명의 암호화 등으로 방지

메모리 버퍼 오버플로

  • 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리 범위 넘어선 위치에서 자료 읽거나 쓸때 발생
  • 적절한 버퍼 크기 설정, 설정된 범위에서만 읽고 쓰게 함으로 방지




코드 오류

스택가드
메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정값을 저장한 후
그 값이 변경되었을 경우 오버플로우 상태로 판단하여 프로그램 실행을 중단함으로써
잘못된 복귀 주소의 호출을 막는 기술




암호 알고리즘

암호 알고리즘은 Hash를 사용하는 단방향 암호화방식과, 대칭키 및 비대칭키로 분류되는 양방향 암호화 방식이 있음

images-dd9s2-post-5aba2038-8794-4051-b2ae-810078eb5e03-image

대칭키 암호화 기법(양방향)

동일한 비밀키로 데이터를 암호화하고 복호화함

한번에 하나의 데이터 블록을 암호화하는 블록 암호화,
평문과 동일한 길이의 스트림을 생성해 비트 단위로 암호화하는 스트림 암호화 방식으로 나뉨

  • 블록 암호화 방식
    • DES : 1975년 미국 NBS에서 발표함, 블록크기는 64bit이며 키 길이는 56bit
    • SEED : 1999년 한국인터넷진흥원에서 발표, 블록크기는 128bit이며 키 길이는 128, 256으로 분류됨
    • AES : 2001년 미국 표준 기술연구소에서 발표, DES 한계를 느껴 발전해 나옴, 블록크기는 128bit이며 키 길이는 128 ,192, 256으로 분류
    • ARIA : 2004년 국가정보원과 산학연협회가 개발, 블록크기는 128bit, 키 길이에 다라 128, 192, 256
    • IDEA
  • 스트림 암호화 방식
    • LFSR : 시퀀스 생성 알고리즘, 선형 관계를 통해 비트 시퀀스 생성해
    • RC4

비대칭키 암호화 기법(양방향)

암호화 할때는 공개키는 데이터베이스 사용자에게
복호화할 때 비밀키는 관리자가 비밀리에 관리

  • 대표 암호화 방식
    • RSA : 1978년 MIT 사람들에 의해 제안, 큰숫자를 소인수분해 하기 어렵다는것에 기반해 개발, 공개키와 비밀키를 사용
    • ECC : 1985년 RSA 암호방식의 대안으로 제안, 이산대수 문제를 타원곡선으로 옮겨 기밀성, 효율성을 높임
    • Rabin : 1979년에 미하엘 라빈이 제안, 소인수분해 어려움에 안전성의 근거를 둬 개발

해시(HASH, 단방향)

  • 데이터나 메시지를 고정된 길이의 값이나 키로 변환
  • 복호화가 거의 불가능한 단방향 함수에 해당

  • 대표 해시 함수 종류
    • SHA 시리즈 : 1993년 NSA이 처음 계발
    • MD5 : 1991년 MD4를 대체하기 위해 고안, 블록크기는 512bit, 키길이는 128bit
    • N-NASH : 1989년 일본의 NTT에서 발표, 블록크기 128bit, 키길이 128bit
    • SNEFRU : 1990년 발표됨, 32비트 프로세서에 용이, 블록크기 512bit, 키길이 128, 256로 분류

솔트
암호화하는데 같은 알고리즘 적용시 결과가 동일해지니
앞에 무작위 값을 덧붙이는 과정을 수행하는데
무작위 값을 솔트라 함








시스템 보안 구축

서비스 공격 유형

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

서비스 거부 공격을 통틀어서 DoS라 부름

Ping of Death(죽음의 핑)

  • 패킷의 크기를 허용 범위 이상으로 전송해 네트워크 마비
  • 큰 패킷 -> 수백개로 분할돼 전송 -> 재조립 부담 + ICMP Ping 메시지에 응답처리하다 다운됨

ICMP Ping 메시지
특정 IP로 패킷이 전송될때 해당 IP의 노드가 운영중인지 확인을 요청하는 메시지
ICMP : 인터넷 제어 메시지 프로토콜

SMURFING(스머핑)

  • IP나 ICMP의 특성을 악용해 엄청난 양의 데이터를 한곳에 집중적으로 보내 마비
  • 각 네트워크 라우터에서 브로드캐스트 주소를 사용할 수 없게 미리 설정해 방지

SYN Flooding

  • TCP는 신뢰있는 전송을 위해 3-way-handshake 거친후 데이터 전송함
  • 이를 이용해 공격자가 가상 클라이언트로 위장해 3-way-handshake 과정을 의도적으로 중단
  • SYN 수신 대기 시간을 줄이거나 침입차단 시스템 활용으로 방지

TearDrop

  • 데이터 송수신에서 패킷의 크기가 여러개로 분할 전송되는데 이때 Fragment Offset도 같이 보냄
  • 이를 악용해 Offset값을 변경해 재조립때 오류 발생으로 과부화
  • Offset이 잘못된 경우 해당 패킷을 폐기함으로 방지

Land

  • 송신 IP주소와 수신 IP주소를 모두 공격 대상의 IP주소로 바꾸어 무한 응답
  • 송신IP와 수신 IP 주소의 적절성을 검사해 대비

DDoS(Distributed Denial of Service, 분산 서비스 거부)공격

  • 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행
  • 네트워크 취약점 있는 호스트 탐색해 호스트들에 분산 서비스 공격용 툴 설치해 DDos공격에 이용




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

스미싱(Smishing)

  • SMS + Fishing
  • SMS를 이용해 신용 정보 빼내는 수법

스피어 피싱(Spear Phishing)

  • 사회공학의 한 기법
  • 일반적인 이메일을 위장해 첨부파일이나 링크 클릭 유도해 개인 정보 탈취

APT(Advanced Persistent Threats, 지능형 지속 위협)

  • 다양한 IT 기술로 조직적으로 특정 기업이나 조직 네트워크에 침투해 거점 마련
  • 이후 보안을 무력화시키고 정보를 수집한 후 외부로 빼돌림

큐싱(Qshing)

  • QR + Fishing
  • QR코드를 통해 악성앱 다운 유도해 악성프로그램 설치해 정보 탈취

Phishing

  • Private Data + Fishing
  • 이메일 or 메신저로 공기관이나 금융을 사칭해 개인정보 탈취

Ping Flood

  • 특정 사이트에 매우 많은 ICMP 메시지 보내어 정상적 동작 못하게 막는 방법

스위치 재밍(Switch Jamming)

  • 위조된 MAC 주소를 지속적으로 네트워크로 흘려보냄
  • 스위치 MAC 주소 테이블의 저장 기능을 혼란 시켜 더미 허브처럼 작동하게함




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

좀비 PC

  • 악성코드 감염되 조종이 되는 컴퓨터
  • C&C 서버의 제어를 받아 주로 DDos 공격등에 이용

C&C 서버

  • 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용하는 서버

봇넷(Botnet)

  • 다수의 좀비 PC들이 네트워크로 연결된 형태

웜(Worm)

  • 네트워크를 통해 자신을 복제해 시스템의 부하 높여 시스템 다운시키는 바이러스
  • 분산 서비스 거부 공격(DDoS), 버퍼 오버플로 공격, 슬래머등이 웜 공격의 한 형태

제로 데이 공격(Zero Day Attack)

  • 보안 취약점의 존재가 널리 공표되기전 취약점을 통해 이뤄지는 공격

키로거 공격(Key Logger Attack)

  • 키보드 움직임을 탐지해 개인 정보 탈취

랜섬웨어(Ransomware)

  • 문서나 파일을 암호화해 사용자가 이용못하게 함

백도어(Back Door)

  • 액서스 편의를 위해 시스템 보안을 제거해 만들어놓은 비밀 통로
  • 이를 악용해 침입

트로이 목마(Trojan Horse)

  • 정상적인 척하다 프로그램 작동할때 활성화되어 부작용 일으킴

파밍(Pharming)

  • 좀비 PC를 조작해 중간에 가짜 사이트로 접속하게 해 개인 정보 탈취




서버 인증

  • 인가 : 인증된 사용자의 요청에 대한 권한 여부 확인 후 이를 부여하는 것
  • 인증 : 신원을 증명하는 것

인증의 주요 유형

지식 기반 인증

  • 사용자의 기억을 기반으로
  • 고정된 패스워드
  • 패스 프레이즈
  • 아이핀

소유 기반 인증

  • 사용자가 소유하고 있는 것을 기반으로
  • 신분증
  • 메모리 카드(토큰)
  • 스마트 카드
  • OTP

생체 기반 인증

  • 사용자 고유한 생체 정보 기반
  • 지문
  • 홍채/망막
  • 얼굴
  • 정맥

기타 인증 기법

  • 행위 기반 인증 : 서명, 동작, 음성
  • 위치 기반 인증 : 콜밸, GPS




보안 솔루션

접근 통제, 침입 차단 및 탐지등을 수행해 외부로부터 침입을 막는 기술 및 시스템

방화벽

  • 외부에서 내부로 들어오는 패킷을 엄밀히 체크

침입 탐지 시스템(IDS; Intrusion Detection System)

  • 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지
  • 오용 탐지 : 미리 입력해둔 공격패턴이 감지되면 알려줌
  • 이상 탐지 : 평균 시스템 상태를 기준으로 비정상적인 자원 사용이 감지되면 알려줌

침입 방지 시스템(IPS; Intrusion Prevention System)

  • 방화벽 + 침입 탐지 시스템

VPN(Virtual Private Network, 가상 사설 통신망)

  • 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해줌

SSH(Secure SHell, 시큐어 셸)

  • 다른 컴퓨터에 로그인, 원격 명령, 파일 복사 등을 수행할 수 있도록 다양한 기능을 지원하는 프로토콜 또는 프로그램
  • 기본적으로 22번 포트를 사용


정처기 Share Tweet +1