최근 갤러리
표
Search
익스플로잇
익스플로잇이란 컴퓨터 시스템이나 애플리케이션의 취약점을 이용해 대상 시스템에 무단으로 액세스하거나 제어 또는 조작하는 소프트웨어, 코드 또는 기법으로 정의된다.
익스플로잇의 종류
1.
원격 코드 실행(RCE)
원격 코드 실행 익스플로잇을 통해 공격자는 원격 시스템에서 임의의 코드를 실행할 수 있으며, 일반적으로 손상된 시스템을 완전히 제어할 수 있게 된다.
2.
서비스 거부(DoS)
시스템 리소스를 과부하시키거나 고갈시켜 서비스, 네트워크 또는 애플리케이션을 사용할 수 없게 만드는 익스플로잇이다.
3.
권한 상승
권한 상승 익스플로잇은 시스템 내에서 공격자의 권한을 상승시켜 더 많은 제어 권한과 액세스 권한을 부여한다.
4.
SQL 인젝션
웹 애플리케이션의 데이터베이스 처리 메커니즘의 취약점을 악용하는 익스플로잇으로, 공격자가 민감한 데이터를 조작하거나 검색할 수 있도록 한다.
제로데이 익스플로잇
제로데이 익스플로잇은 소프트웨어 공급업체가 알지 못하는 제로데이 취약점을 노리기 때문에 제로 데이라고 한다. 이를 방어할 수 있는 패치가 없기 때문에 심각한 위협이 된다.
•
제로데이 취약점
소프트웨어 공급업체가 알지 못하는 취약점
현재 이에 대한 대응 방안이나 보안패치가 없는 상태이기 때문에, 가장 까다로운 상태의 공격으로 방어자는 방어하기 쉽지 않다.
•
원데이 취약점
소프트웨어 공급업체가 취약점을 파악하고 패치를 배포했지만, 검증 및 여러 기타 사유로 인하여 패치를 적용하지 않은 상태의 취약점
패치가 발표 하더라도 바로 적용은 불가능 하기 때문에 이 부분을 공격한다.
•
올데이 취약점
취약점에 대한 분석이 끝나고 보안패치도 있으나, 보안 담당자 혹은 사용자의 부재 및 보안 인식 부족으로 인하여 패치를 적용하지 않은 상태의 취약점
일반적으로 공격자가 가장 선호하는 취약점이며, 대부분의 공격은 올데이 취약점으로 인해 발생한다.
흥미로운 사이트
해킹/보안) 1-2. 익스플로잇
보안
취약점 공격에는 어떤것들이 있을까
보안
시큐어코딩
포트스캔
포트 스캔은 대상 시스템 또는 네트워크를 체계적으로 스캔하여 열린 포트와 해당 포트에서 실행 중인 서비스를 식별하는 프로세스다. 포트는 서로 다른 애플리케이션과 서비스가 네트워크를 통해 데이터를 주고받을 수 있도록 하는 통신 엔드포인트기 때문에, 이를 아는것은 해당 시스템에 침입하는것에 필수적인 준비 단계라고 할 수 있다.
Nmap
Nmap(네트워크 매퍼)은 네트워크 탐색 및 보안 감사에 사용되는 인기 있고 강력한 오픈 소스 도구다.
Nmap 스캔 기법
Nmap은 다양한 수준의 스텔스 및 속도를 제공하는 다양한 스캔 기법을 제공한다. 이 글에서는 일반적으로 사용되는 Nmap 스캔 기법만을 정리해보겠다.
1.
TCP 연결 스캔
대상 포트와 전체 TCP 연결을 스캔하고, 포트의 상태(개방, 폐쇄, 필터링)를 확인한다.
2.
SYN/스텔스 스캐닝(반개방 스캐닝)
전체 TCP 핸드셰이크를 완료하지 않고 SYN 패킷을 대상 포트에 전송하여 서버에서 알지 못하도록 스텔스 스캐닝을 한다.
3.
UDP 스캐닝
UDP 포트를 스캔하여 열려 있거나 필터링된 포트를 식별하는 데 중점을 둔다.
4.
서비스 버전 탐지
개방형 포트에서 실행되는 서비스의 버전과 유형을 식별하여 취약성 평가 및 추가 정찰을 지원할 수 있다.
5.
스크립트 스캔
스크립팅 기능을 이용해 사용자가 작업을 자동화하고, 취약성 스캔을 수행하고, 대상 시스템에 대한 추가 정보를 수집하도록 한다.
포트 스캔을 활용한 보안
1.
네트워크 매핑
포트 스캔은 네트워크 아키텍처를 매핑하고 활성 호스트와 해당 호스트의 열린 포트를 식별하는 데 사용할 수 있다. 이를 이용해, 네트워크 관리자가 네트워크의 토폴로지 및 잠재적 취약성을 쉽게 인지할 수 있다.
해킹/보안) 1-1. 포트 스캔
보안
취약점 공격을 하기 위한 준비 단계, 포트 스캔에 대해서
보안
시큐어코딩
안전한 프로그램 만들기
많은 개발자가 프로그램을 작성하면서 보안의 중요성에 대해 들어봤을 것이다. 그러나 막상 안전한 프로그램을 만들기 위해서 무엇을 고려해야 하는지 알지 못하거나, 알더라도 그 치명적임을 체감하지 못해서 가볍게 여기는 경우들이 있다. 이러한 문제의 해결에 도움이 되기 위해 간단한 보안 지식과 해킹 방법들을 공유하는 시리즈를 작성해본다.
해킹
보안의 필요를 알기 위해서는 해킹에 대한 이해가 필요하다. 해킹은 컴퓨터 시스템 또는 네트워크에 불법적으로 접근하거나 제어하기 위해 사용되는 기술 또는 활동을 의미한다. 해커는 개인 정보를 탈취하거나 변조하고, 시스템을 마비시키는 등의 행위를 할 수 있다. 이러한 해킹을 하기 위해 해커는 시스템이나 프로그램의 취약점을 이용하거나, 시스템이나 프로그램을 이용하는 사용자의 심리를 이용한다. 우리는 이 두 방법 중 사회공학적 해킹 방법인 후자를 제외하고, 기술적 해킹에 관해 이야기를 해보도록 하겠다.
취약점
취약점은 컴퓨터 시스템, 네트워크, 소프트웨어 등에 존재하는 보안상의 결함이나 취약한 점을 말한다. 이러한 취약점은 해커나 악의적인 공격자들이 공격을 시도하고 시스템을 침해하는 데 이용될 수 있다. 때문에 개발자들은 이러한 취약점들을 최대한 줄이고, 회피하는 방향으로 프로그램을 만들어야 한다.
•
팔만코딩경에 취약점에 대해 정리해 둔 글이 있다. 확인해보자.
신경써야 할 것
시리즈의 본격적인 시작에 앞서, 안전한 프로그램을 만들기 위해 개발자가 신경을 써야 하는 몇 가지에 대해 간단하게 짚어보자.
1.
사용자 입력을 신뢰하지 말자.
나는 보안에서 가장 중요한 1가지를 뽑는다면 이것이라고 생각한다. 사용자의 입력을 신뢰하는 것은, 대문을 열어두고 여행을 다녀오는 것과 마찬가지이다. 데이터가 항상 올바르게 구성되고 제대로 되어 있다고 생각한다면 문제에 직면하게 된다. 대부분의 보안상 취약점은 서버 시스템에 잘못된 데이터를 제공하는 공격자로 인해 발생한다.
입력이 올바른 형식이라고 무조건 신뢰하는 것은 Buffer-Overrun, Cross Site Scripting, SQL-Injection 공격 등과 같은 문제를 일으킬 수 있다.
2.
최소한의 권한을 사용하자.
최소한의 권한 원칙이란 주어진 권한은 최소한 필요한 만큼의 시간 동안 최소한 필요한 만큼의 코드에만 허용되어야 한다는 것이다. 이 원칙을 통해 프로그램에 문제가 발생하더라도, 치명적인 시스템 손상을 예방할 수 있다.
해킹/보안) 0. 안전한 프로그램을 만들기 위해 생각해야 하는 것들
보안
안전한 프로그램을 만들기 위해 생각해야 하는 것
보안
시큐어코딩
관리자 권한 없이 shell 에서 code 명령어로 VSCode를 사용하는 방법
평가를 진행하다 보면 터미널을 이용해 git clone을 진행한 후 해당 디렉토리를 VSCode를 이용해 열어서 평가를 하게 된다. 이럴때마다 디렉토리의 경로를 찾아 들어가서 VSCode를 열거나, open 명령어를 통해 Finder에서 연 후 VSCode를 열게 되는데 매우 귀찮은 방법이다.
이럴때는 code 명령어를 shell에 추가해서 써보는 것은 어떨까?

원래 VSCode에서는 위와 같이 VSCode의 PATH를 추가해 code명령어를 shell 환경에서 사용할 수 있도록 기능을 제공한다.

그러나 안타깝게도, 이 기능을 이용하려고 하면 관리자 권한이 필요하다.
관리자 권한 없이 shell 에서 code 명령어로 VSCode를 사용하는 방법
Shell
VScode
shell에서 code 명령어를 사용하자
shell
zsh
iTerm2
VSCode
List
Search
