콘텐츠로 이동

Scheck Funcs 지원 목록

  • 버전: 1.0.7-7-g251eead
  • 출시일: 2023-04-06 11:17:57
  • 지원 운영체제: windows/amd64,windows/386,linux/arm,linux/arm64,linux/386,linux/amd64

개요

기존 방식은 Lua 가상 머신 초기화 시 모든 함수를 등록했으나 Lua 스크립트에서 이러한 메서드를 사용하지 않아 가상 머신에 불필요한 오버헤드가 발생했습니다.

함수가 증가함에 따라 이러한 오버헤드 문제는 점점 더 심각해져서, 패키지 분할 및 모듈화 처리를 도입했습니다.

모듈 사용 방법

Go 함수는 패키지 형태로 여러 모듈로 나뉩니다. Lua 스크립트에서 모듈을 사용할 때는 먼저 패키지를 가져와야 합니다(trigger 제외).

Lua 코드:

    -- file 모듈 사용
    local file = require("file")
    local info = file.file_info("./example.exe")
    print(info['size'])
    -- do something ...

    -- cache 모듈 사용
    local cache = require("cache")
    cache.set_cache({"123","abc"})
    print(cache.get_cache("123")) -- "abc"

    -- trigger는 참조 선언 불필요
    local current = "123"
    trigger({Content=current})

모듈 및 함수 목록

참고: 운영체제에 따라 메서드 집합이 다르므로 크로스 시스템 호출은 불가능합니다! all_os는 모든 운영체제에 공통되는 메서드입니다.

file

file_all_os

ls

ls(dir[, rescue])

지정된 디렉터리의 파일을 나열합니다.

매개변수:

이름 타입 설명 필수
dir string 디렉터리 경로 true
rescue boolean 디렉터리를 재귀적으로 탐색할지 여부, 기본값은 false false

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 아래와 같이 설명됩니다.
이름 타입 설명
path string 파일의 전체 경로
filename string 파일 이름
size number 파일 크기(바이트)
block_size number 파일 시스템 블록 크기
mode string 권한 비트
uid number 소유 사용자 ID
gid number 소유 그룹 ID
device number 장치 ID (선택 사항)
inode number 파일 시스템 inode 번호
hard_links number 하드 링크 수
ctime number 마지막 상태 변경 시간
mtime number 마지막 수정 시간
atime number 마지막 액세스 시간

file_exist

file_exist(filepath)

파일이 존재하는지 확인합니다.

매개변수:

이름 타입 설명 필수
filepath string 절대 파일 경로 true

반환 값:

타입 설명
boolean 존재하면 true, 그렇지 않으면 false

예제:

file = '/your/file/path'
exists = file_exist(file)
print(exists)

file_info

file_info(filepath)

파일 속성 및 메타데이터를 읽습니다.

매개변수:

이름 타입 설명 필수
filepath string 절대 파일 경로 true

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table 아래와 같은 파일 세부 정보를 포함합니다.
이름 타입 설명
size number 파일 크기(바이트)
block_size number 파일 시스템 블록 크기
mode string 권한 문자열
perm string 권한 비트
uid number 소유 사용자 ID
gid number 소유 그룹 ID
device number 장치 ID (선택 사항)
inode number 파일 시스템 inode 번호
hard_links number 하드 링크 수
ctime number 마지막 상태 변경 시간
mtime number 마지막 수정 시간
atime number 마지막 액세스 시간

예제:

file = '/your/file/path'
info = file_info(file)

read_file

read_file(filepath)

파일 내용을 읽습니다.

매개변수:

이름 타입 설명 필수
filepath string 절대 파일 경로 true

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
string 파일 내용

예제:

file='/your/file/path'
content = read_file(file)

file_hash

file_hash(filepath)

파일 내용의 MD5 합계를 계산합니다.

매개변수:

이름 타입 설명 필수
filepath string 절대 파일 경로 true

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
string 파일 내용의 MD5

예제:

file='/your/file/path'
content = file_hash(file)

sc_path_watch

sc_path_watch(dir,chan)

파일 또는 디렉터리의 변경을 감시합니다.

매개변수:

