'한빛아카데미 - JAVA 마스터' 교재의 프로젝트 내용입니다.


프로젝트 구조도

 

PART4 메뉴 별 메서드 만들기

 

class Welcome - 내용 수정 및 추가

1. 고객 정보 확인 메서드 menuGuestInfo()

2. 장바구니 상품 목록  메서드 : menuCartItemList()

3. 장바구니 비우기 메서드 : menuCartClear()

4. 바구니에 항목 추가 메서드 : menuCartAddItem()

5. 장바구니의 항목 수량 줄이는 메서드 : menuCartRemoveItemCount()

6. 장바구니의 항목 삭제 메서드 : menuCartRemoveItem()

7. 영수증 표시하는 메서드 : menuCartBill()

8. 종료 메서드 : menuExit()

import java.util.Scanner;

public class Welcome {
	
	public static void menuIntroduction() { // 메뉴 출력하는 메서드
		System.out.println("***************************************");
		System.out.println("1. 고객 정보 확인하기 \t4. 바구니에 항목 추가하기");
		System.out.println("2. 장바구니 상품 목록 보기 \t5. 장바구니의 항목 수량 줄이기");
		System.out.println("3. 장바구니 비우기 \t6. 장바구니의 항목 삭제하기");
		System.out.println("7. 영수증 표시하기 \t8. 종료");
		System.out.println("***************************************");
	}
	
	public static void menuGuestInfo(String name, int mobile) { // 고객 정보 확인하는 메서드
		System.out.println("현재 고객 정보 : ");
		System.out.println("이름 " + name + " 연락처 "+ mobile);
	}
	
	public static void menuCartItemList() { // 장바구니 상품 목록 확인하는 메서드
		System.out.println("장바구니 상품 목록 보기 : ");
	}

	public static void menuCartClear() { // 장바구니 모든 항목 삭제하는 메서드
		System.out.println("장바구니 비우기: ");
	}

	public static void menuCartAddItem() { // 장바구니에 도서를 추가하는 메서드
		System.out.println("장바구니에 항목 추가하기 : ");
	}

	public static void menuCartRemoveItemCount() {  // 장바구니의 항목 수량 줄이는 메서드
		System.out.println("5. 장바구니의 항목 수량 줄이기");
	}

	public static void menuCartRemoveItem() {  // 장바구니의 항목 삭제하는 메서드
		System.out.println("6. 장바구니의 항목 삭제하기");
	}

	public static void menuCartBill() {  // 영수증 표시하는 메서드
		System.out.println("7. 영수증 표시하기");
	}

	public static void menuExit() {  // 종료하는 메서드
		System.out.println("8. 종료");
	}


	public static void main(String[] args) {
		//PART2에서 작성한 내용
		Scanner input = new Scanner(System.in);
		
		System.out.print("당신의 이름을 입력하세요 : ");
		String userName = input.next();
		
		System.out.print("연락처를 입력하세요 : ");
		int userMobile = input.nextInt();
		
		String greeting = "Welcome to Shopping Mall";
		String tagline = "Welcome to Book Market!";
		
		boolean quit = false; // 종료 여부 설정 변수
		
		while(!quit) { // quit 변수가 true일 때까지 계속 반복
		System.out.println("***************************************");
		System.out.println("\t"+greeting);
		System.out.println("\t"+tagline);
		
		/* 기존 메뉴 설명 주석 처리
		System.out.println("***************************************");
		System.out.println("1. 고객 정보 확인하기 \t4. 바구니에 항목 추가하기");
		System.out.println("2. 장바구니 상품 목록 보기 \t5. 장바구니의 항목 수량 줄이기");
		System.out.println("3. 장바구니 비우기 \t6. 장바구니의 항목 삭제하기");
		System.out.println("7. 영수증 표시하기 \t8. 종료");
		System.out.println("***************************************");
		*/
		
		menuIntroduction(); // 메뉴 목록 출력 메서드 호출
		
		System.out.println("메뉴 번호를 선택해주세요 ");
		int n = input.nextInt(); 
		
//		System.out.println(n +"n번을 선택했습니다. ");
		
		if(n < 1 || n > 8 ) { // 메뉴 선택 번호가 1~8이 아니면 아래 문자열 출력
			System.out.println("1부터 8까지의 숫자를 입력하세요.");
		}
		
		else {
			switch(n) { //switch문을 이용하여 메뉴 선택 번호별 정보 출력
			case 1:
				/* 기존 내용 주석 처리
				System.out.println("현재 고객 정보 : ");
				System.out.println("이름 " + userName + " 연락처 "+ userMobile); // 메뉴 번호가 1일 때 입력된 고객 이름과 연락처 출력
				*/
				menuGuestInfo(userName, userMobile);
				break;
			case 2:
//				System.out.println("장바구니 상품 목록 보기 : ");
				menuCartItemList();
				break;
			case 3:
//				System.out.println("장바구니 비우기: ");
				menuCartClear();
				break;
			case 4:
//				System.out.println("장바구니에 항목 추가하기 : ");
				menuCartAddItem();
				break;
			case 5:
//				System.out.println("5. 장바구니의 항목 수량 줄이기");
				menuCartRemoveItemCount();
				break;
			case 6:
//				System.out.println("6. 장바구니의 항목 삭제하기");
				menuCartRemoveItem();
				break;
			case 7:
//				System.out.println("7. 영수증 표시하기");
				menuCartBill();
				break;
			case 8:
//				System.out.println("8. 종료");
				menuExit();
				quit = true; // quit에 true를 넣어 반복문 종료 조건을 충족
				break;
				
				}
			}
		}
	}
}

 

'한빛아카데미 - JAVA 마스터' 교재의 프로젝트 내용입니다.


프로젝트 구조도

 

PART3 메뉴 정보 표시 및 종료하기

 

class Welcome - 내용 수정

import java.util.Scanner;

public class Welcome {
	public static void main(String[] args) {
		//PART2에서 작성한 내용
		Scanner input = new Scanner(System.in);
		
		System.out.print("당신의 이름을 입력하세요 : ");
		String userName = input.next();
		
		System.out.print("연락처를 입력하세요 : ");
		int userMobile = input.nextInt();
		
		String greeting = "Welcome to Shopping Mall";
		String tagline = "Welcome to Book Market!";
		
		boolean quit = false; // 종료 여부 설정 변수
		
		while(!quit) { // quit 변수가 true일 때까지 계속 반복
		System.out.println("***************************************");
		System.out.println("\t"+greeting);
		System.out.println("\t"+tagline);
		System.out.println("***************************************");
		System.out.println("1. 고객 정보 확인하기 \t4. 바구니에 항목 추가하기");
		System.out.println("2. 장바구니 상품 목록 보기 \t5. 장바구니의 항목 수량 줄이기");
		System.out.println("3. 장바구니 비우기 \t6. 장바구니의 항목 삭제하기");
		System.out.println("7. 영수증 표시하기 \t8. 종료");
		System.out.println("***************************************");
		System.out.println("메뉴 번호를 선택해주세요 ");
		int n = input.nextInt(); 
		
		//System.out.println(n +"n번을 선택했습니다. ");
		
		if(n < 1 || n > 8 ) { // 메뉴 선택 번호가 1~8이 아니면 아래 문자열 출력
			System.out.println("1부터 8까지의 숫자를 입력하세요.");
		}
		
		else {
			switch(n) { //switch문을 이용하여 메뉴 선택 번호별 정보 출력
			case 1:
				System.out.println("현재 고객 정보 : ");
				System.out.println("이름" + userName + " 연락처 "+ userMobile); // 메뉴 번호가 1일 때 입력된 고객 이름과 연락처 출력
				break;
			case 2:
				System.out.println("장바구니 상품 목록 보기 : ");
				break;
			case 3:
				System.out.println("장바구니 비우기: ");
				break;
			case 4:
				System.out.println("장바구니에 항목 추가하기 : ");
				break;
			case 5:
				System.out.println("5. 장바구니의 항목 수량 줄이기");
				break;
			case 6:
				System.out.println("6. 장바구니의 항목 삭제하기");
				break;
			case 7:
				System.out.println("7. 영수증 표시하기");
				break;
			case 8:
				System.out.println("8. 종료");
				quit = true; // quit에 true를 넣어 반복문 종료 조건을 충족
				break;
				
				}
			}
		}
	}
}

 

