본문 바로가기

분류 전체보기

(62)
[논문] TadGAN: Time Series Anomaly Detection Using Generative Adversarial Networks TadGAN은 2020년 MIT에서 발표한 시계열 이상 감지 모델이다.TadGAN은 GANs(Genertive Adversarial Networks) 와 LSTM 순환 신경망을 활용한 비지도학습(unsupervised learning) 방법으로, 복잡한 시간 상관 관계를 포착하고 효과적인 데이터 재구성을 통해 false positives을 최소화한다.오픈 소스로 공개 -> https://github.com/sintel-dev/Orion GitHub - sintel-dev/Orion: A machine learning library for detecting anomalies in signals.A machine learning library for detecting anomalies in signals. ..
[운영체제] Virtual Memory (1) 가상 메모리는 공간 사용의 효율성을 높이기 위해 등장Background이론적으로는 모든 프로세스의 주소 공간이 메모리에 올라와있어야 하지만(폰 노이만 머신의 기본 원칙), 실질적으로는 그럴 필요가 없음현재 접근하는 부분만 메모리에 있으면 프로그램 실행에는 문제 없음실제로 CPU가 접근하는 부분만 메모리에 올려 보자 -> 메모리 절약, 동시에 실행되는 프로세스의 개수 증가(프로세스의 일부만 메모리에 올라오니까)그러면 원칙이 깨져버림 -> 원칙은 지키자CPU한테는 프로세스의 주소 공간이 전부 올라 와있다고 사기 치고, 혹시나 안 올라와있는 부분에 CPU가 접근하면 OS가 재빨리 올려줘(페이지 교체)logical memory와 physical memory의 완벽한 분리Virtual Memoryphysical ..
딥러닝, 머신러닝 머신러닝이 진화한 게 딥러닝이라고 함딥러닝은 이름부터 deep 임 머신 러닝: 데이터를 분석하고, 데이터로부터 학습한 다음, 학습한 것을 적용해 정보에 입각한 결정을 내리는 알고리즘을 포함하는 인공지능의 애플리케이션새로운 데이터가 유입됨에 따라 특정 기능을 수행하는 데 점점 더 능숙해지지만, 여전히 인간의 개입 필요AI 알고리즘이 부정확한 예측을 반환하면 엔지니어가 개입하여 조정해야 함딥러닝: 알고리즘을 계층으로 구성하여 자체적으로 배우고 똑똑한 결정을 내릴 수 있는 '인공 신경망'을 만드는 머신러닝의 하위 분야알고리즘이 자체 신경망을 통해 예측의 정확성 여부를 스스로 판단할 수 있어 인간의 도움이 필요하지 않음머신 러닝의 주요 유형지도 학습: 훈련 데이터와 데이터에 대응하는 모델 제공정답이 ..
[NLP] 자연어 처리란 자연어(natural language): 사람들이 일상적으로 쓰는 언어, 인공적으로 만들어진 인공어와 구분하여 부르는 개념 자연어 처리(NLP, Natural Language Processing): 인공적이지 않은, 즉 자연스럽게 발생한 모든 언어(한국어, 영어, 일본어 등)를 컴퓨터가 처리하고 응용하게끔 해주는 모든 기법을 다루는 인공지능의 한 분야- 인간 언어를 규칙 기반으로 모델링하는 전산언어학과 통계적 머신러닝 및 딥러닝 모델을 결합- 컴퓨터가 텍스트 또는 음성 데이터의 형태로 인간의 언어를 처리하고, 발화자 또는 작성자의 의도와 감정을 포함한 완전한 의미를 이해할 수 있도록 함- 인풋을 다루는 NLU(Natural Language Understanding): 각 언어 텍스트의 문법과 문맥 등을 ..
[배포] React, Django 배포 - 프레임워크, 동작 과정 정리 프론트엔드 react, 백엔드 django 로 개발한 웹사이트를 배포하려고 함Reactnpm run build 하면 디렉토리 내 build 폴더가 생성되고, 배포 버전 파일들이 만들어짐 Nginx:HTTP 및 리버스 프록시 서버, 메일 프록시 서버 및 일반 TCP/UDP 프록시 서버- 웹 서버(web server)는 HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램- 주된 기능은 웹 페이지를 클라이언트에게 전달하는 것WSGI(Web Server Gateway Interface): 웹 서버와 웹 애플리케이션의 인터페이스를 위한 파이썬 프레임워크- WSGI 요청을 처리하려면 서버단에서 환경정보와 콜백함수를 애플리케이션단에 제공해야..
[시스템해킹] PIE ASLR이 적용되면서 바이너리 실행 시마다 스택, 힙, 공유 라이브러리 등이 무작위 주소에 매핑되었지만 main의 주소는 항상 동일했음-> 고정된 주소의 코드 가젯을 활용한 ROP 공격이 가능했음 PIE(Position-Independent Executable): ASLR이 코드 영역에도 적용되게 해주는 기술PIC(Position-Independent Code)- 리눅스에서 ELF는 실행 파일(executable)과 공유 오브젝트(shared object, SO)로 두 가지 존재- 공유 오브젝트는 기본적으로 재배치가 가능하도록 설계 -> 메모리의 어느 주소에 적재되어도 코드의 의미가 훼손되지 않음  => 이런 성질의 코드를 PIC라 함 PIE(Position-Independent Executable)- ..
[시스템해킹] Return Oriented Programming(ROP); ret2main 함수 실행 후 main으로 다시 돌아가게 가젯 구성; GOT overwrite 안해도 쉘 획득 가능임  basic_rop_x86-> 이번엔 32비트임, canary X 32비트 함수 호출 규약- rdi, rsi 등 레지스터로 인자를 전달해주던 64비트와 달리 32비트는 스택으로 전달해줌- x86 바이너리에서 pop 명령어의 피연산자는 중요하지 않다고.. - 인자 2개 필요하면 pop; pop; ret 이런 가젯을 찾아야 한다고.. 익스플로잇       - puts_plt 구해서 read 함수 실제 주소 구하고 main으로 return- x86 함수 호출 규약 알아야 함- 함수 인자 개수만큼 pop 필요- 지금 보니까 ret 가젯은 필요 없고- 첫번째 payload로 구한 read 주소를 이용해 libc ..
[시스템해킹] Return Oriented Programming(ROP); GOT Overwrite - ASLR이 걸린 환경에서 system 함수를 사용하려면 프로세스에서 libc가 매핑된 주소를 찾고, 그 주소로부터 system 함수의 오프셋을 이용하여 함수의 주소를 계산해야 함 ROP: 리턴 가젯을 사용하여 복잡한 실행 흐름을 구현하는 기법 코드// Name: rop.c// Compile: gcc -o rop rop.c -fno-PIE -no-pie#include #include int main() { char buf[0x30]; setvbuf(stdin, 0, _IONBF, 0); setvbuf(stdout, 0, _IONBF, 0); // Leak canary puts("[1] Leak Canary"); write(1, "Buf: ", 5); //..