프로그래밍/보안(16)
-
Blockchain Technology, Bitcoin
Agenda Shortest overview Satoshi's whitepaper Altcoins 사토시가 만듦 전자화폐의 문제점을 해결하고자 함 금융기관을 믿을 수 있나? -> 분산 합의(distributed consensus) 하고 싶다 수수료 때 먹히는 거 꼴 받는데 -> 더 싸게 하지만 어려운 과제 Double spending을 어떻게 막을 수 있나? Double spending problem 원래는 TTP가 모든 User의 계좌 잔고를 확인하고, 거래의 중계인 역할 함으로써 돈의 사용을 체크해서 관리를 하는데 TTP 없이 P2P로 거래할 때 User 개개인의 계좌 잔고와 그 사용을 어떻게 확인을 할 것인가. 잔고 100만 원 사용했음에도 관리자가 없는 것을 이용해 자신 잔고를 속이는 것을 어떻게..
2022.12.12 -
Web security
공격들 SQL injection Session Hijacking Cross-site Request Forgery(CSRF) Cross-site Scripting(XSS) 방어 Sanitize, validate untrusted input: 뭔가 이상한 입력을 걸러내는것 Web Basics Request 방법 GET: 요청하는 URL 안에 모든 정보가 닮겨있다 (no server side effects) POST: 정보들이 여러곳에 나눠져 있다 (can have side effects) Referrer URL: Client가 통해 들어오게 된 URL, 어떤 Request 를 통했는지 명시 -> 이게 정상적인 지 Server는 잘 확인해야 한다 (validate untrusted input) SQL inje..
2022.12.11 -
3. Memory Security, Heap overflow
C and C++ Vulnerabilities 취약점들 Buffer overflows On the stack On the heap Due to integer overflow Over-writing and Over-reading Format String mismatches (%s, %1000f 등) Dangling pinter dereferences (해제된 메모리 *접근) -> 전부 memory 관련 문제, pointer를 통한 memory 접근에 문제가 많다 Memory layout Heap overflow - strcpy(one)+strcat(two)>MAX_LEN 일수도 있다. 만약 MAX_LEN보다 크다면, - s->cmp를 덮어쓰게 되고 함수포인터를 역참조할 때 공격자가 원하는 주소로 갈수도 있..
2022.12.11 -
2. Code injection
Stack Smashing attack: 스택 침범 공격 아이디어: %eip(리턴주소)를 공격자가 가게 하고픈 위치로 바꾸어 해당 위치의 코드를 실행시키도록 하자 -> 실행시키고 싶은 코드: 루트 권한의 Shellcode (“/bin/sh”) 공격 준비 단계 1단계: 메모리에 공격자의 코드 넣기 (Stack Smashing attack) - 코드는 machin code여야 한다. (이미 컴파일되어 실행 중인 상태이기 때문이) - 코드에 \0가 포함되면 안된다. (\0을 만나면 읽기를 종료 해버리기 때문에) - 로더(Loader) 사용 불가능 2단계: 넣은 코드 주소 %eip에 넣기 (Stack Smashing attack) -> %eip의 위치 찾기 (%eip = 4(%esp)) 3단계: 넣은 코드의 위..
2022.12.11 -
1. Buffer overflow
local value overflow -> buffer에 할당된 4보다 큰 내용이 들어와 버 -> 정상적으로 접근해야 할 loc val과 인자들에 접근할 수 없게 만든다 strcpy -> stycpy 때문에 \0이전까지 다 덮어 씌우게 된다
2022.12.11 -
0. Software Security, Memory layout
Heartbleed SSl/TLS 에 버그가 있었는데 2년동안 이 사실을 몰랐다. Open Sorce 였음에도 공격자는 메모리의 개인정보를 티 안나고 읽어갈 수 있었다. C and C++ Vulnerabilities 취약점들 Buffer overflows On the stack On the heap Due to integer overflow Over-writing and Over-reading Format String mismatches (%s, %1000f 등) Dangling pinter dereferences (해제된 메모리 *접근) -> 전부 memory 관련 문제, pointer를 통한 memory 접근에 문제가 많다 -> 이를 보완하기 위한 가장 쉬운 방법은 memory-safe한 langua..
2022.12.11