SW구축관리 - SW개발보안 정책

IT프로젝트정보시스템구축관리

SW구축관리

SW개발보안 정책의 개념

  • 소프트웨어 개발과정에서발생할수 있는 보안취약점을 최소화하여 보안위협으로 부터 안전한 소프트웨어를 개발하기 위한 일련의 보안활동
  • SW개발 생명주기SDLC의 각 단계에서 요구되는 보안활동을 수행해 안전한 소프트웨어를 개발하는 것이 목적

SW 보안 취약점이 발생하는 경우

  • 보안 요구사항이 정의되지 않은 경우
  • 소프트웨어 설계 시 논리적 오류가 포함된 경우
  • 기술 취약점을 갖고 있는 코딩 규칙을 적용한 경우
  • 소프트웨어 배치가 적절하지 않은 경우
  • 보안 취약점 발견 시 적절하게 대응하지 못한 경우

SW개발 보완 관련 기관

  • 소프트웨어 개발 보안 관련 활동 주체
    • 정책기관인 행정안전부
    • 발주기관인 행정기관
    • 전문기관인 인터넷진흥원
    • 개발기관인 사업자
    • 보안약점진단인 감리법인

SW개발 역할별 보안활동

  • 프로젝트 관리자 PM
    • 응용프로그램에 대한 보안 전략을 구성원들에게 설명하고 프로젝트 일정 및 보안위험의 상관관계등과 같은 보안 영향을 이해시키고 조직의 상태를 모니터링
  • 요구사항 분석가 RM
    • 아키텍트가 고려해야 할 보안 관련 비지니스 요구사항을 설명하고 프로젝트 팀이 고려해야할 구조에 존재하는 보안 요구사항과 유즈케이스에 대한 보안 고려사항을 기반으로 오용 사례를 정의
  • 아키텍트 Architect
    • 보안 오류가 발생하지 않도록 보안 기술 문제를 충분히 이해하고 시스템 사용되는 모든 리소스 정의 및 각 리소스별로 적절한 보안 요구사항 적용
  • 설계자 Designer
    • 특정 기술이 보안요구사항을 만족하는지 확인하고 애플리케이션 보안노력에 대한 품질 측정을 지원, 많은 비용이 필요한 수정 요구사항을 최소화하기 위한 방법을 제공, 타사의 소프트웨어 통합시 발생가능한 보안 위험을 이해하며 식별된 보안위협에 적절히 대응
  • 구현개발자 Implementer
    • 구조화된 소프트웨어 개발 환경에서 프로그램을 원활히 구현할 수 있도록 시큐어 코딩 표준을 준수하여 개발하며 제3자가 소프트웨어 안전 여부를 쉽게 판단할 수 있도록 문서화
      • 시큐어 코딩
        • 개발하고 있는 소프트웨어의보안상 취약점을 사전에 보완하면서 프로그래밍하는것
  • 테스트분석가 Test Analyst
    • 소프트웨어 개발 요구사항과 구현 결과를 반복적으로 확인하며 테스트 그룹은 반드시 보안전문가일 필요는 없지만보안 위험에 대한 학습이나 툴 사용법을 숙지함

SW개발 역할별 보안활동

  • 보안 감시자 Security Auditor
    • 프로젝트 전체단계에서 활동하며, 소프트웨어 개발 프로젝트의 현재 상태의 보안을 보장하고 요구사항 검토시 요구사항의 적합성과 완전성을 확인하고, 설계단계에서는 보안 문제로 이어질 수 있는 사항이 있는지 확인하며, 구현단계에서는 보안 문제가 있는지 확인

SW개발보안 관련 법령

  • 개인정보보호법
  • 정보통신망 이용촉진 및 정보보호 등에 관한 법률
  • 신용정보의 이용 및 보호에 관한 법률
  • 표준 개인정보 보호 지침
  • 개인정보의 안전성 확보 조치 기준
  • 개인정보 영향평가에 관한 고시

IT기술 관련 규정

  • RFID 프라이버시 보호 가이드라인
  • 위치정보의 관리적, 기술적 보호조치 권고 해설서
  • 바이오정보 보호 가이드라인
  • 뉴미디어 서비스 개인정보 보호 가이드라인

SW구축관리 - SW 관련 신기술

IT프로젝트정보시스템구축관리

SW구축관리

  • 소프트웨어와 관련된 IT 신기술의 종류와 특징을 이해
  • 소프트웨어 개발 보안의 개념과 보안 관련 기관 및 소프트웨어 개발 프로젝트 참여자별 보안 활동 역할 이해
  • 소프트웨어 개발 보안 활동 관련 법령 및 규정의 종류 이해

