SPARCS Wheel Seminar Mango X Sugoi

Slides:



Advertisements
Similar presentations
연천 새둥지마을 체재형 주말농장 준공식 초청장 오시는 길 주제 일시 장소 21C 경기농촌희망심기 2005년 제1기 교육수료마을
Advertisements

출석수업 자료 교과서 범위: 제1장-4장.
10월 충북노회 남선교회 순회 헌신예배 묵 도 기 도 성 경 봉 독 특 송 찬 양 설 교 찬양 / 봉헌 봉 헌 기 도
글에 나타난 시대적 사회적 배경을 파악할 수 있다. 배경 지식과 의미 해석의 관련성을 이해할 수 있다.
패널자료 분석
라오디게아 교회의 교훈 본문 계 3: ○라오디게아 교회의 사자에게 편지하라 아멘이시요 충성되고 참된 증인이시요 하나님의 창조의 근본이신 이가 이르시되 15. 내가 네 행위를 아노니 네가 차지도 아니하고 뜨겁지도 아니하도다 네가 차든지 뜨겁든지 하기를 원하노라.
한알Ⅱ「더불어 살기」전국대회 일정표 날짜 시간 7월 26일(목) 7월 27일(금) 7월 28일(토) 7월 29일(일)
2013학년도 전라북도고등학교신입생 입학전형 기본계획
선거관리위원회 위원 공개모집 4차 공고 제4기 선거관리위원회를 구성하는 위원 모집의
2015학년도 1학기 버디 프로그램 오리엔테이션 (목) 16:00.
열왕기하 1장을 읽고 묵상으로 예배를 준비합시다..
오늘의 학습 주제 Ⅱ. 근대 사회의 전개 4. 개항 이후의 경제와 사회 4-1. 열강의 경제 침탈 4-2. 경제적 구국 운동의 전개 4-3. 사회 구조와 의식의 변화 4-4. 생활 모습의 변화.
전도축제 계획서 *일시 : 2013년 4월 21, 28일 주일 (연속 2주)
2009학년도 가톨릭대학교 입학안내.
한국 상속세 및 증여세 과세제도 한국 국세공무원교육원 교 수 최 성 일.
중세시대의 의복 학번 & 이름.
다문화가정의 가정폭력의 문제점 연세대학교 행정대학원 정치행정리더십 2학기 학번 이름 홍 진옥.
이공계의 현실과 미래 제조업 立國 / 이공계 대학생의 미래 준비
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
◆ 지난주 반별 출석 보기 ◆ 제 56 권 26호 년 6월 26일 반 선생님 친구들 재적 출석 5세 화평 김성희 선생님
第1篇 자치입법 개론.
교직원 성희롱·성폭력·성매매 예방교육 벌교중앙초등학교 박명희
제5장 새로운 거버넌스와 사회복지정책 사회복지정책이 어떤 행위자에 의해 형성되고 집행되는지, 어떤 과정에서 그러한 일들이 이루어지는지, 효과적인 정책을 위해서는 어떤 일들이 필요한지 등을 본 장에서 알아본다 개인들이 생활을 개선하는 가장 효과적인고 궁극적인 방법은 개별적.
임상시험 규정 (최근 변경 사항 중심으로) -QCRC 보수 교육 과정 전달 교육
서울특별시 특별사법경찰 수사 송치서류 유의사항 서울특별시 특별사법경찰과 북부수사팀장 안   진.
특수학교용 아동학대! 제대로 알고 대처합시다..
사회복지현장의 이해 Generalist Social Worker 사회복지입문자기초과정 반포종합사회복지관 김한욱 관장
학교보건 운영의 실제 한천초등학교 이 채 금.
제 출 문 고용노동부 귀중 본 보고서를 ’ ~ ‘ 까지 실시한 “근로감독관 직무분석 및 교육프로그램 개발에 관한 연구”의 최종보고서로 제출합니다  연구기관 : 중앙경영연구소  프로젝트 총괄책임자 : 고병인 대표.
학습센터란? 기도에 관해 배울 수 있는 다양한 학습 코너를 통하여 어린이들이 보다 더 쉽게 기도를 알게 하고, 기도할 수 있게 하며, 기도의 사람으로 변화될 수 있도록 하는 체험학습 프로그램이다. 따라서 주입식이지 않으며 어린이들이 참여할 수 있는 역동적인 프로그램으로.
Digital BibleⅢ 폰속의 성경 디지털 바이블 2008년 12월 ㈜씨엔커뮤니케이션 ㈜씨엔엠브이엔오.
후에 70인역(LXX)을 좇아 영어 성경은 본서의 중심 주제인 “엑소도스”(출애굽기)라 하였다.
성 김대건 피츠버그 한인 성당 그리스도왕 대축일 공지사항
예배에 대하여.
말씀 듣는 시간입니다..
하나님은 영이시니 예배하는 자가 신령과 진정으로 예배할지니라.
지금 나에게 주신 레마인 말씀 히브리서 13장 8절.
예수의 제자들 담당교수 : 김동욱.
Lecture Part IV: Ecclesiology
KAINOS 날마다 더하여지는 Kainos News 이번 주 찬양 20 / 300 – 20개의 셀, 300명의 영혼
예배의 외부적인 틀II - 예배 음악 조광현.
영성기도회 렉시오 디비나와 묵상기도 2.
성인 1부 성경 공부 지도목사: 신정우 목사 부 장: 오중환 집사 2010년. 5월 9일
남북 탑승객 150명을 태운 디젤기관차가 2007년 5월 17일 오전 경의선 철길을 따라 남측 최북단 역인 도라산역 인근 통문을 통과하고 있다. /문산=사진공동취재단.
성경 암송 대회 한일교회 고등부 (일).
천주교 의정부교구 주엽동본당 사목협의회 사목활동 보고서
III. 노동조합과 경영자조직 노동조합의 이데올로기, 역할 및 기능 노동조합의 조직형태 노동조합의 설립과 운영
여수시 MICE 산업 활성화 전략 ( 중간보고 )
1. 단위사업 관리, 예산관리 사업설정 (교직원협의/의견수렴) 정책 사업 학교 정책 사업 등록 사업 기본정보 목표 설정
※과정 수료자에 한하여 수강료의 80~100% 차등 환급함
평생학습중심대학 프로그램 수강지원서 접수안내 오시는 길 관악구&구로구민을 위한 서울대학교 -- 접수 일정 및 방법 안내--
서비스산업의 선진화, 무엇이 필요한가? 김 주 훈 한 국 개 발 연 구 원.
기존에 없던 창업을 하고 싶은데, 누구의 도움을 받아야 할지 모르겠어요
전시회 개요 Ⅰ. 전시명칭 개최기간 개최장소 개최규모 주 최 참 관 객 현 지 파 트 너 General Information
Homeplus 일 家 양 득 프로그램 소개 2015년 12월.
Home Network 유동관.
통신이론 제 1 장 : 신호의 표현 2015 (1학기).
I. 기업과 혁신.
Chapter 4 – 프로그래밍 언어의 구문과 구현 기법

