본문 바로가기

Kitri_NCS3기 보안과정

170619 윈도우 시스템 분석 - 데이터 수집 (전원 On/Off)- 수집된 데이터 조사/분석- 분석 보고서 작성 1. 라이브 데이터 수집- 시스템 전원 on일때 수집- 활성 데이터, 메모리, 비활성 데이터 수집. 2. 라이브 데이터 증거 능력 : 어떤식으로든 메모리를 건들게 되서 무결성을 해침 , 최근 클라우드 시스템의 데이터 수집문제- 증거 능력 논란 여지- 증거 능력 연구나 절차 부족 3. 라이브 데이터 수집 활용성- 짧은 시간안에 필요한 정보는 최대한 수집 - 이미징 작업 전에 분석 방향 제시 가능 4. 라이브 데이터 수집 시 고려사항“접촉하는 두 물체간에는 반드시 흔적이 남는다”-로카르드 교환 법칙(Locard’s exchange principle)- - 시스템 흔적 최소화- GUI보다는 CLI 커맨드 창에서 하는것이 흔적을.. 더보기
170608 크로스사이트 스크립트(XSS) 취약점 사용자는 기본적으로 브라우저를 써서 웹사이트에 요청하는데 그 관계는 신뢰된다. 그렇기 때문에 관련된 애플리케이션이 취약하다면 요청문등에 악성코드를 심어 공격하는 XSS에 취약하다면 심각한 상황이 될것. XSS는 다른 사용자에게 악성코드를 보낼때 사용한다. 해커는 흔히 URL 요청문에 악성 스크립트를 담아서 정당한 사용자에게 보낸다.악성코드를 숨겨논 사이트에서 취약점을 찾는다면 사용자가 링크를 눌럿을 때 스크립트는 일단 신뢰할수있는 사이트(사용자가 이용중이던)로 보내진 다음 응답문에 실려진 악성스크립트문이 돌와서 실행이 된다. 기본적으로 사용자 브라우저가 신뢰하는 사이트에서부터 공격이 시작되는셈이다. 공격의 종류 저장형 XSS공격(stored attack) : 게시판,로그정보,주석등 에 악성코드가 숨어있어.. 더보기
170601 오라클 데이터베이스 계정 생성 및 권한 설정 - 계정 생성 방법- 시스템 권한, 객체관리 이해- 권한 부여와 철회 방법- 롤의 이해 데이터 베이스 관리자는 사용자들의 데이터베이스에 대한 액세스를 용도에 따라 제한해야한다. 불필요한 접속 및 필요보다 큰 권한을 부여하게되면 DB에 위협이 되는 요소가 많아지기 때문에 계정을 생성하고 권한을 설정해서 위험도를 최소화하고 회피할 수 있어야 한다. 계정 생성과 권한 부여의 기본적인 로직은 CREATE USER문을 이용한 계정 생성 → GRANT문을 이용한 권한부여의 순이다. 계정생성방법 CREATE USER user_name IDENTIFIED BY password : user_name 으로 된 계정이 password 의 비밀번호로 생성된다. 관리자 계정으로는 Oracle과 그 외 DB의 차이점이 있다. O.. 더보기
170531 VIEW를 이용한 데이터 액세스 제어 VIEW는 테이블의 일부 데이터를 조회하는 SELECT문이 정의된 객체. 셀렉트문장만 컴파일하고 바이트 코드가 만들어지면 저장해서 호출하는 객체가 VIEW이다. 저장되는 내용이없다. 왜냐하면 select문인 베이스 테이블에서 실행된 결과만들 가져오기 때문이다. view는 사용자가 데이터를 입력했다고 해서 VIEW에 입력되는게 아니라 테이블에 되는것. VIEW 를 사용하는 목적 필요에 의해 데이터를 넘겨주어야 할 때 모든 권한을 넘겨주게 되면 필요하지 않은 데이터까지 모두 노출이 될것입니다. 다른 데이터베이스 사용자들에게 내가 보여주고 싶은 내용에만 접근할수 있도록 접근자체를 제어해서 보호하는 방법을 VIEW에서 가능하게 해줍니다. 뷰를 생성하기 위해서는 CREATE VIEW 시스템 권한이 필요합니다. 상.. 더보기
170531 트랜잭션(Transaction) TRANSACTION은 "논리적으로 하나의 단위로 처리되어야 하는 하나 이상의 DML 문장(들)" 입니다. DML의 작업이 이루어지는 과정이라고 생각하면되겠습니다. 트랜잭션은 보통 다른 DB 시스템에선 자동으로 COMMIT이 되서 종료가 되는데 ORACLE의 경우 사용자가 COMMIT을 해줘야 합니다. COMMINT / ROLLBACK COMMIT-문 DML-문장 완료 후, 변경 후의 데이터 상태를 유지하면서 트랜잭션을 정상적으로 종료합니다. ROLLBACK-문 DML-문장 완료 후, 변경 전의 데이터 상태로 되돌려 놓고 트랜잭션을 정상적으로 종료합니다. 그럼 트랜잭션은 어떻게 종료되느냐 ? 세션에서 DML 작업 등을 하기위해 서버 프로세스에 붙으면 서버프로세스는 세션에 번호를 부여합니다. 이게 트랜잭션.. 더보기
170531 사용자 데이터의 수정 DML DML(Data Manipulation Language)는 데이터를 입력, 수정, 삭제의 작업을 할 수 있습니다. INSERT , UPDATE, DELETE 명령어를 사용합니다. INSERT 새로운 행 또는 행들을 테이블에 입력 UPDATE 테이블에 입력된 행 또는 행들의 컬럼(들)의 데이터를 수정합니다. DELETE 테이블에 저장된 행 또는 행들을 삭제합니다. 트랜젝션 : DML 작업이 처리되는 과정, 논리적 작업단위를 형성하는 DML문장들의 모음 트랜잭션을 종료하는 COMMIT / ROLLBACK - COMMIT : DML문장 완료후 변경 후의 데이터 상태를 저장하고 트랜잭션 종료- ROLLBACK : DML 문장 완료후 변경 전의 데이터 상태로 돌려놓고 트랜잭션 종료 오라클에서는 DML사용시 자동 .. 더보기
170531 테이블의 생성과 제약조건 (DDL) DB의 가장 대표적인 구성원은 테이블입니다. 테이블은 저장공간을 가진 객체로 정의 할 수 있는데요. 이 테이블을 생성해야 그 안에서 데이터를 저장하고 활용 할 수 있겟죠. 하지만 가장 베이스에 정의되는 개념이기 때문에 마구잡이로 생성하면 안되겠습니다. 그래서 제약조건이 있는것이구요. 테이블에는 자신을 정의하는 내용들이 있는데요. 자신의 테이블이름과 자신의 안에 구성되어있는 컬럼 그리고 그 컬럼을 채워줄 데이터들의 유형들이 정의되어 있습니다. 테이블을 생성하기 위해서는 접속한 데이터베이스 계정에게 CREATE TABLE 시스템 권한이 부여되어 있어야 합니다. 또한 접속한 데이터베이스 계정에게 저장 공간에 대한 권한(TABLESPACE 상의 QUOTA)이 설정되어 있어야 합니다. 접속한 계정으로 자신으 스키.. 더보기
170531 SET 연산자 활용 SET연산자는 SELECT의 결과 레코드를 처리하는 연산자입니다. 두 의 SELECT문 사이에서 각각의 결과 레코트를 조합해서 보여주는 역할을 합니다. UNION , UNION ALL, INTESECT, MINUS방식이 있는데 먼저 두개의 테이블을 정렬하면서 중복을 제거한 후 나열하는 UNION방식을 살펴보겠습니다. SET 연산자 처리 방법 UNION 두개의 레코드 집합을 합쳐 정렬한 후 중복된 레코드를 제거. UNION ALL 두개의 레코드 집합을 합쳐 그대로 표시 ( 중복제거 x ) INTERSECT 두개의 레코드 집합중 겹치는 내용 표시 (교집합 개념) MINUS 하나의 레코드 집합에서 다른 하나의 레코드집합을 제거, 첫번째 레코드에만! 있는 내용을 출력함. (차집합 개념) SET 연산자의 사용 위.. 더보기
170530 서브쿼리(SUBQUERY)를 사용한 데이터 조회 서브쿼리(SUBQUERY)는 쿼리문안에 쿼리문을 더 넣는 방법이다. SELECT문안에 다른 SELECT문이 있는 모양인데, 뽑아올 데이터가 상수화 되어있지 않았을때, 예를 들어 지빵의 봉급보다 많이받는 사원의 이름, 봉급을 알고 싶은데, 지빵의 봉급을 알고 있어야 하겟죠? 그렇기 때문에 서브쿼리문으로 지빵의 봉급을 구하고 다시 지빵의 봉급보다 많이받는 사원들의 데이터를 찾아오는 방식입니다. 서브쿼리를 사용할때 고려사항 1. 서브쿼리를 괄호로 감싸서 사용한다. 2. 서브쿼리는 단일 행 또는 복수행 비교연산자와 함께 사용 가능하다. : 연산자가 단순 연산자를 사용할 경우는 서브쿼리에서 리턴되는 레코드가 하나의 행만을 리턴해야합니다. 하나의 행이 리턴되기 위해선 데이터값이 각자 고유값을 가지고 있으면 되겟죠... 더보기
170530 JOIN - 테이블의 행을 결합 Join은 두 테이블의 행을 결합하여 데이터를 조회하기위해 사용한다. 자신의 테이블의 고유 값(외래키) 와 상대테이블의 고유값(기본키) 를 이용해 상대방이 가지고있는 데이터를 참조 할 수 있다. FROM에서 사용하기 때문에 테이블을 합친다는 의미로 생각하는 경우 가 많은데 행과 행을 합친다는 의미가 더 적절하다. 먼저 기본키와 외래키에 대해 알아보자. 기본키는 테이블에 저장된 각 행을 고유하게 식별 할 수 있는 사용자데이터 또는 데이터의 조합이다. 고유한 성질을 띄기 때문에 Null값이 와서도 안되고 중복이 되서도 안된다. 외래키는 기본키를 참조하는 제약조건이 있다. 즉, 외래키의 구성은 기본키의 구성 값중 하나여야한다. 기본키와 외래키의 관계는 1:다 의 관계로 매칭 될 수 있다. 때문에 외래키는 중복.. 더보기