전체 글 126

[Heap] chunk의 구조, free list, malloc(), free()

heap은 variable size memory이며,malloc()으로 allocate되고 free()로 deallocate된다. chunk의 구조header + chunk header8byte  chunk chunk는 사용되고 있을 때와 free된 때의 모습이 아래처럼 다르다.   free chunk의 double-linked list free chunk끼리는 double-linked list로 이어져 있다.(그림 상에는 single-linked처럼 그려져있지만 아무튼 실제로는 double-linked이다.)  포인터 관계를 자세히 보면 아래와 같다.  malloc()malloc(100)을 통해 chunk를 생성하면 아래와 같이 되며 108byte가 return된다. ※ 그림 상 위쪽이 lower ad..

[File System] LFS(Log-structured File Systems)

Sequential Write: 모든 update는 disk에 sequential하게 write한다.: data block을 disk에 write할 때, sequential하게 Inode와 Inode map도 disk에 write한다.  다만 Sequential write만으로는 최대로 effective하지는 않아서, write buffering 방식도 활용한다. Write buffering: one large write : disk에 write하기 이전에, LFS는 메모리의 update를 추적하고 있다가,그러한 update가 충분한 개수가 모이면 (이것이 segment이다),이들을 disk에 "한꺼번에" write함으로써, disk의 활용이 좀더 효율적이게 된다. ▶example개별 update는 두번..

[File System] Crash Consistency: FSCK and Journaling

💡write() 이후 과정과 crash workload example사용자가 write()를 호출함으로써 이미 있는 파일에다가 data block 하나를 추가하는 workload에서는Data block 추가, Inode 업데이트, Data bitmap 업데이트가 이뤄져야 한다.이들은 disk로 바로 write되지 않고, 일단 main memory의 page cache나 buffer cache에 있다가, file system이 최종적으로 disk로의 write를 결정하면 그때 disk로 write된다. crash cases그럼 crash 상황이란 즉, 위 3개 중 0개 or 1개 or 2개 성공의 상황일 것이다.이중 애매하게 1개 or 2개만 성공하는 경우 뭔일이 나는지 살펴보자. ▶1개만 성공여기에도 ..

[File System] FFS(Fast File System)

이전 방식 (VSFS)의 문제점VSFS는 disk를 random access memory로서 다뤘기에, 데이터가 여기저기에 퍼져버림. 이 때문에,한 파일의 inode와 data block이 너무 멀리 있어서,파일의 inode를 먼저 읽고 이후에 data block을 읽는 아주 일반적인 동작마저도 상당히 expensive함. 또한, 논리적으로는 연속적인 하나의 파일인데도 물리적으로는 분산돼있을 수 있어서 (아래 그림 참고),sequential read/write가 불가능하고 disk를 앞뒤로 왔다갔다해야 하니, 성능이 매우 떨어짐. 따라서,disk 내의 데이터 구조를 어떻게 organize해야 성능을 높일 수 있을지가 문제였다. FFS의 Cylinder groupFFS는 disk의 물리적 특성을 고려한다...

[Meltdown and Spectre] 엎질러진 물

💡Meltdown: 비순차실행을 이용해, user application 주제에 kernel 데이터를 읽는 공격  발생 원리✅1: user mode application이 커널 영역의 메모리 주소에 접근 시도 예시 1예시 2ptr: kernel 영역의 주소. ✅2: 비순차실행1.에 의해 아래 과정이 일어나야 한다.i) 가상 주소의 Address translation: 가상 주소인 (kernel)을 물리 주소로 변환ii) PTE 로드: 주소 변환을 위한 Page Table 참조iii) permission check: 해당 물리 주소에 접근 권한이 있는지를 PTE의 권한 정보를 바탕으로 체크    -> 권한이 없네! -> page fault exception 그런데 이것은 시간이 한참 걸리므로,비순차실행에 ..

[Malware: Malicious Software] Type, History, Detection, Trend

Malware types Virus: OS 등 host에서 target file (일반적으로 실행파일)을 찾아 자기 자신의 복사본을 삽입하여 전파하는 코드 조각 * virus의 주요 위치: - Boot sector -> 다른 어떤것보다도 먼저 control 능력을 가짐  - Memory resident - Applications, macros, data, etc. - Library routines - Compilers, debuggers, virus checker, etc. * 독립적으로 실행될 순 없고, host 프로그램이 이것을 실행하게 해야 실행됨* target file이 실행되면 virus도 실행되기 시작 * 오염된 file이 machine에서 machine으로 이동할 때에만 퍼짐 Worm: 어떤..

