보안(14)
-
🗝 시스템 보안 구축 #1 - 서비스 공격
🗝 시스템 보안 구축 학습목표 서비스거부 공격의 개념과 서비스거부공격의 종류별 특징 이해하기 서버인증과 서버접근통제의 개념을 이해하고 인증의 종류와 접근통제 정책의 종류 이해하기 보안아키텍처와 보안Framework의 개념 및 보안통제 항목의 종류 이해하기 👍 서비스 공격이란? 서비스 거부 공격이란, 서버가 서비스를 제대로 못하도록 공격하는 것을 말한다. 따라서 서비스 거부 공격(DoS; Denial of Service)이라고도 한다. 서버는 클라이언트의 서비스 요청에 대해 서비스를 제공하는 의무가 있는데, 서버 자신의 능력을 초과하는 요청을 동시다발적으로 받게되면 서비스 불능상태가 된다. 서비스 거부 공격은 바로 이 점을 이용한 공격이다. 표적이 되는 서버의 자원을 고갈시킬 목적으로 다수의 공격자 또는 ..
2020.07.15 -
🔐 소프트웨어 개발 보안 구축 #10 - 시간 및 상태
👍 시간 및 상태란? 시간 및 상태는 동시 수행을 지원하는 병렬처리 시스템이나 다수의 프로세스가 동작하는 환경에서, 시간과 실행 상태를 관리하여 시스템이 원활하게 동작되도록 하기 위한 보안검증항목을 말한다. 다음은 시간 및 상태의 점검 미비로 발생할 수 있는 보안약점이다. TOCTOU 경쟁조건 (Time Of Check, Time Of Use) ❗️ 검사시점과 사용시점의 격차를 고려하지 않고 코딩한다면, 사용이 가능했던 자원이 사용할 수 없게 되거나, 프로세스가 가진 자원 정보가 실제 자원 상태와 일치하지 않는 동기화 오류, 교착상태 등이 발생하는 현상 ✅ 코드 내에 동기화 구문을 사용하여 해당 자원에는 한 번에 하나의 프로세스만 접근 가능하도록 구성함으로써 방지. 단, 동기화 구문은 성능감소를 동반하기..
2020.07.14 -
🔐 소프트웨어 개발 보안 구축 #9 - API 오용
👍 API 오용이란? API : 프로그래머가 라이브러리가 제공하는 여러 함수를 이용하여 프로그램을 작성할 때, 해당 함수의 내부 구조는 알 필요없이, 단순히 API 명세서에 정의된 값을 입력하면 반환되는 결과를 이용할 수 있도록 만든 매개체 API 오용이란, 소프트웨어 "구현" 단계에서 API를 잘못 사용하거나 보안에 취약한 API를 사용하는 것을 말하며, 이를 방지하기 위한 보안검증항목 역시 같은 이름으로 사용한다. 다음은 API 오용으로 인한 보안약점이다. DNS Lookup에 의존한 보안 결정 ❗️ 도메인명에 의존하여 인증이나 접근통제 등 보안결정을 내린다면, 공격자는 DNS 엔트리를 속여 동일한 도메인에 속한 서버인 것처럼 위장하거나, 사용자와 서버 간 네트워크 트래픽을 유도하여 악성 사이트를 경..
2020.07.14 -
🔐 소프트웨어 개발 보안 구축 #7 - 코드오류
👍 코드오류란? 소프트웨어 "구현"단계에서 개발자들이 코딩 중 실수하기 쉬운 형(Type)변환, 자원반환 등의 오류를 예방하기 위한 보안점검 항목 다음은 코드오류로 발생할 수 있는 보안약점이다. 👊 널포인터(포인터에 Null이 저장되어 어떠한 곳도 가라키지 못하는 상태의 요소) 역참조 보통 많은 라이브러리 함수들은 오류가 발생할 경우 Null을 반환하는데, 이를 포인터로 참조하는 경우 발생하는 오류다. 대부분의 운영체제에서 널포인터는 메모리의 첫주소를 가리키는데, 이는 소프트웨어의 비정상적인 종료를 유발할 수 있다. 공격자는 널포인터 역참조로 발생하는 예외상황을 기억한 후, 추후에 이를 악용할 수 있다. 따라서 널이 될 수 있는 포인터를 이용하기 전에, 해당 포인터가 널을 갖고 있는지 검사함으로서 방지할..
2020.07.14 -
🔐 소프트웨어 개발 보안 구축 #5 - 세션통제
👍 세션통제란? 세션 : 서버와 클라이언트의 연결 세션통제란 세션의 연결 및 그로 인해 발생하는 정보를 관리하는 것을 의미하며, 소프트웨어 개발 과정 중 "요구사항분석"과 "설계" 단계에서 진단해야 하는 보안점검 내용이다. 다음은 세션통제를 제대로 하지 못했을 때 발생할 수 있는 보안약점이다. 불충분한 세션관리 ❗️ 일정한 규칙이 존재하는 세션ID가 발급되거나 타임아웃(자동로그아웃시간)이 너무 길게 되면 침입자가 세션하이재킹(가로채기)과 같은 공격을 통해 획득한 세션ID로 인가되지 않은 시스템의 기능을 이용하거나 중요한 정보에 접근이 가능해진다. 잘못된 세션에 의한 정보 노출 ❗️ 다중스레드 환경에서 멤버변수에 정보를 저장할 때 발생함. ❗️ 싱글톤패턴에서 발생하는 레이스컨디션으로 인해 동기화 오류가 발..
2020.07.14 -
🔐 소프트웨어 개발 보안 구축 #3 - 보안기능
👍 보안기능이란? 보안기능이란 개발자가 구현(코딩)하는 단계에서 소프트웨어의 보안을 위해 포함하는 인증, 접근제어, 기밀성, 암호화 등을 올바르게 구현하기 위한 "보안 점검 항목"들을 말한다.각 보안기능들은 서비스 환경이나 취급 데이터에 맞게 처리될 수 있도록 구현해야 하며, 소프트웨어의 기능 또는 데이터에 접근하려는 사용자별로 중요도를 구분하고 차별화된 인증방안을 적용해야 한다.인증된 사용자에게는 이용할 기능과 데이터에 대해 개별적으로 접근권한을 부여함으로써, 인가되지 않은 기능과 데이터로의 접근을 차단해야 한다.그리고 개인정보나 인증정보와 같은 중요한 정보는 변조/삭제/오남용되지 않도록 안전한 암호화 기술을 적용해야 한다. 다음은 보안기능에 대한 점검을 수행하지 않을 경우 발생할 수 있는 약점들이다...
2020.07.14