'한빛아카데미 - JAVA 마스터' 교재의 프로젝트 내용입니다.


프로젝트 구조도

 

PART1 메인 메뉴 만들기

 

class Welcome -  클래스 생성

public class Welcome {
	public static void main(String[] args) {
		String greeting = "Welcome to Shopping Mall";
		String tagline = "Welcome to Book Market!";
		
		System.out.println("***************************************");
		System.out.println("\t"+greeting);
		System.out.println("\t"+tagline);
		System.out.println("***************************************");
		System.out.println("1. 고객 정보 확인하기 \t4. 바구니에 항목 추가하기");
		System.out.println("2. 장바구니 상품 목록 보기 \t5. 장바구니의 항목 수량 줄이기");
		System.out.println("3. 장바구니 비우기 \t6. 장바구니의 항목 삭제하기");
		System.out.println("7. 영수증 표시하기 \t8. 종료");
		System.out.println("***************************************");
	}
}

 

PART2 메인 메뉴 선택하기

class Welcome - 내용 수정 및 추가

import java.util.Scanner; // Scanner 클래스의 패키지 임포트

public class Welcome {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in); // Scanner 클래스의 객체 생성
		
		System.out.print("당신의 이름을 입력하세요 : ");
		String userName = input.next(); // 문자열로 입력받음
		
		System.out.print("연락처를 입력하세요 : ");
		int userMobile = input.nextInt(); // 정수로 입력받음
		
		// String greeting = "Welcome to Shopping Mall";
		// String tagline = "Welcome to Book Market!";
		
		System.out.println("***************************************");
		System.out.println("\t"+greeting);
		System.out.println("\t"+tagline);
		System.out.println("***************************************");
		System.out.println("1. 고객 정보 확인하기 \t4. 바구니에 항목 추가하기");
		System.out.println("2. 장바구니 상품 목록 보기 \t5. 장바구니의 항목 수량 줄이기");
		System.out.println("3. 장바구니 비우기 \t6. 장바구니의 항목 삭제하기");
		System.out.println("7. 영수증 표시하기 \t8. 종료");
		System.out.println("***************************************");
		System.out.println("메뉴 번호를 선택해주세요 ");
		int n = input.nextInt(); // 메뉴 번호 입력
		System.out.println(n +"n번을 선택했습니다. "); // 입력한 번호 출력
	}
}

 

 

'한빛아카데미 - 네트워크 해킹과 보안: 정보 보안 개론과 실습' 교재에 관한 내용입니다.


인증 수단

알고 있는 것

- 사용자가 알고 있는 정보로 인증

- 대표적인 예는 사용자의 아이디와 패스워드를 이용한 인증

- 사용자의 기억에 의존하므로 값싸고 편리하지만 패스워드를 안전하게 관리하기가 조금 어려움

 

자신의 모습

- 지문

가격 부담이 없고 효율성이 좋으며 사용 시 거부감이 없음

손에 땀이 많거나 허물이 잘 벗겨지는 사람의 경우 오탐률이 높음

 

- 손 모양

손가락의 길이나 굵기 등 손 모양을 이용하여 인증하는 방식

매우 간편하고 인증 데이터의 크기가 작아서 빠른 인증이 가능

손 모양이 비슷한 사람도 많고 고무 인형 등을 이용하여 쉽게 조작할 수 있어, 높은 보안 수준을 제공하지 못함

 

- 망막

눈 뒷부분에 있는 모세혈관을 이용하는 것

인증하는 데 10~15초 정도 걸리고 정확도가 매우 높음

장치에 눈을 10초 이상 대고 초점을 맞춰야 하므로 거부감을 불러일으킬 수 있음

안경을 쓴 상태에서는 인증을 거칠 수 없으며 눈병에 걸리면 인식률이 떨어짐

매우 높은 보안 수준을 요구할 때 사용

 

- 홍채

홍채: 눈의 색깔을 결정하는 부분으로 우리나라 사람은 대부분 홍채가 검은색이나 갈색

홍채 인증은 망막 인증보다 정확도가 높으며, 50cm 정도의 거리에서도 인증이 가능

망막 인증이 홍채 인증으로 대체되고 있지만 망막 인식 장비와 마찬가지로 고가

 

- 서명

서명의 진위 여부를 판단하는 인증 장치도 있으나 보안 수준이 그다지 높지 않아 일반적으로 사용되지는 않음

 

- 키보드

키보드를 누를 때 발생하는 특정한 리듬을 이용하여 신분을 확인하는 방법

오탐률이 높고 효율적이지 못하여 높은 보안 수준을 요구하는 경우에는 사용하지 않음

 

- 성문

사람마다 각기 다른 성문을 이용하는 인증

성문은 환경이나 감정에 따라 변하기도 하고 흉내낼 수도 있어서 보안 수준이 높지 않음

 

- 얼굴

얼굴 사진을 이용하는 인증

대표적인 예는 여권 사진으로 인증 장비가 다양한 표정의 얼굴을 정확히 인증하지 못하여 무표정한 얼굴만 확인이 가능

 

 가지고 있는 것

사용자가 소유한 것을 인증 수단으로 삼는 방식은 아주 오래전부터 이용 (ex: 마패)

오늘날에도 소유물을 활용한 인증 수단을 사용하고 있음

다른 사람이 쉽게 도용할 수 있기 때문에 단독으로 쓰이지 않음

 

- 스마트키 또는 스마트카드

스마트카드를 소유한 사람만 출입을 허가하는 방식

 

- 신분증

사진이 포함된 신분증으로 본인임을 확인하는 것

'가지고 있는 것'과 '자신의 모습'을 모두 이용하는 경우

 

- OTP

OTP는 1분마다 다른 패스워드를 생성하는 단말 장치

고정된 번호 중에서 임의의 지시 번호를 입력하는 보안 카드보다 좀 더 안전한 방식

 

- 공인인증서

인터넷 뱅킹이나 온라인상의 신용카드 거래에서 많이 사용함

공인인증서 패스워드를 알아야 하므로 '가지고 있는 것'과 '알고 있는 것'을 동시에 이용하는 인증ㅇ

 

 위치하는 곳

- 사용자 IP 

인터넷 게임이나 온라인 서비스를 이용할 때 국가에 따라 서비스 정책이 다른 경우 사용자 IP를 통해 국가 간 접속을 차단하는 것은 바로 ‘위치하는 곳’을 이용한 인증

 

- 콜백

발신자가 전화로 서비스를 요청했을 때, 전화를 끊고 걸려온 번호로 전화를 다시 걸어 발신자의 전화번호가 유효한지 확인하는 방법

 

 SSO

가장 기본적인 인증 시스템

'모든 인증을 하나의 시스템에서'라는 목적으로 개발

시스템이 몇 대라도 한 시스템의 인증에 성공하면 다른 시스템의 접근 권한을 모두 얻는 것

 

 

1 | 처음에 클라이언트가 서버에 연결을 요청

2 | 서버는 클라이언트에게 SSO 서버로부터 인증을 받은 후 접속하라고 요청

3,4 | 클라이언트가 SSO 서버로부터 인증을 받음

5 | SSO 서버와 연결된 서버 1, 2, 3에도 별도의 인증 과정 없이 접속할 수 있음

 

- 커베로스

SSO 접속 형태의 대표적인 인증 방법으로는 커베로스를 이용한 윈도우 액티브 디렉터

윈도우 서버에 이용되는 커베로스는 버전 5이며 10여 년 전에 MIT의 Athena 프로젝트에서 개발

커베로스는 그리스 신화 속 지옥문을 지키는 머리 셋 달린 개의 이름에서 따온 것

3개의 머리는 각각 클라이언트, 서버, SSO를 가리킴

 

