Skip to content

Internet security

인터넷 보안(-保安, 영어: Internet security)은 인터넷을 통해 권한이 없는 컴퓨터 시스템 접근이나 위험을 막는 것을 말한다. 대부분은 자료의 암호화와 암호를 통해 보호를 받는다. 데이터 암호화는 이해할 수 없는 형태의 데이터를 별도의 번역 장치 없이 번역하는 과정을 말한다. 암호는 특정한 프로그램이나 시스템에 대한 사용자 접근을 제공하는 비밀의 낱말이나 구문을 말한다.

Basic for developers

SQL Injection
요청에 악의적인 SQL을 삽입하여 공격하는 기술
  • 간단하지만 아주 강력한 공격
  • 요즘은 대부분 라이브러리, 프레임워크 수준에서 막아주지만 항상 조심해야함
  • Error based SQL Injection
    • 일부러 에러를 발생시켜서 DB에 대한 정보를 알아내는 방법
    • 에러 메시지가 노출되지 않도록 조심해야함
  • Blind SQL Injection
    • 쿼리 결과의 참/거짓 정보를 보고 원하는 정보가 존재하는지 추론하는 공격 방법
    • 이를 통해 데이터베이스, 테이블, 컬럼 명을 파악할 수 있음
  • Union SQL Injection
    • union 명령을 이용하여 정보를 얻는 공격 방법
XSS
웹 페이지에 악성 자바스크립트를 삽입하는 공격
  • 필터링을 잘 해야함
  • Stored XSS
    • 보통 XSS라하면 소개되는 공격 방법
    • DB에 자바스크립트 코드를 넣고 불러올 때 실행되도록 하는 공격
    • 브라우저에서 스크립트 실행을 막고 저장될 때 필터링을 해야함
  • Reflected XSS
    • 입력을 그대로 브라우저에 노출시키는 공격 방법
    • URL Query에 redirectUrl 등이 있을 때 이곳에 자바스크립트를 넣을 수 있음
    • 악의적인 링크를 타인에게 배포할 수 있으므로 막아야함
  • DOM Based XSS
    • DOM에 악의적인 스크립트를 넣는 방법
    • img 태그의 src 등에 넣을 수 있음
CSRF Attack
공격자가 서비스 사용자를 이용하여 요청을 보내는 공격
Referer Check, CSRF Token, CAPTCHA 를 통해 막는 것이 가능
Command Injection
쉘을 실행시키는 로직을 이용한 공격
  • 시스템 권한이 탈취되는 것이나 마찬가지기 때문에 매우 치명적
  • 쉘 명령을 실행시키는 시스템 함수를 사용하지 않는 것이 제일 좋고 만약 꼭 사용해야한다면 |, &, ;, >, <와 같은 민감한 문자는 필터링할 것
File Upload Attack
WebShell이 가능한 코드가 담긴 파일을 업로드하고 해커가 URL을 통해 접근 가능해지면 Command Injection과 같은 효과를 볼 수 있음
  • 확장자와 파일 타입을 검사하여 허락된 타입만 저장하는 것이 좋음
  • 해커가 파일을 찾을 수 없도록 업로드 파일의 이름과 확장자를 난수화하여 저장할 것
  • 특수 문자가 포함된 경우 업로드를 막는 것이 좋음 (Null byte Injection 방지)
JavaScript Injection
브라우저에서 자바스크립트를 삽입시키는 공격
  • 만약 Client-Side에 민감한 데이터를 넣어놨다면 해당 공격을 통해 탈취 가능
  • 클라이언트엔 민감한 데이터를 절대 Plain하게 넣으면 안됨
  • 데이터 유효성 검사가 필요한 경우 서버에서 처리해야함
DDoS
분산된 시스템을 이용하여 서버에 비정상적으로 많은 트래픽을 보내 마비시키는 공격
  • 단순한데 제일 막기 힘든 공격
Dictionary Attack
미리 데이터베이스에 등록해놓은 수많은 문자열을 암호로 대입하는 공격
  • 간단한 단어는 비밀번호로 등록하지 못하게 막을 것
  • Account Lockout Policy를 도입
  • OTP 같은 2-factor 인증을 도입
Rainbow Table
평문을 해시 함수로 만든 문자열을 모두 저장시켜 놓은 표
  • 주로 계정 데이터 탈취 후 암호 원문을 알아내기 위해 사용함
  • Salt 사용
  • Key Stretching
  • PBKDF2, Bcrypt 등의 암호화 알고리즘 사용

Categories

See also

Favorite site