라벨이 컴퓨터 보안인 게시물 표시

[컴퓨터 보안] 버퍼 오버플로우(Buffer overflow)의 개념과 예방법

이미지
버퍼 오버플로우(Buffer overflow)의 개념과 예방 버퍼 오버플로우 개념 버퍼 오버플로우는 버퍼 오버런(buffer overrun), 버퍼 오버라이트(buffer overwrite)라고도 불린다.  버퍼 오버플로우의 개념은 버퍼에 할당된 저장 영역에 할당된 영역보다 더 많은 자료를 입력하여 데이터를 변경 할 수 있는 조건이다.  공격자는 조건을 이용하여 시스템 먹통으로 만들거나 코드를 삽입해서 시스템의 제어를 가진다. 버퍼 오버플로우는 스택 버퍼 오버플로우, 힙 버퍼 오버플로우 2 가지가 있다. 버퍼 오버플로우 예제 1. 아래 코드를 실행 해보자. #include <stdio.h> #include <string.h> void vulnerableFunction ( char* input) {     char buffer [ 10 ];     strcpy_s ( buffer, 20 , input ) ; //4 copy하기     printf ( "입력값: %s\n" , buffer ) ; //공백"\n" 포함 10자가 넘으면 오류 발생 } int main () {     char userInput [ 20 ];     printf ( "문자열을 입력하세요: " ) ; // 1. 문자 입력     gets ( userInput ) ; //2. 문자열 입력 받기(공백"\n" 포함 )     vulnerableFunction ( userInput ) ; //3. 함수 가기     return 0 ; } 2. 1234567891 을 입력하면 총 11글자다.(gets 함수는 문자열을 입력하는 함수인데 공백(\n)을 포함 한다.) 3. ...

[컴퓨터 보안] 침입 방지 시스템(IPS)이란 무엇일까?

침입 방지 시스템(IPS)이란 무엇일까? 침입 방지 시스템(IPS)이란 침입 탐지 시스템(IDS)을 확장한 시스템이다. 침입자의 활동을 막거나 차단하는 기능을 가진다. IPS는 IDS와 마찬가지로 호스트기반 , 네트워크 기반 , 분산 ( 하이브리드 ) 기반 IPS 가 있다. 호스트 기반 IPS(HIPS) 공격을 감지하기 위해 오용 탐지와 비정상 감지 기술을 사용한다.  HIPS가 다루는 악성 공격 패턴은 아래와 같다. - 시스템 자원변경 - 권한 상승 공격 - 버퍼 오버플로우 공격 - 이메일 주소록 접근 - 디렉터리 탐색 장점 : 여러 툴이 같이 동작하고 공격 방지가 더 넓으며 관리는 더욱 쉽다. 네트워크 기반 IPS(NIPS) NIPS는 패킷을 제거하거나 TCP연결을 끊을 수 있다. 또한 서명 감지나 anomaly 감지 기술을 사용한다.  NIPS가 공격 패킷을 감지 하는 방법은 아래와 같다. - Pattern matching - Stateful matching - Protocol anomaly - Traffic anomaly - Statistical anomaly 분산(하이브리드) IPS 데이터를 많은 호스트와 네트워크 기반 센서를 통해 수집한다. 수집된 정보를 중앙 분석 시스템에 전달하여 상관 관계를 분석하여 악의적인 행동 패턴을 등록하여 방어한다. 분산IPS는 최고가 디지털 면역 시스템이다. 디지털 면역 시스템 : IBM에서 개발한 악성코드에 대해 방법위한 방어 시스템이다. 이 시스템은 악성코드가 유입됐을 때 빠르게 응답하여 악성코드가 활동하기 전에 제거 할 수 있다.

[컴퓨터 보안] 방화벽(firewall) 이란 무엇일까?