이름 타입 설명 필수
dir string 디렉터리 또는 파일 이름 true
chan lua.LChannel lua 채널 true

반환 값:

반환 값이 없으며 중단되지 않습니다. 디렉터리나 파일이 변경되면 lua.LChannel을 통해 알림이 전송됩니다.

lua.LChannel:

타입 설명
table(배열) 각 항목은 아래와 같이 설명됩니다.
이름 타입 설명
path string 파일의 전체 경로
status int 파일 상태
파일 상태:
상태 이름 설명
1 CREATE 디렉터리에 파일 생성
2 WRITE 파일 쓰기
4 REMOVE 파일 삭제 시
8 RENAME 파일 이름 변경
16 CHMOD chmod 변경 시

grep

grep(option, pattern, file)

grep 명령어 실행

매개변수:

이름 타입 설명 필수
option string grep 옵션 false
pattern string grep 패턴 true
file string grep으로 검색할 파일 true

반환 값:

타입 설명
string grep 결과, 찾을 수 없으면 빈 값
string 실패 시 오류 정보

system

system_all_os

hostname

hostname()

현재 호스트 이름을 가져옵니다.

반환 값:

가져오기 실패 시 오류가 발생합니다.

타입 설명
string 호스트 이름

uptime

uptime()

마지막 부팅 이후 경과 시간입니다.

반환 값:

타입 설명
number 총 업타임(초)

time_zone

time_zone()

시스템의 현재 시간대

반환 값:

타입 설명
string 시스템의 현재 시간대

mounts

mounts()

시스템에 마운트된 장치 및 파일 시스템 (프로세스별 아님)

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 마운트된 장치에 해당하며 아래와 같이 설명됩니다.
이름 타입 설명
device string 마운트된 장치
path string 마운트된 장치 경로
type string 마운트된 장치 유형
flags string 마운트된 장치 플래그

uname

uname()

운영체제 이름 및 버전

반환 값:

실패 시 오류가 발생합니다.

타입 설명
table 아래 참조
이름 타입 설명
platform string OS 플랫폼 또는 ID, 예: centos
platform_version string OS 플랫폼 버전, 예: 7.7.1908
family string OS 플랫폼 제품군, 예: rhel
os string OS 이름, 예: Linux
arch string OS 아키텍처, 예: x86_64
kernel_version string OS 커널 버전

sc_sleep

sc_sleep(time)

스레드가 지정된 시간(초) 동안 대기합니다.

매개변수:

이름 타입 설명 필수
time int 대기 시간(초) true

반환 값:

실패 시 오류가 발생합니다.

sc_ticker

sc_ticker(channel,time)

정기적으로 lua.LChannel에 신호를 보냅니다.

매개변수:

이름 타입 설명 필수
chan lua.LChannel lua 채널 true
time int 시간(초) true

반환 값:

반환 값 없음 lua.LChannel에 Lua.LString을 전송합니다.

system_linux

kernel_info

kernel_info()

로드된 Linux 커널 모듈 및 로드 검색 경로 내의 모듈

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table 아래와 같은 세부 정보
이름 타입 설명
version string 커널 버전
arguments string 커널 인수
path string 커널 경로
device string 커널 장치 식별자

kernel_modules

kernel_modules()

로드된 Linux 커널 모듈 및 로드 검색 경로 내의 모듈

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 모듈에 해당하며 아래와 같이 설명됩니다.
이름 타입 설명
name string 모듈 이름
size string 모듈 내용 크기
used_by string 모듈 역종속성
status string 커널 모듈 상태
address string 커널 모듈 주소

ulimit_info

ulimit_info()

시스템 리소스 사용 제한.

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table 아래 참조
이름 타입 설명
type string 제한될 시스템 리소스
soft_limit string 현재 제한 값
hard_limit string 최대 제한 값

processes

processes()