- 서비스 기반으로 SSO를 구현하는 경우

사용자는 마이크로소프트가 관리하는 중앙의 패스포트 서버로 서비스 가입, 인증 받음

가맹 사이트는 패스포트 서버로 인증을 받으므로 인증 시스템을 따로 구축할 필요 없음

패스포트가 가진 정보를 자동으로 채워주는 템플릿 기능도 제공

웹 기반 SSO는 가입자의 인터넷 사용 정보를 효과적으로 얻을 수 있다는 이점으로 사용률이 매년 증가

동일한 인증 정보가 광범위한 서비스에서 사용되면 취약 포인트가 많아져 보안 측면에서 우려됨

 

- SSO의 약점

최초 인증 과정을 통과하면 모든 서버나 사이트에 접속할 수 있는 단일 장애점이 약점

약점을 보완하기 위해 중요 정보에 접근할 때는 지속적인 인증을 하도록 되어 있음

 

방화벽

보안을 높이기 위한 일차적인 방법

신뢰하지 않는 외부 네트워크와 신뢰하는 내부 네트워크 사이를 지나는 패킷을 미리 정한 규칙에 따라 차단하거나 보내주는 기능을 하는 하드웨어나 소프트웨어

방화벽은 성문을 지키는 병사가 사람들의 통행증을 검사하고 출입을 허가하는 것으로도 빗댈 수 있음

 

• 접근 제어

방화벽의 가장 기본적이고 중요한 기능

관리자가 통과시킬 접근과 거부할 접근을 명시하면 방화벽이 그에 따라 수행

구현 방법에 따라 패킷 필터링 방식, 프록시 방식으로 나뉨

접근 제어를 수행하는 룰셋은 방화벽을 기준으로 보호하려는 네트워크의 외부와 내부에 존재하는 시스템의 IP 주소와 포트로 구성

 

• 올바른 룰셋 적용

1 | 허용할 서비스를 확인

2 | 제공하려는 서비스가 보안상 문제가 없는지, 허용하는 것이 타당한지 검토

3 | 서비스가 이루어지는 형태를 확인하고 어떤 룰을 적용할지 구체적으로 결정

4 | 방화벽에 실제로 룰을 적용하고 적용된 룰을 검사

 

 로깅과 감사 추적

방화벽은 룰셋 설정과 변경, 관리자 접근, 네트워크 트래픽의 허용 또는 차단과 관련한 사항을 로그로 남김

사고 발생시 출입자를 확인하여 추적을 하기 위함

 

   인증

메시지 인증: VPN과 같은 신뢰할 수 있는 통신선으로 전송되는 메시지의 신뢰성을 보장

사용자 인증: 패스워드를 이용한 단순한 인증부터 OTP, 토큰 기반 인증 등 높은 수준의 인증까지 가능

클라이언트 인증: 모바일 사용자처럼 특수한 경우에 접속을 요구하는 호스트 자체가 정당한지 확인하는 방법

 

   데이터 암호화

한 방화벽에서 다른 방화벽으로 데이터를 암호화해서 보내는 것

일반적으로 VPN의 기능을 이용  방화벽의 한계

바이러스는 파일 등을 통해 감염되므로 근본적으로 방화벽이 영향을 미치기 어려움

일부 웜은 막을 수 있지만 정상적인 서비스 포트에 대해 웜이 공격을 시도할 때는 막을 수 없음

 

침입 탐지 시스템

네트워크를 통한 공격을 탐지하기 위한 장비

내부의 해킹이나 악성 코드 활동 탐지와 같이 방화벽이 하지 못하는 일을 수행

성안에서 거리를 돌며 순찰하는 병사에 비유

설치 위치와 목적에 따라 호스트 기반의 침입 탐지 시스템(HIDS) ,네트워크 기반의 침입 탐지 시스템(NIDS) 구분

 

• 침입 탐지 시스템의 주요 기능

- 데이터 수집

HIDS와 NIDS는 각각 장단점이 있어 상호 보완적으로 사용함

 

- 호스트 기반의 침입 탐지 시스템(HIDS)

윈도우나 유닉스 등의 운영체제에 부가적으로 설치, 운용되거나 일반 클라이언트에 설치

운영체제에 설정된 사용자 계정에 따라 어떤 사용자가 어떤 접근을 시도하고 어떤 작업을 했는지 기록을 남기고 추적

네트워크 환경과의 연계성이 낮아 전체 네트워크에 대한 침입 탐지가 불가능, 자신이 공격 대상이 될 때만 침입 탐지 가능

운영체제의 취약점이 HIDS를 손상할 수 있으며 다른 침입 탐지 시스템보다 비용이 많이 드는 것이 단점

 

- 네트워크 기반의 침입 탐지 시스템(NIDS)

네트워크에서 하나의 독립된 시스템으로 운용

감사와 로깅을 할 때 네트워크 자원이 손실되거나 데이터가 변조되지 않음

HIDS로는 할 수 없는 네트워크 전반에 대한 감시를 할 수 있으며 감시 영역이 상대적으로 큼

IP 주소를 소유하지 않아 해커의 직접적인 공격을 거의 완벽하게 방어할 수 있고 존재 사실도 숨길 수 있음

공격에 대한 결과를 알 수 없으며 암호화된 내용을 검사할 수 없음

스위칭 환경에서 NIDS를 설치하려면 다른 부가 장비 필요

10Gbps 이상의 고속 네트워크에서는 네트워크 카드 등의 하드웨어적인 한계로 네트워크의 모든 패킷을 검사하기 어려움 데이터 수집

 

- 데이터 필터링과 축약

HIDS와 NIDS에 의해 수집된 침입 관련 데이터를 한곳에 모아 관리하면 데이터를 상호 연관시켜 좀 더 효과적으로 분석함으로써 공격에 빠르게 대응할 수 있음

보안이 강화된 시스템에 데이터를 보관하여 침입으로 인한 손실을 막을 수 있음

보안 감사에서는 세밀하고 자세한 데이터보다 빠르고 정확하게 파악할 수 있는 데이터가 더 유용하므로 데이터의 효과적인 필터링과 축약이 필수

효과적인 필터링에는 데이터 수집 규칙을 설정하는 작업 필요

클리핑 레벨을 설정하여 잘못된 패스워드로 일정 횟수 이상 접속하면 로그를 남기도록 하여 조정 가능

 

 침입 탐지

- 오용 탐지 기법

이미 발견되고 정립된 공격 패턴을 미리 입력해두었다가 해당하는 패턴이 탐지되면 알려주는 것

비교적 오탐률이 낮고 효율적 • 알려진 공격 외에는 탐지할 수 없고 대량 데이터를 분석하는 데는 부적합

어떤 순서로 공격을 실시했는지에 대한 정보를 얻기 어려움

상태 전이 방법: 공격 상황에 대한 시나리오를 작성해두고 각각의 상태에 따른 공격을 분석하는 것

 

- 이상 탐지 기법

정상적이고 평균적인 상태를 기준으로 급격한 변화를 일으키거나 확률이 낮은 일이 발생하면 알려주는 것

인공지능 침입 탐지 시스템은 스스로 공격을 판단하고 결정을 내려 알려주지만, 판단 근거가 확실치 않고 오탐률 높음

면역 시스템은 새로운 공격을 당하면 스스로 학습하여 다시 그 공격이 발생하면 대응함

재설치를 하면 처음 상태로 되돌아가는 것이 단점

인공지능과 면역 시스템은 아직 개발 단계로 다른 침입 탐지 시스템과 병행하는 형태로만 운용되고 있음

 

- 책임 추적 및 대응

침입 탐지 시스템은 기본적으로 침입을 알려주는 시스템

과거: 침입에 대한 능동적인 기능이 별로 없고 공격을 발견하면 관리자에게 알람 등의 방법으로 알림

최근: 공격을 역추적하여 침입자의 시스템이나 네트워크를 사용하지 못하게 하는 능동적인 기능이 많이 추가

침입 방지 시스템(IPS): 능동적인 기능을 많이 탑재한 침입 탐지 시스템

 

 

 침입 탐지 시스템의 주요 기능