IT/시스템 보안 2024.06.11

[SQL Injection & Blind SQL Injection]

SQL InjectionDBMS의 SQL 쿼리에 임의의 입력값을 넣어 쿼리를 조작하여, 인증을 우회하거나 데이터베이스 정보를 유출하는 공격- SQL을 이해하고 있다면, 모든 RDBMS에 대해 SQL Injection 가능SQLDBMS에 데이터를 질의하는 언어Injection이용자의 악의적인 입력값이 애플리케이션의 처리 과정에서 구조나 문법적인 데이터로 해석되어 발생하는 취약점 예시 상황웹 서비스 내에,로그인을 위해 아이디와 비밀번호를 입력받고, 이를 DBMS에 조회하기 위한 쿼리에 포함하여 쿼리를 실행하는 페이지가 있다 하자.  이때 user_table은 아래와 같다. 정상적인 쿼리아이디와 비밀번호 칸에 정상적으로 각각 dreamhack, password를 입력하면 쿼리는 아래와 같이 생성된다. 쿼리 설..

IT/웹 보안 2024.06.08

[Cross Site Request Forgery (CSRF)]

CSRF는 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 클라이언트 측 취약점이다.  웹 서비스 예시 소스 코드이용자로부터 예금주와 금액을 입력받고 송금을 수행한다. 이때 계좌 비밀번호, OTP 등을 사용하지 않기 때문에,로그인한 이용자는 추가 인증 정보 없이 해당 기능을 이용할 수 있다. 송금 요청이 담긴 request는 아래와 같다.  1.attacker는 페이지에 악성 스크립트를 심고, 여기에 victim(정상 이용자)이 접속하도록 / 값을 입력하도록 유도한다.  eg) 악성 스크립트가 담긴 글을 게시판에 작성 악성 스크립트: HTTP request를 보내는 코드- HTML 또는 Javascript를 통해 작성할 수 있음 HTML을 통한 공격 코드 예시태그를 사용해 HTTP 요청..

IT/웹 보안 2024.06.08

[Heartbleed Attack] TLS Record Protocol, Heartbeat Protocol, Heartbleed Attack

TLS▶TLS layer• Application layer→TLS: unprotected data 전송됨• TLS: handles encryption, decryption, integrity checks 수행• TLS→Transport layer: protected data 전송됨 ▶TLS Record ProtocolTLS handshake가 끝나면 client와 server는 header와 payload로 구성된 record를 이용해 데이터를 교환한다. Record Sending Data Receiving Data ▶Hearbeat protocol in OpenSSLclient와 server가 일정 기간 이상 서로에게 데이터를 보내지 않으면 통신을 막음으로써,TLS의 keep-alive feature을..

IT/시스템 보안 2024.06.07

[Cache Side-channel Attacks] Cache, Flush+Reload, Prime+Probe, Countermeasure

배경지식: Cache Locality: 프로그램이 실행되는 동안 주소 공간의 일부분만을 집중적으로 접근하는 경향▶Temporal locality: 최근에 access된 것은 곧 다시 access될 확률이 높다- 따라서 최근에 접근된 데이터를 프로세서 가까이에 유지하면 성능 향상됨 eg. 반복문 안에서는 동일한 명령어가 반복적으로 실행되기 때문에, 해당 명령어는 다시 접근될 확률이 높다.▶Spatial locality: 최근에 access된 것 가까이에 있는 것은 곧 access될 확률이 높다 메모리의 연속적인 주소 공간이 자주 함께 사용되는 경우가 많기 때문 - 따라서 연속된 데이터 블록을 메모리의 상위 수준으로 옮기면 성능 향상됨eg. 배열은 메모리에 연속적으로 저장되며, 배열의 요소들이 순차적으로 접..

[행정행위의 폐지] 취소, 철회, 실효