이미지
방화벽(firewall) 이란 무엇일까? 방화벽의 특징, 종류 등을 알아보자. 방화벽을 왜 사용할까? 화재가 나면 방화벽을 내려 불이 방화벽 뒤로 오지 못하도록 한다. 컴퓨터, 네트워크 보안 측면에서 방화벽은 기업, 대학교 등 거대한 조직에서 사용하는 네트워크를 외부로부터 공격을 감시하고 보안을 강화해 준다. 방화벽의 목적 1. 내부 에서 외부, 외부에서 내부로 가는 모든 트래픽은 방화벽을 거쳐야만 연결이 된다. 2. 내부 보안 정책에 따라 인증 받은 트래픽만 통과 할 수 있다. 3. 방화벽 시스템은 해킹, 침투하기 힘들어야 한다. 방화벽의 기능 1. IP 주소와 프로토콜 값 : 외부나 내부로부터 접근 가능한 인터넷 서비스의 종류를 결정한다. 2. 응용 프로토콜 : 특정 서비스 요청이 어느 방향으로 흐를지 결정해준다. 3. 사용자 식별 : 사용자의 권한을 지정하여 권한마다 특정 서비스에 접근 허가를 결정한다. 4. 네트워크 활동 : 서비스가 어떻게 사용 될 지를 정의한다. 방화벽의 한계 1. 방화벽을 회피하는 침입은 대처가 어렵다. 2. 외부 공격자와 내통하고 있는 내부 공격자의 공격을 막지 못한다. 3. 무선 랜은 보안이 불완전한데, 무선 랜을 사용하여 내부 네트워크에 접근 할 수 있다. 4. 감염된 노트북 같은 이동 저장 장치가 네트워크에 연결되어 사용 될 수 있다. 네트워크 보안에서 방화벽 하나만 사용하는 것이 아닌 다른 보안 기법들과 함께 사용한다. 방화벽의 종류 1. 패킷 필터링 방화벽 들어오고 나가는 IP 패킷에 미리 정해진 규칙들을 적용하여 그 결과에 따라 전달하거나 제거한다. 주로 내부로 들어오거나 나가는 방향 총 2 방향을 검사하도록 세팅한다. 아래 용어를 사용해서 규칙을 만든다. 출발지 IP 주소 : 패킷이 시작된 시스템 IP 주소 도착지 ...

[컴퓨터 보안] 네트워크 기반 침입 탐지 시스템(NIDS)

네트워크 기반 침입 탐지 시스템(NIDS) 이란? 네트워크 기반 침입 탐지 시스템(NIDS)  1. 네트워 기반 침입 탐지 시스템이란? NIDS는 각각 네트워크의 연결 부위에서 트래픽을 감시한다. 실시간에 가까운 속도로 각각 패킷을 분석하여 침입 패턴을 찾아낸다. 네트워크, 전송, 응용 계층의 프로토콜 침입 패턴도 분석 할 수 있다. HIDS와 차이점은 HIDS는 하나의 호스트에서 사용자나 소프트웨어를 분석하는 반면 NIDS는 네트워크에 존재하는 잠재적 취약점을 가진 시스템으로 보내지는 트래픽을 분석한다. 2. NIDS 센서의 종류 데이터를 모으는 센서는 inline or passive 두가지 모드로 설치 된다. 1. inline 센서 : 네트워크 세그먼트에 삽입되어 삽입된 센서를 직접 통과하는 트래픽만 감지한다. 2. passive 센서 : inline 보다 많이 사용된다. passive 센서는 네트워크 트래픽의 복사본을 감시한다. 무슨 말이냐면 실제 트래픽은 센서를 통과하지 않는다. 3. 이상 탐지 기반 NIDS 나열만 하자면 - 서비스 거부 공격 - 스캐닝 - 웜 4. 오용 탐지 기반 NIDS 나열만 하자면 - Application layer reconnaissance and attacks - Transport layer reconnaissance and attack - Network layer reconnaissance and attacks -Unexpected application services -Policy vialations

[컴퓨터 보안] 호스트 기반 침입 탐지 시스템(HIDS) 이란?