1 | 패킷이 라우터로 들어오기 전

네트워크에 실행되는 모든 공격 탐지 가능

공격 의도를 가진 패킷을 미리 파악할 수 있음

공격이 아닌 패킷을 너무 많이 수집

내부 네트워크로 침입한 공격과 그렇지 않은 것이 구분되지 않아 효율적인 대응이 어려움

2 | 라우터 뒤

 라우터의 패킷 필터링을 거친 패킷 검사

패킷 필터링 과정에서 단순한 공격 패킷이 걸러지므로 더 강력한 의지를 가진 공격자 탐지 가능

3 | 방화벽 뒤

방화벽 뒤에서 탐지되는 공격은 네트워크에 직접 영향을 주므로 공격에 대한 정책과 방화벽 연동성이 가장 중요

내부에서 외부로 향하는 공격도 탐지할 수 있어 내부 공격자도 어느 정도 탐지 가능

침입 탐지 시스템을 한 대만 설치할 수 있다면 이곳에 설치하는 것이 좋음

4 | 내부 네트워크

내부의 클라이언트를 신뢰할 수 없어 내부 네트워크 해킹을 감시하려 할 때 설치

5 | DMZ

DMZ에 침입 탐지 시스템을 설치하는 이유는 능력이 매우 뛰어난 외부 및 내부 공격자에 의한 중요 데이터의 손실이나 서비스 중단을 막기 위함

중요 데이터와 자원을 보호하기 위해 침입 탐지 시스템을 별도로 운영하기도 함  그 외 설치 관련 정보

침입 탐지 시스템의 설치 우선순위는 3 → 5 → 4 → 2 → 1
네트워크의 목적에 따라 중간에 NIDS를 선택적으로 설치 가능

HIDS는 유지, 관리 비용이 너무 많이 들어서 웹 서버와 같이 사업을 유지하는 매우 중요한 시스템에만 설치

 

 침입 방지 시스템

- 침입 방지 시스템의 개발 과정

방화벽은 IP 주소나 포트에 의한 네트워크 공격을 차단할 수 있지만 응용 프로그램 수준의 공격과 새로운 패턴의 공격에 대한 적응력이 무척 낮고 실시간 대응을 할 수도 없음

침입 탐지 시스템은 실시간 탐지는 가능하지만 대응책을 제시하지 못하기 때문에 대안 필요

방화벽과 침입 탐지 시스템만으로 해킹, 바이러스, 웜 공격을 막을 수 없는 것은 속도 때문

취약점 발표 후 실제 공격까지 하루가 채 걸리지 않는 제로데이 공격이 많음

 

- 침입 방지 시스템의 동작 원리

침입 방지 시스템은 침입 탐지 시스템과 방화벽의 조합

침입 탐지 기능을 수행하는 모듈이 패킷 하나하나를 검사하여 분석

정상적이지 않으면 방화벽 기능의 모듈로 패킷 차단

 

 

 

웜이나 악성 코드의 종류와 공격 기술이 다양해지면서 코드나 패킷 분석으로 탐지해서 공격을 막기 어려워짐

침입 방지 시스템에 가상 머신을 이용한 악성 코드 탐지 개념을 도입하여 적용

가상 머신에서 실행된 코드나 패킷이 키보드 해킹이나 무차별 네트 크 트래픽 생성 등 악성 코드와 유사한 동작을 보이면 해당 패킷을 차단

 

- 침입 방지 시스템의 설치

침입 방지 시스템은 일반적으로 방화벽 다음에 설치

방화벽이 네트워크 앞부분에서 불필요한 외부 패킷을 한 번 걸러주어 더 효율적으로 패킷 검사 가능

방화벽 없이 침입 방지 시스템만 설치하기도 함

하드웨어 칩으로 만든 ASIC를 소프트웨어로 많이 이용

침입 방지 시스템은 특화된 목적에 따라 방화벽과 함께 변형된 솔루션 형태를 띠기도 함

 

통제 및 감시 장비

- 감시 카메라

물리적인 보안을 위해 사용하는 장비 중 가장 널리 쓰이는 것

감시 카메라가 포착하지 못하는 사각지대를 확인해야 함

건물의 단면도에 감시 카메라 위치와 방향을 그려서 사각지대를 확인한 뒤 그 영역의 위험성을 판단함

영상 자료는 과거엔 비디오테이프에 보관했지만 최근에는 고화질 동영상으로 하드디스크 장비에 저장함

 

- 엑스레이 검사기

반도체나 LCD와 같은 첨단 산업 기업의 출입구에는 흔히 엑스레이 검사기가 설치되어 있음

큰 트럭이나 화물 컨테이너를 검사하는 엑스레이 검사기도 있음

 

- 금속 탐지기

전기와 자기의 관계를 이용한 탐지기로 공항에서 쉽게 볼 수 있음

화물에 숨긴 무기 탐지, 전장의 지뢰 감지, 음식물에 들어간 금속 파편 검사 등에 사용

전자 장비를 지니고 출입하는 것을 통제할 때도 사용

 

- 보안 스티커

방문자의 휴대전화 카메라에 붙여서 건물 내부의 사진을 찍지 않았음을 확인

노트북의 모니터와 본체 사이에 붙여서 내부로 들여간 노트북으로 작업했는지 여부를 확인

 

 

기타 보안 솔루션

  VPN

방화벽, 침입 탐지 시스템과 함께 사용되는 가장 일반적인 보안 솔루션

기업 내부의 네트워크에서 주고받는 데이터는 외부로 유출되면 안 되는 경우가 많아 기업 내의 데이터 통신에는 인터넷과 구분된 별도의 임대 회선을 사용

VPN은 고가의 임대 회선 대신에 인터넷 회선을 임대 회선처럼 사용할 수 있게 해주는 솔루션

 

• VPN의 용도

해외여행 중 국내 온라인 게임에 접속하는 경우

집에서도 회사 내의 서버에 보안 상태로 접근하는 경우

원격의 두 지점을 내부 네트워크처럼 이용하는 경우

 

 

  VLAN

- VLAN의 사용

VLAN을 이용할 때 네트워크 관리자는 네트워크를 작은 네트워크로 임의로 나눔

나뉜 네트워크는 브로드캐스트 패킷 제한 기능을 부여받음

이렇게 나뉜 VLAN은 ACL을 통해 접근 통제 가능, 악성 코드 발생시 범위 제한 가능

VLAN은 스위치에서 설정하며 포트별로 구분

 

1 | 패킷 전송

클라이언트가 스위치에 프레임을 전달하면 스위치는 클라이언트가 속한 VLAN을 표시하기 위해 전송받은 프레임에 VLAN 정보를 붙임

2 | 패킷 수신

프레임을 스위치 밖으로 보내기 전에 프레임의 VLAN 정보와 스위치 포트의 VLAN 정보를 비교

두 정보가 같으면 프레임에 붙어 있는 VLAN 정보를 떼어내고 프레임만 전송

다른 VLAN으로 프레임을 보내면 해당 포트의 VLAN과 프레임에 추가된 VLAN이 다르므로 프레임을 차단

 

 

3 | 스위치 간의 VLAN 통신

2개 이상의 스위치에서 VLAN 간 통신을 하려면 여러 개의 VLAN 프레임을 전송할 수 있는 트렁크 포트를 이용

트렁크 포트는 VLAN 의 종류에 관계없이 프레임을 전송하는데, 트렁크 포트로 전송할 때는 프레임의 VLAN 정보를 떼어내지 않음

대신 트렁크 포트로 전송된 프레임을 다시 각각의 VLAN으로 전송할 때 VLAN 정보를 떼어냄

 

  NAC NAC

- 주요 기능

과거 IP 관리 시스템에서 발전한 솔루션으로 기본적인 개념은 IP 관리 시스템과 거의 같음