용어사전

  • SW개발보안 정책
    • 소프트웨어 개발 과정에서 발생할 수 있는 보안 취약점을 최소화하여 보안 위협으로부터 안전한 소프트웨어를 개발하기 위한 일련의 보안활동

SW 관련 신기술

1. AI; Artificial Intelligence 인공지능

  • 컴퓨터 스스로 인간의 두뇌와 같이 추론, 학습, 판단 등 인간 지능적인 작업을 수행하는 시스템
  • 인공지능의 응용분야에는 신경망, 퍼지, 패턴 인식, 전문가 시스템, 자연어 인식, 이미지 처리, 컴퓨터 시각, 로봇 공학 등
    • Fuzzy 퍼지
      • 인간의 말, 의미, 사고, 측정 등에 본질적으로 포함되어 있는 애매 모호함을 수학적으로 다루는 학문

2. AR; Augmented Reality 증강현실

  • 가상현실이 이미지, 주변 배경, 객체 모두를 가상의 이미지로 만들어 보여 주는 반면, 증강 현실은 현실에 기반하여 정보를 추가 제공하는 기술

3. Blockchain 블록체인 과 Distributed Ledgers 분산 장부

  • P2P 네트워크를 이용하여 온라인 금융 거래 정보를 온라인 네트워크 참여자의 디지털 장빙 분산 저장하는 기술
  • 기존 금융 회사들이 사용하고 있는 중앙 집중형 서버에 거래 정보를 저장할 필요가 없어 관리 비용이 절감되고, 분산 저장으로 인해 해킹이 어려워짐에 따라 보안 및 거래 안정성이 향상됨

4. CC; Common Criteria 공통 평가 기준

  • ISO 15408 표준으로 채택된 정보 보호 제품 평가기준
  • 정보화 순기능 역할을 보장하기 위해 정보화 제품의 정보보호기능과 이에 대한 사용 환경 등급을 정한 기준

5. CEP; Complex Event Processing 복잡 이벤트 처리

  • 실시간으로 발생하는 많은 사건들 중 의미가 있는 것만을 추출할 수 있도록 사건 발생 조건을 정의하는 데이터 처리 방법
  • 금융, 통신, 전력, 물류, 국방 등에서 대용량 데이터 스트림에 대한 요구에 실시간으로 대응하기 위하여 개발된 기술이며 미들웨어에 접속시키면 기업이 독자적인 실시간 응용 애플리케이션 개발 가능
    • 미들웨어
      • 운영체제와 해당 운영체제에 의해 실행되는 응용 프로그램 사이에서 운영체제가 제공하는 서비스 이외에 추가적인 서비스를 제공하는 소프트웨어

6. Deep Learning 딥 러닝

  • 인간의 두뇌를 모델로 만들어진 인공신경망을 기반으로 하는 기계 학습 기술
  • 많은 데이터를 이용한 컴퓨터가 마치 사람처럼 스스로 학습할 수 있어 특정 업무를 수행할 때 정형화된 데이터를 입력 받지 않고 스스로 필요한 데이터를 수집,분석하여 고속으로 처리 가능

7. Digital Twin 디지털 트윈

  • 현실 속의 사물을 소프트웨어로 가상화한 모델로 자동차, 항공, 에너지, 국방, 헬스케어 등 여러 분야에서 활용
  • 현실 속의 사물을 대신해 다양한 상황을 모의 실험하기 위한 용도

8. Expert System 전문가 시스템

  • 의료 진단 등과 같이 특정 분야의 전문가가 수행하는 고도의 업무를 지원하기 위한 컴퓨터 응용 프로그램
  • 인간의 지적 활동과 경험을 통해서 축적된 전문가의 지식과 전문가에 의해 정의된 추론 규칙을 활용하여 결정하거나 문제르 해결
  • 지식 베이스(Knowledge Base)라는 데이터베이스 + 추론을 실행하는 추론 엔진(Inference Engine)

9. Grayware 그레이웨이

  • 소프트웨어를 제공하는 입장에서는 악의적이지 않은 유용한 소프트웨어라고 주장할 수 있지만 사용자 입장에서는 유용할 수도 있고 악의적일 수도 있는 애드웨어, 스파이웨어, 기타 악성코드나 악성 공유웨어를 뜻함

10. Hash 해시

  • 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
  • 데이터의 암호화가 아닌 무결성 검증을 위한 방법으로 대칭, 비대칭 암호화 기법과 함께 사용되어 전자화폐, 전자서명 등 다양한 방면에서 활용되고 있음

