1 / 36

Wheel seminar 보 안

Wheel seminar 보 안. SPARCS 11 undead. 보안이란 ?. 허가되지 않은 사용자의 접근 제한 허가되지 않은 사용자의 root 권한 획득 및 오남용 방지 위와 같은 일이 일어나지 않게 하는 것 ( 중앙일보 ) … 말로는 참 쉽다. 보안을 유지하지 못하면 ?. YU 모씨 사건 2011 년 말 YU 모씨가 우리 학교를 목표로 활동하기 시작 . 교내에 설치된 Zeroboard 4 의 보안 취약점을 사용하여 웹셸 및 백도어 설치

bikita
Download Presentation

Wheel seminar 보 안

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Wheel seminar보안 SPARCS 11 undead

  2. 보안이란? • 허가되지 않은 사용자의 접근 제한 • 허가되지 않은 사용자의 root 권한 획득 및 오남용 방지 • 위와 같은 일이 일어나지 않게 하는 것 (중앙일보) • …말로는 참 쉽다.

  3. 보안을 유지하지 못하면? • YU모씨사건 • 2011년 말 YU모씨가 우리 학교를 목표로 활동하기 시작. • 교내에 설치된 Zeroboard 4의 보안 취약점을 사용하여 웹셸 및 백도어 설치 • ssh데몬을 변조하여 사용자가 키보드로 입력한 암호를 저장함 • 이를 숨기기 위해 libc를 후킹하여 해커가 만든 디렉터리와 파일을 숨김 • 이렇게 얻은 ID/PW로 다른 컴퓨터에 접속하기 시작 • 대부분의 사용자들의 ID/PW는 여러 머신에서 같고, 특히 일부 sudo권한을 가진 경우도 있음 • 위 과정을 반복하다 remote root login이 허용되어 있으면 success! • 멍청한 YU모씨가 SPARCS 서버에 떠 있었던 IRC 대화방 발견 • 자신의 업적을 자랑함 • 트위터를 통해 네덜란드 모 기업에 제보 • YU모씨 검거 ㅋ

  4. 칩입자의 특성 • The Curious: 어떤 시스템과 데이터를 가지고 있는지 정도를 알고자 하는 것에 흥미를 둔다. • The Malicious: 시스템을 다운시키거나 웹페이지를 손상시켜 손해를 복구하게 하는 등으로 시간과 돈을 낭비하게 만듦. • The High-Profile Intruder: 인기와 악명. 잘 알려진 시스템에 침투해서 능력을 과시하고자 함. • The Competition: 시스템이 무슨 데이터가 있는지, 돈이 될만한 무언가를 가지고 있다고 생각함. • The Borrowers: 시스템을 무단 사용해서 시스템 자원을 훔침. 채팅, IRC 서버, 아카이브 사이트,DNS 서버등을 돌릴 수도 있다. • The Leapfrogger: 다른 시스템에 들어가기 위한 도구로서 시스템을 사용. 많은 수의 호스트에 연결되어 있거나 게이트웨이로 사용되는 경우 주의 필요.

  5. 물리적인 보안 • 누가 컴퓨터 본체에 손을 댈 수 있는가? • 그럴 필요가 있는 사람인가?

  6. xlock & vlock xlock: • X 윈도우 화면을 잠근다. • 패스워드가 입력되어야만 화면을 입력 가능 상태로 되돌릴 수 있다. vlock: • 리눅스 가상 단말기의 일부나 전부를 잠근다. • 본인이 작업 중인 단말 하나 만을 잠글 수 있다 • 본인의 작업이 조작되는 것을 막을 수는 있지만, 리부팅이나강제종료, 네트워크 크래킹 등을막을 수는 없다. …라는 문서를 찾았으나 SPARCS에서 사용하는지는 잘 모르겠음;;

  7. 가상 사설망(VPN) • 공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 바깥 사람에게 드러내지 않고 통신할 목적으로 쓰이는 사설 통신망이다. • 간단하게 외부에서 가상 사설망을 통해 접속하면 인트라넷에 로컬에서 직접 접속한 것처럼 해줌. • 보안을 위해 특정 포트를 차단함! • 스팍스 서비스에 문제가 될 수 있음

  8. 대표적인 공격법과 방어법

  9. (Distributed) Denial of Service • 사용자가 인터넷에서 평소 이용하던 자원에 대한 서비스를 더 이상 받지 못하게 되는 상황. • 버퍼 오버플로우 • SYN • 눈물방울 • 스머프 • 바이러스 • 물리적 공격 (케이블 절단) 등의 공격형태가 있다.

  10. TCP SYN Flooding SYN_SENT ACK SYN_RECEIVED ACK/SYN ESTABLISHED ACK ESTABLISED <정상적인 3-way handshaking 연결>

  11. TCP SYN Flooding ACK ACK/SYN 안보낼건데? ㅋ 계속 기다려라 ㅋㅋ SYN_RECV 기다리는 중… ACK <Backlog Queue>

  12. TCP SYN Flooding • 예방 방법: 1. Backlog Queue를 적절하게 늘려준다. 확인: #sysctl-a | grepsyn_backlog 증가: #sysctl –w net.ipv4.tcp_max_syn_backlog=[value] 2. Syncookies기능을 켠다. 3-Way Handshakig의 과정을 변경한다. TCP Header의 특정 부분을 뽑아내어 암호화하는 방식으로 3-WH이 성공적으로 이루어지지 않으면 더 이상 소스 경로를거슬러 올라가지 않게 한다. 확인: #sysctl –a | grepsyncookie 활성: #sysctl –w net.ipv4.tcp_syncookies=1

  13. netstat • netstat: 현재 연결된 목록을 프로토콜과 함께 보여줌. • -a: 연결을 기다리는 목록도 보여줌 • -n: 컴퓨터 이름 대신 ip주소가 뜸 • -p: 프로그램 ID와 이름을 보여줌 • -nap: 궁극체

  14. iptables • 강력한 패킷필터링 툴 • 사실 일은 iptable이 하는게 아니라 netfilter라는 툴이 한다. • iptable의 역할을 netfilter의 룰을 세워준다.

  15. iptables iptables : chain(net filter) -INPUT chain : 로컬로 들어오는 패킷이 통과 - OUTPUT chain : 로컬에서 나가는 패킷이 통과 - FORWARD chain : 로컬을 경유하는 패킷이 통과 Packet

  16. iptables 룰과 관련된 옵션 • -A <chain> <rule>체인에 새로운 규칙을 추가한다. • -I <chain> <rulenum> <rule>체인의 rulenum 지점에 규칙을 삽입한다. • -R <chain> <rulenum> <rule>체인의 rulenum지점에 규칙을 교환한다. • -D <chain> <rulenum/rule>체인의 rulenum에 있는 rule이나 rule을 지운다.

  17. iptables 체인과 관련된 옵션 • -P <chain> <action> chain의 기본 정책을 action으로 변경한다. • -F <chain> chain의 규칙들을 지운다. • -Z <chain> chain 내의 카운터를 0 바이트로 만든다. • -L <chain> chain 의 모든 규칙을 보여준다.

  18. iptables 패킷의 출처,목적지 제어 • -s : 패킷의 출처 IP를 지정한다.ex) # iptables –A INPUT –s 192.168.10.10 -j DROP • -d : 패킷의 도착지 IP를 지정한다.ex) # iptables –A INPUT –d! 192.169.10.12 -j DROP • 도메인, 네트워크 또는 집단으로도 지정할 수 있다. • ! 옵션을 사용할 수 있다.

  19. iptables 프로토콜 제어 • -p : 프로토콜 지정ex) # iptables –A INPUT –p TCP –j ACCEPT • -p 옵션의 인자는 TCP, UDP, ICMP가 있다. • --sport : 패킷의 출발지 포트 지정 • --dport : 패킷의 도착지 포트 지정 포트 제어

  20. iptables • # iptables –A INPUT –p tcp --dport 80 –j DROP • --sport나 --dport의 인자로 서비스명을 적는 것도가능하다. ex) --sport www • 여러 포트를 지정할 경우--sport 1024:24546과 같이 지정 가능하다.

  21. iptables 인터페이스 지정 • -i (input interface)ex) # iptables –A INPUT -i eth0 –j DROP • -o (output interface) • INPUT 체인에는 -i, OUTPUT 체인에는 –o 옵션만 사용할 수 있고 FORWARD 체인에는 둘 다 사용 가능하다.

  22. iptables 패킷 처리 지정 • -j ACCEPT : 패킷의 이동을 허락 • -j DROP : 패킷의 이동을 거부 • -j QUEUE : 패킷을userspace program으로 처리하도록 보냄 • -j RETURN : user-defined 체인의 경우에는 기본 체인으로 보내고 기본 패킷의 경우에는 기본 정책을 따르도록 한다. • -N : 새로운 체인 생성, -X : 체인 제거

  23. Ping test • 네트워크 세미나에서 ping을 함부로 보내면 웹사이트에 대한 공격으로 간주되어 차단당한다는 내용을 기억하는가? • 공격을 당하느니 그냥 ping에 응답을 하지 않으면 된다. #cd /proc/sys/net/ipv4 #echo 1 > icmp_echo_ignore_all 응답하게 하고 싶다면, #echo 0 > icmp_echo_ignore_all

  24. SQL Injection • 서버나 OS의 구멍을 이용한 해킹방법이 아닌 웹 어플리케이션 자체의 버그를 악용하는 형태의 웹 해킹 방법 • 웹 페이지를 통해 입력된 parameter 값을 이용하여 쿼리를 재구성한다.

  25. SQL Injection 흔한_SQL_Injection_공격법.txt: • 관리자 계정을 알아낸다. • 회원가입 시 제공되는 ID 중복체크 • 로그인 창과 비밀번호 창에 SQL 구문을 넣어 Injection 시도 • Select * From TABLE_NAME Where MemberID = ‘ID’ AND PASSWORD = ‘PASSWORD’

  26. SQL Injection • 으앙ㅠㅠ쥬금.jpg

  27. SQL Injection 방어법: • 단순히 사용자에게 저런 입력을 받지 않으면 된다. • SQL 서버의 에러 메시지를 사용자에게 보여주지 말자. • 이를 통해 DB의 TABLE 이름 등 여러 값들을 알아낼 수 있다. • Django는 기본적으로 SQL Injection에 대한 보안 요소가 포함되어 있지만 언제나 방심은 금물이다.

  28. 적절한 서버 관리

  29. nmap • 포트 스캐닝 툴 • # apt-get install nmap • &nmaplocalhost • &nmap <server ip> • 멋모르고 스캐닝 때렸다가 공격으로 간주되어 차단당한다. • & cat /etc/services | grep <port> | grep <service_name>

  30. fail2ban • 로그인을 일정 횟수 이상 실패할 경우 일정 기간 동안 차단하는 툴. • Ssh등에 무작위로 로그인하는 프로그램에 대한 대응책 • # apt-get install fail2ban • 설정, 설정을 하자! • # vi /etc/fail2ban/jail.conf • 실행은 # /etc/init.d/fail2ban start • 정지는 # /etc/init.d/fail2ban stop

  31. fail2ban # /etc/fail2ban.conf enabled = true || false (fail2ban적용 on/off) port = (해당되는 서비스의 포트 혹은 이름) filter = (서비스의 필터) logpath = (fail2ban 로그가 저장되는 곳) maxretry = (실패 최대 횟수) bantime = (접속 거부 시간/단위 : 초) ignoreip = (접속자에게 거부가 될ip주소) 혹은 (CIDR mask) 혹은 (DNS host) destemail = (fail2ban 메세지를 받을 관리자의 이메일)

  32. logcheck • 로그파일이나 시스템 파일은 침입자의 흔적이나 시스템의 오류사항에 대해 분석할 때 매우 중요한 자료로 사용된다. • last • # apt-get install logcheck • lastlog • lastb

  33. 끝맺는 말: 보안 수칙 • 간단하거나 추측하기 쉬운 비밀번호는 피하도록 한다. • 꼭 필요하지 않은 이상 root 계정으로의 로그인을자제한다. • 비밀번호는 공유하지 않는다. • 바이너리 설치 파일을 맹신하지 않는다. • 로그 파일을 잘 활용한다. • 시스템을 최신 버전으로 유지한다. • 소프트웨어적인 보안 뿐만 아니라 물리적인 보안에도 주의를 기울여야 한다. 6번만 잘 지켜도 웬만한 건 다 예방된다.

  34. 좋은 참고 자료 • http://wiki.kldp.org/HOWTO/html/Security/Security-HOWTO.html#toc2

  35. …은 fake! 휠장이 미쳐 날뜁니다

More Related