애플리케이션 보안 - 2일차

여딩·2025년 2월 1일

<SK쉴더스 루키즈> 과정 중 애플리케이션보안 2일차 내용 정리 입니다.

국가 20망 보안체계 보안 가이드라인

Web 기본구조

1. HTTP

2. 클라이언트와 서버

동작방식 : 서비스를 제공하는 장비 = 서버, 서비스를 요청하는 장비 = 클라이언트
종류

  • 웹 클라이언트 : HTML, CSS, Javascript 등
  • 웹 서버 : Apache, IIS, Nginx 등
  • 웹 브라우저 : IE, Chrome, Firefox(보안 플러그가 제일 많다) 등

3. 웹 클라이언트

HTML(HyperText Markup Language)

= 웹 페이지를 만들기 위한 언어, 홈페이지의 구조를 이루는 언어

ChatGPT를 사용하여 html과 CSS 사용해보기

ChatGPT를 사용하여 웹 크롤링 해보기

CSS(Cascading Style Sheets)

= 문서의 스타일을 꾸밀 때 사용

JavaScript

= 웹을 위한 인터프리터 언어이자 스크립트 언어

  • 클라이언트 측에서 돌아가는 스크립트

4. 웹 서버

Apache

= Apache 소프트웨어 재단에서 만든 웹 서버 프로그램

  • 장점 : 모듈이라는 개념으로 확장성이 좋고, 구축이 쉬움
  • 단점 : Slowloris 취약점 발견

IIS

= 마이크로소프트 인터넷 정보 서비스(Internet Information Service,IIS)

Nginx

= 웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표

  • 요청 응답을 위한 비동기 이벤트 기반구조
    동기 비동기
    직렬 병렬
    HTTP 1.1 HTTP 2 비동기 스트림

5. 웹 브라우저

인터넷 익스플로러(Internet Explorer, IE)

= 마이크로소프트에서 개발한 웹 프라우저

  • 현재 대한민국에서는 인터넷 익스플로러의 의존도가 상대적으로 높다.
  • ActiveX

크롬(Chrome)

= 구글이 개발한 프리웨어 웹 브라우저

  • 장점 : 빠른속도, 웹 스토어, 확장 프로그램, 보안성 등

파이어폭스(Firefox)

= 모질라 재단과 모질라 코퍼레이션이 개발한 자유 소프트웨어 웹 브라우저

  • 다양한 확장기능(기능이 많은 만큼 보안적으로 위험)

웹 애플리케이션 기술

1. 프론트엔드 관련

프론트엔드란?

= 프로세스의 처음을 의미, 사용자가 웹 사이트에서 보여지는 부분

ActiveX


= 윈도우 사용자들이 인터넷을 쉽고 편리하게 이용하도록 마이크로소프트사에서 개발(동적작동)

  • 기본 응용프로그램으로 작성된 문서 등을 웹과 연결시켜 그대로 사용(객체지향적 인터페이스를 만드는 기술)

HTML5

= 기존 텍스트와 하이퍼링크만 표시하던 HTML이 멀티미디어 등 다양한 애플리케이션까지 표현, 제공

크로스 브라우징, 크로스 악성코드

  • 크로스 브라우징 : 웹 페이지 제작 시 모든 브라우저에서 깨지지 않고 의도한 대로 올바르게(호환성) 나오게 하는 작업

2. 백엔드 관련

백엔드란?

= 프로세스의 마지막 끝을 의미(서버 사이드라고 함)

  • 프론트엔드에서 보낸 데이터를 바탕으로 애플리케이션의 목적이 되는 처리를 수행하는 곳

데이터 웨어하우스

= 사용자의 의사 결정에 도움을 주기 위하여 기간시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환해서 관리하는 데이터베이스
장기간으로 분석용 DB

  • 빅데이터, 분산, 병렬, 하드웨어(클러스터링),데이터 웨어하우스
    데이터 레이크, 데이터 카탈로그
  • ETL : 데이터를 정형화하는 과정

맵리듀스(MapReduce)

= 방대한 데이터를 단순화 처리하기 위함
병렬 컴퓨팅 : 성능 개선을 위해 CPU를 병렬처리, 웹기술 발달로 병렬 분산처리,
여러 대의 서버가 하나의 시스템을 컴퓨터 클러스터 환경에서 병렬 분산처리 지원
장점 : 데이터 처리속도 향상

출처 : https://www.youtube.com/watch?v=2RPVFhxps_s

WEB 서버

= 클라이언트의 요청을 받아 HTML이나 오브젝트를 HTTP 프로토콜을 이용해 전송하는 서버

  • 웹 서버만 구축된 서버는 정적인 페이지를 생성

WAS 서버

= 웹과 기업의 사이에 위치, 웹 기반 분산 시스템 개발을 쉽게 도와주는 일종의 미들웨어 소프트웨어 서버( 동적 서버 콘텐츠 )

  • 웹서버 + 웹 컨테이너 = 웹 상에서 사용하는 컴포넌트들을 올려두고 사용하게 되는 서버

데이터베이스

= 데이터의 모음인 데이터베이스를 관리하는 소프트웨어를 데이터베이스 관리 시스템(DBMS)라고 한다.

  • DB서버에 접속하는 DB클라이언트는 데이터베이스를 표현하는 프로그램을 의미(쿼리를 통한 동작)
  • CRUD : 생성, 읽기, 갱신, 삭제 = SQL 표준
  • SQL인젝션 : 웹 애플리케이션과 연동된 데이터베이스에 직접 접근하여(쿼리) 공격

클라우드 컨테이너

= 개발부터 실행까지 한번에 제공
소스 코드 개발 = > 컨테이너 이미지 생성 => 도커에서 컨테이너 실행 => 애플리케이션 실행

참고 : https://www.nia.or.kr/site/nia_kor/ex/bbs/View.do?cbIdx=78336&bcIdx=27084&parentSeq=27084

0개의 댓글