티스토리 뷰

반응형

0. SpringBoot 진단

마이크로서비스의 발전에 따라 기존의 Spring Java개발에서 SpringBoot + JPA + Template을 통한 개발이 많아지고 있는 것 같다. 특히 AWS와 함께 사용이 더더욱 증가되고 있는 것으로 보인다. 우선 SpringBoot를 진단하게 될 경우, SpringBoot뿐만 아니라, JPA, Template에서의 키워드도 함께 검색해야 정적진단을 수행할 수 있을 것으로 보인다.

( 아직 AWS와 연관된 소스코드 취약점은 많이 알지 못하니, 이 부분은 향후 추가해야 겠다. )  

 

 

1. 파일 검색

build.gradle : 어플리케이션에서 사용하는 라이브러리 등을 확인

*properties : 각 설정값이 존재함, 불필요 설정존재 여부 확인, OAuth 인증값 등이 평문노출되는지 확인 필요

*Controller*java : 외부에 오픈되는 URI에 대한 처리 Controller 클래스 확인 => 로직검토

*Repository*java : JPA에서 Bean클래스를 DBMS오 접근하게 하는 Repository 클래스 확인 => 쿼리함수정보 및 네이티브 쿼리 사용여부 확인

*Test*java : 모듈 테스트 클래스 확인 => 테스트 함수 내 불필요한 중요정보가 존재하는지 확인

*mustache : Mustache Template 파일 => 어떤 데이터를 출력하는지 확인, 사용하는 URI 확인

*hbs : Handlebar Template 파일 => 어떤 데이터를 출력하는지 확인, 사용하는 URI 확인

 

2. 데이터 검색

@RestController : JSON을 반환하는 컨트롤러 설정 어노테이션 → RestAPI로 제공하는 URI 확인

@Controller : 컨트롤러 설정 어노테이션 서비스에 제공하는 URI 확인

@GetMapping : Get 메서드로 연결시키는 어노테이션 URI에 연결되는 함수정보 확인 가능

@PostMapping : Post 메서드를 연결시키는 어노테이션 URI에 연결되는 함수정보 확인 가능

@PutMapping : Put 메서드를 연결시키는 어노테이션 URI에 연결되는 함수정보 확인 가능

@DeleteMapping : Delete 메서드를 연결시키는 어노테이션 URI에 연결되는 함수정보 확인 가능

@RequestParam : 외부에서 전달받는 파라미터 값을 가져오는 어노테이션 외부 입력값 확인

@PathVariable : URI 경로정보에서 입력값을 가져오는 어노테이션 외부 입력값 확인

@Entity : JPA에서 테이블과 링크될 클래스를 나타내는 어노테이션 네이티브 쿼리 존재여부 확인

@SpringBootTest : 모듈 테스트 함수를 나타내는 어노테이션 테스트 함수 내 불필요 정보가 노출되는지 확인

@Test : 모듈 테스트 함수를 나타내는 어노테이션 테스트 함수 내 불필요 정보가 노출되는지 확인

@Query.+nativeQuery : 직접 정의한 네이티브 쿼리정보 확인 SQL Injection 공격 가능성 확인

@.+NativeQuery : 연결된 네이티브 쿼리정보 확인 SQL Injection 공격 가능성 확인

createNativeQuery : JPA 네이티브 쿼리 사용 SQL Injection 공격 가능성 확인

spring.h2.console.+true : 메모리형 RDBMS 사용하는 Properties 설정 /h2-console 으로 접속 가능 (동적확인)

addAttribute : View로 데이터를 전달 출력 데이터 종류 확인 / View에서 실제 출력하는지 크로스 체크 필요

{{{ : 출력값에 이스케이프를 수행하지 않아, XSS 유도 가능 출력값 검증여부 확인

{{.+json : {{를 사용 시 JSON 타입일 경우 이스케이프를 수행하지 않음 출력값 검증여부 확인

 

ConfigurationProperties : 클래스 파일로 프로퍼티를 생성 및 관리할 수 있는 어노테이션

 

 

 

 

반응형

'Security > Spring' 카테고리의 다른 글

Spring Security 보호기능  (0) 2023.04.17
Spring Security Summary  (0) 2023.04.16
SpringBoot 기초  (0) 2020.05.08
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday