본문 바로가기
시스템, 네트워크 보안

시스템 / 네트워크 보안 [일곱 번째 시간 정리]

by 할 수 있다 ! 2024. 3. 15.

저번 시간에 정리했던 내용들을 다시 간단하게 정리하겠습니다.

 

 

 

* 공개키 방식 

 

- 개인 키 : 소유자 혼자서만 보관하는 키 

- 공개 키 : 거래 상대에게 제공하는 키

 

1. Diffie-Hellman 

 

- 최초의 공개키 방식을 제안 : 이산대수의 어려움에 근거한 방식 ( 1976 년 ) 

- 개인 키를 이용해서 공개키를 생성한 후, 암호화 통신을 원하는 상대방에게 제공한다. ( 공개키 교환 ) 

- 상대방의 공개키와 자신의 개인키를 연산해서 '세션키(대칭키)'를 생성하게 된다. : 대칭 키 교환 문제가 해결된다. 

 

- 전송하려는 데이터는 '세션 키'로 암호화 및 복호화 가능해진다. 

- 단점 : MITM 공격에 취약한다. --> 많이 사용하지 않는다.  EX) 텔레그램 

 

2. RSA 

 

- 소인수분해의 어려움에 근거한 방식 (1977년)  EX) X*Y = 91 

 

- 공개키로 암호화 하면 개인키로 복호화 --> 기밀성 제공한다. 

 

- 개인키로 암호화 하면 공개키로 복호화 --> 인증 및 부인봉쇄를 제공한다. 

 

- 2004년에 특허가 만료됨, 무료로 사용 가능하다. -----> 사실상의 표준 ( De Facto ) EX ) TCP/IP 

 

1) 기밀성 (Killer 는 Boss 의 부하 ) 

 

송신측 : Boss 는 " A를 죽여라 " 를 Killer의 공개키로 암호화 해서 전송한다. 

수신측 : Killer 는  암호문을 복호화 하기 위해서 자신의 개인키로 복호화 --> "A를 죽여라" 

 

Quiz ) Killer 는 A를 죽이러 갔을까 ? 안갔다. 왜 ? Boss가 보냈는지 확실하지 않기 때문에 

 

2 ) 인증 

 

송신측 : Boss 는 "A를 죽여라 " 를 자신의 개인키로 암호화 해서 Killer에게 전송한다. 

수신측 : Killer 는 암호문을 Boss의 공개키로 복호화 "A를 죽여라 " 라는 메시지를 확인한다. 

             ---> Boss의 공개키로 복호화 된다는 것은 Boss가 개인키를 사용했다는 증거입니다. 

 

Quiz) Killer는 A를 과연 죽일수 있을까?  실패한 이유는???   A도 메시지를 볼 수 있었음 (Killer가 오는 것 예상)

 

3) 기밀성 + 인증 

 

송신측 : Boss는 " A를 죽여라 " 를 자신의 개인키로 암호화 한 후 Killer의 공개키로 2차 암호화 해서 Killer 에게 전송한다. 

수신측 : Killer는 암호문을 자신의 개인키로 복호화를 하고 Boss의 공개키로 2차 복호화를 하면 평문이 나오게 된다. 

 

--> Boss 가 보낸 것이 확실하고 Killer 혼자만 메시지를 볼 수 있다. ( 기밀성 ) 

 

Quiz) Killer는 갔을까요?  가기는 갔는데 너~~~무 늦게 감.... 왜????

   ----> 공개키 방식은 속도가 오래 걸리기 때문이다. 

 

4) 기밀성+인증+효율성+무결성 (PGP : Pretty Good Privacy)

- 효율성을 높이기 위해서 (=속도를 빠르게 하기 위해서) 대칭키를 사용하면 된다. 

 

* 송신측 : 

- 1차 무결성 : 메시지의 해시값을 구해서 

- 2차 암호화 (인증) : 송신자의 개인키로 암호화 한다.

- 3차 암호화 ( 기밀성 )  : 대칭키를 만들어서 메시지를 암호화 한다. 대칭키는 수신자의 공개키로 암호화 한다. --> 붙여서 한번에 보낸다. ( 메시지 부가형 ) 

 

* 수신측 : 

 

- 1차 복호화 (기밀성) : 수신자의 개인키로 대칭키를 복호화 한다. --> 대칭키 

- 2차 복호화 ( 인증 ) : 대칭키로 메시지를 복호화 해서 해시 값을 구한다. 

- 3차 무결성 검증 : 메시지에서 해시 값을 계산해서 송신자의 공개키로 복호화한 해시값과 비교한다. 

 

