본문 바로가기
IT_정보보안/인프라 & 보안기초

8. 악성코드

by jys275 2023. 12. 12.

이번에는 악성코드의 개념, 유형 등에 대해서 알아볼 것이다.
 
악성코드 유형 별 각각의 특징들을 잘 알아두면, 악성코드를 분석하고 분석 결과를 바탕으로
어떻게 대응 방안을 세워서 작성할지 조금 더 쉽게 결정할 수 있을 것이다.
 
 


 
 
악성 코드는 여러가지 의미로 섞어서 이야기 할 수 있겠지만,
간단히 악의적인 목적을 가지고 있는 소프트웨어라고 정리를 먼저 하고 알아보자.
 
 
악성코드(Malicious Code, Malware, 악성 소프트웨어)
 
 
개념 및 특징
컴퓨터 시스템, 네트워크, 데이터 등을 손상하거나 비정상적인 동작을 유도하는 프로그램. 
즉, 악의적 목적을 가지고 의도적으로 작성된 소프트웨어이다.

악성코드는 정말 다양한 유형이 존재하며,
주로는 사용자의 동의 없이 컴퓨터 시스템에 숨어 설치 또는 실행되어, 사용자에게 피해를 입힌다.
 
 
목적
기기, 데이터, 네트워크를 인질로 삼아 금전을 요구한다거나,
암호화하여 사용자의 데이터 파괴하는 행위를 일삼는다.
 
특히 공격자들은 조직을 공격하는 것이 수익성이 높다는 것을 알고,
기업을 대상으로 시스템 파괴하는 사례가 점점 증가하고 있다.

즉, 네트워크를 마비시켜 서비스 중단을 유도하고,
사용자의 개인 정보, 계정 정보, 금융 정보를 수집하여 악의적으로 사용한다.
 
 


 
 
악성코드의 유형
 
 
공격자들은 사이버 범죄를 위해 새로운 특징과 기능을 갖춘
여러 종류의 악성코드를 지속적으로 개발하고 있다.

또한 코드를 범죄자들 간 공유하는 경우도 존재하며, 
누구나 가입하여 공격을 수행할 수 있는 서비스형 악성코드도 존재하기에, 
전문 지식이 없는 범죄자들도 사이버 범죄로 인한 수익을 거둘 수 있다.

이렇게 환경은 계속 변화하고, 그에따라 정말 여러가지 유형들이 존재한다.
하지만 보통 실무에서 취급하는 대표 유형에 대해서만 먼저 구분해보자.
 
왜냐하면 그 밖에 세부적인 악성코드 유형들은 회사들마다
산정하고 판단하는 근거들이 상이한 경우가 많기에, 대표 유형에 대해서 정리해보는 시간을 가져보자.
 
대표 유형은 바이러스, 웜, 트로이 목마, (애드웨어), 스파이웨어, 랜섬웨어
6가지를 악성코드의 대표 유형이라고 할 수 있다.
 
 


 
 
바이러스(Virus)
 
 
바이러스는 역사가 오래된 악성코드이다.
보통 악성코드라는 단어보다는 바이러스라는 단어에 더 익숙할 것이다.
 
왜냐하면 바이러스는 역사가 오래된 특징과
그에따라 시대별로 여러가지 유형의 바이러스로 나뉘는 이유일 것이다.
 
일반적으로 바이러스의 대표적인 특징은
숙주가 되어지는 파일을 통해서 PC를 감염시킨다.
 
즉, 바이러스는 감염을 위해서 숙주가 되어지는 파일이 존재해야만,
감염이 가능하다는 특징을 가지고 있다는 점을 기억하고 정리해보자.
 
 
작동 방식(1) - 감염
다른 파일이나 프로그램의 내부에 자신의 코드를 삽입하여 감염된 프로그램을 생성한다.

 
작동 방식(2) - 전파
감염된 프로그램이 실행될 때, 바이러스도 함께 실행되는 형식이다.
 
이렇게 감염된 프로그램이 실행되면,
해당 컴퓨터의 다른 프로그램 또는 파일에 자신의 복사본을 삽입하여 "전파하여 확산되도록" 설계되어있다.
즉, 감염된 파일을 실행하거나 열게되면, 복사본이 계속 전파되는 형식이다.
 
 
특징
숙주 파일이 존재해야지만, 감염이 가능하고 이후에 자가 복제 및 전파를 할 수 있다.
주로 이메일 첨부 파일, 인터넷 다운로드 파일을 통해 전파된다.
 