호스트 기반 침입 탐지 시스템(HIDS) 이란? 호스트 기반 침입 탐지 시스템(HIDS)  1. 호스트 기반 침입 탐지 시스템이란? HIDS는 취약하거나 민감한 시스템의 보안 소프트웨어에 레이어를 추가하여 이루어 진다. 예를 들어 데이터 베이스 서버 및 관리 시스템이 있다. HIDS는 의심스러운 동작을 검출 하기 위해 다양한 방법으로 활동을 감시한다. 장점으로는 시스템 외부와 내부 모두 감지를 할 수 가 있다. 2. HIDS가 수집하는 데이터 1. 시스템 호출 추적 : 시스템 프로세스에 의해서 시스템 작동 순서 기록이 남는다. 이 때 HIDS의 데이터에서 확인 한다. 여기서 재밌는게 유닉스, 리눅스는 시스템 호출이 잘되는데 윈도우즈는 특정한 프로시저들은 DLL의 방해를 받아서 문제가 생긴다. 2. 로그 기록 : 운영체제에는 사용자의 활동 정보를 수집하는 회계 소프트웨어가 있다. 로그 기록은 이론상 침입 탐지를 위해서 사용하지만 컴퓨터 보안에서 더욱 사용 된다. 3. 파일의 무결성 체크섬(check sum) : 정기적으로  파일을 검사하고 암호화 된 체크섬을 비교하여 변화된 값이 있는 지 확인 한다. 4. 레지스트리 접근 : 레지스트리에 접근해서 모니터링으로 체크한다. 3. 이상 탐지 기반 HIDS 유닉스나 리눅스 시스템에서 수집된 데이터를 사용하여 회계 기록이나 로그 기록을 사용하여 탐자하며 시스템 호출 추적 기반으로 탐지 한다. 4. 오용 탐지 기반 HIDS 오용 탐지 기반 HIDS는 안티 바이러스 프로그램으로 가장 많이 사용 된다. 악의적인 행동을 파악하여 유명한 바이러스를 탐지한다.

[컴퓨터 보안] 침입 탐지 시스템(IDS, HIDS, NIDS, 분산IDS) 정리

침입 탐지 시스템(IDS, HIDS, NIDS, 분산IDS) 정리 침입 탐지 시스템(IDS) 1. 침입 탐지 시스템(Intrusion Detection System)이란? 시스템 이벤트를 24시간 감시와 분석을 통해 시스템에 불법적인 접근이 있다면 실시간으로 관리자에게 알려주는 서비스.  2.  침입 탐지 시스템(IDS)는 3가지로 이뤄져 있다. 센서(sensor) : 센서는 자료 수집에 사용. 네트워크 패킷, 로그, 시스템 호출 등 정보를 수집 하여 Analyzers에 전송. 분석기(Analyzers) : 하나 이상의 센서나 다른 Analyzer로부터 입력 데이터를 수집. 침입이라고 판단되면 알려준다. UI(User Interface) : IDS의 인터페이스를 사용해서 ID출력 내용을 보거나 시스템을 조절 가능. 3.  침입 탐지 시스템(IDS)는 3가지의 논리적 요소로 구성. - 호스트 기반 침입 탐지 시스템(HIDS) : 하나의 호스트의 특성과 그 안에서 발생하는 이벤트들을 감시 및 탐지 - 네트워크 기반 침입 탐지 시스템(NIDS) : 네트워크 특정 세그먼트에서 관찰되는 네트워크 트래픽을 감시하고 네트워크, 전송, 응용 프로토콜 분석 및 탐지 - 분산(하이브리드) IDS : 센서, 호스트, 네트워크 기반 IDS로부터 오는 정보들을 모두 합쳐 침입을 분석. 4. 분석 방법 침입자를 탐지하기 위해서 2가지 방법을 사용한다. 1. 이상 탐지 : 장기간 수집한 침입자가 아닌 일반 사용자들의 행동 패턴 데이터를 수집한다. 데이터를 기반으로 관찰된 행동이 합법적인 사용자의 행동이라고 판단이라고 생각 할 수 있도록 통계학적인 테스트를 통해 판단한다. 2. 오용 탐지 : 이상 탐지가 정상적인 행동을 탐지 한다면 오용 탐지는 적절한 행동을 정의 한다. 즉 침입자를 판단하기 위해 규칙과 공격 패턴을 정의한다. 자, 이상탐지는 정상적인 행동을 탐지 ...

[컴퓨터 보안] 소프트웨어 보안, 소프트웨어 품질과 신뢰성의 차이