구분 기능
접근 제어 및 인증 내부 직원 역할 기반ㅇ의 접근 제어
네트워크의 모든 IP 기반 장치 접근 제어
PC 및 네트워크 장치 통제(무결성 확인) 백신 관리
패치 관리
자산 관리(비인가 시스템 자동 검출)
해킹, 웜, 유해 트래픽 탐지 및 차단 유해 트래픽 탐지 및 차단
해킹 행위 차단
완벽한 증거 수집

 

접근 제어 및 인증 기능은 MAC 주소를 기반으로 수행

NAC는 등록된 MAC 주소만 네트워크에 접속할 수 있게 허용하므로 라우터로 구분된 서브 네트워크마다 에이전트 시스템이 설치되어야 함

 

- NAC를 통한 사용자 인증 절차

1 | 네트워크 접근 요청

접속하려는 PC 사용자가 네트워크에 대한 접근을 처음 시도

 

2 | 사용자 및 PC 인증

SSO와 연계하여 네트워크에 접근하는 사용자의 아이디와 패스워드를 추가로 요청하여 인증 수행

NAC에 등록되어 있는 MAC 주소로 사용자 PC 인증

 

3 | 인증 과정 중 백신, 보안 패치의 적절성 여부 검토

네트워크 접근 허용

인증이 완료되면 네트워크 접근 허용

 

4 | 네트워크 접근 거부

보안 정책을 제대로 준수하지 않거나 바이러스에 감염되었을 때는 네트워크 접근이 거부되고 네트워크에서 격리됨

격리된 PC는 필요한 정책 적용이나 치료 과정을 거친 후 다시 점검

 

  NAC 구현 방식

- 인라인 방식

NAC를 이용하여 방화벽과 같은 방식으로 접근 차단

게이트웨이 형태로 일부 물리적 네트워크에 NAC를 추가하는 것으로, 기존 네트워크 변경을 최소화하여 적용 가능

 

 

- NAC 구현 방식

802.1x 프로토콜과 RADIUS 서버를 이용하는 것

실질적인 접근 허용이나 차단은 스위치에서 수행

신규 클라이언트에 대한 인증 요청은 실제로 인증을 수행하는 RADIUS 서버로 전달

RADIUS 서버에서 스위치로 반환되는 결과에 따라 스위치는 네트워크에 대한 클라이언트 접근을 허용하거나 거부

 

- VLAN 방식

인가받지 않은 사용자라면 VLAN으로 미리 분리된 망 중에서 통신이 되지 않는 VLAN 망에 신규 클라이언트를 할당

인가받은 사용자라면 통신이 가능한 VLAN 망에 할당

 

- ARP 방식

신규 클라이언트가 적법한 사용자라면 NAC가 게이트웨이의 정상적인 MAC 주소를 알림

그렇지 않은 사용자라면 비정상적인 MAC 주소를 전송하여 네트워크에 대한 접근을 막음

 

- 소프트웨어 에이전트 설치 방식

네트워크에 접속하려는 모든 클라이언트에 에이전트를 설치하는 것

서버에서 차단 정책을 설정하여 설치된 에이전트로 네트워크를 차단

 

 

• 보안 운영체제

운영체제에 내재된 결함으로 발생할 수 있는 각종 해킹으로부터 시스템을 보호하기 위해 보안 기능이 통합된 보안 커널을 추가로 이식한 운영체제

기본으로 열려 있는 취약 서비스를 모두 차단하여 더 나은 보안 체계로 운영되도록 함

시스템에서 일어나는 프로세스 활동이 보안 정책에 위반되지 않는지를 검사 하기 위해 CPU의 일정 부분을 점유

 

- 백신

시스템의 바이러스를 잡기 위해 만들어진 것

우리나라의 대표적인 백신 프로그램은 V3

백신 프로그램이 시스템에 상주하면서 바이러스나 웜이 구동하면 실시간 탐지 및 제거하는 형태로 운영

바이러스, 웜, 인터넷으로 유포되는 악성 코드까지 탐지 및 제거 가능

 

- PC 방화벽

네트워크상의 웜이나 공격자로부터 PC를 보호하기 위해 사용

PC 내부로 유입되는 패킷뿐만 아니라 나가는 패킷도 모두 차단

사용자에게 네트워크 패킷의 적절성 여부를 확인 받음 • 최근의 윈도우 운영체제는 운영체제 수준에서 방화벽을 제공

윈도우 방화벽에서는 일반적인 방화벽 솔루션과 같은 방식으로 '인바운드 규칙'과 '아웃바운드 규칙'을 통제 가능

인바운드 규칙: 외부에서 내부로 들어오는 패킷에 대한 규칙

아웃바운드 규칙: 내부에서 외부로 나가는 패킷에 대한 규칙

 

 

• 스팸 필터 솔루션

- 메일 헤더 필터링

메일 헤더의 내용 중에서 ID/보내는 사람 이름/도메인에 특정 내용이 포함되어 있는지 검사

보낸 서버에서 IP/도메인/반송 주소의 유효성과 이상 유무 검사

메일 헤더의 받는 사람, 참조자, 숨은 참조자 필드에 너무 많은 수신자가 포함되어 있는지, 존재하지 않은 수신자가 포함되어 있는지 검사

 

- 제목 필터링

메일을 이용한 웜 공격은 제목에 특정 문자열이 있거나 일정 수 이상의 공백 문자열이 있는 것이 특징

메일 제목에 '광고' 등의 특정 문자열이 포함되어 있는지 검사하여 웜 차단 가능

 

-  본문 필터링 • 메일 본문에 특정 단어나 문자가 포함되어 있는지 검사

메일 본문과 메일 전체의 크기를 비교하여 유효성 확인

-  첨부 파일 필터링

첨부된 파일의 이름, 크기, 개수 및 첨부 파일 이름의 길이를 기준으로 필터링 수행

특정 확장자를 가진 첨부 파일만 전송되도록 설정

exe, com, dll, bat처럼 실행이 가능한 확장자를 가진 첨부 파일을 필터링

 

 DRM

문서 보안에 초점을 둔 기술로 문서의 열람, 편집, 인쇄에 접근 권한을 설정하여 통제

특정한 형태의 문서만 통제하는 것이 아니라 사무에 사용하는 대부분의 파일을 통제할 수 있음

운영체제 커널에 DRM 모듈을 삽입하는 형태로 사용

DRM 모듈로 운영되는 시스템의 하드디스크에는 암호화된 파일이 저장되므로 하드디스크를 도난당해도 보안상 위험이 적음

 

DRM 인증 체제는 인증서를 이용하는 경우가 많음

관리자는 각각의 인증서에 권한을 설정하여 문서 접근 권한을 설정

DRM 기술은 첨단 지식 관련 산업이나 높은 보안성을 요하는 정부 기관에서 주로 사용

 

 

 DLP

다양한 데이터 전송 인터페이스를 제어하여 사용자 수준에서 정보가 유출되는 것을 막는 솔루션을 통칭

기술적으로 숙련되지 않은 일반인의 활동이라도 DLP로 완벽하게 차단하기는 쉽지 않음

- 매체 제어 • 다양한 매체를 제어하는 DLP가 있지만 SATA 인터페이스로 하드디스크에 연결하는 경우는 제어 불가능

 

- 통신 인터페이스 제어 • 방해 전파 발생기와 같은 원리로 통신 라인을 통한 정보 유출을 막는 솔루션 등장

통신 인터페이스가 포함된 단말 장치 반입을 금지하거나 업무용 단말 장치는 통신 인터페이스를 제거하고 사용하는 것이 일반적

 

- 인터넷 통신 제어

클라우드 저장 공간을 통한 정보 유출을 막기 위해 해당 사이트의 접속을 막는 식으로 대응

개인이 자신만의 클라우드 저장 서버를 생성할 수도 있어 완벽히 차단하기 어려움

대학교에서 강의로 진행된 아레테고전강독(철학적탐구)를 진행하며,"철학적 탐구"의 책에 대한 리뷰입니다.


인상 깊은 구절

 

우리의 잘못은, 우리가 사실들을 '원현상들'로 보아야 할 곳에서 어떤 설명을 구하는 것이다. 즉, 이러한 언어놀이가 행해지고 있다고 말해야 할 곳에서 말이다. (철학적탐구 p.308)

 