사례(ILOVEYOU, 2000년)

전파

”ILOVEYOU”라는 제목을 가진 감염된 이메일을 통해 전파되었다.
첨부 파일은 "LOVE-LETTER-FOR-YOU.txt.vbs"로 명명되어 있다.

감염

사용자가 첨부 파일을 실행하면 스크립트 언어인 VBScript로 작성된 악성 코드가 실행되어 시스템이 감염된다.

침투

악성 코드를 통해 시스템의 주요 디렉토리 및 사용자 디렉토리에 ”.vbs .vbe .js .jse” 확장자를 가진 악성 파일이 복사된다.

재전파

감염된 시스템의 주소록을 통해 자동으로 이메일이 전파된다.
이러한 형식으로 급속도로 전파되어 사용자의 암호 탈취, 원격 조종, 파일 삭제 등의 행위를 일삼으며, 전 세계적 피해를 주었다.
 
 


 
 
웜(Worm)
 
 
웜도 바이러스와 동일하게 다른 PC를 감염 시킨다.
 
하지만 숙주가 되어지는 파일 같은 것이 존재하지 않아도,
네트워크만 연결이 되어 있으면 전파된다는 특징을 가지고 있다.
 
그래서 바이러스랑 비교했을 때, 웜은 네트워크만 연결되어 있으면 얼마든지 전파될 수 있기 때문에
매우 리스크가 큰 악성코드 유형이라고 이야기한다.
 
아무튼 둘에 대한 가장 큰 차이점은 숙주가 될 수 있는 파일의 유무이다.
 
또한 웜과 관련된 악성코드 감염 사례 기사들을 보면,
되게 넓은 범위로 뭔가 피해를 끼쳤다는 등의 내용들을 많이 볼 수 있을 것이다.
 
왜냐하면 웜은 잠깐 언급했듯이,
네트워크를 통해서 전파되는 특징으로 정말 빠르게 전파될 수 있기 때문이다.
 
 
작동 방식 - 자가 전파 및 복제
사용자가 손상된 프로그램을 실행해야만 확산할 수 있는 바이러스와 달리
네트워크에만 연결되어 있다면 사용자가 아무런 작업을 하지 않아도 전파된다.

 

특징
취약점 등을 이용하여 전파되며, 사람의 개입 없이 확산될 수 있는 자가 전파 및 복제 프로그램이다.

또한 호스트 파일에 의존하는 바이러스와 달리, 네트워크를 통해 스스로 시스템 간 복사 및 전파가 된다.
즉, 다수의 시스템에 동시에 영향을 미칠 수 있다.
 
 
사례(CodeRed, 2001년)

감염

Microsoft IIS 웹 서버의 “*Buffer Overflow” 취약점 이용하여
원격으로 웹 서버에 액세스하고, 악성 코드를 서버에 삽입하여 감염시키는 형식이다.

코드 삽입

CodeRed는 서버에 삽입된 악성 코드를 이용하여 자체 실행되며,
해당 코드는 웹 서버에서 실행되는 *스레드에 감염된 코드를 삽입하는 역할을 한다.

작동

감염된 서버는 랜덤하게 IP 주소를 생성하여, 해당 주소로 접근하고 취약한 서버를 찾는다.

공격

선택된 IP 주소에 원격으로 “Buffer Overflow” 취약점 이용해 해당 서버에 감염 코드를 전송한다.

복제 및 전파

성공적으로 공격되어 서버가 감염된 경우, 감염 코드를 포함한 웹 페이지를 해당 서버에 생성하고,
다시 반복하여 랜덤 IP 주소로 접근하는 방식으로 빠르게 전파되는 형식이다.


 
*Buffer Overflow(버퍼 오버플로우)
이 취약점은 프로그램이 데이터를 저장하는 메모리 공간을 벗어나서
인접한 메모리 영역을 덮어쓸 때 발생하는 현상이다.
 
*Thread(스레드)
프로세스 내에서 동작하는 실행 흐름이다.
 
 


 
 
트로이 목마(Trojan Horse)
 
 
고대 그리스 신화 중 트로이 전쟁에서 유리한 조건을 만들기 위해,
목마 안에 잠복해 있던 병사들이 도시 안으로 침입했다는 이야기에서 비롯되었다.
 
