Study

방화벽은 설정한 Rule에 따라 진입되는 패킷을 Pass할 것인지, Drop할 것인지 필터링해주는 유해한 트래픽을 차단하기위한 하드웨어 내지 서비스이다. 대부분의 방화벽은 정책 기반으로 트래픽을 필터링한다. 방화벽의 발전 과정이나 구조별 유형 등의 설명거리가 있지만, 여기서는 크게 다루지 않는다. 이번에 정리할 개념은 방화벽에서의 Stateful과 Stateless 유형이다. 이 둘을 각각 예시와 함께 비교하며 알아본다. Stateful / Stateless 외부 네트워크(클라이언트)에서 내부 네트워크(서버)로 접속하는 트래픽을 가정해보자. 클라이언트가 서버로 요청을 날리는 Request와 해당 Request에 대한 클라이언트로 날라가는 Response가 존재할 것이다. 웹 서버로 들어오는 트래픽이 방화..
· Study/Server
관련 이전 글 : SSRF와 Cloud Metadata -1 'Capital One'에서의 SSRF Cloud Metadata leak을 간단하게 설명했었다. 이와 유사한 취약한 환경을 구축하고 탈취 시나리오를 간단하게 살펴보자 취약환경 구축 인스턴스를 생성 후 SSRF에 취약한 Application을 올린 후, S3 bucket에 대해 full_access 권한을 갖는 IAM role을 만들고 이 인스턴스에 연결해준다. 민감정보를 담을 S3 bucket을 생성하고 object를 넣어준다. (해당 bucket은 인터넷 open하지 않음) 정말 간단하게 취약환경을 구성해 보았다. 'Capital One'의 Exploit과 동일하게 SSRF로 Metadata를 탈취해 S3 bucket의 object까지 탈취..
· Study/Server
SSRF Server Side Request Forgery의 약자로, 직역하면 서버측 요청 위조 서버 측에서 위조된 요청을 발생시켜 직접적인 접근이 제한된 내부 서버의 자원 등에 간접적으로 접근해 데이터 유출 및 오동작을 유발하는 공격이다. 외부로 공개된 서버와 내부망에 존재하는 서비스(DB 등)로 이루어진 구조에서 외부서버가 내부서버로 보내는 요청을 외부 사용자가 임의로 변조하는데, 이때 내부서버는 신뢰할 수 있는 위치에서 전달된 Request로 확인하기 때문에 변조된 Request에 대한 응답값을 반환해준다. 주로 내부 서버에 저장된 이미지와 같은 자원에 접근하거나 외부로 Request를 발생시키는 구간에서 자주 발생하고, 사용자가 제공한 데이터(입력값, 쿠키 등등)을 서버 측에서 별다른 검증 로직없..
· Study/CVE
CVE-2021-21311 [adminer Server-Side Request Forgery] 요약 : 로그인 시 에러메시지를 통해 SSRF Exploit 가능 오픈소스 데이터베이스 관리 툴인 Adminer는 단일 PHP페이지로 구성되어있다. 4.7.9 버전부터 패치가 되었음 (patch commit) Adminer는 각 데이터베이스에 로그인할 수 있는 모듈을 각각 별도로 제작함 취약점이 발생되는 구간은 ElasticSearch와 Clickhouse 로그인 모듈로, 로그인 오류 시 나타나는 에러메시지를 통해서 내부 서버의 자원에 접근할 수 있음 취약한 버전 Adminer 4.0.0 ~ 4.7.8 선행조건 없음 분석 1. 취약한 환경 구성 Victim : ubuntu 22.04 / apache 2.4.52..
· Study/Python
이전에 탐지할 객체가 담긴 이미지를 라벨링하고, 학습을 진행했었다. 이제 학습 결과를 바탕으로 모델을 추출하고, 실제 detection까지 진행해보자 모델 추출(Export) 학습을 시작했을때 결과물들이 저장될 경로인 model_dir을 실행인자로 넣어주었다. 학습이 진행됨에 따라 해당 경로에 ckpt라는 파일이 점차 쌓이는데, 이를 체크포인트(checkpoint)라고 한다. 체크포인트는 Tensorflow를 통해 학습된 모델의 구조를 제외한 변수(가중치)만을 담고있는 파일이다. 그렇기 때문에 체크포인트를 바탕으로 재학습이 가능하고, 파일 크기가 크다는 특징이 있다. 이러한 체크포인트는 크기가 커 공유하거나 Tensorflow Serving과 같은 다른 환경으로 배포하기가 힘들다. 즉, 체크포인트를 모델..
· Study/Python
이제 API로 인식시킬 데이터셋을 학습시켜보자 학습까지의 과정 데이터 수집 > 데이터 라벨링 > 단일 csv 파일 생성 > TFRecord 생성 > Label map 생성 > pre-trained model 다운로드 & config 설정 > 이미지 학습 데이터 수집 학습에 사용할 이미지를 수집하는 단계로 적당한 크기의 객체가 들어있는 이미지를 수집한다. 데이터 라벨링 학습에 사용하기 위해 수집한 이미지 데이터를 라벨링하는 작업이 필요하다. LableImg라는 오픈소스 툴을 이용해 작업을 진행한다. # labelImg 설치 pip install labelImg # labelImg 실행 labelImg labelImg 설치 후 실행, 'Open Dir' 로 이미지가 저장된 폴더 선택하면 폴더 내의 모든 이미..
· Study/Python
Tensorflow를 이용해 Object Detection 모델을 학습(train)하고 사용하는 것을 쉽게 도와주는 오픈소스 프레임워크 (이하 TF ObDe API) API 설치 해당 API를 사용하기 위해 Tensorflow를 먼저 설치해줘야 한다. 포스팅에서는 Windows 10에 설치했다. 공식 가이드 : 공식 git, Readthedocs 설치 환경 - Windows 10 Pro - Anaconda 22.9.0(python 3.9) - tensorflow 2.10 - protoc 22.0 - Visual Studio 2022 1. python 가상환경 제작 # 가상환경 생성 conda create -n [가상환경 이름] python==[python 버전] # 가상환경 목록 보기 conda env ..
· Study/Server
가상화 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성하는 기술, 논리적으로 격리된 환경을 생성하는 것이 핵심이다. 하나의 물리 시스템에서 복수의 시스템(서비스)을 구동하는 것, 하드웨어 요소(CPU/메모리/디스크)를 논리적으로 분리하고 각 가상화된 서버별로 분배해 줌으로써 서버를 구동시킨다. 이러한 가상화는 그렇게 최근에 등장한 기술은 아니나, PC의 하드웨어적 스펙이 비약적으로 발전함에 따라 가상화를 안정적으로 활용할 수 있게 되어 근래에 주목받고 있다. 기존에는 하나의 서버에 하나의 OS만 설치해 사용하는 구조를 이용했다고 한다. 그에 따라 각 서비스마다 하나의 물리적 서버가 필요했고, 그에 따라 낭비되는 하드웨어 리소스가 가상화로 하나의 서버에 여러 OS를 설치하게 되어 하드..
Omoknooni
'Study' 카테고리의 글 목록 (6 Page)