Protocol Buffers: 개념과 사용법, 데이터 직렬화와 역직렬화 방법

Protocol Buffers: 개념과 사용법, 데이터 직렬화와 역직렬화 방법 소개 데이터 직렬화는 분산 시스템, 클라우드 서비스, 모바일 애플리케이션 개발에서 중요한 과정입니다. 이러한 환경에서 데이터는 다양한 언어와 플랫폼 간에 효율적으로 전송되고 저장되어야 합니다. Protocol Buffers (protobuf)는 구글이 개발한 강력한 데이터 직렬화 도구로, XML이나 JSON 방식에 비해 더 작은 크기, 빠른 속도, 그리고 간단한 구현을 제공합니다. 이 글에서는
Read More »

LLVM 개념과 구성요소 및 사용사례

LLVM이란? LLVM은 “Low Level Virtual Machine”의 약자로, 컴파일러와 툴체인 기술의 집합체입니다. 원래 LLVM은 컴파일러와 관련된 인프라스트럭처를 지칭하는 용어였지만, 현재는 광범위한 컴파일러 기술과 도구들을 아우르는 프로젝트 전체를 가리킵니다. “Virtual Machine”이라는 단어가 들어가지만, 기존 가상 머신 시스템과는 연관이 없다는 것이 LLVM 공식 홈페이지의 설명입니다. LLVM의 주요 구성 요소와 사용 사례를 살펴보겠습니다. LLVM의 주요 구성 요소 LLVM의 사용
Read More »

PandoraFMS Enterprise 루트 권한으로 임의의 파일 읽기 취약점

💡 CVE-2023-41808 취약점을 분석하던 중, 재미있는 부분이 있어 공유합니다. CVE-2023-41808 본 취약점은 PandoraFMS Enterprise의 GoTTY Page에서 발견된 취약점입니다. 해당 취약점을 통해 root권한으로 시스템 내 임의의 파일을 읽을 수 있습니다. 흥미로운 점? GoTTY Page는 SSH 클라이언트의 옵션 값을 파라미터 값으로 받아서 SSH 호스트에 접속하는 기능을 가지고 있다고 하는데요. 재미있는 것은 SSH의 “-F”을 이용하여 임의의 파일을 읽는다는
Read More »

파이썬 직렬화와 역직렬화 안전하게 사용하기

파이썬에서의 직렬화와 역직렬화 파이썬 객체를 일련의 바이트들로 변환하는 것을 직렬화(Serialization)라 하고, 다시 바이트들을 파이썬 객체로 메모리 상에 복원하는 것을 역직렬화(Deserialization)라고 합니다. 파이썬에서 직렬화(Serialization)와 역직렬화(Deserialization)를 사용하기 위해서는 pickle 모듈을 주로 사용합니다. 어떤 위험이 있을까요? pickle 모듈을 사용해서 역직렬화 할 때는 주의해야 할 점이 있습니다. 바로 pickle 모듈 문서에 다음과 같이 나와 있는데요. pickle 모듈은 안전하지 않습니다.
Read More »