개발/네트워크 보안 22

Denial of Service

DoS(Denial of Service) attack : 이름처럼 서비스 거부 공격입니다. 정상적인 사용자가 접근 할 수 없게 요청을 많이 보내 서버를 마비시키는 공격입니다. 가장 자주 발생하고, 방어하기 어렵습니다. 다양한 계층의 공격이 있는데 IP: bandwidth exhaustion attacks,etc TCP:Syn-flooding, etc Application: authentication attacks, SPAM,etc Syn - flooding : TCP연결 프로토콜의 취약점을 이용하는 방법입니다. IP spoofing : 공격자가 실제 아이피를 사용하면 쉽게 잡히기 때문에, 아이피를 조작합니다. DoS공격을 막기 위해서는 1. 컴퓨터 자원 늘리기 2. 서비스 리퀘스트 제한하기 3. 좋은 리..

Malware

Malware란 : short for malicious software, software designed specifically to damage or disrupt a system 즉 악성 코드 프로그램입니다. What can malware do : Modify or even delete files, squander computing resources, spy the information 파일제거 컴퓨터 리소스 낭비, 정보 훔쳐보기 등을 합니다. 바이러스와 웜의 차이점은 웜은 스스로 전파가 가능합니다. 바이러스 코드는 특정 방법을 사용하여 어떤 방식 으로든 전파됩니다. 그들은 관리하는 데이터에 흔적을 남기고 이 것을 서명이라고합니다. 간단한 바이러스는 쉽게 탐지 할 수 있습니다. 정적 서명 만 확인하면..

Web Security

웹 보안에에 관한 중요한 것들 중 SQL Injection XSS - Cross-Site Scripting Attack CSRF - Cross Site Request Forgery 가 있습니다. 일단 쿠키와 세션에 대해서 알아보고 가면 쿠키 : 쿠키란 유저의 브라우저에 의해 유저의 컴퓨터에 저장되는 작은 텍스트를 말합니다. 쿠키는 흔히 인증이나 즐겨찾기, 쇼핑 목록 및 서버 세션을 저장하는데 사용됩니다. 본질적으로 쿠키는 웹 사이트나 웹 응용 프로그램과의 상호작용을 위해서 한 페이지에서 이를 다른 페이지를 연결하는 좋은 방법입니다. 좀 더 정확하게 말하면 쿠키는 하이퍼 텍스트의 기록의 일종으로 사용자가 어떤 웹사이트를 방문했을 때 그 사이트가 사용하고 있는 서버에서 인터넷 사용자의 컴퓨터에 설치하는 작은..

Database Security & SQL Injection

데이터베이스에는 Single table / multiple table로 구성된 데이터베이스가 있습니다. mutiple table에서는 unique identifier를 key 값으로 사용해서 데이터를 질의합니다. 키의 종류는 Primary key / Foreign key로 나눠져있습니다. SQL Injection Attacks 이란 악의적인 sql commands를 입력해서 웹 애플리케이션의 데이터베이스 취약점을 공격하는 것 입니다. 사용자 input form에 query문을 담거나, 이전의 퀴리문을 무력화시키는 '--'같은 문자 뒤에 새로운 쿼리문을 삽입해서 날릴 수도 있습니다. 때문에 인풋 폼에서 특수문자나 쿼리 등이 담겨오는지 확인하여 sql injection을 방어해야 합니다. 또한 권한 관리를 ..

Authentication

Authentication : 인증에 관한 내용입니다. 어떤 사람이 누청을 하는지 확인해서, 접근 권한을 줄지 안줄지를 결정하는 것이라고 생각하면 됩니다. password, PIN, question, fingerprint, DNA 이런 형태로 인증을 할 수 있는데 비용적인 부분과 사용자 편의적인 부분을 고려하면 비밀번호가 일반적으로 사용됩니다. 강한 패스트워드를 만들러면 대문자를 끄고, 긴 문자열을 사용하고, 실제 이름이나 단어를 쓰지 말고, 등등 뭐 뻔한 이야기입니다. 패드워드 기반 인증으로 했을 때, 네트워크 보안 상의 문제로 비밀번호가 탈취될 수 있습니다. 때문에, 컴퓨터 프로그램이 아닌 인간만이 알아볼 수 있는 CAPTCHA 같은 것을 사용할 수도 있습니다. 또한 상호 인증으로 보안을 강화하는 커..