11. Mashup 매시업

  • 웹에서 제공하는 정보 및 서비스를 이용하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술
  • 다수의 정보원이 제공하는 콘텐츠를 조합하여 하나의 서비스로 제공하는 웹 사이트 또는 어플리케이션

12. OGSA; Open Grid Service Architecture 오픈 그리드 서비스 아키텍처

  • 애플리케이션 공유를 위한 웹 서비스를 그리드 상에서 제공하기 위해 만든 개방형 표준

13. PET; Privacy Enhancing Technology 개인정보 강화 기술

  • 심각한 위험으로 대두되고 있는 개인정보 침해 위험을 관리하기 위한 핵심 기술
  • 암호화, 익명화 등 개인정보를 보호하는 기술에서 사용자가 직접 개인정보를 통제하기 위한 기술까지 다양한 사용자 프라이버시 보호 기술을 통칭함

14. PIA; Privacy Impact Assessment 개인정보 영향평가 제도

  • 개인정보를 활용하는 새로운 정보시스템의 도입 및 기존 정보시스템의 중요한 변경 시 시스템의 구축/운영이 기업의 고객은 물론 국민의 사생활에 및리 영향에 대해 미리 조사/분석/평가하는 제도

15. QKD; Quantum Key Distribution 양자 암호키 분배

  • 양자 통신을위해 비밀키를 분배/관리하는 기술
    • 양자
      • 물리학에서 상호 작용과 관련된 모든물리적 독립계의 최소단위

16. RIA; Rich Internet Application 리치 인터넷 어플리케이션

  • 플래시 애니메이션 기술과 웹 서버 애플리케이션 기술을 통합하여 기존 HTML보다 역동적이고 인트랙티브한 웹페이지를 제공하는 신개념의 플래시 웹페이지 제작 기술

17. Semantic Web 시맨틱 웹

  • 컴퓨터가 사람을 대신하여 정보를 읽고 이해하고 가공하여 새로운 정보를 만들어 낼 수 있는 '의미론적인 웹이라는 의미를 가진 차세대 지능형 웹

18. SOA; Service Oriented Architecture 서비스 지향아키텍처

  • 정보시스템을 공유와 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보기술 아키텍처

19. Software Escrow 소프트웨어 에스크로

  • 소프트웨어 개발자의지식재산권을 보호하고 사용자는 저렴한비용으로 소프트웨어를 안정적으로 사용 및 유지보수 받을 수 있도록 소스 프로그램과 기술 정보 등을 제3의 기관에 보관하는 것

20. Vaporware 증발품

  • 판매 계획 또는 배포 계획은 발표되었으나 실제로 고객에게 판매되거나 배포되지 않고 있는 소프트웨어

네트워크구축관리 - 핵심정리

IT프로젝트정보시스템구축관리

네트워크구축관리

1. IT 신기술 및 네트워크 장비 트렌드 정보

- Ad-hoc Network 애드 혹 네트워크
- Cloud Computing 클라우드 컴퓨팅
- IoT; Internet of Things 사물 인터넷
- NDN; Named Data Networking
- NFC; Near Field Communication 근거리 무선 통신
- PICONET 피코넷
- USN; Ubiquitous Sensor Network 유비쿼터스 센서 네트워크

2. 네트워크 장비(라우터, 백본 스위치)

- 네트워크 토폴리지(Topology) 종류
    - 성형, 버스형, 링형, 트리형, 망형
- 네트워크 분류
    - LAN, MAN, WAN, VAN
- 스위치의 분류
    - L2, L3, L4, L7 스위치
- Hierarchical 3 Layer 모델
    - 액세스 계층, 디스트리뷰션 계층, 코어 계층

네트워크구축관리 - 네트워크 장비

IT프로젝트정보시스템구축관리

네트워크구축관리

네트워크장비

Topology 네트워크 설치 구조

Topology

네트워크 분류

네트워크분류

스위치 분류

  • 스위치는 브리지와 같이 LAN과 LAN을 연결하여 훨씬 큰 LAN을 만드는 장치
  • OSI계층의 Layer에 따라 L2, L3, L4, L7로 분류
    스위치분류

스위치 방식

  • 스위치가 프레임을 전달하는 방식에 따라 Store and Forwarding, Cut-through, Fragment Free로 구분됨
    스위치방식

Backbone Switch 백본 스위치

  • 여러 네트워크들을 연결할 때 중추적 역할을 하는 네트워크를 백본이라고 하고, 백본에서 스위칭 역할을 하는 장비를 백본 스위치라고 함
  • 모든 패킷이 지나가는 네트워크의 중심에 배치
  • 대규모 트래픽을 처리하려면 고성능 백본 스위치를 사용
  • L3 스위치가 담당

