- Today
- Total
프로그래밍 농장
네트워크 본문
Access control
객체 [object]: 접근 대상 (시스템, 서비스)
주체 [subject]: 객체나 객체 내의 데이터에 대한 접근을 요청/시도하는 개체
접근 [Access]: 주체의 객체에 대한 활동
■ 접근 통제의 개념
주체(외부에서 접근하는 사람, 시스템)가 접근 대상이 되는 객체(시스템)에 접근할 경우 보안상의 위협, 변조 등과 같은 위험으로부터 보호하기 위함.
■ 접근 통제/접근 제어 절차
1단계: 식별 [Identification]
- 접근하려는 주체의 신원을 분별하는 단계
- 사용자 이름, 계정 번호
2단계: 인증 [Authentication]
- 식별된 주체의 신원을 검증/증명하는 단계
- 패스워드, 생체인증, 스마트 카드
3단계: 인가 [Authorization]
- 인증된 주체의 접근 허용의 범위를 규정하고 권리를 부여하는 단계
- ACL, 보안등급
4단계: 책임추적 [Audict]
- 인가된 주체가 시스템에 어떤 행위를 했는지에 대한 감사 단계
■ 접근통제/접근제어의 기본 원칙
직무분리 [Separtion of duty, SoD]
- 업무의 발생, 승인, 수정, 확인, 완료 등이 처음부터 끝까지 한 사람에 의해 처리될 수 없게 하는 보안 정책
- 공모(collusion)에 대한 대응 방안
- 보안 ↔ 감사
- 개발 ↔ 운영
최소권한 [Least privilege policy]
- 허가 받은 일을 수행하기 위한 최소 권한만을 부여
- Need to Know
사용자 인증
□ 사용자 인증 vs 메시지 인증
사용자 인증 [user authentication] | 메시지 인증 [message authentication] | |
인증대상 | 식별정보 | 메시지 |
인증시각 | 실시간 처리 | 지연 처리 가능 |
인증 반복 | 세션 당 1회 인증 | 세션에서 교환되는 모든 메시지 인증 |
□ 사용자 인증 유형
설명 | 예 | |
지식 | 주체가 그가 알고 있는 것을 보여줌 | 패스워드 , PIN |
소유 | 주체가 그가 가지고 있는 것을 보여줌 | 스마트카드, OTP |
존재/특징/생체 | 주체는 그를 나타내는 것을 보여줌 | 생체인증 |
행위 | 주체는 그가 하는 것을 보여줌 | 서명 |
Two Factor | 위 4가지 중 2개 인증 메커니즘 결합 | OTP + PIN |
Multi Factor | 위 4가지 중 3개 이상을 결합 | OTP + PIN + 지문인식 |
■ 지식 기반 사용자 인증
- 지식 기반의 보안성은 비밀번호의 길이와 랜덤성에 의존한다.
① 고정된 패스워드
패스워드를 그대로 저장하지 않고 패스워드의 해쉬값을 저장/관리
사전 공격에 대응하기 위해 salt 값 사용
② 일회용 패스워드
도청/도난에 대하여 고정된 패스워드 사용보다 안전함
동기식/비동기식
③ 영지식 인증 [zero-knowledge proof]
주체는 객체에게 자신의 비밀을 노출하지 않으면서 그 비밀을 알고 있다는 사실만을 증명
- Fiat Shamir 프로토콜
- Feige Fiat Shamir 프로토콜
- Guillou Quisquater 프로토콜
BOB은 동굴 문의 열쇠를 갖고 있다.
1: Alice는 동굴 밖에 있다.
2: Bob은 동굴로 들어간 후 a 방향 또는 b 방향 중에서 하나를 선택해 들어간다.
3: Alice가 동굴로 들어가 Bob에게 a방향 또는 b 방향으로 나오라고 한다.
4: Bob이 문의 열쇠를 갖고 있다면 해당 방향에서 나온다.
Fiat shamir protocol
□ 패스워드 보안 정책
① 패스워드 생성 정책
└ 최소 8자리 이상의 문자 사용
└ 4가지 유형의 문자 (대/소문자, 숫자, 특수문자)를 조합하여 구성
└ 쉽게 예측 가능한 문자 사용 금지: 연속된 숫자, 생년월일, 전화번호, 사전에 나온 단어
② 패스워드 갱신/변경 정책
└ 주기적인 패스워드 갱신
└ 패스워드 구성
└ 동일한 패스워드 재사용 금지
③ 로그인 실패 횟수를 제한하도록 임계치 설정
④ 패스워드 저장 시 일방향 암호화(one way function, 1 way function, one-way function) 알고리즘 사용
□ I-PIN [Internet Personal Identification Number]
- 인터넷 상에서 주민등록번호를 대신하여 아이디와 패스워드를 이용하여 본인 확인하는 수단
- 주민등록번호 유출 예방
- 2015년 3월 해킹 발생
■ 소유자 기반 사용자 인증
① 메모리 카트 [토큰]
② 스마트 카드
└ ISO 7816
└ 부채널 공격
③ 일회용 패스워드 [OTP]
└ 비동기식: challenge response
└ 동기식: 시간 동기화 방식, 계수기 동기화 방식
■ 개체 특성 기반 사용자 인증
생체 인증 기술 평가 항목
- 보편성, 유일성, 지속성, 성능
- 획득성: 정량적인 측정이 가능한가?
- 수용성: 사용자의 거부감은 없는가?
- 기만성: 고의적인 부정사용으로부터 안전한가?
종류
- 지문
- 손바닥 인식
- 손 기하학
- 손 위상 기하학적 인식
- 망막 인식
- 홍체 인식
- 서명 동작 인식
- 키보드 동작 인식
- 성문 인식
- 얼굴 인식
※ 성문 인식 < 서명 동작 인식 < 키보드 동작 인식 < 손바닥 인식 (수용율 높음)
※ 얼굴 인식 < 지문 인식 < 손바닥 인식 < 손 기하학적 인식 < 망막 인식 (수용율 낮음)
■ 생체 인증 정확도
부정 거부율
- Type I 에러
- 시스템이 허가된 사용자의 접근을 거부하는 비율
부정 허용율
- Type II 에러
- 시스템이 거부해야할 사용자의 접근을 허용하는 비율
※ CER [Crossover Error Rate], 교차 요류율 (중요)
인공지능을 통해 사람이 결정하는것을 인공지능이 해결해준다. > 이것에 대한 신뢰성을
CER / 교차 요류율 / crossover
대체 특성 / CER 지수 / 효율성
개체 특성 / 수용성 순위
통합 인증 / SSO / Single Sign ON / 운영절차 / 시스템 인증 / 통합 로그인 솔루션
- 침입탐지 시스템에서 signature 란, 공격 정의 파일
■ 통합 인증 체계
kerberos / 커버로스 / KDC / 인증서버 / AS / Authentication
커버로스: 티켓 기반 인증 프로토콜
구성/KDC (KDC: key를 배포하는 센터)
① 인증서버(AS, Authentication server)
② 발급서버 (TGS, Ticket granting server)
단점
① 서비스의 가용성은 보호하지 않는다, KDC
② KDC가 단일실패(Single Point Of Failure: SPOF) 지점이 될 수 있다
③ KDC는 패스워드 추측 공격에 취약하다
④ 네트워크 트래픽은 커버로스에 의해 보호 받지 못한다
⑤ 사용자가 자신의 패스워드를 변경하면 개인키가 변경된다.
└ 개인 패스워드 > kpw 생성, 개인키 = CBC-MAC(Kpw, PW)
접근통제모델
■ 강제적 접근 통제 [MAC: Mandatory Access Control]
MAC의 종류
1. Medium Access Control: 데이터 통신 layer2
2. Message Auth Code: 메시지 인증에 사용: 자신의 키로 해시값을 만들어 중간에 오류가 있는지 검증
3. Mandatory Access Control: 강제적 통제 모델 (벨라파둘라가 대표적)
객체에 대한 주체의 권한을 근거로 접근을 통제:
객체가 얼마나 민감하고 중요한지를 나타내는 보안라벨과 어떤 주체가 특정 객체에 접근 가능한지를 나타내는 보안 허가증을 비교한다.
특징:
① 객체 및 주체의 등급은 관리자만이 설정/변경할 수 있다
② 매우 엄격한 보안 적용
③ 중앙 집중식 관리
■ 임의적 접근 통제 [DAC: Discretionary Access Control]
주체의 신원과 객체에 대한 접근 규칙을 근거로 접근 통제
ACL (Acess Control List) 사용하여 구현 > 대표적으로 유무선 공유기 내에 MAC 주소 단위로 정리되어 있음. 세부기록이 가능.
특징:
① 객체의 소유자, 생성자가 접근 여부를 결정할 수 있다
② 하나의 주체가 복수의 객체에 접근하려 할 때, 각각의 객체에 대한 접근 권한을 부여 받아야 한다
■ 역할기반 접근 통제 [RBAC: Role Based Access Control]
직급에 따라 역할을 설정하고, 관리자는 주체의 역할을 할당하고, 객체마다 접근 가능한 역할이 지정된다.
위의 두 모델: 임의적 접근 통제 방식의 단점과 강제적 접근 통제 방식의 단점을 보완했다.
주체의 인사이동이 잦은 조직에 적합하다.
특징:
① Role based model: 조직에서의 내 역할에 의한 설정
② Task based model: 조직에서의 임무에 의한 설정
③ Lattice based model: 주체와 객체의 관계에 의거하여 접근 가능한 upper bound/lower bound(Lattice)를 설정하여 접근 제어
벨라파둘라 모델 vs 비바 모델
벨라파둘라 모델은 기밀성을 강조한 모델로, 준수사항으로는,
① no read up: 주체는 같거나 낮은 보안 수준의 객체만을 읽을 수 있다.
② no write up: 주체는 같거나 높은 보안 수준의 객체만을 쓸 수 있다.
비바 모델은 무결성(Integrity)을 위한 상업용 모델 > 비인가자들의 데이터 변형 방지만을 취급하는 모델이다.
합법적인 사람이 불법적인 수정을 하는것을 방지한다.
■ 보안모델 (시험에 나옴)
1) 벨라파둘라 모델 [BLP: Bell LaPadula Confidentiality Model]
- 기밀성을 강조한 모델
- 주체는 보안허가(security clearance)를 가지고 객체는 보안분류(security classification)를 갖는다.
- MAC 시스템 벨라파둘라 모델을 근간으로 한다
접근모드
① 읽기: 주체는 객체에 대해 오직 읽기 접근만을 허용한다
② 추가: 주체는 객체에 대해 오직 쓰기 접근만을 허용한다
③ 쓰기: 주체는 객체에 대해 읽기와 쓰기 접근이 허용된다
④ 실행: 주체는 객체에 대해 읽기/쓰기 접근이 허용되지 않으며 실행을 위해 객체를 호출할 수 있다
준수사항
① no read up: 주체는 같거나 낮은 보안 수준의 객체만을 읽을 수 있다.
② no write up: 주체는 같거나 높은 보안 수준의 객체만을 쓸 수 있다.
2) 비바 무결성 모델 [Biba Integrity Model]
- 문서의 변경을 막는 것. 변형이 되지 않도록 하는것이 핵심.
- 무결성(Integrity)을 위한 상업용 모델 > 비인가자들의 데이터 변형 방지만을 취급
- 비인가자가 수정하는 것을 방지
- 내/외부 일관성 유지(=정확한 트랜잭션)
- 합법적인 사람이 불법적인 수정을 방지하는 것이 목적(=직무분리)
접근 모드
① 변경: 객체에 있는 정보를 쓰거나 갱신
② 관찰: 객체의 경로를 읽기
③ 실행: 객체를 실행
④ 호출: 한 주체에서 다른 주체로 통신
운영/정책
① 단순 무결성 (no read down): I(S) >= I(O)
- 주체의 무결성 수준이 객체의 무결성 수준보다 우세할 때 객체로부터 데이터를 읽을 수 없다.
- 무결성 수준이 낮은 객체로부터 얻은 정보를 바탕으로 무결성 수준이 높은 객체를 수정하는 행위를 미연에 방지한다.
② 무결성 제한 (스타 무결성, no wirte up): I(S) <= I(O)
- 주체의 무결성 수준이 객체의 무결성 수준보다 열세할 때는 객체에 데이터를 쓸 수 없다 (= 수정이 불가능하다)
③ 호출 속성
- 첫번째 주체의 무결성 수준이 두번째 주체의 무결성 수준보다 우세할 때에만 첫번째 주체가 두번째 주체를 호출할 수 있다
3) 클락 월슨 모델 [Clark Wilson Model]
- 무결성을 강조한 모델
- 접근의 3요소(주체, 객체, 프로그램) 임무분할(separation of duty) 감사(auditing)을 통해 무결성을 제공
- 주체는 허가된 프로그램을 통해 객체에 접근
Firewall
#Traffi Control : FireWall
- 아파트 내에 불이 번지는 것을 막기 위해 아파트 사이에 놓인 벽돌담 (=방화벽)
- 통과하는 트래픽에 보안과 감사를 적용할 수 있는 둘 이상의 네트워크 사이에 위치한 좁은 단일 체크포인트
Firewall objectives&nbsp;
침입자, 악성 코드 및 원치 않는 트래픽이나 정보가 들어오지 않도록 방지.
기밀 및 민감한 정보를 보관.
#Without Firewalls Nodes: [방화벽 없음]
- 보안되지 않은 서비스가 노출
- 외부로부터의 탐사와 공격에 노출
- 새로운 공격에 무방비 상태가 될 수 있다
- 네트워크 보안은 호스트 보안에 전적으로 의존하며 모든 호스트가 통신하여 높은 수준의 보안을 달성하는 것은 거의 불가능.
※ Untact, remote working enviroment: 원격 근무시 근무자 컴퓨터의 보안 수준에 의한 회사 서버 시스템이 위협 받는 상황.
#Common Firewall Feature [방화벽 기능]
- 외부에서는 전용 네트워크에 대한 라우팅 정보를 확인할 수 없음.
- traceroute 및 ping -o가 내부 호스트를 볼 수 없음. (ICMP 기반 공격(ping of death attack)에 대한 최선의 방어 방법은 ICMP 패킷을 차단하는 것).
ping of death attack : 거부조건의 pc에 핑을 1초에 다수를 만들어서 쏜다 -> pc는 이에 대한 시스템자원을 과도하게 소비하게 되는 공격
- 내부 호스트에 로그온하려는 사용자는 먼저 방화벽 시스템에 로그온해야 함.
※ Accessibility, Security 두개의 벨런스를 맞추는 것은 불가능하다. 하나는 낮을수밖에 없다
#Firewall Advantages [방화벽 장점]
- 정책 발표
- 집중 보안
- 강화된 사생활
- 취약한 서비스에 대한 보호 (protection for vulnerable services)
- 사이트 시스템에 대한 통제된 액세스 (제한적 접근) → ACL 적용시 허용된 규칙만 접근 가능
- 네트워크 사용, 오용에 대한 로깅 및 통계 (중앙집중적 보안관리)
■ Controlled Access [제한적 접근]
- 사이트는 특별한 경우를 제외하고 호스트에 대한 외부 액세스를 금지할 수 있음.
- 액세스가 필요하지 않은 호스트에 대한 액세스를 승인하지 않음.
- 일부 호스트는 외부에서 연결할 수 있으며 일부는 연결할 수 없음. (ACL: Access Control List)
- 어떤 호스트는 외부에 도달할 수 있고, 어떤 호스트는 도달할 수 없음.
■ Concentrated Security [집중 보안]
- 모든 호스트 보안보다 저렴한 방화벽.
└ 방화벽에서만 모든 또는 대부분의 수정된 소프트웨어 및 추가 보안 소프트웨어 (많은 호스트에 배포할 필요 없음)
- 다른 네트워크 보안(예: kerberos)은 각 호스트 시스템의 수정을 포함.
■ Enhanced Privacy [강화된 보안]
- 무해한 정보조차도 공격자들에 의해 사용될 수 있는 단서를 포함.
└ 예: Finger Command (UNIX/LINUX):
└ 사용법: finger [option] .. [user name] .. [user@host]
└ 사용자 계정에 대한 정보 및 이메일이 예약된 작업을 읽은 마지막 로그인 시간
- Infer
└ 시스템 사용빈도, 활성 사용자, 로그인 이름/이메일 주소가 무엇인지 주의를 끌지 않고 시스템 공격 가능 여부.
■ Pilicy enforcement [보안 정책 실행]
- 네트워크 접근 정책 구현 및 시행 평균.
- 사용자 및 서비스에 대한 접근 제어.
└ 지식이 풍부한 사용자가 트래퍽을 터널링하여 방화벽의 정책 향상을 무시할 수 있음.
└ collusion/malware로 인한 우회 회기 설치, etc...
■ Restricted Access to Desireable Services
- 사용자가 원하는 서비스를 차단할 수 있다 (ex: 텔넷, FTP, X windows, NFS, etc...)
- 균형 잡힌 보안 정책이 필요하다.
- 호스트 액세스 제어에서도 유사한 문제가 발생할 수 있다.
- 네트워크 토폴로지가 방화벽 설계에 맞지 않을 수 있다 (ex: 주요 게이트웨이에서 안전하지 않은 서비스)
- 웹 프록시를 통한 이전 서비스.
- 다른 솔루션(ex: 커베로스)를 조사해야한다.
■ BackDoors [백도어]
- 대형 네트워크의 레거시 네트워크 토폴로지.
- 방화벽이 사이트 백도어로부터 보호되지 않음. (ex: 사이트에 대한 제한 없는 모뎀 엑세스가 여전히 허용되는 경우 공격자는 방화벽을 통해 이동할 수 있다_영화 메트릭스의 탈출법)
■ Data-Driven Attacks
① Viruses
- 바이러스에 감염된 개인 컴퓨터 프로그램을 다운로드하는 사용자.
② Executable Content (실행 가능한 컨텐츠)
- Java applets
- Active X Contrlols
- JavaScript, VBScript
③ End to End Encryption
④ Tunneling/Encapsulation
■ ISSUES
- 처리량: 잠재적인 병목 현상 (모든 연결이 방화벽을 통과해야 함)
- Single Point of Failure(SPOF): 보안을 한 곳에만 집중한다면, 위태로운 보안은 재앙임을 의미.
- 복잡성: 특징 블로트 (새로운 위협이 나타날때마다 새로운 정책 및 대응 방안이 인스톨되어 복잡도 증가)
- 방화벽에서 제대로 작동하지 않는 서비스도 존재.
- 표준 성능 측정 또는 기술의 부족.
■ Firewall DMZ Environment
- 두 개의 방화벽을 연결하는 네트워크에서 생성될 수 있다.
- 내부 네트워크에서 두 방화벽 사이의 서브넷
└ 외부 방화벽이 외부 위협으로부터 DMZ를 보호
└ 내부 방화벽이 내부 네트워크를 DMZ로부터 보호
■ Honeypot [미끼, Decoy]
- Honeypot의 예제 -
- 해커의 움직임을 연구하기 위해 사용되는 침입탐지 기술
- 네트워크 또는 클라이언트에 존재하는 가상 머신
- 목표:
└ 가능한 실제처럼 보여야 함.
└ 다른 시스템에 대한 대규모 공격에 사용되는지 모니터링해야 함.
└ 해커가 관심 있는 파일을 포함해야 함.
배스천 호스트는, 강력한 defensive mechanism system 네트워크 사이의 게이트웨이 역할을 수행한다.
허니팟은 virtual 머신에 가까운 시스템 , attack에 대한 정보수집 및 미끼역할만을 수행하는 더미 시스템이다.
■ Firewall enviroment-VPN Enviroment
- VPN은 여러 네트워크 간에 보안 네트워크 링크를 제공하는데 사용됨.
- VPN은 기존 네트워크 미디어 및 프로토콜 위에 구축됨.
- 프로토콜 수준에서의 IPsec이 첫번째 선택.
- 기타 프로토콜은 PPTP, L2TP
② Circuit level
③ Application level
④ Stateful multilayer
□ ① Packet filter
- Packet Filtering -
- 패킷 필터링 방화벽은 비용이 저렴하고 네트워크 성능에 미치는 영향이 적음.
- 각 패킷은 전달하기 전에 일련의 기준/비교.
- OSI 모델의 네트워크 수준에서의 작업
└ payload가 아닌 IP 및 TCP/UDP 헤더만 검사.
UDP를 공격하는 툴 : 많은양의 트래픽(데이터정보 보내서)을 발생시키는 방식을 이용 해서 상대방의 타겟시스템을 오작동하게 만드는 방법만 존재함
※ 패킷 필터링 방화벽
① 상태 비저장 필터링: 구현은 쉽지만 매우 간단함.
- 필터링: 정적 규칙 집합을 적용해 모든 패킷 검사/이전 패킷의 결과 보관 x
- 사용되는 일련의 규착을 ACL [Access Control List]라고 함 (위에서 아래로 규칙 확인, 발견된 첫번째 규칙 적용)
- 일치하는 규칙이 없으면 패킷은 기본적으로 차단됨.
② 상태 저장 필터링: 구현이 어렵지만 더 강력함.
- 상태 비저장 필터링보다 뛰어남 (내/외부 호스트 간의 연결 상태 추적)
- 연결 상태를 기준으로만 허용/사용 불가능 (상태 비저장 필터와 결합)
- 메모리 및 CPU 시간 요구 사항에 유의해야 함 (연결 추적은 비용이 많이 듦)
□ ② Circuit level
- 게이트웨이는 OSI ㅁ노델의 세션 계층 또는 TCP/IP의 TCP 계층에서 작동.
- 패킷 간의 TCP 핸드셰이킹을 모니터링하여 요쳥된 세션이 합법적인지 확인.
- 기본 구조:
└ 내/외부 호스트 간 TCP 연결 릴레이
└ 내/외부망 직접 연결 불가
└ 유효한 연결을 위해 테이블을 유지하고 테이블에 대해 들어오는 패킷을 확인
□ ③ Application level
- 자원집약적.
- 프록시라고도 하는 Application level 게이트웨이는 Application별 게이트웨이라는 점을 제외하면 Circuit level 게이트웨이와 유사. (외부 고객의 서비스 요청 처리, 내부 호스트 프록시 역할)
- 웹 프록시로 구성된 게이트웨이는 FTP, gopher, Telnet 또는 다른 트래픽의 통과를 허용하지 않는다.
-모든 패킷에 대해 패킷 심층점검 실시.
└ 응용 프로그램 형식 검사
└ 페이로드를 기반으로 규칙 적용
└ 악의적이고 의심스러운 패킷을 탐지할수 있는 기능 보유
④ Sateful Multilayer
- 상태 저장 다층 검사 방화벽은 다른 세 가지 유형의 방화벽 측면을 결합한.
- 네트워크 계층에서 패킷을 필터링하고 세션 패킷이 합법적인지 여부를 확인하며 애플리케이션 계층에서 패킷의 내용을 평가.
Example of Firewalls
Bastion Hosts
■ Single - Homed Bastion System
내부 네트워크의 2가지 영역
- 내부 영역 [Inner zone]: 외부에서 호스트에 연결할 수 없음.
- 외부 영역 [outer zone]: 인터넷에서 호스트 연결.
내부 영영의 호스트는 bastion 호스트와 PF 라우터에 의해 보호됨.
PF 라우터에 의해 보호되는 외부 영역의 서버.
PF 라우터가 손상되더라도 내부 네트워크에 대한 액세스를 차단한다.
#Dual-Homed Bastion System
내부 네트워크의 두 영역:
- 내부 영역: 외부에서 호스트에 연결할 수 없습니다.
- 외부 영역: 인터넷에서 호스트에 연결할 수 있습니다.
- 내부 영역에 있는 호스트는 기본 호스트와 PF 라우터에 의해 모두 보호.
- PF 라우터로 보호되는 외부 영역의 서버
- PF 라우터가 비꼬인 경우에도 내부 네트워크에 대한 액세스를 방지.
#Screened Subnets
- 내부 네트워크를 위한 두 번째 PF 라우터와 짝을 이룬 SHBH 네트워크.
- 두 PF 라우터 사이의 영역을 스크리닝 서브넷이라고 함.
- 외부 호스트에서 내부 네트워크 구조를 숨김.
Illusion of prevention
- 예방 기술: first line of defense
- 기술: 암호화, 식별, 인증, 액세스 제어, 보안 필터 등...
- 로컬 및 네트워크 리소스 보안
※ 문제점: 손실이 발생
착각을 일으키는 요인
- 제도상의 많은 보안법.
- 보안 시스템은 비싸다.
- 보안 시스템이 사용자에게 친숙하지 않음
- 안전한 시스템에 여전히 결함이 있음
- 내부 위협
- 해커의 기술과 도구가 향상됨
침입 통제 필요
Intrusion Prevention [침입 방지]: 시스템 리소스 보호.
Intrusion Detection [침입 탐지]: (2차 방어선) 침입 시도를 일반적인 시스템 사용과 구별(방어).
Intrusion Recovery [침입 복구]: 비용 효율적인 복구 모델.
용어
Audit [감사]: 사용자/시스템 동작의 영향 또는 수집된 데이터를 조사하는 활동.
Profiling [프로파일링]: 사용자 또는 시스템을 검토하여 일반적으로 수행하는 작업을 결정합니다.
Outsider [외부인]: 시스템에 대한 접근 권한을 가진 사람
Outsider [내부자]: 시스템에 대한 액세스 권한이 있는 사람
Insider [침입]: 외부인과 내부자에 의한 오용
- Anomaly vs Misuse -
Anomaly [이상]: 비정상적인 행동 ( Whitelist based )
Misuse [오용]: 보안 정책을 위반하는 활동 (Blacklist based )
침입 단계
- Intelligence gathering
- Planning
- Attack
- Hiding
- Future attacks
시간 단위의 침입 탐지
- 실시간 침입 탐지
이점:
초기 단계에서 침입을 탐지할 수 있다 피해를 제한할 수 있다
단점:
시스템 성능을 저하시킬 수 있음
처리 속도와 정확성 사이에서 절충하다.
부분 공격을 탐지하기 어렵다.
감사 데이터
IDS
□ Profiles based IDS
통계 기법
이용자료 수집 및 통계 분석
Anomaly/Misuse 기반 탐지에 적합하다
- Anomaly based: 정상 동작에 대한 표준이다. 편차가 감지될 경우 경고!
- Misyuse based: 식별된 공격 단계가 감지될 경우 경고!
□ Rules based IDS
- 규칙 기반 기술:
정상적인 동작 또는 알려진 공격을 설명하는 규칙 정의
Anomaly based/Misuse based 탐지 모두에 좋다.
- Anomaly based: 이전 사용에서 벗어난 점을 찾음.
- Misuse based: 알려진 공격을 나타내는 규칙을 정의함
□ Anomaly Detection Techniques
Need:
- 모니터링할 기능 선택
- false-positives 및 false-negatives를 위한 양호한 임계값 수준
- 시스템 프로파일 메트릭스를 추적하고 업데이트하는 효율적인 방법
□ Misuse Detection Techniques
- 전문가 시스템 (시험출제)
- 모델 기반 추리
- 상태 전이 분석
- 중립적 네트워크
Types of Intrusion Detection
1. Misuse based detection
유해한 활동의 "알려진 패턴"을 찾는다.
Adv.
- 낮은 경보 속도:
- Misuse based는 매우 정확하다.
- 처리속도: 발견된 규칙과 미리 정해진 규칙만 비교하기 때문에 빠르다.
2. Anomaly based detection
□ Hybrid Misuse / Anomaly Detection
Anomaly & Misuse 탐지가 함께 접근.
ex:
- 핵을 이용한 브라우징은 오남용이 아니라 변칙적일 수 있다.
- 중요한 파일에 액세스하는 관리자가 비정상적이지는 않지만 잘못 사용될 수 있음.
- 시스템에서 감사할 수 있는 활동에 대한 공격 (ex: 암호 추측)
- 시도 횟수가 임계값보다 낮음
- 공격이 지속된다
- 모든 대상 포함
- 접근성 확보
□ Mesquerading
□ Diversionary Attacks
□ Coordinated Attacks
- 여러 시스템을 좀비pc로 만들어 협동공격을 진행한다.
□ Chaining
개인정보보호법(개인정보, 계좌) 등이 높은 나라의 서버를 이용해 공격을 진행한다.
> 스위스 같은 경우 개인정보보호법이 매우 강력하기 때문에 정보를 주지 않기 때문
Intrusion Recovery
- - 침입 복구
- 침입으로 인한 추가 손실을 방지하기 위한 조치
- 침입을 중지하고 재발로부터 보호하다.
기초한 재건법.
침입 기간
영향 기간 중 합법적인 사용자에 의해 변경됨
정기 백업, 영향을 받는 구성 요소에 대한 감사 추적 기반 탐지, 세매닉 기반 복구, 복구를 위한 최소 롤백
■ 네트워크 계층
식별자 [identifier]
라우팅 [routing]:
- 패킷이 근원지에서 목적지까지 전달될 수 있도록 전체 경로를 결정.
포워딩 [forwarding]:
- 라우터 상의 하나의 인터페이스에 패킷이 수신될 때, 라우터가 취하는 동작.
- 전체 경로상에서 next hop을 결정하는 동작.
- FIB (Forwarding Information Base) 테이블 사용.
□ 네트워크 계층: IPv4 address
class prefixes | 구성 (class 구분: 네트워크 id, 호스트 id) |
설명 | |
A | 0 | 1bit: 7 / bit: 24bit | 2^24-2개의 호스트 구성 가능. 대규모 호스트를 갖는 기관에 적합. |
B | 10 | 2bit: 14 / bit: 16bit | 2^16-2개의 호스트 구성 가능. |
C | 110 | 3bit: 21bit / bit: 8bit | 2^8-2=254개의 호스트 구성 가능. 소규모 네트워크에서 사용. |
D | 1110 | 4bit: 구분 없음 | 네트워크 주소와 호스트 주소에 구분이 없다. 멀티캐스트용으로 사용됨. |
E | 1111 | 4bit: 예약된 주소 | 예약주소. |
□ 네트워크 계층: private IPv4 [32bit address length]
클래스 | 범위 | |
A | 10.0.0.0~ | 10.255.255.255 |
B | 172.16.0.0~ | 172.31.255.255 |
C | 192.168.0.0~ | 192.168.255.255 |
IETF는 RFC1918을 통해 사적인 주소공간으로 인터넷과 연동되지 않는 독립된 네트워크에 다음과 같은 주소를 권고한다.
※ Public routing 식별자로 사용될 수 없으며, 내부 네트워크에서만 사용되는 주소.
□ 네트워크 계층: IPv4 주소의 주소 고갈 해결책
서브네팅 [subnetting]
- 클래스 A,B,C에 속한 host들을 여러개의 subnet으로 구성해 관리.
- 넷 마스크를 이용하여 구분.
슈퍼네팅 [supernetting]
- 주어진 넷마스크에서 네트워크 주소 영역을 호스트 주소 영역으로 포함시키는 것을 의미.
- 여러개의 네트워크가 하나의 주소로 묶인다.
- 라우팅 정보를 함축적으로 표현.
- 여러개의 네트워크를 포함하는 하나의 네트워크를 표현
※ subnet: 통으로 된 network를 n개로 쪼개는 것.
└ subnet이 많이 나타나면 비용이 증가한다. 최소 n개의 라우터가 필요하기 떄문에.
※ IP 주소(32bit) = 네트워크 주소(n) + host 주소(32-n)
□ 네트워크 계층: 서브넷팅
서브넷팅 & 서브넷 마스크 [subnet mask]
- 네트워크 주소와 호스트 주소를 구별하는 구별자 역할.
- 32bit의 IP 주소 중 첫번쨰 비트부터 몇번째 비트까지 네트워크 주소로 할 것인지 지정. (해당 비트들의 값을 모두 1로 설정하고 나머지 비트들은 모두 0으로 설정한다)
- IP 주소에 서브넷 마스크 값을 AND 비트연산한 결과 값으로 네트워크 주소를 확인.
□ 네트워크 계층: 수퍼네팅
슈퍼네팅 [supernetting]
- 주어진 넷마스크에서 네트워크 주소 영역을 호스트 주소 영역으로 포함시키는 것을 의미
- 여러개의 네트워크가 하나의 네트워크 주소로 묶인다.
- 라우팅 정보를 함축적으로 표현하는데 사용.
- 여러개의 네트워크를 포함하는 네트워크를 표현하는데 사용.
□ 네트워크 계층: 특수 IP 주소
- this - host 주소
0.0.0.0/32
host가 ip 데이터 그램을 보낼 때, 자신의 주소를 모를 경우 사용한다.
ex) 소스주소 = 0.0.0.0, 목적지 주소 = 255.255.255.255로하여 DHCP discover 전송.
- 제한된 브로드 캐스트 주소
255.255.255.255/32
- 루프백 주소
127.0.0.0/8
이 주소를 가진 패킷은 호스트를 벗어나지 않고 호스트에 남게 됨.
주로 스프트웨어의 테스트 목적으로 사용됨.
- 사설주소
10.0.0./8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16
□ Ex of using the all-zeros address
호스트가 IPv4 패킷을 전송해야 하지만 자기자신의 주소를 모르는 경우.
ex) 새로 아이패드를 삼 -> 어떠한 configuration network가 없음 -> 인터넷을 하기위해서 주소를 직접 넣거나, 네트워크에서 주소를 받아야한다. -> 대부분의 유무선 공유기가 주소를 줄수있는 사설주소) address pool을 가지고있다 -> 이떄 나에게 ip주소를 주세요 라고 할떄 쓰여짐 ( DHCP 일떄 )
DHCP (Dynamic Host Configuration Protoccol) request:
- Source MAC = PC, Dest. MAC = DHCP server
- Source IP = 0.0.0.0, Dest.IP = 255.255.255.255
- 우리집의 공유기가 전부 이것을 받아서 새로들어와서 IP주소를 받는다는것을 알수있다. -> 이후 DHCP response를 날림
DHCP response: 아래와 같이 source는 DHCP(자신)의 서버주소, 도착지로는 사용항 IP주소를 return 해준다.
- Source MAC = DHCP server, Dest. MAC = PC
- Souce IP = DHCP IP, Dest. IP = allocated IP address
※ 컴퓨터를 구매했는데 configuration이 하나도 안되어있을 경우 사용한다..
□ Ex of Limited Broadcast Address
All one Address: (255.255.255.255)
나는 내 네트워크에 누가있는지 모르기떄문에, 네트워크상의 모든노드가 받기를 원할떄 사용
-> 목적지가 255.255.255.255로 발생된 모든 패킷이 전부 받음 -> dhcp request를 확인하고 -> dhcp response가 가능하면 response를 수행하거나, 그것이 불가는하면 버림 ( ' 모든 노드가 다 받음' )
- 하나의 세션으로 모든 노드에게 전송 : 하나의 브로드캐스트 패킷을 모든 모드가 수신
- 다른 모든 호스트에게 메시지를 전송하려는 호스트에서는 사용할 수 있음.
- 하나의 호스트 라우팅 > 서브넷 라우터를 통과하지 않는다.
-> bad guy가 특정 패킷에서 브로드캐스트 패킷을 이용한 정보의 업데이트라는 거짓정보를이용해서 cache를 오염시키는 문제 : broadcast storm problem(issue) : 해결방안이 원천적으로는 없다.
ex) 자율주행차 : 앞의 도로가 문제없는데 사고가 났다는 fake event를 날려서 정보를 악용
--> broadcast packet은 절대 암호화가 되면 안된다.
단점: 한명한명에게 다 얘기해야 하기 떄문에 시간이 걸린다. 정확성, 신뢰성이 없다.
장점: 시간이 짧고 통신하는 횟수가 적다. 프로세싱이 준다. (1대1 통신 : 정확하다, 신뢰성이 높다 )
□ ARP (Address Resolution Protocol)
- ARP
목적지 노드의 IP 주소를 알고 있을 때, 그 목적지 경로상의 next hop 노드의 IP에 대한 MAC 주소를 알고자할 경우에 사용하는 프로토콜. : 호스트들이 사용할수있는 프로토콜 : 브로드캐스트를 이용
- MAC
제품 생산시, 네트워크 카드마다 고유하게 부여됨. (physical address)
48 bit의 유니크한 주소:
상위 24bit > 하드웨어 제작사 고유 번호
하위 24bit > 제작 회사의 제품 serial 번호
- ARP Cache
- 모든 시스템은 자신의 네트워크 범위에 있는 호스트들의 IP 주소와 매칭되는 MAC 주소를 캐싱
- address system에는 특정한 ip주소에 매핑되는 mac 주소를 저장하고있다 -> why? -> 매번 arp를 돌리는것이 반복적이기떄문에 이와 같은 수행을 회피하기위해서 패킷이들어오면, arp cache lookup을 통해서 entry가 있으면 변환해서 나감. 아닐경우 arp request를 수행.
Initial communication latency 감소가 목적 (편의상 관리의 간소화를 위해 subnet router의 IP to MAC 주소 바인딩 정보만을 캐싱)
- 윈도우 명령:
arp -a: ARP 테이블 확인
arp -s: 정적으로 arp 테이블 만들기
arp -d : 삭제
- 4 Cases Using ARP -
case 1 : sender와 reciever가 같은 공간에 있을떄 : 내가 reciever pc의 mac주소를 알고 싶을떄 (receiever의 ip주소를 넣어서 전송)
case 2 : sender와 receiever가 다른 공간에 있을떄 .: 내가 reciever pc의 mac주소를 알고 싶을떄 ( 서브넷이 다르기 떄문에 직접보낼수 없음 -> why? (브로드캐스트패킷은 라우터를 넘어갈수없음 -> 결국 나의 라우터의 mac주소를 물어보는 arp request를 수행한다.
case 3 : sender가 위치한 공간의 라우터가 reciever가 위치한 공간의 라우터에게 패킷을 전달할떄 ( 목적지가 sender의 서브넷과 다르다 -> forawrding table lookup 수행 -> next node가 라우터인것을 확인 -> receiever 라우터의 mac주소가 필요하다 -> )
case 4 : sender가 위치한 공간의 라우터가 reciever에게 전달할떄 ( destination address를 직접 타겟주소로 하여 보냄 -> mac주소를 파악 -> 라우터가 직접 frame을 만들어서 전송할수있게된다. )
□ ICMP (Internet Control Message Protocol)
- 목적
인터넷상의 노드 간에 사항이나 통신제어를 위한 메시지를 보고하게 할 목적으로 만들어진 프로토콜
네트워크상에 노드의 상태정보를 리포트하기 위해서 만들어진 프로토콜
- 주요기능
네트워크 상의 에러 보고 > 데이터 전송 오류 보고 (Status report)
네트워크 혼잡 보고 > 라우터가 받는 속도만큼 빠르게 처리하지 못하면 천천히 보내도록 유도
트러블 슈팅: 두 노드간에 문제 파악
타임아웃 보고: TTL 값이 0이면 패킷 폐기
- 대표적인 응용 프로그램: ping, tracert / traceroute
- 공격 패킷의 형태로 자주 사용됨
■ 유니캐스트, 멀티캐스트, 브로드캐스트, 애니캐스트
- 유니캐스트 [Unicast]
- 하나의 송신자가 다른 하나의 수신자에게 데이터를 전송한다. (1 : 1)
- 유니캐스트 주소는 단일 인터페이스(호스트)를 정의한다.
- 멀티캐스트 [Multicast]
- 하나의 송신자가 같은 서브네트워크 상의 모든 수신자에게 데이터를 전송한다.
- 브로드 캐스트 IP 주소는 호스트 필드의 비트 값이 모두 1인 주소를 의미한다.
- 라우팅 프로토콜이나 ARP 등의 특수 목적을 위해 사용된다.
- 브로드캐스트 [Broadcast]
- 하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 한번에 데이터를 전송하는 방식 > 중복 전송 방지를 위한 효율성 중대.
- 헤더에 수신자들이 참여하고 있는 그룹 주소를 표시해 전송 > D 클래스 IP 주소. (224.0.0.0 ~ 239.255.255.255)
- IPv6는 브로드캐스트를 멀티캐스트의 특수한 경우로 처리한다.
- 애니캐스트 [Anycast]
- 멀티캐스트는 그룹의 모든 호스트들에게 패킷을 전달하는 반면에 애니캐스트는 단일 주소를 공유한 호스트들의 그룹에 포함된 호스트들 중에 가장 가까운 호스트에게 패킷을 라우터에서 선택해 전송.
- 패킷을 수신한 호스트는 그룹에 속한 다른 호스트들에게 패킷을 중계.
- IPv6 기본 전송 방식 중 하나. IPv4에서는 사용되지 않음.
- 불특정 다수에게 보내서 1 response가 오는것
■ TCP [Trnasmission Control Protocol]
- 연결형 (connection-oriented)의 TCP는 신뢰성 보장 프로토콜 (Reliable Transport)
- IP 헤더의 프로토콜의 번호 6번 사용
- 필수 프로토콜
- 특징
- 프로세스 대 프로세스 통신 (IP주소 + 포트번호 > 소켓주소)
- 연결지향 서비스
- 순서제어
- 흐름제어(Flow Control): 전송률을 제어 > 16비트 윈도우 크기
- 오류제어
- 혼잡제어
※ TCP와 UDP의 차이점: TCP는 연결지향형 서비스(Connection Oriented) 는 비연결형 서비스(Connectionless)이다.
데이터를 보내기 전에 TCP connection을 setup하고 설정된 connection을 위해 data segment가 전송된다.
1~2= UDP, TCP 공통
3~6= TCP only
RST: AN이 유효함을 표시 / RST: 연결을 reset 하도록 지시 / SYN: 연결 시작을 나타내기 위해 사용 / FIN: 연결을 종료하도록 지시
(in -inorder delivery)
- 몇번 세그먼트가 손실됐는지 파악하기 위한 수단 => sequence Number => Flow control(전송량 조절), error control(세그먼트가 손실되었을떄 이를 제어하는 기능), congestion control 모두 수행되는 기본 파라미터
- 내가 전달한 세그먼트까지 잘 전달됐는지 확인하기 위한 수단 => acknowledgement number
- segment가 management와 관련됐는지 확인 => TCP Flags
순서: TCP는 기본적으로 연결을 설정함. (TCP connection setup) => 데이터 전송이 이루어짐 => 연결종료
연결 설정은 Three-way handshaking 과정을 통해서 연결이 이루어짐.
1. Client에서 Server로 SYN segment 전송
2. Server에서 Client로 SYN segment + ACK segment 전송
3. Client에서 Server로 ACK segment 전송 => 2번에서 서버가 전송한 SYN를 잘 받았다고 recall 해주는 것.
※ 서로 다른 정보가 하나의 패킷으로 전송되는것을 Piggyback(등에 태우다)이라고 함
TCP SYN Timeout
Three-way handshaking <->TCP 연결 설정 (무조건 해야하는 것)
SYN을 전송하면 ACK가 2초 내에 응답을 해야한다.
SYN은 5번까지 시도가 가능하다.
flooding attack
대응책 / 해결책 / 해결방법 / 차선책
Q: TCP SYN flooding attack은 어떻게 막을 수 있는가?
A: 위협의 레벨을 낮추는 것이 일반적이다. => Win10에선 1초 내에 응답하도록, 2번까지 시도하도록 함.
packet을 사용하기 전 port가 열려있는 상태인지 아닌지 따짐.
port가 닫힌 경우 => Three-way handshaking 과정이라는 것
#TCP 연결: 연결설정, 데이터 전송, 연결 종료
- 흐름 제어 (Flow Control)
- 수신하는 애플리케이션이 읽는 속도, 송신자가 전송하는 속도를 같게 하는 과정 -> 수신 측 버퍼에 오버플로우가 일어나지 않도록 관리
- 송신자에게 수신 측에 가용한 버퍼가 얼마나 되는지 알려줌
- TCP 슬라이딩 윈도우 (sender가 가지고 있는 윈도우 크기와 수신자의 recieve window(rwnd)값을 비교해 최소값으로 맞춰 윈도우 크기를 동적으로 조절하는 것)
- TCP는 수신자의 윈도우 값(rwnd, receive window)과 송신자의 cwnd 전송 윈도우 값을 비교해 최소값의 크기만큼만 전송을 진행
- TCP는 패킷 하나하나가 전달되었음을 확인하기 위한 피드백(acknowledgement)를 받아야하며 만약 패킷이 중도에 잘못되었거나 분실되어 확인 받지 못하는 경우, 해당 해킷을 재전송한다.
- 슬라이딩 윈도우는 수신자로부터 ACK를 전송 받지 않고 보낼 수 있는(outstanding) 데이터의 양을 나타냄.
- TCP에서 연결 상태 관리를 위한 리소스가 필요함.
- UDP에 흐름 제어 메커니즘이 없음.
- UDP 트래픽 볼륨의 경우 많은 종류의 방화벽이 dns와 관련되지 않은 모든 udp 트래픽을 삭제함.(udp 공격 도구 구현).
- TCP 트래픽의 경우 트래픽 볼륨이 아닌 지능형 공격 종류가 채택됨. (SYN flooding attack, a volume of HTTP request)
# DNS [Domain Name Service]
호스트의 도메인 이름과 <-> 호스트의 네트워크 주소를 매핑하는 것을 관리.
- DNS의 유형 3가지
Primary Name Server
- 도메인의 소유권을 가지고 있는 서버 > 실제 도메인 네임, 네트워크 주소에 대한 정보를 처리/매핑
- 자신이 관리하는 zone에 대한 데이터를 시스템의 로컬 파일에서 가져와 서비스 제공
Secondary Name Server
- Zone에 대한 정보를 네트워크를 통해서 다른 서버로부터 받아와 DNS 서비스 제공
- 도메인에 대한 Backup-copy 유지
- zone transfer: 다른 Secondary name server로 zone에 대한 정보를 전달하는 절차
- 결론: primary 속의 overload를 줄여주는 것.
캐시 서버
- 모든 캐시 서버는 DNS 서비스 결과를 자신의 캐쉬에 저장함
- NS record: DNS 영역을 네임 서버와 연관.
→ 지정된 권한 있는 이름 서버를 사용하도록 DNS 영역을 위임하는데 사용
→ 실제 smu.ac.kr 정보를 기억하는게 아닌, ac 혹은 kr 도메인의 정보를 기억
- A record: 호스트 이름을 IP 주소에 매핑
→ 호스트 이름을 호스트의 IP 주소에 매핑하는 데 사용.
DNS 서버는 한번 검색한 결과는 메모리의 캐시에 기록.
같은 정보가 요청되면 캐시에 있는 정보를 전송. 이 캐시에는 유효기간 (Time To Live: TTL)이 정해져 있어 유효기간이 지나면 캐시에서 삭제된다 (dns 캐시는 2 시간 ~ 48시간 → 유효기간이 길다. )
DNS 캐시가 2시간 ~ 48시간으로 유효기간을 가지기 때문에 거짓된 정보로 DNS 캐시를 만든다. > DNS 캐시가 만들어지기 때문에 다른 유저가 DNS request를 보냈을때 DNS 캐시를 통해 잘못된 IP 주소가 전달된다. > 정상적인 시스템이 인위적인 주소로 패킷을 보내게된다. > 중간에 악의적인 사용자가 정보를 바꾸거나 복사한 후 전달해준다.
Fake Request를 계속해서 보내게 되면 캐시가 Overflow되어 Flooding attack이 될 수 있다. > 정상적인 사용자들이 캐시를 사용하지 못한다. > DNS Request가 막힌다.
#DHCP란
- 동적으로 IP주소, 도메인 이름, 디폴트 게이트웨이 주소(default gateway address), 서브넷마스크(subnetmask) 등 정보를 자동으로 설정될 수 있게 만들어주는, 즉 클라이언트에게 제공해주는 프로토콜
- 클라이언트 부팅 시 DHCP 서버가 설정해둔 IP 주소 범위 내에서 IP 주소를 할당 받고 사용이 종료되면 할당 받은 IP를 반납한다.
└ 클라이언트는 별도의 네트워크 설정 없이 네트워크 접속 가능
└ IP 주소를 여러 대의 호스트가 사용할 수 있다.
#DHCP 특징
- 4계층 프로토콜로서 UDP 67/68번 포트 사용
- DHCP 메시지는 고정길이 필드(58bit) 사용
- 사용자는 자신의 MAC 주소를 제공하고 DHCP 서버로부터 자신이 사용할 IP 주소, 서브넷 마스크, 게이트웨이, DNS 제공 받음.
- DHCP는 관리자의 구성에 요구되는 작업을 자동으로 처리하므로 네트워크 세팅이 편리하고 IP 주소의 효율적 관리가 가능하다.
DHCP BOOTP 차이점
BOOTP: 원격 디스크(저장매체)를 관리를 위한 프로토콜
※ BOOTP와 DHCP의 차이점
BOOTP는 사전에 MAC 주소와 IP 주소를 매핑한 바인딩으로 구성되어있다. 바인딩 정보에 연결되지 않은 서비스에는 IP 주소가 할당되지 않는다. DHCP는 등록없이 동적으로 IP 주소를 할당이 가능하다.
DHCP의 기본동작은 DHCP의 서버 주소를 알아내기 위한 과정 뒤에 주소를 요청 후 DHCP request로 이루어짐.
#TELNET: 원격접속프로토콜
- ISO에서 제안한 가상 터미널 서비스 표준
- TCP 방식 사용
- 전송되는 데이터가 모두 평문(plaintext)으로 전송 > 보안 취약 > SSH (Secure Shell) 사용으로 대체
- 암호화되지 않고 전송된다.
#rlogin: 원격접속프로토콜
- BSD Unix에서 제공하는 원격 로그인 프로토콜
- TELNET에 비해 단순함
- 보안 문제로 인해 사용 감소 추세
#SSH (Secure Shell)
- 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 혹은 프로토콜.
- 기존의 rsh, rlogin, Telnet(텔넷)등을 대체하기 위해 설계됨