ESOCOM – IPIX 고정IP서비스 제안서 Proposer ㈜이소컴.
화장품 CGMP 한국콜마㈜.
초화류 종자 시장 규모 100억원 이상(추정, 생산액의 10%정도 차지)
COMPUTER ARCHITECTIRE
[ 한옥 실측 ] 1. 약실측 2. 정밀실측 조선건축사사무소.
14. 컴파일러 자동화 도구 스캐너 생성기 파서 생성기 코드 생성의 자동화
A제조용수/B환경관리/C시설관리 ㈜ 에이플러스 코리아
Introduction to Network Security
화재보험 건물구조급수 해설서 인 스 팩.
Presentation transcript:

SPARCS Wheel Seminar 20160726 Mango X Sugoi Security SPARCS Wheel Seminar 20160726 Mango X Sugoi

시작하기에 앞서 Goals of Security Confidentiality : 비밀 정보는 비밀로 간직해야 한다 Integrity : 정보는 신뢰할 수 있어야 한다 Availability : 서비스는 항상 접근이 가능해야 한다 Authenticate : 인증과 관련한 내용

index Cryptography Cipher Hash Transmission Layer Security ETC …

Cryptography _ cipher 데이터를 (원하는 사람만 볼 수 있도록) 변환할 때 사용하는 알고리즘 이다. 방식 : 1) 키를 생성한다 -> 2) 암호화한다 -> 3) 복호화한다 간단한 예시들 : 카이사르 암호, RSA 등등…