CSRF

CSRF(Cross Site Request Forgery)공격이라는 것이 있습니다. 이 공격 같은 경우에는 공격을 받는 사람이 해커가 시키는 대로 행동하게 만드는 공격인데요 예를 들면, 페이스북에서 내가 아무 것도 하지 않았는데, 친구추가를 누르게 되는 것입니다. 아래를 보면. facebook으로 돈 10만원준다는 글을 쓰도록 post를 던집니다. 이런 형태의 공격인데 어떤 방식으로 방어를 해야할까요? 1. Referrer 검증 기본적인 방식인데, 얘의 request가 facebook.com에서 온 것인지 확인하는 방법입니다. 2 Security Token 사용 사용자 세션에 토큰을 발급하고 되는 폼에서 토큰이 일치하는지 확인해주는 방법입니다. -- 참고 https://itstory.tk/entry/CS..

XSS

XSS(Cross Site Scripting)이란? XSS이란 게시판같은 곳에 위와 같은 형태로 팝업 창을 띄워버리는 것입니다. 쿠키탈취 자, 그렇다면 다른 사람의 쿠키를 탈취하려면 어떻게 해야할까요? cookie.php 라는 파일을 만들어서 위와 같은 코드를 쓰고 난 뒤 , 스크립트로 실행시켜줍니다. 이렇게 하면 됩니다. 매우 쉽죠? 참조 https://duni0107-day.tistory.com/69 XSS공격 피해자 쿠키값 탈취 https://duni0107-day.tistory.com/58?category=703364 XSS공격으로 쿠키값 탈취 XSS란? -> 게시판에 스크립트 코드를 삽입해 개발자가 고려하지 않은 기능이 작동되게 하는 공격 쿠키란? -> 방문자의 정보를 방문.. duni0107-..

SQL Injection 하는 법

SQL Injection이란, 간단한 웹 해킹 방법중에 하나입니다. 대부분의 어플리케이션에서 로그인을 할 때, 아이디와 비밀번호를 입력하면, Database로 데이터를 넘겨줍니다. 이 때. 알맞는 아이디와 비밀번호를 입력하지 않고, 공격문을 삽입해서 DB로 넘겨주는 방식으로 공격을 하는 방법입니다. 예를 들면 id와 password에 ' or 1 ='1 같은 것을 입력합니다. 그러면 데이터베이스에서 얘의 값을 true라고 판단하여 옳은 접근으로 간주합니다. 조금 더 다양한 테크닉은 아래 링크에 https://tkdrms568.tistory.com/145 [bee-box]SQL-Injection - Login Form/Hero Login Form / Hero 페이지(sqli_3.php)에 들어가면 다음과..

간단한 리눅스 유저 권한

ls는 파일 목록 출력 ls -al 을 하면 파일 목록 및 권한까지 출력 "sudo useradd test " 이런 형태로 유저 추가 가능. "passwd test" 이런 형태로 유저 비밀번호 설정 가능 sudo su test 라고 만든 유저로 전환 가능 그냥 su라고 하면 root 사용자로 변경 mkdir로 디렉토리 생성 가능 mkdir -p a/b/c 이런식으로 하위 디렉토리도 생성 가능 touch filename으로 아무것도 들어있지 않은 파일 생성 chmod는 파일 또는 디렉토리 접근 권한 변경 chown, chgrp 는 소유자와 소유자 그룹을 변경 디렉토리/그룹 권한 변경 소유자 u 그룹 g 다른사용자 o 권한을 줄 때는 +rwx 같은 형태, 권한을 뺏을 때는 -rwx같은 형태로