CS

· CS/Database
sqld에선 이 정도만 알고있어도 충분한듯 정규화 - 데이터 정합성 (데이터의 정확성과 일관성을 유지)을 위해 엔터티를 작은 단위로 분리하는 과정 - 입력/ 수정/ 삭제의 이상현상(한 엔터티에 2개 이상의 종속성이 있을 때)을 제거 - 중복 속성 제거, 데이터 용량 최소화 제 1 정규형 - 모든 속성은 반드시 하나의 값만 가져야 한다. - 속성의 원자성 확보 제 2 정규형 - 엔터티의 모든 일반 속성은 반드시 모든 주식별자에 종속되어야 한다. = 완전 함수 종속 = 부분 함수 종속이 있으면 안된다. = 기본키의 부분 집합이 결정자가 되어선 안된다. 결정자? X -> Y인 함수적 관계를 성립시키는 X 함수적 관계? Y값이 오직 하나로 결정되는 관계 제 3 정규형 - 주식별자가 아닌 모든 속성간에 서로 종속..
· CS/Security
해커의 목적 먼저, 해킹 의뢰를 받은 해커의 최종 목적은 ‘여기 어때’ 데이터베이스에 저장된 회원정보, 숙박예약정보, 제휴점 정보 등을 획득하는 것이었습니다. 해커는 데이터베이스 서버에 접근하기 위해서 ‘서비스 관리 웹서버’ 즉, 여기어때 서비스 관리 시스템에 접속하는 것을 목표로 하였습니다. ‘서비스 관리 시스템’에서는 회원 정보, 예약 정보를 확인하고 관리하는 기능이 있을 것으로 쉽게 예측할 수 있습니다. 서비스 관리 시스템에서 해당 정보에 접근할 수 있는 계정은 DB서버에 있는 회원 정보나 예약 정보 테이블에 접근할 수 있는 ‘권한 있는 사용자’라고 유추할 수 있습니다. 따라서 해커는 ‘서비스 관리 웹서버’의 ‘관리자 계정’으로 로그인을 하고자 계획합니다. 해커는 여기 어때 운영사에서 관리중인 웹사..
· CS/Database
SET LINESIZE 150 SET PAGESIZE 30
· CS/Database
제약조건이란 사용자가 원하는 조건의 데이터만 유지하기 위해 테이블의 특정 칼럼에 설정하는 제약을 말합니다. 제약조건은 데이터베이스 테이블의 컬럼 또는 테이블 간의 관계에 대한 규칙 또는 조건을 정의하는 데 사용됩니다. 제약조건을 설정함으로써 데이터 무결성을, 일관성을 보장하고, 이용자로부터 데이터를 보호할 수 있습니다. 제약조건의 종류로는 PK, UK, NOT NULL, CHECK, FOREIGN KEY가 있습니다. 1. 고유키 (Unique Constraint): 컬럼의 값이 고유해야 한다는 규칙을 정의합니다. NULL값을 가지더라고 고유키 제약조건에 위배되지 않으며, NULL값을 여러개 가지더라도 괜찮습니다. 2. 기본 키 (Primary Key Constraint): 테이블 내에서 고유하고 식별 가..
· CS/Database
트랜잭션은 데이터베이스의 논리적인 연산 단위입니다. 논리적인 단위라는 것은 실제 해당 작업을 위해 몇단계가 걸리는지와 관련 없이 하나의 작업을 이야기 합니다. 논리적인 작업 단위를 구성하는 세부적인 연산들의 집합을 말합니다. 때문에 하나의 트랜잭션에는 하나 이상의 sql문장이 포함됩니다. 때문에 트랜잭션은 실제 데이터베이스를 조작하는데 몇 단계가 걸리든지 상관 없이, 해당 트랜잭션이 완전히 적용되거나, 아니면 모두 적용되지 않는 ALL 혹은 NOTING의 개념입니다. 이러한 트랜잭션의 특성을 원자성 이라고 합니다. 트랜잭션의 특성으로는 원자성, 일관성, 고립성, 지속성이 있는데요. 특히 원자성이 중요한 특성입니다. 모두 적용하거나 하나도 적용하지 않는다는 트랜잭션의 원자성은 커밋과 롤백으로 구현됩니다. ..
· CS/Database
함수 종속(FD: Functional dependency) 어떤 릴레이션 R에서 X와 Y를 각각 E의 어트리뷰트 집합의 부분 집합이라 하자. 어트리뷰트 X의 값 각각에 대해 시간에 관계없이 항상 어트리뷰트 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수 종속이라 하고, X -> Y로 표기한다. 함수 종속(Functional Dependency)은 데이터베이스 시스템에서 특정한 조건을 만족하는 데이터 간의 관계를 정의하는 개념입니다. 데이터베이스에서는 주로 속성(Attribute)과 테이블(Table) 간의 함수 종속을 다룹니다. 이때, 속성은 데이터베이스의 열(Column)을 나타내고, 테이블은 데이터베이스의 표(Table)를 나타냅니다. 예를 들어, 학생 정보 데이터베이스를 가정해 봅시다. 여..
· CS/Database
데이터베이스에서 테이블의 수평 분할과 수직 분할은 데이터베이스 설계 및 관리에서 중요한 개념입니다. 이 두 가지 분할 방법은 데이터를 효율적으로 저장, 관리 및 검색하기 위해 사용됩니다. 다음으로 각 분할 방법에 대해 알아보겠습니다: 1. 수평 분할 (Horizontal Partitioning) 수평 분할은 테이블을 행(row) 기반으로 분할하는 것을 의미합니다. 이 방법은 주로 대량의 데이터를 가진 테이블을 관리하고 성능을 향상시키는 데 사용됩니다. 수평 분할의 주요 특징은 다음과 같습니다: - 로우 기반 분할: 특정 기준에 따라 테이블의 로우(행)들을 분할합니다. 예를 들어, 날짜 기준으로 로그 데이터를 월별로 분할할 수 있습니다. - 데이터 관리: 각 파티션은 별도의 물리적 테이블로 저장됩니다. 각..
· CS/Database
데이터베이스에서의 투명 데이터베이스에서 "투명성(transparency)"은 사용자나 응용 프로그램에게 데이터베이스 시스템의 내부 동작 및 구조를 숨기는 개념을 나타냅니다. 이것은 데이터베이스 시스템을 사용하는 사람들이 데이터를 쉽게 액세스하고 조작할 수 있도록 도와주는 중요한 개념입니다. 따라서 분산 데이터베이스에서 투명성을 유지한다는 것은 분산데이터베이스를 중앙집중식데이터베이스처럼 사용하도록 하겠다는 의미입니다. 분산 데이터베이스의 투명성 분산 데이터베이스 시스템은 여러 노드 또는 위치에서 데이터를 저장하고 관리하는 환경에서 데이터의 일관성과 효율성을 유지하는 데 중요합니다. 이러한 목표를 달성하기 위해 분산 데이터베이스는 다양한 투명성 유형을 제공합니다. 아래에서는 분산 데이터베이스를 위한 여섯 가..
· CS/Database
데이터베이스 시스템에서 동시성과 병행 제어는 중요한 개념입니다. 동시성 (Concurrency) 데이터베이스 시스템에서 여러 사용자가 동시에 데이터에 접근하고 작업할 수 있는 능력을 말합니다. 동시성은 데이터베이스의 효율성과 성능을 향상시키는 중요한 특징입니다. 여러 사용자가 동시에 작업할 때, 데이터 일관성과 무결성을 보존하려면 병행 제어가 필요합니다. 병행 제어 (Concurrency Control) 병행 작업 중에 데이터 일관성을 유지하고 데이터베이스의 무결성을 보호하기 위한 메커니즘입니다. 병행 작업이 충돌하지 않도록 하고, 데이터베이스 시스템이 여러 작업을 동시에 수행할 수 있도록 도와줍니다. 병행 제어는 다음과 같은 주요 기술을 포함합니다: - Locking (잠금): 데이터베이스에서 데이터 ..
· CS/Database
Entity (엔터티), Attribute (속성) 직사각형의 상단에 entity의 이름을 표기하고, 그 아래에 attribute의 이름을 작성합니다. 해당 attribute가 PK, FK일 경우 좌측에 표기해줍니다. Relation (관계) relation은 다음과 같은 기호들로 나타냅니다. 실선과 점선 실선은 식별 (Identifying) 관계를 나타냅니다. 식별 관계란 부모 entity 의 기본키 또는 유니크키를 자식 entity 의 기본키로 사용하는 관계를 말합니다. 즉, 자식 entity 는 부모 Entity 가 존재해야 존재할 수 있습니다. 점선은 비식별 (Non-Identifying) 관계를 나타냅니다. 비식별 관계란 부모 entity 의 기본키 또는 유니크키를 자식 entity 에서 외래키..
· CS/Network
라우팅 테이블(Routing Table)과 ARP 테이블(Address Resolution Protocol Table)은 네트워크에서 사용되는 테이블입니다. 라우팅 테이블(Routing Table) 라우터나 스위치와 같은 네트워크 장비에 저장되는 데이터 구조입니다. 목적지 IP 주소를 기반으로 패킷을 전달하기 위한 최적의 경로를 결정하는 데 사용됩니다. 라우팅 프로토콜(예: RIP, OSPF, BGP)에 의해 자동으로 업데이트되거나 관리자에 의해 수동으로 구성될 수 있습니다. 라우팅 테이블에는 목적지 IP 주소, 서브넷 마스크, 출구 인터페이스, 다음 홉(넥스트 홉) 라우터의 IP 주소 등의 정보가 포함됩니다. 라우팅 테이블을 사용하여 패킷이 목적지로 전달될 때마다 최적의 경로를 선택하고 전달합니다. A..
· CS/Security
목표 지난 글의 내용을 기반으로 다음과 같이 IDS를 설계하였습니다. 💡 외부 네트워크와 통신하는 패킷의 경우, MAC 주소가 gateway의 MAC 주소인 00:50:56:f1:51:86 가 아니라면 로그를 띄운다 MAC 주소 기반 탐지 00:50:56:f1:51:86 : 게이트웨이의 MAC 주소 들어오는 패킷의 경우 source 의 mac주소가 00:50:56:f1:51:86이 아닌 경우를 기록 나가는 패킷의 경우 destination의 mac주소가 00:50:56:f1:51:86이 아닌 경우를 기록 들어오는 경우 들어오는 패킷의 경우, source 의 MAC주소가 00:50:56:f1:51:86이 아닌 경우 로그를 띄우도록 하였습니다. iptables -A INPUT -m mac ! --mac-so..
· CS/Security
실습 환경 IP Address MAC Address 192.168.100.1 호스트 PC 192.168.100.2 00:50:56:f1:51:86 게이트웨이 192.168.100.30 00:0c:29:f0:7e:2c 피해자 (Xubuntu) 192.168.100.128 00:0c:29:ce:c0:c2 공격자 (Kali) ARP Request and Reply 먼저 ARP 프로토콜을 사용하여 특정 IP에 대한 MAC 주소를 찾는 과정을 가볍게 짚고 넘어가보겠습니다. 공격자 PC인 Kali의 Ettercap에서 Scan for Hosts 메뉴 실행한 상태입니다. Kali(192.168.100.128)에서 ARP Request 패킷을 브로드캐스트 하고 있습니다. 아래는 현재 PC인 Xubuntu에서, IP가 ..
· CS/Security
개요 ARP 스푸핑 공격이란 공격자가 ARP(Address Resolution Protocol) 프로토콜을 사용하여 자신의 MAC주소를 공격 대상자 PC의 IP주소와 매핑하여 마치 공격 피해자의 MAC주소인 것 처럼 속여 패킷을 가로채는 공격입니다. ARP프로토콜은 IP 주소를 가지고 해당 IP의 MAC주소를 찾는 프로토콜 입니다. 송신자가 ARP Request 패킷을 브로드캐스트로 요청하면, 해당되는 수신자는 자신의 MAC주소를 담아 ARP Reply 패킷을 유니캐스트로 송신자에게 전송합니다. Ettercap 사용 시작하기 Ettercap은 kali에 기본적으로 설치된 네트워크 보안 도구 입니다. 패킷 스니핑과 중간자 공격을 실행하기 위해 사용되며, LAN에서 호스트 간 통신을 감시하고 조작할 수 있는..
· CS/Security
CAPTCHA의 개념 CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)는 인간에게는 쉽지만 기계에게는 어려운 과제를 사용자에게 테스트하여 사용자가 봇(컴퓨터)이 아니라 인간인지 검증하는 다양한 인증 방법들을 말한다. 일 그러진 문자열의 이미지를 보고 어떤 글자인지 입력하는 경우, 혹은 제시된 사진들 중 주어진 단어와 관련 있는 사진을 고르는 경우가 CAPTCHA를 만난 경우이다. CAPTCHA의 진화 2003년, 가짜 이메일 계정을 등록하는 스팸 봇 때문에 문제에 대응하여 카네기 멜런 대학교 연구팀이 CAPTCHA라는 용어 와 함께 기술을 개발하였다. 이때 만들어진 CAPTCHA가 바로 무작위의 문자열을 ..
hye2021
'CS' 카테고리의 글 목록