트로이 목마는 사실 대부분의 악성 코드들이 가지고 있는 특징이라고 할 수 있으며,
정상적인 파일인 것처럼 위장을 해서 사용자가 클릭을 유도하게끔 하는 특징을 가지고 있다.
 
 
작동 방식 - 위장
정상적인 소프트웨어나 파일에 숨겨져서, 사용자에게 위장된 형태로 제공된다.
사용자가 실행할 시, 기능이 활성화되는 형태이다.
 
즉, 사용자가 무심코 실행하는 행위를 노린다는 점에서 속임수에 의존한다.
 

특징
일부 트로이 목마는 *키로깅(keylogging)을 수행할 수 있으며, *백도어(backdoor)로도 사용이 가능하다.
 
키로깅 : 사용자의 타이핑을 기록하여 정보를 수집할 수 있다.
백도어 : 악성 코드를 원격 제어하고 추가적인 기능을 수행하는데 사용된다.
즉, 공격자에게 원격으로 제어되어 시스템에 대한 완전한 통제 권한을 주게된다.
 
키로깅을 수행하는 '키로거' 그리고 '백도어'는 악성코드로 분류하기도 한다.
 
하지만 백도어와 키로거 둘에 대한 특징을 보면, 보이지 않는 백그라운드 단에서 동작을 한다.
즉, 트로이 목마와 유사한 성격 및 동작을 가지고 있기 때문에 트로이 목마라는 악성코드에 포함하는 경우도 존재한다.
 

사례(Zeus, 2007년)

전파 및 감염

주로 이메일, 다운로드 링크 등을 통해 사용자의 시스템에 침투한다.
또한, 실제와 유사한 웹 페이지인 '피싱 웹사이트'를 통해 사용자의 개인 정보를 빼낼 수도 있다.

금융 정보 탈취

Zeus의 목적은 금융 정보를 탈취하는 것이다. 이를 위해 키로깅 등을 통해 온라인 뱅킹 계정에 접근한다.

감시

사용자에게서 특정 금액의 송금, 이체가 감지되면 공격자에게 신호를 보내고,
공격자는 특정 계좌로의 자금 이체 등의 명령을 전송한다. 또한 금융 비밀번호 조작 등의 행동도 수행할 수 있다.
 
 


 
 
애드웨어(Adware)
 
 
애드웨어는 사실상 악성코드로 분류하기는 애매하고,
비교하면서 알아보면 스파이웨어를 더욱 잘 이해할 수 있다.
 
애드웨어는 광고를 표시하거나 사용자의 행동을 추적하여 광고에 최적화된 콘텐츠를 제공한다.
즉, 단순히 광고를 위한 목적으로 만들어 놓은 프로그램의 형태이다.
 
주로 무료로 제공되는 소프트웨어나 앱과 번들로 제공되어 사용자가 설치할 때 함께 설치되곤 한다.
 
사실상 설치 유무를 체크하는 동의란이 구석에 아주 잘 숨겨져있어서 확인하기 힘들다.
아무튼 이런 애드웨어 설치를 위한 절차 없이 프로그램이 설치되도록 설계되어있으면 법적으로 악성코드로 분류된다고 한다.
 
 
스파이웨어(Spyware)
 
 
하지만 스파이웨어는 애드웨어 처럼 동의를 구하고 설치가 되는 것이 아닌,
위장을 통해 침투하여, PC 또는 서버에 있는 사용자의 정보를 유출하는 특징을 가지고 있다.
 
예를 들면, A라는 파일을 설치하고보니, B랑 C라는 파일까지 같이 설치가 된 것이다.
분명히 설치를 하고자 했던 의도도 없었고, 허용을 한 것도 아닌데 말이다.
 
즉, 이런 식으로 사용자의 동의를 구하지 않고 설치가 되어지며,
감염된 컴퓨터에 숨어 사용자의 정보를 수집하거나 활동을 추적하여 공격자에게 다시 전송 가능한 소프트웨어이다.
 
 
작동 방식 - 은밀한 설치
사용자가 모르는 사이에 사용자의 동의 없이 설치될 수 있다.
주로 무료 소프트웨어, 웹사이트, 이메일 첨부 파일을 통해 전파된다.