호스트 시스템에서 실행 중인 모든 프로세스

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 프로세스에 해당하며 아래와 같이 설명됩니다.
이름 타입 설명
pid number 프로세스 (또는 스레드) ID
name string 프로세스 경로 또는 약식 argv[0]
path string 실행된 바이너리 경로
cmdline string 전체 argv
state string 프로세스 상태
cwd string 프로세스 현재 작업 디렉터리
root string 프로세스 가상 루트 디렉터리
uid number 부호 없는 사용자 ID
gid number 부호 없는 그룹 ID
euid number 부호 없는 유효 사용자 ID
egid number 부호 없는 유효 그룹 ID
suid number 부호 없는 저장된 사용자 ID
sgid number 부호 없는 저장된 그룹 ID
on_disk number 프로세스 경로 존재 여부: 예=1, 아니오=0, 알 수 없음=-1
resident_size number 프로세스가 사용하는 개인 메모리(바이트)
total_size number 총 가상 메모리 크기
system_time number 커널 공간에서 소비된 CPU 시간(밀리초)
user_time number 사용자 공간에서 소비된 CPU 시간(밀리초)
disk_bytes_read number 디스크에서 읽은 바이트
disk_bytes_written number 디스크에 쓴 바이트
start_time number Epoch 이후 프로세스 시작 시간(초), 오류 시 -1
parent number 프로세스 부모 PID
pgroup number 프로세스 그룹
threads number 프로세스가 사용하는 스레드 수
nice number 프로세스 nice 값(-20 ~ 20, 기본값 0)

process_open_files

process_open_files()

각 프로세스의 파일 디스크립터.

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 열린 파일이 있는 프로세스에 해당하며 아래와 같이 설명됩니다.
이름 타입 설명
pid number 프로세스 (또는 스레드) ID
fd number 프로세스별 파일 디스크립터 번호
path string 디스크립터의 파일 시스템 경로

users

users()

로컬 사용자 계정 (Windows에서 로컬로 로그온한 도메인 계정 포함)

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 아래와 같이 설명됩니다.
이름 타입 설명
username string 사용자 이름
uid number 사용자 ID
gid number 그룹 ID (부호 없음)
directory string 사용자 홈 디렉터리
shell string 사용자에 대해 구성된 기본 셸

logged_in_users

logged_in_users()

시스템에서 활성 셸을 가진 사용자.

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 아래와 같이 설명됩니다.
이름 타입 설명
pid number 프로세스 (또는 스레드) ID
username string 사용자 이름
type number 로그인 유형, utmp.h 참조
tty number 장치 이름
host string 원격 호스트 이름
time string 항목이 생성된 시간, Unix 타임스탬프(초)

last

last()

시스템 로그인 및 로그아웃.

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 아래와 같이 설명됩니다.
이름 타입 설명
pid number 프로세스 (또는 스레드) ID
username string 사용자 이름
type number 로그인 유형, utmp.h 참조
tty number 장치 이름
host string 원격 호스트 이름
time string 항목이 생성된 시간, Unix 타임스탬프(초)

lastb

lastb()

실패한 로그인.

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 아래와 같이 설명됩니다.
이름 타입 설명
pid number 프로세스 (또는 스레드) ID
username string 사용자 이름
type number 로그인 유형, utmp.h 참조
tty number 장치 이름
host string 원격 호스트 이름
time string 항목이 생성된 시간, Unix 타임스탬프(초)

shadow

shadow()

로컬 시스템 사용자의 암호화된 비밀번호 및 관련 정보입니다. /etc/shadow에 액세스하려면 일반적으로 슈퍼유저 권한이 필요합니다.

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 아래와 같이 설명됩니다.
이름 타입 설명
username string 사용자 이름
password_status string 비밀번호 상태
last_change number 마지막 비밀번호 변경 날짜 (UNIX epoch 날짜 기준)
expire number 계정 비활성화까지 UNIX epoch 날짜로부터의 일 수

shell_history

shell_history()

사용자별 .*_history 데이터의 라인 구분(명령) 테이블입니다.

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 아래와 같이 설명됩니다.
이름 타입 설명
uid number 셸 기록 소유자
history_file string 이 사용자의 .*_history 파일 경로
command string 구문 분석되지 않은 날짜/라인/명령 기록 라인
time number 항목 타임스탬프. 없을 수 있으며 기본값은 0입니다.

crontab

crontab()