취소1. 직권취소: 권한 있는 행정기관이 직권으로 위법 또는 부당한 행정행위의 효력을 소멸시키는 것직권취소의 취소권자⓵ 처분청 처분청의 직권취소에는 법적 근거는 필요 없으나, 이 경우에도 취소의 이익과 신뢰보호 이익과의 비교형량은 필요 ⓶ 감독청일반적으로 감독청이 처분청의 처분을 직접 취소할 수는 없음취소의 사유흠이 중대·명백하지 않은 단순위법의 행정행위, 공익위반·합목적성 결여 등의 부당한 행정행위 취소권의 제한- 과거: 행정행위에 흠이 있으면 처분청은 언제든지 취소할 수 있다- 현재:수익적 행정행위 ㅡ 신뢰보호원칙에 의하여 강력한 제한을 받아, 비교·형량의 결과 관계인의 이익이 더 강하면 행정청의 직권취소권은 제한됨 침익적 행정행위 ㅡ 자유롭게 취소  취소가 제한되지 않는 경우관계자가 부정한 수단으로..

2024.06.07

[행정행위의 성립요건·적법요건·유효요건]

행정행위의 성립요건 ⓵ 행정에 관한 의사결정능력을 가진 행정기관의 행위여야 함⓶ 행정권의 발동으로 볼 수 있는 행위가 있어야 함⓷ 이러한 행정청의 내부적 의사결정은 외부에 표시되어야 함 행정행위의 적법요건 ⓵ 주체에 관한 요건: 법령상 정당한 권한을 가진 행정청이 자신의 권한의 범위 내에서 정상적인 의사에 의하여 발령하여야 한다 ⓶ 내용에 관한 요건: 법치행정의 원리(= 법률우위의 원칙, 법률유보의 원칙)과 행정법의 일반원칙 (비례원칙·평등원칙·신뢰보호원칙 등)을 준수하여야 하고, 그 내용이 명확하고 실현가능하여야 한다 ⓷ 절차에 관한 요건: 행정기본법·행정절차법이나 관련 개별법령이 정하고 있는 절차에 관한 규정을 준수하여야 함. - 행정절차법에 처분의 사전통지, 의견청취 등의 절차를 규정.- 개별법에서..

2024.06.07

[File System] VSFS(very simple file system)

overall organization▶block: 위 사진에서 각각의 작은 네모 하나. 4kB  ▶Data region: user data 저장  ▶Inode: 파일의 주요 metadata 정보 (파일이 나뉘어있는 data block이 어떤건지, 파일 크기, 소유자, 파일에 대한 접근 권한과 접근/수정 시간 등)를 track하기 위해 이들이 저장된 곳- inode number에 의해 위치가 계산되어 refer- 위 사진의 Inode table에서 주황색 네모 하나. 256B- 위 사진 기준으로는 Inode가 총 80개이므로, 가능한 최대 파일 개수도 80개이다. ▶Inodes(Inode table): Inode의 array임 ▶Bitmap: Inode나 Data block의 free(0) / alloca..

[File System] File & Directory, Hard link & Soft Link

File: byte의 선형 배열임  - low-level filename: inode number create와 remove▶create- fd: fild descriptor - 정수값임  ▶remove  offset: read/write을 시작할 파일 내 위치 ▶offset에 영향을 주는 함수- read()- write()- lseek(): read/write offset을 재설정  ▶traces example write()와 fsync()▶write(): 데이터를 우선 메모리 버퍼에 write하고, '나중에' disk로의 업데이트 ▶fsync(): 즉시 disk에 write함   fork()와 dup()▶fork()- child process는 parent process의 file descriptor..

[Secondary Storage] HDD(Hard Disk Drives), RAID(Redundant Array of Inexpensive Disks)

HDD Basic geometryTrack skewtrack 경계를 건너갈 때일지라도 연속적 read (여러개의 sector read)가 잘 수행되도록.track skew의 원리가 지하철 환승의 매커니즘과 같다는 생각이 들었다.내가 1호선에서 2호선으로 갈아탄다 치자.1호선에서 내린 뒤 2호선이 너무 곧바로 오면,그 열차는 놓치게 되고, 결국 다음 열차를 위해 배차간격을 거의 통으로 기다려야 한다.반면, 만약 2호선이 곧바로가 아니라, 아주 센스있게 "내가 1호선에서 2호선으로 걸어갈 여유가 있도록" 약간 딜레이를 두고 와준다면,나는 2호선 열차를 안전하게 탈 수 있다! 만약 disk가 아래와 같고, 22번과 34번 sector를 순서대로 read하려 한다 치자.22번을 읽은 뒤, head가 34번으로 ..