네트워크 구축을 위한 Hierarchical 3 Layer 모델

Hierarchical3Layer

네트워크구축관리 - 네트워크 관련 신기술

IT프로젝트정보시스템구축관리

네트워크구축관리

IT신기술 및 네트워크 장비 트렌드 정보

네트워크 관련 신기술

1. Ad-hoc Network 애드 혹 네트워크

  • 재난 현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 모바일 호스트만을 이용하여 구성한 네트워크
  • 망을 구성한 후 단기간 사용되는 경우나 유선망을 구성하기 어려운 경우에 적합하며, 빠른 망 구성과 저렴한 비용이 장점

2. BLE; Bluetooth Low Energy 저전력 블루투스 기술

  • 일반 블루투스와 동일한 2.4GHz 주파수 대역을 사용하지만 연결되지 않은 대기 상태에서는 절전 모드를 유지하는 기술
  • 주로 낮은 전력으로 저용량 데이터를 처리하는 시계, 장난감, 비콘, 착용 컴퓨터 등의 국소형 사물 인터넷에 적합

3. Cloud Computing 클라우드 컴퓨팅

  • 각종 컴퓨팅 자원을 중앙 컴퓨터에 두고 인터넷 기능을 갖는 단말기로 언제 어디서나 인터넷을 통해 컴퓨터 작업을 수행
  • 중앙 컴퓨터는 복수의 데이터 센터를 가상화 기술로 통합한 대형 데이터 센터로 각종 소프트웨어, 데이터, 보안 솔루션 기능 보유
  • 서비스 종류
    • IaaS
    • Paas
    • SaaS

4. GIS; Geographic Informatio System 지리 정보 시스템

  • 지리적인 자료를 수집/분석/출력할 수 있는 컴퓨터 응용 시스템으로 위성을 이용해 모든 사물의 위치 정보를 제공해 주는 것
  • GIS는 지도에서 사물을 확인하는 단계를 벗어나 인터넷, 인공위성 등 다양한 매체를 통해 지리 데이터를 수집/구축/분석/처리 과정을 거쳐 고품질의 공간 정보를 생성함으로써 보다 나은 공간 의사 결정에 도움을 주는 단계에까지 이르고 있음

5. 지능형 초연결망

  • 과학기술정보통신부 주관으로 추진 중인 사업으로 스마트 시티, 스마트 스테이션 등 4차 산업혁명 시대를 맞아 새로운 변화에 따라 급격하게 증가하는 데이터 트래픽을 효과적으로 수용하기 위해 시행되는 정부 주관 사업

6. M2M; Machine to Machine 사물 통신

  • 무선통신을 이용한 기계와 기계 사이의 통신
  • 변압기 원격 감시
  • 전기, 가스 등의 원격 검침
  • 무선 신용카드 조회기
  • 무선 보안 단말기
  • 버스 운행 시스템
  • 위치 추적 시스템
  • 부호 분할 다중 접속(CDMA), GSM, 무선 데이터 통신 등 다양한 무선 통신망을 사용

7. IoT; Internet of Things 사물 인터넷

  • 정보 통신 기술을 기반으로 실세계와 가상세계의 다양한 사물을 인터넷으로 서로 연결하여 진보된 서비스를 제공하기 위한 서비스 기반 기술
  • M2M의 개념을 인터넷으로 확장하여 사물은 물론, 현실과 가상 세계의 모든 정보와 상호 작용하는 IoT개념으로 진화
  • IoT 기반 서비스는 개방형 아키텍처를 필용로 하기 때문에 정보공유에 대한 부작용을 초소화하기 위한 정보 보안 기술의 적용이 중요함

8. Mesh Network 메시 네트워크

  • 차세대 이동통신 홈 네트워킹, 공공 안정 등 특수 목적을 위한 새로운 방식의 네트워크 기술로, 대규모 디바이스의 네트워크 생성에 최적화 됨
  • 무선 랜의 한계를 극복하기 위해 라우터들을 기지국으로 활용하여 모든 구간을 동일한 무선망처럼 구성함

9. Mobile Computing 모바일 컴퓨팅

  • 휴대용 기기로 이동하면서 자유로이 네트워크에 접속하여 업무를 처리할 수 있는 환경
  • 모바일 컴퓨팅의 진화로 기업은 비지니스 효율을 극대화하여 경쟁력을 확보하고 개인은 삶의 질을 향상시킬 수 있음

