본문 바로가기
반응형

전체 글110

[인터넷 보안] XSS XSS란? XSS란 Cross site scripting의 약자로 인터넷 공격의 한 종류입니다. Cross site scripting이라면 css가 되지 않겠나 싶은데 css은 이미 html/css에서 사용하고 있어서 xss라고 불립니다. XSS는 자바스크립트와 밀접한 연관이 있습니다. XSS는 취약한 웹 페이지에 자바스크립트를 전송해 클라이언트 쪽 웹에서 실행하고 원하는 데이터를 빼오거나, 악성 파일을 보내는 동작을 합니다. XSS에는 크게 2가지 공격이 있습니다. Reflected XSS - 특정판 피해자를 대상으로 공격, 웹 서버에 스크립트 남기지 않음 Stored XSS - 다수, 임의의 대상을 공격, 웹 서버에서 스크립트 남김 Reflected XSS Reflected XSS는 다음과 같은 과정.. 2021. 6. 12.
[인터넷 보안] SQL Injection - SQL Map SQL Map이란? SQL Map은 파이썬으로 개발된 툴로 Kali Linux안에 설치되어있는 프로그램입니다. SQL Map은 터미널로 명령어를 입력하면서 SQL Injection 공격을 수행할 수 있습니다. SQL Map을 실행해보면 다음과 같은 창이 로딩됩니다. 기본적으로 SQL Map은 url을 기반으로 공격합니다. 현재 실습하려는 DVWA와 같이 로그인된 경우에는 cookie에 대한 정보도 설정해줘야 합니다. DVWA의 blind SQL injection에서 SQL map을 사용해 공격해보겠습니다. SQL map을 사용하는 2가지 방법이 있습니다. URL 사용하기 요청을 담은 텍스트 파일 사용하기 URL 사용하기 다음 명령어를 통해 SQL map을 실행시켜 줍니다. $ sqlmap -u "http.. 2021. 6. 12.
[인터넷 보안] SQL Injection SQL Injection이란? SQL Injection은 웹으로부터 데이터베이스에 전송되는 SQL 쿼리문을 공격자가 조작하여 데이터를 변조하거나, 데이터베이스 정보들을 조회하는 공격입니다. 취약한 데이터베이스는 이런 공격을 받고 비정상적인 동작을 합니다. 비교적 쉬운 공격이지만 엄청난 피해를 줄 수 있습니다. SQL Injection의 공격 방법에는 Where 절을 이용한 공격, Union 명령어를 이용한 공격, Boolean based 공격, Time based SQL, 저장된 프로시저 공격 등이 있습니다. Where 공격 Where 절을 이용한 간단한 공격에 대해 얘기해보겠습니다. 사용자가 ID 가 1인 사용자 정보를 요청하면, SQL문은 다음과 같이 전송됩니다 SELECT name, email FR.. 2021. 6. 11.
[인터넷 보안] CSRF 공격 CSRF란? CSRF는 Cross Site Request Forgery의 약자입니다. 이는 우리말로 해석하면 사이트 간 요청 위조라고 번역할 수 있습니다. 이 공격은 공격자가 피해자를 피싱을 사용해 속이고, 사용자 모르게 로그인해 비밀번호를 변경하는 방법입니다. CSRF 공격 순서 일반 사용자가 정상적으로 사이트에 접속하고 로그인합니다. 공격자가 사용자에게 은행 직원 인척 피싱해 이메일을 보내 링크를 클릭하도록 유도합니다. 사용자가 해당 링크를 클릭하면 현재 로그인돼있는 사이트의 비밀번호를 공격자가 미리 설정한 비밀번호로 자동으로 변경됩니다. 공격자가 변경된 비밀번호로 접속해 사용자의 계정으로 로그인할 수 있습니다. 이렇게 사용자에게 피싱만 잘할 수 있으면 CSRF는 비교적 쉬운 공격입니다. 단, 주의할.. 2021. 6. 11.
[Kubernetes] Deployment (2) 앞선 포스팅에서는 Deployment을 생성하는 2가지 방법과, deployment yaml파일의 구조에 대해 알아봤습니다. 이번 포스팅에서는 Deployment yaml파일로 서비스를 구성하는 방법에 대해 포스팅하려 합니다. 다음 명령어는 nginx기반의 LoadBalancer 유형의 서비스를 외부로 노출시켜 사용 가능하게 하는 명령어입니다 $ kubectl expose deployment my-nginx --port=80 --type=LoadBalancer 이 명령어 또한 yaml파일로 구성할 수 있습니다. 현재 nginx.yaml파일은 다음과 같은 내용으로 되어있습니다. 그럼 LoadBalancer 서비스를 제공하는 nginx-svc.yaml 파일을 다음과 같이 생성해주겠습니다. nginx-svc... 2021. 6. 11.
[Kubernetes] Deployment (1) Kubernetes가 처리하는 기본 단위인 deployment를 생성하는 방법은 2가지가 있습니다. 명령어로 생성 yaml file로 생성 명령어로는 다음과 같이 생성합니다. $ kubectl create deployment [이름] --image=[이미지] yaml 파일로는 다음과 같이 생성합니다. $ kubectl apply -f [yaml 파일 이름] 그럼 nginx deployment를 yaml 파일을 생성해 deployment를 만들어 보겠습니다. $ vi nginx.yaml 명령어를 통해 다음과 같은 내용을 포함하는 yaml파일을 만들어줍니다. 그리고 다음 명령어를 입력해 해당 yaml파일로부터 deployment를 생성해줍니다. $ kubectl apply -f nginx.yaml $ kub.. 2021. 6. 11.
[Kubernetes] Kubernetes 시작하기 (2) 앞의 포스팅에서 Kubernetes를 설치하고 기본적인 사용법을 알아봤습니다. 이번 포스팅에서는 Kubernetes에 대해 좀 더 자세히 알아보겠습니다. 일단 주의할 점은 minikube는 docker와 달리 실행한 상태를 유지해야 한다는 것입니다. Kubernetes는 기본적으로 master node와 worker node로 구성되어있습니다. Master node는 어느 node에 놓고 실행할 건지 결정하고 전체적인 node들을 관리합니다. Worker node는 말 그대로 일을 하는 작업 node입니다. Docker에서는 컨테이너가 작업 단위이지만, Kubernetes에서는 pods, deployment들이 작업 단위, 즉 처리 대상입니다. Pod는 컨테이너를 관리하면서 다른 컨테이너와 통신을 담당하.. 2021. 6. 11.
[Kubernetes] Kubernetes 시작하기 (1) Kubernetes란? Kubernetes는 흔히 K8S라고 불리기도 합니다. Kubernetes는 컨테이너화 된 애플리케이션들을 관리하고, ochestration 하는 기능을 제공합니다. Kubernetes 외에도 apache wesos, docker swarm 등이 있습니다. Ochestration? Ochestration은 크게 다음과 같은 기능을 합니다. 스케쥴링 : 할 일 없는 애플리케이션 배포, 서버가 다운되면 다른 서버 띄워줌 클러스터링 : 서버가 여러 개여도 하나 다루는 것 같은 기능 제공 서비스 디스커버리 : 각 컨테이너에 DNS포트 등 정보가 있어서 쉽게 찾아볼 수 있음 로깅 Kubernetes를 학습하기 위해 사용한 환경은 minikube라는 Kubernetes가 공식적으로 제공하는 .. 2021. 6. 11.
[Docker] Docker Compose 이전 포스팅에서는 Dockerfile로 이미지를 빌드해서 사용하는 방법에 대해 포스팅했습니다. 이번 포스팅에서는 Docker Compose를 사용하는 방법에 대해 포스팅하려 합니다. Docker Compose는 하나의 애플리케이션을 여러 개의 Docker로 구성하는 방법입니다. Micro Service Architecture 처럼 컨테이너 간의 연결을 구성하고 실행하는 방법입니다. Docker Compose를 구성하는 방법으로는 명령어와 yaml파일의 사용이 있습니다. 다음은 Docker Compose의 기본적인 예시입니다. version: "3.9" # optional since v1.27.0 services: web: build: . ports: - "5000:5000" volumes: - .:/co.. 2021. 6. 11.
[Docker] Dockerfile (2) 앞서 포스팅에서는 Dockerfile의 기본적인 명령어와 사용법에 대해 포스팅했습니다. 이번 포스팅에서는 좀 더 Dockerfile 명령어에 대해 포스팅하려 합니다. EXPOSE [포트 번호] - 호슽와 연결할 포트 번호를 설정합니다. (docker run의 --expose 옵션과 동일) ENV [환경 변수] [값] - 환경 변수를 설정합니다. 이 환경 변수는 RUN, CMD, ENTRYPOINT에 적용됩니다. ADD [복사할 파일 경로] [이미지에 파일이 위치할 경로] - 파일을 이미지에 추가합니다. COPY [복사할 파일 경로] [이미지에 파일이 위치할 경로] - 파일을 이미지에 추가합니다. WORKDIR [경로] - RUN, CMD, ENTRYPOINT 명령이 실행될 디렉토리를 설정합니다. COPY.. 2021. 6. 11.
반응형