[I/O Devices] I/O Bus, Canonical device, Polling & Interrupt, DMA, MMIO

system architectureBus: data path ▶1. Memory bus: CPU ↔ memory ▶2. I/O bus: CPU ↔ I/O devices- USB(Universal Serial Bus): univsersal- SCSI, SATA: hard disk만을 위한 bus. - PCIe: 요즘에 device들은 SCSI, SATA 대신 이걸 많이 사용 canonical device ▶interfaceOS는 세 register를 read/write함으로써 device의 작동을 컨트롤함. 여기 구조는 device끼리 거의 비슷함 - status register: device의 현재 상태 - command register: device가 특정 task를 수행하도록 함 - data regi..

[논문] Improving Performance of Autoencoder-Based Network Anomaly Detection on NSL-KDD Dataset

연구 배경Internet에 연결된 device들이 많아짐에 따라 (IoT device) 보안 문제가 점차 대두되고 있어, 네트워크 보안을 위한 안정적 해결책이 요구된다.요즈음에는 여기에 AI의 활용이 제안되고 있으며, AutoEncoder 모델을 활용한 deep learning method는 거대한 네트워크 트래픽 샘플 상에서 anomaly를 탐지하는 task에 많이 사용되고 있다.AutoEncoder는 unsupervised feed-forward neural network이며, input의 reconstruction을 주요 목적으로 한다. 그리고 그 구조는 input - hidden - outptut layer로 대칭적이다. 또한 가장 적은 neuron을 가진 hidden layer를 latent s..

IT/인공지능 2024.05.31

[행정행위의 하자]

✅개념적법요건을 갖추지 못한 행정행위는 적법요건에 하자가 있는 위법한 행정행위가 됨 협의의 하자: 위법한 경우 (-> 일반적 의미)광의의 하자: 위법한 경우 + 부당한 경우 - 오기, 오산 등 -> 행정청이 바로 정정하면 되므로 하자 아님  ✅하자의 법적 효과 무효: 흠이 객관적으로 명백, 중대한 경우 - 행정행위로서 외형은 있지만 효과는 처음부터 없음- 공정력 인정 X -> 행정행위의 무효가 전제가 된 민사/형사소송에서   당해 법원은 처분의 무효를 선결적으로 판단 가능함- 무효확인심판이나 무효확인소송- 행정심판청구나 행정소송제기기간의 제한이 없음- 판례 ㅡ 무효 확인을 구하는 의미의 최소소송의 형식으로 무효를 주장하는 것을 인정함 부존재와의 구별부존재: 행정행위의 성립요건의 중요한 요소를 결하여   ..

2024.05.31

[행정행위의 효력]

1. 구속력: 행정행위가 그 내용에 따라 일정한 법적 효과를 발생시키는 힘 2. 공정력: 행정행위가 적법요건에 하자가 있더라도, 그 흠이 중대·명백하여 당연무효가 아닌 한, 권한 있는 기관에 의하여 취소될 때까지는 유효한 것으로 통용되어 누구든지 행정행위의 효력을 부인하지 못하는 힘 * 공정력의 범위와 한계:무효인 처분은 처음부터 그 효력이 발생하지 않는다. * 공정력과 입증책임: 오늘날 공정력은 적법성의 추정까지 되는 것이 아니라단지 법적 안정성을 위하여 잠정적으로 유효하게 통용되는 효력에 불과하므로입증책임의 소재와는 무관3. 구성요건적 효력: 유효한 행정행위가 모든 행정기관이나 법원 등 국가기관을 구속하는 힘 * 국가기관 상호간의 권한 및 관할권존중을 근거로 함: 특정 행정청이 법령상 자신의 권한에 ..

2024.05.31

[GitCTF] vulnerabilities of my team and other teams

소프트웨어보안 강의를 통해 GitCTF에 참여하여, 다른 팀의 프로젝트에서 취약점을 찾아내고, 우리 팀 프로젝트의 취약점을 패치하였다. 1. 다른 팀 프로젝트의 취약점아래는 다른 팀 프로젝트에서 찾아낸 취약점에 대한 분석보고서입니다.  2. 우리 팀 프로젝트의 취약점1) intended i) SQL injection- included to backend database ii) format string- included to login page. iii) buffer overflow- There are many attributes on database -> There would be problem with buffer size 2) unintended i) vulnerability about node.js..

IT/프로젝트 2024.05.30