언어놀이를 우리의 체험들에 의해 설명하는 것이 아니라, 언어놀이를 확인하는 것이 중요하다. (철학적탐구 p.308)

 

"그 당시 나는 ......라고 말하려 했다"란 표현의 문법은 "그 당시 나는 계속할 수 있었을 것이다"란 표현의 문법과 근친적이다.
전자의 경우에 그 기억은 의도에 관한 것이고, 후자의 경우에는 이해에 관한 것이다. (철학적탐구 p.310)

 

낱말의 쓰임에서 '표층 문법'이 '심층 문법'과 구별될 수 있을 것이다. 한 낱말의 쓰임에서 우리에게 즉시 각인되는 것은 문장 구성에서 그 낱말이 사용되는 방식, 그 낱말의 쓰임 중ㅡ말하자면ㅡ귀로 파악될 수 있는 부분이다. ㅡㅡ그리고 이제 가령 '뜻하다'라는 낱말의 심층 문법을 우리가 그 낱말의 표층 문법 때문에 추측하게 될 것과 비교하라. 우리들이 훤히 알기가 어렵다는 것을 발견한다 해도 하등 놀라운 일이 아니다. (철학적탐구 p.311)

 

수용적 태도가 어떤 것에 대한 하나의 '지시'라고 불린다면,ㅡ그 지시는 우리가 그것을 통해 얻는 감각에 대한 것이 아니다. (철학적탐구 p.313)

대학교에서 강의로 진행된 아레테고전강독(철학적탐구)를 진행하며,"철학적 탐구"의 책에 대한 리뷰입니다.


인상 깊은 구절

 

분위기의 기술은 특별한 목적들을 위한, 언어의 특별한 적용이다.
(('이해'를 분위기로서, 심적 작용으로서 해석하는 일. 우리들은 모든 것에 대해 어떤 분위기를 덧붙여 구성할 수 있다. '기술 불가능한 성격'.)) (철학적탐구 p.294)

 

"의욕도 하나의 경험일 뿐이다.", 이렇게 우리들은 말했으면 한다. ('의지'도 단지 '표상'일 뿐이라고 말이다.) 그것은 그것이 올 때 오며, 내가 그것을 일으킬 수는 없다.
일으킬 수 없다고?ㅡ무엇처럼? 나는 대체 무엇을 일으킬 수 있는가? 내가 의욕을 이야기할 때, 나는 그것을 무엇과 비교하는가? (철학적탐구 p.295)

 

그리고 우리들은 이렇게 말할 수 있을 것이다. "내가 의욕하려고 결코 시도할 수 없는 한에서만, 나는 언제라도 의욕할 수 있다."

 

행함 자체는 아무런 경험의 부피도 없는 것처럼 보인다. 그것은 연장 없는 점, 바늘의 뾰족한 끝처럼 보인다. 이 뾰족한 끝이 본래의 동작 주체처럼 보인다. 그리고 현상적으로 일어나는 일은 단지 이 행함의 결과처럼 보인다. "나는 행한다"는 모든 경험으로부터 분리된 확정된 뜻을 지는 것처럼 보인다. (철학적 탐구 p.298)

 

사람들이 미래에 대한 예지 가능성에 관해 이야기할 때, 그들은 수의적 운동들이 예언된다는 사실을 늘 망각한다. (철학적탐구 p.301)

 

우리들은 의사가 개진된다고 말했으면 한다. 그러나 여기에도 역시 잘못은 있다. (철학적탐구 p.304)

 


"의욕도 하나의 경험일 뿐이다.", 이렇게 우리들은 말했으면 한다. ('의지'도 단지 '표상'일 뿐이라고 말이다.) 그것은 그것이 올 때 오며, 내가 그것을 일으킬 수는 없다.
 (철학적탐구 p.295)

 

질문: 의욕이 경험일까? 

 

의욕은 '무엇을 하고자 하는 적극적인 마음'을 말하는데 이러한 마음도 경험이라고 말할 수 있는가? 나는 의욕만으로는 경험을 했다고 말하지 않을 것이다. 한 학기가 시작 될 때 어떠한 과목을 A+ 받겠다 라는 의욕은 단지 나의 마음가짐일 뿐이고, 시도조차 하지 않았는데 경험이라고 말하는 것은 아니라고 생각한다. 하지만 어떠한 과목을 A+ 받겠다 라고 의욕을 가지고 과목을 듣기 시작할 때 부터는 경험이라고 말할 것이다.

 

우리들은 의사가 개진된다고 말했으면 한다. 그러나 여기에도 역시 잘못은 있다. (철학적탐구 p.304)

질문: 왜 "의사가 개진된다고 말했으면 한다. " 라고 말하는 것인가?

 

"의사가 개진된다고 말했으면 한다."는 의견이 개진된다고 말했으면 한다와 같은 의미인지 궁금하다. 만약 의견이 개진된다고 말하면 의견이 점차 나아져 발전함 또는 나아지게 발전시킴 인것인가? 지금 글을 적으며 생각을 한 것이 있다. 의견이 점차 나아져 발전함이 맞는 말인 것인가? 질문처럼 "의사가 개진된다고 말했으면 한다." 의 의미를 아직 확실히 잘 모르겠다. 이 문장의 의미를 계속해서 생각해보며 '내적 갈등'을 해볼 것이다.

대학교에서 강의로 진행된 아레테고전강독(철학적탐구)를 진행하며,"철학적 탐구"의 책에 대한 리뷰입니다.


인상 깊은 구절

 

철학적 질병들의 한 가지 주요 원인은 편식이다: 우리들은 자신의 사유를 오직 한 종류의 예들로 먹여 기른다. (철학적 탐구 p.289)

 

언어는 하나의 도구이다. 언어의 개념들은 도구들이다. 이제 우리들은 가령, 우리가 어떤 개념들을 사용하느냐는 큰 차이가 될 수 없다고 생각한다. 우리들은 가령 우리가 어떤 개념들을 사용하느냐는 큰 차이가 될 수 없다고 생각한다.  우리들이 결국 물리학을 미터와 센티미터로도, 피트와 인치로도 할 수 있듯이, 그 차이는 단지 편리성이 차이일 뿐이라는 것이다. 그러나 이것도 참은 아니다 예컨대 어떤 측정 체계에서의 계산들이 우리가 들일 수 있느 것보다 더 많은 시간과노력을 요구한다면 말이다. (철학적 탐구 p.281)

 

개념들은 우리를 탐구로 이끈다. 개념들은 우리의 관심이 표현이며, 우리의 관심을 주도한다. (철학적 탐구 p.281)

 

'내적 과정'은 외적 기준들을 필요로 한다. (철학적 탐구 p.284)

 


언어는 하나의 도구이다. 언어의 개념들은 도구들이다. 이제 우리들은 가령, 우리가 어떤 개념들을 사용하느냐는 큰 차이가 될 수 없다고 생각한다. (철학적 탐구 p.281)

질문: 여기서 '어떤'은 무엇을 뜻하는 말인가?

 

언어는 하나의 도구이다. 사람들이 자신의 생각을 다른 사람들에게 나타내고 전달하기 위해 사용하는 체계, 사물, 행동, 생각, 그리고 상태를 나타내는 체계, 사람들 사이에 공유되는 의미들의 체계, 문법적으로 맞는 말의 집합, 언어 공동체 내에서 이해될 수 있는 말의 집합의 정의를 뜻하는 것 같다.

 

질문: 언어라는 것 자체를 왜 도구 취급을 하는 것인가?

 

언어를 도구 취급하는 이유는 의사소통을 위한 도구라고 생각한다. 우리가 언어로 의사소통을 할때 문법을 잘못 말하거나 발음이 안좋거나 해도 의사소통이 되는 것처럼 말이다. 우리가 언어 없이 이모티콘을 사용하여 말을 대신 하거나, 손짓과 몸짓으로 의사소통이 된다. 이러한 것 처럼 언어도 이모티콘이나 손짓, 몸짓과 같이 도구라고 취급하는 것이다.

 