Cryptography _ cipher 용어들에 대하여 알아봅시다! Plaintext (평문) : 암호화하고 싶은 것 Ciphertext (암호문) : 암호화한 것 Key : 암호화할 때 필요한 것 Encrypt Function (암호화 함수) Decrypt Function (복호화 함수)

Cryptography _ cipher 대칭키 암호화 알고리즘 : Encryption Key == Decryption Key 공개키와 비밀키가 있다. 암호화할 때 공개키를 사용하고, 복호화할 때 비밀키를 사용한다! https://www.facebook.com/media/set/?set=oa.993976753976194&typ e=1 라는 좋은 자료가 있어요 이 자료에 따르면 사용자들의 공유 관계가 완전 그래프라 하면… 대칭키 암호화 알고리즘의 경우 : N * (N-1) / 2 = O(N^2) 비대칭키 암호화 알고리즘의 경우 : N * 2 = O(N) 어느 것이 더 효율적인지 알겠죠?

Symmetric-Key Cipher

Stream cipher 만든 Key로부터 난수를 연속적으로 생성하여 Plaintext와 XOR한다. E(p, k) = p ^ G(k) G(k)를 알아도 k를 추측할 수 없어야 한다. 부적절한 Stream Cipher의 사용은 심각한 암호학적 문제를 발생시킬 수 있다! (Stream Cipher Attack이라는 것이 있는데 설명은 생략할게요)

BLOCK cipher 만든 Key로부터 난수를 연속적으로 생성하여 Plaintext와 XOR한다. E(p, k) = p ^ G(k) G(k)를 알아도 k를 추측할 수 없어야 한다. 부적절한 Stream Cipher의 사용은 심각한 암호학적 문제를 발생시킬 수 있다! (Stream Cipher Attack이라는 것이 있는데 설명은 생략할게요)

Block cipher Block 단위로 암호화 AES, DES, 3-DES 등이 있다. 𝐶 𝑖 = 𝐸 𝑘 𝑃 𝑖 𝐶 𝑖 = 𝐸 𝑘 𝑃 𝑖 𝑃 𝑖 = 𝐷 𝑘 ( 𝐶 𝑖 ) 여러 개의 Block을 암호화하는 규칙 : Block cipher mode

Block cipher mode – ECB 단순한 block cipher는 문제가 뭘까? 두 block 이 같다면, Cipher text도 같다!

Block cipher mode : ECB and CBC ECB mode 𝐶 𝑖 =𝐸 𝑃 𝑖 CBC mode 𝐶 𝑖 =𝐸 𝑃 𝑖 ⊕ 𝐶 𝑖−1 𝑃 𝑖 =𝐷 𝐶 𝑖 ⊕ 𝐶 𝑖−1 그럼 𝐶 0 은??  IV (initial vector)

CBC : bit flip attack CBC mode 𝐶 𝑖 =𝐸 𝑃 𝑖 ^ 𝐶 𝑖−1 𝑃 𝑖 =𝐷 𝐶 𝑖 ^ 𝐶 𝑖−1 One bit flip in 𝐶 𝑖  Whole change in 𝑃 𝑖 and one bit flip in 𝑃 𝑖+1 We can change the plaintext by bit flipping!

ASymmetric-Key Cipher

