(시스템)
-시스템은 하드웨어뿐만 아니라 소프트웨어까지 매우 많은 것을 포함
+시스템보안 -> 기술적 보안의 총체
(시스템 보안 주제)
1. 계정관리
-사용자를 식별하는 가장 기본적인 인증 수단(아이디, 비밀번호), 계정관리는 시스템 보안의 시작
식별 : 어떤 시스템에 로그인하려면 먼저 자신이 누군지를 알림
인증 : 로그인을 허용하기 위한 확인(인증 후 권한 부여)
- 보안의 네 가지 인증 방법
1. 알고 있는 것 : 머릿속에 기억하고 있는 정보를 이용하여 인증 수행(아이디, 비밀번호)
2. 가지고 있는 것 : 신분증이나 OTP장치 등으로 인증 수행
3. 자신의 모습 : 생체 정보로 인증 수행
4. 위치하는 곳 : 현재 접속을 시도하는 위치의 적절성을 확인하거나 콜백을 사용해 인증 수행
+콜백 : 접속을 요청한 사람의 신원을 확인, 미리 등록된 전화번호로 전화를 되걸어 접속을 요청한 사람이 본인인지 확인
- 운영체제의 계정관리
운영체제 : 시스템을 구성하고 운영하기 위한 가장 기본적인 소프트웨어
운영체제에 대한 권한을 가지게 되면 해당 시스템의 다른 응용 프로그램에 대해서도 어느 정도의 권한을 가질 수 있음
일반 사용자 권한의 계정도 시스템의 상당 부분에 대한 읽기 권한을 가짐
운영체제 내에서는 관리자 권한이 있는 계정뿐 아니라 일반 사용자 권한이 있는 계정도 적절하게 제한
-데이터베이스의 계정관리
데이터베이스에도 운영체제처럼 계정이 존재한다
- 응용프로그램의 계정관리
취약한 응용 프로그램을 통해 공격자가 운영체제에 접근하여 민감한 정보를 습득한 뒤 운영체제를 공격하는 데 이용할 수 있음
- TFTP처럼 인증이 필요치 않은 응용 프로그램은 더욱 세심한 주의가 필요
- 네트워크 장비의 계정 관리
네트워크 장비는 보통 패스워드만 알면 접근이 가능
+시스코 장비의 계정의 모드 구별
(네트워크 장비의 상태만 확인할 수 있는 사용자 모드/
네트워크에 대한 설정 변경이 가능한 관리자 모드/
처음 접속 시 사용자 모드로 로그인 되며 사용자 모드에서 관리자 모드로 로그인하려면 다시 별도의 패스워드를 입력)
네트워크 장비에서도 계정을 생성하여 각 계정으로 사용할 수 있는 명령어 집합을 제한할 수 있음(TACACS+)
2. 세션관리
-
일정시간이 지나면 세션을 종료하고 비인가자의 세션 가로채기를 통제하는 것
-
세션 : 사용자와 시스템 사이 또는 두 시스템 사이의 활성화된 접속을 의미한다
EX.줄서고 있을 때 친구에게 자리 맡아달라고 부탁하기
-
지속적인 인증
세션을 유지하기 위한 보안 사항 중 하나. 인증에 성공한 후 인증된 사용자가 처음의 사용자인지 지속적으로 재인증 작업을 거치는 작업이다.
매번 패스워드를 입력할 수 없으므로 시스템은 이를 세션에 대한 타임아웃 설정으로 보완(윈도의 화면보호기).
반면 유닉스는 원격에서 접속할 경우 패스워드를 다시 묻지 않고 세션을 종료한 후 재접속할 것을 요구. 시스템이 아닌 웹 서비스를 이용할 때도 지속적인 인증이 적용
3. 접근제어
- 네트워크 안에서 시스템을 다른 시스템으로부터 적절히 보호할 수 있도록 접근 통제하는 것
- 접근제어 : 적절한 권한을 가진 인가자만 특정 시스템이나 정보에 접근하도록 통제하는 것
시스템의 보안 수준을 갖추기 위한 가장 기본적인 수단이며 시스템 및 네트워크에 대한 접근 제어의 가작 기본적인 수단은IP와 서비스 포트이다.
운영체제에 대한 적절한 접근제어를 수행하려면 가장 먼저 운영체제에서 어떤 관리적 인터페이스가 운영되고 있는지를 파악해야함
- 운영체제의 접근 제어
- 불필요한 인터페이스 제거
접근 가능한 인터페이스를 확인했으면 불필요한 인터페이스를 제거해야한다.
이때 사용할 인터페이스에 보안 정책을 적용할 수 있는지 판단해야함
+운영체제에 대한 접근 목적의 인터페이스를 결정한 다음에는 접근 제어 정책을 적용해야한다
+시스템에 대한 접근 제어 정책은 기본적으로 IP를 통해 수행
+유닉스의 텔넷이나 SSH, FTP 등은 TCPWrapper를 통해 접근 제어가 가능
- inetd 데몬
클라이언트로부터 inetd가 관리하는 텔넷이나 SSH, FTP 등에 대한 연결 요청을 받음. 해당 데몬을 활성화하여 실제 서비스를 함으로써 데몬과 클라이언트의 요청을 연결
- TCPWrapper가 설치되면 inetd 데몬은 TCPWrapper의 tcpd 데몬에 연결을 넘겨줌. tcpd데몬은 접속을 요구한 클라이언트에 적절한 접근 권한이 있는지 확인한 후 해당 데몬에 연결을 넘겨줌. 이 때 연결에 대한 로그를 실시할 수도 있음
-
데이터베이스의 접근 제어
-데이터베이스 : 조직의 영업 및 운영 정보를 담고 있는 핵심 응용 프로그램. 적절한 접근 제어는 필수이지만 모든 데이터베이스가 적절한 접근 제어 수단을 제공하는 것은 아님
-
응용프로그램의 접근 제어
-
네트워크 장비의 접근 제어
-네트워크 장비도 IP에 대한 접근 제어가 가능하다
-관리 인터페이스에 대한 접근 제어와 ACL을 통한 네트워크 트래픽 접근 제어가 있음
-네트워크 장비의 관리 인터페이스에 대한 접근 제어는 유닉스의 접근 제어와 거의 같음
-ACL을 통한 네트워크 트래픽 접근 제어는 방화벽에서 수행하는 접근 제어와 기본적으로 같음
4.권한 관리
시스템 내부나 네트워크를 통해 외부에서 시스템에 어떤 영향을 미칠 경우 그 내용을 기록하여 관리하는 것
[운영체제의 권한 관리]
- 윈도우의 권한 관리
윈도우는 NT4.0이후 버전부터 NTFS를 기본 파일 시스템으로 사용.
[유닉스의 권한 관리]
- 유닉스는 파일과 디렉터리에 대한 권한 설정 방법이 같음
[데이터베이스의 권한 관리]
- 질의문에 대한 권한 관리
- 뷰에 대한 권한 관리
- 뷰 : 참조 테이블의 각 열에 대해 사용자의 권한을 설정하는 것이 불편해서 만든 가상 테이블 생성된 뷰에 대한 권한 설정은 테이블에 대한 권한 설정과 같음.
- 뷰를 사용하지 않는 경우 테이블에 각각 접근 제한을 설정해야함
[응용프로그램의 권한 관리 ]
응용프로그램은 응용 프로그램 내의 권한 관리보다 응용 프로그램 자체의 실행 권한이 더 중요하다. 자신을 실행한 계정의 권한을 물려받으므로 보안상에 문제가 있는 취약한 응용 프로그램의 경우 해당 프로그램을 실행한 계정의 권한이 악용되는 문제가 발생. 윈도우의 IIS에서는 실행 프로세스 권한을 별도로 만들어 사용.
유닉스에서는 nobody와 같이 제한된 계정 권한을 사용
5. 로그 관리
- 시스템 내부나 네트워크를 통해 외부에서 시스템에 어떤 영향을 미칠 경우 그 내용을 기록하여 관리하는 것
- AAA요소 : 시스템 사용자가 로그인한 후 명령을 내리는 과정에 대한 시스템의 동작 로그를 남기는 모든 시스템에 존재하며 AAA에 대한 로그 정보는 해커나 시스템에 접근한 악의적인 사용자를 추적하는 데 많은 도움이 됨
(책임 추적성 : 추적에 대한 기록의 충실도/ 감사 추적 : 보안과 관련하여 시간대별 이벤트를 기록한 로그)
- Authentication(인증) : 자신의 신원을 시스템에 증명하는 것으로 아이디와 패스워드를 입력하는 과정/ 해당시스템이 지문으로 신분을 확인하는 과정
- Authorization(인가) : 지문이나 패스워드 등을 통해 로그인이 허락된 사용자로 판명되어 로그인을 하는 과정 / 신원이 확인되어 인증받은 사람이 출입문에 들어가도록 허락하는 과정
- Accountring(과금, 회계, 기록) : 로그인했을 때 시스템ㅁ이 이에 대한 기록을 남기는 활동 객체나 파일에 접근한 기록
[네트워크 장비의 로그 관리]
- 네트워크 보안 시스템의 로그
침입 차단 시스템, 침입 방지 시스템, 침입 탐지 시스템 등 다양한 보안 시스템의 로그를 확인할 수 있음 다양한 보안 시스템의 로그는 통합 로그 관리 시스템(SIEM)에 의해 수집,관리되기도 함
- 네트워크 관리 시스템의 로그
네트워크 트래픽 모니터링 시스템(MRTG)과 네트워크 관리 시스템(MMS)의 로그를 참고할 수 있음
- 네트워크 장비 인증 시스템의 로그
대규모 네트워크를 운영하는 곳에서는 라우터나 스위치의 인증을 일원화하기 위해 인증 서버로 TACACS+를 사용하기도 함 인증 서버를 통해 네트워크 장비에 대한 인증 시도 및 로그인 정보 등을 확인할 수 있음
- 로그서버
대부분의 네트워크 장비에는 하드디스크와 같이 로그를 저장할 저장 공간이 없어 로그 서버를 별도로 두고 운영한다.
로그 서버를 운용하면 해커가 어떤 네트워크 장비에 침투하더라도 자신의 흔적을 지우기가 쉽지 않다.
이 때문에 네트워크 장비 뿐만 아니라 운영체제 등을 관리할 때 로그 서버를 따로 운영한다
6. 취약점 관리
시스템 자체의 결함을 체계적으로 관리하는 것
- 패치관리
응용 프로그램을 만든 제작사가 배포하는 패치 또는 서비스 팩을 적용해 시스템 자체의 취약점을 보완. 유닉스 시스템에도 내재된 취약점이 있지만 윈도우는 사용률이 훨씬 높고 접근하기도 쉬워 공격을 더 많이 받음. 윈도우 업데이트를 통해 자동으로 보안 패치를 확인하고 적용할 수 있음
- 응용 프로그램별 고유 위험 관리
응용 프로그램을 통해 운영체제의 파일이나 명령을 실행시킬 수 있는 것이 있음. MS-SQL의 xp_cmdshell은 데이터베이스를 통해 운영체제의 명령을 실행하고 파일 등에 접근할 수 있다.
응용 프로그램의 동작과 관련하여 운영체제에 접근할 수 있는 함수나 기능이 있으면 적절성을 검토해야함
- 응용프로그램의 정보 수집 제한
운영체제에 직접적인 영향을 미치지 않아도 응용 프로그램의 특정 기능이 운영체제의 정보를 노출시키기도 한다.
7.모바일 보안
모바일 운영체제의 역사
- 팜OS :1996년에 개발된 운영체제로 주소, 달력, 메모장, 할 일 목록, 계산기와 개인 정보를 숨기기 위한 간단한 보안 툴이 포함
- 윈도우CE :PDA나 모바일 장치 등에 사용하기 위해 만든 운영체제로 1MB이하의 메모리에 서도 동작이 가능하도록 설계 되었다. 1996년에 초기 보전인 윈도우 CE1.0 출시
- 블랙베리OS :RIM이 만든 모바일 운영체제로 메시지와 이메일 전송 기능 및 보안에 초점을 두고 있음 2000년에 블랙베리 5790 모델에 처음으로 블랙베리라는 명칭이 사용
- iOS : 애플의 아이폰과 아이패드에 사용되는 모바일 운영체제 2007년 출시된 아이폰 오리지널의 운영체제를 시작으로 계속 업데이트됨
- 안드로이드 : 구글과 이동 통신 관련 회사 연합체가 개발한 개방형 모바일 운영체제 2007년 11원 구글 폰인 HTC Dream(T-Mobile G1)에 안드로이드 1.0이 탑재된 것이 시초
+2007년 아이폰의 첫 번째 버전인 아이폰 오리지널의 운영체제는 맥북의 운영체제를 모바일로 바꾼 OS X
+2008년 3월 6일 아이폰 SDK의 첫 베타 버전이 베포
+SDK 발표 이후에 Iphone OS로 명명되었다가 2010년 6월 ios4발표와 함께 ios로 변경
+안드로이드 1.1 버전은 아이폰 오리지널을 딴 코드네임을 가진 최초의 버전
+구글은2009년 4월을 기점으로 이후에 출시한 안드로이드 버전에 디저트 이름을 붙여서 공개
[iOS의보안체계]
- IOS는 맥OS인 OS X의 모바일 버전으로 시작
- 맥 OS는 Darwin UNIX에서 파생하여 발전 된 것이므로 IOS의 원래 툴은 유닉스라고 생각할 수 있음
- IOS는 보안에 대한 기본적인 통제권을 애플이 소유
- 완전한 통제를 위해 보안 모델을 두고 네 가지 시스템 보안 체계를 갖춤
- 안전한 부팅절차 확보
IOS를 사용하는 모바일 기기는 모든 소프트웨어는 애플 암호화 로직의 서명된 방식에 의해 무결성 확인 후 동작
- 시스템 소프트웨어 개인화
애플은 보안 문제에 즉각적으로 대응할 수 있도록 모든 소프트웨어를 애플의 아이튠즈를 통해 일괄 배포 애플은 모든 단말기에 설치된 모든 응용 프로그램에 대해 각각의 고유한 코드 값으로 버전을 관리함
- 응용 프로그램에 대한 서명
애플은 IOS에 설치되는 모든 앱에 대해 코드 무결성 사인을 등록하게 하고 있음 애플은 개인이 각각의 IOS에 설치한 애플리케이션에 문제가 있을 경우 네트워크에 연결된IOS를 강제로 삭제할 수 있음
+코드 무결성 사인: 앱의 코드 무결성 사인이 등록된 것과 다를 경우 앱을 설치하지 목하게 하는 것
- 샌드박스 활용
애플은 애플이 만든 앱에는 샌드박스를 적용하지 않고 사용자 앱인 경우에 적용 사용자 앱은 기본적으로 앱 간에 데이터를 주고받을 수 없고 시스템 파일에도 접근할 수 없음
+샌드박스 : 응용 프로그램이 실행된 때 가상 머신 안에서 실행된는 것처럼 원래의 운영체제와 완전히 독립되어 실행되는 형태
- 멀티태스킹 금비
IOS는 음악을 듣는 것 외의 멀티태스킹을 금지한다. IOS 단말기의 성능 문제 때문이기도 하지만 악성 코드가 IOS에서 활동하는 것을 막기 위함
-원격지에서 IOS로그인 금지
IOS는 유닉스에 바탕을 두고 있으므로 일반 유닉스처럼 SSH서버를 실행할 수 있고 로컬 또는 원격지에서 SSH서버에 로그인할 수도 있음
하지만 원격지에서 IOS를 구동하는 단말기에 HTTP와 FTP의 단순한 파일 전송 기능 이외에는 명령을 입력할 수 있는 형태의 응용프로그램을 허용하지 않음
[IOS의 취약점]
- IOS는 외부 해커가 IOS에 접근할 수 있는 방법이 무척 제한적
- IOS의 보안상 문제점은 대부분 탈옥을 한 IOS기기에서 발생
- 탈옥한 IOS기기로는 IOS시스템 파일에 접근할 수 있음
- 사용자가 IOS를 탈옥할 때 반드시 적용해야할 보안사항은 일반PC와 마찬가지로 기본 패스워드를 변경해야함
[안드로이드의 보안체계]
-
안드로이드는 리눅스 커널을 기반으로 하는 모바일 운영체제
-
구글은 애플의 폐쇄적인 정책과 달리 공개적인 프로그램 개발을 추구
-
응용프로그램의 권한 관리
안드로이드에 설치된 모든 응용 프로그램은 일반 사용자 권한으로 실행한다 사용자의 데이터에 접근할 때 모든 사항을 응용프로그램 사양에 명시하고 접근 시 사용자 동의를 받음. 모든 응용 프로그램은 설치 시 자신의 고유한 사용자 아이디를 할당 받아 동작
-
응용 프로그램의 서명
안드로이드 역시 애플과 마찬가지로 설치되는 응용프로그램에 대해 서명을 실시 애플이 자신의 CA를 통해 각각의 응용 프로그램에 서명하여 배포하는 반면, 안드로이드는 개발자가 서명함
-
샌드박스 활용
안드로이드 애플리케이션도 IOS처럼 샌드박스 프로세스 내부에서 실행.
기본적으로 시스템과 다른 애플리케이션에 접근하는 것을 통제함. 그러나 안드로이드는 특정 형태를 갖추어 권한을 요청하는 것을 허용
[안드로이드의 취약점]
- 안드로이드는 사용자가 보안 수준을 선택할 수 있다는 점에서 IOS보다 훨씬 자유로운 운영체제
- 앱 마켓도 다양하기 때문에 각종 바이러스와 악성 코드가 유포되며 그에 따른 백신도 보금
- 안드로이드는 자유로운 개발과 변경이 가능한 반면 IOS에 비해 상대적으로 보안이 취약
- IOS의 탈옥과 비슷한 개념으로 안드로이드에서는 루팅을 할 수 있음
[모바일 기기 보안]
- 모바일 기기는 이동성이 뛰어나기 때문에 공격을 받을 때보다 공격에 사용될 때 문제의 소지가 더 큼
- 이동성을 이용하면 워드라이빙으로 좀 더 넓은 영역이나 접근하기 어려운 곳의 무선 랜까지 공격할 수 있음
+워드라이빙 : 노트북에 수신율이 좋은 안테나를 연결하고 차에 탄 채 보안이 취약한 무선 랜을 탐색하며 해킹을 시도
[블루투스]
선을 사용하지 않고 휴대전화, 휴대용 단말기, 주변 장치 등을 연결하는 기술
여러가지 장치가 작은 규격과 적은 전력으로 접근하기 때문에 높은 수준의 암호화와 인증을 구현하기가 어려워 다양한 위험에 노출될 수 있음
[블루프린팅]
- 불루투스 공격장치의 검색 활동을 의미
- 각 블루투스 장치에는 MAC주소와 유사하게 6바이트의 고유 주소가 있음(제조사3+식별번호3)
- 블루투스 장치는 종류를 식별하기 위해 서비스 발견 프로토콜SDP를 보내고 받음
- 공격자는 이 서비스 발견 프로토콜을 이용하여 공격이 가능한 블루투스 장치를 검색하고 모델을 확인 가능
[블루스나프]
- 블루투스의 취약점을 이용하여 장비의 임의 파일에 접근하는 공격
- 공격자는 블루투스 장치끼리 인증 없이 간편하게 정보를 교환하도록 개발된 OPP기능을 사용하여 블루투스 장치에 있는 주소록이나 달력 등의 내용을 요청하여 열람하거나 취약한 장치의 파일에 접근할 수 있음
[블루버그]
- 블루투스 장비 간의 취약한 연결 관리를 악용한 공격
- 공격 장치와 공격 대상장치를 연결하여 공격 대상 장치에서 임의의 동작을 실행
- 블루투스 기기는 한 번 연결되면 이후에는 다시 연결하지 않아도 서로 연결되는데, 이런 점을 이용하여 공격