견해를 지닌다는 것은 하나의 상태이다.ㅡ무엇의 상태? 영혼의? 정신의? 자, 우리들은 무엇에 대해서, 그것이 어떤 견해를 지닌다고 말하는가? 예컨대 아무개 씨에 대해서. 그리고 이것은 올바른 대답이다.
우리들은 그 물음에 대한 대답으로부터 아직 어떠한 해명도 기대해서는 안 된다. 더 깊이 파고드는 물음들은 다음과 같은 것들이다: 특수한 경우에 우리는 무엇을 어떤 사람이 이러이러한 의견을 지니고 있다는 것에 대한 기준으로 보는가? 언제 우리는 그가 그때 이러한 의견에 도달했다고 말하는가? 언제 우리는 그가 그의 의견을 바꾸었다고 말하는가? 등등. 이러한 물음들에 대한 대답들이 우리에게 주는 그림은 여기서 무엇이 문법적으로 상태로서 취급되는가를 보여 준다.
(철할적탐구 p.282)

질문: "무엇이 문법적으로 상태로서 취급되는가를 보여준다." 의 물음에 대한 답변으로 이렇게 말한 이유가 궁금하다.

 

위의 문장에서 아무개씨가 어떠한 문장을 말을 하였다. 우리는 "우리들은 그 물음에 대한 대답으로부터 아직 어떠한 해명도 기대해서는 안 된다. 더 깊이 파고드는 물음들은 다음과 같은 것들이다: 특수한 경우에 우리는 무엇을 어떤 사람이 이러이러한 의견을 지니고 있다는 것에 대한 기준으로 보는가? 언제 우리는 그가 그때 이러한 의견에 도달했다고 말하는가? 언제 우리는 그가 그의 의견을 바꾸었다고 말하는가? 등등." 과 같이 생각을 할 것이다. 아무개 씨가 말한 문장을 자신이 답을 말하지 않는다면 말이다. 이러한 물음에 대한 생각을 하는 동시에 우리는 답도 같이 생각할 것이다. 이러한 것들이 문법적으로 상태로서 취급되는가를 보여준다고 생각한다.

 


'내적 과정'은 외적 기준들을 필요로 한다. (철학적 탐구 p.284)

나도 '내적 과정'은 외적 기준들을 필요로 한다고 생각한다. 우리가 삶을 살면서 외부에 대한 접촉이 없을 순 없다. 다른 사람들과 이야기 하는 것, 디지털매체를 통해 영상을 보거나, 게시물을 보는 것, 사람들과 밥을 먹는 것 등등 모든 것이 외적으로 생활을 한다고 생각한다. 만약 다른 사람과 어떠한 문제를 해결하는데 이 문제가 어려운 것이라고 과정하고 나도 해결하지 못하고 다른 사람이 해결하지도 못한다고 생각하였을 때, 다른 사람이 풀어낸 과정을 나는 그 과정을 다시 풀어 볼 것인데, 다른 사람이 풀어낸 과정이 잘못 되었다고 판단이 되는 것도 외적 기준을 통해 '내적 과정'이 생긴 것이다.

나는 지금까지 살면서 어떠한 친구 덕분에 많은 것을 깨닫게 되었다. 내가 어떠한 주장을 하면 친구는 그 주장에 대해 이야기를 들려 준다. 이러한 이야기를 정답이 아닌 생각을 하게끔 하는 이야기였고, 이러한 이야기를 듣고 난 후 나는 혼자서 곰곰히 생각을 많이 했다고 느낀다. 우리의 사고가 생겨나는 것도 어떠한 일을 겪거나, 그에 대한 이야기를 듣고 깨달는 것이라고 생각한다. 어떠한 일, 그것에 대한 이야기를 듣는 것도 외적 기준이라 생각한다.

대학교에서 강의로 진행된 아레테고전강독(철학적탐구)를 진행하며,"철학적 탐구"의 책에 대한 리뷰입니다.


인상 깊은 구절

한 낱말을 이러한 의미로 듣는다는 것. 그런 어떤 것이 있다는 것은 얼마나 이상한가!
이렇게 표현되고, 이렇게 강조되고, 이렇게 들리면, 그 문장은 이러한 문장들, 그림들, 행위들로의 이행의 시작이다.
((다수의 잘 알려진 길들이 이러한 말로부터 온갖 방향으로 이어진다.))
(철학적 탐구 p.269)

 

어떤 것이 일어나기를 소망하는 것, 그리고 그 동일한 것이 일어나지 않기를 소망하는 것. 이 두 과정 사이의 차이는 무엇인가?
우리들이 그것을 그림으료 묘사하고자 한다면, 우리들은 그 사건의 그림을 가지고 여러 가지를 해 볼 것이다. 즉, 그것에 선을 그어 지우기나 그 주위에 울타리를 두르기 등과 같은 것들을 말이다. 그러나 이는 우리가 보기에는 조야한 표현 방법이다. 낱말 언어에서는 "우리는 아니다"라는 기호를 사용한다. 이것은 서투른 미봉책과 같다. 우리들은 사유속에서는 일이 분명히 다르게 일어난다고 생각한다. (철학적 탐구 p.274)

 

우리들은 가령 이 문장 속에서의 낱말의 기능에 관해 이야기했으면 한다. 마치 문장이 그 속에서 낱말이 특정한 기능을 지니는 하나의 기제인 듯이 말이다. 그러나 이러한 기능은 무엇에 있는가? 그것은 어떻게 백일하에 드러나는가? 왜냐하면 실은 아무것도 숨겨져 있지 않으며, 우리는 실로 그 문장 전체를 보고 있기 때문이다! 기능은 계산법의 운행에서 스스로 들어나야 한다. ((의미체.)) (철학적 탐구 p.278)

 

"낱말의 의미는 의미의 설명이 설명하는 것이다. "즉: "의미"란 낱말의 쓰임을 이해하고자 한다면, 무엇이 "의미의 설명"이라고 일컬어지는가를 살펴보라. (철학적탐구 p.278)

 

개념들은 우리를 탐구로 이끈다. 개념들은 우리의 관심의 표현이며, 우리의 관심을 주도한다. (철학적탐구 p.281)

 


외침과 웃음은 의미로 가득 차 있다, ㅡ 이렇게 나는 말할 수 없는가? 그리고 그것은 대충, 그것들로부터 많은 것을 읽어 낼 수 있음을 뜻한다. (철학적탐구 p.272)

질문: 왜 외침과 웃음은 의미로 가득차 있다 말할 수 없는가?

 

나는 외침과 웃음은 의미로 가득차 있다고 말할 것이다. 외침은 '큰 소리를 지르는 일', '의견이나 요구 따위를 강력하게 주장하는 일' 로 표현 하는데 '의견', '요구' 가 의미가 있다고 생각한다. 주변이 시끄러워 나의 의견이나 요구를 들어 주기 위해  외침을 하거나, 학생회장과 같은 직위를 가진 사람들이 의견이나 요구를 말하는 것이라고 생각한다. 또한 웃음은 행복해서 웃거나, 슬프지만 웃거나, 헛웃음 등등 이 있는데, 이러한 행복, 슬픔, 헛웃음 모두 의미가 가득차 있다고 생각한다.

 

그런데 내가 "이다"란 낱말은 상이한 두 의미로 (계사와 등호로) 사용된다고 말하면서, 그것의 의미가 그것의 쓰임ㅡ즉 계사와 등호로서의 쓰임ㅡ이라고 말하지 않았다면 한다는 것은 이상하지 않는가?
우리들은 이 두 종류의 쓰임이 하나의 의미를 낳지 않는다고, 같은 낱말에 의한 직무 통합은 비본질적인 우연이라고 말했으면 한다. (철학적탐구 p.279)

질문: 왜 같은 낱말에 의한 직무 통합이 비본질적인 우연이라고 말하는가?

 

같은 낱말이어도 쓰임에 따라 의미가 달라진다고 생각한다.

 

