분류 전체보기 195

[Java] 자료형 (Map, Set)

- Map (맵) key에 대응되는 value를 가진 관계를 자료형 key value name 홍길동 나이 26 key를 통해 value를 얻는다 --> 하나 하나 모든 것을 확인하지 않고, key값을 통해 바로 value를 얻어낼 수 있다. HashMap이 가장 대표적이다. HashMap의 메소드 1. put() : key와 value값을 넣는다. import java.util.HashMap; public class Sample { public static void main(String[] args) { HashMap map = new HashMap(); map.put("people", "사람"); map.put("baseball", "야구"); } } HashMap도 마찬가지로 제네릭스를 이용한다. ..

Java 2023.05.24

[Java] 자료형 (배열, 리스트)

- 배열 배열의 선언 1. 숫자형 int[] odds = {1, 3, 5, 7, 9}; 2. 문자열 String[] weeks = {"월", "화", "수", "목", "금", "토", "일"}; 아래와 같이 선언할 수 도 있다. String[] weeks = new String[7]; weeks[0] = "월"; weeks[1] = "화"; weeks[2] = "수"; weeks[3] = "목"; weeks[4] = "금"; weeks[5] = "토"; weeks[6] = "일"; 이와 같이 배열을 먼저 "선언" 하고 값을 넣을 경우, 배열의 크기를 지정해주어야 한다. 배열의 길이 배열의 길이는 weeks.length와 같이 사용한다. * 문자열의 경우 weeks.length()를 사용한다. - 리스트..

Java 2023.05.23

[Java] 프로그래머스 Level 1: 바탕화면 정리

- 문제설명 - 제한사항 - 예시 & 입출력 예 - 해결과정 모든 #을 포함해서 지워야하기 때문에, (가장 위에 있는 #의 y좌표, 가장 좌측에 있는 #의 x좌표) 부터 (가장 위에 있는 #의 y좌표, 가장 좌측에 있는 #의 x좌표) 까지 드래그를 긁어서 지우면 모두 포함되어 지울 수 있다. --> 동서남북 4방향에서의 가장 끝에 있는 #들의 좌표를 구해야겠다. 기본 세팅은 좌측상단에서 우측하단으로 갈수록 좌표값이 커진다. 1. max_north_num : for문을 통해 위에서 아래로 내려오며 #이 포함된 가장 상단의 인덱스를 구한다. 2. max_south_num : 위에서 부터 내려오면 시간낭비, 가장 하단부터 위로 올라가며 찾는다. 3. max_west_num : 1,2와 달리 array[]안의 ..

[Java] 자료형 (숫자, 문자열)

-  숫자int (4byte) : 정수형, 범위 : -2147483647 ~ 2147483647(10자리)long (8byte) : 정수형, 범위 : -9223372036854775808 ~ 9223372036854775807(19자리)float (4byte) : 실수형, 접미사 f or F, 소수점 6자리까지 오차없이 표현가능double (8byte) : 실수형, 접미사 생략가능(d or D), 소수점 15자리까지 오차없이 표현가능  -  문자열String은 기본적으로 원시자료형(int, char, long, boolean ...)은 아니지만 특별 대우를 받아, 리터럴 표기가 가능하다ex) String str = "ABC"        String str = new String("ABC") 문자열 내장..

Java 2023.05.23

AWS WAF를 통한 웹 애플리케이션 보안

실습 목표 : 웹 애플리케이션의 취약점이 노출된 웹 서버를 배포 후 모의 해킹을 수행하고, AWS WAF에 의해 웹 취약점 공격을 점검하고 차단하는 실습을 진행한다. 실습 목표 구성도는 아래와 같다. WAF을 제외한 기본 환경은 CloudFormation을 통해 구성한다. 기본 환경에서 웹 취약점 검증 현재 기본 환경은 웹 서비스에 대한 보안 대책이 없이 아무나 연결이 가능한 무방비 상태이다. 해당 환경에서 웹 취약점 공격자가 되어 모의 해킹을 수행해 보겠다. 우선 DVWA 인스턴스에 접근하여, 보안 레벨을 낮춰 실습에 용이하게 설정하자. ALB의 퍼블릭 DNS 주소를 확인하고 웹 브라우저로 HTTP 접근을 해보자. * DVWA는 보안에 취약한 무방비 상태의 웹 애플리케이션이다. DVWA 웹 서버를 통해..

AWS/실습 2023.01.18

AWS WAF (Web Application Firewall)