10. MCC; Mobile Cloud Computing 모바일 클라우드 컴퓨팅

  • 클라우드 서비스를 이용하여 소비자와 소비자의 파트너가 모바일기기로 클라우드 컴퓨팅 인프라를 구성하여 여러 가지 정보와 자원을 고유하는 ICT기술을 의미함
  • 모바일의 이동성과 클라우드 컴퓨팅의 경제성이 결합됨

11. NDN; Named Data Networking

  • 콘텐츠 자체의 정보와 라우터 기능만으로 데이터 전송을 수행하는 기술로, 클라이언트와 서버가 패킷의 헤더에 내장되어 있는 주소 정보를 이용하여 연결되던 기존의 IP망을 대체할 새로운 인터넷 아키텍처로 떠오르고 있음
  • 해시 테이블에 기반을 두는 P2P 시스템과 같이 콘텐츠에 담겨 있는 정보와 라우터 기능만으로 목적지를 확정함

12. Network Slicing 네트워크 슬라이싱

  • 3GPP를 포함한 여러 글로벌 이동통신 표준화 단체가 선정한 5G의 핵심 기술 중 하나로, 네트워크에서 하나의 물리적인 코어 네트워크 인프라를 독립한 다수의 가상 네트워크로 분리하여 각각의 네트워크를 통해 다양한 고객 맞춤형 서비스 제공을 목적으로 하는 네트워크 기술

13. NFC; Near Field Communication 근거리 무선 통신

  • 고주파를 이용한 근거리 무선 통ㅅ니 기술
  • 양방향 통신을 지원하는 RFID 기술의 일종이며, 13.56MHz 주파수를 이용해 10cm 내에서 최고 424kbps의 속도로 데이터 전송을 지원

14. NGN; Next Generation Network 차세대 통신망

  • 유선망 기반의 차세대 통신망

15. PICONET 피코넷

  • 여러 개의 독립된 통신장치가 블루투스 기술이나 UWB 통신 기술을 사용하여 통신망르 형성하는 무선 네트워크 기술
  • 네트워크를 구성하는 장비 간에 사전에 네트워크와 정의와 계획없이 상황에 따라 조정 프로토콜에 의하여 마스터와 슬레이브의 역할을 하면서 네트워크를 형성

16. SDN; Software Defined Networking 소프트웨어 정의 네트워킹

  • 네트워크를 컴퓨터처럼 모델링하여 여러 사용자가 각각의 소프트웨어들로 네트워킹을 가상화 하여 제어하고 관리하는 네트퉈크

17. SON; Self Oragnizing Network 자동 구성 네트워크

  • 주변 상황에 맞추어 스스로 망을 구성하는 네트워크
  • 통신망 커버리지 및 전송 용량 확장의 경제성 문제를 해결하고, 망의 운영과 관리의 효율성을 높이는 것을 목적으로 함

18. USN; Ubiquitous Sensor Network 유비쿼터스 센서 네트워크

  • 각종 센서로 수집한 정보를 무선으로 수집할 수 있도록 구성한 네트워크

19. UWB; Ultra WidBand 초광대역

  • 짧은 거리에서 많은 양의 디지털 데이털르 낮은 전력으로 전송하기 위한 무선 기술로 무선 디지털 펄스라고도 하며, 블루투스와 비교되는 기술

20. WBAN; Wireless Body Area Network

  • 웨어러블 또는 몸에 심는 형태의 센서나 기기를 무선으로 연결하는 개인 영역 네트워킹 기술

21. Wi-Sun 와이선

  • 스마트 그리드와 같은 장거리 무선 통신을 필요로 하는 사물인터넷 서비스를 위한 저전력 장거리 통신 기술

SW개발 보안 구현 - 핵심정리

소프트웨어 개발 보안 구축

SW개발 보안 구현

1. 암호 알고리즘

  • 주민번호, 패스워드, 은행계좌 등 중요 정보를 보호하기 위해 평문을 암호문으로 만드는 절차 또는 방법
  • 해시를 사용하는 단방향 암호화 방식과 개인키와 공개키로 분류되는 양방향 암호화 방식으로 구분됨
  • 암호화방식
    • Stream 방식
      • 평문과 동일한 길이의 스트림을 생성하여 비트단위로 암호화
    • Block 방식
      • 한 번에 하나의 데이터 블록을 암호화