* PGP : 이메일 암호화 기법 --> 너무 복잡해서 GPG 등장 

 

* 해시 함수 (Hash Function) 

 

1) 고정길이 출력 : 원문의 길이와 관계없이 항상 일정한 크기로 출력된다. 

2) 일방향 함수 : 원문으로 해시값을 구할수는 있지만, 해시값과 해시함수를 알아도 원문을 만들 수 없다. 

3) 충돌 방지 : 해시값의 개수는 상당히 크기 때문에 원문이 다르면 해시값이 달라진다. ( 무결성 검증 ) 

 

* 취약한 해시함수 

 

- MD5 ( 128bit ) : 충돌될 확률이 1/(2의128승) 이지만, 컴퓨터 성능이 매우 발전해서 최근에는 사용을 권장하지 않는다. 

 

- SHA-1 (160bit) : 충돌될 확률이 1/(2의 160승) 이지만, 컴퓨터 성능이 매우 발전해서 최근에는 사용을 권장하지 않는다. 

 

--> MD5, SHA-1 은 ISMS-P 인증에서 결함으로 판정한다. 

 

참고 ) SHA-256 은 Bitcoin에서 사용중이다. 아직까지는 안전하다. 

 

 

* 인증성

 

- 공개키와 공개키의 해시값에 인증기관(CA)의 개인키로 서명한 것이 포함되어 있다. 

- 공개키의 주인이 올바르다는 것을 인증기관이 보증하는 것이다. 

- 인증 기관이 정부에서 인정한 공인인증기관 (5개)이면 인증서는 공인인증서가 된다. 

 

- 데이터 3법의 개정안이 나오면서 은행, 증권 회사도 자체 인증 기관으로 인증서 발행한다. 

- 서버용 글로벌 인증서 (SSL인증) : 1년에 30만원 이상 

- 개인용 공등인증서 : 4400원/1년 

 

 

* SSL / TLS 

 

- SSL 로 시작했으나 취약점이 나타나서 TLS 로 표준화 해서 사용하고 있다. 

 

- TLS 는 웹서버의 인증서를 웹브라우저에게 제공하는 프로토콜이다. 

 

- https 뿐 아니라 다른 7계층 프로토콜들도 TLS 를 사용할 수 있다. 

 

* RC 시리즈는 Rivest 교수팀이 만든다. 

 

- RC4 : 예전 IP 공유기에서 사용한다, XOR 연산, 지금은 안전하지 않는다. --> 사용 금지한다. 

 

- RC6 : AES 선정에서 2차까지 진출했지만, Rijndael 보다 속도가 느려서 탈락, 많이 사용하지 않지만 안전하다. 

 

 

* 보안 솔루션 

 

- 방화벽 : 3계층, 4계층 --> 출발지 IP, 목적지 IP, 출발지 Port, 목적지 Port, 프로토콜 (Big5) --> 허용 또는 거부를 결정한다. 

 


 

네트워크 보안 일곱 번째 정리 시작하겠습니다.

 

 

* IDS (Intrusion Detection System)

 

침입 탐지 시스템은 컴퓨터 네트워크나 시스템에서의 불법적인 액세스나 사용자 행위를 탐지하기 위한 소프트웨어나 하드웨어의 조합입니다. 이 시스템은 네트워크 또는 시스템의 보안 사건을 감지하고 분석하여 사용자나 관리자에게 경고를 보내거나 적절한 대응을 취할 수 있도록 도와줍니다.

 

1) 탐지 : IDS는 네트워크 트래픽 또는 시스템 로그를 모니터링 하고 미리 정의된 패턴이나 행위를 감지하여 잠재적인 침입을 식별합니다. 

 

2) 알림과 경고 : IDS가 침입을 감지하면 관리자나 보안 담당자에게 경고를 보내서 신속한 대응을 촉구합니다. 이는 이메일 , SMS, 또는 다른 경고 수단을 통해서 이루어질 수 있습니다. 

 

3) 기록 : IDS는 감지된 침입 시도나 이벤트에 대한 로그를 작성하여 추후 분석이나 사후 조치를 위한 정보를 보존합니다. 

 

4) 분석 : IDS 는 침입 시도의 특성이나 패턴을 분석하여 보안 이슈에 대한 이해를 돕고, 향후 침입을 예방하는 데 도움이 됩니다. 

 

5) 대응 : IDS는 침입이 감지되면 신속하게 대응할 수 있는 기능을 제공합니다. 이는 침입이 발생한 시스템을 차단하거나, 보안 정책을 변경하거나, 침입을 시도한 IP 주소를 차단하는 등 다양한 형태일 수 있습니다. 

 

