[실전 security ①] 보안 개요

보안, 암호화 2008. 8. 1. 09:27 posted by 무병장수권력자


실전! 개발자를 위한 Security 체크 포인트
① 보안 개요


작성자 : 김문규
최초 작성일 : 2008. 8. 1
* 본 포스트는 SDS e-campus의 '실전 개발자를 위한 Security 체크포인트' 강의 내용을 발췌하여 재구성한 개인적인 학습노트 입니다.

1. 보안 요소
보안의 아래의 표와 같이 크게 5가지의 영역으로 분리됩니다.

신원증명과 인증
(Identification &
Authentication)
시스템에 대한 사용권한을 얻고자 하는 사용자의 신분을 확인하고자
하는 것입니다.
접근 제어
(Access Control)
자원에 접근할 수 있는 권한을 부여하고 통제하는 것입니다.
허가되지 않은 사용자의 위협으로부터 시스템의 자원을 보호하는데
목적이 있습니다.
기밀성
(Confidentiality)
전달 또는 보관되는 데이터 내용의 비밀성을 보장하는 것을 말합니다.
암호화는 암호 알고리즘에 의하여 암호화되고 복호화 됩니다.
무결성
(Integrity)
전달된 데이터가 중간에 왜곡되지 않음을 보장하는 것을 말합니다.
부인 봉쇄
(Non Repudiation)
송신자의 송신 정보에 대한 확인을 함으로써 송신 부인에 대응하는
체계를 말합니다.
이를 위한 방식의 하나로 전자서명이 있습니다.

2. 보안 분야
각 영역은 network /server / application / data 측면에서 아래의 표와 같은 보안 영역이 존재합니다. data는 표에 나타나 있지 않네요.
사용자 삽입 이미지

1) Server 보안
서버 자원에 대한 접근성에 보안을 말합니다.
인증  서버에 접근하는 사용자의 신원증명 및 인증실시
권한부여  접근이 허가된 자원에 대한 접근만을 허가 및 기타에 대한 통제
관리  사용자의 권한 및 인증에 대한 정기적인 Audit 실시
모니터링  시스템의 사용내역에 대한 실시간/주기적 모니터링 실시
분산된 서버들에 대한 인증 등의 보안정책을 일단의 통합된 환경에서 지원 감시 및 모니터링하는
시스템으로 구축/운영함
ex) 통합서버 보안관리, 통합인증시스템

2) Network 보안
네트워크를 통해서 외부에서 내부로의 접근에 대한 통제, 관리를 말합니다.
접근통제  인증되지 않은 사용자의 접근자체를 원천적으로 봉쇄/관리
감사와 추적  네트워크 사용 정보를 로깅해 두었다가 이를 추후 감사 및 사고
 발생시에 증거로써 활용
보안 관리  네트워크 보안에 대한 현황 파악 및 경향 분석이 가능하도록 하며
 시스템에 대한 가동 현황을 주기적으로 관리자에게 보고하는 기능을
 제공
 - Firewall
 - IDS (Intrusion Detection System)
 - Mail Monitoring System

3) Application 보안
서버 상의 각 애플리케이션에서 발생가능한 위협에 대한 보안을 말합니다.
비밀성의 유지  어플리케이션에서 처리되는 개인정보 또는 금융정보 등에
 대한 전송 및 처리 시에 암호화를 적용하여 비밀성을 유지
신규 위협요소에 대한
지속적인 대응
 갈수록 증가하는 새로운 해킹 기법에 대한 대응 체계를 정립
 하여 지속적인 보수 작업 실시
어플리케이션
취약성 제거
 어플리케이션 자체의 취약성으로 인하여 발생할 수 있는
 불법적인 접근을 차단하기 위하여 어플리케이션 개발시 보안
 취약성 제거 필수.
 - 사이버 뱅킹
 - 엑스트라넷 : 인트라넷의 사외 확장 시스템
 - EDI : 전자 데이터 교환
 - 전자 상거래

4) Data 보안
데이터 베이스에 대한 보안을 말합니다.
접근제어 데이터베이스는 사용자가 가진 접근 권한에 따라서 논리적으로 분리되어 있어 비인가자의 접근을 제어하기 위한 privilege를 설정함.
데이터베이스 관리자(Database Administrator : DBA)는 누가 어떤
부분의 데이터에 접근 가능하며, 어느 수준까지(예> 필드 수준인지
레코드 수준인지) 접근 가능한지, 그리고 어느 기능까지만 (예> 읽기/
쓰기/변경/삭제/추가 등의 기능) 허락할 것인지를 결정해야함
데이터 암호화 데이터 유출로 인한, 정보의 누출을 방지하기 위해 저장되는 정보의
암호화 지원
※ 데이터암호화 고려사항
    - 저장된 데이터의 보호
    - 전송되는 데이터의 보호
추론 통제 추론 통제란 간접적으로 노출된 데이터 노출을 통해 다른 데이터를
추론하여 다른 데이터가 공개되는 것을 방지하는 것
추론은 보통 통계적인 자료에서 많이 발생 가능하며, 추론 문제에 대한 완벽한 해결책은 존재하지 않습니다.
일반적으로 추론 통제는 세 가지 예방방법
- 허용 가능한 질의를 제한
- 질의의 응답으로 제공되는 데이터를 한정함
- 제공되는 데이터를 숫자의 경우 반올림하거나 일관성이 없는 질의
  결과 등을 제공하여 통계적 추론이 불가능하도록 함
흐름 통제 흐름 통제는 접근 가능한 객체들간의 정보 흐름을 조정함.
임의의 객체에 포함되어 있는 정보가 명시적으로 또는 암시적으로
보다 낮은 보호 수준의 객체로 이동하는 것을 검사하여 만약 정보가
보다 낮은 수준의 보호 객체로 이동한다면 사용자는 보안 위협이
발생하게 되므로 통제 메커니즘에서 이를 거부하여 보안을 유지함

5) 일반적 웹 서비스 시스템에 적용
아래의 그림에서 보면 F/W, IDS가 네트워크 보안을 위한 장비가 될 것이며, Web Server에 서버 보안, WAS에는 애플리케이션 보안, DB에는 데이터 보안 기술이 적용되어야 합니다.

사용자 삽입 이미지

3. 최근 웹 위험 기술
사용자 삽입 이미지

4. 맺음말
웹 개발에 대한 진입 장벽이 낮아졌습니다. 이미 개인이 홈페이지를 쉽게 구축하는 시대가 와 버렸습니다. 그래서, 단순히 jsp좀 짜는 데요.... 이건 흠.... 아닌거 같습니다.
최근 SSO 관련 모듈을 개발 하면서 공부도 할 겸 인터넷 강의를 듣게 되었습니다. 앞서 말씀드린데로 e-campus의 보안 강의입니다. 조금은 오래된 내용이기도 하지만 정리도 잘 되어 있고 개인적으로 많은 도움이 되고 있네요. 아마도 차근차근 배워두면 피가되고 살이 되지 않을까 생각됩니다. 사고쳐서 혼날일도 줄어 들테고요.
사용자 삽입 이미지