2. 코드오류

  • 코드 오류는 소프트웨어 구현 단계에서 개발자들이 코딩 중 실수하기 쉬운 형(Type) 변환, 자원 반환 등의 오류를 예방하기 위한 보안 점검 항목
  • 코드 오류로 발생할 수 있는 보안 약점
    • Null 포인터 역참조
      • Null은 값이 없음을 의미하며 포인터는 메모리의 위치를 가리킴.
    • 부적절한 자원 해제
    • 해제된 자원 사용
    • 초기화되지 않은 변수 사용

3. 캡슐화

  • 정보 은닉이 필요한 중요한 데이터와 기능을 불충분하게 캡슐화하거나 잘못 사용함으로써 발생할 수 있는 문제를 예방하기 위한 보안 점검 항목들
  • 캡슐화 보안 약점
    • 잘못된 세션에 의한 정보 노출
    • 제거 되지 않고 남은 디버그 코드
    • 시스템 데이터 정보 노출
    • Public 메소드로부터 반환된 Private 배열
    • Private 배열에 Public 데이터 할당

4. API 오용

  • 소프트웨어 구현단계에서 API를 잘못 사용하거나 보안에 취약한 API를 사용하지 않도록 하기 위한 보안 검증 항목들
  • API 오용의 보안 약점
    • DNS lookup에 의존한 보안 결정
    • 취약한 API 사용

SW개발 보안 구현 - API 오용

소프트웨어 개발 보안 구축

SW개발 보안 구현

API 오용 개념

  • 소프트웨어 구현단계에서 API를 잘못 사용하거나 보안에 취약한 API를 사용하지 않도록 하기 위한 보안 검증 항목들
  • API 오용의 보안 약점
    • DNS lookup에 의존한 보안 결정
    • 취약한 API 사용
      • API
        • 프로그래머가 라이브러리가 제공하는 여러 함수를 이용하여 프로그램을 작성할 때 해당 함수의 내부 구조는 알 필요없이 단순히 API에 정의된 입력 값을 주고 결과 값을 사용

보안 약점의 종류

1. DNS lookup에 의존한 보안 결정

  • 도메인명에 의존하여 인증이나 접근 통제 등의 보안 결정을 내리는 경우 발생하는 보안 약점
  • DNS 엔트리를 속여 동일한 도메인에 속한 서버인 것처럼 위장하거나, 사용자와 서버 간의 네트워크 트래픽을 유도하여 악성 사이트를 경유하도록 조작할 수 있음
  • DNS 검색을 통해 도메인 이름으로 비교하지 않고 IP주소를 직접 입력하여 접근함으로써 방지

2. 취약한 API 사용

  • 보안 문제로 사용이 금지된 API를 사용하거나, 잘못된 방식으로 API를 사용했을 때 발생하는 보안 약점
  • 보안 상 안전한 API라고 하더라도 자원에 대한 직접 연결이나 네트워크 소켓을 통한 직접 호출과 같이 보안에 위협을 줄 수 있는 인터페이스를 사용하는 경우 보안 약점이 노출됨
  • 보안 문제로 금지된 함수는 안전한 함수로 대체하고, API 매뉴얼을 참고하여 보안이 보장되는 인터페이스를 사용함으로써 방지 가능

SW개발 보안 구현 - 캡슐화

소프트웨어 개발 보안 구축

SW개발 보안 구현

캡슐화의 보안 점검

  • 정보 은닉이 필요한 중요한 데이터와 기능을 불충분하게 캡슐화하거나 잘못 사용함으로써 발생할 수 있는 문제를 예방하기 위한 보안 점검 항목들
  • 캡슐화 보안 약점
    • 잘못된 세션에 의한 정보 노출
    • 제거 되지 않고 남은 디버그 코드
    • 시스템 데이터 정보 노출
    • Public 메소드로부터 반환된 Private 배열
    • Private 배열에 Public 데이터 할당

캡슐화 보안 약점

1. 잘못된 세션에 의한 정보 노출

  • 다중 스레드 환경에서 멤버 변수에 정보를 저장할 때 발생하는 보안 약점
  • 싱글톤 패턴에서 발생하는 레이스컨디션으로 인해 동기화 오류가 발생하거나, 멤버 변수의 정보가 노출 될 수 있음
  • 멤버 변수보다 지역 변수를 활용하여 변수의 범위를 제한하여 방지
  • 잘못된 세션에 의한 정보 노출은 SW개발 보안 설계의 세션통제 보안 약점으로도 나오는데, 세션통제는 분석, 설계 단계의 점검 내용이고 캡슐화는 구현단계의 점검내용만 다를 뿐 나머지는 동일