IDS 는 네트워크 기반 및 호스트 기반 시스템에 모두 적용될 수 있으며, 예방 기능이나 감지 / 대응 기능의 강도에 따라서 다양한 유형의 IDS가 있습니다. 또한, 최근에는 기계 학습 및 인공 지능 기술을 활용해서 더욱 정교한 침입 탐지 및 분석이 이루어지는 추세입니다. 

 

- IDS 는 네트워크나 시스템에서 발생하는 활동을 모니터링 해서 악의적인 활동이나 정책 위반을 감지합니다. 

 

- 네트워크 트래픽, 시스템 로그 또는 다른 데이터 소스를 분석해서 미치지 않은 액세서, 악성 소프트웨어 활동 또는 정책 위반이 있는지 감지합니다. 

 

- IDS 는 침입을 방지하지 않고 대신 의심스러운 활동이 감지되면 시스템 또는 네트워크 관리자에게 경고를 보냅니다. 

 

- 호스트 기반 (HIDS) 이나 네트워크 기반 (NIDS) 과 같이 컴퓨터나 네트워크의 활동을 모니터링 합니다. 

 

 

* IDS의 종류 : IDS 는 탐지만 해서 공격 등이 탐지되면 관리자에게 알람을 보냅니다. 

 

- HIDS : 중요한 서비스를 하는 컴퓨터에 SW 형태로 설치한다. 

 

- NIDS : HW + OS + SW 일체형으로 판매하고 방화벽 뒤에 배치한다. 

 

 

* IDS는 유지보수 비용이 발생한다. 

 

- 새로운 유형의 공격이나 새로운 악성 코드를 탐지하기 위해서 지속적으로 업데이트 해주어야 한다. 

 

cf. 악성코드를 만드는 사람은?

1) 학생 : 크게 위험하지 않음

2) 실업자 : 변형된 악성코드

3) 전직 IT종사자 : 거의 많지 않음

4) 전문 범죄집단 : 주로 랜섬웨어 유포 ---> 비트코인 입금

5) 군인, 공무원 : spyware (몰래 잠입, 정보수집, 시스템고장 등)

 

 

* IDS 의 탐지 원리 !!!!!!!!!! 상당히 중요합니다 !!!!!

 

1. 오용탐지 ( Misuse Detection ) 

 

오용탐지는 미리 정의된 패턴이나 서명을 사용하여서 악의적인 활동을 탐지하는 방법입니다. 

이러한 패턴은 알려진 공격 유형이나 해킹 시나리오에 대한 특징적인 패턴이 포함됩니다. 

시스템은 사전에 정의된 시그니처 데이터베이스를 사용하여 네트워크 트래픽이나 시스템 이벤를 분석하고, 이러한 시그니처와 일치하는 패턴을 감지하여 알려진 공격을 식별합니다. 

이 방법은 알려진 공격 유형에 대해 효과적이지만 새로운 공격이나 변형된 공격에는 적응력이 부족할 수 있습니다. 

 

- 기존에 알려진 악성 코드와 공격 유형 등을 정리해서 DB로 만들어 놓는다. --> Signature DB 라고 한다. ( 업데이트 필수 ) 

- 악성 코드나 공격에 대한 정보는 지식이므로 지식 기반이라고 한다. 

- 업데이트 필수 : 새로운 유형의 악성 코드와 공격 유형을 지속적으로 DB 에 추가해야 한다. 

- 패턴 매칭 : 저장해 놓은 시그니처와 패킷의 데이터 부분을 비교해서 일치하면 관리자에게 알려준다. 

- 정확도가 높음 --> 오탐이 적다. 미탐은 있을 수 있다. 

- 지식을 모아서 분석하므로 전문가 시스템으로 발전한다. 

 

2. 이상탐지 (Anomaly) 

 

이상탐지는 시스템 또는 네트워크의 정상적인 동작 패턴을 학습하고 이러한 패턴에서 벗어난 행위를 감지하여 악의적인 활동을 식별하는 방법입니다. 시스템은 일정 기간 동안의 트래픽 패턴, 시스템 사용 패턴, 자원 사용량 등의 통계적 데이터를 수집하고 이것을 기반으로 정상적인 동작을 정의합니다. 정상적인 패턴에서 벗어난 행위를 감지하면 시스템은 해당 행위를 이상으로 표시하고 경고를 생성합니다. 이 방법은 새로운 공격이나 변형된 공격에도 적응할 수 있지만, 정상적인 패턴을 정확하게 학습하고 설정하는 것이 중요합니다. 또한, 정상적인 동작과 비정상적인 동작을 구별하기 위한 임계값 설정에 대한 관리가 필요합니다.

 

