C언어 - 문자열 배열과 포인터 그리고 안전한 복사

1. C 언어 문자열 C 언어에서 문자열은 Null 문자 ('\0') 로 종료 되는 문자 (char) 의 연속된 메모리 영역 으로 정의할 수 있다 . Null  문자는 '\0' 또는 0x00 으로 표현된다 . 문자열을 표현하기 위한 전용 자료형은 없으며 , 문자열 처리는 포인터와 배열을 통해 수행된다 . #include  <stdio.h> #include  <string.h>      int   main () {      char  str[ 16 ];           strcpy (str,  "012345678901234" );      printf ( "%s,len=%zu,size=%zu\n" , str,  strlen (str),  sizeof (str));           return   0 ; } ※ 초기화 없이 선언된 로컬 변수  char str[32 ]  메모리 공간에는  미정의 값 (garbage value) 이 채워진다 . ※ %zu 는 sizeof() 와 strlen() 이 반환하는 size_t 타입 값을 정확하게 출력하기 위한 형식 지정자로 , 플랫폼 간 이식성을 높이기 위해 %ld 대신 사용한다 . output 012345678901234,len=15,size=16...

원격 브라우저 격리 (RBI, Remote Browser Isolation) - 서버 구현 기술

이미지
1. RBI 서버 구현 기술 RBI (Remote Browser Isolation)는 단순히 “브라우저를 원격에서 실행한다” 수준을 넘어서,  서버 인프라, 네트워크, 스트리밍, 보안 기술이 복합적으로 결합 된 구조이다. 대규모 확장성을 고려한 시스템 구조 설계와 클라우드 인프라와의 연계 기술이 필요하며, 여러 접속 지점에서도 안정적인 서비스를 제공할 수 있어야 한다 1.1. 서버 기술 1.1.1. Edge Computing  RBI는 사용자와 지리적으로 인접한 Edge 노드에서 브라우저를 실행함으로써 네트워크 지연을 최소화한다. 이때 Edge 서버는 단순 콘텐츠 캐시가 아닌 브라우저 인스턴스의 실제 실행 위치로 기능한다. 기술 요소 멀티 리전 Edge 노드 배치 및 지역별 트래픽 라우팅 Geo DNS 또는 Anycast 기반 글로벌 로드 밸런싱 PoP (Point of Presence) 구성을 통한 서비스 접점 분산 1.1.2. 화면 스트리밍 서버에서 실행된 브라우저 화면은 이미지 또는 영상으로 인코딩되어 실시간으로 사용자에게 전송된다. 전체 화면을 매 프레임 전송하는 방식은 대역폭 낭비를 유발하므로, 변경된 영역만 추출하여 전송 하는 Delta Encoding (Dirty Rectangle) 방식이 적용된다. 또한 적응형 비트레이트(ABR, Adaptive Bitrate) 기술을 통해 네트워크 상태에 따라 화질과 전송량을 동적으로 조정한다. 기술 요소 Delta Encoding / Dirty Rectangle 기반 변경 영역 전송 H.264, VP9 등 영상 압축 코덱 및 GPU 가속 인코딩 네트워크 상태에 맞춰 화질을 자동 조정 (ABR) WebRTC 기반 저지연 실시간 스트리밍 1.2. WebRTC 연결 기술 WebRTC 기반 스트리밍 환경에서는 클라이언트와 서버 간 실시간 연결을 수립하기 위해 세 가지 핵심 메커니즘이 함께 작동한다. 1.2.1. Signalin...

원격 브라우저 격리 (RBI, Remote Browser Isolation)란 무엇인가 - 개요와 구현 기술 정리

