📘 9-2단원 : 소프트웨어 개발 보안 구축 - 소프트웨어 개발 보안 구현
🎓 SW 개발 보안 구현
✏️ 시큐어 코딩 가이드
🏷️ 시큐어 코딩 가이드
- 입력데이터 검증 및 표현
- 보안 기능
- 시간 및 상태
- 에러 처리
- 코드 오류
- 캡슐화
- API 오용
🐥 입보시 에코캡아
== 입어본 시원한 에코 무늬의 캡 달린 옷을 아주 싸게 사다.
🏷️ 입력 데이터 검증 및 표현 취약점
- XSS : 검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격
- CSRF : 사용자가 자신의 의지와 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하는 공격
- SQL 삽입 : 응용 프로그램 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 정보를 탈취하는 공격
📘 XSS 공격 유형
- Stored XSS : 방문자들이 악성 스크립트가 포함된 페이지를 읽어 실행되면서 감염
- Reflected XSS : 공격용 URLA을 생성 후 이메일로 전송하면 접속 사이트에 민감 정보 공격
- DOM : 공격자는 조작된 URL을 이메일로 전송하고 피해자가 클릭 시 공격 피해를 당함
🏷️ 코드 오류
SW 구현 단계에서 프로그램 변환 시 오류, 서버의 리소스 자원의 부적잘한 반환 등 개발자가 흔히하는 실수로 프로그램 오류를 예방하기 위한 보안 점검 항목들이다.
📘 코드 오류 취약점
- 널 포인터 역참조
- 정수를 문자로 변환
- 부적절한 자원 해제
- 초기화되지 않은 변수 사용
🏷️ 캡슐화
📘 개념
외부에 은닉이 필요한 중요한 데이터와 필요한 기능성에 관련된 보안 취약점 예방을 위한 보안 검증 항목
📘 캡슐화 취약점
- 잘못된 세션에 의한 데이터 정보 노출
- 제거되지 않고 남은 디버그 코드
- 민감한 데이터를 가진 내부 클래스 사용
- 시스템 데이터 정보 노출
🏷️ API 오용
📘 개념
서비스에서 제공되는 이용에 반하는 방법으로 API를 오용하여 발생할 수 있는 보안 취약점 예방을 위한 보안 검증 항목
✏️ 시스템 보안 구현
🏷️ 보안 솔루션
📘 네트워크 보안 솔루션
- 방화벽 : 기업 내부, 외부 간 트래픽을 모니터링 하여 시스템의 접근을 허용하거나 차단하는 시스템
- 웹 방화벽 : 일반적인 방화벽과 달리 웹 어플리케이션 보안에 특화된 보안장비
- 네트워크 접근 제어 (NAC) : 단말기가 내부 네트워크 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션
- 침입 탐지 시스템 (IDS) : 네트워크에서 발생하는 이벤트를 모니터링하고 침입을 실시간으로 탐지하는 시스템
- 침입 방지 시스템 (IPS) : 네트워크에 대한 공격을 실시간으로 차단하고 유해 트래픽에 대한 조치를 능동적으로 처리하는 시스템
- 무선 침입 방지 시스템 (WIPS) : 인가되지 않은 무선 단말기의 접속을 자동을 탐지 및 차단하는 시스템
- 통합 보안 시스템 (UTM) : 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
- 가상사설망 (VPN) : 인터넷과 같은 공중망에 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션
🏷️ 취약점 분석 절차
- 자산 조사 및 분석
- 진단 대상 선정
- 제약사항 확인
- 진단 수행
- 결과 분석/보고서 작성
🐥 자진 제진결보
== 자진해서 건강검진 제진을 해서 결과를 보고 받음
✏️ 비즈니스 연속성 계획(BCP)
🏷️ 비즈니스 연속성 계획
각종 재해, 재난, 장애로부터 위기관리를 기반으로 재해복구, 업무복구 및 재개, 비상계획 등을 통해 비즈니스 연속성을 보장하는 체계이다.
🏷️ 비즈니스 연속성 계획 관련 주요 용어
- BIA : 장애나 재해로 인해 손실을 가정하여 시간에 따른 영향도 및 손실평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석
- RTO : 업무중단 시점부터 업무가 복구되어 다시 가동될 때 까지의 시간
- RPO : 업무중단 시점부터 데이터가 복구되어 다시 가동될 때 데이터의 손실 허용 시점
- DRP : 재난으로 장기간에 걸쳐 시설 운영이 불가능한 경우를 대비한 재난 복구 계획
- DRS : 재해복구계획의 원활한 수행을 위하여 평상시에 확보하여 두는 재해복구센터
🏷️ DRS의 용어
- Mirror Site : 주 센터와 데이터복구센터 모두 운영 상태로 실시간 동시 서비스가 가능한 센터
- Hot Site : 주 센터와 동일한 수준의 자원을 대기 상태로 보유하면서 데이터의 최신 상태를 유지하고 있는 재해복구센터
- Warm Site : 재해복구센터와 동일한 수준으 자원을 보유하는 대신 중요성이 높은 자원만 부분적으로 보유하고 있는 재해복구센터
- Cold Site : 데이터만 원격지에 보관하고, 재해 시 데이터를 근간으로 필요 자원을 조달하여 복구하는 것
✏️ 보안 중요 용어
🏷️ 보안 공격 관련 주요 용어
- 부 채널 공격 : 내부 비밀 정보를 부 채널에서 취득하는 공격
- 드라이브 바이 드라이브 : 악의적인 해커가 악성 스크립트를 설치하고 사용자 동의 없이 실행되어 의도된 서버로 연결하여 감염시키는 공격기법
- 워터링 홀 : 특정인의 표적 공격을 목적으로 특정인이 잘 방문하는 웹 사이트에 악성코드를 심어 감염시키는 공격기법
- 스캠 공격 : 기업 이메일 계정을 도용하여 무역 대금을 가로채는 사이버 범죄
- 하트 블리드 : 하트비트라는 확정 모듈에서 클라이언트 요청 메시지를 처리할 때 데이터 길이에 대한 검증을 수행하지 않는 취약점을 이용하는 공격
- 크라임웨어 : 중요한 금융정보를 탈취하거나 유출을 유도하여 금전적인 이익 등의 범죄행위를 목적으로 하는 악성 코드
- 프로토콜 취약점 : 단순 서비스 검색 프로토콜의 특성을 활용하여 좀비 PC로 이용한 공격
- 윈드토커 : 무선신호패턴을 스니핑하여 해킹하는 기술
- 토르 네트워크 : 네트워크 경로를 알 수 없도록 암호화 기법을 사용하여 데이터를 전송하며, 익명으로 인터넷을 사용할 수 있는 가상 네트워크
- 멜트다운 : 비순차 명령 실행 시 발생하는 버그를 악용하여 시스템 메모리에 접근하는 공격
- 스펙터 : 실패한 분기 예측으로 인해 메모리 데이터가 관찰되는 취약점을 이용
- 익스플로잇 : 소프트웨어나 하드웨어의 버그 또는 취약점을 이용하여 공격자가 의도한 동작을 실행하는 코드
- 스턱스넷 공격 : 독일 지멘스사의 SCADA 시스템을 공격 목표로 제작된 악성코드로 반도체 등 주요 산업 기반 시설의 제어 시스템에 침투해 오작동을 일으키는 공격기법
🏷️ 보안 공격 대응 관련 주요 용어
- 허니팟 : 일부러 허술하게 만들어서 해커에게 노출하는 유인시스템
- 핑거프린팅 : 멀티미디어 콘텐츠에 저작권 정보와 구매한 사용자 정보를 삽입하여 불법 배포자에게 추적이 가능한 기술
- CVE : 공개적으로 알려진 소프트웨어의 보안취약점을 표준화한 식별자 목록
- CWE : 소프트웨어에서 공통적으로 발생하는 약점을 체계적으로 분류한 목록으로, 소스 코드 취약점을 정의한 데이터베이스
- CVSS : 공통 취약점 등급 시스템으로, 취약점 위험도를계산할 수 있는 개방형 프레임워크