2. 제거되지 않고 남은 디버그 코드

  • 개발 중에 버그 수정이나 결과값 확인을 위해 남겨둔 코드들로 인해 발생하는 보안 약점
  • 디버그 코드에 인증 및 식별 절차를 생략하거나 우회하는 코드가 포함되어 있는 경우 공격자가 악용 가능
  • 배포전에 코드 검사를 통해 남아있는 디버그 코드를 삭제함으로써 방지 가능

3. 시스템 데이터 정보 노출

  • 시스템 내부 정보를 시스템 메시지 등을 통해 외부로 출력하도록 코딩했을 때 발생하는 보안 약점
  • 메시지는 최소한의 정보만을 제공함으로써 방지 가능

4. Public 메소드로부터 반환된 Private 배열

5. Private 배열에 Public 데이터 할당

SW개발 보안 구현 - 코드오류

소프트웨어 개발 보안 구축

SW개발 보안 구현

코드오류의 개념

  • 코드 오류는 소프트웨어 구현 단계에서 개발자들이 코딩 중 실수하기 쉬운 형(Type) 변환, 자원 반환 등의 오류를 예방하기 위한 보안 점검 항목
  • 코드 오류로 발생할 수 있는 보안 약점
    • Null 포인터 역참조
      • Null은 값이 없음을 의미하며 포인터는 메모리의 위치를 가리킴.
    • 부적절한 자원 해제
    • 해제된 자원 사용
    • 초기화되지 않은 변수 사용

보안약점종류

1. 널 포인터(Null Pointer) 역참조

  • 널포인트가 가리키는 메모리어떠한 값을 저장할 때 발생하는 보안 약점
  • 많은 라이브러리 함수들이 오류가 발생할 경우 널 값을 반환하는데, 이 반환값을 포인터로 참조하는 경우 발생
  • 널포인터는 메모리의 첫 주소를 가리키며, 해당 주소를 참조할 경우 소프트웨어가 비정상적으로 종료 됨
  • 공격자는 널 포인터 참조 오류로 발생하는 예외 상황을 악용할 수 있음
  • 널 값을 갖고 있는지 검사함으로써 방지
  • null이 이미 없는 것이기 때문에 초기화 불가

2. 부적절한 자원 해제

  • 자원을 반환하는 코드를 누락하거나 프로그램 오류로 할당된 자원을 반환하지 못했을 때 발생하는 보안 약점
  • 힙 메모리, 소켓 등의 유일한 시스템 자원이 계속 점유하고 있으면 자원 부족으로 인해 새로운 입력을 처리하지 못함
    • 힙 메모리
      • 소프트웨어가 자유롭게 사용할 수 있는 메모리 공간
    • 소켓
      • 데이터 교환을 위한 통로
  • 자원 반환 코드가 누락되었는지 확인하고, 오류로 인해 함수가 중간에 종료되었을 때 예외처리에 관계없이 자원이 반환되도록 코딩함으로써 방지

3. 해제된 자원 사용

  • 이미 사용이 종료되어 반환된 메모리를 참조하는 경우 발생하는 보안 약점
  • 반환된 메모리를 참조하는 경우 예상하지 못한 값 또는 코드를 수행하게 되어 의도하지 않은 결과 발생
  • 주소를 저장하고 있는 포인터를 초기화함으로써 방지 가능

4. 초기화되지 않은 변수 사용

  • 변수 선언 후 값이 부여되지 않은 변수를 사용할 때 발생하는 보안 약점
  • 변수 선언으로 메모리가 할당되면 해당 메모리 이전에 사용하던 내용이 계속 남아 외부에 노출되는 경우 중요 정보 악용됨
  • 변수 선언시 할당된 메모리를 초기화함으로써 방지 가능

SW개발 보안 구현 - 암호알고리즘

소프트웨어 개발 보안 구축

SW개발 보안 구현

  • 암호 알고리즘의 개념과 암호 알고리즘의 종류별 특징을 이해
  • 코드오류와 캡슐화, API 오용 개념과 각 보안 점검 항목별 보약 약점의 종류 및 특징을 이해

용어사전

  • Hash 해시
    • 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 단방향 암호 알고리즘

암호 알고리즘 개념

  • 주민번호, 패스워드, 은행계좌 등 중요 정보를 보호하기 위해 평문을 암호문으로 만드는 절차 또는 방법
  • 해시를 사용하는 단방향 암호화 방식과 개인키와 공개키로 분류되는 양방향 암호화 방식으로 구분됨
  • 암호화방식
    • Stream 방식
      • 평문과 동일한 길이의 스트림을 생성하여 비트단위로 암호화
    • Block 방식
      • 한 번에 하나의 데이터 블록을 암호화