이미지
1. RBI 개요 RBI (Remote Browser Isolation)는 사용자의 로컬 환경에서 브라우저를 실행하지 않고, 서버 또는 격리된 원격 환경에서 브라우저를 실행한 뒤 화면만 전달하는 보안 기술이다. 브라우저는 서버 측 격리 환경에서 실행되며, 사용자는 화면 결과만 수신한다. 사용자 입력 이벤트는 서버로 전달되어 원격 브라우저를 제어한다. 1.1. 웹 보안의 한계 오늘날 대부분의 업무는 웹 브라우저를 중심으로 이루어진다. 웹 브라우저는 가장 많이 사용되는 업무 환경이자, 공격자가 가장 먼저 노리는 주요 침입 지점이 되었다. 기존의 웹 보안 체계는 주로 웹 사이트 차단, URL 분류, 악성 코드 탐지 단계에서의 판별 방식에 의존한다. 알려진 위협에는 유효하지만, 신규 피싱이나 미분류 악성 코드에는 한계가 있다. 또한  모든 웹 접근을 사전에 차단하는 것은 현실적으로 불가능 하다. 이로 인해 기존 웹 보안 방식만으로는 웹 위협을 근본적으로 차단하기 어렵다는 구조적인 한계가 존재한다. 1.2. RBI의 필요성 원격 브라우저 격리(RBI)는 이러한 한계를 고려하여 접근 방식을 전환한 보안 개념이다. 웹 페이지를 사용자 단말이 아닌  격리된 서버 환경에서 실행 하도록 한다. 사용자는 실행 결과만 전달받으며, 웹에 포함된 악성 코드나 취약점 공격은 격리된 환경 내부에서 차단된다. RBI는 차단이 아닌 격리를 통해 웹 접근을 허용하면서도 보안 위험을 최소화한다. 사용자는 기존과 유사한 방식으로 웹을 이용할 수 있으며, 보안은 실행 환경 분리를 통해 구조적으로 강화된다. 이러한 이유로 RBI는 현대 웹 환경에서 보안과 사용성을 동시에 충족하는  현실적인 대안 으로 평가된다. 2. RBI 구현 기술 2.1. Chrome / Chromium ...

Secure Access Service Edge (SASE)란 무엇인가

이미지
1. SASE의 정의 SASE (Secure Access Service Edge)는 가트너( Gartner )가 제시한 서비스 아키텍처 개념이자 마케팅 용어이다. "The Future of Network Security Is in the Cloud" (2020) 보고서에서 공식화           1.1. 출현 배경 기존에는 업무가 본사 데이터 센터 내에서 이루어졌으나, 현재는 사용자(재택근무자)와 업무 데이터(SaaS, 클라우드)가 분산되고 있는 추세이다. 이러한 이유로 서로 호환되지 않는 여러 기술을 다뤄야 하는 상황에 직면하게 되었으며, 복잡성과 비용이 증가하고 있다. 기존 VPN 방식은 트래픽을 본사로 모았다가 다시 보내는 구조라 병목 현상과 높은 지연 시간이 발생하는 문제가 발생하고 있다. 또한, 사용자 수 증가에 따른 확장성 확보에 한계가 있다. 1.2. 제공 방법 네트워크 서비스(SD-WAN)와 보안 서비스(CASB, SWG/FWaaS, ZTNA 등)를 단일 ...

C언어 - 코드 분석 연습 (기본 예제)

1. C언어 코드 분석 연습 언어와 마찬가지로 프로그래밍 코드 역시 작성 능력뿐만 아니라 읽는 능력도 중요하다. 코드를 읽는 능력은 프로그래밍 과정에서 발생하는 버그를 발견하고, 코드의 동작을 미리 예측하는 분석 능력의 기초가 된다. 아래에 제시된 코드를 컴파일하지 않고 직접 분석하여 실행 결과를 예측해 보자. 이를 통해 코드 이해 능력을 기르고, 논리적으로 사고하는 연습을 할 수 있다. 1.1. 초급 난이도 1.1.1. ex01_low_if.c if/else 조건문의 제어 흐름을 이해한다. a + b > c * 3 식에서 연산자 우선순위를 확인한다. const 로 선언된 상수 값이 조건 판단에 어떻게 사용되는지를 추적한다. #include <stdio.h> int main ( void ) { const int a = 3 ; const int b = 5 ; const int c = 2 ; int result = 0 ; if (a + b > c * 3 ) { result = 1 ; } else { result = 2 ; } printf ( "%d\n" , result); return 0 ; } 1.1.2. ex02_low_while_sum.c while 반복문을 이용하여 값을 누적하는 과정을 이해한다. #define MAX_NUM 으로 정의된 반복 종료 조건을 확인한다. 각 반복 회차에서 sum 값이 어떻게 증가하는지를 추적한다. #include <stdio.h> #define MAX_NUM 5 int main ( void ) { int i = 1 ; int sum = 0 ; while (i <= MAX_NUM) { sum ...