본문 바로가기

프로그래밍 놀이터/보안73

[도서 정리] 55. SELinux, TOMOYO Linux - 보안의 기본 55. SELinux, TOMOYO Linux - 보안의 기본 * SELinux( Security-Enhanced Linux ) -SELinux 는 TE(Type Enforcement)와 RBAC(Role Based Access Control)를 사용하여 시큐어 OS 의 요건인 강제 엑세스 제어(MAC)와 최소 특권을 구현하고 있다. -SELinux 에서는 사용자가 갖고 있는 권한보다 프로그램에 대해 허가된 조작이 더 우선시되는데, 이 조작을 기술하는 것이 TE 이며 RBAC 이다. -SELinux 에서는 프로그램에 대해 뭔가를 시킨다는 것을 ‘도메인'으로, 파일 등의 자원에 대해 ‘누구에 대해’, ‘뭔가를 시킨다’는 것을 ‘타입’으로 각각 정의할 수 있다.이것을 TE 라고 부른다.사용자에 대한 권한 부.. 2019. 12. 4.
[도서 정리] 54. 시큐어 OS - 보안의 기본 54. 시큐어 OS - 보안의 기본 -시큐어 OS 란 기존의 OS 보다 보안성이 강화된 OS 의 총칭이다. -MAC(Mandatory Access Control: 강제 엑세스 제어)기존의 많은 OS 에 채택되어 있는 DAC(Discretionary Access Control: 임의 액세스 제어)에서는 오브젝트(파일 등)의 소유자가 각 오브젝트에 대한 엑세스 권한을 설정할 수 있다.한편 MAC 에서는 오브젝트의 소유자가 아니라 관리자가 보안 폴리시를 유지하고, 오브젝트의 엑세스 권한도 컨트롤한다.따라서 MAC 의 경우 관리자가 권한을 부여해 주지 않으면 소유자라고 해도 오브젝트의 엑세스 권한을 변경할 수 없다.이와 같이 함으로써 보다 견고하게 시스템을 보호할 수 있게 된다. -최소 특권Linux 와 같은 .. 2019. 12. 3.
[도서 정리] 53. 랜섬웨어 - 보안의 기본 53. 랜섬웨어 - 보안의 기본 * 랜섬웨어란? -랜섬웨어(ransomware)란 감염된 사람의 컴퓨터 데이터를 인질로 잡아 몸값(랜섬)을 요구하는 멀웨어이다.인질을 잡는 방법은 감염시킨 컴퓨터의 데이터를 암호화여 읽을 수 없게 만드는 방법을 사용한다.현대의 암호화 기술로는 암호화를 푸는(복호화하는) 키가 없으면 자력으로 암호를 푸는 것은 거의 불가능하다. -랜섬웨어의 공격 대상은 컴퓨터뿐만 아니라 스마트폰 등이 감염되는 경우도 있다.전형적인 감염 경로는 표적형 공격에서도 사용되는 전자메일이다.랜섬웨어가 첨부된 메일을 실수로 열어 버리면 감염된 컴퓨터의 데이터가 암호화되어 볼 수 없게 된다. * 랜섬웨어에 대한 대처 -랜섬웨어에 걸렸을 떄 몸값을 지불해야 할까?지불해서는 안 되는 두 가지 이유가 있다.하.. 2019. 12. 2.
[도서 정리] 52. 크로스 사이트 리퀘스트 포저리(CSRF) - 보안의 기본 52. 크로스 사이트 리퀘스트 포저리(CSRF) - 보안의 기본 -크로스 사이트 리퀘스트 포저리(Cross Site Request Forgery: CSRF)는 웹 페이지에 대한 요청(리퀘스트)을 위조(포저리)함으로써 ‘정당한 인증 완료 이용자’로 위장하여 처리를 실행하는 공격 수법이다. -이 공격 수법의 특징으로 공격자는 사용자를 공격함에 있어 정당한 인증 사용자로 위장하기 때문에 인증을 돌파할 필요가 없다는 점에 있다.복잡하고 견고한 비밀번호는 보안 대책이 되지 못한다. * CSRF 는 상당히 무섭다. -CSRF 는 인증이 필요한 중요한 기능(비밀번호 변경, 결제, 게시판 글쓰기 등)을 노린다.CSRF 에서는 사이트에 대한 요청(리퀘스트)이 공격자로부터가 아니라 모르는 사이에 공격의 발판이 된 정식 이.. 2019. 12. 1.
[도서 정리] 51. 크로스 사이트 스크립팅(XSS) - 보안의 기본 51. 크로스 사이트 스크립팅(XSS) - 보안의 기본 -크로스 사이트 스크립팅(Cross Site Scripting:XSS)는 한 마디로 동적 웹 페이지나 웹 앱의 취약성을 악용한 공격 수법이다.동적 웹 페이지란 사용자의 입력 내용이나 조작 내용에 따라 표시 내용이 변하는 웹 페이지이다. -크로스 사이트 스크립팅의 구조를 이해하기 위해서 가장 먼저 이해해야 할 것은 악의를 가진 공격자가 직접 여러분의 브라우저(PC)를 공격하는 것이 아니다라는 점이다. 1. 공격자는 미끼 페이지를 준비2. 사용자가 미끼 페이지에 엑세스3. 사용자가 부정한 파라미터를 포함한 링크를 클릭4. 스크립트를 포함하여, 정규 페이지에 엑세스5. 정규 페이지 웹 서버는 응답을 반환.6. 응답에 포함된 스크립트가 사용자의 브라우저에서.. 2019. 11. 30.
[도서 정리] 50. OS 커맨드 인젝션 - 보안의 기본 50. OS 커맨드 인젝션 - 보안의 기본 * OS 커맨드 인젝션이란? -OS 커맨드 인젝션은 SQL 인젝션과 마찬가지로 인젝션 공격의 일종이다.인젝션 공격은 앱에 대한 데이터 입력을 악용하여 앱이 호출하는 외부 시스템을 의도하지 않은 형태로 조작하는 공격이다.SQL 인젝션의 경우 공격 대상이 DB 였지만, OS 커맨드 인젝션의 경우는 공격대상이 OS 쉘이 된다. -쉘은 OS의 커맨드를 실행하는 환경이다.쉘을 부정으로 조작할 수 있다는 것은 OS 가 실행할 수 있는 다양한 일, 예를 들면 파일의 참조, 편집, 삭제, 임의의 프로그램 실행 등이 공격자에 의해 가능해 진다는 것이다. * OS 커맨드 인젝션의 실행 방법과 대책 -OS 커맨드 인젝션은 OS 의 쉘을 호출할 수 있는 프로그래밍 언어(Perl 이나.. 2019. 11. 29.
[도서 정리] 49. SQL 인젝션 - 보안의 기본 49. SQL 인젝션 - 보안의 기본 -SQL 인젝션이란 웹 앱에 대한 입력을 악용하여, 앱의 뒤에서 작동하는 DB 에 부정으로 엑세스하는 공격이다.SQL 인젝션이 성공하면 공격자는 거의 자유롭게 DB를 조작할 수 있게 되므로 부정 액세스나 정보의 절취 및 변조, 파괴 등이 가능해진다. * SQL 인젝션의 구조 -SQL 중 사용자가 입력하는 부분이 비어 있는 형태로, 입력 값을 채워 넣는 방식을 잘 사용한다.앱에 입력하는 값을 부정으로 조작함으로써 SQL 의 조회 내용을 자유롭게 바꿀 수 있는 경우가 있다. * SQL 인젝션을 허용하는 취약성과 대책 -SQL 인젝션이 일어나는 원인은 사용자의 입력에 DB 에 대한 조회 내용이 단순한 빈칸 채우기의 범위를 넘어 자유롭게 바꿀 수 있게 되어 있는 취약성에 있.. 2019. 11. 28.
[도서 정리] 48. 버퍼 오버플로 - 보안의 기본 48. 버퍼 오버플로 - 보안의 기본 -소프트웨어에 대한 입력을 저장하는 영역(버퍼)을 넘치게 하는 것(오버플로)으로, 시스템에 의도하지 않은 행동을 시키는 공격이다.앱이나 컴퓨터를 다운시키거나 컴퓨터에서 임의의 프로그램을 실행 가능하게 한다.임의의 프로그램이 실행 가능하게 되는것(즉, 빼앗긴 상태)은 상당히 위험하다. * 버퍼 오버플로의 구조 -실행중인 프로그램에 입력한 데이터는 컴퓨터의 메모리상에 확보된 버퍼(미리 정해진 크기로 확보)에 쓰여진다.본래 입력 데이터는 그 확보된 크기에 맞게 들어가야 한다그런데 사이즈 체크가 되어 있지 않으면 사이즈보다 큰 데이터는 인접한 영역에 덮어 쓰여지게 되어 있다.버퍼의 인접 영역에는 컴퓨터의 프로그램 실행을 제어하기 위한 번지(주소)가 쓰여져 있는 경우가 많은데.. 2019. 11. 27.
[도서 정리] 47. 중간자 공격 - 보안의 기본 47. 중간자 공격 - 보안의 기본 -중각자(Man In The Middle: MITM) 공격은 통신 중간에서 공격자가 통신을 수신하여 비밀정보를 도청하거나 경우에 따라서는 통신 내용을 몰래 변조하는 공격이다.중간자 공격은 모든 종류나 형태의 2자간 통신에 있어서 적용 가능한 범용적인 공격이다. * 웹 엑세스의 중간자 공격의 예 -브라우저와 웹 서버 간의 통신에 있어 전형적인 것은 프록시 타입이다.프록시는 데이터의 송수신을 중계하는 기기로, 조직 내부에서 인터넷에 연결할 때 엑세스처를 제어할 목적으로 사용한다.하지만 이를 공격자가 사용하면 통신 데이터를 일단 수취하게 되므로 데이터의 내용을 보거나 중계처에게 송신하기 전에 데이터의 내용을 바꿔 쓸 수 있다.이것이 프록시를 사용한 중간자 공격이다. -프록시.. 2019. 11. 26.