가장 최신 글
최신 글
VRF의 이해와 PBR, VS와의 차이점
네트워크,클라우드2025.05.25 16:16VRF의 이해와 PBR, VS와의 차이점

VRF란?VRF(Virtual Routing and Forwarding)는 네트워크 장비에서 논리적으로 라우팅 테이블을 분리하여, 동일한 네트워크 장비 안에서도 서로 다른 고객 또는 서비스 간의 트래픽을 격리할 수 있도록 해주는 기술이다.방화벽에 VRF를 적용할 경우, 한 대의 방화벽 안에서 서로 독립적인 보안 정책과 라우팅을 제공할 수 있어, 복잡한 네트워크 환경에서도 유연한 설계와 보안 분리가 가능해진다.🔍 VRF란?1. 기본 개념Virtual Routing and Forwarding의 약자.하나의 네트워크 장비(라우터, 방화벽 등) 안에서 여러 개의 라우팅 테이블을 동시에 운영할 수 있게 해줌.물리적으로 하나의 장비이지만, 마치 여러 대의 독립된 라우터처럼 동작하게 한다.비유: 한 건물 안에 여러..

Spine-Leaf 구조 이해
카테고리 없음2025.05.23 15:23Spine-Leaf 구조 이해

Spine-Leaf 구조 완전 정리: 데이터센터 네트워크의 표준Spine-Leaf 구조는 최신 데이터센터 네트워크에서 표준처럼 자리 잡은 토폴로지다. 높은 가용성과 확장성, 낮은 지연 시간(Low Latency)을 제공하며, 특히 East-West 트래픽이 많은 클라우드 및 고성능 컴퓨팅 환경에서 필수적인 설계 방식이다.기존의 3계층 네트워크 아키텍처(코어-분산-액세스)는 수직적 구조로 인해 확장성과 트래픽 병목에 한계가 있었다. 이를 극복하기 위해 등장한 것이 바로 Spine-Leaf 구조다.1. Spine-Leaf 구조 개요Spine-Leaf는 두 개의 계층으로 단순화된 계층형 네트워크 토폴로지다.Leaf Switch서버, 스토리지, 방화벽 등 엔드 디바이스가 직접 연결되는 액세스 계층대부분 ToR(..

BGP 쉽게 이해하기
네트워크,클라우드2025.05.22 13:44BGP 쉽게 이해하기

1. BGP란?**BGP(Border Gateway Protocol)**는인터넷 상의 자율 시스템(AS) 간에 경로 정보를 교환하기 위한 라우팅 프로토콜이다.📌 인터넷을 가능하게 만든 라우팅 프로토콜, 즉 "인터넷의 우체부"라고 이해하면 된다.2. 기본 개념 정리용어 설명AS (Autonomous System)독립적인 네트워크 그룹, 하나의 ISP나 대기업 네트워크처럼 특정한 관리 주체가 있는 네트워크 단위. 고유한 AS 번호를 가짐.EGP (Exterior Gateway Protocol)AS 간 경로를 교환하는 프로토콜. BGP는 유일하게 실무에서 사용하는 EGP임.IGP (Interior Gateway Protocol)OSPF, RIP, EIGRP 등 AS 내부에서 사용하는 라우팅 프로토콜.3. B..

ECMP와 LACP 차이점
네트워크,클라우드2025.05.21 09:49ECMP와 LACP 차이점

LACP와 ECMP: 같은 로드밸런싱? 전혀 다르다데이터센터나 엔터프라이즈 네트워크 설계에서 “로드밸런싱”이란 단어는 자주 등장하지만, 사용하는 기술에 따라 의미는 전혀 달라진다. 대표적인 예로 LACP와 ECMP는 모두 트래픽 분산에 사용되지만, 동작 계층과 목적, 설계 방식이 본질적으로 다르다.1. LACP란 무엇인가?LACP(Link Aggregation Control Protocol)는 IEEE 802.3ad 표준에 기반한 기술로, 다수의 물리 링크를 하나의 논리적 링크로 묶어 동작하게 만든다. 흔히 말하는 LAG(Link Aggregation Group) 구성이 여기에 해당된다.주요 목적대역폭 증가 (예: 1Gbps × 2 → 2Gbps)링크 리던던시 확보단일 대상에 대한 연결 강화동작 방식스위..

인증서 프로세스 쉽게 이해하기
네트워크,클라우드2025.05.12 00:10인증서 프로세스 쉽게 이해하기

🔐 전체적인 인증서 프로세스, 쉽게 말하면...🎁 1. 인증서(Certificate)는 디지털 신분증이다.우리가 현실에서 주민등록증이나 운전면허증으로 신분을 증명하듯,인터넷에서도 컴퓨터나 웹사이트의 신원을 증명하기 위한 "디지털 신분증"이 필요하다.이를 디지털 인증서라고 한다. (예: https 웹사이트의 보안 인증서)🏛️ 2. CA (Certificate Authority, 인증기관)CA는 '공식 발급처', 즉 주민센터와 같은 곳이다.신분증을 아무나 발급해주면 안 되므로, 신뢰할 수 있는 기관만 이를 발급할 수 있다.예시: Let's Encrypt, DigiCert, Comodo 등✉️ 3. CSR (Certificate Signing Request, 인증서 서명 요청)"나 인증서 받고 싶다" 하..

SDN과 SD-WAN 차이점?
네트워크,클라우드2025.05.11 02:31SDN과 SD-WAN 차이점?

✅ SDN이란?네트워크를 소프트웨어처럼 유연하게 제어할 수 있게 만든 기술이다.기존에는 네트워크 장비 하나하나에 들어가서 직접 설정해야 했으나,SDN은 중앙에서 전체 네트워크를 소프트웨어처럼 통제할 수 있다.🧠 핵심 개념: "제어부"와 "전달부"의 분리기존 네트워크 방식기존의 라우터 구조는 Control Plane과 Data Plane을 함께 가지고 있다.Control Plane (제어부) : 패킷 경로 설정, 관리 및 제어 (Routing 기능)Data Plane (전송부) : 패킷 송수신 (Forwarding 기능)스위치/라우터 자체가 아래의 역할을 모두 함데이터를 어떻게 보낼지 판단(제어)실제로 데이터를 보냄(전달)👉 모든 것을 혼자 다 하였다. 이처럼 하나의 라우터 안에서 패킷 처리와 오버헤드..

SSL VPN 데몬 동작 원리
네트워크,클라우드2025.05.10 23:37SSL VPN 데몬 동작 원리

✅ SSL VPN 패킷 흐름 개요SSL VPN은 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용해서 원격 사용자가 인터넷을 통해 사내 네트워크에 안전하게 접속할 수 있게 해주는 기술이다.🔁 전체 흐름 정리🎯 전제 조건SSL VPN Client IP: 192.168.98.10SSL VPN Gateway (Firewall 외부 인터페이스): 192.168.98.254VPN 사용자에게 부여된 가상 IP: 172.16.0.10 (SSL 터널 내부 주소)내부망 서버: 30.30.30.30SSL VPN Proxy가 수신하는 포트: 0.0.0.0:500📦 시간대별 패킷 구조 흐름도📘 예시 환경 기준클라이언트 가상 IP: 172.16.0...

Spring Bean이란?
개발2025.03.22 16:58Spring Bean이란?

Spring Bean이란?1. Spring Bean의 개념Spring Bean은 Spring 프레임워크의 IoC(Inversion of Control, 제어의 역전) 컨테이너에 의해 생성, 관리되는 객체입니다. 일반적인 Java 객체(POJO, Plain Old Java Object)와 달리, Spring Bean은 Spring 컨테이너에 의해 생명주기가 관리되며, 의존성 주입(Dependency Injection)을 통해 다른 Bean과 연결됩니다.Spring Bean의 특징IoC 컨테이너에 의해 관리: 개발자가 직접 객체를 생성하고 관리하는 것이 아니라, Spring 컨테이너가 대신 수행합니다.의존성 주입(DI): 객체 간의 의존 관계를 외부에서 설정해줍니다.생명주기 관리: Bean의 생성, 초기화,..

Kafka와 RabbitMQ 비교 분석
개발2025.03.21 16:56Kafka와 RabbitMQ 비교 분석

Kafka와 RabbitMQ 비교 분석1. 개요메시지 브로커(Message Broker)는 분산 시스템에서 서비스 간 비동기 통신을 가능하게 하는 중요한 컴포넌트입니다. 이 문서에서는 가장 널리 사용되는 두 메시지 브로커인 Kafka와 RabbitMQ의 아키텍처, 특징, 사용 사례를 비교 분석합니다.2. 아키텍처 비교2.1. Kafka 아키텍처Kafka의 아키텍처는 다음과 같은 구성 요소로 이루어져 있습니다:브로커 클러스터: 여러 브로커가 클러스터를 형성하여 토픽과 파티션을 관리합니다.ZooKeeper 앙상블: 브로커 클러스터의 메타데이터를 관리하고 클러스터 조정을 담당합니다.프로듀서 API: 메시지를 생성하여 토픽에 발행합니다.컨슈머 API: 토픽으로부터 메시지를 구독하여 처리합니다.스트림 API: 스..

테스트 코드의 중요성? (SpringBoot 기반 Mocking 학습)
개발2025.03.21 16:51테스트 코드의 중요성? (SpringBoot 기반 Mocking 학습)

Mocking이란?1. Mocking의 개념Mocking은 테스트를 진행할 때 실제 객체 대신 가짜 객체(Mock 객체)를 생성하여 사용하는 기법입니다. 이 가짜 객체는 실제 객체의 행동을 흉내내어, 테스트 대상 코드가 의존하는 다른 컴포넌트와의 상호작용을 시뮬레이션합니다.왜 Mocking이 필요한가요?단위 테스트의 독립성 보장: 테스트 대상 코드만 격리하여 테스트할 수 있습니다.외부 의존성 제거: 데이터베이스, 외부 API 등 외부 시스템에 의존하지 않고 테스트할 수 있습니다.테스트 속도 향상: 실제 객체보다 가벼운 Mock 객체를 사용하여 테스트 속도를 높일 수 있습니다.특정 시나리오 테스트: 실제 환경에서 재현하기 어려운 상황(예: 네트워크 오류)을 시뮬레이션할 수 있습니다.2. 단위 테스트와 통합..

개발
Spring Bean이란?
Spring Bean이란?
개발
2025.03.22 16:58
Spring Bean이란?1. Spring Bean의 개념Spring Bean은 Spring 프레임워크의 IoC(Inversion of Control, 제어의 역전) 컨테이너에 의해 생성, 관리되는 객체입니다. 일반적인 Java 객체(POJO, Plain Old Java Object)와 달리, Spring Bean은 Spring 컨테이너에 의해 생명주기가 관리되며, 의존성 주입(Dependency Injection)을 통해 다른 Bean과 연결됩니다.Spring Bean의 특징IoC 컨테이너에 의해 관리: 개발자가 직접 객체를 생성하고 관리하는 것이 아니라, Spring 컨테이너가 대신 수행합니다.의존성 주입(DI): 객체 간의 의존 관계를 외부에서 설정해줍니다.생명주기 관리: Bean의 생성, 초기화,..
Kafka와 RabbitMQ 비교 분석
Kafka와 RabbitMQ 비교 분석
개발
2025.03.21 16:56
Kafka와 RabbitMQ 비교 분석1. 개요메시지 브로커(Message Broker)는 분산 시스템에서 서비스 간 비동기 통신을 가능하게 하는 중요한 컴포넌트입니다. 이 문서에서는 가장 널리 사용되는 두 메시지 브로커인 Kafka와 RabbitMQ의 아키텍처, 특징, 사용 사례를 비교 분석합니다.2. 아키텍처 비교2.1. Kafka 아키텍처Kafka의 아키텍처는 다음과 같은 구성 요소로 이루어져 있습니다:브로커 클러스터: 여러 브로커가 클러스터를 형성하여 토픽과 파티션을 관리합니다.ZooKeeper 앙상블: 브로커 클러스터의 메타데이터를 관리하고 클러스터 조정을 담당합니다.프로듀서 API: 메시지를 생성하여 토픽에 발행합니다.컨슈머 API: 토픽으로부터 메시지를 구독하여 처리합니다.스트림 API: 스..
테스트 코드의 중요성? (SpringBoot 기반 Mocking 학습)
테스트 코드의 중요성? (SpringBoot 기반 Mocking 학습)
개발
2025.03.21 16:51
Mocking이란?1. Mocking의 개념Mocking은 테스트를 진행할 때 실제 객체 대신 가짜 객체(Mock 객체)를 생성하여 사용하는 기법입니다. 이 가짜 객체는 실제 객체의 행동을 흉내내어, 테스트 대상 코드가 의존하는 다른 컴포넌트와의 상호작용을 시뮬레이션합니다.왜 Mocking이 필요한가요?단위 테스트의 독립성 보장: 테스트 대상 코드만 격리하여 테스트할 수 있습니다.외부 의존성 제거: 데이터베이스, 외부 API 등 외부 시스템에 의존하지 않고 테스트할 수 있습니다.테스트 속도 향상: 실제 객체보다 가벼운 Mock 객체를 사용하여 테스트 속도를 높일 수 있습니다.특정 시나리오 테스트: 실제 환경에서 재현하기 어려운 상황(예: 네트워크 오류)을 시뮬레이션할 수 있습니다.2. 단위 테스트와 통합..
Kafka+Docker 기반 SpringBoot 프로젝트 구축 방법
Kafka+Docker 기반 SpringBoot 프로젝트 구축 방법
개발
2025.03.20 15:45
Kafka 상세 가이드1. Kafka란 무엇인가?Kafka는 LinkedIn에서 개발하고 현재는 Apache 재단에서 관리하는 분산 스트리밍 플랫폼입니다. 대용량의 실시간 데이터 스트림을 안정적으로 처리할 수 있도록 설계되었으며, 다음과 같은 특징을 가지고 있습니다:고성능: 초당 수백만 개의 메시지를 처리할 수 있는 높은 처리량확장성: 클러스터 구성을 통해 수평적 확장 가능내구성: 데이터를 디스크에 저장하여 데이터 손실 방지분산 처리: 여러 서버에 데이터를 분산하여 저장 및 처리2. Kafka의 주요 개념2.1. 메시지(Message)Kafka에서 데이터의 기본 단위입니다. 키(Key)와 값(Value)으로 구성되며, 타임스탬프와 메타데이터도 포함할 수 있습니다.2.2. 토픽(Topic)메시지가 저장되는..
Spring Boot - Builder 패턴
Spring Boot - Builder 패턴
개발
2025.03.12 17:47
.Builder의 의미.builder()는 주로 빌더 패턴을 사용하는 클래스에서 객체를 생성하는 메서드다. 이 메서드는 빌더 객체를 사용하여 설정된 필드 값을 기반으로 최종 객체를 생성하고 반환한다.빌더 패턴빌더 패턴은 복잡한 객체를 생성할 때 유용한 디자인 패턴으로, 객체의 생성 과정을 단계적으로 구성할 수 있게 해준다. 이 패턴은 다음과 같은 장점을 제공한다가독성 향상: 객체의 필드를 명시적으로 설정할 수 있어, 어떤 값이 어떤 필드에 할당되는지 쉽게 이해할 수 있다.2. 유연한 객체 생성: 필요한 필드만 설정할 수 있어, 선택적 필드를 쉽게 처리할 수 있다.불변 객체 생성: 필드를 final 선언하고, 생성자에서만 값을 설정하여 객체의 상태를 변경할 수 없도록 할 수 있다.예시@Getter@Sett..
시스템해킹
취약점 자동 분석 및 공격 0x3 침투 실행
취약점 자동 분석 및 공격 0x3 침투 실행
시스템해킹
2023.11.29 20:10
Critical High Medium Low Info 여러 단계의 취약점들이 발견 되었다. Critical에 가까울수록 공격(Exploitation)받기가 쉬우며, 시스템 주도권을 뺏기기 쉽다. 실제로 취약점이 존재하지만 스캔 되지 않는 취약점들을 'False Nefativce(존재하는 오류를 부정)' 이라고 부른다. 이와 반대는 'False Positive(존재하지 않는 오류진단)' 이 있다. ex)스팸메일 Metasploitable2 서버 공격 - [Critical Exploitation] Backdoor Metasploitable2에서 발견된 가장 높은 단계의 취약점인 백도어 공격을 수행해봤다. 1. 취약점 분석 Backdoor 취약점 목록으로 들어간다. 상세 페이지를 ..
취약점 자동 분석 및 공격 0x2 취약점 스캐닝
취약점 자동 분석 및 공격 0x2 취약점 스캐닝
시스템해킹
2023.11.29 20:07
스캐닝 환경 설정 공격 타겟 설정 Nessus가 active상태인 것을 확인하고 웹서버에 접속 했다면,[New Scan] - [Advanced Scan] 으로 들어온 뒤 공격할 Target IP주소들을 적는다. 같은 네트워크 환경에 구축되어있는 Metsploitable2와 WindowsXP서버 IP를 적어줬다. ASSESSMENT ASSESSMENT탭에서는 두 번째 칸을 체크한다. REPORT REPORT 탭에서 다음과 같이 설정. ADVANCED ADVANCED에선 다음과같이 설정. Credentials Credentials의 SSH탭에 인증 방식을 패스워드로 바꾸고 metasploitable2의 login정보를 입력한다. Plugins Plugins에서 CISCO, F5 Networks Local S..
취약점 자동 분석 및 공격 0x1 환경 세팅
취약점 자동 분석 및 공격 0x1 환경 세팅
시스템해킹
2023.11.29 19:59
Nessus 환경 세팅 가장 유명한 취약점 분석 툴 중 하나이다. 무료 버전인 Nessus Essentials를 사용했다. 1. Download ▶ Download Link Download에 저장된 파일로 설치를 실행한다. 2. 설치파일 실행 # service nessusd status # service nessusd start # netstat -tnlp nessusd가 실행되었는지 확인 후 inactive 상태라면 start 해주고, netstat로 tcp통신을 진행중인 서비스의 연결 상태를 확인한다. 3. Nessus 웹서버 접속 그다음 웹브라우저로 https://0.0.0.0:8834 로 접속. (또는 kali IP주소:8834) 들어온다면 essentials가입 으로 계속하기 한 다음 이름과 이..
Format String 특정 메모리값 변조
Format String 특정 메모리값 변조
시스템해킹
2023.11.26 14:52
포맷 스트링 공격은 데이터의 형태와 길이에 대한 불명확한 정의로 인한 문제점 중 '데이터 형태에 대한 불명확한 정의'로 인한 것으로, 포맷 스트링을 이용하여 버퍼 오버플로우와 같이 메모리에 셸을 띄워 놓고, ret 값을 변조하여 관리자 권한을 획득하는 것이다. 결국 포맷 스트링과 버퍼 오버플로우는 함수 실행시 ret 값을 변조하는 방법만 다를 뿐 기본 개념은 같다고 볼 수 있다. 포맷 스트링 공격은 데이터 형태나 길이가 명확하게 정의되어있지 않아서 생기는 문제점이다. 예를 들어 char *buffer = "wishfree\n%x\n"; print(buffer) 라고 한다면 wishfree가 저장된 이후 메모리에 존재하는 값까지 나타내어지게 된다. 즉, esp가 위치한 메모리 값을 읽어드린다. 이러한 포맷..
Return-To-Libc (RTL) 공격
Return-To-Libc (RTL) 공격
시스템해킹
2023.11.26 14:45
버퍼오버플로우 공격을 막기위해 스택에서 쉘코드가 실행되는 것을 방지하는 Non-Executable Stack 기법이 있다. RTL은 이것을 무력화 시키는 공격 방법으로 스택에 있는 ret 주소를 실행 가능한 임의의 주소(libc 영역의 주소)로 돌려 원하는 함수를 실행하게 만드는 기법이다. 메모리에 적재된 공유 라이브러리는 스택에 존재하는 것이 아니므로 Non-Executable Stack 을 우회하는 것이 가능하다. libc 영역에서 셸을 실행할 수 있는 함수인 system, execve, execl 등을 이용할 수 있다. RTL 공격을 사용해 root권한을 탈취해보자. bugfile.c int main(int argc, char *argv[]) { char buffer[10]; strcpy(buffe..
Heap BufferOverFlow 공격
Heap BufferOverFlow 공격
시스템해킹
2023.11.26 14:43
heap영역은 동적할당되는 메모리 공간들을 제어하는 곳이다. BSS(Block Started by Symbol)이라고 불리며 스택과 정반대로 메모리의 하위 주소에서부터 상위 주소로 증가하는 형태다. 이를 활용해 root 권한을 탈취한다. heap-bugfile.c #include #include #include #include #include #define ERROR -1 int fucntion(const char *str){ printf("function 포인터에 호출되는 정상적인 함수\n", str); return 0; } int main(int argc, char **argv){ static char buf[16]; static int(*funcptr)(const char *str); if(argc..
Stack BufferOverFlow 공격
Stack BufferOverFlow 공격
시스템해킹
2023.11.26 14:41
스택 영역의 버퍼 사이즈를 초과시키는 데이터를 삽입해 다른 영역을 오염시키는 BoF(BufferOverFlow)취약점을 이용한다. bugfile로 RET 영역까지 데이터를 덮어씌우고 eggshell 코드가 실행시키도록 하여 root 권한을 탈취하자. 환경 : redhat6.2 eggshell.c EGG, RET을 환경변수로 설정하여 bash 새로 실행시키는 코드이다. 이 코드의 목적은 /bin/sh 을 root권한으로 열어주는 Shellcode를 주입시키는 것인데, 이 코드를 EGG라는 환경 변수에 저장하고, RET에는 스택 주소를 넣어 root권한을 탈취하게 된다. #include #include #include #define DEFAULT_OFFSET 0 #define DEFAULT_ADDR_SIZE..
KISA 해킹 훈련 고급 과정 정리
KISA 해킹 훈련 고급 과정 정리
시스템해킹
2023.11.26 14:34
침투 시나리오 정리스피어피싱 침투 - 거점 PC 관리자 권한 탈취 - AD 서버 장악 - SSH 터널링 - VPN 통로 PC 확인 - 사설망 침투  MITRE ATT&CK Matrix attacker ippublic mail server ipAD server iphealth checkingmail server 접속metasploit를 활용해 악성 pdf파일 생성ㅎ배괴.STEP2. 다음 메타스플로잇 스크립트를 제작해 주세요.--- /tools/gen_PDF.rc -------------------------------------use exploit/windows/fileformat/adobe_pdf_embedded_exeset payload windows/meterpreter/reverse_tcpset L..
네트워크,클라우드
VRF의 이해와 PBR, VS와의 차이점
VRF의 이해와 PBR, VS와의 차이점
네트워크,클라우드
2025.05.25 16:16
VRF란?VRF(Virtual Routing and Forwarding)는 네트워크 장비에서 논리적으로 라우팅 테이블을 분리하여, 동일한 네트워크 장비 안에서도 서로 다른 고객 또는 서비스 간의 트래픽을 격리할 수 있도록 해주는 기술이다.방화벽에 VRF를 적용할 경우, 한 대의 방화벽 안에서 서로 독립적인 보안 정책과 라우팅을 제공할 수 있어, 복잡한 네트워크 환경에서도 유연한 설계와 보안 분리가 가능해진다.🔍 VRF란?1. 기본 개념Virtual Routing and Forwarding의 약자.하나의 네트워크 장비(라우터, 방화벽 등) 안에서 여러 개의 라우팅 테이블을 동시에 운영할 수 있게 해줌.물리적으로 하나의 장비이지만, 마치 여러 대의 독립된 라우터처럼 동작하게 한다.비유: 한 건물 안에 여러..
BGP 쉽게 이해하기
BGP 쉽게 이해하기
네트워크,클라우드
2025.05.22 13:44
1. BGP란?**BGP(Border Gateway Protocol)**는인터넷 상의 자율 시스템(AS) 간에 경로 정보를 교환하기 위한 라우팅 프로토콜이다.📌 인터넷을 가능하게 만든 라우팅 프로토콜, 즉 "인터넷의 우체부"라고 이해하면 된다.2. 기본 개념 정리용어 설명AS (Autonomous System)독립적인 네트워크 그룹, 하나의 ISP나 대기업 네트워크처럼 특정한 관리 주체가 있는 네트워크 단위. 고유한 AS 번호를 가짐.EGP (Exterior Gateway Protocol)AS 간 경로를 교환하는 프로토콜. BGP는 유일하게 실무에서 사용하는 EGP임.IGP (Interior Gateway Protocol)OSPF, RIP, EIGRP 등 AS 내부에서 사용하는 라우팅 프로토콜.3. B..
ECMP와 LACP 차이점
ECMP와 LACP 차이점
네트워크,클라우드
2025.05.21 09:49
LACP와 ECMP: 같은 로드밸런싱? 전혀 다르다데이터센터나 엔터프라이즈 네트워크 설계에서 “로드밸런싱”이란 단어는 자주 등장하지만, 사용하는 기술에 따라 의미는 전혀 달라진다. 대표적인 예로 LACP와 ECMP는 모두 트래픽 분산에 사용되지만, 동작 계층과 목적, 설계 방식이 본질적으로 다르다.1. LACP란 무엇인가?LACP(Link Aggregation Control Protocol)는 IEEE 802.3ad 표준에 기반한 기술로, 다수의 물리 링크를 하나의 논리적 링크로 묶어 동작하게 만든다. 흔히 말하는 LAG(Link Aggregation Group) 구성이 여기에 해당된다.주요 목적대역폭 증가 (예: 1Gbps × 2 → 2Gbps)링크 리던던시 확보단일 대상에 대한 연결 강화동작 방식스위..
인증서 프로세스 쉽게 이해하기
인증서 프로세스 쉽게 이해하기
네트워크,클라우드
2025.05.12 00:10
🔐 전체적인 인증서 프로세스, 쉽게 말하면...🎁 1. 인증서(Certificate)는 디지털 신분증이다.우리가 현실에서 주민등록증이나 운전면허증으로 신분을 증명하듯,인터넷에서도 컴퓨터나 웹사이트의 신원을 증명하기 위한 "디지털 신분증"이 필요하다.이를 디지털 인증서라고 한다. (예: https 웹사이트의 보안 인증서)🏛️ 2. CA (Certificate Authority, 인증기관)CA는 '공식 발급처', 즉 주민센터와 같은 곳이다.신분증을 아무나 발급해주면 안 되므로, 신뢰할 수 있는 기관만 이를 발급할 수 있다.예시: Let's Encrypt, DigiCert, Comodo 등✉️ 3. CSR (Certificate Signing Request, 인증서 서명 요청)"나 인증서 받고 싶다" 하..
SDN과 SD-WAN 차이점?
SDN과 SD-WAN 차이점?
네트워크,클라우드
2025.05.11 02:31
✅ SDN이란?네트워크를 소프트웨어처럼 유연하게 제어할 수 있게 만든 기술이다.기존에는 네트워크 장비 하나하나에 들어가서 직접 설정해야 했으나,SDN은 중앙에서 전체 네트워크를 소프트웨어처럼 통제할 수 있다.🧠 핵심 개념: "제어부"와 "전달부"의 분리기존 네트워크 방식기존의 라우터 구조는 Control Plane과 Data Plane을 함께 가지고 있다.Control Plane (제어부) : 패킷 경로 설정, 관리 및 제어 (Routing 기능)Data Plane (전송부) : 패킷 송수신 (Forwarding 기능)스위치/라우터 자체가 아래의 역할을 모두 함데이터를 어떻게 보낼지 판단(제어)실제로 데이터를 보냄(전달)👉 모든 것을 혼자 다 하였다. 이처럼 하나의 라우터 안에서 패킷 처리와 오버헤드..
개발
Spring Bean이란?
Spring Bean이란?
개발
2025.03.22 16:58
Spring Bean이란?1. Spring Bean의 개념Spring Bean은 Spring 프레임워크의 IoC(Inversion of Control, 제어의 역전) 컨테이너에 의해 생성, 관리되는 객체입니다. 일반적인 Java 객체(POJO, Plain Old Java Object)와 달리, Spring Bean은 Spring 컨테이너에 의해 생명주기가 관리되며, 의존성 주입(Dependency Injection)을 통해 다른 Bean과 연결됩니다.Spring Bean의 특징IoC 컨테이너에 의해 관리: 개발자가 직접 객체를 생성하고 관리하는 것이 아니라, Spring 컨테이너가 대신 수행합니다.의존성 주입(DI): 객체 간의 의존 관계를 외부에서 설정해줍니다.생명주기 관리: Bean의 생성, 초기화,..
Kafka와 RabbitMQ 비교 분석
Kafka와 RabbitMQ 비교 분석
개발
2025.03.21 16:56
Kafka와 RabbitMQ 비교 분석1. 개요메시지 브로커(Message Broker)는 분산 시스템에서 서비스 간 비동기 통신을 가능하게 하는 중요한 컴포넌트입니다. 이 문서에서는 가장 널리 사용되는 두 메시지 브로커인 Kafka와 RabbitMQ의 아키텍처, 특징, 사용 사례를 비교 분석합니다.2. 아키텍처 비교2.1. Kafka 아키텍처Kafka의 아키텍처는 다음과 같은 구성 요소로 이루어져 있습니다:브로커 클러스터: 여러 브로커가 클러스터를 형성하여 토픽과 파티션을 관리합니다.ZooKeeper 앙상블: 브로커 클러스터의 메타데이터를 관리하고 클러스터 조정을 담당합니다.프로듀서 API: 메시지를 생성하여 토픽에 발행합니다.컨슈머 API: 토픽으로부터 메시지를 구독하여 처리합니다.스트림 API: 스..
테스트 코드의 중요성? (SpringBoot 기반 Mocking 학습)
테스트 코드의 중요성? (SpringBoot 기반 Mocking 학습)
개발
2025.03.21 16:51
Mocking이란?1. Mocking의 개념Mocking은 테스트를 진행할 때 실제 객체 대신 가짜 객체(Mock 객체)를 생성하여 사용하는 기법입니다. 이 가짜 객체는 실제 객체의 행동을 흉내내어, 테스트 대상 코드가 의존하는 다른 컴포넌트와의 상호작용을 시뮬레이션합니다.왜 Mocking이 필요한가요?단위 테스트의 독립성 보장: 테스트 대상 코드만 격리하여 테스트할 수 있습니다.외부 의존성 제거: 데이터베이스, 외부 API 등 외부 시스템에 의존하지 않고 테스트할 수 있습니다.테스트 속도 향상: 실제 객체보다 가벼운 Mock 객체를 사용하여 테스트 속도를 높일 수 있습니다.특정 시나리오 테스트: 실제 환경에서 재현하기 어려운 상황(예: 네트워크 오류)을 시뮬레이션할 수 있습니다.2. 단위 테스트와 통합..
Kafka+Docker 기반 SpringBoot 프로젝트 구축 방법
Kafka+Docker 기반 SpringBoot 프로젝트 구축 방법
개발
2025.03.20 15:45
Kafka 상세 가이드1. Kafka란 무엇인가?Kafka는 LinkedIn에서 개발하고 현재는 Apache 재단에서 관리하는 분산 스트리밍 플랫폼입니다. 대용량의 실시간 데이터 스트림을 안정적으로 처리할 수 있도록 설계되었으며, 다음과 같은 특징을 가지고 있습니다:고성능: 초당 수백만 개의 메시지를 처리할 수 있는 높은 처리량확장성: 클러스터 구성을 통해 수평적 확장 가능내구성: 데이터를 디스크에 저장하여 데이터 손실 방지분산 처리: 여러 서버에 데이터를 분산하여 저장 및 처리2. Kafka의 주요 개념2.1. 메시지(Message)Kafka에서 데이터의 기본 단위입니다. 키(Key)와 값(Value)으로 구성되며, 타임스탬프와 메타데이터도 포함할 수 있습니다.2.2. 토픽(Topic)메시지가 저장되는..
Spring Boot - Builder 패턴
Spring Boot - Builder 패턴
개발
2025.03.12 17:47
.Builder의 의미.builder()는 주로 빌더 패턴을 사용하는 클래스에서 객체를 생성하는 메서드다. 이 메서드는 빌더 객체를 사용하여 설정된 필드 값을 기반으로 최종 객체를 생성하고 반환한다.빌더 패턴빌더 패턴은 복잡한 객체를 생성할 때 유용한 디자인 패턴으로, 객체의 생성 과정을 단계적으로 구성할 수 있게 해준다. 이 패턴은 다음과 같은 장점을 제공한다가독성 향상: 객체의 필드를 명시적으로 설정할 수 있어, 어떤 값이 어떤 필드에 할당되는지 쉽게 이해할 수 있다.2. 유연한 객체 생성: 필요한 필드만 설정할 수 있어, 선택적 필드를 쉽게 처리할 수 있다.불변 객체 생성: 필드를 final 선언하고, 생성자에서만 값을 설정하여 객체의 상태를 변경할 수 없도록 할 수 있다.예시@Getter@Sett..
침해사고분석
Volatility를 활용한 Windows 프로세스 이상징후 분석
Volatility를 활용한 Windows 프로세스 이상징후 분석
침해사고분석
2024.10.19 17:02
의심스러운 프로세스의 이상징후 분석 방법1. 경로 및 이름 분석일반적이지 않은 경로와 이름을 사용하여 실행되는 프로세스가 존재하는가?2. 리니지 분석 (=프로세스 혈통 분석)프로세스 부모자식 관계가 일반적이지 않은가?3. 프로세스의 명령라인 파라미터 분석파라미터가 지정되어 있어야 하는데 없는 경우?파라미터의 길이가 비정상적으로 긴 경우?4. 프로세스 이미지의 버전정보 분석리소스 섹션의 "version info" 리소스 정보가 존재하는지? (오리지널 이름, 벤더, 버전, 프로덕트 이름 등의 정보가 존재) 프로세스의 이상징후 분석을 위한 정보 추출1) 메모리 덤프 프로필 정보 확인2) 프로세스 목록 추출3) 프로세스 트리 정보 추출4) 로드된 DLL 몰골 및 경로 정보 추출5) 프로세스 이미지 덤프 및 버전..
악성 프로세스 행위 분석
악성 프로세스 행위 분석
침해사고분석
2023.11.26 14:17
파일 행위 분석 인터넷에서는 총 세개를 다운받음. ) 총 세개 파일을 인터넷에서 받았다. 두 악성파일은 같은 해시값을 가진다. TIMESTAMP EVENT 아티팩트 DESCRIPTION --------------------------------------------------------------------------------------------- 2015-06-22 11:27:58 다운로드 MFT C:\Users\admin\Downloads\Party_Photo.zip 2015-06-22 11:28:09 압축해제 MFT C:\Users\admin\Downloads\Party_Photo\ 2015-06-22 11:28:09 파일생성 MFT C:\Users\admin\Downloads\Party_Pho..
MFT 파일시스템 분석
MFT 파일시스템 분석
침해사고분석
2023.11.26 14:05
시나리오 #1 mft 분석 이전 시나리오 #1에서 svcnet의 악성 실행파일이 있었다. 이 시나리오에서 수집한 mft파일을 csv로 추출하기 위해 다음과같은 명령어를 사용한다. File Name정보를 생성날짜를 기준으로 오름차순하여 정렬한다. svcnet이 다운받아졌던 시간과 경로이다. svcnet이 다운받아졌던 시간보다 더 이전에 보면 zone.Identiier가 있다. 이것은 이후 여러가지 이미지가 생성됐다. 그런데 jpg인줄알았던게 알고보니 마지막에 exe로 수상한 실행파일이 다운받아졌다. 그래서 이걸 실행시켰더니 svcnet.exe가 나타났겠구나 유추 할 수 있다. pf확장자는 prefetch 파일이다. 어떠한 실행파일을 실행시켰을 때 흔적을 남기는 파일이다. [pf내에 들어가는 내용] 응용프로..
침해사고분석 - 0x4 CTF 예제를 통한 이상징후 분석하기
침해사고분석 - 0x4 CTF 예제를 통한 이상징후 분석하기
침해사고분석
2023.11.24 21:56
시나리오 #1 침해사고가 발생한 시스템에서 확보한 메모리 덤프에서 프로세스 정보 추출하기 (시나리오1) 메모리 덤프파일에서 프로세스를 뽑아낼거다. volatility (python) -> 포렌식 도구 volatility25.exe -f memory.raw imageinfo -> 이미지 정보 추출 STEP step1. preocess PID, PPID 정보를 가진 목록을 추출. volatility25.exe -f memory.raw --profile=Win7SP1x86 pslist > pslist.txt step2. process의 부모자식관계 가시화한 리니지 분석. volatility25.exe -f memory.raw --profile=Win7SP1x86 pstree > pstree.txt step3...
침해사고분석 - 0x3 피해시스템 분석 최종정리
침해사고분석 - 0x3 피해시스템 분석 최종정리
침해사고분석
2023.11.24 21:42
최종정리□ 피해 시스템 상세 분석 FTP 로그 분석 결과 공격자는 2011년 4월 28일 21:23:09에 FTP 계정(admin)을 사용하여 최초 웹쉘(member....) 업로드 한것으로 확인 ftp 업로드 로그 첨부 공격자가 업로드한 웹쉘 실행화면 및 웹쉘 정보 웹쉘에 접속한 웹로그 분석 결과 공격자는 2011년 4월 28일 21:23:38에 웹쉘에 최초 접속 공격자 IP : 공격자가 웹셀에 접속한 웹로그 첨부 root 권한을 획득하기 위해 업로드한 exploit 업로드 로그 분석 결과 공격자는 2011년 4월 28일 22:11:38에 .exp1 및 동년 동월 동일 22:11:52에 .exp2를 웹쉘을 사용하여 /tmp/.../ 디렉터리에 업로드 exp1, exp2를 업로드하기 위해 웹쉘을 사용한 ..
image