CS/Operating System

    [논문 리뷰] Pspray: Timing Side-Channel based Linux Kernel Heap Exploitation Technique

    [논문 리뷰] Pspray: Timing Side-Channel based Linux Kernel Heap Exploitation Technique

    Authors: Yoochan Lee and Jinhan Kwak, Seoul National University; Junesoo Kang and Yuseok Jeon, UNIST; Byoungyoung Lee, Seoul National University Journal/Conference: USENIX security '23 (open access) Source: https://www.usenix.org/conference/usenixsecurity23/presentation/lee Abstract The stealthiness of an attack is the most vital consideration for an attacker to reach their goals without being d..

    [논문 리뷰] Privbox: Faster System Calls Through Sandboxed Privileged Execution

    [논문 리뷰] Privbox: Faster System Calls Through Sandboxed Privileged Execution

    Authors: Dmitry Kuznetsov and Adam Morrison, Tel Aviv University Journal/Conference: USENIX ATC 22' Source: https://www.usenix.org/conference/atc22/presentation/kuznetsov Presentation material: Abstract System calls are the main method for applications to request services from the operating system, but their invocation incurs considerable overhead, which has been aggravated by mitigation mechani..

    [논문 리뷰] IPLFS: Log-Structured File System without Garbage Collection

    [논문 리뷰] IPLFS: Log-Structured File System without Garbage Collection

    Authors: Juwon Kim, Minsu Jang, Muhammad Danish Tehseen, Joontaek Oh, and YouJip Won, KAIST Journal/Conference: USENIX ATC '22 Source: https://www.usenix.org/conference/atc22/presentation/kim-juwon Abstract In this work, we develop the log-structured filesystem that is free from garbage collection. There are two key technical ingredients: \emph{IPLFS}, a log-structured filesystem for infinite pa..

    [논문 리뷰] SoftTRR: Protect Page Tables against Rowhammer Attacks using Software-only Target Row Refresh

    [논문 리뷰] SoftTRR: Protect Page Tables against Rowhammer Attacks using Software-only Target Row Refresh

    Authors: Zhi Zhang, CSIRO’s Data61, Australia; Yueqiang Cheng, NIO Security Research; Minghua Wang, Baidu Security; Wei He and Wenhao Wang, State Key Laboratory of Information Security, Institute of Information Engineering, CAS and University of Chinese Academy of Sciences; Surya Nepal, CSIRO’s Data61, Australia; Yansong Gao, Nanjing University of Science and Technology, China; Kang Li, Baidu Se..

    [논문 리뷰] Drammer: Deterministic Rowhammer Attacks on Mobile Platforms

    [논문 리뷰] Drammer: Deterministic Rowhammer Attacks on Mobile Platforms

    Authors: Victor van der Veen (Vrije Universiteit Amsterdam), Yanick Fratantonio, Martina Lindorfer (UC Santa Barbara), Daniel Gruss, Clementine Maurice (TU Graz), Giovanni Vigna (UC Santa Barbara), Herbert Bos, Kaveh Razavi and Cristiano Giuffrida (Vrije Universiteit Amsterdam) Journal/Conference: In Proceeding of the 23rd ACM Conference on Computer and Communications Security Source: https://dl..

    [전공생이 설명하는 OS] 메모리 관리 - (2) Virtual Memory

    [전공생이 설명하는 OS] 메모리 관리 - (2) Virtual Memory

    1. 가상메모리란? 각 프로세스에게 큰 전용 메모리를 제공하는 기술. 2. 부분적재 에러코드, 자주 접근되지 않는 코드들까지 한번에 적재할 필요가 있나? Locality, Knuth's estimation : 10%의 코드가 90% 실행시간을 갖는다. 가상메모리도 일종의 캐시. 디스크와 메모리 사이의 캐시 (fetch policy) 그러면 필요한 부분을 언제 올릴건데? (resident set policy) 메모리에 올라와 있는 각 프로세스의 조각들을 어떻게 효율적으로 관리할 것인가? (replacement policy) 메모리가 부족해서 다른 조각들을 쫓아내야할때 어떤 조각들을 쫓아낼것인가? 매핑테이블을 어떻게 관리할 것인가? 보통 paging 과 segmentation 기법을 사용 - 프로세스를 조각..

    [전공생이 설명하는 OS] 메모리 관리 - (1) Partition/Page/Segment

    [전공생이 설명하는 OS] 메모리 관리 - (1) Partition/Page/Segment

    1. Memory Management 란? 메모리는 (1) OS(resident monitor, kernel) (2) user 두 부분으로 나뉜다. Uni-programming 환경에서는 user part 에 1개의 프로그램만 적재되고, multi-programming 환경에서는 다수의 프로그램이 적재될 수 있다. Memory management 라는 말은 OS 가 user 가 사용하는 메모리를, 프로세스의 요청에 맞게 분할 및 분배하는 것을 포함한다. 메모리를 할당하는 방식은 프로세스 실행 시점에 따라 크게 두 가지로 분류할 수 있다. static allocation : 프로그램 실행 이전에 미리 메모리를 할당하는 방식 (예, global 변수나 상수 등) dynamic allocation : runt..

    [전공생이 설명하는 OS] 동기화 - (6) 식사하는 철학자 문제 (코드 포함)

    [전공생이 설명하는 OS] 동기화 - (6) 식사하는 철학자 문제 (코드 포함)

    Dining Philosopher Problem 식사하는 철학자 문제는 다익스트라 선생님께서 논문을 통해 제시하신 대표적인 데드락 상황이다. 위와 같이 원형의 탁자에 5개의 포크가 놓여있다. 스파게티를 먹기 위해서는 2개의 포크를 사용해야한다는 규칙이 있다. 이 상황에서 5명의 철학자가 포크를 한 개씩 잡고 데드락에 빠지면 모두가 굶어 죽는 starvation 이 발생한다..! 철학자가 다 굶어죽는 c++ 코드는 다음과 같다. 더보기 #include #include #include #include #define NUM 5 sem_t forks[NUM]; // forks void *philosopher(void*); int main(){ pthread_t threads[NUM]; for(int i=0; i