Public key crypto - RSA 𝑁=𝑝𝑞 (𝑝,𝑞 𝑖𝑠 𝑝𝑟𝑖𝑚𝑒) 𝑐ℎ𝑜𝑜𝑠𝑒 𝑒 𝑤𝑖𝑡ℎ gcd 𝑒,𝜑 𝑁 =1 Really Secure Algorithm Rivest-Shamir-Adleman 소인수분해의 어려움을 기반으로 하는 암호화 방법이다. public key : 𝑁, 𝑒 secret key : 𝑑,𝜑(𝑁) 𝑁=𝑝𝑞 (𝑝,𝑞 𝑖𝑠 𝑝𝑟𝑖𝑚𝑒) 𝑐ℎ𝑜𝑜𝑠𝑒 𝑒 𝑤𝑖𝑡ℎ gcd 𝑒,𝜑 𝑁 =1 𝑓𝑖𝑛𝑑 𝑑≡ 𝑒 −1 𝑚𝑜𝑑 𝜑 𝑁 𝑐≡ 𝑚 𝑒 (𝑚𝑜𝑑 𝑁) (암호화) 𝑚≡ 𝑐 𝑑 𝑚𝑜𝑑 𝑁 (복호화)

Public key crypto – RSA 𝑁=𝑝𝑞 (𝑝,𝑞 𝑖𝑠 𝑝𝑟𝑖𝑚𝑒) 𝑐ℎ𝑜𝑜𝑠𝑒 𝑒 𝑤𝑖𝑡ℎ gcd 𝑒,𝜑 𝑁 =1 𝑓𝑖𝑛𝑑 𝑑≡ 𝑒 −1 𝑚𝑜𝑑 𝜑 𝑁 𝑐≡ 𝑚 𝑒 (𝑚𝑜𝑑 𝑁) (암호화) 𝑚≡ 𝑐 𝑑 𝑚𝑜𝑑 𝑁 (복호화) 왜? 𝑚 𝑒𝑑 = 𝑚 𝑘𝜑 𝑁 +1 ≡1∗𝑚 public key : (𝑁, 𝑒) secret key : 𝑑

Public key crypto – RSA RSA는 전자 서명도 가능합니다 전자서명 : “내가 전에 당신과 거래했던 A야” B가 A에게 서명을 요구 B가 A에게 서명 메시지 𝑚을 전송 A는 자신의 비밀키로 𝑚 𝑑 를 계산해서 B에게 전송 B는 과거에 거래한 A의 공개 키를 이용해서 𝑚 𝑑𝑒 를 계산 𝑚 𝑑𝑒 =𝑚이라면 서명에 성공

Public key crypto – ECC Elliptic curve cryptosystem (타원곡선암호) 𝑇= 𝑥,𝑦 𝑦 2 = 𝑥 3 +𝑎𝑥+𝑏}+∞ 타원 곡선 위의 점을 정수처럼 쓸 수 있게 연산을 정의한다 어렵지만 더욱 안전하기에 이것을 쓰는 추세이다

Example _ HTTPS 로그인시, 도청이 불가능하도록 암호화 하기 위함 또한 상대방이 진짜 그 상대방인지 확인 (서명!)

HASH Hash가 뭔지는 데이타구조(CS206)에서 다들 배우셨죠? 비밀번호 보관, 파일, 데이터 위/변조 검증(md5 checksum) , 파일, 데이터 식별자 등에 사용 예시 MD5 : 128byte hash, 현재는 Collision Attack이 발견되었다 SHA1 : 160byte hash, 현재는 SHA-256, SHA-512, SHA-3등을 사용한다.

HASH Hash Decode는 Rainbow Table을 이용한다. 결국 Hash를 Decode하는 방법은 Brute-Force 밖에 없어요 ㅠㅠ

HASH _ SALT 예를 들어 사용자가 password라는 비밀번호를 만들었다고 합시다. 그 러면 SHA1 Hash 결과는 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 가 됩니다. 그런데 이건 너무 흔하니까 금방 뚫려버리겠죠? 그래서 salt라는 것이 만들어졌어요.(그냥 hash하고 싶은 문자열에 붙이 는 임의의 문자열을 말해요) Salt를 ‘|||s4ltbymango’이라 하고, password 뒤에 붙여봅시다. password|||s4ltbymango를 SHA1으로 Hash해봅시다. 이제는 찾기 힘 들거예요. 물론 salt의 길이는 길면 길수록 좋습니다.

