1. 보안 3요소 기밀성 (Confidential) : 데이터를 의도하지 않은 수신자로부터 보호 HTTPS(TLS)를 아용하여 전송채널 암호화 (보안채널) 메시지 암호화를 적용할 경우, 안전하지 않은 채널(HTTP)을 이용 가능 (단, 메시지 암호화 과정에서의 노출 확인이 필요함) 애플리케이션에서 전송 전 데이터를 암호화 (메시지 암호화) 서버와 클라이언트가 미리 암/복호화에 대한 방법을 알아야 하므로 큰 분산시스템에서 적용의 어려움이 있음 이를 해결하기 위해 메시지 보안 표준을 사용 (XML 암호화, JSON 웹서명/암호화) 무결성 (Integrity) : 데이터의 정확성과 신뢰성을 보장하며 무단 수정을 탐지 예방 : 메시지 암호화 또는 보안 채널 이용 탐지 : 감사로그 이용 (감사로그 또한 무결성 요..
Application 보안을 설계할 때, 시스템의 안전성과 신뢰성을 보장하기 위해 여러 가지 중요한 원칙을 준수해야 합니다.아래는 Web/API Application 보안을 위해 반드시 고려해야 할 주요 설계 원칙들입니다. 최소 권한최소 권한 원칙은 사용자나 시스템 구성요소가 필요한 최소한의 권한만 부여받아야 한다는 원칙입니다.권한은 작업을 수행하는 데 필수적인 경우에만 부여되어야 하며, 더 이상 필요하지 않은 권한은 즉시 제거되어야 합니다.이를 통해 시스템 접근과 관련된 모든 활동을 추적하고, 승인된 작업만 수행될 수 있도록 보장합니다.기본적으로는 모든 접근이 차단된 상태에서, 필요한 경우에만 최소한의 권한이 부여되도록 설계해야 합니다. Fall-Safe Defaults시스템이 안전한 기본값을 가지도록..
세션고정 공격 로그인 인증 후에도 동일한 세션ID(식별자)를 사용할 경우, 공격자가 세션ID(ex. JSESSIONID)를 탈취하면 사용자명과 패스워드 없이 인증된 사용자의 세션을 사용할 수 있음 Spring Security의 세션고정 보호기능은 사용자가 인증된 후 명시적으로 새로운 세션을 생성하고, 기존 세션을 무효화할 수 있음 session-fixation-protection 속성 none() 세션 고정보호를 사용하지 않음 migrateSession() 사용자 인증 후 신규 세션 생성 시 기존 세션의 모든 속성이 새로운 세션으로 이동 newSession() 사용자 인증 후 신규 세션 생성 시 기존 세션의 몯ㄴ 속성은 새로운 세션으로 이동하지 않음 동시세션 관리 사용자가 동시에 고정된 수 (일반적으로는..
Spring Security WebSecurityConfigureAdapter를 상속받은 Config 클래스에 @EnableWebSecurity 어노테이션을 연결하면 SpringSecurityFilterChain이 자동으로 포함됨 #../configuration/SecurityConfig.java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { ... } WebSecurityConfigureAdapter 클래스는 Spring Security의 웹 보안 기능의 초기화 및 설정을 담당 HttpSecurity 클래스는 인증 및 인가 설정을 제공 WebSecurityConfigur..
CSA (Cloud Security Alliance) 대표 보안위협 데이터 유출 : 개인정보나 금융정보를 저장하는 데이터베이스나 스토리지가 외부에 직접 노출되거나 어플리케이션 취약점으로 공격받아 노출 Public Storage에 중요정보, 세션정보, 개인정보, 중요정보 저장 Private Storage에 평문으로 중요/개인/민감 정보등을 저장 인증키 등의 인증정보가 하드코딩으로 작성되어 노출 불충분한 ID, 자격증명 및 접근관리 : 중요권한을 가진 사용자, 운영자의 계정을 공유하거나 쉬운 패스워드 사용, 패스워드 노출 등으로 인해 무단 접속을 허용 어플리케이션이 사용하는 클라우드 모듈이 보안그룹으로 관리되지 않는 경우 관리자 권한의 계정/인증키 등을 어플리케이션에서 직접 사용하는 경우 특정 권한 또는 중..
https://docs.spring.io/spring-boot/docs/2.2.6.RELEASE/api/ https://spring.io/projects/spring-boot#learn https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/reference/htmlsingle/ Spring Boot Get support Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription. Learn more spring.io 스프링 프로젝트 구조 - Src/main/java/[Default_Package]/Application.jav..
0. SpringBoot 진단 마이크로서비스의 발전에 따라 기존의 Spring Java개발에서 SpringBoot + JPA + Template을 통한 개발이 많아지고 있는 것 같다. 특히 AWS와 함께 사용이 더더욱 증가되고 있는 것으로 보인다. 우선 SpringBoot를 진단하게 될 경우, SpringBoot뿐만 아니라, JPA, Template에서의 키워드도 함께 검색해야 정적진단을 수행할 수 있을 것으로 보인다. ( 아직 AWS와 연관된 소스코드 취약점은 많이 알지 못하니, 이 부분은 향후 추가해야 겠다. ) 1. 파일 검색 build.gradle : 어플리케이션에서 사용하는 라이브러리 등을 확인 *properties : 각 설정값이 존재함, 불필요 설정존재 여부 확인, OAuth 인증값 등이 평..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
- Total
- Today
- Yesterday