양방향 알고리즘

1. 비밀키(개인키, 대칭키) 암호 알고리즘 장/단점

  • 암호화 및 복호화 할 때 사용하는 키가 같음
  • 장점 : 암호화 복호화 속도가 빠르며, 알고리즘이 단순하고, 공개키 암호기법보다 파일의 크기가 작음
  • 단점 : 사용자의 증가에 따라 관리해야할 키의 수가 많음

2. 공개키(비대칭키) 암호 알고리즘 장/단점

  • 암호화할 때 사용하는 키와 복호화 할 때 사용하는 키가 다름
  • 장점 : 키의 분배가 용이하고, 관리해야할 키의 개수가 적음
  • 단점 : 암호화 및 복호화 속도가 느리며, 알고리즘이 복잡하고, 개인키 암호화 기법보다 파일의 크기가 큼

3. 양방향 암호 알고리즘의 종류

  • 양방향 암호 알고리즘

단방향 암호 알고리즘

  • 해시
    • 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미
    • 해시 알고리즘을 해시 함수라고 부르며, 해시 함수로 변환된 값이나 키를 해시값 또는 해시키로 부름
    • 데이터의 암호화, 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에 활용
API API오용 Anaconda Beacon Bluetooth CRUD분석 Camera ChatBot DB관련신기술 DB관리기능 DB서버 DB표준화 ER다이어그램 ER모델 ETL Flask HW관련신기술 IDE도구 IP IoT Machine_Translation NLP배경 ORM프레임워크 Package Recurrent Neural Network SDLC SW개발방법론 SW개발방법론선정 SW개발보안정책 SW개발표준 SW관련신기술 Sequence_Tagging ShellScript TCP_UDP Vector WordCloud c 자료형 class embedding konlpy python python 자료형 가설검증 개발환경구축 객체지향프로그래밍언어 관계데이터베이스모델 관계데이터언어 국제표준제품품질특성 네트워크7계층 네트워크관련신기술 네트워크장비 네트워크침해공격용어 논리데이터모델개요 논리데이터모델품질검증 논리적데이터모델링 논문 단위모듈구현 단위모듈테스트 데이터검증 데이터모델개념 데이터베이스무결성 데이터베이스백업 데이터베이스암호화 데이터베이스용량설계 데이터베이스이중화구성 데이터베이스정규화 데이터분석 데이터분석 - 순열 - 조합 데이터분석 - 정규분포 데이터분석 - 통계기초 데이터사이언스개념 데이터입출력 데이터전환수행계획 데이터정제 데이터조작프로시저작성 데이터조작프로시저최적화 데이터조작프로시저테스트 데이터지역화 데이터타입 데이터표준확인 데이터품질분석 라이브러리 로그분석 메모리관리 모델화 몬테카를로 물리데이터모델설계 물리데이터모델품질기준 물리데이터저장소구성 물리요소조사분석 반정규화 배치프로그램 변수 보안기능 보안솔루션 보안아키텍처 보안취약성식별 분산데이터베이스 분산분석 비용산정모델 빌드자동화도구 사용자정의함수 상관분석 서버개발프레임워크 서버인증 서버장비운영 서버접근통제 서비스공격유형 선언형언어 세션통제 소스코드인스펙션 소프트스킬 소프트웨어개발프레임워크 소프트웨어버전관리도구 소프트웨어연계테스트 슈퍼디엠지 스크립트언어 시스템카탈로그와뷰 암호알고리즘 애플리케이션모니터링도구 애플리케이션배포도구 애플리케이션성능개선 애플리케이션테스트결과분석 애플리케이션테스트시나리오작성 애플리케이션테스트케이스작성 애플리케이션통합테스트수행 애플리케이션패키징 연산자 예외처리 오답노트 오류데이터측정 오류처리 오류처리확인및보고서작성 요구공학방법론 운영체제 웹서버 이벤트 인터넷구성의개념 인터페이스구현검증 인터페이스기능확인 인터페이스보안 입력데이터검증및표현 자료구조 자연어처리 재사용 절차적프로그래밍언어 정보보안침해공격용어 정보처리기사 제품소프트웨어매뉴얼작성 집계성DCL작성 체크리스트 초기데이터구축 취약점분석 칼럼속성 캡슐화 코드오류 클러스터링 키종류 테일러링기준 트랜잭션인터페이스 트리거 파일처리기술 파티셔닝 패키지 포트포워딩 프로세스스케줄링 프로토타입 한국어임베딩 핵심정리 현업도구 형상관리도구 환경변수 회귀분석
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×