HASH _ PBKDF2 가장 많이 사용되는 key derivation function(심지어 미국 정부에서도) PBKDF2(Password-Based Key Derivation Function) 솔트를 적용한 후 해시 함수의 반복 횟수를 임의로 선택할 수 있다. PBKDF2는 아주 가볍고 구현하기 쉬우며, SHA와 같이 검증된 해시 함수만을 사용한다. PBKDF2의 기본 파라미터는 다음과 같은 5개 파라미터다. DIGEST = PBKDF2(PRF, Password, Salt, c, DLen) PRF: 난수(예: HMAC) Password: 패스워드 Salt: 암호학 솔트 C: 원하는 iteration 반복 수 DLen: 원하는 다이제스트 길이

HASH _ bcrypt password 저장을 목적으로 설계되었다. 현재까지 사용되는 가장 강력한 해시 메커니즘 중 하나이다. 보안에 집 착하기로 유명한 OpenBSD에서 기본 암호 인증 메커니즘으로 사용되 고 있다. (또한 미래에 PBKDF2보다 더 경쟁력이 있다고 여겨진다.) "work factor" 인자는 하나의 Hash Digest를 생성하는 데 얼마만큼의 처리 과정을 수행할지 결정한다. "work factor"를 조정하는 것만으로 간 단하게 시스템의 보안성을 높일 수 있다. 다만 PBKDF2와는 달리 bcrypt는 입력 값으로 72 bytes character를 사 용해야 하는 제약이 있다.

HASH _ SCRYPT PBKDF2와 유사하다. scrypt는 다이제스트를 생성할 때 메모리 오버헤드를 갖도록 설계되어, brute-force attack을 시도할 때 병렬화 처리가 매우 어렵다. scrypt의 파라미터는 다음과 같은 6개 파라미터다. DIGEST = scrypt(Password, Salt, N, r, p, DLen) Password: 패스워드 Salt: 암호학 솔트 N: CPU 비용 r: 메모리 비용 p: 병렬화(parallelization) DLen: 원하는 다이제스트 길이

Transport layer security 인터넷에서의 정보를 암호화해서 송수신하는 프로토콜이다. Netscape 가 개발한 SSL(Secure Sockets Layer)에서 기반한 기술로, 국제 인터넷 표준화 기구에서 표준으로 인정받은 프로토콜이다. OSI의 다섯 번째 Layer에 위치한다. (Session Layer) 현재 최신 버전은 TLS 1.2

SSL _ History SSL 1.0 : 만들어졌으나 치명적인 보안 결함 때문에 공개된 적은 없다. SSL 3.0 : POODLE, DROWN 등의 취약점이 발견되어 암호화 프로토콜 로의 기능을 잃은 상태이다. 현재 지원이 중단되었다. IE6이 SSL 3.0까 지만 지원했었다.

TLS _ history TLS 1.0 : 1999년도에 SSL 3.0의 업그레이드 버전으로 공개되었다. SSL 3.0이 가지고 있는 대부분의 취약점이 해결되었다. IE8이 TLS 1.0까지만 지원했었다.   TLS 1.1 : 암호 블록 체인 공격에 대한 방어와 IANA 등록 파라메터의 지 원이 추가되었다. 2006년 4월에 공개되었다. TLS 1.2 : 2008년도 8월에 공개된 TLS의 최신 버전이다. 취약한 SHA1 이 SHA-256으로 교체되었다.

TLS _ Overview Client와 server는 같은 키를 생성하고 생성된 대칭키를 이용하여 주고 받는다. 1. Client Hello Client에서는 사용 가능한 암호화 알고리즘 및 설정 등을 server에게 보낸다. 2. Server Hello Server는 자신의 인증서와 사용 가능한 알고리즘 등을 client에게 보낸다. 3. Client Key Exchange 받은 인증서를 검증한 뒤, 대칭 키를 생성하고 이를 인증서의 공개키로 암호화해서 서버에게 보낸다.