시스템 및 사용자 cron/tab에서 라인을 구문 분석한 값입니다.

반환 값:

실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 아래와 같이 설명됩니다.
이름 타입 설명
minute string 작업의 정확한 분
hour string 작업의 시간
day_of_monthmand string 작업의 일
month string 작업의 월
day_of_week string 작업의 요일
command string 원시 명령 문자열
path string 구문 분석된 파일

sysctl

sysctl([key])

운영체제 sysctl 정보

매개변수:

이름 타입 설명 필수
key string 특정 키를 지정하여 값을 가져오거나, 생략 시 모든 키-값 반환 false

반환 값:

실패 시 오류가 발생합니다.

타입 설명
table Linux 명령어 'sysctl -a' 실행 결과와 동일

rpm_list

rpm_list()

현재 모든 rpm 패키지 나열

반환 값:

실패 시 오류가 발생합니다.

타입 설명
string Linux 명령어 'rpm -qa' 실행 결과와 동일

rpm_query

rpm_query(pkg)

패키지 설치 여부 확인

매개변수:

이름 타입 설명 필수
package string 패키지 이름, 예: yum false

반환 값:

타입 설명
string 패키지의 전체 이름, 찾을 수 없으면 빈 값

system_windows

net

net_all_os

interface_addresses

interface_addresses()

네트워크 인터페이스 및 관련 메타데이터.

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 네트워크 인터페이스에 해당하며 아래와 같이 설명됩니다.
이름 타입 설명
interface string 인터페이스 이름
ip4 string ip4 주소
ip6 string ip6 주소
mtu number MTU
mac string MAC 주소

net_linux

iptables

iptables()

Linux IP 패킷 필터링 및 NAT 도구

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 필터링에 해당하며 아래와 같이 설명됩니다.
이름 타입 설명
filter_name string 패킷 일치 필터 테이블 이름.

process_open_sockets

process_open_sockets()

시스템에서 열린 네트워크 소켓이 있는 프로세스

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 열린 네트워크가 있는 프로세스에 해당하며 아래와 같이 설명됩니다.
이름 타입 설명
pid number 프로세스 (또는 스레드) ID
process_name string 프로세스 이름
cmdline string 전체 argv
fd number 소켓 파일 디스크립터 번호
socket number 소켓 핸들 또는 inode 번호
family string 네트워크 프로토콜 (AF_INET, AF_INET6, AF_UNIX)
protocol string 전송 프로토콜 (tcp, udp...)
local_address string 소켓 로컬 주소
remote_address string 소켓 원격 주소
local_port number 소켓 로컬 포트
remote_port number 소켓 원격 포트
path string UNIX 소켓(family=AF_UNIX)의 경우 도메인 경로
net_namespace number 네트워크 네임스페이스의 inode 번호
state string TCP 소켓 상태

listening_ports

listening_ports()

리스닝(바인딩) 중인 네트워크 소켓/포트가 있는 프로세스

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table(배열) 각 항목은 아래와 같이 설명됩니다.
이름 타입 설명
pid number 프로세스 (또는 스레드) ID
process_name string 프로세스 이름
cmdline string 전체 argv
socket number 소켓 핸들 또는 inode 번호
fd number 소켓 파일 디스크립터 번호
address string 바인드를 위한 특정 주소
port number 전송 계층 포트
family string 네트워크 프로토콜 (AF_INET, AF_INET6, AF_UNIX)
protocol string 전송 프로토콜 (tcp, udp...)
path string UNIX 소켓(family=AF_UNIX)의 경우 도메인 경로

net_windows

cache

cache_all_os

get_cache

get_cache(key)

캐시 키의 값을 가져옵니다.

매개변수:

이름 타입 설명 필수
key string 캐시 키 이름 true

반환 값:

타입 설명
string/boolean/number 캐시 값

set_cache

set_cache(key, value)

캐시 키-값 쌍을 설정합니다.

매개변수:

이름 타입 설명 필수
key string 캐시 키 이름 true
value string/boolean/number 키에 해당하는 캐시 값 true

반환 값:

타입 설명
string 실패 시 오류 상세 정보

clean_cache