주요 목적은 사용자의 정보 수집(브라우징 습관, 키보드 입력, 계정 정보, 신용카드 정보 등)이다.

작동 방식 - 키 로깅, 캡쳐, 웹 브라우징 추적
키로깅을 수행할 수 있으며, 사용자의 화면을 주기적으로 캡쳐한다든가,
사용자가 어떤 웹 사이트를 방문했고, 검색어는 무엇이었는지 추적할 수 있다.
 

특징
사용자에게 자신의 존재를 알리지 않고 은밀하게 작동된다.
또한 컴퓨터가 부팅될 때 자동으로 실행되도록 설계되었다. 즉, 사용자가 모르게 백그라운드에서 계속 작동되는 것이다.
 
 
사례(CoolWebSearch, 2003년)

감염

사용자가 특정 웹사이트를 방문하거나 이메일 첨부 파일을 열면서 감염된다.

작동

홈페이지, 검색 엔진, DNS 설정 등 브라우저 설정을 악성으로 변경한다.
또한 프록시 서버 설정을 변경하여 사용자의 웹 트래픽 감시 및 조작, 키로깅, 브라우징 습관, 로그인 정보 수집 등의 행위를 일삼는다.

특징

시스템에 깊숙히 침투하여 제거가 어려운 것으로 유명했다.
많은 백신 및 안티스파이웨어 솔루션 등을 개발했지만, 지속적인 변종으로 완전한 제거가 어려운 경우도 있다.

 


 
 
랜섬웨어(Ransomeware)
 
 
Ransom(몸값)과 Software(소프트웨어)의 합성어이다.
 
공격자는 사용자의 PC를 감염시켜 안에 있는 문서, 이미지 등 중요한 파일들을 암호화 한 후,
해당 파일을 인질로 삼아 복구를 위해서 가상화폐를 지불하라는 형태인 악성코드이다.
 
랜섬웨어는 암호화폐를 지불하면 복구할 수 있도록 해준다고 명시되어 있지만,
사실상 돌려주는 사례는 거의 없다.
 
또한 복구가 됐더라도 파일 자체가 100% 원상 복구되지 않는다.
그렇기 때문에 랜섬웨어 같은 경우는 치료하는 방법보다는,
차라리 예방하는 방법으로 접근해서 대응 방안을 세운다고 보면 된다.
 
즉, 중요한 파일이 있는 경우라면 별도의 백업을 통해서 보관해놓는 방법이 예방하는 법이라고 할 수 있다.
 
또한 랜섬웨어는 치명적이었던 사건, 사고가 많았다.
기사 또한 많다보니 개인적으로 관련 기사들을 찾아보며, 어떤 이슈가 있었는지,
어떠한 방식으로 사용자들을 감염시키고자 했는지 등을 틈틈이 알아보자.
 
 
작동방식 - 전파 및 감염
이메일 첨부 파일, 취약점 등 다양한 방법으로 전파되어 사용자의 파일이나 시스템을 암호화하고,
해독이 가능한 공격자는 암호화폐를 통해 금전적 보상을 요구하는 형태이다.

감염된 사용자는 화면에 랜섬 메시지가 표시되며, 파일의 해제를 위한 지침이 포함된다.
 

특징
금전을 지불할 때 까지 사용자의 자산을 사용할 수 없도록 하는 형태이며, 
더 강한 압박을 주기 위한 전술 사용이 가능하다.
 
만약 금전을 지불하지 않을 시 파일 유출, 삭제 및 영구 손상 위협을 하거나
DDOS 공격을 통해 시스템을 오프라인 상태로 만들겠다고 위협하기도 한다.
 

사례(WannaCry, 2017년)

전파 및 감염

Microsoft에서 발견된 취약점을 이용하거나, 이메일과 웹사이트를 통해 전파되었다.
Worm과 유사하게 한 번 감염되면 내부 네트워크에서 다른 기기들로 자동 전파를 하여,
네트워크 상의 다수의 시스템이 감염되었다.

작동

감염된 시스템에 WannaCry가 성공적으로 침투하면, 사용자의 파일을 암호화한 후에,
비트코인으로 특정 금액의 결제를 요구하는 메시지를 표시한다.




 
 
봇넷(Botnet)
 
 
DDOS 공격에 관한 글을 작성하면서, 간단히 알아보았지만 이번 기회에 자세하게 알아보자.
 