TLS _ Certificate “an electronic document used to prove ownership of a public key. (X.509)” = public key with owner and issuer information 주로 RSA Certificate를 이용한다. 인증서의 유효성을 보장해주는 Owner 정보가 있다. RSA signing, CA 등을 사용한다. CA는 Self-signed certificate(issuer가 자신인 인증서)를 가지고 인증서 를 발급해주는 기관을 의미한다. CA의 Self-signed certificate들은 브라 우저 및 OS에 내장되어 있기 때문에 Validate가 가능하다!

Validate certificate Python Pseudocode로 알아보자! cert = certificate_information while True: if cert == CA in Web Browser / OS pass elif cert is self-signed fail cert = cert’s issuer-cert

Certificate File structure .crt: base64 encoding of certificate .cer: same as .crt, used by Microsoft .key: base64 encoding of private key .pem: base64 encoding of private key and key’s info Public key를 저장하는데 사용할 수도 있다. .pfx: certificate와 private key를 암호화 .pem 또는 .key 파일이 유출되면 절대 안된다.(비밀키 정보이므로) 유출되었을 경우에는 인증서를 즉시 해지하고 재발급 받아야 한다.

HTTP(over)S(sl) HTTP + S 데이터를 암호화하여 통신하여 공격자가 데이터를 볼 수 없다. Port : 443 느리다

ManInTheMiddle ATtack 공격자가 중간에서 client와 연결 / server와 연결하여 서로에게 상대방 인 것처럼 보이게 하는 공격 방법이다. 모든 데이터를 볼 수 있으며, 적절하게 위/변조하여 보낼 수 있다. 이 공격이 수행되는 동안 attacker와 client는 서버의 인증서가 아닌 공 격자의 인증서로 https 연결을 맺게 된다. 하지만 Validate 과정에서 차단되겠죠? (Pseudocode를 다시 보세요)

SSL Strip 어, 인증서가 HTTPS에서 Validate가 안되잖아 -> 그냥 클라이언트랑 정보를 주고받을 때 HTTP를 쓰는 걸로 바꿔버리자! 어, 그럼 허점이 생긴 거 아닌가요? HSTS : HTTP Strict Transport Security Response header에 Strict-Transport-Security 정보를 보낸다. 지정된 시간 동안 웹 브라우저는 해당 사이트에 무조건 https로 접속 시도한다. MITM SSL Strip으로 인해 자동으로 http로 접속될 경우 페이지 로드를 중지함

OPENSSL SSL and TLS을 open sourc로 구현함 OpenSSL Library: 많은 암호 관련 함수들이 구현되어 있음 )AES, DES, RSA, ECC, Camellia, IDEA, MD5, SHA1, SHA2, DHKES …) 여러 open source 프로그램에서 이 library를 사용함 (apache2 등) OpenSSL Toolkit: 암호화/복호화, 해시 구하기, 인증서 발급/검증 등 여 러 작업을 할 수 있음

Heartbleed attack 2014년 IT와 금융 업계 등 사회 각지에 갑작스레 닥친 대재앙급 보안 이슈! 4월 1일에 핀란드의 보안 회사 "코데노미콘"에서 상당수의 웹사이트에서 사용되는 OpenSSL의 보안 결함을 발견하고 이를 발표하면서 세간에 널리 알 려진 사태 이 사태의 원인은 Heartbeat라고 불리는 OpenSSL 통신 신호의 취약점을 이용하는 것이기 때문에 Heartbleed로 명명됐다.

Heartbleed attack 사용자측에서 하트비트 패킷을 웹서버에 보낼 때, 이 패킷이 얼마만큼 의 데이터를 보내는 것인지 명시한다. 서버는 패킷을 전송받은 후 정확 히 같은 양의 데이터를 돌려보내면서 연결이 되어있음을 확인하는 방 식이다. 사용자의 컴퓨터가 얼마만큼의 데이터를 보냈는지 거짓으로 명시할 경 우, 예를 들어 1바이트의 정보를 보내면서 서버에는 64킬로바이트를 보 냈다고 한다. 그럼 서버는 같은 양의 64킬로바이트를 다시 보내줘야 하 는데 … 그래서 서버는 메모리에 저장된 다른 정보까지 끌어와 패킷을 채운 후 사용자에게 재전송해준다. 여기엔 웹서버에 특정한 정보를 보여달라는 요청에 대한 쿼리가 포함되며, 유저 아이디나 암호, 심지어는 암호키까 지 온갖 정보가 포함될 수 있다. 이걸 Buffer Overflow가…

