코드에서 문제가 발생하는 요인은 ‘데이터의 형태와 길이에 대한 불명확한 정의’ 로 요약할 수 있다. 따라서 보안 전문가라면 이와 관련하여 대책을 강구하고 코드에 대한 보안을 탐구해야 한다. 코드를 이용한 대표적인 공격은 버퍼 오버플로와 포맷 스트링이 있다.
통상 나는 Wireshark라는 툴을 이용하여 패킷을 분석한다. 물론 통신 패킷이 암호화 되어있는 경우 제대로 살펴보지 못할 수 있다. 따라서 암호화된 패킷을 복호화하는 것까지 구현할 수 있도록 부단하게 노력해야 한다.
1. What is 'Injection' ? 2. Injection 공격에 가장 많이 쓰이는 언어, SQL 3. Client-Server 모델에 비추어본 SQL Injection 4. 공격 시나리오 5. 원인 및 대응방법
1. What is SSRF? 2. XXS·CSRF·SSRF 3. URL방식(GET방식 VS POST방식) 4. GET방식을 통한 SSRF공격
시스템 유지보수도 중요하지만 안전한 설계를 통한 사전예방이 더 중요하다. OWASP에서 제시하는 취약점들을 참고하면 실제 설계 간 도움이 될 것이다. OWASP와 안전한 시스템 8원칙에 대해 살펴보자.
표준화된 암호와 기기를 사용한다면 그 암호 알고리즘을 감추기는 어렵다. 하지만 감춘다고만 해서 보안성이 높아지는 것도 아니다. 공개된 암호 알고리즘이 장기간 분석에도 잘 견뎌낸다면 그 알고리즘은 비로소 안전하다고 인정된다. 암호체계는 '무죄가 증명될 때까지는 유죄'다
스턱스넷(Stuxnet)은 2010년에 발견된 웜 바이러스로 산업시설을 감시하고 파괴하는 최초의 소프트웨어이다. 스턱스넷은 웜이지만 사이버 무기급으로 사용되었다.
쿠키(Cookie), 세션(Session), 토큰(Token). 이 세 가지에 대해 많이 헷갈려하는데 이를 이해하기 위해서는 웹브라우저가 서버랑 소통하는 방식을 먼저 알아야 한다. 일반적으로 단말기에서 필요한 데이터는 서버에 요청하여 받아온다.(클라이언트-서버 방식)
인터넷에서 IP 프로토콜(Protocol)은 IP 주소를 통해 호스트(Host)나 네트워크를 식별한다. 즉, 인터넷에 접속한 컴퓨터 및 라우터에 고유한 IP 주소를 할당하여 그 IP 주소를 사용해 컴퓨터를 특정하거나 통신 상대를 지정한다.
SSRF에 관한 게시물에서 XSS와 CSRF에 차이점에 대해서 언급한 적이 있었다. 설명이 다소 불충분했던 것 같아 XSS와 CSRF에 대해 따로 설명하고자 한다.