- 평소의 트래픽을 약 2주간 모아서 저장한다. 

 

- 기준에서 벗어나는 행위가 발견되어서 임계치를 넘어가면 이상 행위로 판단하고 관리자에게 알려준다. 

 

- 통계기반이라고도 한다. 정확도가 낮다. --> 오탐이 많음 -->> 너무 자주 알람이 울리면 무시한다. 

 

- 새로운 공격 등을 파악할 수 있다. 

 

- 최근에는 딥 러닝, AI 등을 활용해서 오탐을 줄이고 있다. 

 

 

* IPS ( Intrusion Prevention System )

 

- IPS는 IDS보다 더 나아가 감지된 위협이나 악의적인 활동을 활동적으로 차단하거나 방지합니다. 

- 미리 정의된 규칙에 따라 트래픽을 차단, 패킷 드롭 또는 연결 재설정과 같은 자동 조치를 취합니다. 보안 위협에 대응합니다. 

 

- IPS 는 네트워크 트래픽과 함께 작동하여 공격이 목표물에 도달하는 것을 방지할 수 있습니다. 

- 보안에 대한 예방적인 접근 방식을 제공하여서 공격이 피해를 줄 수 있기 전에 중단합니다. 

- 깊은 패킷 검사 및 시그너처 기반 감지와 같은 기능을 포함할 수 있다. 

 

정리하자면 IDS는 주로 잠재적인 보안 위협을 감지하고 관리자에게 경고하는 데 중점을 둔다면 IPS 는 감지 뿐만 아니라 발견된 침입을 차단하고 예방하기 위해 자동 조치를 취합니다. 두 시스템은 종합적인 사이버 보안 전략의 중요한 구성 요소로서 다양한 사이버 위협으로부터 네트워크와 시스템을 보호합니다. 

 

* IPS (침입 방지 시스템) 

 

사례) 스노트 커뮤니티용 rules의 첫번째 줄

- IDS 가 탐지하고 알려주기만 한다. --> 관리자가 확인하고 조치를 취해야 한다. --> 대규모 네트워크에서 관제를 사용한다. 

 

- IPS는 탐지하고 스스로 차단하는 기능이 있다. 

 

- 데이터의 수집 

 

alert tcp $HOME_NET 2589 -> $EXTERNAL_NET any ( msg:"MALWARE-BACKDOOR - Dagger_1.4.0"; flow:to_client,established; content:"2|00 00 00 06 00 00 00|Drives|24 00|",depth 16; metadata:ruleset community; classtype:misc-activity; sid:105; rev:14; )

 

alert : 관리자에게 알려줌

tcp : tcp로 연결됨

$HOME_NET 2589 -> $EXTERNAL_NET any   :  내부망 2589번 포트를 이용해서 외부망의 어떤 포트로 나갈 때 탐지

msg : 관리자에게 보내지는 알람 내용  "   "안의 내용이 알람화면에 뜸

flow:to_client,established  클라이언트 방향, established (3-Way handshaking이 완성됨)

content:"2|00 00 00 06 00 00 00|Drives|24 00|"  : 공격 패턴 "    " ---> DATA부분에 들어있는지 확인함

 

 

* RAT ( Remote Access Trojan ) 

 

RAT은 원격으로 컴퓨터나 시스템에 접근하여 제어할 수 있는 원격 액세스 도구를 의미합니다. 

RAT은 " Remote Access Trojan" 의 약어이며, 악의적인 목적으로 사용될 수 있는 툴 중 하나입니다. 

 

1. 원격 제어 : RAT을 통해서 공격자는 원격으로 시스템에 접속하고 명령을 실행할 수 있습니다. 이를 통해 파일을 다운로드하거나 업로드 하고, 시스템 설정을 변경하거나 실행 시킬 수 있습니다. 

 

2. 키로깅 : RAT은 키로깅 기능을 제공하여서 사용자의 키보드 입력을 모니터링 하고 기록할 수 있습니다. 이것을 통해 공격자는 사용자의 로그인 정보나 기타 민감한 정보를 탈취할 수 있습니다. 

 

3. 스크린샷: RAT은 시스템 화면의 스크린샷을 찍어서 공격자에게 전송할 수 있습니다. 이것을 통해 공격자는 시스템 화면을 원격으로 모니터링 할 수 있습니다. 

 

4. 파일 관리 : RAT은 파일을 열거하고 삭제하거나 실행 할 수 있는 기능을 제공합니다. 공격자는 이것을 통해 시스템 내의 파일을 조작할 수 있습니다. 

 