Heartbleed attack 아직도 문제가 있는 버전의 OpenSSL을 사용하는 휴대폰 제조사가 있 으며 지원 종료로 bugfix되지 않은 기종도 여전히 사용되고 있다! 하트블리드 검출 툴을 이용하여 OpenSSL 버전을 확인해 보세요. 특히 여러분의 핸드폰이 Android 4.1.1 Jellybean 이하 버전이라면…

SSH, ftps, sftp SSH (Secure SHell): shell을 안전하게 띄울 수 있도록 하는 protocol 여러분들이 bit에 들어갈 때마다 쓰는 것 Port는 기본적으로 22입니다 FTPS(FTP on SSL): SSL연결을 맺고, 그 위에서 FTP 통신을 한다. SFTP(Secure FTP): SSH에서 터미널 접속 뿐만 아니라 파일 관련 작업을 할 수 있도록 만들어 놓 은 일종의 extensio이다. FTP와 protocol 자체 가 다르므로, 명령어 형식도 다름

ETC _ Bruteforce (시간을 무시한다면) 이 세상에서 가장 강력한 해킹 방법 거의 모든 것을 다 뚫을 수 있다… 만 시간이 오래 걸릴 수도 있다. 방어법 : 시간이 오래 걸리게 하면 된다. 암호 길이를 길게 한다, 가능한 key space를 늘린다(특수문자 사용 등) 또는 시간 당 대입 횟수를 제한한다 등의 방어법을 주로 사용한다.

ETC _ dictionary attack 대부분의 사용자들은 단어, 본인 이름, 생일 등을 조합하여 암호 생성한 다는 점을 이용한다. Ex) mad1234stein, taegyunsugoi 방어법 : 비밀번호 잘 설정하세요

ETC _ FAIL2BAN Linux 사용자 로그인에서, 비밀번호를 n번 이상 틀리면 m초 동안 로그 인할 수 없게 만드는 프로그램이다. 설치 및 적용법 : # apt-get install fail2ban # cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # vi /etc/fail2ban/jail.local

ETC _ log system 기본적으로 /var/log/ 에 들어있다. (Debian/Ubuntu 기준) 시스템 로그: syslog 보안 로그: auth.log 크론 로그: cron 부팅 로그: boot.log 웹 로그: apache2/

ETC _ file permission _ setuid, setgid Set User / Group ID upon execution setuid가 설정되어 있는 파일은 실행 시 소유자의 권한으로 실행된다. setgid가 설정되어 있는 파일은 실행 시 소유 그룹의 권한으로 실행된다. Ex) /etc/passwd

ETC _ file permission _ sticky bit /tmp, /var/tmp은 기본적으로 permission 777이다. (뭔 의미인지는 지난 세미나들에서 충분히 설명되었으니 다들 잘 알겠죠?) 그래서 다른 사람이 사용중인 파일을 지워버리면 서비스에 장애가 발생할 수 있다. Sticky Bit: 이 bit가 설정된 directory 안에서는 파일의 소유자만이 삭제 가 능 & directory의 소유자만이 삭제 가능

ETC _ Firewall (iptables) 방화벽이다. INPUT: 들어오는 패킷 / OUTPUT: 나가는 패킷 / FORWARD: 통과하는 패킷 라는 정해진 3가지 chain이 존재하여 규칙들을 수행한다. 여러 조건들을 사용하여 packet을 filtering할 수 있다. 패킷에 대하여 다양한 동작을 할 수 있다. 네트워크 연결 상태 NEW: 새로운 연결을 요청하는 패킷(ex: http) ESTABLISHED: 기존 연결의 일부인 패킷 RELATED: 기존 연결에 속하지만 새로운 연결을 요청하는 패킷 ex) 접속 포트가 20 인 FTP가 65535를 이용하여 전송하고 싶어한다. INVALID: 나머지