WAF (Web Application Firewall) WAF이란 웹 어플리케이션 보안에 특화된 전용 방화벽이다. SQL Injection 공격, XSS(Cross-site Scripting)공격, CSRF(Cross-site Request Forgercy) 공격 등과 같이 웹 서비스 취약점에 대한 공격을 탐지하고 차단하는 기능을 수행한다. AWS WAF AWS WAF은 AWS에서 관리하는 웹 어플리케이션 전용 방화벽이다. AWS WAF은 AWS 서비스 중에서 CloudFront, ALB, API Gateway에 배포할 수 있다. AWS WAF의 주요 기능으로는 웹 트래픽 필터링 API를 통한 자동화 및 유지관리 CloudWatch를 통한 가시성 보장 AWS Firewall Manager와 통합가능 AW..

AWS/이론 2023.01.18

VPC 트래픽 미러링

트래픽 미러링이란 네트워크 환경에서 발생하는 트래픽을 복제하여 특정 장치로 전달하여 해당 정보를 모니터링할 수 있는 기능이다. VPC 플로우 로그와의 차이점은 뭘까? VPC 플로우 로그는 정형화된 필드로 이루어진 로그, 즉 레코드일 뿐이며 VPC 트래픽 미러링은 실제 네트워크 패킷 그 자체이다. 트래픽의 상세한 분석이나 결과를 확인하고 싶을 경우 VPC 트래픽 미러링을 통해 실제 네트워크 패킷을 수집하여 활용할 수 있다. VPC 트래픽 미러링의 구성 요소에 대해 알아보자. 미러 소스 : 트래픽 미러링을 수행할 대상, ENI를 미러 소스로 사용할 수 있다. 미러 타깃 : 트래픽 미러링을 통해 복제된 트래픽을 전달할 목적지, 소스와 다른 ENI 또는 NLB가 될 수 있다. 미러 필터 : 필터를 통해 트래픽 ..

AWS/이론 2023.01.18

보안 그룹과 네트워크 ACL의 차이 & VPC 플로우 로그

실습 목표 : VPC에서 보안 그룹과 네트워크 ACL을 생성하여 동작의 차이를 이해하고, VPC 플로우 로그를 통해 레코드를 수집하여 접속 허용과 거부를 확인한다. 기본 실습 환경은 CloudFormation을 통해 구성한다. VPC 플로우 로그와 CloudWatch는 아직 생성하지 않았다. 보안 그룹을 통한 접근 제어 먼저, 보안 그룹을 통해 접근 제어를 해보자. 보안그룹은 Stateful 한 동작 제어를 한다. 이해를 돕기 위해 먼저 Server-SG의 보안 그룹에서 아웃바운드 규칙을 삭제 한 후 실습을 진행하겠다. 다음으로 사용자 PC에서 Server-EC2로 SSH 접근을 시도해보자. 아래와 같이 정상접속되는 것을 확인할 수 있다. 아주 당연한 결과처럼 보이지만, 현재 적용중인 Server-SG ..

AWS/실습 2023.01.18

VPC 플로우 로그

VPC 플로우 로그는 VPC에 속한 네트워크 인터페이스(ENI)에서 송수신 되는 트래픽에 대한 정보를 수집할 수 있는 기능이다. 이를 통해 네트워크 연결 문제 해결, 보안 문제 확인, 네트워크 접근 제어 정책이 정상적으로 동작하는지 체크할 수 있다. 위와 같이 EC2 인스턴스의 네트워크 인터페이스에 플로우 로그 그룹을 구성할 수 있다. 서브넷 A의 상황과 같이 인스턴스 A-1 대상만 플로우 로그 -AAA 그룹으로 생성하고 발생한 플로우 로그 레코드를 S3 버킷에 쌓아둘 수 있다. 서브넷 B의 상황과 같이 인스턴스 B-1,2 모두 플로우 로그 -BBB 그룹으로 생성하고 발생한 플로우 로그 레코드를 CloudWatch Logs를 통해 게시할 수 있다. 참고로 VPC 플로우 로그를 생성한 후 데이터를 수집하여..

AWS/이론 2023.01.16

보안 그룹 & 네트워크 ACL

접근 제어 (Access Control) 일반적인 측면에서 접근 제어는 보안상 위협으로부터 환경을 보호하기 위한 보안 대책이다. 인가된 대상은 접근을 허용하고, 인가되지 않은 대상은 접근을 거부함으로써 보안을 강화할 수 있다. 위는 접근 제어 절차로 식별 -> 인증 -> 권한부여 순으로 진행된다. 네트워크 입장에서 보면 대상을 식별하는 기준으로는 일반적으로 IP주소나 포트번호, 프로토콜을 예로 들 수 있겠다. 위는 간단한 구조의 네트워크 접근 제어 상황을 보여주고있다. 보안 그룹과 네트워크 ACL AWS에서는 네트워크 인프라 보호를 위한 트래픽 제어 정책으로 보안 그룹(Security Group)과 네트워크 ACL(Access Control List)기능을 활용한다. 둘 다 모두 IP주소와 프로토콜, 포..

AWS/이론 2023.01.16