직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 1. AndroidManifest.xml 개요 구글에서 제공하는 공식 문서를 참고하였다. https://developer.android.com/guide/topics/manifest/manifest-intro.html AndroidManifest.xml은 아래에서 설명하는 구성요소를 정의하고 어떤 작업을 수행할 지 시스템에 알려주는 제어 파일이다. 각 요소는 XML 형식으로 되어 있으며 Key-Value 관계를 가진다. 포함하는 정보에는 여러가지가 있지만 다음 정보를 필수로 포함해야 한..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 1. APK(Android Application Package) 안드로이드 설치파일이다. APK 파일 구조는 그림과 같다. Manifest(AndroidManifest.xml): 메타데이터, 앱의 실행정보, 권한, 액티비티 목록등을 제공하는 파일이다. 앱의 패키지명. Activity, 리소스와 같은 응용 프로그램의 모든 구성 요소. 앱을 실행하는 데 필요한 권한 및 다른 응용 프로그램에서 앱의 정보에 액세스하는 데 필요한 권한(permission). 호환성 기능(예: 최소 Android..
CloudFront 배포 상세 가격 정보 CloudFront는 전 세계에 edge location을 가지며, 각 위치에 대한 비용이 다르고 요청을 처리하는 데 드는 비용도 다르다. CloudFront edge location은 지리적 영역으로 그룹화되고, 지역은 가격 클래스로 그룹화 되어 있다. = 가격 등급 - 모든 리전 포함 = 가격 등급(Price Class 200) - 남미와 호주 및 뉴질랜드를 제외한 모든 지역을 포함 한다. = 가격 등급(Price Class 100) - 가장 저렴한 지역(북미 및 유럽 지역) 가격 등급을 선택하여 비용을 절감할 수 있지만, CloudFront는 선택한 가격 클래스 edge location에서만 요청을 처리하므로 성능 저하(대기 시간 증가)가 발생한다. Clou..
[개발환경] M2 OSX Ventura 13.2.1 VS Code SpringBoot 3.0.2 OpenJDK 17 Gradle 7.6 [Docker] - mysql:latest 들어가며 Spring Session과 JWT는 둘 다 스프링 부트 애플리케이션에서 인증과 세션 관리를 위해 사용될 수 있지만, 서로 다른 방식으로 작동한다. 앞선 포스트에서 Spring Session에 대해서 설명하고 직접 구현해 보았다. 2023.03.08 - [DEV/SpringBoot] - [SpringBoot3] 로그인 페이지 실습 1 JWT는 서버와 클라이언트 간의 인증에 사용되며, 클라이언트에서 토큰을 생성하고 서버에서 검증한다. JWT는 사용자 정보와 권한 정보를 포함할 수 있으며, 서버 측에서 세션을 저장하거나 관..
[개발환경] M2 OSX Ventura 13.2.1 VS Code SpringBoot 3.0.2 OpenJDK 17 Gradle 7.6 [Docker] - mysql:latest 들어가며 SpringBoot3에서 Spring Session과 JWT를 이용한 인증, 인가 로직을 구현하고 발생할 수 있는 취약점을 분석한다. Spring Session과 JWT는 둘 다 스프링 부트 애플리케이션에서 인증과 세션 관리를 위해 사용될 수 있지만, 서로 다른 방식으로 작동한다. Spring Session은 세션 데이터를 저장하기 위한 다양한 저장소(예: Redis, MongoDB, JDBC 등)를 지원하며, 서버 측에서 세션을 관리한다. Spring Security와 함께 사용할 때, Spring Session은 인..
CloudFront 보안 CloudFront 보안은 여러가지 특징을 가진다. = 유휴상태 및 전송 시 암호화 지원 = 특정 지리적 위치의 사용자가 콘텐츠에 액세스하지 못하도록 방지 = HTTPS 연결 구성 = 서명된 URL 또는 쿠키를 사용하여 선택한 사용자의 액세스를 제한 = 오리진 액세스 ID(OAI)를 사용하여 S3 버킷의 콘텐츠에 대한 액세스를 제한하여 사용자가 파일의 직접 URL을 사용하지 못하도록 한다. = 특정 내용 필드에 대한 필드 수준 암호화 설정 = AWS WAF 웹 ACL을 사용하여 웹 액세스 제어 목록(웹 ACL)을 작성하여 내용에 대한 액세스를 제한 = 특정 지리적 위치의 사용자가 CloudFront 배포를 통해 제공되는 콘텐츠에 액세스하지 못하도록하려면 지리적 제한(geobloc..
문제 Could not run phased build action using connection to Gradle distribution 오류 발생하면서 Gradle 빌드가 되지 않는 오류 발생 해결 gradle 버전이 일치하지 않아서 발생하는 문제이며, gradle 경로에서 사용하지 않는 버전을 삭제한다. (또는 설치된 모든 gradle을 모두 삭제한 후 새로 build를 하면 자동으로 선언되어 있는 버전을 새로 다운받는다.) Windows: C:\Users\[UserName]\.gradle\wrapper\dists OSX: ~/.gradle/wrapper/dists 이후에 Gradle에서 Build를 다시 수행한다. 참고 https://stackoverflow.com/questions/68321708..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 개요 취약점 진단가의 입장에서 안드로이드 운영체제를 정리한다. 취약점을 발굴하기 위한 위협모델링부터, 안드로이드 OS에서 발생할 수 있는 취약점에 대한 내용이다. 위협 모델링(Threat Modeling) 중요 자산을 보호하기 위해서 기업들은 위협과 위험을 최소화하기 위해 사전에 점검한다. 그 단계중 하나로 위협 모델링을 실시하는데 이를 위해 가장 먼저 살펴보아야할 것은 무엇일까, 평가 요소는 다음과 같다. 시스템의 구조(Architecture) 시스템의 보안 상태 보호해야할 자산 가능..
[개발환경] M2 OSX Ventura 13.0.1 VS Code SpringBoot 3.0.2 Java 11 Gradle 1. MySQL DB Docker image 내려받기 docker pull mysql docker run --name mysqldb -e MYSQL_ROOT_PASSWORD=Password -e MYSQL_DATABASE=mydb -d -p 3306:3306 mysql:latest docker container ls 명령으로 실행중인 컨테이너 확인할 수 있다. 2. [SpringBoot3] 의존성 추가 build.gradle 파일에 mysql 연결을 위한 의존성을 추가한다. JSP으로 작업할 때에는 직접 드라이버를 찾아서 설치해줘야 했는데 한 줄 추가만 하면 된다. implement..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 개요 모바일 모의해킹 과정으로, OWASP 모바일 애플리케이션 보안 검증 표준(MASVS)의 관련 항목에 대한 실습 및 심층 탐구 OWASP TOP 10 항목과 더불어 CTF나 버그바운티 등 리얼 월드에 적용 가능한 기법 학습 모바일 앱 취약점 진단 가능 모바일 모의해킹의 이해 모바일 운영체제를 이해할 수 있다. 모바일 모의해킹을 통해 취약점을 식별할 수 있다. 모바일 보안 생태계 모바일 보안 아키텍처 및 구성요소 모바일 앱 서명, 샌드박스 및 프로비저닝 모바일 앱 및 파일시스템 다루는..