ETC _ Firewall (규칙 관련 rule) -A: 규칙 추가, -D: 규칙 삭제, -L: 규칙 출력, -P: 기본 정책 변경 Ex) 모든 곳에서 eth0으로 들어오는 ssh 연결을 허용한다 iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED –j ACCEPT

ETC _ Ufw(Uncompilicated firewall) 설치: # apt-get install ufw 켜고 끄기: # ufw [enable | disable] 상태 보기: # ufw status Rule 추가하기: ufw [allow | deny | reject] <rule syntax> <rule syntax> : <port no>, <port no>/<protocol>, service_name from <from_ip_range> to <to_ip_range> Rule 삭제하기: ufw delete [allow | deny | reject] <rule syntax>

ETC _ Dos / ddos attack DoS (Denial of Service) DDoS (Distributed Denial of Service) 한정된 네트워크 자원을 모두 소모시켜 정상적인 사용자가 서비스에 접근하지 못하도록 하는 공격이다. 대표적인 공격 방법인 SYN Flooding : TCP 연결을 맺을 때, server는 SYN-ACK 패킷을 보내고 client에게 ACK 패킷이 오기를 기다린다. Client가 수많은 SYN 패킷만 보내고 ACK 패킷을 보내지 않으면, 서버는 연결을 계속 기다리게 되고 다른 SYN 패킷을 accept하지 못할 수 있다.

ETC _ Web based Attack 웹 페이지의 입력 공간에 공격 문자열을 삽입한다. GET / POST 등을 사용하여 통신되는 데이터를 변조한다. 주요 사용 툴 : Burpsuite 등 ex) SQL Injection, XSS, CSRF

ETC _ Sql injection 서버에서 본인이 원하는 SQL 구문을 실행하는 공격 방법 ex) SELECT id FROM user WHERE id=‘{id}’ AND pw=‘{pw}’ 여기서 pw에 ‘OR 1=1# 이라는 것을 넣어버리면? 방어: 기본적으로 입력을 필터링해야 함 Django의 경우 대부분 raw SQL을 프로그래머가 작성하지 않으므로 안전(제가 Database 설명할 때 간략히 언급했어요) PHP의 경우 각별한 주의가 필요하다. 처리하는 방법은 찾아보면 잘 나온다. 개인적인 의견으로는 PHP 그냥 쓰지 마세요 맘에 안 들어요 Variation으로는 BlindSQLi, Time-based BlindSQLi 등이 있다.

ETC _ XSS 사용자가 특정 페이지를 신뢰하여 이에 접속하면 공격자가 원하는 script를 사용자가 실행하도록 하는 공격 방법이다. 1. 공격자는 악의적인 script (ex: 쿠키 훔치기)를 만든다. 2. 공격 대상이 될 웹사이트에 본인이 만든 악의적인 script를 삽입한다. (ex) iframe, object, div, script 태그 등을 게시글로 작성한다) 3. 사용자가 해당 페이지를 열어보면 script가 실행된다 방어법: 특정 문자를 필터링하면 된다. Ex) <는 <, >는 > 로 escape한다. Django를 쓰면 공격을 막을 수 있다. (escape_safe Option을 사용하지 않는다면…)

ETC _ CSRF Cross Site Request Forgery를 줄인 것을 의미한다. 해당 웹 사이트가 사용자의 웹 브라우저를 신뢰하여, 사용자가 요청 하 지 않은 명령을 공격자가 보내도록 하는 공격 방법이다. Ex) http://bank.com/withdraw?amount=infinity&to=mango 방어법: 서버 쪽에서 random한 token이 포함된 페이지를 사용자에게 보내고, 사용자에게서 요청을 받을 때는 token이 올바른지 확인한다. Ex) django에서 views.py를 보다 보면 많이 볼 수 있는 @csrf_token (csrfmiddlewaretoken)

REference SPARCS 2015 Wheel Seminar – Security by samjo GoN 2016 Spring 신입생 교육자료 2 – Modern Cryptography http://d2.naver.com/helloworld/31873