간단히 여러 대의 Bot이 모여서 형성된 네트워크를 보고 우리가 봇넷(Botnet)이라고 이야기한다.
 
특히 이 악성 코드 유형은 평상시에는 동작을 하지 않는다.
공격자가 일단 감염을 시켜놓고 특정 상황이 되었을 때, 원격으로 해당 PC에 대한 동작을 하는 것이다.
 
그래서 일반적으로 공격자는 Bot을 여러 대를 모아놓고 BotNet을 형성을 한 다음,
나중에 DDOS 공격을 바탕으로 특정 대상을 바탕으로 집중 공격을 하고자 할 때, 많이 사용되어 진다고 보면 된다.
 
 
작동 방식 - 감염 및 통제
첨부 파일, 이메일, 웹사이트, USB 드라이브 등으로 기기를 감염시키고,
감염된 기기는 제어 서버에 연결되는 형태이다.

작동 방식 - 작동
봇넷은 공격자가 설정한 제어 서버와 주기적으로 통신하여,
공격자가 여러 감염된 기기를 원격으로 제어하고 명령 전달이 가능하다.
 

특징
여러 대의 기기를 감염시키고 통합하여 '하나의 제어 서버'에 의해 원격으로 제어된다. 
봇넷은 DDOS 공격, 정보 탈취, 금융 사기, 암호화폐 채굴 등 다양한 활동이 가능하다.

감염된 기기의 사용자는 자신의 기기가 봇넷에 속해 있다는 사실을 알아차리지 못하는 경우가 많다,
 

사례(Mirai, 2016년)

타깃

특이하게 인터넷에 연결된 IOT 기기(CCTV, 라우터, 스마트 TV 등)를 감염시킨 사례이다.

감염

취약한 기기들의 암호를 추측 및 해독하여 감염시키고, 해당 기기들로 봇넷을 형성하고 원격 제어하는 형식이다.
이는 많은 IOT 기기들이 고정된 기본 암호를 사용한다는 취약점을 이용한 사례이다.

공격

감염된 기기들로 봇넷을 형성하여 대규모 DDOS 공격을 수행하였다.

 


 
 
정탐, 오탐, 미탐
 
 
정탐(True Positive / True Negative), 오탐(False Positive), 미탐(False Negative)으로
악성코드 탐지를 구분지어 탐지의 성능 평가가 가능하다.

왜냐하면 백신 소프트웨어, 방화벽, IDS, IPS와 같은 시스템은 위협으로부터 네트워크를 보호하도록 설계 되어있지만,
위협을 식별하고 탐지하는 결과가 모두 동일하지 않기 때문이다. 
 
나중에 실무를 하게 되면 정탐, 오탐, 미탐이라는 단어를 정말 많이 듣게 된다고 한다.
그렇기 위해서는 각각의 특징과 이게 정확하게 의미하는 바가 무엇인지 알아보는 시간이 필요하다.
 
간단하게 정탐은 정확하게 탐지를 한 것을 의미하고, 오탐은 잘못 탐지한 것 즉, 실수한 것을 오탐이라고 이야기한다.
그리고 미탐은 아예 탐지를 하지 않은 것을 의미한다.
 
정리하면서 알아보기 전에 '혼동 행렬'이라는 표를 간단히 알아보면서
어떻게 위의 용어들이 파생된 것인지 알아보자.
 
 
혼동 행렬(Confusion Matrix)

 Actual Values
Positive(1)Negative(0)
Predicted
Values
Positive(1)TP(정탐)FP(오탐)
Negative(0)FN(미탐)TN(정탐)

 
분류 모델의 성능을 평가하는 데 혼동 행렬(Confusion Matrix)이라는 위의 표가 사용되며, 
여기서 정탐, 오탐, 미탐 등의 용어가 파생되었다.

우리는 여기서 두 가지를 주목해야한다.
 
Predicted Values(예측 값)
모델에 의해 예측되는 값.

 
Actual Values(실제 값)
모델이 예측하려는 대상의 실제 값.

즉, 모델의 예측이 실제와 일치하지 않는 경우를 혼동이라 표현한 것이고,
혼동 행렬은 이러한 혼동을 시각화 및 정량화하기 위한 도구이다.