5. 웹캠 및 마이크 제어 : 일부 RAT은 웹캠이나 마이크를 원격으로 활성화 해서 공격자가 시스템 주변의 환경을 모니터링 할 수 있습니다. 

 

RAT 는 주로 사이버 범죄자나 해커들이 악용하며, 목적은 정보 도용, 금전적 이득, 또는 시스템 파괴 등 다양합니다. 따라서 RAT 를 방지하기 위해서는 강력한 보안 정책과 방화벽, 안티바이러스 소프트웨어를 사용하고, 사용자 교육 및 보안 인프라 강화가 필요합니다.

 

- 네트워크 기능이 있는 아주 작은 실행 파일을 압축 파일에 넣고 실행 할 수 있도록 스크립트를 같이 넣어줍니다. 

(압축이 풀리면서 스크립트가 동작하면서 실행 파일이 동작하도록 합니다. -> 네트워크 연결 기능으로 C&C에 접속하게 됩니다. ) 

 

RAT (쥐) 라는 중의적인 의미가 있어서 아주 작은 틈으로도 지나다닌다는 의미 입니다. 

 

- 대표적인 RAT : GORAT, FATRAT (실습용), GhostRAT 등 종류가 많다. 

 

- 만들기가 쉽고 필요한 기능을 골라서 넣어서 Customized 가능하다. Dark Web에서 가장 많이 판매되는 유형입니다. 

 

 

* 구글에서 apt groups and operations spreadsheet" 를 검색하면 첫 번째 검색 결과 클릭합니다. 

 

- APT Group : 해킹팀

- operations : 해킹작전

 

- 0D 0A (개행 문자 = 줄바꿈 = 한줄 내립니다. + 커서 왼쪽 이동합니다.)

- 0x0D : Carriage Return (커서를 맨 왼쪽으로 이동합니다.)

- 0x0A : Line Feed (한줄 내립니다 ! )

 

http헤더 끝날때 0D 0A를 1번 사용,  http 요청이 모두 끝나면 0D 0A 0D 0A (2번사용)

 

사례) 맨 마지막 줄

alert ssl ( msg:"SERVER-OTHER OpenSSL x509 crafted email address buffer overflow attempt"; flow:established; content:"|06 03 55 1D 1E|"; ber_skip:0x01,optional; ber_data:0x04; ber_data:0x30; ber_data:0xa0; ber_data:0x30; content:"|81 82|",within 2; byte_test:2,>,500,0,relative; content:"xn--",within 4,distance 2,fast_pattern; metadata:policy balanced-ips drop,policy connectivity-ips drop,policy max-detect-ips drop,policy security-ips drop,ruleset community; reference:cve,2022-3602; reference:cve,2022-3786; reference:url,blog.talosintelligence.com/openssl-vulnerability/; classtype:attempted-user; gid:1; sid:300307; rev:3; )

 

오래된 패턴이나 최근 5년동안 들어온적이 없는 시그니처인 경우, 맨 앞에 #을 추가하면 주석처리됨

 

블랙코드 (2015, blackhat) : Max Butler를 소재로 한 가상 해킹 영화이다. 

 

 

* Wi-Fi 저장 목록 확인 

 

Wi-Fi 고급 설정 > 네트워크 관리 > 한번이라도 접속했던 Wi-Fi 목록이 있습니다.

Wi-Fi가 켜진 상태로 까페로 들어갑니다.  ---> Wi-Fi목록을 브로드캐스팅 ---> 일치하는 Wi-Fi 이름이 있으면 연결됩니다.

 누군가가 모니터링을 하고 있으면 Wi-Fi 목록 전체를 볼 수 있습니다.  ---> 앞으로 접속할 일 없는 Wi-Fi 목록은 삭제해야 합니다.

 

  A사람 : SK...  ,  인천공항Wi-Fi,  Hongkong Airport Wi-Fi,  koloon hotel Wi-Fi,  dongguk_wi-fi,  Public Wifi 205

 

 

* 암호화 지원 프로토콜 : https, SSH, VPN, TLS, RDP(윈도우 원격접속) 등

  암호화 지원 안되는 프로토콜 : Telnet, FTP, rlogin, 그냥http, TFTP 등등  ----> 무선 네트워크에서 스니핑 가능성

 

암호화 지원 안되는 프로토콜 : Telnet, FTP, rlogin, 그냥http, TFTP 등등  ----> 무선 네트워크에서 스니핑 가능성

 

* Android, Windows10 ---> 취약점이 발견되면 최대한 빨리 업데이트 됨 (자동 업데이트 활성화 ---> 취약점이 사라짐)

  Windows XP 등 ----> 자동업데이트 비활성화 ---> 취약점이 있는 상태로 유지됨