소프트웨어 보안, 소프트웨어 품질과 신뢰성의 차이 소프트웨어 보안의 관점에서 소프트웨어 품질과 신뢰성은 비슷해 보이지만 차이가 있다. 소프트웨어 품질과 신뢰성 품질은 프로그램이 작동을 했을 때 우연한 실패와 관련 있다. 예를 들어 8시간 동안 프로그램을 테스트 했다고 하자. 프로그램을 마우스로 클릭, 입력하면서 버그가 하나도 발생하지 않았다. 이러면 품질이 좋은 거다. 만약에 버그가 1, 2개 발생하면 수정을 한다. 이처럼 최대한 테스트를 하면서 버그를 찾아내며 수정을 하는 것에 목표를 둔다. 100개의 버그가 있더라도 프로그램의 목적의 문제가 되지 않는 버그라면 굳이 찾을 이유가 없다. 무조건 정수 1234만 입력 할 거라면 문자열 입력 했을 때 생기는 버그는 검증하지 않는다. 소프트웨어 보안 소프트웨어 보안은 위와 다르다. 프로그램 실행 방법, 실행 환경, 데이터 처리 방법 등 모든 관점들을 주의 해야 한다. 소프트웨어 품질과 신뢰성은 목적이 정해져 그 이외의 버그는 굳이 수정하지 않지만 소프트웨어 보안은 잠재적인 버그를 전부다 테스트해서 수정해야 한다. 전화번호 처럼 정수만 입력 하는 창에도 문자열, 기호 등을 입력해서 버그가 있는지 다 확인 해야 봐야 한다.

[컴퓨터 보안] 비밀번호를 길고 복잡하게 설정해야 하는 이유

이미지
비밀번호를 길게 복잡하게 설정해야 하는 이유에 대해 알아보자. 사람들은 비밀 번호를 대충 짓는 경우가 많다. 21세기에 이건 정말 위험한 행위다. 수 많은 해킹 방법이 있지만 비 전문가도 바로 알 수 있는 간단한 예시가 있다. 비밀 번호 해킹 과정 우리의 비밀번호는 암호화 알고리즘을 통해서 보호 받고 있다.  데이터가 해킹 당했을 때 당신의 비밀번호가 1234 라면 해커에게는 as8r 이런 식으로 보인다는 거다. 해커는 as8r 을 1234로 바꾸는 복호화라는 작업을 해야 한다. 이렇게 암호화로 자신의 비밀번호는 보호 받고 있다. 그러면 비밀번호 알아내기 어려운 거 아니야? 라고 할 수 있지만 전수 공격(brute-foce attack) 이란 것을 통해서 비밀번호를 알아낸다. 전수 공격 이란? 비밀번호 해킹을 위해 모든 경우의 수를 입력하는 거다. 예를 들어 0 ~ 99 까지가 있다면 0 ~ 99 까지 다 쳐보는 거다. 그럼 이때 자신의 비밀번호가 asdf1234, zxcv1234, 4321qwer 이런 간단한 거면 그냥 바로 뚫리는 거다. 전수 공격이 키 공격 시 걸리는 시간 세가지 대중적인 대칭 키 암호 알고리즘 : DES, Triple DES, AES 위에 표는 NIST에서 연구한 대칭 키 암호에서 많이 사용 하는 각각의 알고리즘을 PC 1대로 전수 공격 시 걸리는 시간을 보여준다. (맨 오른쪽이 걸리는 시간) 표를 보면 보면 전수 공격을 하면 10년, 수천년, 수만년 씩 걸린다. 하지만 해커들은 이미 많이 사용되는 비밀번호 리스트를 가지고 있다. 예를 들어 이름+생일, 유명 캐릭터 + 숫자 같이 이런 리스트를 먼저 입력 한다. 따라서 간단한 비밀번호는 해킹 될 확률이 높다. 따라서 비밀번호를 복잡하게 설정해서 해킹 확률을 최대한 낮춰야 한다. 또 한 하드웨어의 발달로 지금 인텔 i9, RTX 4090 이런 거와는 비교도 안되는 하드웨어를 가진 슈퍼 컴퓨터들을 사용하면 전수 공격 속도가 비약적으로 상승한다. 다만 슈퍼 컴퓨터는 대여비가 천...