컴퓨터는 위의 개념들을 바탕으로 계산식을 세워, 정확도, 정밀도, 민감도(재현율) 등 다양한 평가 지표를 만들 수 있다.
이러한 평가 지표는 모델의 성능을 여러 측면에서 측정 가능하다고 할 수 있다.

 
 


 
 
정탐에는 두 가지 종류가 있다.
 
공격이 들어왔을 때, 이걸 공격이라고 탐지한 경우,
공격을 공격으로 탐지했으니 정확하게 탐지를 했다고 할 수 있다.
 
그리고 또 한 가지는 공격이 아닌 게 들어왔을 때 공격이 아니라고 판단을 한 것도
정확하게 탐지를 했다고 할 수 있다.
 
즉, 둘 다 정탐이라고 이야기한다.
 
 
TP(True Positive, 정탐)
모델이 실제 Positive인 값을 Positive로 정확하게 예측한 경우이다.

즉, 시스템이 잠재적 위협이나 취약성을 올바르게 감지 및 식별했거나, 
완화 또는 제거 조치를 취했음을 의미한다.

Ex) IDS가 공격 시도를 올바르게 탐지하고 보고하는 경우.
 

TN(True Negative, 정탐)
모델이 실제 Negative인 값을 Negative로 정확하게 예측한 경우이다.

즉, 시스템에서 잠재적 위협이나 취약성이 없다고 판단하여 아무런 조치도 취하지 않았음을 의미한다.

Ex) 백신 소프트웨어에서 정상 파일을 바이러스에 감염되지 않았다고 판단한 경우.
 

하지만 오탐은 실제 공격이 아닌 게 들어왔을 때, 공격이라고 판단하여 실수한 것을 오탐이라고 이야기한다.
 
미탐은 공격이 들어왔는지, 안 들어왔는지 조차도 모르는 것이다.
이런 행위조차도 하지 않은 것을 보고 미탐이라고 이야기한다.
 
'오탐'이라는 상황과 '미탐'이라는 상황이 발생을 했을 때, 뭐가 더 리스크가 클까?

더보기

당연히 미탐이 공격, 위협을 놓친 것이기 때문에 오탐보다 더 위험하다.

사실상 오탐은 다음부터 실수하지 않으면 되겠지만, 미탐은 아무것도 안해서 사고가 발생했다고 말할 수 있다.

 

즉, 아무튼 오탐은 뭔가를 하려고 한 것이지만, 미탐은 그런 행위조차도 하지 않았기 때문에,

엄청나게 큰 사고라고 했을 경우에는 정말 크게 뭔가 잘못될 수 있다.

 

오탐과 미탐을 구분할 때는

행동을 했냐 안했냐로 구분하는게 제일 쉽다.

 

결과적으로 우리는 미탐을 발생시키지 않기 위해서 노력을 하는 것이고,

오탐이라는 상황을 줄이기 위해서 좀 더 학습을 한다고 보면 된다.

 
 
FP(False Positive, 오탐)
모델이 실제로는 Negative인데 Positive로 잘못 예측한 경우이다.
오검출이라고도 한다.

즉, 시스템이 실제로 잠재적 위협이나 취약점이 아닌 것을 감지하고, 불필요한 조치를 취했음을 의미한다.

Ex) IDS가 합법적 트래픽을 공격 시도로 식별한 경우.
 

FN(False Negative, 미탐)
모델이 실제로는 Positive인데 Negative로 잘못 예측한 경우.
미검출이라고도 한다.

즉, 시스템이 잠재적 위협이나 취약점을 놓치고, 조치를 취하지 않았음을 의미한다.

Ex) 백신 소프트웨어가 실제로 감염된 파일에서 바이러스를 탐지하지 못하고 조치를 취하지 않은 경우.
 
 


 
 
다음 글에서는 보안관제란 무엇인가에 대해 접근해보면서,
실제 실무에서 어떤 페이지 및 Tool 을 활용하는지 알아보는 시간을 가져보자.

'IT_정보보안 > 인프라 & 보안기초' 카테고리의 다른 글

7. Firewall, IDS, IPS, DDOS  (2) 2023.12.04
6. 계층 별 프로토콜(2)  (0) 2023.11.28
5. 계층 별 프로토콜 (1)  (1) 2023.11.28
4. 계층 별 장비  (2) 2023.11.13
3. TCP / UDP  (2) 2023.11.06