부정에 대해 "X"와 "Y"라는 두 개의 상이한 말이 있는 어떤 언어를 생각하라. 이중"X"는 긍정을 낳지만, 이중 "Y"는 강조된 부정을 낳는다. (생략) (철학적탐구 P.276)

질문: 강한 부정은 긍정이라는 말이 있는데, 강한 긍정이 부정이 되는 경우가 있는가?

 

우리가 힘들 때, SNS에 게시물을 올릴 때 힘들다고 올릴 수 도 있지만, 힘든 것을 감추기 위해 다른 글을 적거나, 빗대어 말을 할 것이다. 예를들어 '나는 힘들다'라고 올리지 않고 '나는 행복하게 살고 있다' 라고 올리는 것처럼 말이다. 강한 부정이면 부정일수록, 긍정을. 강한 긍정이면 긍정일수록, 부정을. 인간의 근본적인 심리와 원리가 그렇게 만든다라고 생각한다.

대학교에서 강의로 진행된 아레테고전강독(철학적탐구)를 진행하며,"철학적 탐구"의 책에 대한 리뷰입니다.


인상 깊은 구절

 

 

우리들은 이렇게 말했으면 한다: "그것이 좋은 근거인 것은, 오직 그것이 그 사건의 발생을 실제로 개연성 있게 만들기 떄문이다. 말하자면 그것이 실제로 그 사건에 어떤 영향을 끼치기 때문, 그러니까 말하자면 경험적인 영향을 끼치기 때문이라는 말이다. (철학적탐구 p.255)

 

경험에 의한 정당화는 끝이 있다. 만일 끝이 없다면, 그것은 정당화가 아닐 것이다. (철학적탐구 p.255)

 

"언어가 없으면 우리는 서로 의사소통할 수 없을 것이다", 이건 아니다ㅡ그러나 필시: 언어가 없으면 우리는 다른 사람들에게 이러이러하게 영향을 줄 수 없다, 도로와 기계들을 건설할 수 없다, 기타 등등이다. 그리고 또한: 말과 글의 쓰임 없이는 사람들은 의사소통할 수 없을 것이다. (철학적탐구 p.257)

 

우리들은 문법규칙들을 "자의적"이라 부를 수 있다; 이것이, 문법의 목적은 단지 언어의 목적이라면 말이다.
어떤 사람이 "우리의 언어가 이러한 문법을 지니고 있지 않다면, 그것은 이러한 사실들을 표현할 수 없을 것이다"라고 말한다면ㅡ우리들은 여기서 "할 수 있을 것이다"가 무엇을 의미하는지를 자문해야 할 것이다. (철학적탐구 p.259)

 


우리들은 이렇게 말하려고 한다. 즉, 명령이란 그에 따라 수행된 행위의 그림이라고. 그러나 또한, 그에 따라 수행되어야 할 그림이라고 (철학적탐구 p.265)

질문: 명령이 결과를 만들어낸 행위, 그리고 과정을 만드는 행위란 뜻이 동일한 뜻인가?

 

나는 다르다고 생각한다. 예를 들어 군대에서 간부가 용사한테 '산을 밀어라'라고 명령을 하는 것이 산을 미는 과정을 만드는 행위가 아닌 결과를 만들어내는 행위라고 생각하고, 부모님이 나에게 '커피를 타줘'라고 말(명령)을 했을 때, 내가 커피를 컵에 타는지, 그릇에 타는지, 집에서 타는지, 다른 장소에서 타는지 등등의 과정을 만드는 행위가 아닌 단지 '커피를 타줘'라는 결과를 만들어내는 행위라고 또한 생각한다. 

 

나는 내 손가락이 책상을 건드리면 어떤 저항을 감지할 것이라고 가정할 어떤 근거들을 갖고 있는가? 어떤 근거들이 있어, 이 연필이 내 손에 꽂히면 고통스러울 것이라고 믿는가?ㅡ내가 이렇게 묻는다면, 수백 가지의 근거들이 앞다퉈 나타난다. "어쨌든 나는 그것을 몸소 무수히 경험해 왔다; 그리고 비슷한 경험들에 관해 똑같은 정도로 자주 들어 왔다; 만일 그게 그렇지가 않다면, .....할 것이다; 등등."

질문: 저항이라는 언어를 고통이라고 해석하는 것인가?

 

국립국어원 표준국어대사전에 저항은 '어떤 힘이나 조건에 굽히지 아니하고 거역하거나 버팀', 고통은 '몸이나 마음의 괴로움과 아픔'이라고 나와있듯이 나도 저항을 고통이라고 해석하는게 맞지 않다고 생각한다. 

대학교에서 강의로 진행된 아레테고전강독(철학적탐구)를 진행하며,"철학적 탐구"의 책에 대한 리뷰입니다.


인상 깊은 구절

 

명령과 수행 사이에는 어떤 틈이 있다. 그 틈은 이해를 통해 메워져야 한다.
이해에서 비로소 그것은 우리가 이것을 해야 한다는 것을 뜨한다. 명령ㅡ그것은 그야말로 단지 소리, 잉크 자국일 뿐이다.ㅡ                            (철학적탐구 p.241)

 

모든기호"는 혼자서는 죽어 있는것으로 보인다. 무엇이 기호에 생명을 주는가? ㅡ 쓰임에서 그것은산다. 그것은 거기에서 자신 속에 생명의 숨을 받아들이는가?ㅡ 또는 쓰임이 그것의 숨인가? (철학적탐구 p.241)

 

계획은, 계획으로서는, 충족되어 있지 않은 어떤 것이다. (소망, 기대, 추측 등과 같이 말이다.) 그리고 여기서 내가 뜻하는 바는, 기대는 그것이 어떤 것에 대한 기대이기 때문에 충족되어 있지 않다는 것이며, 믿음, 의견은 그것이 ‘어떤 것이 사실이다, 현실적인 것이다, 생각함의 과정 밖에 있는 것이다’라는 의견이기 때문에 충족되어 있지 않다는 것이다.
(철학적탐구 p.243)

 

우리가 "왜"라는 물음을 억제할때, 비로소 우리는 중요한 사실들을 종종 알아차리게 된다;  그러면 우리의 탐구에서 그것들은 우리를 어떤 대답으로 인도한다. (철학적탐구 p.252)

 


모든 기호는 혼자서는 죽어 있는 것으로 보인다. 무엇이 기호에 생명을 주는가?ㅡ쓰임에서 그것은 산다. 그것은 거기에서 자신 속에 생명의 숨을 받아들이는가?ㅡ또는 쓰임이 그것의 숨인가? (철학적탐구 p.241)

질문: 기호를 사용하는 방법 이외에 기호에 숨을 불어 넣을 수 있는 방법이 있을까?

 

+,-,x,/ 처럼 수학적 기호를 보면 우리는 어떤 의미인지 바로 알아 차릴 수 있다. 이러한 기호가 쓰임으로 생명(숨)이 생긴다고 생각한다. 철학적탐구에서 문장과 문장 사이에 ㅡ 라는 기호를 많이 볼 수 있는데, 책을 읽으면서 나는 아무 생각 없이 읽었었다. 공동탐구를 진행하면서 교수님이 문장과 문장 사이의 ㅡ 기호가 어떤 의미인지 이야기 하였는데, ㅡ 의 의미는 강조나 부가 설명 또는 예를 들기 위하여 중간에 어구를 삽입하는 경우, 문장 안의 다른 어구들과 구분하기 위해 해당 어구의 앞뒤에 쉼표를 쓰는데 쉼표 대신 줄표를 쓸 수 있다. 삽입한 어구 안에 쉼표가 있을 때에는 삽입한 어구의 앞뒤에는 쉼표를 쓰지 않고 줄표를 써야 한다.(위키백과 참조) 라고 한다. 우리는 ㅡ 기호를 사용하지 않고 예를 들어, 또한, 또는 등으로 표현을 한다. 하지만 영어에서는 예를 들어, 또한, 또는 등을 사용하지 않고 ㅡ 기호를 사용하여 표현한다고 한다.

+ Recent posts