전체 글 259

[정보 보안] 세션 하이재킹(Session Hijacking)

[ 세션(Session) 이란? ] > 사용자와 컴퓨터, 또는 두 대의 컴퓨터 간의 활성화된 상태를 말한다. [ 세션 하이재킹(Session Hijacking)이란? ] > 두 시스템 간 연결이 활성화된 상태, 즉 로그인(Login)된 상태를 가로채는 것을 뜻한다. [ TCP 세션 하이재킹(Transmission Control Protocol Session Hijacking)이란? ] > TCP가 가지는 고유한 취약점을 이용해 정상적인 접속을 빼앗는 방법. TCP는 클라이언트와 서버 간 통신을 할 때 패킷의 연속성을 보장하기 위해 클라이언트와 서버는 각각 시퀀스 넘버를 사용한다. 이 시퀀스 넘버가 잘못되면 이를 바로 잡기 위한 작업을 하는데, TCP 세션 하이재킹은 서버와 클라이언트에 각각 잘못된 시퀀스..

[정보 보안] 스푸핑(Spoofing) 공격

ARP 스푸핑 > ARP (Address Resolution Protocol) Spoofing은 MAC 주소를 속이는 것. 즉, MAC주소를 속여 LAN에서의 통신 흐름을 왜곡시킨다. 공격자는 클라이언트와 서버에게 서로 통신하는 상대방을 공격자 자기 자신의 MAC 주소로 속인다. 이로 인해 서버와 클라이언트는 공격자에게 각각 패킷을 보낸다. 공격자는 각자에게 받은 패킷을 읽은 후 서버가 클라이언트에게 보내고자 하던 패킷을 클라이언트에게 보내고, 클라이언트가 서버에게 보내고자 하던 패킷을 서버에게 보내준다. 윈도우의 CMD에서 [ arp -a ] 명령을 이용해 ARP 테이블을 확인할 수 있다. ARP 테이블에는 현재 인지하고 있는 IP와 해당 IP를 가지고 있는 시스템의 MAC 주소 목록을 확인할 수 있다..

[정보 보안] 스니핑(Sniffing) 공격

스니핑 공격 > 스니핑 공격은 수동적(Passive) 공격입니다. > 스니핑 공격을 할 때 2계층과 3계층 정보를 이용한 필터링은 방해가 되기 때문에 필터링을 해제합니다. 이 때 2, 3계층에서의 필터링을 해제하는 랜 카드의 모드를 프러미스큐어스 모드(Promiscuous Mode)라고 합니다. 스위치 재밍 공격 > 스위치의 주소 테이블의 기능을 마비시키는 공격입니다. ( = MACOF 공격) > 스위치에 랜덤한 형태로 생성한 MAC을 가진 패킷을 무한대로 보내면, 스위치의 MAC 테이블은 저장 용량을 넘어 원래의 기능을 잃습니다. SPAN 포트 태핑(Port Tapping) 공격 > SPAN은 포트 미러링(Port Mirroring)을 이용합니다. > 포트 미러링(Port Mirroring)이란? : ..

[정보 보안] 서비스 거부(Dos) 공격_2