clean_cache()

이 규칙의 캐시를 정리합니다.

매개변수:

반환 값:


del_cache

del_cache(key)

키로 캐시를 삭제합니다.

매개변수:

이름 타입 설명 필수
key string 캐시 키 이름 true

반환 값:
반환 값 없음


del_cache_all

del_cache()

모든 캐시를 삭제합니다.

매개변수:

반환 값:


get_global_cache

get_global_cache(key)

전역 캐시 키의 값을 가져옵니다.

매개변수:

이름 타입 설명 필수
key string 캐시 키 이름 true

반환 값:

타입 설명
string/boolean/number 캐시 값

set_global_cache

set_global_cache(key, value)

전역 캐시에 키-값을 설정합니다.

매개변수:

이름 타입 설명 필수
key string 캐시 키 이름 true
value string/boolean/number 키에 해당하는 캐시 값 true

반환 값:

타입 설명
string 실패 시 오류 상세 정보

json

json_all_os

json_encode

json_encode(object)

lua 테이블을 JSON 문자열로 인코딩합니다.

매개변수:

이름 타입 설명 필수
object table lua 테이블 true

반환 값:

인코딩 실패 시 오류가 발생합니다.

타입 설명
string JSON 문자열

json_decode

json_decode(str)

JSON 문자열을 lua 테이블로 디코딩합니다.

매개변수:

이름 타입 설명 필수
str string JSON 문자열 true

반환 값:

인코딩 실패 시 오류가 발생합니다.

타입 설명
table lua 테이블

mysql

mysql_all_os

mysql_weak_psw

mysql_weak_psw(host, port [,username])

MySQL 약한 비밀번호 확인

매개변수:

이름 타입 설명 필수
host string MySQL URL true
port string MySQL 포트 true
username string MySQL 사용자 이름, 기본값은 'root' false

반환 값:

실패 시 오류가 발생합니다.

타입 설명
boolean true는 약한 비밀번호를 찾았음을 의미
string 찾은 경우 약한 비밀번호

mysql_ports_list

mysql_ports_list()

호스트 MySQL 포트 나열

반환 값:

읽기 실패 시 오류가 발생합니다.

타입 설명
table() 각 항목은 아래와 같이 설명됩니다.
이름 타입 설명
pid number 프로세스 (또는 스레드) ID
cmdline string 전체 argv
port number 전송 계층 포트
protocolversion string MySQL 프로토콜 버전
statusflags string 소켓 파일 디스크립터 번호
authpluginname string 인증 플러그인 이름
s️erverversion string MySQL 서버 버전
state string 프로세스 상태

출력 예제:

port    3307
protocolversion 10
statusflags 2
authpluginname  mysql_native_password
s️erverversion  5.7.34
state   LISTEN
cmdline /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3307 -container-ip 172.18.0.4 -container-port 3306
pid 7062

컨테이너 관련

sc_docker_exist

sc_docker_exist()

호스트에서 Docker 실행 여부 확인

반환 값:

실패 시 오류가 발생합니다.

타입 설명
boolean true: 호스트에 Docker 서비스가 존재함

sc_docker_containers

sc_docker_containers()

MySQL 약한 비밀번호 확인

다른 Docker 함수보다 먼저 sc_docker_exist가 먼저 실행되어야 합니다!!!

반환 값:

실패 시 오류가 발생합니다.

타입 설명
[]string 컨테이너 이름 목록

sc_docker_runlike

sc_docker_runlike(containerName)

MySQL 약한 비밀번호 확인

매개변수:

이름 타입 설명 필수
containerName string 이미지 ID true

반환 값:

실패 시 오류가 발생합니다.

타입 설명
string 컨테이너 이름 실행 명령어

기타

trigger

trigger([template_vals])

이벤트를 트리거하고 라인 프로토콜로 대상에 전송합니다.

매개변수:

이름 타입 설명 필수
template_vals table 매니페스트에서 템플릿을 사용하는 경우, 이 테이블의 값이 템플릿 변수를 대체합니다. false

반환 값:

실패 시 오류가 발생합니다.


문서 평가

이 페이지가 도움이 되었나요?