Chapter 8 Authorization CAPTCHA Chapter 8 Authorization
Chapter 8 Authorization Turing Test 1950년 Alan Turing에 의해 제안 사람이 사람과 컴퓨터에게 동일한 질문을 던진다.(둘은 서로 상의하지 않는다) 만약 질문하는 사람이 사람과 컴퓨터로부터의 대답을 구분할 수 없다면 컴퓨터는 시험을 통과한 것이다. 인공 지능 분야에서의 기준(gold standard) 오늘날까지 어떤 컴퓨터도 이 기준을 통과하지 못했다. Chapter 8 Authorization
Chapter 8 Authorization CAPTCHA CAPTCHA Completely Automated Public Turing test to tell Computers and Humans Apart Automated 시험이 컴퓨터에 의해 만들어지고 채점된다. Public 프로그램과 데이터는 공개 Turing test to tell Computers and Humans Apart 사람은 통과할 수 있지만 기계는 통과할 수 없다. Chapter 8 Authorization
Chapter 8 Authorization CAPTCHA 모순(Paradox) “…CAPTCHA는 컴퓨터 자신이 만들고 채점하는데 자신은 통과할 수 없다…” “…많은 교수와 비슷(???)…” CAPTCHA는 사람들이(컴퓨터가 아니라) 자원을 접근하는 것을 제한하는데 사용된다. CAPTCHA는 접근 제어에서 유용한 도구이다. Chapter 8 Authorization
Chapter 8 Authorization CAPTCHA는 어디에 사용? 원래의 의도: 최고의 전산학과를 선정하는데 자동 “bots”가 무더기로 투표하는 것을 막는데 사용 무료 email services 스패머들이 bot를 사용하여 수천개의 이메일 계정에 등록하는 것을 막는다. CAPTCHA는 오직 인간 만이 계정을 가질 수 있도록 한다. 검색 엔진에 의해서 자동적으로 인덱스되는 것을 원치 않는 사이트들 HTML 태그는 오직 “나를 인덱스하지 마시오”라고만 말할 수 있다. CAPTCHA는 사람이 개입되도록 한다. Chapter 8 Authorization
Chapter 8 Authorization CAPTCHA: 게임의 법칙 인간이 통과하기는 쉬워야 한다. 기계가 통과하기에는 힘들거나 불가능해야 한다. 심지어 CAPTCHA software 조차도 이 게임에서 오직 알려지지 않은 것은 몇 개의 무작위(random) 숫자들 뿐이다. 몇몇 사람들이 한 가지 유형의 문제를 통과하지 못한 경우를 대비해서 여러 다른 CAPTCHA를 준비하는 것이 바람직하다. 시각 장애인은 시각 테스트를 통과하지 못한다, 등등. Chapter 8 Authorization
Chapter 8 Authorization CAPTCHA가 존재하는가? Test: 다음에서 두 개의 단어를 찾으라. 대부분의 인간에게는 쉽다. 하지만 기계는 어렵다. (OCR 문제) Chapter 8 Authorization
More Examples
Chapter 8 Authorization CAPTCHAs 현재 CAPTCHA의 유형 Visual 앞의 예와 같은 것들 여러 다른 것들이 존재 Audio 왜곡된 단어나 음악 텍스트 기반의 CAPTCHAs 아마 이것은 불가능할 듯… Chapter 8 Authorization
Chapter 8 Authorization CAPTCHA와 인공 지능(AI) 왜곡된 텍스트를 컴퓨터가 인식하는 것은 AI의 도전적인 과제이다. 하지만 인간은 이 문제를 풀 수 있다. 왜곡된 소리에 대해서도 동일하다. 인간은 이것도 쉽게 풀 수 있다. 이러한 CAPTCHA를 풀 수 있는 해커는 어려운 AI 문제를 풀 수 있었다. 해커의 노력을 좋은 일에 사용하도록 하자! Chapter 8 Authorization
Chapter 8 Authorization Firewalls Chapter 8 Authorization
Chapter 8 Authorization 방화벽(Firewall) Internal network Internet Firewall 방화벽은 네트워크 내부로 무엇이 들어가고 무엇이 나갈 것인가를 결정한다. 네트워크에 대한 접근 제어 Chapter 8 Authorization
Chapter 8 Authorization 방화벽 용어들 표준 용어는 없다. 방화벽의 유형 패킷 필터 네트워크 계층에서 동작 Stateful 패킷 필터 수송 계층(transport layer) Application proxy 응용 계층 개인 방화벽 개인 사용자, 홈 네트워크 등 Chapter 8 Authorization
Chapter 8 Authorization 패킷 필터(Packet Filter) 네트워크 계층에서 동작 다음과 같은 정보를 사용하여 필터링한다. Source IP address Destination IP address Source Port Destination Port Flag bits (SYN, ACK, etc.) Egress or ingress Application Transport Network Link Physical Chapter 8 Authorization
Chapter 8 Authorization 패킷 필터 장점 속도 단점 상태를 기억하지 않는다 – 각 패킷은 다른 패킷과 독립해서 별도로 처리된다. TCP 연결을 볼 수 없다. 응용 데이터를 볼 수 없다. – 따라서, 많은 바이러스가 포함된 패킷이 통과할 수 있다. Application Transport Network Link Physical Chapter 8 Authorization
Chapter 8 Authorization 패킷 필터 Access Control Lists (ACLs)에 의해 구성 앞에서 언급한 ACL과는 다른 의미 Action Source IP Dest IP Source Port Dest Port Protocol Flag Bits Allow Inside Outside Any 80 HTTP >1023 ACK Deny All Chapter 8 Authorization
Chapter 8 Authorization TCP ACK 스캔 공격자는 3-way handshake 없이 ACK 비트를 세팅하고 패킷을 보낸다 이것은 TCP/IP 프로토콜을 위반하는 것이다. ACK 패킷은 패킷 필터를 통과한다. 현재 연결 설정이 진행 중인 것으로 보여진다. 이 패킷을 받은 수신 프로세스는 Reset 비트를 세팅하여 보낸다. 공격자는 이와 같이 하여 방화벽에 열려 있는 포트 번호를 스캔할 수 있다. Chapter 8 Authorization
TCP Three Way Handshake SYN request SYN-ACK ACK (and data) SYN: synchronization requested SYN-ACK: acknowledge SYN request ACK: acknowledge msg 2 and send data 그러면 TCP “연결(connection)”이 설정 FIN 혹은 RST packet에 의해 연결 해제 Appendix
TCP ACK 스캔 이와 같이 하여 공격자는 포트 1209가 현재 방화벽에서 열려 있는 것을 알 수 있다. ACK dest port 1207 ACK dest port 1208 ACK dest port 1209 Trudy RST Internal Network Packet Filter 이와 같이 하여 공격자는 포트 1209가 현재 방화벽에서 열려 있는 것을 알 수 있다. A stateful packet filter는 ACK 스캔 패킷은 현재 설정된 연결에 해당하지 않는다는 것을 알 수 있기 때문에 이와같은 스캔을 막을 수 있다.
Stateful Packet Filter 수송 계층에서 동작한다. TCP 연결과 flag 비트를 기억한다. UDP 패킷 조차도 기억할 수 있다.(e.g., DNS requests) Application Transport Network Link Physical Chapter 8 Authorization
Stateful Packet Filter 장점 패킷 필터가 할 수 있는 모든 것을 할 수 있다. 또한 설정 중인 연결을 추적할 수 있다. 단점 응용 데이터를 볼 수 없다. 패킷 필터 보다 속도가 느리다. Chapter 8 Authorization
Chapter 8 Authorization Application Proxy Proxy는 대신 동작하는 것을 말한다. Application proxy는 들어오는(incoming) 응용 데이터를 검사한다. 진입을 허용하기 전에 데이터가 안전한지 확인한다. Chapter 8 Authorization
Chapter 8 Authorization Application Proxy 장점 연결과 응용 데이터 모두를 볼 수 있다. 응용 계층에서 나쁜 데이터를 걸러 낼 수 있다. (viruses, Word macros) 단점 속도 Application Transport Network Link Physical Chapter 8 Authorization
Chapter 8 Authorization Application Proxy 내부망으로 보내기 전에 새로운 패킷을 생성한다. 공격자는 반드시 proxy와 대화해야 하고 proxy가 메시지를 전달하도록 설득해야 한다. Proxy는 연결 상태에 대해 완전히 알고 있다. Chapter 8 Authorization
Chapter 8 Authorization Firewalk 방화벽의 열려 있는 포트를 스캔하여 찾는 도구 목적: TCP ACK과 동일 Known: 방화벽의 IP 주소, 방화벽 내부의 한 시스템의 IP 주소, 방화벽까지의 홉(hop) 수 TTL을 방화벽까지의 홉수 + 1로 놓는다. 그리고 목적지 포트 번호를 N으로 한다. 만약 방화벽이 포트 N을 통과 시키지 않으면 아무런 응답이 없을 것이다. 만약 방화벽이 포트 N을 통과시키면 ICMP의 time exceeded error message를 받게 된다. Chapter 8 Authorization
Chapter 8 Authorization Firewalk와 Proxy 방화벽 Packet filter Router Router Router Trudy Dest port 12343, TTL=4 Dest port 12344, TTL=4 Dest port 12345, TTL=4 Time exceeded 이것은 application proxy에서는 가능하지 않다. Proxy는 새로운 패킷을 생성해서 원래의 TTL(Time To Live) 값을 없애고 디폴트 값으로 세팅한다. Chapter 8 Authorization
Chapter 8 Authorization 개인 방화벽 한 사용자나 홈 네트워크를 보호 어떤 유형의 방화벽이든지 사용될 수 있다. Packet filter Stateful packet filter Application proxy Chapter 8 Authorization
방화벽과 종심 방어(Defense in Depth) Example security architecture DMZ FTP server WWW server DNS server Intranet with Personal Firewalls Packet Filter Application Proxy Internet Chapter 8 Authorization
침입 탐지 시스템(Intrusion Detection Systems) Chapter 8 Authorization
침입 방지(Intrusion Prevention) 나쁜 놈은 못 들어오게 한다. 침입 방지는 전통적으로 컴퓨터 보안에서의 관심 사항이다. 인증 방화벽 바이러스 방어 자동차를 열쇠로 잠그는 것과 비슷하다. Chapter 8 Authorization
침입 탐지(Intrusion Detection) 침입 방어에도 불구하고 나쁜 놈은 시스템 내부에 들어 올 수 있다. Intrusion detection systems (IDS) 공격이 발생하기 전, 발생하는 동안, 혹은 후에 공격을 탐지한다. 기본적인 접근법은 “비정상적인” 행위를 찾는 것이다. 자동 IDS는 로그 파일 분석으로부터 개발됨 IDS는 현재 관심이 높은 연구 주제이다. 침입이 탐지되었을 때 어떻게 할 것인가? 이것은 여기서 다루지 않을 것이다. Chapter 8 Authorization
Chapter 8 Authorization 침입 탐지 침입자는 누구일까? 방화벽을 뚫고 들어온 외부 침입자일 수도 있고, 사악한 내부인(insider)일 수도 있다. 침입자는 무엇을 할까? 잘 알려진 공격 – 초보자라면 잘 알려진 공격의 변형된 형태의 공격 새로운 혹은 거의 알려지지 않은 공격 다른 시스템을 공격하기 위하여 이 시스템을 이용 등등. Chapter 8 Authorization
Chapter 8 Authorization 침입 탐지 침입 탐지 접근 방법 흔적 기반 IDS (Signature(Pattern)-based IDS) 비정상 기반 IDS (Anomaly-based IDS) 침입 탐지 구조 호스트 기반 IDS 네트워크 기반 IDS 대부분의 시스템은 위의 유형에 속한다. 시장의 제품은 다르게 표현하기도 한다. Chapter 8 Authorization
Chapter 8 Authorization 호스트 기반 IDS 호스트에서 다음의 행위를 감시(monitoring) 알려진 공격, 혹은 의심스런 행동 다음과 같은 공격을 탐지하기 위해서 설계 버퍼 오버플로우 권한 상승(Escalation of privilege) 네트워크 상에서의 행위의 관찰은 거의 없음 Chapter 8 Authorization
네트워크 기반 IDS 네트워크에서의 행위를 감시한다. 다음과 같은 공격을 탐지하기 위해 설계됨 방화벽과 중복될 수 있다. 알려진 공격 의심스런 네트워크 행위 다음과 같은 공격을 탐지하기 위해 설계됨 서비스 거부(Denial of service) 네트워크 탐침(Network probes) 잘못 구성된 패킷(Malformed packets), 등등. 방화벽과 중복될 수 있다. 호스트 기반의 공격에 대해서는 거의 알지 못 한다. 호스트 기반과 네트워크 기반을 모두 갖춘 IDS가 있을 수 있다.
흔적 탐색(Signature Detection) 흔적 탐색은 일련의 미리 정의된 공격 유형에 대한 네트워크 트래픽을 탐지하는 것이다. 연속적으로 로그인이 실패할 경우 이것은 암호 크래킹 시도일 수 있다. IDS는 “M 초 동안에 N번의 로그인 실패”를 흔적(signature)으로 사용할 수 있다. 만약 M초 동안 N번 이상의 로그인 실패가 감지되면 IDS는 공격이 발생했다고 경고한다. Chapter 8 Authorization
Chapter 8 Authorization 흔적 탐색 M초 동안 N 번 이상의 로그인 실패가 발생할 때마다 IDS는 경고 신호를 보낸다고 하자. 지나친 오보가 발생하지 않도록 적절한 N과 M을 설정해야 한다. 이것은 정상적인 행위에 기반을 둘 수 있다. 공격자가 이 흔적을 알고 있다면 매 M초 동안 N-1번의 로그인을 시도할 것이다. 이 경우 IDS는 공격을 지연시킬 수는 있지만 막을 수는 없다. Chapter 8 Authorization
Chapter 8 Authorization 흔적 탐색 다양한 기법들이 흔적 탐색을 더 확실하게 만들어 준다. 목표는 항상 “거의 흔적에 가까운” 것을 탐지하는 것이다. 예를 들면, 만약 “대략” M 초 동안 “대략” N번의 로그인 시도가 있었다면 암호 크래킹 가능성을 경고한다. “대략”에 대한 합리적인 값은 얼마일까? 통계 분석, heuristics, 혹은 다른 방법을 이용하여 찾아봄 잘못된 경고율이 증가하지 않도록 유의해야 한다. Chapter 8 Authorization
Chapter 8 Authorization 흔적 탐색 장점 단순하다. 효율적이다. (흔적의 수가 적절한 경우) 알려진 공격을 탐지한다. 탐지하는 순간 어떤 공격인지 알 수 있다. 단점 흔적 파일(Signature files)은 지속적으로 갱신되어야 한다. 흔적의 수가 너무 많을 수 있다. 알려진 공격만을 탐지할 수 있다. 알려진 공격이라도 변형된 형태는 탐지하지 못할 수 있다. Chapter 8 Authorization
Chapter 8 Authorization 비정상 탐지 비정상 탐지 시스템은 평상시와 다른 혹은 비정상적인 행위를 찾는다. 적어도 2가지 과제가 존재한다. 이 시스템에서 무엇이 정상적인 행위인가? 정상 행위에서 얼마나 “벗어난” 행위가 비정상 행위인가? 여기서 통계가 필요하다! 정상은 평균으로 정의된다. 편차(variance)는 정상으로부터 얼마나 벗어나 있는지를 나타낸다. Chapter 8 Authorization
Chapter 8 Authorization 무엇이 “정상”인가? 아래와 같이 뿌려진 점들을 보자. 흰 점은 “정상” 빨간 점은 정상인가? 초록 점은 정상인가? 파란 점은 얼마나 비정 상인가? 통계값은 상당히 애매 하다! y x Chapter 8 Authorization
Chapter 8 Authorization 어떻게 “정상”을 측정할 것인가? “정상”의 측정 “대표적인” 행동이 있는 동안 측정해야 한다. 공격이 있는 동안 측정해서는 안 된다. 아니면 공격이 정상으로 보일 수 있다! 정상은 통계적 평균이다. 성공의 가능성을 높이기 위해서는 분산 (variance)도 계산해야 한다. Chapter 8 Authorization
Chapter 8 Authorization 어떻게 “정상”을 측정할 것인가? 비정상은 “정상”에 상대적인 것이다. 비정상은 공격의 가능성이 있음을 의미한다. 통계적 판별 기법: 베이지안 통계 선형 판별 분석 (LDA) 이차 판별 분석 (QDA) 신경망, 은닉 마코프 모델, 등등. 고급스런 모델링 기법도 사용됨 인공 지능 인공 면역 시스템 원리 그외도 여러가지! Chapter 8 Authorization
Chapter 8 Authorization 어떻게 “정상”을 측정할 것인가? 접근 방법은 이 강좌의 범위를 벗어난다. 통계적 판별 기법 또한 고급의 모델링 기법이 사용된다. 여기서는, 비정상 탐지를 위한 두 개의 간단한 예를 생각해 본다. 첫번째 예는 간단하지만 현실적이지 않다. 두번째 예는 약간 더 현실적이다. Chapter 8 Authorization
Chapter 8 Authorization 첫번째 예 (1) 다음의 세 가지 명령어의 사용을 감시한다고 하자. open, read, close 정상적인 사용일 경우 다음과 같이 관찰됨 open, read, close, open, open, read, close,… 6개의 가능한 순서쌍 중에서 4개의 쌍이 “정상” (open,read), (read,close), (close,open), (open,open) 다음의 두 쌍은 비정상 (read, open), (close,read) 이것을 비정상 동작을 식별하는데 사용할 수 있는가? Chapter 8 Authorization
Chapter 8 Authorization 첫번째 예 (2) 비정상과 정상의 쌍의 비율이 “너무 높으면” 공격의 가능성이 있다고 경고한다. 이 방법을 다음과 같이 개선할 수 있다. 각 쌍의 예상 빈도수를 사용한다. 두 개 이상의 연속적인 명령어를 사용한다. Ex: (Open Read Close) 더 많은 명령어/행위를 모델에 포함시킨다. 더 복잡한 통계적 판별을 적용한다. Chapter 8 Authorization
Chapter 8 Authorization 두번째 예(1) 약간 현실적인 비정상 탐지를 위해서 파일 접근하는 행위에 초점을 맞추자. 오랜 시간 동안 관찰한 바에 의하면Alice는 파일 Fn 에 Hn 의 비율로 접근한다. 최근에, Alice는 파일 Fn 에 Hn 의 비율로 접근한다. H0 H1 H2 H3 .10 .40 A0 A1 A2 A3 .10 .40 .30 .20 Chapter 8 Authorization
Chapter 8 Authorization 두번째 예(2) 이것은 “정상적인” 사용인가? 다음의 통계값을 사용 S = (H0A0)2+(H1A1)2+…+(H3A3)2 = .02 S < 0.1을 정상이라고 한다면, 이것은 이 통계값에 의하면 정상이다. 문제: 시간에 따라서 사용 행태가 변하는 것을 어떻게 설명할 수 있는가? Chapter 8 Authorization
두번째 예(3) 새로운 사용 행태를 “정상적인” 행위로 적응하도록 하기 위해서 다음과 같은 장기간에 걸친 평균치(long term average)를 갱신한다. Hn = 0.2An + 0.8Hn-1 그러면 H0와 H1 은 변하지않고, H2=.2.3+.8.4=.38 H3=.2.2+.8.1=.12 그리고 long term averages는 다음과 같이 갱신된다. H0 H1 H2 H3 .10 .40 .38 .12
Chapter 8 Authorization 두번째 예(4) 갱신된 long term average는 새로 관찰된 값은… H0 H1 H2 H3 .10 .40 .38 .12 A0 A1 A2 A3 .10 .30 이것은 정상적인 사용인가? S = (H0A0)2+…+(H3A3)2 = .0488 S = .0488 < 0.1이므로 정상으로 판단 그리고 다시 long term average를 갱신한다. Hn = 0.2An + 0.8Hn-1 Chapter 8 Authorization
Chapter 8 Authorization 두번째 예(5) 초기 평균값 2번 반복한 후, 평균값 H0 H1 H2 H3 .10 .40 H0 H1 H2 H3 .10 .38 .364 .156 통계값은 행위를 천천히 따라가고 있다. 이것은 잘못된 경보의 가능성을 줄인다. 그러나 이것은 또한 공격의 가능성을 열어놓는다. Trudy는 항상 F3 에 접근하기 원하다고 하자. 그는 IDS가 이것이 Alice의 정상적인 행위라고 확신하게 할 수 있다. Chapter 8 Authorization
Chapter 8 Authorization 두번째 예(6) 이 방법을 더 건실하게 하기 위해서는 분산을 고려해야 한다. 또한 N개의 통계값을 조합할 수 있다. 예를 들면, T = (S1 + S2 + S3 + … + SN) / N 유사한(하지만 더 고도의) 방법이 NIDES에서 사용되고 있다. NIDES는 비정상과 흔적 기반 IDS이다. Chapter 8 Authorization
Chapter 8 Authorization 비정상 탐지의 이슈들 시스템은 지속적으로 변화하고 있으며 IDS도 이것을 따라가야 한다. 아니면 오 경보가 너무 많이 발생할 수 있다. 하지만 지속적인 변화는 Trudy가 서서히 IDS가 공격이 정상으로 생각하도록 만들 수 있다는 것을 의미한다. “비정상”은 무엇을 의미하는가? 단지 공격의 가능성이 있다는 것 공격에 대해서 어떤 특정한 것을 의미하지는 않을 것이다! 어떻게 이러한 애매한 정보에 대응할 것인가? 이에 비해, 흔적 탐지는 정확히 어떤 공격인지를 탐지한다. Chapter 8 Authorization
Chapter 8 Authorization 비정상 탐지 장점 알려지지 않은 공격을 탐지할 수 있다. 더 효율적일 수 있다. 단점 오늘날, 이 방법 독자적으로 사용되지는 않는다. 흔적 기반 탐지 시스템과 병행해서 사용되어야 한다. 신뢰성이 불분명하다. 비정상 탐지는 무엇인가 이전과 다르다는 것을 의미한다. 하지만 가능한 공격에 대해 분명한 정보는 제공하지 않는다! Chapter 8 Authorization
Chapter 8 Authorization 결론 비정상 기반 IDS는 활발한 연구 중 많은 보안 전문가는 이것의 궁극적인 성공에 대해 큰 희망을 갖고 있다. 미래의 보안 기술의 핵심이 될 것으로 일컬어 진다. 해커들은 그렇게 생각하지 않는다! Defcon 11에서 논의의 제목은 “왜 비정상 기반 IDS는 공격자의 가장 좋은 친구인가”였다. Started in 1992 by the Dark Tangent, DEFCON is the world's longest running and largest underground hacking conference. (www.defcon.org) 비정상 탐지는 어렵고 애매하다. 비정상 탐지는 인공 지능 만큼 어려운 문제인가? Chapter 8 Authorization