[ 자원 고갈 공격형 ] { 동적 HTTP Request Flooding 공격 } > 웹 방화벽을 통해 특징적인 HTTP 요청 패턴 차단 기법을 우회하기 위해 지속적으로 요청 페이지를 변경하여 웹 페이지를 요청하는 기법 { Smurf 공격 } > Smurf(스머프) 공격은 ICMP 패킷과 네트워크에 존재하는 임의의 시스템들을 이용하여 패킷을 확장시켜서 서비스 거부 공격을 수행하는 방법 > 네트워크를 공격할 때 많이 사용 > 다이렉트 브로드캐스트 사용 { Mail Bomb 공격 } > 스팸 메일도 해당하며, 흔히 폭탄 메일이라고 함. > 메일 서버는 각 사용자에게 일정한 양의 디스크 공간을 할당하는데, 메일이 폭주하여 디스크 공간을 가득 채우면 받아야 할 메일을 받을 수 없음. { 분산 서비스 거부(DDo..

[정보 보안] 서비스 거부(Dos) 공격

[ 취약점 공격형 ] { Boink, Bonk, TearDrop 공격 } > TCP의 신뢰성 있는 연결을 위한 기능 - 패킷의 순서가 올바른지 확인 - 중간에 손실된 패킷이 없는지 확인 - 손실된 패킷의 재전송 요구 > 프로토콜은 이러한 사항이 확인되지 않는 데이터 전송에 대해 신뢰도를 확보하기 위해 반복적인 재요청과 수정을 함. > Boink, Bonk, TearDrop은 모두 이러한 반복적인 재요청과 수정을 공격 대상이 계속하게 함으로써 시스템의 자원을 고갈시키는 공격. > 이러한 공격들은 시스템의 패킷 재전송과 재조합(Reassembling)에 과부하가 걸리도록 시퀀스 넘버를 속임. (TCP 패킷 안에는 각 패킷이 데이터의 어느 부분을 포함하고 있는지를 표시하기 위하여 시퀀스 넘버가 기록되어 있음...

[정보 보안] OSI 7 Layer

[ OSI 7 Layer ] 1. 물리 계층 : 전기적, 기계적, 기능적, 절차적 - UTP, RJ-45 2. 데이터링크 계층 : 링크제어, 오류제어, 흐름제어. (Point to Point) - Ethernet, HDLC, PPP, F/R - PPTP(M/S), L2F(Cisco), L2TP(IETF) 3. 네트워크 계층 : 최적의 경로 설정 - IP, ICMP, IGMP, ARP, RARP - IPSec 4. 전송 계층 : 신뢰성 있는 전송. (End to End) - 전송제어, 오류제어, 흐름제어, 다중화 - TCP, UDP 5. 세션 계층 : 대화 제어, SSL(Secure Socket Layer) / TLS (443번 포트) 6. 표현 계층 : 암호화, 부호화, 압축 - MPEG2/4 (동영상)..

[ 암호학 ] 일방향 해시 함수

CIA ? : 기밀성, 무결성, 가용성 (Confidentiality / Intergrity / Availability) 무결성? : 파일이 변경되지 않았다. (밤새 맬로리가 파일을 변경했는지 어떤지를 조사하고 싶으면 어제 저장한 파일을 안전한 곳에 저장하고 오늘 불러온 파일과 동일한지 비교하면 된다.) 문제점 : 안전한 곳이 과연 있을까? 파일 전체가 너무 크면 검사가 불가 => 파일의 “지문”(해시) 이 필요 **파일의 단 한글자만 바뀌어도 해시값은 변한다. > 파일을 해시함수에 넣으면 해시가 나온다. > 어제 만든 파일을 해시함수에 넣어 해시를 추출, 오늘의 파일의 해시와 비교! > P/W도 직접 암호화하는 것이 아니라 해시값을 사용하여 /etc/~~~에 저장한다. 실습 : [ 파일의 해시 값 확인..

[ 암호학 ] 공개키 암호 Q & A

공개 키 암호의 기밀성 의문 : 공개 키 암호는 대칭 암호보다도 기밀성이 높은가? 답 : 이것만으로는 답할 수 X. 키의 비트 길이에 따라 기밀성의 정도가 변화하기 때문. 공개 키 암호와 대칭 암호의 키 길이 의문 : 1024비트 길이의 키를 갖는 공개 키 암호와 128비트 길이의 키를 갖는 대칭 암호 중 어느 쪽이 안전한가? 답 : 공개 키 암호와 대칭 암호의 키 길이는 비교 불가하다. 대칭 암호의 미래 의문 : 공개 키 암호가 생겼기 때문에 대칭 암호가 필요가 없다? 답 : 아니다. 목적에 따라 다름. 공개 키 암호는 느리고, 긴 메시지가 불가하기 때문. RSA와 소수 의문 : RSA의 키 쌍을 모두가 만들면 소수가 모자라지 않을까? 답 : 512비트는 10의150승 말도 안되게 많다. 소수가 모자랄..

[ 암호학 ] 공개 키 암호_3 (RSA)

1) N을 구한다 (작으면X) 큰 소수 2개(p,q)를 준비, N = p*q (ex.2,3,5,7,11,13, ...) 의사난수 생성기로 p와 q를 구한다 2) L을 구한다 (L은 키 쌍을 생성할 때만 등장하는 수이다) L은 RSA의 암/복호화에 사용X, 키 쌍을 만들 때 임시로 사용 L = lcm(p-1, q-1) (L은 p-1과 q-1의 최소공배수) 3) E를 구한다 1 gcd(E,L) = 1이 되는 수 E를 선택. 예시로 5 선택 5) D 구하기 => E*D mod L = 5 * 29 mod 144 = 145 mod 144=1 D=29 ==>> 공개 키 : (E, N) = (55, 323) / 개인 키 : (D, N) = (29, 323) 암호화 평문은 N=323보다 ..

[ 암호학 ] 공개 키 암호_2 (RSA)

공개키 암호 RSA 알고리즘 > RSA란 무엇인가? : 공개 키 암호 알고리즘 중 하나. > RSA의 어원 : Rivest, Shamir, Adleman이 공개 키 암호 알고리즘인 RSA를 발표. > 공개키를 사용한 메시지 전송 : 밥(Bob)의 공개키와 개인키 (둘은 한 쌍이다.) > RSA의 응용 : 공개 키 암호 / 디지털 서명 / 키 교환 RSA 실습 ( 실습 환경 : 우분투(Ubuntu) ) 1) 1024 Bit의 개인키 만들기. openssl 명령어로 1024비트의 개인키를 생성한다. 2) 개인키로부터 공개키를 만든다. (개인키와 공개키는 한 쌍이기 때문) 3) cat 명령어로 privatekey.pem 개인키를 확인한다. (일반 텍스트 파일로 만들어져 있는 것을 확인 가능) 4) cat 명령..