리눅스 파일 구조 리눅스 파일은 크게 다음과 같이 분류할 수 있다. 시스템 파일: 리눅스 시스템의 기본 기능을 제공하는 파일이다. 사용자 파일: 사용자의 데이터와 설정을 저장하는 파일이다. 프로그램 파일: 리눅스에서 실행되는 프로그램의 코드와 데이터를 저장하는 파일이다. 시스템 파일 시스템 파일은 리눅스 시스템의 기본 기능을 제공하는 파일이며 시스템 파일은 보통 / 디렉터리에 저장된다. /etc: 시스템 설정 파일이 저장되는 디렉터리이다. /bin: 시스템에서 기본적으로 제공되는 명령어가 저장되는 디렉터리이다. /sbin: 시스템 관리자가 사용하는 명령어가 저장되는 디렉터리이다. /lib: 시스템에서 사용하는 라이브러리가 저장되는 디렉터리이다. /dev: 하드웨어 장치와 관련된 파일이 저장되는 디렉터리이..
리눅스? 리눅스는 1991년 9월 17일 리누스 토르발스가 처음 출시한 운영 체제 커널인 리눅스 커널에 기반을 둔 오픈 소스 유닉스 계열 운영 체제 계열이며 리눅스는 일반적으로 리눅스 배포판 안에 패키지 처리된다. 리눅스 커널은 C언어로 작성되었으며, 리눅스 배포판에 포함된 다양한 유틸리티와 프로그램은 C언어, 파이썬, 자바, 루비 등 다양한 언어로 작성되었다. 리눅스는 다음과 같은 특징을 가지고 있다. 오픈 소스: 누구나 소스 코드를 자유롭게 사용할 수 있다. 다중 사용자 및 멀티 태스킹 지원: 리눅스는 다중 사용자와 멀티 태스킹을 지원한다. 모듈식 구조: 커널은 모듈로 구성되어 있어, 필요에 따라 모듈을 추가하거나 제거할 수 있다. 다양한 하드웨어 지원: 리눅스는 다양한 하드웨어를 지원한다. 리눅스는..
쉘❓ "쉘(Shell)"은 컴퓨터 운영 체제에서 사용자와 운영 체제 커널 또는 하드웨어 간의 인터페이스 역할을 하는 프로그램 또는 환경을 가리키며 쉘은 사용자가 운영 체제 기능을 조작하고 명령을 실행하며 파일 및 프로세스 관리와 같은 작업을 수행할 수 있도록 하는 명령 줄 인터페이스 또는 그래픽 사용자 인터페이스를 제공한다. 웹 쉘❓ 웹 쉘이란 웹 서버에 원격으로 액세스하여 명령을 실행하고 시스템에 대한 제어를 획득할 수 있는 웹 기반 쉘이다. 웹 쉘을 사용하는 공격자는 웹 서버에 액세스 권한이 있는 경우 해당 서버에서 다양한 명령을 실행하고 시스템을 조작할 수 있다. 웹을 통해 시스템 명령어를 실행하기에 서버사이드 스크립트 언어와 함께 작성된다. 예시 코드 이 코드 예제는 PHP로 작성된 웹 쉘의 간단..
안드로이드 메모리 덤프 내 중요정보 노출 대응방안 의 개요를 간단히 하면 이렇다. 0. 웹뷰 버전 확인 및 업데이트, 웹뷰 설정 점검 ( 웹뷰 사용 시 ) 1. 메모리(변수)에 중요 정보를 저장 할 때에는 반드시 암호화 해서 저장 2. androidmanifest.xml 파일에 있는 android:debugable 속성을 false로 지정 3. 중요 정보가 사용된 직후 배열을 초기화해서 비워줘야 한다. 웹뷰 버전 확인 및 업데이트, 웹뷰 설정 점검 알려진 보안 취약점을 해결하려면 WebView 구성 요소를 정기적으로 업데이트하는 것이 중요하기에 WebView 업데이트를 확인하고 앱을 최신 버전으로 유지해야한다. 많은 담당자들이 놓치고 있는 부분이다. 메모리(변수)에 중요 정보를 저장 할 때에는 반드시 암..
네이티브 앱❓ 네이티브 앱(Native app)은 모바일 기기나 컴퓨터의 특정 플랫폼에 최적화된 애플리케이션이다. 네이티브 앱은 특정 운영체제(OS)에 직접 설치되어 실행되며, 해당 플랫폼의 기능과 성능을 최대한 활용할 수 있다. 해당 운영체제가 허용하는 모든 자원과 기능들을 직접 활용할 수 있다. 즉, 스마트폰의 내장 카메라, 센서, 파일 시스템 등과 같이 깊숙한 부분들도 접근 및 활용이 가능하다는 말이다. 예를 들어, iOS 운영체제를 사용하는 아이폰에서 실행되는 앱은 iOS 운영체제에 최적화된 네이티브 앱이다. 마찬가지로, 안드로이드 운영체제를 사용하는 스마트폰에서 실행되는 앱은 안드로이드 운영체제에 최적화된 네이티브 앱이다. 네이티브 앱은 해당 플랫폼의 프로그래밍 언어로 개발되며, 플랫폼별로 다른..
퍼징❓ 퍼징(Public Fuzzing)은 소프트웨어 또는 시스템의 보안 취약점을 찾기 위해 사용되는 자동화된 테스트 기법이며 임의의 입력 데이터를 대상 프로그램에 주입하여 예상치 못한 동작이나 오류를 발생시키는 것을 목표로 한다. 퍼징은 보안 취약점, 특히 버퍼 오버플로우, 메모리 누수, 입력 유효성 검사 부재 등과 같은 프로그램의 결함을 찾는 데에 자주 활용된다. 대규모의 입력 데이터 세트(퍼즈 케이스)를 생성하여 프로그램에 연속적으로 적용하고, 예상치 못한 결과가 발생할 때마다 이를 기록하고 분석한다. 퍼징은 보안 전문가나 소프트웨어 개발자들이 소프트웨어의 안정성과 보안을 향상시키기 위해 사용하는 중요한 도구이며 취약점을 찾아내고 수정함으로써 시스템의 안전성을 향상시키고, 악용될 수 있는 취약점을 ..
리버싱❓ 리버스 엔지니어링 ( 역공학) 의 사전적 정의는 다음과 같다. 리버스 엔지니어링이란 소프트웨어 공학의 한 분야로 , 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어내는 일을 말한다. 1. 소프트웨어 역공학: 소프트웨어의 실행 파일을 분석하여 그 내부 동작을 이해하는 것이다. 예를 들어, 프로그램의 알고리즘, 데이터 구조, 보안 메커니즘 등을 분석하여 원하는 목적을 달성하기 위해 필요한 정보를 얻을 수 있다. 2. 악성 코드 분석: 악성 소프트웨어나 바이러스의 동작을 분석하여 그 행위와 기능을 이해하고 대응하기 위한 대책을 마련하는 것이다. 악성 코드의 동작 원리, 암호화 기법, 통신 프로토콜 등을 분석하여 보안 전문가나 안티바이러스 소프트웨어 개발자가 대응할 수 ..
클록❓ 컴퓨터에서 클록은 컴퓨터 시스템의 주파수를 나타내는 내부 시계이고 이 클록은 컴퓨터의 모든 동작과 이벤트를 조정하고 동기화하는 역할을 한다. 컴퓨터 클록은 일정한 속도로 진행되며, 클록의 주파수가 높을수록 처리 속도가 빨라진다. 컴퓨터 클록은 CPU의 동작, 데이터 전송, 인터럽트 처리 등 모든 작업의 타이밍을 제어하며 클록 펄스의 상승과 하강에 따라 컴퓨터의 내부 회로가 동작하고 명령어가 실행된다. 클록 주기에 따라 데이터가 처리되기 때문에 컴퓨터의 클록 속도는 전체 시스템의 성능에 영향을 미친다. 컴퓨터 클록은 일반적으로 메가헤르츠(MHz) 또는 기가헤르츠(GHz) 단위로 표시되며, 클록 주파수가 높을수록 더 빠른 연산이 가능하다. 그럼 주변에서 자주 듣는 오버클록은 무엇일까? 오버클록❓ 컴퓨..
시스템 보안 - 정보시스템 범위 및 이해 - 운영체제 구조 - 시스템 보안 위협 및 공격 기법 - 시스템 보안 위협 및 공격에 대한 예방 및 대응 정보시스템 범위 및 이해 CPU CPU는 크게 ALU( 산술논리연산장치 ) , 제어장치( control unit ) , 시스템 버스 , 레지스터 들로 이루어져 있다. 레지스터 레지스터의 종류에는 실행할 명령어의 주소 값을 저장하는 프로그램 카운터 ( PC : Program Counter ) 메모리에서 가져온 값을 저장하는 메모리 버퍼 레지스터 ( MBR : Memory Buffer Register ) CPU가 읽어들이고자 하는 주소를 저장하는 메모리 주소 레지스터 ( MAR : Memory Address Register ) 메모리에 읽거나 쓸 명령어를 저장하는..
URL❓ URL은 "Uniform Resource Locator"의 약어로, 인터넷에서 자원의 위치를 나타내는 주소이며 웹 브라우저를 통해 웹 페이지, 이미지, 동영상, 문서 등 다양한 리소스에 접근하는 데 사용된다. URL 구성 프로토콜 : // 호스트명 [ : 포트 ] /[ 경로 ] / [ ? 쿼리 문자열 ] URL은 프로토콜, 호스트명, 포트 ,경로, 쿼리 문자열로 나뉜다. 프로토콜 웹 페이지에 접근하기 위해 사용되는 통신 프로토콜을 나타내고 예를 들어, "http://" 또는 "https://", FTP 등 수많은 프로토콜이 있다. 호스트 해당 리소스가 호스팅되어 있는 서버의 도메인 이름 또는 IP 주소를 나타내고 예를 들어, "www.example.com"이나 "192.168.0.1"과 같은 형..