일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 해결 방안
- 출력
- 소프트웨어 시대
- 컴퓨터
- 운영체제의 기능 1. 자원 관리 기능 2. 시스템 보호 3. 네트워크(통신 기능)
- 처리
- 딥러닝
- 패킷트레이서 이용
- 국립과천과학관
- 뿌..
- 소프트웨어
- 겁나 많아
- 말 인용
- 프로그래밍
- 운영체제 서비스
- 절차적 사고
- 미래 사회의 단위
- gensim 3.7.3 설치 오류
- 공부정리
- 앨런 튜링
- 운영체제의 발달 과정
- 반복 구조 찾기
- 장치에 할당할 수 없는 NET ID Broadcast주소
- 절차적 사고의 장점
- 레지스터
- 운영체제의 미래
- 선택
- 기계어
- 순서도
- 운영체제 목적
- Today
- Total
hye-_
5. SW 개발보안 - 76. SW 개발보안 본문
76. SW 개발보안
1. Secure OS
2. 스택가드
소프트웨어 개발 보안의 개념
소프트웨어 개발 보안은 소프트웨어 개발 과정에서 발생될 수 있는 보안 취약점이나 보안 약점들을 최소화하여 사이버 보안 위협에 대응할 수 있는 안전한 소프트웨어를 개발하기 위한 보안 활동이다.
소프트웨어 개발 생명주기(SDLC : Software Development Life Cycle)의 단계별로 요구되는 보안 활동을 수행하여 안전한 소프트웨어를 개발한다.
소프트웨어 보안 취약점 발생 원인
취약점 관리를 위한 수행 작업 시 실행 프로세스와 열린 포트 위주로 확인
1. 보안 요구사항이 정의되지 않거나 논리적인 오류를 가지는 설계를 수행하였다.
2. 기술 취약점을 가지는 코딩 규칙을 적용하거나 소프트웨어 배치가 적절하지 않았다.
3. 발견된 취약점에 대해 적절한 관리 또는 패치를 하지 않았다.
코딩규칙
Secure 코딩 가이드에 해당하는데 국가에서 제시했다. "너네 코딩할 때 이 정도는 맞춰줘야 보안이 되지 않겠니?"라고 알려준 것이다.
소프트웨어 개발 보안 체계
소프트웨어 개발 보안 관련 활동 주체
행정안전부, 발주기관(행정기관 등), 한국인터넷진흥원, 사업자, 감리법인(진단원)등으로 구분할 수 있다.
활동 주체별 개발 보안 활동
개발 보안 주체별로 잘 정의된 개발 보안 활동과 주체 간의 유기적인 협력이 필요하다.
활동 주체별 개발 보안 활동 | |
행정안전부 | ● 지침 고시, 가이드 배포, 진단원 자격 여부 등 ● 발주기관에 개발 보안 지침 -가이드 제공 ● 한국인터넷진흥원에 정책 지원 |
발주기관 | 개발 보안 지침 준수, 사업자에 개발 요청, 감리법인에 확인 요청 |
한국인터넷 진흥원 | ● 정책-기술 지원, 가이드 개발, 교육과정 문의, 발주기관에 기술 지원 |
사업자 | 교육 이수, 시큐어 코딩 적용, 보안 약점 제거 등 |
감리법인 | 보안 약점 진단, 사업자에 개발 보안 적용 확인 |
프로젝트 참여 역할별 보안 활동
프로젝트 참여 역할별 보안 활동 | |
프로젝트 관리자 (Project Manager) |
● 팀 구성원에게 응용 프로그램의 보안 전략을 알려야 한다. ● 보안 위험과 비즈니스에 응용 프로그램 보안의 영향을 이해시킨다. ● 조직의 상태를 모니터링한다. |
요구사항 분석가 (Require- ment Specifier) |
● 아키텍트가 고려해야 할 여러가지 보안 관련 비즈니스 요구사항들을 설명할 수 있어야 한다. ● 프로젝트팀이 고려해야 할 구조를 정의한 뒤, 해당 구조에 존재하는 자원에 대한 보안 요구 사항이 무엇인지 결정한다. ● 보안 수준을 추상화할 때 다른 프로젝트에 적용되었던 보안 요구사항을 재사용하여 시간을 절약할 수 있어야 한다. |
아키텍트 (Architect) |
● 명백한 보안 오류를 도입하지 않도록 충분히 보안 기술의 문제를 이해할 수 있어야 한다. ● 시스템에 적용되는 모든 리소스를 가능한 자세하게 정의한다. ● 시스템에서 각각 리소스의 역할에 적절한 보안 요구사항이 적용되도록 한다. ● 각 리소스가 시스템 라이프 사이클을 통한 서로 간의 상호작용을 이해할 수 있게 해야 한다. |
설계자 (Designer) |
● 특정 기술이 설계 보안 항목을 만족하는지 확인하고 제대로 그 기술이 사용될 수 있는 방법을 파악해야 한다. ● 일반적으로 결과를 평가하고 최선의 문제 해결 방법을 결정해야 한다. ● 설계자는 모든 기존 개발 역할의 보안 관련 작업을 수행할 수 있어야 한다. |
구현개발자 (implementer) |
● 고도로 구조화된 개발 환경에서 프로그램을 구현하기 위해 안전한 코딩 표준을 준수하여 개발하여야 한다. ● 제3자가 소프트웨어 안전 여부를 쉽게 판단할 수 있도록 문서화해야 한다. |
테스트 분석가 (Test Analyst) |
● 요구사항과 구현 결과를 반복적으로 테스트해야 한다. ● 테스트 그룹은 반드시 보안 전무가일 필요는 없으며, 테스트가 가능할 정도의 위험에 대한 학습이나 툴 사용 방법을 숙지하고 있으면 된다. |
보안감시자 (Security Auditor) |
● 프로젝트의 현재 상태를 검사하고 현재 상태의 보안을 보장한다. ● 설계단계에서는 일반적으로 취약성으로 이어질 수 있는 사항이 있는지 점검한다. |
1. Secure OS ☆
컴퓨터 운영체제의 커널에 보안 기능을 추가한 것으로 운영체제의 보안상 결함으로 인하여 발생 가능한 각종 해킹으로부터 시스템을 보호하기 위하여 사용된다.
네트워크 보안 제품의 무력화 시 최후 시스템 보호 역할을 수행하며 조직의 보안 정책 및 역할에 최적화되어 보안 정책 관리를 지원한다.
Secure OS의 목적
보안과 관련된 운영체제이다.
1. 안정성
중단 없는 안정적 서비스 지원
2. 보안성
핵심 서버 침입 차단 및 통합 보안 관리
3. 신뢰성
중요 정보의 안전한 보호 기반 신뢰성 확보
버퍼 오버플로 (Buffer Overflow)
운영 체제가 메모리를 조작하는 동안 잘못된 동작을 하는 프로그램의 취약점이다.
보통 데이터 저장 과정에서 데이터를 저장할 메모리 위치의 유효성을 검사하지 않을 때 발생한다.
즉, 메모리의 정확한 주소를 할당하지 못했을 때 발생한다.
버퍼 오버플로우 대응 방안
운영체제의 주기적 최신 패치와 입력값 검증이 가능한 안전 함수를 사용한다.
스택 실드
함수 시작 시 복귀 주소를 'Global RET'이라는 특수 스택에 저장해두고 함수 종료 시 스택의 RET값을 비교해 다를 경우 오버플로 상태로 간주하여 프로그램 실행을 중단한다.
ASLR
메모리 공격 방어를 위해 주소 공간 배치를 난수화, 실행 시마다 메모리 주소를 변경하여 오버플로우를 통한 특정 주소의 호출을 차단한다.
스택 가드 (Stack Guard)
메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값(카나리)을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술이다.
시스로그(Syslog)
시스템 로그이다.
LINUX에서 다양한 이벤트를 로그 파일에 기록하는 것을 의미한다.
다른 의미로는 Syslog Server라고 불리는 이벤트 메시지(로그) 수집기 쪽으로 IP 네트워크를 통해서 장치(Machine)의 이벤트 메시지들을 전송할 수 있게 해주는 프로토콜이다.
문제 풀이
1. 다음이 설명하는 것은?
- LINUX에서 다양한 이벤트를 로그 파일에 기록하는 것을 의미한다.
- 이벤트 메시지(로그) 수집기 쪽으로 IP 네트워크를 통해서 장치(Machine)의 이벤트 메시지들을 전송할 수 있게 해주는 프로토콜이다.
시스로그
2. 메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술은?
① 모드 체크
② 리커버리 통제
③ 시스로그
④ 스택 가드
4번
3. 컴퓨터 운영체제의 커널에 보안 기능을 추가한 것으로 운영체제의 보안상 결함으로 인하여 발생 가능한 각종 해킹으로부터 시스템을 보호하기 위하여 사용되는 것은?
① GPID
② CentOS
③ XSS
④ Secure OS
4번
4. 다음 중 Secure OS의 목적이 아닌 것은?
① 안정성
② 보안성
③ 신뢰성
④ 가용성
4번
5. 취약점 관리를 위해 일반적으로 수행하는 작업이 아닌 것은?
① 무결성 검사
② 응용 프로그램의 보안 설정 및 패치(Patch)적용
③ 중단 프로세스 및 닫힌 포트 위주로 확인
④ 불필요한 서비스 및 악성 프로그램의 확인과 제거
3번
'정처기 > 정보시스템 구축관리' 카테고리의 다른 글
5. SW 개발보안 - 77. 시큐어코딩 가이드 (0) | 2023.06.19 |
---|---|
5. SW 개발보안 - 78. SW 개발보안 구축 (0) | 2023.06.19 |
4. SW/HW/DB 신기술 - 74. DB 신기술 (0) | 2023.06.19 |
4. SW/HW/DB 신기술 - 73. SW/HW 신기술 (1) | 2023.06.18 |
3. 네트워크 + 신기술 - 71. 네트워크신기술 (0) | 2023.06.18 |