Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
sudo apt update
sudo apt upgrade
sudo apt install python3-pip
pip install setuptools
pip install twine
cp git/hooks/pre-push .git/hooks
[distutils]
index-servers =
pypi
thompcoutils
[pypi]
username = __token__
password = <TOKEN FROM https://pypi.org/manage/account/token/>
[thompcoutils]
repository = https://upload.pypi.org/legacy/
username = __token__
password = <TOKEN FROM https://pypi.org/manage/account/token/>
logging consists of the following classes and functions to help with the burden of logging
Not sure if this is working properly
This function retrieves a logger for your file and function/method. This should be called first. For example:
This function tags the log file with the entry of a function/method. You may turn it on or off in your logging configuration note that the msg= argument is reserved for single string messages
This function tags the log file with the exit of a function/method. You may turn it on or off in your logging configuration note that the msg= argument is reserved for single string messages
Here is an example of everything
val1 = 5
val2 = 6
logger = get_logger()
start_function(logger, msg="testing")
# or you can call it this way:
start_function(logger, val1=val1, val2=val2)
val1 = 10
val2 = {"first": 1, "second": 2}
end_function(logger, val1=val1, val2=val2)
os consists of the following classes and functions
This is raised when the library does not recognize the operating system
This function returns all known timezones
This function returns the timezone selected by the operating system
This function kills the specified process name
This function returns whether the specified process name is currently running
This function returns the operating system type
This function returns all IP addresses on this hardware
#config This contains the object ConfigUtils It is used to read and write .ini files. You should put all information into the different methods to fully define the configuration file.
The constructor takes the configuration file name, a title to add to the top of the file, and a flag indicating the file is being constructed.
class ConfigManager:
def __init__(self, file_name, title=None, create=False):
The read_entry function reads a section/entry from the file. It takes a default value in case the value does not exist in the file and also to create a new file. The notes parameter describe the entry in the file
def read_entry(self, section, entry, default_value, notes=None):
The read_section function reads the entire section from the configuration file and returns a dictionary of the entries. Note that the notes are only applied to the setion (not to the individual entries)
def read_section(self, section, default_entries, notes=None):
The write function writes a new configuration file. If this is called, the package will check if the file exists. If it does, it will abort with a warning. If the file does not exist, it will write it and abort.
def write(self, out_file):
Here is an example of ConfigManager and its functions:
write = False # set this to True to create the configuration file
cfg_mgr = ConfigManager("test.ini", "This is the title of the ini file\n"
"You can have multiple lines if you use line breaks", write)
first = cfg_mgr.read_entry("User 1", "first name", "Joe", "This is the first name")
last = cfg_mgr.read_entry("User 1", "last name", "Brown", "This is the last name")
age = cfg_mgr.read_entry("User 1", "age", 12)
is_male = cfg_mgr.read_entry("User 1", "male", True)
weight = cfg_mgr.read_entry("User 1", "weight", 23.5)
section = cfg_mgr.read_section("user 2", {"first name": "Sally",
"last name": "Jones",
"age": 15,
"is_male": False,
"weight": 41.3},
"You only get to add notes at the top of the section using this method")
FAQs
Another collection of utilities
We found that thompcoutils demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.